Files
deepseek-harness/docs/event-producer-consumer.md
T
Tianyi Cui 972e7cc77d Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
# Conflicts:
#	docs/config-catalog.md
#	docs/event-producer-consumer.md
#	docs/rfc/implemented/feature/2026-07-05-dynamic-workflows.md
#	examples/acp-agent/tests/acp.snapshot.ts
#	packages/code-runtime/code-runtime-worker/tests/built-lib.e2e.ts
#	packages/code-runtime/code-runtime-worker/tsdown.config.ts
2026-07-14 00:40:36 +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. Dynamic dispatch overrides cover 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:139 agent (events.dispatch) jsonrpc, stdio-agent
agent/disposed emit packages/core/agent/src/types.ts:147 agent (events.dispatch) stdio-agent
agent/error emit packages/core/agent/src/types.ts:280 agent-loop (emit) -
agent/pre-step serial packages/core/agent/src/types.ts:200 agent-loop (serial) compact-basic, user-approval
agent/prompt-submit waterfall packages/core/agent/src/types.ts:210 agent-loop (waterfall) acp, hooks-claude, hooks-codex, repeat-tool-guard
agent/queued emit packages/core/agent/src/types.ts:166 agent-loop (emit) -
agent/request waterfall packages/core/agent/src/types.ts:222 agent-loop (waterfall) -
agent/session-prefix waterfall packages/core/agent/src/types.ts:237 agent-loop (waterfall) tool-skill
agent/session-start emit packages/core/agent/src/types.ts:179 agent-loop (emit) hooks-claude, hooks-codex, invariants
agent/status emit packages/core/agent/src/types.ts:156 agent-loop (emit) invariants, repeat-tool-guard, stdio-agent
agent/step-result waterfall packages/core/agent/src/types.ts:248 agent-loop (waterfall) -
agent/turn-continuation waterfall packages/core/agent/src/types.ts:258 agent-loop (waterfall) hooks-claude, hooks-codex
agent/turn-stop serial packages/core/agent/src/types.ts:267 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:59 tool-fs (waterfall) fs-policy
fs/observed emit packages/fs/fs/src/index.ts:68 tool-fs (emit) fs-policy
fs/write-intent waterfall packages/fs/fs/src/index.ts:51 tool-fs (waterfall) fs-policy
llm/stream waterfall packages/llm/llm/src/index.ts:39 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:55 session (events.dispatch) -
session/event emit packages/core/session/src/index.ts:66 session (events.dispatch) acp, invariants, jsonrpc, session-persistence, stdio-agent
session/flush parallel packages/core/session/src/index.ts:75 session (events.dispatch) session-persistence
skill/provider-added emit packages/skill/skill/src/index.ts:131 skill (emit) -
skill/provider-removed emit packages/skill/skill/src/index.ts:137 skill (emit) -
subagent/end emit packages/subagent/subagent/src/index.ts:90 subagent (events.dispatch) hooks-claude, jsonrpc
subagent/provider-added emit packages/subagent/subagent/src/index.ts:66 subagent (emit) tool-subagent
subagent/provider-removed emit packages/subagent/subagent/src/index.ts:72 subagent (events.dispatch) tool-subagent
subagent/start emit packages/subagent/subagent/src/index.ts:82 subagent (events.dispatch) hooks-claude
system-prompt/assemble waterfall packages/core/system-prompt/src/index.ts:27 system-prompt (waterfall) -
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
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
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: hybrid generated: Cordis event declarations and most producer/listener edges are AST-scanned; dynamic dispatch sites are classified in scripts/gen-doc-graphs.ts.