AgentCanvas / Pages / Developer Guide / Core / Decisions / Components / ADR-components-005
2026-04-03
Date
2026-04-03
Status
accepted
Field
components
Old ID
ADR-017

Context

The BaseToolSet abstraction was named as if it only grouped "tools," but in practice it also contains environment nodes (EnvHabitatNodeSet with observe, step, etc.) and will contain skill nodes in the future. The name "ToolSet" was misleading — it implied a narrower scope than the abstraction actually has. The project is pre-release (W3) with no external consumers, making this the lowest-cost moment for a rename.

Decision

(1) Rename BaseToolSetBaseNodeSet, ServerToolSetServerNodeSet across all backend, frontend, docs, and user workspace files (~72 files). (2) Clean break — no backward-compat aliases or shims. (3) Rename directory workspace/toolsets/workspace/nodesets/. (4) Rename API routes /api/components/toolsets//api/components/nodesets/. (5) Update convention description from toolset__tool to nodeset__node. (6) Node type strings (e.g., env_habitat__observe) are NOT changed — they use set names, not the word "toolset," so saved graph JSON remains valid.

Alternatives

(a) Keep "ToolSet" — rejected because the name becomes increasingly misleading as environments and skills are added. (b) "NodePack" — rejected because "pack" implies distribution/download semantics not present. (c) "NodeKit" — rejected because it conflicts with UI toolkit terminology. (d) Rename with backward-compat aliases — rejected because pre-release project has no external consumers.

Rationale

"NodeSet" is the most accurate name for "a loadable group of domain-specific canvas nodes (tools, environments, skills) with shared initialization and shutdown lifecycle." The BaseCanvasNodeBaseNodeSet naming pattern is natural. The key insight that node type strings don't contain "toolset" made the rename safe for all saved graph artifacts.

Affected docs

All doc-site pages (already updated in-place as part of the rename), glossary.md, architecture.md, blueprint.md, roadmap.md, nodesets.md, habitat-nodeset.md