Files
deepseek-harness/docs/event-producer-consumer.md

9.3 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:279 agent (emit) stdio-agent
agent/disposed emit packages/core/agent/src/types.ts:286 agent (emit) stdio-agent
agent/error emit packages/core/agent/src/types.ts:490 agent-loop (emit) -
agent/pre-step serial packages/core/agent/src/types.ts:371 agent-loop (serial) compact-basic, user-approval
agent/prompt-submit waterfall packages/core/agent/src/types.ts:384 agent-loop (waterfall) acp, hooks-claude, hooks-codex, repeat-tool-guard
agent/queued emit packages/core/agent/src/types.ts:304 agent-loop (emit) -
agent/request waterfall packages/core/agent/src/types.ts:408 agent-loop (waterfall) -
agent/session-prefix waterfall packages/core/agent/src/types.ts:455 agent-loop (waterfall) tool-skill, workspace-context
agent/session-start emit packages/core/agent/src/types.ts:319 agent-loop (emit) hooks-claude, hooks-codex
agent/status emit packages/core/agent/src/types.ts:295 agent-loop (emit) acp, invariants, repeat-tool-guard, stdio-agent
agent/step-result waterfall packages/core/agent/src/types.ts:465 agent-loop (waterfall) -
agent/turn-continuation waterfall packages/core/agent/src/types.ts:478 agent-loop (waterfall) hooks-claude, hooks-codex
approval/request waterfall packages/ui/user-approval/src/index.ts:64 user-approval (waterfall) acp
fs/edit-intent waterfall packages/fs/fs/src/index.ts:125 tool-fs (waterfall) fs-policy
fs/observed emit packages/fs/fs/src/index.ts:140 tool-fs (emit) fs-policy
fs/write-intent waterfall packages/fs/fs/src/index.ts:111 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:39 session (emit) invariants, session-persistence
session/event emit packages/core/session/src/index.ts:47 session (emit) acp, invariants, session-persistence, stdio-agent
session/flush parallel packages/core/session/src/index.ts:57 agent-loop (parallel) session-persistence
skill/provider-added emit packages/skill/skill/src/index.ts:130 skill (emit) -
skill/provider-removed emit packages/skill/skill/src/index.ts:136 skill (emit) -
subagent/end emit packages/subagent/subagent/src/index.ts:98 subagent (events.dispatch) hooks-claude
subagent/provider-added emit packages/subagent/subagent/src/index.ts:72 subagent (emit) tool-subagent
subagent/provider-removed emit packages/subagent/subagent/src/index.ts:83 - tool-subagent
subagent/start emit packages/subagent/subagent/src/index.ts:91 subagent (events.dispatch) hooks-claude
system-prompt/assemble waterfall packages/core/system-prompt/src/index.ts:38 system-prompt (waterfall) -
system-prompt/change emit packages/core/system-prompt/src/index.ts:44 system-prompt (emit) -
tools/change emit packages/core/tools/src/index.ts:135 tools (emit) -
tools/execute waterfall packages/core/tools/src/index.ts:114 tools (waterfall) timeout-policy
tools/post-execute waterfall packages/core/tools/src/index.ts:130 tools (waterfall) hooks-claude, hooks-codex, repeat-tool-guard, workspace-context
tools/pre-execute waterfall packages/core/tools/src/index.ts:94 tools (waterfall) hooks-claude, hooks-codex
workflow/agent-end emit packages/workflow/workflow/src/index.ts:96 workflow (events.dispatch) -
workflow/agent-start emit packages/workflow/workflow/src/index.ts:85 workflow (events.dispatch) -
workflow/end emit packages/workflow/workflow/src/index.ts:106 workflow (events.dispatch) -
workflow/log emit packages/workflow/workflow/src/index.ts:77 workflow (events.dispatch) -
workflow/phase emit packages/workflow/workflow/src/index.ts:70 workflow (events.dispatch) -
workflow/start emit packages/workflow/workflow/src/index.ts:62 workflow (events.dispatch) -

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.