summaryrefslogtreecommitdiffhomepage
path: root/packages/core/src
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-29 15:38:35 +0900
committerAdam Malczewski <[email protected]>2026-05-29 15:38:35 +0900
commit48194753eee9c6cb8995cf52afcbd615cf115491 (patch)
treea4aa2c22ed0db272d6848c28f755ad9950418c54 /packages/core/src
parentaa230050f4edb7bfc8d3e4d59d95c68c36264b41 (diff)
downloaddispatch-48194753eee9c6cb8995cf52afcbd615cf115491.tar.gz
dispatch-48194753eee9c6cb8995cf52afcbd615cf115491.zip
feat: subagent summon — catalog filter, error hints, system prompt, AgentBuilder default, SubAgent mode display
- Filter summon tool catalog to is_subagent-flagged agents only - Return fresh subagent list in error when slug not found - Add subagent hint to system prompt when summon tool available - Default is_subagent checkbox to true in AgentBuilder - Fix tab-created event to include agentSlug and agentModels - Add SubAgent read-only mode to ModelSelector with model slider
Diffstat (limited to 'packages/core/src')
-rw-r--r--packages/core/src/tools/summon.ts30
-rw-r--r--packages/core/src/types/index.ts2
2 files changed, 18 insertions, 14 deletions
diff --git a/packages/core/src/tools/summon.ts b/packages/core/src/tools/summon.ts
index ed4b080..34109f3 100644
--- a/packages/core/src/tools/summon.ts
+++ b/packages/core/src/tools/summon.ts
@@ -215,18 +215,20 @@ export function toAvailableAgents(
globalDir: string,
projectDir: string | null,
): AvailableAgent[] {
- return defs.map((d) => {
- const baseDir =
- d.scope === "global"
- ? globalDir
- : projectDir
- ? `${projectDir.replace(/\/$/, "")}/.dispatch/agents`
- : globalDir;
- return {
- slug: d.slug,
- name: d.name,
- description: d.description,
- path: `${baseDir}/${d.slug}.toml`,
- };
- });
+ return defs
+ .filter((d) => d.is_subagent)
+ .map((d) => {
+ const baseDir =
+ d.scope === "global"
+ ? globalDir
+ : projectDir
+ ? `${projectDir.replace(/\/$/, "")}/.dispatch/agents`
+ : globalDir;
+ return {
+ slug: d.slug,
+ name: d.name,
+ description: d.description,
+ path: `${baseDir}/${d.slug}.toml`,
+ };
+ });
}
diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts
index 0df56ca..4148498 100644
--- a/packages/core/src/types/index.ts
+++ b/packages/core/src/types/index.ts
@@ -149,7 +149,9 @@ export type AgentEvent =
keyId: string | null;
modelId: string | null;
parentTabId: string | null;
+ agentSlug?: string | null;
workingDirectory: string | null;
+ agentModels?: Array<{ key_id: string; model_id: string }> | null;
}
| { type: "message-queued"; tabId: string; messageId: string; message: string }
| { type: "message-consumed"; tabId: string; messageIds: string[] }