Files
deepseek-harness/docs/event-producer-consumer.zh.md
Hypatia May 85dd22fd4f feat(subagent): deliver continuable child settlement to parents
A continuable child that stopped without reporting — an error, a token
ceiling, cancellation, teardown — left its parent nothing to act on.
The continuation manager now delivers an unconditional settlement
notice to the durable direct parent before releasing ownership, folding
consumed work (foldConsumedWork supersedes findLastMessageTurnEnd) so a
claimed-but-unrun prompt reads as aborted rather than completed, waking
an idle parent, steering a busy one, and never waking a closing tree.
2026-08-11 12:31:49 +08:00

18 KiB

事件生产方与消费方矩阵

English | 中文

本矩阵展示哪些包会派发各个 harness 自有事件,以及哪些包会监听这些事件。事件之间存在多对多关系,因此密集的关系数据以表格而非一张大型关系图呈现。接收方和事件名称类型还涵盖有意绕过 ctx.emit 的内含派发位置,例如 subagent 生命周期封装。

事件 模式 声明位置 派发方 监听方
agent-loop/config-start-failed emit packages/core/agent-loop/src/index.ts:182 agent-loop (events.dispatch) -
agent/created emit packages/core/agent/src/runtime-types.ts:159 agent (events.dispatch) goal-session
agent/disposed emit packages/core/agent/src/runtime-types.ts:168 agent (events.dispatch) agent-loop, goal-session, subagent
agent/error emit packages/core/agent/src/runtime-types.ts:290 agent-loop (emit) acp, apiproxy, goal-session, session-telemetry
agent/inbox/claimed emit packages/core/agent/src/runtime-types.ts:197 agent-loop (emit) acp, goal-session, subagent
agent/inbox/discarded emit packages/core/agent/src/runtime-types.ts:205 agent-loop (emit) goal-session, subagent
agent/inbox/inserted emit packages/core/agent/src/runtime-types.ts:186 agent-loop (emit) goal-session
agent/pre-step waterfall packages/core/agent/src/runtime-types.ts:231 agent-loop (waterfall) compact-basic, goal-session, hooks-claude, hooks-codex, plan-mode, repeat-tool-guard, session-checkpoint-policy, subagent-inprocess, time-context, tmux-context, tool-skill, workspace-context
agent/request waterfall packages/core/agent/src/runtime-types.ts:244 agent-loop (waterfall) agent
agent/request-error waterfall packages/core/agent/src/runtime-types.ts:260 agent-loop (waterfall) compact-basic, llm-retry
agent/session-start emit packages/core/agent/src/runtime-types.ts:217 agent-loop (emitAgentEvent) goal, goal-session, hooks-claude, hooks-codex
agent/status emit packages/core/agent/src/runtime-types.ts:178 agent-loop (emit) agent, apiproxy, compact-basic, goal-session, server
agent/turn-stopping serial packages/core/agent/src/runtime-types.ts:278 agent-loop (serial) hooks-claude, hooks-codex
approval/request waterfall packages/interaction/user-approval/src/index.ts:30 user-approval (waterfall) acp, apiproxy
commands/change emit packages/interaction/commands/src/index.ts:134 commands (events.dispatch) apiproxy
credentials/updated emit packages/credentials/credentials/src/index.ts:67 credentials (events.dispatch) apiproxy, credentials
domain/changed emit packages/storage/storage-domain/src/events.ts:46 storage-domain (emit) apiproxy, storage-domain, workspace
fs/edit-intent waterfall packages/fs/fs/src/index.ts:66 tool-fs (waterfall), tool-str-replace-editor (waterfall) fs-policy
fs/observed emit packages/fs/fs/src/index.ts:76 tool-fs (emit), tool-str-replace-editor (emit) fs-policy, skill-local
fs/write-intent waterfall packages/fs/fs/src/index.ts:58 tool-fs (waterfall), tool-str-replace-editor (waterfall) fs-policy
goal/changed emit packages/goal/goal/src/domain.ts:114 goal (emit) goal-session
llm/adapters-updated emit packages/llm/llm/src/index.ts:75 llm (events.dispatch) apiproxy, llm
llm/stream waterfall packages/llm/llm/src/index.ts:64 llm (waterfall) agent-loop, llm, llm-replay, session-checkpoint-policy, session-title
session/created emit packages/core/session/src/index.ts:54 session (events.dispatch) apiproxy, compact, goal, hook-protocol, llm-retry, permission, plan-mode, server, session, session-persistence, session-telemetry, tools, user-approval
session/disposed emit packages/core/session/src/index.ts:64 session (events.dispatch) agent-loop, apiproxy, session-persistence, session-projection-cache, session-telemetry, session-title
session/event emit packages/core/session/src/index.ts:76 session (events.dispatch) acp, agent-loop, apiproxy, compact, compact-basic, goal, goal-session, hook-protocol, loader-smoke, server, session, session-persistence, session-projection, session-projection-cache, session-telemetry, session-telemetry-otel, session-title, token-meter, tools, user-approval, workspace-context
session/flush parallel packages/core/session/src/index.ts:85 session (events.dispatch) session-persistence, session-telemetry
settings/document-updated emit packages/settings/settings/src/index.ts:170 settings (events.dispatch) apiproxy
settings/updated emit packages/settings/settings/src/index.ts:157 settings (events.dispatch) settings
skills/change emit packages/skill/skill/src/index.ts:297 skill (events.dispatch) -
subagent/end emit packages/subagent/subagent/src/index.ts:165 subagent (events.dispatch) hooks-claude, server, subagent
subagent/provider-added emit packages/subagent/subagent/src/index.ts:139 subagent (emit) subagent, tool-subagent
subagent/provider-removed emit packages/subagent/subagent/src/index.ts:145 subagent (events.dispatch) subagent, tool-subagent
subagent/start emit packages/subagent/subagent/src/index.ts:156 subagent (events.dispatch) hooks-claude, subagent
system-prompt/assemble waterfall packages/core/system-prompt/src/index.ts:31 system-prompt (waterfall) agent, system-prompt
system-prompt/change emit packages/core/system-prompt/src/index.ts:37 system-prompt (emit) -
telemetry/record waterfall packages/session/session-telemetry/src/index.ts:43 session-telemetry (waterfall) -
tools/change emit packages/core/tools/src/index.ts:193 tools (emit) -
tools/code-dispatch-log waterfall packages/core/tools/src/index.ts:175 tools (waterfall) spill-policy
tools/execute waterfall packages/core/tools/src/index.ts:149 tools (waterfall) session-checkpoint-policy, timeout-policy
tools/post-execute waterfall packages/core/tools/src/index.ts:161 tools (waterfall) hooks-claude, hooks-codex, repeat-tool-guard, spill-policy, tool-fs-search
tools/pre-execute waterfall packages/core/tools/src/index.ts:138 tools (waterfall) hooks-claude, hooks-codex, tool-tasks
tools/result emit packages/core/tools/src/index.ts:183 tools (events.dispatch) subagent-inprocess, workspace-context
workflow/agent-end emit packages/workflow/workflow/src/index.ts:81 workflow (events.dispatch) workflow
workflow/agent-start emit packages/workflow/workflow/src/index.ts:70 workflow (events.dispatch) workflow
workflow/end emit packages/workflow/workflow/src/index.ts:91 workflow (events.dispatch) workflow
workflow/log emit packages/workflow/workflow/src/index.ts:60 workflow (events.dispatch) -
workflow/phase emit packages/workflow/workflow/src/index.ts:53 workflow (events.dispatch) -
workflow/start emit packages/workflow/workflow/src/index.ts:45 workflow (events.dispatch) workflow

Non-harness or undeclared event strings seen in package source

Event string Dispatchers Listeners
commands/changed runtime (emit) ui-command
connection/reset runtime (emit) runtime, ui-command, ui-models, ui-permission, ui-settings-general
credentials/changed runtime (emit) ui-models
internal/dispatch - commands, compact, fs, goal, goal-session, hook-protocol, llm-retry, permission, plan-mode, pty-local, runtime, sandbox-policy, scope, session, session-title, subagent, time-context, tool-todo, tools, user-approval, workflow
internal/plugin - hmr, loader, lsp-local, modules, webserver
internal/service - agent-presets、gateway
internal/status - agent
locale/change locale (emit) locale
models/changed runtime (emit) ui-models
session/preset-changed runtime (emit) ui-command
settings/changed runtime (emit) runtime, ui-models, ui-permission, ui-settings-general
slash/input-begin-command - ui-conversation
slash/input-consume-token - ui-conversation
slash/input-insert-reference - ui-conversation
slash/input-insert-text - ui-conversation
slots/changed runtime (emit) -
theme/change ui-theme (emit) ui-layout, ui-theme

Maintenance mode: generated: Cordis event declarations and producer/listener edges are resolved from the repository TypeScript Program.