Files
deepseek-harness/docs/graphs/event-producer-consumer.md
Tianyi Cui 3977f1d63c Merge remote-tracking branch 'origin/master' into codex/docs-graph-brainstorm
# Conflicts:
#	docs/architecture.md
#	docs/development.i18n.yaml
#	docs/development.md
#	docs/development.zh.md
#	docs/rfc/README.md
#	package.json
2026-07-04 22:39:16 +08:00

7.0 KiB

Event Producer And Consumer Matrix

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.

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:234 agent (emit) ui-stdio
agent/disposed emit packages/core/agent/src/types.ts:241 agent (emit) ui-stdio
agent/error emit packages/core/agent/src/types.ts:389 agent-loop (emit) -
agent/pre-step serial packages/core/agent/src/types.ts:319 agent-loop (serial) compact-basic
agent/prompt-submit waterfall packages/core/agent/src/types.ts:332 agent-loop (waterfall) hooks-claude, hooks-codex
agent/queued emit packages/core/agent/src/types.ts:259 agent-loop (emit) -
agent/request waterfall packages/core/agent/src/types.ts:345 agent-loop (waterfall), compact-basic (waterfall) -
agent/session-start emit packages/core/agent/src/types.ts:274 agent-loop (emit) hooks-claude, hooks-codex
agent/status emit packages/core/agent/src/types.ts:250 agent-loop (emit) acp, invariants, ui-stdio
agent/steering emit packages/core/agent/src/types.ts:379 agent-loop (emit) -
agent/step-result waterfall packages/core/agent/src/types.ts:355 agent-loop (waterfall) -
agent/turn-continuation waterfall packages/core/agent/src/types.ts:368 agent-loop (waterfall) hooks-claude, hooks-codex
fs/edit-intent waterfall packages/fs/fs/src/index.ts:123 tool-fs (waterfall) fs-policy
fs/observed emit packages/fs/fs/src/index.ts:138 tool-fs (emit) fs-policy
fs/write-intent waterfall packages/fs/fs/src/index.ts:109 tool-fs (waterfall) fs-policy
llm/stream waterfall packages/llm/llm/src/index.ts:32 llm (waterfall) llm-replay
session/created emit packages/core/session/src/index.ts:36 session (emit) invariants, session-persistence
session/event emit packages/core/session/src/index.ts:44 session (emit) acp, invariants, session-persistence, ui-stdio
session/flush parallel packages/core/session/src/index.ts:54 agent-loop (parallel) session-persistence
subagent/end emit packages/subagent/subagent/src/index.ts:77 subagent (events.dispatch) hooks-claude
subagent/start emit packages/subagent/subagent/src/index.ts:70 subagent (events.dispatch) hooks-claude
system-prompt/assemble waterfall packages/core/system-prompt/src/index.ts:26 system-prompt (waterfall) -
system-prompt/change emit packages/core/system-prompt/src/index.ts:32 system-prompt (emit) -
tools/change emit packages/core/tools/src/index.ts:87 tools (emit) -
tools/post-execute waterfall packages/core/tools/src/index.ts:82 tools (waterfall) hooks-claude, hooks-codex
tools/pre-execute waterfall packages/core/tools/src/index.ts:66 tools (waterfall) hooks-claude, hooks-codex
web/providers-change emit packages/web/web/src/index.ts:65 web (emit) -