Files
deepseek-harness/docs/event-producer-consumer.md
Tianyi Cui aacedf2700 Merge current master into debug-pangwenjie
# Conflicts:
#	docs/cordis-catalog/events.md
#	docs/core-data-structures/core.md
#	docs/core-data-structures/tools.md
#	docs/event-producer-consumer.md
#	docs/rfc/implemented/feature/2026-06-30-interception-seams.md
#	docs/tool-execution-pipeline.md
#	packages/core/agent-loop/src/agent.ts
#	packages/core/agent-loop/src/loop.ts
#	packages/core/agent-loop/tests/loop.spec.ts
#	packages/core/agent/README.md
#	packages/core/tools/src/index.ts
#	scripts/gen-doc-graphs.ts
2026-07-18 13:39:12 +08:00

10 KiB

Event Producer And Consumer Matrix

This matrix shows which packages dispatch each harness-owned event and which packages listen to it. It is intentionally a table rather than one large graph: events are many-to-many, and dense relation data is easier to review in rows. Receiver and event-name types also cover contained dispatch sites that deliberately bypass ctx.emit, such as subagent lifecycle containment.

Event Mode Declared in Dispatchers Listeners
agent/created emit packages/core/agent/src/types.ts:154 agent (events.dispatch) jsonrpc, stdio
agent/disposed emit packages/core/agent/src/types.ts:163 agent (events.dispatch) stdio
agent/error emit packages/core/agent/src/types.ts:298 agent-loop (emit) -
agent/pre-step serial packages/core/agent/src/types.ts:217 agent-loop (serial) compact-basic, time-context, user-approval
agent/prompt-submit waterfall packages/core/agent/src/types.ts:227 agent-loop (waterfall) acp, hooks-claude, hooks-codex, repeat-tool-guard
agent/queued emit packages/core/agent/src/types.ts:182 agent-loop (emit) -
agent/request waterfall packages/core/agent/src/types.ts:239 agent-loop (waterfall) acp
agent/session-prefix waterfall packages/core/agent/src/types.ts:254 agent-loop (waterfall) tool-skill, workspace-context
agent/session-start emit packages/core/agent/src/types.ts:195 agent-loop (emit) hooks-claude, hooks-codex
agent/status emit packages/core/agent/src/types.ts:172 agent-loop (emit) invariants, repeat-tool-guard, stdio
agent/step-result waterfall packages/core/agent/src/types.ts:265 agent-loop (waterfall) -
agent/turn-continuation waterfall packages/core/agent/src/types.ts:275 agent-loop (waterfall) hooks-claude, hooks-codex
agent/turn-stop serial packages/core/agent/src/types.ts:285 agent-loop (serial) subagent-inprocess
approval/request waterfall packages/ui/user-approval/src/index.ts:31 user-approval (waterfall) acp
fs/edit-intent waterfall packages/fs/fs/src/index.ts:61 tool-fs (waterfall) fs-policy
fs/observed emit packages/fs/fs/src/index.ts:70 tool-fs (emit) fs-policy
fs/write-intent waterfall packages/fs/fs/src/index.ts:53 tool-fs (waterfall) fs-policy
llm/stream waterfall packages/llm/llm/src/index.ts:40 llm (waterfall) invariants, llm-replay
session/created emit packages/core/session/src/index.ts:46 session (events.dispatch) invariants, jsonrpc, session-persistence
session/disposed emit packages/core/session/src/index.ts:56 session (events.dispatch) session-persistence
session/event emit packages/core/session/src/index.ts:68 session (events.dispatch) acp, invariants, jsonrpc, session-persistence, stdio, token-meter, workspace-context
session/flush parallel packages/core/session/src/index.ts:78 session (events.dispatch) session-persistence
subagent/end emit packages/subagent/subagent/src/index.ts:108 subagent (events.dispatch) hooks-claude, jsonrpc
subagent/provider-added emit packages/subagent/subagent/src/index.ts:82 subagent (emit) tool-subagent
subagent/provider-removed emit packages/subagent/subagent/src/index.ts:88 subagent (events.dispatch) tool-subagent
subagent/start emit packages/subagent/subagent/src/index.ts:99 subagent (events.dispatch) hooks-claude
system-prompt/assemble waterfall packages/core/system-prompt/src/index.ts:27 system-prompt (waterfall) acp
system-prompt/change emit packages/core/system-prompt/src/index.ts:33 system-prompt (emit) -
tools/change emit packages/core/tools/src/index.ts:116 tools (emit) -
tools/execute waterfall packages/core/tools/src/index.ts:89 tools (waterfall) timeout-policy
tools/post-execute waterfall packages/core/tools/src/index.ts:98 tools (waterfall) hooks-claude, hooks-codex, repeat-tool-guard, spill-policy, workspace-context
tools/pre-execute waterfall packages/core/tools/src/index.ts:80 tools (waterfall) hooks-claude, hooks-codex
tools/result emit packages/core/tools/src/index.ts:106 tools (events.dispatch) subagent-inprocess, workspace-context
workflow/agent-end emit packages/workflow/workflow/src/index.ts:81 workflow (events.dispatch) -
workflow/agent-start emit packages/workflow/workflow/src/index.ts:70 workflow (events.dispatch) -
workflow/end emit packages/workflow/workflow/src/index.ts:91 workflow (events.dispatch) -
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) -

Non-harness or undeclared event strings seen in package source

Event string Dispatchers Listeners
internal/dispatch - invariants

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