Merge ID-only Team base into agent teamwork UI polish

This commit is contained in:
Dudu-0223 committed 2026-10-30 14:32:55 +08:00
commit 5a052d6767
321 files changed
+1771 -4966

No files matched your search

-6
View File
@@ -133,7 +133,6 @@ export const SERVICE_PAGE: Record<string, string> = {
storage: 'storage.md',
storageDomain: 'storage.md',
subagentModelSelection: 'subagent.md',
subagentNames: 'subagent.md',
subagents: 'subagent.md',
subprocess: 'subprocess.md',
systemPrompt: 'system-prompt.md',
@@ -724,11 +723,6 @@ export const LINK_MAP: Readonly<Record<string, string>> = {
ContinuableCreateSpec: 'subagent.md',
SubagentActivation: 'subagent.md',
SubagentActivationSpec: 'subagent.md',
SubagentNameReservation: 'subagent.md',
SubagentNameBinding: 'subagent.md',
SubagentNameError: 'subagent.md',
SubagentNameErrorCode: 'subagent.md',
SubagentNames: 'subagent.md',
AgentMessageSource: 'subagent.md',
SubagentCatalogEntry: 'subagent.md',
SubagentCatalogState: 'subagent.md',
+1 -9
View File
@@ -831,17 +831,9 @@ const SERVICE_ROLES: ServiceRole[] = [
title: 'Subagent provider and continuation service',
mode: 'seam',
implementations: ['subagent-spawn-in-process', 'subagent-fork-in-process', 'subagent-acp', 'subagent-codex', 'subagent-claude-code', 'subagent-dsh-sdk'],
consumers: ['subagent-names', 'tool-subagent', 'tool-subagent-control', 'tool-ralph'],
consumers: ['tool-subagent', 'tool-subagent-control', 'tool-ralph'],
note: 'Providers prepare local children or execute external tasks; one activation manager owns both lifecycles. The delegation tool selects a backend, control tools deliver local follow-ups, and workflows await activation results.',
},
{
key: 'subagentNames',
pkg: 'subagent-names',
title: 'Optional subagent names',
mode: 'core',
consumers: ['tool-subagent', 'tool-subagent-control', 'tool-agent-team', 'experimental-tool-subagent-oar'],
note: 'Owns name reservations and durable name-to-id bindings in the root Session. Execution and authorization remain with the subagent service.',
},
{
key: 'speechToText',
pkg: 'experimental-speech-to-text',
+6 -13
View File
@@ -41,7 +41,6 @@ import WebRuntime from '@deepseek-ai/dsh-web'
import * as WebSearchExa from '@deepseek-ai/dsh-web-search-exa'
import * as WebFetchLocal from '@deepseek-ai/dsh-web-fetch-http'
import SubagentRuntime from '@deepseek-ai/dsh-subagent'
import SubagentNames from '@deepseek-ai/dsh-subagent-names'
import type { SubagentProvider } from '@deepseek-ai/dsh-subagent'
import * as ToolSubagentControl from '@deepseek-ai/dsh-tool-subagent-control'
import SkillRegistry from '@deepseek-ai/dsh-skill'
@@ -557,12 +556,10 @@ const TOOL_PACKAGES: ToolPackage[] = [
pkg: '@deepseek-ai/dsh-experimental-tool-subagent-oar',
dir: 'tool-subagent-oar',
source: 'packages/experimental/tool-subagent-oar/src/index.ts',
requires: ['ctx.tools', 'ctx.subagents', 'ctx.subagentNames'],
requires: ['ctx.tools', 'ctx.subagents'],
writes: ['tool/call', 'tool/result', 'parent subagent catalog and completion notices'],
async mount(ctx) {
await ctx.plugin(AgentRegistry)
await ctx.plugin(SubagentRuntime)
await ctx.plugin(SubagentNames)
await ctx.plugin(ToolSubagentOar, {
providers: { codex: 'oar-codex', claude: 'oar-claude' },
})
@@ -576,19 +573,17 @@ const TOOL_PACKAGES: ToolPackage[] = [
list_subagent_models: 'packages/subagent/tool-subagent/src/list-models.ts',
subagent: 'packages/subagent/tool-subagent/src/index.ts',
},
requires: ['ctx.tools', 'ctx.subagents', 'ctx.systemPrompt', 'ctx.sessionProjections', 'ctx.subagentNames', 'ctx.llm for model discovery and selected-route validation'],
requires: ['ctx.tools', 'ctx.subagents', 'ctx.systemPrompt', 'ctx.sessionProjections', 'ctx.llm for model discovery and selected-route validation'],
writes: ['tool/call', 'tool/result', 'child session events through the chosen provider'],
shippedNames: ['subagent', 'subagent_fork'],
async mount(ctx) {
await ctx.plugin(AgentRegistry)
await ctx.plugin(SubagentRuntime)
await ctx.plugin(SubagentNames)
await ctx.plugin(LlmRuntime)
registerCatalogSubagentProvider(ctx, 'mock')
await ctx.plugin(ToolSubagent, { provider: 'mock', modelDiscovery: true })
},
note:
'The load-time `toolName` selects the delegation name (default `subagent`); `modelSelection` adds optional route fields. `modelDiscovery` defaults off and registers shared discovery on one instance per scope. Web and Desktop presets enable spawn discovery and route fields and leave `subagent_fork` route fields disabled. The Host settings service records authorization for each new top-level Session; child Sessions inherit it. Without a recorded policy, discovery and explicit selection permit only the current parent route. The required naming plugin lets delegation accept a sibling name and return its full path alongside the child Session id. Local children accept follow-ups, while external backends report their single execution automatically.',
'The load-time `toolName` selects the delegation name (default `subagent`); `modelSelection` adds optional route fields. `modelDiscovery` defaults off and registers shared discovery on one instance per scope. Web and Desktop presets enable spawn discovery and route fields and leave `subagent_fork` route fields disabled. The Host settings service records authorization for each new top-level Session; child Sessions inherit it. Without a recorded policy, discovery and explicit selection permit only the current parent route. Every delegation returns a child id promptly; local children accept follow-ups, while external backends report their single execution automatically.',
},
{
pkg: '@deepseek-ai/dsh-tool-subagent-control',
@@ -599,18 +594,17 @@ const TOOL_PACKAGES: ToolPackage[] = [
send_message: 'packages/subagent/tool-subagent-control/src/index.ts',
wait_agent: 'packages/subagent/tool-subagent-control/src/wait-agent.ts',
},
requires: ['ctx.tools', 'ctx.subagents', 'ctx.agents', 'ctx.systemPrompt', 'ctx.subagentNames'],
requires: ['ctx.tools', 'ctx.subagents', 'ctx.agents'],
writes: ['tool/call', 'tool/result', 'child session events through ctx.subagents'],
async mount(ctx) {
await ctx.plugin(SubagentRuntime)
await ctx.plugin(LocalJobRegistry)
await ctx.plugin(AgentRegistry)
await ctx.plugin(SessionStore)
await ctx.plugin(SubagentNames)
await ctx.plugin(ToolSubagentControl)
},
note:
'The shared control tools discover and contact agents in the subagent tree, interrupt owned descendants, and wait for input in the caller’s inbox. Provider-bound `tool-subagent` instances supply delegation tools. Controls require the naming plugin and accept a name path or Session id through `name`; discovery adds available names while retaining Session ids.',
'The shared control tools discover and contact agents in the subagent tree, interrupt owned descendants, and wait for input in the caller’s inbox. Provider-bound `tool-subagent` instances supply delegation tools.',
},
{
pkg: '@deepseek-ai/dsh-tool-jobs',
@@ -629,13 +623,12 @@ const TOOL_PACKAGES: ToolPackage[] = [
pkg: '@deepseek-ai/dsh-tool-agent-team',
dir: 'tool-agent-team',
source: 'packages/team/tool-agent-team/src/index.ts',
requires: ['ctx.tools', 'ctx.systemPrompt', 'ctx.agentTeams', 'ctx.subagents', 'ctx.subagentNames', 'an exact live Team member Agent'],
requires: ['ctx.tools', 'ctx.systemPrompt', 'ctx.agentTeams', 'ctx.subagents', 'an exact live Team member Agent'],
writes: ['tool/call', 'team/task', 'tool/result'],
async mount(ctx) {
await ctx.plugin(AgentRegistry)
await ctx.plugin(SessionStore)
await ctx.plugin(SubagentRuntime)
await ctx.plugin(SubagentNames)
await ctx.plugin(CatalogSessionPersistence)
await ctx.plugin(TeamService)
const session = ctx.sessions.create(SessionId('tool-catalog-team-lead'))
@@ -897,19 +897,9 @@
"label": "Check direct child"
}
},
{
"type": "subagent-name/bound",
"seq": 38,
"time": 0,
"data": {
"version": 1,
"childId": "{{child-1}}",
"name": "lead/agent-1"
}
},
{
"type": "tool/result",
"seq": 39,
"seq": 38,
"time": 0,
"data": {
"turn": 1,
@@ -924,7 +914,7 @@
"content": [
{
"type": "text",
"text": "started subagent {{child-1}}\nname: lead/agent-1"
"text": "started subagent {{child-1}}"
}
],
"isError": false,
@@ -938,7 +928,7 @@
},
{
"type": "step/end",
"seq": 40,
"seq": 39,
"time": 0,
"data": {
"turn": 1,
@@ -947,7 +937,7 @@
},
{
"type": "step/start",
"seq": 41,
"seq": 40,
"time": 0,
"data": {
"turn": 1,
@@ -956,17 +946,17 @@
},
{
"type": "session-log-deepseek/delivery-accepted",
"seq": 42,
"seq": 41,
"time": 0,
"data": {
"sessionId": "{{parent}}",
"sessionFormatVersion": 4,
"throughSeq": 41
"throughSeq": 40
}
},
{
"type": "agent/inbox/spliced",
"seq": 43,
"seq": 42,
"time": 0,
"data": {
"target": "next-step",
@@ -1002,7 +992,7 @@
},
{
"type": "assistant/message",
"seq": 44,
"seq": 43,
"time": 0,
"data": {
"turn": 1,
@@ -1126,7 +1116,7 @@
},
{
"type": "tool/call",
"seq": 45,
"seq": 44,
"time": 0,
"data": {
"turn": 1,
@@ -1138,7 +1128,7 @@
},
{
"type": "tool-workflow/run-start",
"seq": 46,
"seq": 45,
"time": 0,
"data": {
"runId": "{{workflow-run}}",
@@ -1147,7 +1137,7 @@
},
{
"type": "subagent/catalog",
"seq": 47,
"seq": 46,
"time": 0,
"data": {
"version": 0,
@@ -1159,7 +1149,7 @@
},
{
"type": "tool-workflow/agent-start",
"seq": 48,
"seq": 47,
"time": 0,
"data": {
"runId": "{{workflow-run}}",
@@ -1171,7 +1161,7 @@
},
{
"type": "tool-workflow/agent-end",
"seq": 49,
"seq": 48,
"time": 0,
"data": {
"runId": "{{workflow-run}}",
@@ -1181,7 +1171,7 @@
},
{
"type": "tool-workflow/run-end",
"seq": 50,
"seq": 49,
"time": 0,
"data": {
"runId": "{{workflow-run}}",
@@ -1190,7 +1180,7 @@
},
{
"type": "tool/result",
"seq": 51,
"seq": 50,
"time": 0,
"data": {
"turn": 1,
@@ -1213,13 +1203,13 @@
}
},
"sourceEventSeqs": [
45
44
],
"surfaceOp": "append"
},
{
"type": "step/end",
"seq": 52,
"seq": 51,
"time": 0,
"data": {
"turn": 1,
@@ -1228,7 +1218,7 @@
},
{
"type": "agent/inbox/spliced",
"seq": 53,
"seq": 52,
"time": 0,
"data": {
"target": "next-step",
@@ -1239,7 +1229,7 @@
},
{
"type": "step/start",
"seq": 54,
"seq": 53,
"time": 0,
"data": {
"turn": 1,
@@ -1248,7 +1238,7 @@
},
{
"type": "user/message",
"seq": 55,
"seq": 54,
"time": 0,
"data": {
"content": [
@@ -1279,17 +1269,17 @@
},
{
"type": "session-log-deepseek/delivery-accepted",
"seq": 56,
"seq": 55,
"time": 0,
"data": {
"sessionId": "{{parent}}",
"sessionFormatVersion": 4,
"throughSeq": 55
"throughSeq": 54
}
},
{
"type": "assistant/message",
"seq": 57,
"seq": 56,
"time": 0,
"data": {
"turn": 1,
@@ -1397,7 +1387,7 @@
},
{
"type": "step/end",
"seq": 58,
"seq": 57,
"time": 0,
"data": {
"turn": 1,
@@ -1406,7 +1396,7 @@
},
{
"type": "command/run",
"seq": 59,
"seq": 58,
"time": 0,
"data": {
"commandId": "{{command:1}}",
@@ -1418,7 +1408,7 @@
},
{
"type": "feedback/record",
"seq": 60,
"seq": 59,
"time": 0,
"data": {
"text": "The session needs a clearer explanation."
@@ -1426,7 +1416,7 @@
},
{
"type": "command/done",
"seq": 61,
"seq": 60,
"time": 0,
"data": {
"commandId": "{{command:1}}",
@@ -1436,7 +1426,7 @@
},
{
"type": "feedback/record",
"seq": 62,
"seq": 61,
"time": 0,
"data": {
"category": "other"
@@ -1444,7 +1434,7 @@
},
{
"type": "feedback/message-put",
"seq": 63,
"seq": 62,
"time": 0,
"data": {
"sessionId": "{{parent}}",
@@ -1461,7 +1451,7 @@
},
{
"type": "feedback/message-put",
"seq": 64,
"seq": 63,
"time": 0,
"data": {
"sessionId": "{{parent}}",
@@ -1477,7 +1467,7 @@
},
{
"type": "feedback/message-delete",
"seq": 65,
"seq": 64,
"time": 0,
"data": {
"sessionId": "{{parent}}",
@@ -1486,7 +1476,7 @@
},
{
"type": "turn/end",
"seq": 66,
"seq": 65,
"time": 0,
"data": {
"turn": 1,
@@ -2793,29 +2783,13 @@
}
}
},
{
"method": "session.event",
"payload": {
"sessionId": "{{parent}}",
"event": {
"type": "subagent-name/bound",
"seq": 38,
"time": 0,
"data": {
"version": 1,
"childId": "{{child-1}}",
"name": "lead/agent-1"
}
}
}
},
{
"method": "session.event",
"payload": {
"sessionId": "{{parent}}",
"event": {
"type": "tool/result",
"seq": 39,
"seq": 38,
"time": 0,
"data": {
"turn": 1,
@@ -2830,7 +2804,7 @@
"content": [
{
"type": "text",
"text": "started subagent {{child-1}}\nname: lead/agent-1"
"text": "started subagent {{child-1}}"
}
],
"isError": false,
@@ -2850,7 +2824,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "step/end",
"seq": 40,
"seq": 39,
"time": 0,
"data": {
"turn": 1,
@@ -2865,7 +2839,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "step/start",
"seq": 41,
"seq": 40,
"time": 0,
"data": {
"turn": 1,
@@ -2880,12 +2854,12 @@
"sessionId": "{{parent}}",
"event": {
"type": "session-log-deepseek/delivery-accepted",
"seq": 42,
"seq": 41,
"time": 0,
"data": {
"sessionId": "{{parent}}",
"sessionFormatVersion": 4,
"throughSeq": 41
"throughSeq": 40
}
}
}
@@ -3283,7 +3257,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "agent/inbox/spliced",
"seq": 43,
"seq": 42,
"time": 0,
"data": {
"target": "next-step",
@@ -3342,7 +3316,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "assistant/message",
"seq": 44,
"seq": 43,
"time": 0,
"data": {
"turn": 1,
@@ -3472,7 +3446,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "tool/call",
"seq": 45,
"seq": 44,
"time": 0,
"data": {
"turn": 1,
@@ -3490,7 +3464,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "tool-workflow/run-start",
"seq": 46,
"seq": 45,
"time": 0,
"data": {
"runId": "{{workflow-run}}",
@@ -3691,7 +3665,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "subagent/catalog",
"seq": 47,
"seq": 46,
"time": 0,
"data": {
"version": 0,
@@ -3709,7 +3683,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "tool-workflow/agent-start",
"seq": 48,
"seq": 47,
"time": 0,
"data": {
"runId": "{{workflow-run}}",
@@ -4127,7 +4101,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "tool-workflow/agent-end",
"seq": 49,
"seq": 48,
"time": 0,
"data": {
"runId": "{{workflow-run}}",
@@ -4143,7 +4117,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "tool-workflow/run-end",
"seq": 50,
"seq": 49,
"time": 0,
"data": {
"runId": "{{workflow-run}}",
@@ -4158,7 +4132,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "tool/result",
"seq": 51,
"seq": 50,
"time": 0,
"data": {
"turn": 1,
@@ -4181,7 +4155,7 @@
}
},
"sourceEventSeqs": [
45
44
],
"surfaceOp": "append"
}
@@ -4193,7 +4167,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "step/end",
"seq": 52,
"seq": 51,
"time": 0,
"data": {
"turn": 1,
@@ -4208,7 +4182,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "agent/inbox/spliced",
"seq": 53,
"seq": 52,
"time": 0,
"data": {
"target": "next-step",
@@ -4225,7 +4199,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "step/start",
"seq": 54,
"seq": 53,
"time": 0,
"data": {
"turn": 1,
@@ -4240,7 +4214,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "user/message",
"seq": 55,
"seq": 54,
"time": 0,
"data": {
"content": [
@@ -4277,12 +4251,12 @@
"sessionId": "{{parent}}",
"event": {
"type": "session-log-deepseek/delivery-accepted",
"seq": 56,
"seq": 55,
"time": 0,
"data": {
"sessionId": "{{parent}}",
"sessionFormatVersion": 4,
"throughSeq": 55
"throughSeq": 54
}
}
}
@@ -4293,7 +4267,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "assistant/message",
"seq": 57,
"seq": 56,
"time": 0,
"data": {
"turn": 1,
@@ -4407,7 +4381,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "step/end",
"seq": 58,
"seq": 57,
"time": 0,
"data": {
"turn": 1,
@@ -4422,7 +4396,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "command/run",
"seq": 59,
"seq": 58,
"time": 0,
"data": {
"commandId": "{{command:1}}",
@@ -4440,7 +4414,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "feedback/record",
"seq": 60,
"seq": 59,
"time": 0,
"data": {
"text": "The session needs a clearer explanation."
@@ -4454,7 +4428,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "command/done",
"seq": 61,
"seq": 60,
"time": 0,
"data": {
"commandId": "{{command:1}}",
@@ -4470,7 +4444,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "feedback/record",
"seq": 62,
"seq": 61,
"time": 0,
"data": {
"category": "other"
@@ -4484,7 +4458,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "feedback/message-put",
"seq": 63,
"seq": 62,
"time": 0,
"data": {
"sessionId": "{{parent}}",
@@ -4507,7 +4481,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "feedback/message-put",
"seq": 64,
"seq": 63,
"time": 0,
"data": {
"sessionId": "{{parent}}",
@@ -4529,7 +4503,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "feedback/message-delete",
"seq": 65,
"seq": 64,
"time": 0,
"data": {
"sessionId": "{{parent}}",
@@ -4544,7 +4518,7 @@
"sessionId": "{{parent}}",
"event": {
"type": "turn/end",
"seq": 66,
"seq": 65,
"time": 0,
"data": {
"turn": 1,
@@ -37,12 +37,11 @@
{"type":"assistant/message","data":{"turn":1,"step":3,"message":{"role":"assistant","content":[{"type":"tool-call","id":"advanced-direct-child","name":"subagent","arguments":"{\"description\": \"Check direct child\", \"prompt\": \"Reply with exactly DIRECT_CHILD_OK and nothing else.\"}"}],"source":{"kind":"model","provider":"deepseek-official","model":"smoke-model","replayState":{"response":{"kind":"deepseek-messages","version":1,"model":"smoke-model"},"blocks":[{"type":"tool-call"}]}},"id":"{{messageId}}"},"usage":{"inputTokens":3,"outputTokens":3,"totalTokens":6},"stream":[{"type":"chunk","time":0,"chunk":{"type":"block-start","index":0,"blockType":"tool-call"}},{"type":"tool-call-chunks","time0":0,"index":0,"dt":[],"id":"advanced-direct-child","name":"subagent","args":[""]},{"type":"tool-call-chunks","time0":0,"index":0,"dt":[],"id":"advanced-direct-child","args":["{\"description\": \"Check direct child\", \"prompt\": \"Reply with exactly DIRECT_CHILD_OK and nothing else.\"}"]},{"type":"chunk","time":0,"chunk":{"type":"block-end","index":0,"block":{"type":"tool-call","id":"advanced-direct-child","name":"subagent","arguments":"{\"description\": \"Check direct child\", \"prompt\": \"Reply with exactly DIRECT_CHILD_OK and nothing else.\"}"}}},{"type":"chunk","time":0,"chunk":{"type":"usage","usage":{"inputTokens":3,"outputTokens":3,"totalTokens":6}}},{"type":"chunk","time":0,"chunk":{"type":"finish","reason":{"kind":"tool-calls"},"replayState":{"response":{"kind":"deepseek-messages","version":1,"model":"smoke-model"},"blocks":[{"type":"tool-call"}]}}}]},"surfaceOp":"append"}
{"type":"tool/call","data":{"turn":1,"step":3,"callId":"advanced-direct-child","name":"subagent","arguments":"{\"description\": \"Check direct child\", \"prompt\": \"Reply with exactly DIRECT_CHILD_OK and nothing else.\"}"}}
{"type":"subagent/catalog","data":{"version":0,"childId":"{{child-1}}","childCreatedAt":0,"mode":"continuable","label":"Check direct child"}}
{"type":"subagent-name/bound","data":{"version":1,"childId":"{{child-1}}","name":"lead/agent-1"}}
{"type":"tool/result","data":{"turn":1,"step":3,"message":{"role":"tool","source":{"kind":"tool","callId":"advanced-direct-child"},"toolCallId":"advanced-direct-child","content":[{"type":"text","text":"started subagent {{child-1}}\nname: lead/agent-1"}],"isError":false,"id":"{{messageId}}"}},"sourceEventSeqs":[36],"surfaceOp":"append"}
{"type":"tool/result","data":{"turn":1,"step":3,"message":{"role":"tool","source":{"kind":"tool","callId":"advanced-direct-child"},"toolCallId":"advanced-direct-child","content":[{"type":"text","text":"started subagent {{child-1}}"}],"isError":false,"id":"{{messageId}}"}},"sourceEventSeqs":[36],"surfaceOp":"append"}
{"type":"step/end","data":{"turn":1,"step":3}}
{"type":"step/start","data":{"turn":1,"step":4}}
{"type":"session-log-deepseek/delivery-accepted","data":{"sessionId":"{{parent}}","sessionFormatVersion":4,"throughSeq":41}}
{"type":"agent/inbox/spliced","data":{"target":"next-step","start":0,"inserted":[{"content":[{"type":"text","text":"Background subagent {{child-1}} finished and will do no further work unless you send it more."},{"type":"text","text":"Its closing message:"},{"type":"text","text":"DIRECT_CHILD_OK"}],"source":{"kind":"subagent-settled","form":"notice","summary":"Background subagent {{child-1}} finished and will do no further work unless you send it more.","stopReason":"completed","senderSessionId":"{{child-1}}"},"role":"user","id":"{{messageId}}"}]}}
{"type":"session-log-deepseek/delivery-accepted","data":{"sessionId":"{{parent}}","sessionFormatVersion":4,"throughSeq":40}}
{"type":"agent/inbox/spliced","data":{"target":"next-step","start":0,"inserted":[{"content":[{"type":"text","text":"Background subagent {{child-1}} finished and will do no further work unless you send it more."},{"type":"text","text":"Its closing message:"},{"type":"text","text":"DIRECT_CHILD_OK"}],"source":{"kind":"subagent-settled","form":"notice","summary":"Background subagent {{child-1}} finished and will do no further work unless you send it more.","senderSessionId":"{{child-1}}"},"role":"user","id":"{{messageId}}"}]}}
{"type":"assistant/message","data":{"turn":1,"step":4,"message":{"role":"assistant","content":[{"type":"tool-call","id":"advanced-workflow","name":"workflow","arguments":"{\"script\": \"phase('Delegate')\\nconst reply = await agent('Reply with exactly WORKFLOW_CHILD_OK and nothing else.', { label: 'workflow-child' })\\nreturn { reply }\", \"meta\": {\"name\": \"advanced-exe-snapshot\", \"description\": \"exercise one packaged workflow child\"}}"}],"source":{"kind":"model","provider":"deepseek-official","model":"smoke-model","replayState":{"response":{"kind":"deepseek-messages","version":1,"model":"smoke-model"},"blocks":[{"type":"tool-call"}]}},"id":"{{messageId}}"},"usage":{"inputTokens":3,"outputTokens":3,"totalTokens":6},"stream":[{"type":"chunk","time":0,"chunk":{"type":"block-start","index":0,"blockType":"tool-call"}},{"type":"tool-call-chunks","time0":0,"index":0,"dt":[],"id":"advanced-workflow","name":"workflow","args":[""]},{"type":"tool-call-chunks","time0":0,"index":0,"dt":[],"id":"advanced-workflow","args":["{\"script\": \"phase('Delegate')\\nconst reply = await agent('Reply with exactly WORKFLOW_CHILD_OK and nothing else.', { label: 'workflow-child' })\\nreturn { reply }\", \"meta\": {\"name\": \"advanced-exe-snapshot\", \"description\": \"exercise one packaged workflow child\"}}"]},{"type":"chunk","time":0,"chunk":{"type":"block-end","index":0,"block":{"type":"tool-call","id":"advanced-workflow","name":"workflow","arguments":"{\"script\": \"phase('Delegate')\\nconst reply = await agent('Reply with exactly WORKFLOW_CHILD_OK and nothing else.', { label: 'workflow-child' })\\nreturn { reply }\", \"meta\": {\"name\": \"advanced-exe-snapshot\", \"description\": \"exercise one packaged workflow child\"}}"}}},{"type":"chunk","time":0,"chunk":{"type":"usage","usage":{"inputTokens":3,"outputTokens":3,"totalTokens":6}}},{"type":"chunk","time":0,"chunk":{"type":"finish","reason":{"kind":"tool-calls"},"replayState":{"response":{"kind":"deepseek-messages","version":1,"model":"smoke-model"},"blocks":[{"type":"tool-call"}]}}}]},"surfaceOp":"append"}
{"type":"tool/call","data":{"turn":1,"step":4,"callId":"advanced-workflow","name":"workflow","arguments":"{\"script\": \"phase('Delegate')\\nconst reply = await agent('Reply with exactly WORKFLOW_CHILD_OK and nothing else.', { label: 'workflow-child' })\\nreturn { reply }\", \"meta\": {\"name\": \"advanced-exe-snapshot\", \"description\": \"exercise one packaged workflow child\"}}"}}
{"type":"tool-workflow/run-start","data":{"runId":"{{workflow-run}}","name":"advanced-exe-snapshot"}}
@@ -50,12 +49,12 @@
{"type":"tool-workflow/agent-start","data":{"runId":"{{workflow-run}}","seq":1,"label":"workflow-child","phase":"Delegate","childId":"{{child-2}}"}}
{"type":"tool-workflow/agent-end","data":{"runId":"{{workflow-run}}","seq":1,"outcome":"completed"}}
{"type":"tool-workflow/run-end","data":{"runId":"{{workflow-run}}","stopReason":"completed"}}
{"type":"tool/result","data":{"turn":1,"step":4,"message":{"role":"tool","source":{"kind":"tool","callId":"advanced-workflow"},"toolCallId":"advanced-workflow","content":[{"type":"text","text":"workflow \"advanced-exe-snapshot\" completed (1 agent).\nReturn value:\n{\n \"reply\": \"WORKFLOW_CHILD_OK\"\n}"}],"isError":false,"id":"{{messageId}}"}},"sourceEventSeqs":[45],"surfaceOp":"append"}
{"type":"tool/result","data":{"turn":1,"step":4,"message":{"role":"tool","source":{"kind":"tool","callId":"advanced-workflow"},"toolCallId":"advanced-workflow","content":[{"type":"text","text":"workflow \"advanced-exe-snapshot\" completed (1 agent).\nReturn value:\n{\n \"reply\": \"WORKFLOW_CHILD_OK\"\n}"}],"isError":false,"id":"{{messageId}}"}},"sourceEventSeqs":[44],"surfaceOp":"append"}
{"type":"step/end","data":{"turn":1,"step":4}}
{"type":"agent/inbox/spliced","data":{"target":"next-step","start":0,"removedCount":1,"inserted":[]}}
{"type":"step/start","data":{"turn":1,"step":5}}
{"type":"user/message","data":{"content":[{"type":"text","text":"Background subagent {{child-1}} finished and will do no further work unless you send it more."},{"type":"text","text":"Its closing message:"},{"type":"text","text":"DIRECT_CHILD_OK"}],"source":{"kind":"subagent-settled","form":"notice","summary":"Background subagent {{child-1}} finished and will do no further work unless you send it more.","stopReason":"completed","senderSessionId":"{{child-1}}"},"role":"user","id":"{{messageId}}"},"surfaceOp":"append"}
{"type":"session-log-deepseek/delivery-accepted","data":{"sessionId":"{{parent}}","sessionFormatVersion":4,"throughSeq":55}}
{"type":"user/message","data":{"content":[{"type":"text","text":"Background subagent {{child-1}} finished and will do no further work unless you send it more."},{"type":"text","text":"Its closing message:"},{"type":"text","text":"DIRECT_CHILD_OK"}],"source":{"kind":"subagent-settled","form":"notice","summary":"Background subagent {{child-1}} finished and will do no further work unless you send it more.","senderSessionId":"{{child-1}}"},"role":"user","id":"{{messageId}}"},"surfaceOp":"append"}
{"type":"session-log-deepseek/delivery-accepted","data":{"sessionId":"{{parent}}","sessionFormatVersion":4,"throughSeq":54}}
{"type":"assistant/message","data":{"turn":1,"step":5,"message":{"role":"assistant","content":[{"type":"text","text":"ADVANCED_EXECUTABLE_OK"}],"source":{"kind":"model","provider":"deepseek-official","model":"smoke-model","replayState":{"response":{"kind":"deepseek-messages","version":1,"model":"smoke-model"},"blocks":[{"type":"text"}]}},"id":"{{message:1}}"},"usage":{"inputTokens":3,"outputTokens":3,"totalTokens":6},"stream":[{"type":"chunk","time":0,"chunk":{"type":"block-start","index":0,"blockType":"text"}},{"type":"text-chunks","time0":0,"index":0,"dt":[],"texts":["ADVANCED_EXECUTABLE_OK"]},{"type":"chunk","time":0,"chunk":{"type":"block-end","index":0,"block":{"type":"text","text":"ADVANCED_EXECUTABLE_OK"}}},{"type":"chunk","time":0,"chunk":{"type":"usage","usage":{"inputTokens":3,"outputTokens":3,"totalTokens":6}}},{"type":"chunk","time":0,"chunk":{"type":"finish","reason":{"kind":"stop"},"replayState":{"response":{"kind":"deepseek-messages","version":1,"model":"smoke-model"},"blocks":[{"type":"text"}]}}}]},"surfaceOp":"append"}
{"type":"step/end","data":{"turn":1,"step":5}}
{"type":"command/run","data":{"commandId":"{{command:1}}","name":"feedback","source":{"kind":"user"}}}
@@ -48,7 +48,6 @@ const NO_MODEL_EXPERIENCE_SECTION: Readonly<Record<string, string>> = {
* blocks. A package moves on or off this list with its context behavior.
*/
const SENTENCE_MODEL_EXPERIENCE: Readonly<Record<string, SentenceContract>> = {
'packages/subagent/subagent-names': { kind: 'indirect', reason: 'Stores durable name-to-id bindings; delegation and control tools own their model-facing rendering.' },
'packages/client/ui-context-menu': { kind: 'none', reason: 'Client menu presentation and contributed callbacks add no model input.' },
'packages/client/ui-file-actions': { kind: 'none', reason: 'Explicit user file saves and clipboard operations add no model input.' },
'packages/client/ui-entry-customization': { kind: 'none', reason: 'Controls browser launchers and prepares a reviewable Creator draft without submitting model input.' },