Files
deepseek-harness/docs/event-producer-consumer.md
T
Tianyi Cui 962c43aa9e Merge remote-tracking branch 'origin/master' into codex/pr239-parent-retarget-publish
# Conflicts:
#	docs/capability-seams.md
#	docs/config-catalog.md
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	examples/acp-agent/tests/snapshots/advanced-toolchain/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/bash-spill/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/both-mode-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/cancel-tool-calls/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/cancel/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/code-mode-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/code-mode-workspace-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/config-options/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/error-finish/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/escalation-approved/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/escalation-rejected/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-edit/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-escalation-approved/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-policy-reject/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-read-window/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-read/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-terminal-card/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-write-overwrite/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/fs-write/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/handshake/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-posttool-block/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-posttool-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-block/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-stop-continue/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-posttool-block/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-posttool-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-pretool-block/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-block/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-stop-continue/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/model-switching/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/multi-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/parallel-tool-calls/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/permission-switching/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/repeat-tool-guard/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/skill-load/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-fork/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-mixed/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-multi/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/subagent-spawn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/text-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/todo-plan/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/tool-call-turn/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/workflow-run/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/workspace-context/stdout.expected.jsonl
#	examples/acp-agent/tests/snapshots/workspace-edit/stdout.expected.jsonl
#	packages/core/tools/tests/gen-tool-catalog.spec.ts
#	packages/ui/acp/acp-feature-support.md
#	packages/ui/acp/src/index.ts
#	scripts/gen-doc-graphs.ts
2026-07-21 00:50:00 +08:00

12 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-loop/config-start-failed emit packages/core/agent-loop/src/index.ts:353 agent-loop (events.dispatch) tui
agent/cancel-requested emit packages/core/agent/src/types.ts:191 agent-loop (emit) goal-session
agent/created emit packages/core/agent/src/types.ts:153 agent (events.dispatch) goal-session, mode, tui
agent/disposed emit packages/core/agent/src/types.ts:162 agent (events.dispatch) agent-loop, goal-session, tui
agent/error emit packages/core/agent/src/types.ts:328 agent-loop (emit) goal-session, tui
agent/post-step serial packages/core/agent/src/types.ts:280 agent-loop (serial) compact-basic
agent/pre-step serial packages/core/agent/src/types.ts:220 agent-loop (serial) time-context, user-approval
agent/prompt-submit waterfall packages/core/agent/src/types.ts:230 agent-loop (waterfall) acp, goal-session, hooks-claude, hooks-codex, mode, repeat-tool-guard
agent/queued emit packages/core/agent/src/types.ts:181 agent-loop (emit) goal-session
agent/request waterfall packages/core/agent/src/types.ts:242 agent-loop (waterfall) acp
agent/request-error waterfall packages/core/agent/src/types.ts:295 agent-loop (waterfall) compact-basic, llm-retry
agent/session-prefix waterfall packages/core/agent/src/types.ts:257 agent-loop (waterfall) tool-skill, workspace-context
agent/session-start emit packages/core/agent/src/types.ts:204 agent-loop (emit) goal, goal-session, hooks-claude, hooks-codex
agent/status emit packages/core/agent/src/types.ts:171 agent-loop (emit) goal-session, invariants, tui
agent/step-result waterfall packages/core/agent/src/types.ts:268 agent-loop (waterfall) -
agent/turn-continuation waterfall packages/core/agent/src/types.ts:305 agent-loop (waterfall) hooks-claude, hooks-codex, mode
agent/turn-stop serial packages/core/agent/src/types.ts:315 agent-loop (serial) subagent-inprocess, tool-goal
approval/request waterfall packages/ui/user-approval/src/index.ts:31 user-approval (waterfall) acp
commands/change emit packages/ui/commands/src/index.ts:83 commands (events.dispatch) acp, tui
fs/edit-intent waterfall packages/fs/fs/src/index.ts:62 tool-fs (waterfall) fs-policy
fs/observed emit packages/fs/fs/src/index.ts:71 tool-fs (emit) fs-policy
fs/write-intent waterfall packages/fs/fs/src/index.ts:54 tool-fs (waterfall) fs-policy
goal/changed emit packages/goal/goal/src/types.ts:167 goal (emit) goal-session
llm/stream waterfall packages/llm/llm/src/index.ts:44 llm (waterfall) invariants, llm-replay
session/created emit packages/core/session/src/index.ts:47 session (events.dispatch) invariants, jsonrpc, session-persistence
session/disposed emit packages/core/session/src/index.ts:57 session (events.dispatch) agent-loop, session-persistence
session/event emit packages/core/session/src/index.ts:69 session (events.dispatch) acp, cli-demo, goal-session, invariants, jsonrpc, session-persistence, token-meter, tui, workspace-context
session/flush parallel packages/core/session/src/index.ts:79 session (events.dispatch) session-persistence
subagent/end emit packages/subagent/subagent/src/index.ts:139 subagent (events.dispatch) hooks-claude, jsonrpc
subagent/provider-added emit packages/subagent/subagent/src/index.ts:113 subagent (emit) tool-subagent
subagent/provider-removed emit packages/subagent/subagent/src/index.ts:119 subagent (events.dispatch) tool-subagent
subagent/start emit packages/subagent/subagent/src/index.ts:130 subagent (events.dispatch) hooks-claude
system-prompt/assemble waterfall packages/core/system-prompt/src/index.ts:27 system-prompt (waterfall) acp, mode
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
internal/status - agent

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