Files
deepseek-harness/docs/event-producer-consumer.md
T
Yichen Jiang 25d959aa08 Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.i18n.yaml
#	.agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.md
#	.agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.zh.md
#	.agents/notes/implemented/architecture/2026-07-25-web-input-machine-and-slash-pipeline.i18n.yaml
#	.agents/notes/implemented/architecture/2026-07-25-web-input-machine-and-slash-pipeline.md
#	.agents/notes/implemented/architecture/2026-07-25-web-input-machine-and-slash-pipeline.zh.md
#	THIRD_PARTY_NOTICES.md
#	apps/cli/composition.md
#	apps/cli/config/base.cordis.yml
#	apps/cli/package.json
#	apps/cli/src/app-cli-entry.ts
#	apps/cli/src/bin.ts
#	apps/cli/tests/args.spec.ts
#	apps/web/tests/built-boot.snapshot.ts
#	apps/web/tests/navigation-panes.e2e.ts
#	docs/architecture.i18n.yaml
#	docs/architecture.md
#	docs/architecture.zh.md
#	docs/config-catalog.md
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/core.i18n.yaml
#	docs/core-data-structures/llm-streaming.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/README.i18n.yaml
#	packages/bundle/README.i18n.yaml
#	packages/client/connection/README.i18n.yaml
#	packages/client/connection/README.md
#	packages/client/connection/README.zh.md
#	packages/client/connection/src/client/fixture.ts
#	packages/client/connection/src/http-bridge.ts
#	packages/client/connection/src/index.ts
#	packages/client/connection/tests/fixture.spec.ts
#	packages/client/connection/tests/node-half.spec.ts
#	packages/client/runtime/README.i18n.yaml
#	packages/client/runtime/README.md
#	packages/client/runtime/README.zh.md
#	packages/client/runtime/src/client/contract/session.ts
#	packages/client/runtime/src/client/sessions/session.ts
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/README.md
#	packages/client/ui-conversation/README.zh.md
#	packages/client/ui-conversation/src/client/apply.ts
#	packages/client/ui-conversation/src/client/chat/AssistantMarkdown.tsx
#	packages/client/ui-conversation/src/client/chat/ChatView.tsx
#	packages/client/ui-conversation/src/client/chat/MessageItem.module.css
#	packages/client/ui-conversation/src/client/chat/MessageItem.tsx
#	packages/client/ui-conversation/src/client/contract/slots.ts
#	packages/client/ui-conversation/src/client/index.ts
#	packages/client/ui-conversation/src/client/input/contract.ts
#	packages/client/ui-conversation/src/client/input/facade.ts
#	packages/client/ui-conversation/src/client/input/hub.ts
#	packages/client/ui-conversation/src/client/locales.ts
#	packages/client/ui-conversation/src/client/service.ts
#	packages/client/ui-conversation/src/client/skeleton/ConversationSession.tsx
#	packages/client/ui-conversation/src/client/skeleton/InputBar.tsx
#	packages/client/ui-conversation/tests/apply-inject.spec.tsx
#	packages/client/ui-conversation/tests/input-bar.spec.tsx
#	packages/client/ui-conversation/tests/input-matrix.spec.tsx
#	packages/client/ui-conversation/tests/input-scenarios.spec.tsx
#	packages/client/ui-conversation/tests/service-orchestration.spec.ts
#	packages/client/ui-conversation/tests/skeleton.spec.tsx
#	packages/client/ui-trajectory/tests/views.spec.tsx
#	packages/compact/compact-basic/README.i18n.yaml
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/README.md
#	packages/host/apiproxy/README.zh.md
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/host/apiproxy/src/api/rpc.ts
#	packages/host/apiproxy/src/api/sessions.ts
#	packages/host/apiproxy/src/index.ts
#	packages/host/apiproxy/tests/api-proxy-models.spec.ts
#	packages/host/apiproxy/tests/rpc-schemas.spec.ts
#	packages/llm/llm-pi-ai/README.i18n.yaml
#	packages/llm/llm-pi-ai/README.md
#	packages/llm/llm-pi-ai/README.zh.md
#	packages/llm/llm-pi-ai/src/adapter.ts
#	packages/llm/llm/README.i18n.yaml
#	packages/ui/tui/README.md
#	packages/ui/tui/README.zh.md
#	packages/ui/tui/src/components/content.ts
#	packages/ui/tui/src/components/transcript.ts
#	packages/ui/tui/tests/tui.spec.ts
#	pnpm-lock.yaml
2026-08-08 01:56:29 +08:00

18 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:182 agent-loop (events.dispatch) -
agent/created emit packages/core/agent/src/types.ts:154 agent (events.dispatch) goal-session
agent/disposed emit packages/core/agent/src/types.ts:163 agent (events.dispatch) agent-loop, goal-session, subagent
agent/error emit packages/core/agent/src/types.ts:285 agent-loop (emit) acp, apiproxy, goal-session, session-telemetry
agent/inbox/claimed emit packages/core/agent/src/types.ts:192 agent-loop (emit) acp, goal-session, subagent
agent/inbox/discarded emit packages/core/agent/src/types.ts:200 agent-loop (emit) goal-session, subagent
agent/inbox/inserted emit packages/core/agent/src/types.ts:181 agent-loop (emit) goal-session
agent/pre-step waterfall packages/core/agent/src/types.ts:226 agent-loop (waterfall) compact-basic, goal-session, hooks-claude, hooks-codex, plan-mode, repeat-tool-guard, session-checkpoint-policy, subagent-inprocess, time-context, tmux-context, tool-skill, workspace-context
agent/request waterfall packages/core/agent/src/types.ts:239 agent-loop (waterfall) agent
agent/request-error waterfall packages/core/agent/src/types.ts:255 agent-loop (waterfall) compact-basic, llm-retry
agent/session-start emit packages/core/agent/src/types.ts:212 agent-loop (emitAgentEvent) goal, goal-session, hooks-claude, hooks-codex
agent/status emit packages/core/agent/src/types.ts:173 agent-loop (emit) agent, apiproxy, compact-basic, goal-session, headless, jsonrpc
agent/turn-stopping serial packages/core/agent/src/types.ts:273 agent-loop (serial) hooks-claude, hooks-codex
approval/request waterfall packages/ui/user-approval/src/index.ts:30 user-approval (waterfall) acp, apiproxy
commands/change emit packages/ui/commands/src/index.ts:161 commands (events.dispatch) apiproxy
credentials/updated emit packages/credentials/credentials/src/index.ts:67 credentials (events.dispatch) apiproxy, credentials
domain/changed emit packages/storage/storage-domain/src/events.ts:46 storage-domain (emit) apiproxy, storage-domain, workspace
fs/edit-intent waterfall packages/fs/fs/src/index.ts:62 tool-fs (waterfall), tool-str-replace-editor (waterfall) fs-policy
fs/observed emit packages/fs/fs/src/index.ts:71 tool-fs (emit), tool-str-replace-editor (emit) fs-policy, skill-local
fs/write-intent waterfall packages/fs/fs/src/index.ts:54 tool-fs (waterfall), tool-str-replace-editor (waterfall) fs-policy
goal/changed emit packages/goal/goal/src/domain.ts:114 goal (emit) goal-session
llm/adapters-updated emit packages/llm/llm/src/index.ts:75 llm (events.dispatch) apiproxy, llm
llm/stream waterfall packages/llm/llm/src/index.ts:64 llm (waterfall) agent-loop, llm, llm-replay, session-checkpoint-policy, session-title
session/created emit packages/core/session/src/index.ts:74 session (events.dispatch) apiproxy, compact, goal, hook-protocol, jsonrpc, llm-retry, permission, plan-mode, session, session-persistence, session-telemetry, tools, user-approval
session/disposed emit packages/core/session/src/index.ts:84 session (events.dispatch) agent-loop, apiproxy, session-persistence, session-projection-cache, session-telemetry, session-title
session/event emit packages/core/session/src/index.ts:96 session (events.dispatch) acp, agent-loop, apiproxy, cli-demo, compact, compact-basic, goal, goal-session, hook-protocol, jsonrpc, session, session-persistence, session-projection, session-projection-cache, session-telemetry, session-telemetry-otel, session-title, token-meter, tools, user-approval
session/flush parallel packages/core/session/src/index.ts:105 session (events.dispatch) session-persistence, session-telemetry
settings/document-updated emit packages/settings/settings/src/index.ts:170 settings (events.dispatch) apiproxy
settings/updated emit packages/settings/settings/src/index.ts:157 settings (events.dispatch) settings
skills/change emit packages/skill/skill/src/index.ts:188 skill (events.dispatch) -
subagent/end emit packages/subagent/subagent/src/index.ts:160 subagent (events.dispatch) hooks-claude, jsonrpc, subagent
subagent/provider-added emit packages/subagent/subagent/src/index.ts:134 subagent (emit) subagent, tool-subagent
subagent/provider-removed emit packages/subagent/subagent/src/index.ts:140 subagent (events.dispatch) subagent, tool-subagent
subagent/start emit packages/subagent/subagent/src/index.ts:151 subagent (events.dispatch) hooks-claude, subagent
system-prompt/assemble waterfall packages/core/system-prompt/src/index.ts:29 system-prompt (waterfall) agent, system-prompt
system-prompt/change emit packages/core/system-prompt/src/index.ts:35 system-prompt (emit) -
telemetry/record waterfall packages/telemetry/session-telemetry/src/index.ts:43 session-telemetry (waterfall) -
tools/change emit packages/core/tools/src/index.ts:191 tools (emit) -
tools/code-dispatch-log waterfall packages/core/tools/src/index.ts:173 tools (waterfall) spill-policy
tools/execute waterfall packages/core/tools/src/index.ts:148 tools (waterfall) session-checkpoint-policy, timeout-policy
tools/post-execute waterfall packages/core/tools/src/index.ts:160 tools (waterfall) hooks-claude, hooks-codex, repeat-tool-guard, spill-policy, tool-fs-search
tools/pre-execute waterfall packages/core/tools/src/index.ts:137 tools (waterfall) hooks-claude, hooks-codex, tool-tasks
tools/result emit packages/core/tools/src/index.ts:181 tools (events.dispatch) subagent-inprocess, workspace-context
workflow/agent-end emit packages/workflow/workflow/src/index.ts:81 workflow (events.dispatch) workflow
workflow/agent-start emit packages/workflow/workflow/src/index.ts:70 workflow (events.dispatch) workflow
workflow/end emit packages/workflow/workflow/src/index.ts:91 workflow (events.dispatch) workflow
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) workflow

Non-harness or undeclared event strings seen in package source

Event string Dispatchers Listeners
commands/changed runtime (emit) ui-command
connection/reset runtime (emit) ui-command, ui-models, ui-permission, ui-settings-general
credentials/changed runtime (emit) ui-models
internal/dispatch - commands, compact, fs, goal, goal-session, hook-protocol, llm-retry, permission, plan-mode, pty-local, runtime, sandbox-policy, scope, session, session-title, subagent, time-context, tool-todo, tools, user-approval, workflow
internal/plugin - hmr, loader, modules, webserver
internal/service - gateway
internal/status - agent
locale/change locale (emit) locale
models/changed runtime (emit) ui-models
settings/changed runtime (emit) ui-models, ui-permission, ui-settings-general
slash/input-begin-command - ui-conversation
slash/input-consume-token - ui-conversation
slash/input-insert-reference - ui-conversation
slash/input-insert-text - ui-conversation
slots/changed runtime (emit) -
theme/change ui-theme (emit) ui-layout, ui-theme

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