@dsh-cc/subagent-task 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -52,8 +52,19 @@ Given a `Task(subagent_type, description, prompt)` call from a CC preset session
52
52
  - `toolFilter` = the definition's `toolRestriction` (allow/deny), **sanitized** of tool
53
53
  names this composition no longer registers;
54
54
  - `maxDepth` = 3 (matches the harness default; configurable).
55
- 4. **Any other type** (not found in the workspace) → an **error result** listing the
56
- available types in this workspace (or noting the workspace defines none).
55
+ 4. **Any other type containing no colon** (not found in the workspace) → an **error
56
+ result** listing the available types in this workspace (or noting the workspace
57
+ defines none) — with a colon-aware hint when the type contains `:`.
58
+ 5. **A type matching a plugin agent's scoped id (`plugin:agent`)** → a `spawn` with the
59
+ same fold as a file definition (persona, sanitized toolFilter, alias-resolved model,
60
+ `maxDepth` 3), enumerated live from the `subagents` seam. Plugin agents are addressed
61
+ **only by their scoped id** — a bare plugin agent name is not addressable, matching
62
+ Claude Code.
63
+
64
+ The resolution order is: reserved sentinels (`general-purpose` / `fork`) → workspace file
65
+ definitions → plugin agent scoped ids. File definitions and scoped plugin ids occupy
66
+ disjoint name spaces (file definitions whose `agentType` contains `:` are skipped with a
67
+ warning at discovery), so a scoped id can never shadow a file type and vice versa.
57
68
 
58
69
  The dispatch is **foreground unless the child is explicitly or definition-pinned background**:
59
70
  with `run_in_background` omitted, the run is foreground — the tool awaits the child to
@@ -133,9 +144,11 @@ Because the section text is composed synchronously but discovery is async, the f
133
144
  assembly for an unknown workspace shows nothing, then `system-prompt/change` fires once
134
145
  discovery lands and reassembly reveals the catalog. When a workspace defines no agents (or
135
146
  there is no agent to scope to) the section renders an empty string and drops out of the
136
- prompt. The catalog lists only file definitions it deliberately does **not** enumerate seam
147
+ prompt. The catalog lists file definitions plus plugin agents by their scoped ids — it
148
+ deliberately does **not** enumerate seam
137
149
  backend provider names (`fork`/`spawn`/`codex`/`claude-code`) as if they were addressable
138
- agent types.
150
+ agent types; bare plugin agent names are not addressable either — only `plugin:agent`
151
+ scoped ids are.
139
152
 
140
153
  ## Workspace instructions on Task children
141
154
 
@@ -174,10 +187,6 @@ supplies the alias resolver. The cc preset **disables** the harness `tool-subage
174
187
  lifetime and does not watch the filesystem. Editing a `.claude/agents` definition takes
175
188
  effect on the next session for a workspace whose cache entry has not yet been created, and
176
189
  on process restart otherwise. mtime-based invalidation is a follow-up.
177
- - **No plugin-agent dispatch (v1).** Only file definitions under `.claude/agents` are
178
- dispatched. Seam plugin agents (`AgentProvider`) are not addressed by `subagent_type` in v1
179
- (their start contract does not carry the task text and their capability flags would reject
180
- `maxDepth`) — see the parity matrix.
181
190
  - **Reserved type names.** `general-purpose` and `fork` are sentinels, not file types. A
182
191
  workspace file `.claude/agents/fork.md` is unreachable; `subagent_type: "fork"` always
183
192
  means inherit completed parent turns.
@@ -208,7 +217,6 @@ supplies the alias resolver. The cc preset **disables** the harness `tool-subage
208
217
  pins `background: true`.
209
218
  - In-flight promotion of a running foreground Task to background (TUI Ctrl+B) — a follow-up,
210
219
  not a limitation of the package's existence.
211
- - Seam plugin-agent dispatch.
212
220
  - CC frontmatter `permissionMode` / `isolation` / `memory` / `effort` projection onto the
213
221
  child (the loader parses them, v1 does not consume them).
214
222
  - `registerBaseAgents` in cc-shell (base-agent discovery moved here; see the cc-shell README).
package/README.zh.md CHANGED
@@ -29,7 +29,10 @@ Claude Code 的 `Task` 工具允许主代理按 `subagent_type`(如 `deep-reason
29
29
  - `agentOptions` = 来自 `ctx.get('ccModelRoutes').resolve(def.model)` 的别名解析结果 `{ provider?, model? }`(只透传解析到值的 provider/model 字段,绝不破坏按字段继承);
30
30
  - `toolFilter` = 定义的 `toolRestriction`(allow/deny),**消毒**掉本组合已不再注册的工具名;
31
31
  - `maxDepth` = 3(与 harness 默认一致;可配置)。
32
- 4. **其它类型**(工作区内找不到)→ **报错结果**,附带本工作区可用类型清单(或说明本工作区未定义任何 agent)
32
+ 4. **其它不含冒号的类型**(工作区内找不到)→ **报错结果**,附带本工作区可用类型清单(或说明本工作区未定义任何 agent);类型含 `:` 时提示带冒号感知的线索。
33
+ 5. **命中插件 agent 的 scoped id(`plugin:agent`)** → 以 `spawn` 启动,折叠方式与文件定义相同(persona、消毒后的 toolFilter、别名解析的 model、`maxDepth` 3),并从 `subagents` seam **实时**枚举。插件 agent **只能用其 scoped id** 寻址——裸插件 agent 名不可寻址,与 Claude Code 一致。
34
+
35
+ 解析顺序是:保留哨兵(`general-purpose` / `fork`)→ 工作区文件定义 → 插件 agent scoped id。文件定义与 scoped 插件 id 占据互不相交的名字空间(`agentType` 含 `:` 的文件定义在发现时被跳过并告警),因此 scoped id 永远不会遮蔽文件类型,反之亦然。
33
36
 
34
37
  派发规则是**前台,除非显式指定或定义钉死了后台**:`run_in_background` 缺省时运行是前台——工具等待 child 跑完,非 `completed` 的 stop reason 以错误浮出,child 输出只拼接 `text` 块——除非定义钉了 `background: true`,此时缺省即后台。显式 `run_in_background: false` 覆盖钉死,强制前台。显式 `run_in_background: true`(或钉死时缺省)则把 child 作为 durable continuable 后台 agent 启动,并立即返回其 `agentId`。
35
38
 
@@ -60,7 +63,7 @@ Claude Code 的 `Task` 工具允许主代理按 `subagent_type`(如 `deep-reason
60
63
  To delegate to one, pass its name as the `subagent_type` argument of the Task tool.
61
64
  ```
62
65
 
63
- 由于 section 文本是同步组装的而发现是异步的,未知工作区的首次组装会显示空,随后 discovery 落地后触发 `system-prompt/change`,重组即显示目录。当工作区未定义任何 agent(或没有可 scope 的 agent)时,section 渲染空串并从提示词中消失。目录只列**文件定义**——刻意**不**把 seam 后端 provider 名(`fork`/`spawn`/`codex`/`claude-code`)当作可寻址的 agent 类型来枚举。
66
+ 由于 section 文本是同步组装的而发现是异步的,未知工作区的首次组装会显示空,随后 discovery 落地后触发 `system-prompt/change`,重组即显示目录。当工作区未定义任何 agent(或没有可 scope 的 agent)时,section 渲染空串并从提示词中消失。目录列出文件定义以及按 scoped id 呈现的插件 agent——刻意**不**把 seam 后端 provider 名(`fork`/`spawn`/`codex`/`claude-code`)当作可寻址的 agent 类型来枚举;裸插件 agent 名同样不可寻址——只有 `plugin:agent` scoped id 可以。
64
67
 
65
68
  ## Task child 上的工作区指令
66
69
 
@@ -79,7 +82,6 @@ harness 的 `agent-instructions` 插件会在**每个**会话(包括 Task child)
79
82
 
80
83
  - **冷恢复丢弃其余 `agentOptions`。** 后台(continuable)派发已存在——`run_in_background: true` 或定义钉 `background: true`——但冷恢复只还原 `persona`/`toolFilter`/模型路由,丢弃其余全部 `agentOptions` 字段(别名标记的 `reasoningEffort`、`maxTokens`)。完整后台契约(父退出 drain、无 `outputFile`、fork + 后台被拒)见 parity matrix。
81
84
  - **进程级发现缓存。** 注册表按工作区 root 缓存整个进程生命周期,不监听文件系统。编辑 `.claude/agents` 定义:对缓存条目尚未创建的工作区在下次会话生效,否则在进程重启后生效。基于 mtime 的失效刷为 follow-up。
82
- - **v1 不做插件 agent 派发。** 只派发 `.claude/agents` 下的文件定义。seam 插件 agent(`AgentProvider`)在 v1 不被 `subagent_type` 寻址(其 start 契约不携带任务正文,且 capability 标志会拒绝 `maxDepth`)——见 parity matrix。
83
85
  - **保留类型名。** `general-purpose` 与 `fork` 是哨兵,不是文件类型。工作区文件 `.claude/agents/fork.md` 不可达;`subagent_type: "fork"` 永远表示继承父已完成轮次。
84
86
  - **指令文件仍会被扫描。** 剥离发生在 harness `agent-instructions` 插件已从磁盘读取工作区 CLAUDE.md / AGENTS.md 并注入之后;本监听器只把它们挡在 child 的模型可见批次之外,不改 harness 就无法阻止磁盘扫描。fork child 的父 seed 从不改写,seed 中已有的 CLAUDE.md 会被继承。
85
87
 
@@ -95,6 +97,5 @@ harness 的 `agent-instructions` 插件会在**每个**会话(包括 Task child)
95
97
 
96
98
  - 把缺省的 `run_in_background` 视为后台的会话级策略(Claude Code 交互式的 omit=background 规则);dsh-cc 在缺省时保持前台,除非定义钉了 `background: true`。
97
99
  - 正在运行的前台 Task 的在途转后台(TUI Ctrl+B)——follow-up,而非本包存在性上的限制。
98
- - seam 插件 agent 派发。
99
100
  - 把 CC frontmatter 的 `permissionMode` / `isolation` / `memory` / `effort` 投影到 child(loader 会解析,v1 不消费)。
100
101
  - cc-shell 里的 `registerBaseAgents`(base agent 发现迁至此处;见 cc-shell README)。
@@ -171,7 +171,7 @@ export declare function assertLiveCapacity(seam: SubagentsLike, parent: Agent, s
171
171
  export declare function assertContinuableCapable(seam: SubagentsLike): void;
172
172
  /**
173
173
  * Dispatch a FOREGROUND non-fork call by collecting the child's first epoch
174
- * inline through the epoch collector (`docs/plans/2026-09-10-epoch-collector-dsh-cc.md`).
174
+ * inline through the epoch collector (`docs/plans/2026-09-05-epoch-collector-dsh-cc.md`).
175
175
  * Performs the same pin preallocation, pre-start pin write, and
176
176
  * tombstone-on-throw as `startBackground` — a foreground-launched child is
177
177
  * pinnable/resumable exactly like a background one. The child's settlement
@@ -1 +1 @@
1
- {"version":3,"file":"background-start.d.ts","sourceRoot":"","sources":["../src/background-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAElF,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,sEAAsE;AACtE,eAAO,MAAM,cAAc,UAAU,CAAA;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,KAAK,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,oCAAoC,yCAAyC,CAAA;AAE1F,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,SAAS;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;QACjD,MAAM,EAAE,KAAK,CAAA;QACb,MAAM,EAAE,WAAW,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACrC,UAAU,CAAC,EAAE,eAAe,CAAA;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,OAAO,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,SAAS;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAAE,CAAC,CAAA;KAC7F,CAAC,CAAA;IACF;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,IAAI,EAAE;QACtB,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;QACb,mEAAmE;QACnE,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE;YACP,MAAM,EAAE,SAAS;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;YACjD,MAAM,EAAE,KAAK,CAAA;YACb,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACrC,UAAU,CAAC,EAAE,eAAe,CAAA;YAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,OAAO,CAAC,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,MAAM,EAAE,WAAW,CAAA;KACpB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAClC,IAAI,IAAI,MAAM,EAAE,CAAA;IAChB;;;;;OAKG;IACH,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAA;IAChF;;;;OAIG;IACH,YAAY,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CACnE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CACtC,CAAA;CACF;AAOD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACjD,MAAM,EAAE,KAAK,CAAA;IACb,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,eAAe,CAAA;IACnC,mEAAmE;IACnE,eAAe,CAAC,EAAE,aAAa,CAAA;CAChC,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAKT;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,EACrC,UAAU,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,EAChD,QAAQ,EAAE,OAAO,GAChB,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,UAAU,CAAC,EAAE,eAAe,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,iBAAiB,CAUnB;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAef;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAkBlE;AAgFD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5D,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,IAAI,CAAA;CAAE,CAAC,CAiFxI;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgEtE"}
1
+ {"version":3,"file":"background-start.d.ts","sourceRoot":"","sources":["../src/background-start.ts"],"names":[],"mappings":"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"}
@@ -152,8 +152,9 @@ function promotedResult(childId, captureWarning) {
152
152
  + 'to the background while it ran (status async_launched, backgroundedByUser: true); treat '
153
153
  + 'this exactly like a background launch — the result arrives as a later waking message, '
154
154
  + 'so do not compose on an inline result. '
155
- + 'Control it by that id: `list_agents` for status, `send_message` to continue the same '
156
- + 'conversation, `interrupt_agent` to stop its current turn.'
155
+ + 'Control it by that id: `list_agents` for status, `send_message` to continue that same '
156
+ + 'assignment (a new task needs a fresh `subagent_fork`), `interrupt_agent` to stop its '
157
+ + 'current turn.'
157
158
  + (captureWarning !== undefined
158
159
  ? `\nresume pin capture failed: ${captureWarning}; this child will resume with legacy semantics`
159
160
  : ''),
@@ -188,7 +189,7 @@ function outcomeToResult(childId, outcome, captureWarning) {
188
189
  }
189
190
  /**
190
191
  * Dispatch a FOREGROUND non-fork call by collecting the child's first epoch
191
- * inline through the epoch collector (`docs/plans/2026-09-10-epoch-collector-dsh-cc.md`).
192
+ * inline through the epoch collector (`docs/plans/2026-09-05-epoch-collector-dsh-cc.md`).
192
193
  * Performs the same pin preallocation, pre-start pin write, and
193
194
  * tombstone-on-throw as `startBackground` — a foreground-launched child is
194
195
  * pinnable/resumable exactly like a background one. The child's settlement
@@ -342,8 +343,9 @@ export async function startBackground(seam, request, capture) {
342
343
  return {
343
344
  text: `Background subagent started (agentId: ${started.childId}). It is running in the `
344
345
  + 'background; its report or finish notice will arrive as a waking message. Control it '
345
- + 'by that id: `list_agents` for status, `send_message` to continue the same '
346
- + 'conversation, `interrupt_agent` to stop its current turn.'
346
+ + 'by that id: `list_agents` for status, `send_message` to continue that same '
347
+ + 'assignment (a new task needs a fresh `subagent_fork`), `interrupt_agent` to stop its '
348
+ + 'current turn.'
347
349
  + (captureWarning !== undefined
348
350
  ? `\nresume pin capture failed: ${captureWarning}; this child will resume with legacy semantics`
349
351
  : ''),
@@ -1 +1 @@
1
- {"version":3,"file":"background-start.js","sourceRoot":"","sources":["../src/background-start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"background-start.js","sourceRoot":"","sources":["../src/background-start.ts"],"names":[],"mappings":"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"}
package/lib/catalog.d.ts CHANGED
@@ -23,6 +23,7 @@
23
23
  import type { Context } from '@deepseek-ai/cordis';
24
24
  import type { AgentDefinition } from '@dsh-cc/claude-code-agents';
25
25
  import type { AgentRegistry } from './registry.ts';
26
+ import { PluginAgentIndex } from './plugin-agents.ts';
26
27
  /** Default order slot for the catalog section (tool guidance owns 100–199). */
27
28
  export declare const CATALOG_SECTION_ORDER = 110;
28
29
  /** The section's unique name. */
@@ -35,17 +36,27 @@ export declare const CATALOG_SECTION_NAME = "cc:subagent-catalog";
35
36
  export declare class AgentCatalogSection {
36
37
  private readonly ctx;
37
38
  private readonly registry;
39
+ private readonly pluginIndex;
38
40
  /** Sorted definitions per workspace root, populated once discovery lands. */
39
41
  private readonly snapshot;
40
42
  /** Roots whose background discovery has already been kicked off. */
41
43
  private readonly seen;
44
+ /**
45
+ * The scoped ids whose providers passed the brand guard when
46
+ * `subagent/provider-added` delivered them — so a later
47
+ * `subagent/provider-removed` (which carries only the NAME, not the
48
+ * provider) can be brand-checked by membership here.
49
+ */
50
+ private readonly brandedIds;
42
51
  /**
43
52
  * Create a catalog cache holder bound to a registry.
44
53
  * @param ctx - the host context whose `system-prompt` seam and
45
54
  * `system-prompt/change` channel drive refresh.
46
55
  * @param registry - the per-workspace definition cache to load from.
56
+ * @param pluginIndex - the live plugin agent view (defaults to a fresh
57
+ * index over this context).
47
58
  */
48
- constructor(ctx: Context, registry: AgentRegistry);
59
+ constructor(ctx: Context, registry: AgentRegistry, pluginIndex?: PluginAgentIndex);
49
60
  /** Register the catalog section plus its assemble-waterfall reconciliation.
50
61
  *
51
62
  * The seam is fetched with `ctx.get` rather than the `ctx.systemPrompt`
@@ -86,9 +97,11 @@ export declare class AgentCatalogSection {
86
97
  * Mount the single global catalog section.
87
98
  * @param ctx - the plug context carrying the `systemPrompt` seam.
88
99
  * @param registry - the per-workspace definition cache.
100
+ * @param pluginIndex - the live plugin agent view (defaults to a fresh index
101
+ * over this context).
89
102
  * @returns the exact Cordis effect disposer, or undefined when the seam is absent.
90
103
  */
91
- export declare function mountAgentCatalog(ctx: Context, registry: AgentRegistry): (() => void) | undefined;
104
+ export declare function mountAgentCatalog(ctx: Context, registry: AgentRegistry, pluginIndex?: PluginAgentIndex): (() => void) | undefined;
92
105
  /**
93
106
  * Compose the section text from the sorted definitions. Returns '' when empty
94
107
  * so the section contributes nothing to the prompt.
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,MAAM,CAAA;AAExC,iCAAiC;AACjC,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AAoCzD;;;;GAIG;AACH,qBAAa,mBAAmB;IAa5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAb3B,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IAEzC;;;;;OAKG;gBAEgB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,aAAa;IAG1C;;;;;;;;;;;;;;;;;iFAiB6E;IAC7E,KAAK,IAAI,MAAM,IAAI;IA0CnB;;;;;OAKG;IACH,OAAO,CAAC,MAAM;IAQd;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;CAcnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,aAAa,GACtB,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAG1B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAUtE"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAyB,MAAM,oBAAoB,CAAA;AAE5E,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,MAAM,CAAA;AAExC,iCAAiC;AACjC,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AAoCzD;;;;GAIG;AACH,qBAAa,mBAAmB;IAsB5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAvB9B,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAE/C;;;;;;;OAOG;gBAEgB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,aAAa,EACvB,WAAW,GAAE,gBAA4C;IAG5E;;;;;;;;;;;;;;;;;iFAiB6E;IAC7E,KAAK,IAAI,MAAM,IAAI;IAwEnB;;;;;OAKG;IACH,OAAO,CAAC,MAAM;IAwBd;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;CAcnB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,aAAa,EACvB,WAAW,CAAC,EAAE,gBAAgB,GAC7B,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAG1B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAUtE"}
package/lib/catalog.js CHANGED
@@ -21,6 +21,7 @@
21
21
  * @module @dsh-cc/subagent-task/catalog
22
22
  */
23
23
  import { cwdOf } from '@dsh-cc/memory';
24
+ import { PluginAgentIndex, isPluginAgentProvider } from "./plugin-agents.js";
24
25
  /** Default order slot for the catalog section (tool guidance owns 100–199). */
25
26
  export const CATALOG_SECTION_ORDER = 110;
26
27
  /** The section's unique name. */
@@ -64,19 +65,30 @@ function agentFromScope(scope) {
64
65
  export class AgentCatalogSection {
65
66
  ctx;
66
67
  registry;
68
+ pluginIndex;
67
69
  /** Sorted definitions per workspace root, populated once discovery lands. */
68
70
  snapshot = new Map();
69
71
  /** Roots whose background discovery has already been kicked off. */
70
72
  seen = new Set();
73
+ /**
74
+ * The scoped ids whose providers passed the brand guard when
75
+ * `subagent/provider-added` delivered them — so a later
76
+ * `subagent/provider-removed` (which carries only the NAME, not the
77
+ * provider) can be brand-checked by membership here.
78
+ */
79
+ brandedIds = new Set();
71
80
  /**
72
81
  * Create a catalog cache holder bound to a registry.
73
82
  * @param ctx - the host context whose `system-prompt` seam and
74
83
  * `system-prompt/change` channel drive refresh.
75
84
  * @param registry - the per-workspace definition cache to load from.
85
+ * @param pluginIndex - the live plugin agent view (defaults to a fresh
86
+ * index over this context).
76
87
  */
77
- constructor(ctx, registry) {
88
+ constructor(ctx, registry, pluginIndex = new PluginAgentIndex(ctx)) {
78
89
  this.ctx = ctx;
79
90
  this.registry = registry;
91
+ this.pluginIndex = pluginIndex;
80
92
  }
81
93
  /** Register the catalog section plus its assemble-waterfall reconciliation.
82
94
  *
@@ -128,7 +140,40 @@ export class AgentCatalogSection {
128
140
  : section),
129
141
  };
130
142
  });
143
+ // Event-driven plugin invalidation (plan §9.3): the seam emits
144
+ // `subagent/provider-added` / `subagent/provider-removed` on the shared
145
+ // cordis bus. The events are declared via module augmentation in
146
+ // @deepseek-ai/dsh-subagent, which this package does not import — the
147
+ // augmentation is not in its type graph, so the same cast-through-
148
+ // `ctx.on` pattern other packages use applies (see
149
+ // packages/ui/tui/src/harness/driver-catalog.ts). The emit fires DIRECTLY
150
+ // from the listener — it is not mid-assembly, so no deferral is needed.
151
+ // A changed definition re-registers as remove+add, so no fingerprinting.
152
+ const providerAdded = 'subagent/provider-added';
153
+ const providerRemoved = 'subagent/provider-removed';
154
+ // Seed with providers that mounted BEFORE this listener started
155
+ // (production mounts cc-shell-glue before subagent-task): their add
156
+ // events already fired, but they are live in the index, so their
157
+ // removals must still invalidate the prompt — a removal is recognized
158
+ // only by membership in `brandedIds`.
159
+ for (const id of this.pluginIndex.knownIds())
160
+ this.brandedIds.add(id);
161
+ const disposeAdded = this.ctx.on(providerAdded, (provider) => {
162
+ if (!isPluginAgentProvider(provider))
163
+ return;
164
+ this.brandedIds.add(provider.name);
165
+ this.ctx.emit('system-prompt/change');
166
+ });
167
+ const disposeRemoved = this.ctx.on(providerRemoved, (name) => {
168
+ // The removed event carries only the name; membership in `brandedIds`
169
+ // proves the provider passed the brand guard when it was added.
170
+ if (typeof name !== 'string' || !this.brandedIds.delete(name))
171
+ return;
172
+ this.ctx.emit('system-prompt/change');
173
+ });
131
174
  return () => {
175
+ disposeAdded();
176
+ disposeRemoved();
132
177
  disposeListener();
133
178
  disposeSection();
134
179
  };
@@ -145,7 +190,23 @@ export class AgentCatalogSection {
145
190
  return '';
146
191
  const root = cwdOf(agent);
147
192
  this.ensureDefs(root);
148
- return renderCatalog(this.snapshot.get(root) ?? []);
193
+ // Synchronous live scan, no caching: plugin mounts are effect-scoped and
194
+ // may appear or disappear between renders. SIDE-EFFECT-FREE (plan §9.3):
195
+ // invalidation rides the seam's lifecycle events (subscribed in `start`),
196
+ // so render only reads current state.
197
+ const pluginEntries = this.pluginIndex.list();
198
+ const merged = [
199
+ ...(this.snapshot.get(root) ?? []),
200
+ ...pluginEntries.map(entry => ({
201
+ // Plugin entries render under their scoped id (`plugin:agent`), with
202
+ // the provider definition's whenToUse as the guide line. The guard is
203
+ // definition-presence — builtin seam providers (spawn/fork/…) carry no
204
+ // definition and are excluded naturally by the index.
205
+ agentType: entry.id,
206
+ whenToUse: entry.definition.whenToUse,
207
+ })),
208
+ ].sort((a, b) => a.agentType.localeCompare(b.agentType));
209
+ return renderCatalog(merged);
149
210
  }
150
211
  /**
151
212
  * Kick background discovery for one workspace root exactly once. When it
@@ -169,12 +230,14 @@ export class AgentCatalogSection {
169
230
  * Mount the single global catalog section.
170
231
  * @param ctx - the plug context carrying the `systemPrompt` seam.
171
232
  * @param registry - the per-workspace definition cache.
233
+ * @param pluginIndex - the live plugin agent view (defaults to a fresh index
234
+ * over this context).
172
235
  * @returns the exact Cordis effect disposer, or undefined when the seam is absent.
173
236
  */
174
- export function mountAgentCatalog(ctx, registry) {
237
+ export function mountAgentCatalog(ctx, registry, pluginIndex) {
175
238
  if (ctx.get('systemPrompt') === undefined)
176
239
  return undefined;
177
- return new AgentCatalogSection(ctx, registry).start();
240
+ return new AgentCatalogSection(ctx, registry, pluginIndex).start();
178
241
  }
179
242
  /**
180
243
  * Compose the section text from the sorted definitions. Returns '' when empty
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The dsh-cc epoch collector: inline first-epoch collection of a continuable
3
3
  * subagent child with zero harness changes (normative design:
4
- * `docs/plans/2026-09-10-epoch-collector-dsh-cc.md`).
4
+ * `docs/plans/2026-09-05-epoch-collector-dsh-cc.md`).
5
5
  *
6
6
  * One shared `subagent/start` + `subagent/end` listener pair and one watch
7
7
  * map (`Map<childId, { runId?, resolve }>`) serve every collector of the
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The dsh-cc epoch collector: inline first-epoch collection of a continuable
3
3
  * subagent child with zero harness changes (normative design:
4
- * `docs/plans/2026-09-10-epoch-collector-dsh-cc.md`).
4
+ * `docs/plans/2026-09-05-epoch-collector-dsh-cc.md`).
5
5
  *
6
6
  * One shared `subagent/start` + `subagent/end` listener pair and one watch
7
7
  * map (`Map<childId, { runId?, resolve }>`) serve every collector of the
package/lib/index.d.ts CHANGED
@@ -18,6 +18,7 @@
18
18
  import type { Context } from '@deepseek-ai/cordis';
19
19
  import { type ResumePinsConfig } from './resume-capture.ts';
20
20
  export { AgentRegistry } from './registry.ts';
21
+ export { PluginAgentIndex } from './plugin-agents.ts';
21
22
  export { registerTaskTool, TASK_TOOL, MAX_LIVE_CONTINUABLE_CHILDREN, CLAUDE_CODE_DISABLE_BACKGROUND_TASKS, backgroundTasksDisabled, } from './tool.ts';
22
23
  export { collectFirstEpoch, collectorFor, collectorKey, registerCollector, unregisterCollector, collectorsForSession, registeredCollectorCount, markCollectedForSuppression, releaseCollectedForSuppression, isCollectedForSuppression, } from './epoch-collector.ts';
23
24
  export type { CollectorRegistration, EpochOutcome, EpochTerminal, } from './epoch-collector.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAOlD,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAO5E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,6BAA6B,EAC7B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,qBAAqB,EACrB,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EACL,+BAA+B,EAC/B,WAAW,EACX,mBAAmB,GACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEnF,wBAAwB;AACxB,eAAO,MAAM,IAAI,qBAAqB,CAAA;AAEtC,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,2BAA2B,CAAA;AAK/D,eAAO,MAAM,uBAAuB,QAwBxB,CAAA;AAEZ;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAU7E;AAED,4BAA4B;AAC5B,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;CACvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,gBAAqB,GAAG,IAAI,CAuBvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAOlD,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAQ5E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,6BAA6B,EAC7B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,qBAAqB,EACrB,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EACL,+BAA+B,EAC/B,WAAW,EACX,mBAAmB,GACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEnF,wBAAwB;AACxB,eAAO,MAAM,IAAI,qBAAqB,CAAA;AAEtC,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,2BAA2B,CAAA;AAK/D,eAAO,MAAM,uBAAuB,QA8BxB,CAAA;AAEZ;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAU7E;AAED,4BAA4B;AAC5B,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;CACvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,gBAAqB,GAAG,IAAI,CA0BvE"}
package/lib/index.js CHANGED
@@ -19,11 +19,13 @@ import { PinStore } from '@dsh-cc/subagent-resume-pins';
19
19
  import { collectorFor, collectorsForSession, registeredCollectorCount, } from "./epoch-collector.js";
20
20
  import { SpawnPinCapture } from "./resume-capture.js";
21
21
  import { AgentRegistry } from "./registry.js";
22
+ import { PluginAgentIndex } from "./plugin-agents.js";
22
23
  import { registerTaskTool } from "./tool.js";
23
24
  import { mountSettledNoticeSuppression } from "./suppress-settled.js";
24
25
  import { mountAgentCatalog } from "./catalog.js";
25
26
  import { mountStripWorkspaceInstructions } from "./strip-instructions.js";
26
27
  export { AgentRegistry } from "./registry.js";
28
+ export { PluginAgentIndex } from "./plugin-agents.js";
27
29
  export { registerTaskTool, TASK_TOOL, MAX_LIVE_CONTINUABLE_CHILDREN, CLAUDE_CODE_DISABLE_BACKGROUND_TASKS, backgroundTasksDisabled, } from "./tool.js";
28
30
  export { collectFirstEpoch, collectorFor, collectorKey, registerCollector, unregisterCollector, collectorsForSession, registeredCollectorCount, markCollectedForSuppression, releaseCollectedForSuppression, isCollectedForSuppression, } from "./epoch-collector.js";
29
31
  export { mountAgentCatalog } from "./catalog.js";
@@ -50,8 +52,14 @@ export const BACKGROUND_SECTION_TEXT = [
50
52
  ' synchronous collection. Explicit true/false always win over the pin.',
51
53
  '- A background child\'s report — or its finish notice when it ends without reporting — arrives',
52
54
  ' as a waking message; do not poll.',
53
- '- Control the child by that id: `list_agents` for status, `send_message` to continue the same',
54
- ' conversation (only the agent that started the child may continue it), `interrupt_agent` to',
55
+ '- When you delegate: one task, one instance. A new task is always a fresh `subagent_fork`',
56
+ ' spawn call (a plain spawn never the `fork` subagent_type, which inherits your context),',
57
+ ' even when an idle child of the same type is listed. `send_message` continues the target\'s',
58
+ ' current assignment only; the child resumes inside its full prior conversation with its',
59
+ ' original definition snapshot, so never use it to hand an agent you started a new task.',
60
+ ' (A child reporting its own result to its parent via `send_message` is always fine.)',
61
+ '- Control the child by that id: `list_agents` for status, `send_message` to continue its current',
62
+ ' assignment (only the agent that started the child may continue it), `interrupt_agent` to',
55
63
  ' stop its current turn.',
56
64
  '- A foreground wait may be user-promoted (Ctrl+B) to background while it runs: if a tool result',
57
65
  ' carries `status: \'async_launched\'` with `backgroundedByUser: true`, treat it exactly like a',
@@ -104,8 +112,11 @@ export function apply(ctx, config = {}) {
104
112
  ? new SpawnPinCapture(ctx, sharedStore)
105
113
  : undefined
106
114
  : new SpawnPinCapture(ctx, sharedStore ?? pins.store ?? new PinStore(pins.pinsRoot));
107
- registerTaskTool(ctx, registry, capture);
108
- mountAgentCatalog(ctx, registry);
115
+ // One PluginAgentIndex serves both dispatch and catalog; it reads the seam
116
+ // lazily on every call so effect-scoped plugin mounts after apply() are seen.
117
+ const pluginIndex = new PluginAgentIndex(ctx);
118
+ registerTaskTool(ctx, registry, capture, pluginIndex);
119
+ mountAgentCatalog(ctx, registry, pluginIndex);
109
120
  mountBackgroundSection(ctx);
110
121
  mountStripWorkspaceInstructions(ctx);
111
122
  mountSettledNoticeSuppression(ctx);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAyB,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAA;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,6BAA6B,EAC7B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EACL,+BAA+B,EAC/B,WAAW,EACX,mBAAmB,GACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEnF,wBAAwB;AACxB,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAA;AAEtC,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAA;AAE/D,0EAA0E;AAC1E,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAEpC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,yBAAyB;IACzB,EAAE;IACF,iGAAiG;IACjG,6FAA6F;IAC7F,yFAAyF;IACzF,yFAAyF;IACzF,8EAA8E;IAC9E,4FAA4F;IAC5F,6EAA6E;IAC7E,mFAAmF;IACnF,wEAAwE;IACxE,gGAAgG;IAChG,qCAAqC;IACrC,2FAA2F;IAC3F,6FAA6F;IAC7F,8FAA8F;IAC9F,0FAA0F;IAC1F,0FAA0F;IAC1F,uFAAuF;IACvF,kGAAkG;IAClG,4FAA4F;IAC5F,0BAA0B;IAC1B,iGAAiG;IACjG,iGAAiG;IACjG,wEAAwE;IACxE,8FAA8F;IAC9F,mCAAmC;IACnC,2FAA2F;IAC3F,yDAAyD;CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAEtB,CAAA;IACb,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,wBAAwB;QAC/B,IAAI,EAAE,uBAAuB;KAC9B,CAAC,CAAA;AACJ,CAAC;AAYD;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,SAA2B,EAAE;IAC/D,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAA;IAC9B,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAyB,CAAA;IACrE,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,OAAO,GACX,IAAI,KAAK,SAAS;QAChB,CAAC,CAAC,WAAW,KAAK,SAAS;YACzB,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC;YACvC,CAAC,CAAC,SAAS;QACb,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxF,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,WAAW,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC7C,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IACrD,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IAC7C,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC3B,+BAA+B,CAAC,GAAG,CAAC,CAAA;IACpC,6BAA6B,CAAC,GAAG,CAAC,CAAA;IAClC,wBAAwB,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,wBAAwB,CAAC,GAAY;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,IAIhB,CAAA;IACD,MAAM,eAAe,GAAG;QACtB,YAAY;QACZ,oBAAoB;QACpB,wBAAwB;KACzB,CAAA;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAA;IACtD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAA;IAClD,CAAC;IACD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,KAAK,eAAe;YAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAA;IAC5G,CAAC,EAAE,8EAA8E,CAAC,CAAA;AACpF,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Live enumeration of plugin agent providers over the `subagents` seam.
3
+ *
4
+ * The CC Task tool treats the seam's registered agent providers purely as a
5
+ * DEFINITION source: `cc-plugin-loader`'s `mountAgents` registers one
6
+ * `AgentProvider` per plugin agent under the scoped id
7
+ * `` `${pluginName}:${agentType}` `` (the `namespacePrefix` mechanism), and
8
+ * this index enumerates them live on every call — plugin mounts are
9
+ * effect-scoped Cordis contexts that may appear (or disappear) after this
10
+ * plugin's `apply()`, so nothing is cached.
11
+ *
12
+ * Builtin providers (`spawn`, `fork`, …) are excluded naturally: they carry
13
+ * no `definition`.
14
+ *
15
+ * @module @dsh-cc/subagent-task/plugin-agents
16
+ */
17
+ import type { Context } from '@deepseek-ai/cordis';
18
+ import type { AgentDefinition } from '@dsh-cc/claude-code-agents';
19
+ import type { SubagentsLike } from './background-start.ts';
20
+ /** Options for the index, mostly injectable seams for tests. */
21
+ export interface PluginAgentIndexOptions {
22
+ /**
23
+ * Override the seam lookup (hermetic tests). Defaults to
24
+ * `ctx.get('subagents')`, re-read on every call.
25
+ */
26
+ seam?: () => SubagentsLike | undefined;
27
+ }
28
+ /**
29
+ * The structural guard for a plugin agent provider: a `start` function, a
30
+ * string `name` containing `:` (the scoped `plugin:agent` id), and a
31
+ * `definition` with a string `agentType` and `systemPrompt`. Builtin
32
+ * providers (spawn/fork/…) carry no definition and are excluded naturally.
33
+ *
34
+ * The guard additionally REQUIRES the loader brand (`Symbol.for(
35
+ * 'dsh-cc.plugin-agent-provider')`, plan §9.4): the structural shape alone is
36
+ * an accidental protocol any foreign provider could fake, so only providers
37
+ * the loader actually created are adopted.
38
+ *
39
+ * Precondition (load-bearing): the provider only carries a scoped name when
40
+ * `mountAgents` was given a `namespacePrefix` — no prefix at mount ⇒ the
41
+ * agent is undiscoverable: neither addressable by Task nor listed in the
42
+ * catalog.
43
+ */
44
+ export declare function isPluginAgentProvider(provider: unknown): provider is {
45
+ name: string;
46
+ start: unknown;
47
+ definition: AgentDefinition;
48
+ };
49
+ /**
50
+ * A live view over the seam's plugin agent providers. All methods read the
51
+ * seam lazily on EVERY call so effect-scoped plugin mounts that appear after
52
+ * `apply()` are still discovered.
53
+ */
54
+ export declare class PluginAgentIndex {
55
+ private readonly ctx;
56
+ private readonly seamOverride;
57
+ constructor(ctx: Context, options?: PluginAgentIndexOptions);
58
+ /** The seam, re-read on every call (lazy: mounts may appear after apply). */
59
+ private getSeam;
60
+ /**
61
+ * List every plugin agent currently registered on the seam, as
62
+ * `{ id, definition }` pairs. The scan is synchronous and uncached.
63
+ */
64
+ list(): {
65
+ id: string;
66
+ definition: AgentDefinition;
67
+ }[];
68
+ /**
69
+ * Resolve one plugin agent by its exact scoped id (`plugin:agent`).
70
+ * Bare plugin agent names are NOT addressable — matching CC, where plugin
71
+ * agents are addressed only by scoped id.
72
+ */
73
+ resolve(type: string): AgentDefinition | undefined;
74
+ /** A snapshot of the currently known scoped ids (for catalog diffing). */
75
+ knownIds(): string[];
76
+ }
77
+ //# sourceMappingURL=plugin-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-agents.d.ts","sourceRoot":"","sources":["../src/plugin-agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAiB1D,gEAAgE;AAChE,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,aAAa,GAAG,SAAS,CAAA;CACvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,UAAU,EAAE,eAAe,CAAA;CAC5B,CASA;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+C;gBAEhE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B;IAK/D,6EAA6E;IAC7E,OAAO,CAAC,OAAO;IAKf;;;OAGG;IACH,IAAI,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,CAAA;KAAE,EAAE;IAerD;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIlD,0EAA0E;IAC1E,QAAQ,IAAI,MAAM,EAAE;CAGrB"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Live enumeration of plugin agent providers over the `subagents` seam.
3
+ *
4
+ * The CC Task tool treats the seam's registered agent providers purely as a
5
+ * DEFINITION source: `cc-plugin-loader`'s `mountAgents` registers one
6
+ * `AgentProvider` per plugin agent under the scoped id
7
+ * `` `${pluginName}:${agentType}` `` (the `namespacePrefix` mechanism), and
8
+ * this index enumerates them live on every call — plugin mounts are
9
+ * effect-scoped Cordis contexts that may appear (or disappear) after this
10
+ * plugin's `apply()`, so nothing is cached.
11
+ *
12
+ * Builtin providers (`spawn`, `fork`, …) are excluded naturally: they carry
13
+ * no `definition`.
14
+ *
15
+ * @module @dsh-cc/subagent-task/plugin-agents
16
+ */
17
+ /**
18
+ * The loader's brand key, duplicated as a `Symbol.for` lookup instead of a
19
+ * runtime import of `@dsh-cc/plugin-loader` (a devDependency — a runtime
20
+ * import here would break published consumers). Kept in lockstep with
21
+ * `PLUGIN_AGENT_PROVIDER_BRAND` in the loader; both resolve to the same
22
+ * registry symbol.
23
+ */
24
+ const PLUGIN_AGENT_PROVIDER_BRAND = Symbol.for('dsh-cc.plugin-agent-provider');
25
+ /** Whether a value was created by the loader as a plugin agent provider. */
26
+ function hasLoaderBrand(value) {
27
+ return typeof value === 'object' && value !== null
28
+ && value[PLUGIN_AGENT_PROVIDER_BRAND] === true;
29
+ }
30
+ /**
31
+ * The structural guard for a plugin agent provider: a `start` function, a
32
+ * string `name` containing `:` (the scoped `plugin:agent` id), and a
33
+ * `definition` with a string `agentType` and `systemPrompt`. Builtin
34
+ * providers (spawn/fork/…) carry no definition and are excluded naturally.
35
+ *
36
+ * The guard additionally REQUIRES the loader brand (`Symbol.for(
37
+ * 'dsh-cc.plugin-agent-provider')`, plan §9.4): the structural shape alone is
38
+ * an accidental protocol any foreign provider could fake, so only providers
39
+ * the loader actually created are adopted.
40
+ *
41
+ * Precondition (load-bearing): the provider only carries a scoped name when
42
+ * `mountAgents` was given a `namespacePrefix` — no prefix at mount ⇒ the
43
+ * agent is undiscoverable: neither addressable by Task nor listed in the
44
+ * catalog.
45
+ */
46
+ export function isPluginAgentProvider(provider) {
47
+ if (!hasLoaderBrand(provider))
48
+ return false;
49
+ const candidate = provider;
50
+ if (typeof candidate.name !== 'string' || !candidate.name.includes(':'))
51
+ return false;
52
+ if (typeof candidate.start !== 'function')
53
+ return false;
54
+ const def = candidate.definition;
55
+ if (typeof def !== 'object' || def === null)
56
+ return false;
57
+ const shape = def;
58
+ return typeof shape.agentType === 'string' && typeof shape.systemPrompt === 'string';
59
+ }
60
+ /**
61
+ * A live view over the seam's plugin agent providers. All methods read the
62
+ * seam lazily on EVERY call so effect-scoped plugin mounts that appear after
63
+ * `apply()` are still discovered.
64
+ */
65
+ export class PluginAgentIndex {
66
+ ctx;
67
+ seamOverride;
68
+ constructor(ctx, options = {}) {
69
+ this.ctx = ctx;
70
+ this.seamOverride = options.seam;
71
+ }
72
+ /** The seam, re-read on every call (lazy: mounts may appear after apply). */
73
+ getSeam() {
74
+ if (this.seamOverride !== undefined)
75
+ return this.seamOverride();
76
+ return this.ctx.get('subagents');
77
+ }
78
+ /**
79
+ * List every plugin agent currently registered on the seam, as
80
+ * `{ id, definition }` pairs. The scan is synchronous and uncached.
81
+ */
82
+ list() {
83
+ const seam = this.getSeam();
84
+ // The seam is duck-typed: a host (or test harness) may expose a partial
85
+ // seam without `list` — treat that as "no plugin agents", not a crash.
86
+ if (seam === undefined || typeof seam.list !== 'function')
87
+ return [];
88
+ const entries = [];
89
+ for (const name of seam.list()) {
90
+ const provider = seam.getProvider(name);
91
+ if (isPluginAgentProvider(provider)) {
92
+ entries.push({ id: provider.name, definition: provider.definition });
93
+ }
94
+ }
95
+ return entries.sort((a, b) => a.id.localeCompare(b.id));
96
+ }
97
+ /**
98
+ * Resolve one plugin agent by its exact scoped id (`plugin:agent`).
99
+ * Bare plugin agent names are NOT addressable — matching CC, where plugin
100
+ * agents are addressed only by scoped id.
101
+ */
102
+ resolve(type) {
103
+ return this.list().find(entry => entry.id === type)?.definition;
104
+ }
105
+ /** A snapshot of the currently known scoped ids (for catalog diffing). */
106
+ knownIds() {
107
+ return this.list().map(entry => entry.id);
108
+ }
109
+ }
110
+ //# sourceMappingURL=plugin-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-agents.js","sourceRoot":"","sources":["../src/plugin-agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH;;;;;;GAMG;AACH,MAAM,2BAA2B,GAAkB,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;AAE7F,4EAA4E;AAC5E,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;WAC5C,KAAiC,CAAC,2BAA2B,CAAC,KAAK,IAAI,CAAA;AAC/E,CAAC;AAWD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAiB;IAKrD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,MAAM,SAAS,GAAG,QAAqE,CAAA;IACvF,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACrF,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAA;IACvD,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAA;IAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IACzD,MAAM,KAAK,GAAG,GAAsD,CAAA;IACpE,OAAO,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAA;AACtF,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IACV,GAAG,CAAS;IACZ,YAAY,CAA+C;IAE5E,YAAY,GAAY,EAAE,UAAmC,EAAE;QAC7D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAA;IAClC,CAAC;IAED,6EAA6E;IACrE,OAAO;QACb,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,YAAY,EAAE,CAAA;QAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAA8B,CAAA;IAC/D,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC3B,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,EAAE,CAAA;QACpE,MAAM,OAAO,GAAkD,EAAE,CAAA;QACjE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACvC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACzD,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,UAAU,CAAA;IACjE,CAAC;IAED,0EAA0E;IAC1E,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC3C,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Duplicate-notice suppression for inline-collected subagent epochs
3
- * (`docs/plans/2026-09-10-epoch-collector-dsh-cc.md` §5): a pre-step
3
+ * (`docs/plans/2026-09-05-epoch-collector-dsh-cc.md` §5): a pre-step
4
4
  * waterfall listener that DROPs pending `subagent-settled` messages whose
5
5
  * `senderSessionId` is in the pop-once "collected" set, so a collected
6
6
  * epoch's settlement account lives only in the tool result and never also
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Duplicate-notice suppression for inline-collected subagent epochs
3
- * (`docs/plans/2026-09-10-epoch-collector-dsh-cc.md` §5): a pre-step
3
+ * (`docs/plans/2026-09-05-epoch-collector-dsh-cc.md` §5): a pre-step
4
4
  * waterfall listener that DROPs pending `subagent-settled` messages whose
5
5
  * `senderSessionId` is in the pop-once "collected" set, so a collected
6
6
  * epoch's settlement account lives only in the tool result and never also
package/lib/tool.d.ts CHANGED
@@ -18,6 +18,10 @@
18
18
  * task text as the first user message, a routes-resolved `agentOptions`
19
19
  * override, and the definition's tool restriction (sanitized of tool names
20
20
  * this composition no longer registers).
21
+ * - A type matching a plugin agent's scoped id (`plugin:agent`, from the
22
+ * `subagents` seam's namespaced providers) → the identical fold: the
23
+ * provider's `AgentDefinition` is dispatched through the same `spawn`
24
+ * provider mechanics; no new start path exists for plugin agents.
21
25
  * - Any other type → an error result listing the available types.
22
26
  *
23
27
  * The seam's capability contract (`assertCapabilities`) is honoured
@@ -33,6 +37,7 @@
33
37
  */
34
38
  import type { Context } from '@deepseek-ai/cordis';
35
39
  import type { AgentRegistry } from './registry.ts';
40
+ import { PluginAgentIndex } from './plugin-agents.ts';
36
41
  import { SpawnPinCapture } from './resume-capture.ts';
37
42
  export { MAX_LIVE_CONTINUABLE_CHILDREN, CLAUDE_CODE_DISABLE_BACKGROUND_TASKS, backgroundTasksDisabled, } from './background-start.ts';
38
43
  /** The registered tool name (the CC display mapping surfaces it as `Task`). */
@@ -45,5 +50,5 @@ export declare const TASK_TOOL = "subagent_fork";
45
50
  * no `resumePins` plugin config) writes no pins and runs no preflight.
46
51
  * @returns the registration disposer, or undefined when the tools seam is absent.
47
52
  */
48
- export declare function registerTaskTool(ctx: Context, registry: AgentRegistry, capture?: SpawnPinCapture): (() => void) | undefined;
53
+ export declare function registerTaskTool(ctx: Context, registry: AgentRegistry, capture?: SpawnPinCapture, pluginIndex?: PluginAgentIndex): (() => void) | undefined;
49
54
  //# sourceMappingURL=tool.d.ts.map
package/lib/tool.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAYrD,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAE9B,+EAA+E;AAC/E,eAAO,MAAM,SAAS,kBAAkB,CAAA;AA8CxC;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAkL1B"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAOlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAYrD,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAE9B,+EAA+E;AAC/E,eAAO,MAAM,SAAS,kBAAkB,CAAA;AA8CxC;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,eAAe,EACzB,WAAW,GAAE,gBAA4C,GACxD,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CA8M1B"}
package/lib/tool.js CHANGED
@@ -18,6 +18,10 @@
18
18
  * task text as the first user message, a routes-resolved `agentOptions`
19
19
  * override, and the definition's tool restriction (sanitized of tool names
20
20
  * this composition no longer registers).
21
+ * - A type matching a plugin agent's scoped id (`plugin:agent`, from the
22
+ * `subagents` seam's namespaced providers) → the identical fold: the
23
+ * provider's `AgentDefinition` is dispatched through the same `spawn`
24
+ * provider mechanics; no new start path exists for plugin agents.
21
25
  * - Any other type → an error result listing the available types.
22
26
  *
23
27
  * The seam's capability contract (`assertCapabilities`) is honoured
@@ -34,6 +38,7 @@
34
38
  import { defineTool } from '@dsh-cc/tools';
35
39
  import { cwdOf } from '@dsh-cc/memory';
36
40
  import { toAgentOptions } from '@dsh-cc/model-aliases';
41
+ import { PluginAgentIndex } from "./plugin-agents.js";
37
42
  import { preloadDeferredFilterTools, renderPreloadLines } from "./preload-tools.js";
38
43
  import { sanitizeToolFilter } from "./sanitize-filter.js";
39
44
  import { backgroundTasksDisabled, collectForeground, preparedBackground, startBackground, wantsBackground, } from "./background-start.js";
@@ -72,7 +77,7 @@ const RESERVED_TOOL_NAMES = ['subagent', 'workflow'];
72
77
  * no `resumePins` plugin config) writes no pins and runs no preflight.
73
78
  * @returns the registration disposer, or undefined when the tools seam is absent.
74
79
  */
75
- export function registerTaskTool(ctx, registry, capture) {
80
+ export function registerTaskTool(ctx, registry, capture, pluginIndex = new PluginAgentIndex(ctx)) {
76
81
  const tools = ctx.get('tools');
77
82
  if (tools === undefined)
78
83
  return undefined;
@@ -85,7 +90,8 @@ export function registerTaskTool(ctx, registry, capture) {
85
90
  name: TASK_TOOL,
86
91
  description: 'Delegate a well-scoped task to a subagent. The child starts with a fresh conversation: '
87
92
  + 'write a self-contained prompt (paths, constraints, what to return). Pass `subagent_type` '
88
- + 'to run a named agent from the session workspace (`.claude/agents`) see the "Available '
93
+ + 'to run a named agent from the session workspace (`.claude/agents`) or a plugin agent by '
94
+ + 'its scoped id (`plugin:agent`) — see the "Available '
89
95
  + 'subagents" section of the system prompt for the current list. Omit `subagent_type` (or '
90
96
  + 'use "general-purpose") for a plain spawn that inherits your tools but not your history. '
91
97
  + 'Pass `subagent_type: "fork"` to inherit completed parent turns (and the prompt cache, '
@@ -98,6 +104,12 @@ export function registerTaskTool(ctx, registry, capture) {
98
104
  + 'are told when it finishes via a waking message; synthesize on the wake, do not poll. '
99
105
  + 'A definition with `background: true` backgrounds on omit; pass `run_in_background: false` '
100
106
  + 'when this turn needs that child\u2019s result \u2014 explicit true/false always win over the pin. '
107
+ + 'One task, one instance: every new task is a fresh call to this tool (a plain spawn \u2014 '
108
+ + 'never `subagent_type: "fork"`, which inherits your context), even when an idle child of '
109
+ + 'the same type exists. `send_message` continues only an existing child\u2019s CURRENT '
110
+ + 'assignment (steer it in flight, same-task follow-ups); a continued child resumes inside '
111
+ + 'its full prior conversation with its original definition snapshot. (Reporting your own '
112
+ + 'result to your parent via `send_message` is always fine.) '
101
113
  + 'Continue a background child later with `send_message` addressed to its id; inspect it with '
102
114
  + '`list_agents` and stop its current turn with `interrupt_agent`. '
103
115
  + 'A foreground wait may be user-promoted to background while it runs: if a tool result '
@@ -107,9 +119,11 @@ export function registerTaskTool(ctx, registry, capture) {
107
119
  parameters: {
108
120
  subagent_type: {
109
121
  type: 'string',
110
- description: 'Named agent from `.claude/agents`, or the sentinels "general-purpose" (fresh spawn) '
122
+ description: 'Named agent from `.claude/agents`, a plugin agent by its scoped id ("plugin:agent"), '
123
+ + 'or the sentinels "general-purpose" (fresh spawn) '
111
124
  + 'and "fork" (inherit completed parent turns). "fork" is reserved and wins over a '
112
- + 'workspace file of the same name.',
125
+ + 'workspace file of the same name. Bare plugin agent names are not addressable — use '
126
+ + 'the full scoped id.',
113
127
  },
114
128
  description: {
115
129
  type: 'string',
@@ -181,48 +195,65 @@ export function registerTaskTool(ctx, registry, capture) {
181
195
  return settle(run);
182
196
  }
183
197
  const root = cwdOf(agent);
184
- const definition = await registry.resolve(root, type);
198
+ let definition = await registry.resolve(root, type);
185
199
  if (definition === undefined) {
186
- const available = (await registry.list(root)).map(def => def.agentType).join(', ');
200
+ // Fall through to the seam's plugin agents (exact scoped-id match).
201
+ // Builtin providers are excluded by the index's structural guard.
202
+ definition = pluginIndex.resolve(type);
203
+ }
204
+ if (definition === undefined) {
205
+ const fileTypes = (await registry.list(root)).map(def => def.agentType);
206
+ const pluginIds = pluginIndex.knownIds();
207
+ const available = [...fileTypes, ...pluginIds].join(', ');
187
208
  throw new Error(`unknown subagent_type "${type}"`
188
- + (available.length > 0 ? `; available in this workspace: ${available}` : '; this workspace defines no agents'));
209
+ + (available.length > 0
210
+ ? `; available in this workspace: ${available}`
211
+ : '; this workspace defines no agents')
212
+ // A colon in the requested type means a scoped plugin id was
213
+ // intended: name the unmount/renamed causes explicitly.
214
+ + (type.includes(':')
215
+ ? ' — plugin agent not found — the plugin may be unmounted or the agent renamed'
216
+ : ''));
189
217
  }
190
- const routes = ctx.get('ccModelRoutes');
191
- const agentOptions = toAgentOptions(routes?.resolve(definition.model));
192
- // LIVE known set, read at execute time so MCP tools mounted or deferred
193
- // after this plugin's apply (including hash-suffixed public names) are
194
- // all restrictable candidates for the child's filter. Pass the calling
195
- // agent: MCP tools live on the standing-scope layer, which the global
196
- // view (no scope) does not include.
197
- const knownNames = tools.view?.(agent).restrictableNames ?? new Set();
198
- const toolFilter = definition.toolRestriction !== undefined
199
- ? sanitizeToolFilter(definition.toolRestriction, message => ctx.logger.warn(message), knownNames)
200
- : undefined;
201
- // Spawn-time pre-activation (named definitions only): explicit deferred
202
- // MCP names in the raw `tools:` allow-list are activated through the
203
- // duck-typed toolSearch seam BEFORE the child starts, on BOTH dispatch
204
- // paths. Activation is process-global every admitting agent's schema
205
- // grows after the spawn.
206
- const preloadText = renderPreloadLines(preloadDeferredFilterTools({
207
- raw: definition.toolRestriction,
208
- sanitized: toolFilter,
209
- toolSearch: ctx.get('toolSearch'),
210
- agent,
211
- tools,
212
- warn: message => ctx.logger.warn(message),
213
- }));
214
- const folded = {
215
- ...base,
216
- persona: definition.systemPrompt,
217
- ...(toolFilter !== undefined ? { toolFilter } : {}),
218
- ...(agentOptions !== undefined ? { agentOptions } : {}),
219
- };
220
- if (wantsBackground(args, definition, disabled)) {
221
- const result = await startBackground(seam, preparedBackground(folded, capture, definition, routes), capture);
218
+ const dispatchDefinition = async (definition) => {
219
+ const routes = ctx.get('ccModelRoutes');
220
+ const agentOptions = toAgentOptions(routes?.resolve(definition.model));
221
+ // LIVE known set, read at execute time so MCP tools mounted or deferred
222
+ // after this plugin's apply (including hash-suffixed public names) are
223
+ // all restrictable candidates for the child's filter. Pass the calling
224
+ // agent: MCP tools live on the standing-scope layer, which the global
225
+ // view (no scope) does not include.
226
+ const knownNames = tools.view?.(agent).restrictableNames ?? new Set();
227
+ const toolFilter = definition.toolRestriction !== undefined
228
+ ? sanitizeToolFilter(definition.toolRestriction, message => ctx.logger.warn(message), knownNames)
229
+ : undefined;
230
+ // Spawn-time pre-activation (named definitions only): explicit deferred
231
+ // MCP names in the raw `tools:` allow-list are activated through the
232
+ // duck-typed toolSearch seam BEFORE the child starts, on BOTH dispatch
233
+ // paths. Activation is process-global — every admitting agent's schema
234
+ // grows after the spawn.
235
+ const preloadText = renderPreloadLines(preloadDeferredFilterTools({
236
+ raw: definition.toolRestriction,
237
+ sanitized: toolFilter,
238
+ toolSearch: ctx.get('toolSearch'),
239
+ agent,
240
+ tools,
241
+ warn: message => ctx.logger.warn(message),
242
+ }));
243
+ const folded = {
244
+ ...base,
245
+ persona: definition.systemPrompt,
246
+ ...(toolFilter !== undefined ? { toolFilter } : {}),
247
+ ...(agentOptions !== undefined ? { agentOptions } : {}),
248
+ };
249
+ if (wantsBackground(args, definition, disabled)) {
250
+ const result = await startBackground(seam, preparedBackground(folded, capture, definition, routes), capture);
251
+ return preloadText === '' ? result : { ...result, text: `${result.text}\n${preloadText}` };
252
+ }
253
+ const result = await collectForeground(ctx, seam, preparedBackground(folded, capture, definition, routes), capture, exec);
222
254
  return preloadText === '' ? result : { ...result, text: `${result.text}\n${preloadText}` };
223
- }
224
- const result = await collectForeground(ctx, seam, preparedBackground(folded, capture, definition, routes), capture, exec);
225
- return preloadText === '' ? result : { ...result, text: `${result.text}\n${preloadText}` };
255
+ };
256
+ return dispatchDefinition(definition);
226
257
  },
227
258
  }));
228
259
  }
package/lib/tool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dsh-cc/subagent-task",
3
3
  "description": "Claude Code-compatible Task tool: subagent_type dispatch over per-workspace .claude/agents definitions for the DeepSeek Harness",
4
- "version": "0.5.0",
4
+ "version": "0.6.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/dsh-cc/dsh-cc.git",
@@ -33,30 +33,30 @@
33
33
  ],
34
34
  "license": "Apache-2.0",
35
35
  "peerDependencies": {
36
- "@deepseek-ai/cordis": ">=0.1.1-rc.2",
37
- "@deepseek-ai/dsh-agent": ">=0.1.1-rc.2",
38
- "@deepseek-ai/dsh-invariants": ">=0.1.1-rc.2",
39
- "@deepseek-ai/dsh-subagent": ">=0.1.1-rc.2",
40
- "@deepseek-ai/dsh-system-prompt": ">=0.1.1-rc.2",
36
+ "@deepseek-ai/cordis": ">=0.1.2-rc.1",
37
+ "@deepseek-ai/dsh-agent": ">=0.1.2-rc.1",
38
+ "@deepseek-ai/dsh-invariants": ">=0.1.2-rc.1",
39
+ "@deepseek-ai/dsh-subagent": ">=0.1.2-rc.1",
40
+ "@deepseek-ai/dsh-system-prompt": ">=0.1.2-rc.1",
41
41
  "@deepseek-ai/schemastery": "^3.18.1"
42
42
  },
43
43
  "dependencies": {
44
- "@dsh-cc/claude-code-agents": "^0.5.0",
45
- "@dsh-cc/memory": "^0.5.0",
46
- "@dsh-cc/subagent-resume-pins": "^0.5.0",
47
- "@dsh-cc/model-aliases": "^0.5.0",
48
- "@dsh-cc/tools": "^0.5.0"
44
+ "@dsh-cc/claude-code-agents": "^0.6.0",
45
+ "@dsh-cc/model-aliases": "^0.6.0",
46
+ "@dsh-cc/memory": "^0.6.0",
47
+ "@dsh-cc/subagent-resume-pins": "^0.6.0",
48
+ "@dsh-cc/tools": "^0.6.0"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@deepseek-ai/dsh-agent-loop": "link:../../../../deepseek-harness/packages/core/agent-loop",
52
52
  "@deepseek-ai/dsh-agent-loop-testkit": "link:../../../../deepseek-harness/packages/test-support/agent-loop-testkit",
53
53
  "@deepseek-ai/dsh-llm": "link:../../../../deepseek-harness/packages/llm/llm",
54
54
  "@deepseek-ai/dsh-session": "link:../../../../deepseek-harness/packages/core/session",
55
+ "@deepseek-ai/dsh-session-query": "link:../../../../deepseek-harness/packages/session-query/session-query",
55
56
  "@deepseek-ai/dsh-session-persistence-jsonl": "link:../../../../deepseek-harness/packages/session/session-persistence-jsonl",
56
57
  "@deepseek-ai/dsh-session-projection": "link:../../../../deepseek-harness/packages/session/session-projection",
57
58
  "@deepseek-ai/dsh-subagent-spawn-in-process": "link:../../../../deepseek-harness/packages/subagent/subagent-spawn-in-process",
58
59
  "@deepseek-ai/dsh-tool-subagent-control": "link:../../../../deepseek-harness/packages/subagent/tool-subagent-control",
59
- "@deepseek-ai/dsh-tool-subagent-report": "link:../../../../deepseek-harness/packages/subagent/tool-subagent-report",
60
60
  "@deepseek-ai/schemastery": "link:../../../../deepseek-harness/vendor/schemastery",
61
61
  "@deepseek-ai/cordis": "link:../../../../deepseek-harness/vendor/cordis",
62
62
  "@deepseek-ai/dsh-agent": "link:../../../../deepseek-harness/packages/core/agent",
@@ -64,13 +64,14 @@
64
64
  "@deepseek-ai/dsh-scope": "link:../../../../deepseek-harness/packages/core/scope",
65
65
  "@deepseek-ai/dsh-subagent": "link:../../../../deepseek-harness/packages/subagent/subagent",
66
66
  "@deepseek-ai/dsh-system-prompt": "link:../../../../deepseek-harness/packages/core/system-prompt",
67
- "@dsh-cc/memory": "^0.5.0",
68
- "@dsh-cc/claude-code-agents": "^0.5.0",
69
- "@dsh-cc/model-aliases": "^0.5.0",
70
- "@dsh-cc/subagent-resume-pins": "^0.5.0",
71
67
  "@dsh-cc/agent-loop-mock": "^0.1.0",
72
- "@dsh-cc/tools": "^0.5.0",
73
- "@dsh-cc/tool-search": "0.5.0"
68
+ "@dsh-cc/claude-code-agents": "^0.6.0",
69
+ "@dsh-cc/model-aliases": "^0.6.0",
70
+ "@dsh-cc/subagent-resume-pins": "^0.6.0",
71
+ "@dsh-cc/tools": "^0.6.0",
72
+ "@dsh-cc/memory": "^0.6.0",
73
+ "@dsh-cc/tool-search": "0.6.0",
74
+ "@dsh-cc/plugin-loader": "^0.6.0"
74
75
  },
75
76
  "publishConfig": {
76
77
  "access": "public"