dsh-plugin-guide 0.2.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.es.md +36 -18
- package/README.hi.md +36 -18
- package/README.md +38 -18
- package/README.pt.md +36 -18
- package/README.zh.md +38 -18
- package/SKILL.md +1 -1
- package/dist/dsh-plugin-dev.js +5 -5
- package/guide/links.md +1 -1
- package/guide/plugin-dev-guide.md +1 -1
- package/guide/quick-reference.es.md +2 -2
- package/guide/quick-reference.hi.md +2 -2
- package/guide/quick-reference.md +2 -2
- package/guide/quick-reference.pt.md +2 -2
- package/guide/quick-reference.zh-CN.md +3 -3
- package/package.json +13 -4
- package/references/cordis-paper-and-community.md +1 -1
- package/references/harness-repo.md +1 -1
- package/references/official-docs/AGENTS.md +27 -22
- package/references/official-docs/README.i18n.yaml +2 -2
- package/references/official-docs/README.md +1 -1
- package/references/official-docs/README.zh.md +19 -9
- package/references/official-docs/SNAPSHOT.md +5 -5
- package/references/official-docs/THIRD_PARTY_NOTICES.md +36 -13
- package/references/official-docs/docs/AGENTS.md +4 -4
- package/references/official-docs/docs/agent-lifecycle.i18n.yaml +2 -2
- package/references/official-docs/docs/agent-lifecycle.md +1 -1
- package/references/official-docs/docs/agent-lifecycle.zh.md +2 -2
- package/references/official-docs/docs/api-gateway.i18n.yaml +2 -2
- package/references/official-docs/docs/api-gateway.md +8 -8
- package/references/official-docs/docs/api-gateway.zh.md +8 -8
- package/references/official-docs/docs/architecture.i18n.yaml +2 -2
- package/references/official-docs/docs/architecture.md +23 -7
- package/references/official-docs/docs/architecture.zh.md +36 -20
- package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
- package/references/official-docs/docs/capability-seams.md +132 -67
- package/references/official-docs/docs/capability-seams.zh.md +132 -67
- package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
- package/references/official-docs/docs/config-catalog.md +659 -373
- package/references/official-docs/docs/config-catalog.zh.md +677 -391
- package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +2 -2
- package/references/official-docs/docs/cookbook/adding-a-package.md +2 -3
- package/references/official-docs/docs/cookbook/adding-a-package.zh.md +8 -7
- package/references/official-docs/docs/cookbook/{adding-a-conversation-node.i18n.yaml → adding-a-remote-api.i18n.yaml} +3 -3
- package/references/official-docs/docs/cookbook/adding-a-remote-api.md +197 -0
- package/references/official-docs/docs/cookbook/adding-a-remote-api.zh.md +197 -0
- package/references/official-docs/docs/cookbook/adding-a-settings-card.i18n.yaml +6 -0
- package/references/official-docs/docs/cookbook/adding-a-settings-card.md +102 -0
- package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +102 -0
- package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +2 -2
- package/references/official-docs/docs/cookbook/adding-a-tool.md +11 -4
- package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +16 -9
- package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +2 -2
- package/references/official-docs/docs/cookbook/adding-a-vendored-package.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-vendored-package.zh.md +4 -4
- package/references/official-docs/docs/cookbook/adding-an-llm-adapter.i18n.yaml +2 -2
- package/references/official-docs/docs/cookbook/adding-an-llm-adapter.md +1 -1
- package/references/official-docs/docs/cookbook/adding-an-llm-adapter.zh.md +3 -3
- package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +2 -2
- package/references/official-docs/docs/cookbook/extension-cookbook.md +9 -8
- package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +17 -14
- package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.i18n.yaml +1 -1
- package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.zh.md +1 -1
- package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +1 -1
- package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +1 -1
- package/references/official-docs/docs/cordis-api/context.i18n.yaml +1 -1
- package/references/official-docs/docs/cordis-api/context.zh.md +1 -1
- package/references/official-docs/docs/cordis-api/events.i18n.yaml +1 -1
- package/references/official-docs/docs/cordis-api/events.zh.md +1 -1
- package/references/official-docs/docs/cordis-api/inherited.md +1 -1
- package/references/official-docs/docs/cordis-primer.i18n.yaml +2 -2
- package/references/official-docs/docs/cordis-primer.md +2 -1
- package/references/official-docs/docs/cordis-primer.zh.md +3 -2
- package/references/official-docs/docs/cordis-tutorial/01-first-plugin.i18n.yaml +1 -1
- package/references/official-docs/docs/cordis-tutorial/01-first-plugin.zh.md +4 -4
- package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.i18n.yaml +1 -1
- package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +4 -4
- package/references/official-docs/docs/cordis-tutorial/03-services.i18n.yaml +1 -1
- package/references/official-docs/docs/cordis-tutorial/03-services.zh.md +4 -4
- package/references/official-docs/docs/cordis-tutorial/04-events.i18n.yaml +1 -1
- package/references/official-docs/docs/cordis-tutorial/04-events.zh.md +4 -4
- package/references/official-docs/docs/cordis-tutorial/05-config.i18n.yaml +1 -1
- package/references/official-docs/docs/cordis-tutorial/05-config.zh.md +2 -2
- package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +1 -1
- package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.zh.md +3 -3
- package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.i18n.yaml +2 -2
- package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.md +5 -4
- package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.zh.md +11 -10
- package/references/official-docs/docs/cordis-tutorial/index.i18n.yaml +1 -1
- package/references/official-docs/docs/cordis-tutorial/index.zh.md +10 -10
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +6 -0
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +159 -0
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +159 -0
- package/references/official-docs/docs/defensive-patterns.i18n.yaml +1 -1
- package/references/official-docs/docs/defensive-patterns.zh.md +3 -1
- package/references/official-docs/docs/development.i18n.yaml +2 -2
- package/references/official-docs/docs/development.md +9 -13
- package/references/official-docs/docs/development.zh.md +23 -21
- package/references/official-docs/docs/event-producer-consumer.i18n.yaml +2 -2
- package/references/official-docs/docs/event-producer-consumer.md +55 -46
- package/references/official-docs/docs/event-producer-consumer.zh.md +55 -46
- package/references/official-docs/docs/glossary.i18n.yaml +2 -2
- package/references/official-docs/docs/glossary.md +1 -1
- package/references/official-docs/docs/glossary.zh.md +1 -1
- package/references/official-docs/docs/graph-atlas.i18n.yaml +2 -2
- package/references/official-docs/docs/graph-atlas.md +0 -2
- package/references/official-docs/docs/graph-atlas.zh.md +7 -9
- package/references/official-docs/docs/i18n/README.i18n.yaml +2 -2
- package/references/official-docs/docs/i18n/README.md +7 -7
- package/references/official-docs/docs/i18n/README.zh.md +11 -9
- package/references/official-docs/docs/i18n/style-samples.md +3 -3
- package/references/official-docs/docs/i18n/translation-prompt.md +3 -3
- package/references/official-docs/docs/i18n/translation-rules.i18n.yaml +2 -2
- package/references/official-docs/docs/i18n/translation-rules.md +2 -2
- package/references/official-docs/docs/i18n/translation-rules.zh.md +3 -3
- package/references/official-docs/docs/module-graph.i18n.yaml +2 -2
- package/references/official-docs/docs/module-graph.md +666 -747
- package/references/official-docs/docs/module-graph.zh.md +668 -749
- package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-catalog.md +160 -39
- package/references/official-docs/docs/persistence-catalog.zh.md +169 -48
- package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.i18n.yaml +2 -2
- package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.md +2 -2
- package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.zh.md +3 -3
- package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.i18n.yaml +2 -2
- package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +2 -2
- package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +2 -2
- package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.i18n.yaml +2 -2
- package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.md +2 -2
- package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +2 -2
- package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.i18n.yaml +2 -2
- package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +1 -1
- package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +2 -2
- package/references/official-docs/docs/postmortem/README.i18n.yaml +1 -1
- package/references/official-docs/docs/postmortem/README.zh.md +5 -5
- package/references/official-docs/docs/rescope.i18n.yaml +2 -2
- package/references/official-docs/docs/rescope.md +2 -2
- package/references/official-docs/docs/rescope.zh.md +3 -3
- package/references/official-docs/docs/subsystems/README.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/README.md +8 -2
- package/references/official-docs/docs/subsystems/README.zh.md +53 -47
- package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/agent-team.md +206 -0
- package/references/official-docs/docs/subsystems/agent-team.zh.md +206 -0
- package/references/official-docs/docs/subsystems/approval.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/approval.md +12 -12
- package/references/official-docs/docs/subsystems/approval.zh.md +13 -13
- package/references/official-docs/docs/subsystems/attachment.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/attachment.md +90 -7
- package/references/official-docs/docs/subsystems/attachment.zh.md +90 -7
- package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/client-modules.md +69 -19
- package/references/official-docs/docs/subsystems/client-modules.zh.md +69 -19
- package/references/official-docs/docs/subsystems/code-runtime.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/code-runtime.md +5 -5
- package/references/official-docs/docs/subsystems/code-runtime.zh.md +6 -6
- package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/commands.md +29 -6
- package/references/official-docs/docs/subsystems/commands.zh.md +30 -7
- package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/compaction.md +5 -5
- package/references/official-docs/docs/subsystems/compaction.zh.md +11 -11
- package/references/official-docs/docs/subsystems/conversation.i18n.yaml +6 -0
- package/references/official-docs/docs/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +49 -24
- package/references/official-docs/docs/{cookbook/adding-a-conversation-node.zh.md → subsystems/conversation.zh.md} +49 -24
- package/references/official-docs/docs/subsystems/core.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/core.md +110 -33
- package/references/official-docs/docs/subsystems/core.zh.md +141 -62
- package/references/official-docs/docs/subsystems/credentials.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/credentials.md +207 -11
- package/references/official-docs/docs/subsystems/credentials.zh.md +207 -11
- package/references/official-docs/docs/subsystems/extensions.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/extensions.md +27 -9
- package/references/official-docs/docs/subsystems/extensions.zh.md +30 -12
- package/references/official-docs/docs/subsystems/feedback.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/feedback.md +4 -4
- package/references/official-docs/docs/subsystems/feedback.zh.md +4 -4
- package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/filesystem.md +17 -7
- package/references/official-docs/docs/subsystems/filesystem.zh.md +19 -9
- package/references/official-docs/docs/subsystems/goal.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/goal.md +4 -4
- package/references/official-docs/docs/subsystems/goal.zh.md +8 -8
- package/references/official-docs/docs/subsystems/invariants.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/invariants.md +2 -2
- package/references/official-docs/docs/subsystems/invariants.zh.md +5 -5
- package/references/official-docs/docs/subsystems/jobs.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/jobs.md +3 -3
- package/references/official-docs/docs/subsystems/jobs.zh.md +6 -6
- package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/llm-streaming.md +193 -22
- package/references/official-docs/docs/subsystems/llm-streaming.zh.md +199 -28
- package/references/official-docs/docs/subsystems/lsp.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/lsp.md +2 -2
- package/references/official-docs/docs/subsystems/lsp.zh.md +3 -3
- package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/permission-presets.md +8 -8
- package/references/official-docs/docs/subsystems/permission-presets.zh.md +8 -8
- package/references/official-docs/docs/subsystems/persistence.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/persistence.md +35 -17
- package/references/official-docs/docs/subsystems/persistence.zh.md +38 -20
- package/references/official-docs/docs/subsystems/plan.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/plan.md +4 -4
- package/references/official-docs/docs/subsystems/plan.zh.md +10 -10
- package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/sandbox.md +5 -3
- package/references/official-docs/docs/subsystems/sandbox.zh.md +8 -6
- package/references/official-docs/docs/subsystems/schedule.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/schedule.md +9 -3
- package/references/official-docs/docs/subsystems/schedule.zh.md +11 -5
- package/references/official-docs/docs/subsystems/scope.i18n.yaml +1 -1
- package/references/official-docs/docs/subsystems/scope.zh.md +1 -1
- package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session-projection.md +136 -67
- package/references/official-docs/docs/subsystems/session-projection.zh.md +136 -67
- package/references/official-docs/docs/subsystems/session-query.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session-query.md +11 -3
- package/references/official-docs/docs/subsystems/session-query.zh.md +12 -4
- package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session-reference.md +94 -7
- package/references/official-docs/docs/subsystems/session-reference.zh.md +95 -8
- package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session-telemetry.md +5 -6
- package/references/official-docs/docs/subsystems/session-telemetry.zh.md +9 -10
- package/references/official-docs/docs/subsystems/session-title.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session-title.md +3 -3
- package/references/official-docs/docs/subsystems/session-title.zh.md +5 -5
- package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session.md +273 -39
- package/references/official-docs/docs/subsystems/session.zh.md +290 -54
- package/references/official-docs/docs/subsystems/settings.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/settings.md +105 -10
- package/references/official-docs/docs/subsystems/settings.zh.md +105 -10
- package/references/official-docs/docs/subsystems/shell.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/shell.md +3 -3
- package/references/official-docs/docs/subsystems/shell.zh.md +11 -11
- package/references/official-docs/docs/subsystems/skills.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/skills.md +26 -3
- package/references/official-docs/docs/subsystems/skills.zh.md +29 -6
- package/references/official-docs/docs/subsystems/slots.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/slots.md +174 -0
- package/references/official-docs/docs/subsystems/slots.zh.md +174 -0
- package/references/official-docs/docs/subsystems/spill.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/spill.md +4 -4
- package/references/official-docs/docs/subsystems/spill.zh.md +6 -6
- package/references/official-docs/docs/subsystems/storage.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/storage.md +13 -5
- package/references/official-docs/docs/subsystems/storage.zh.md +16 -8
- package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/subagent.md +120 -32
- package/references/official-docs/docs/subsystems/subagent.zh.md +131 -41
- package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/subprocess.md +3 -3
- package/references/official-docs/docs/subsystems/subprocess.zh.md +5 -5
- package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/system-prompt.md +21 -8
- package/references/official-docs/docs/subsystems/system-prompt.zh.md +23 -10
- package/references/official-docs/docs/subsystems/terminal.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/terminal.md +2 -2
- package/references/official-docs/docs/subsystems/terminal.zh.md +4 -4
- package/references/official-docs/docs/subsystems/todo.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/todo.md +32 -0
- package/references/official-docs/docs/subsystems/todo.zh.md +32 -0
- package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/token-meter.md +27 -12
- package/references/official-docs/docs/subsystems/token-meter.zh.md +28 -13
- package/references/official-docs/docs/subsystems/tools.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/tools.md +46 -46
- package/references/official-docs/docs/subsystems/tools.zh.md +54 -54
- package/references/official-docs/docs/subsystems/typert.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/typert.md +65 -58
- package/references/official-docs/docs/subsystems/typert.zh.md +67 -60
- package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/user-questions.md +35 -35
- package/references/official-docs/docs/subsystems/user-questions.zh.md +35 -35
- package/references/official-docs/docs/subsystems/web-client.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/web-client.md +95 -0
- package/references/official-docs/docs/subsystems/web-client.zh.md +95 -0
- package/references/official-docs/docs/subsystems/web-server.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/web-server.md +55 -9
- package/references/official-docs/docs/subsystems/web-server.zh.md +56 -10
- package/references/official-docs/docs/subsystems/web.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/web.md +14 -7
- package/references/official-docs/docs/subsystems/web.zh.md +16 -9
- package/references/official-docs/docs/subsystems/webhook.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/webhook.md +70 -0
- package/references/official-docs/docs/subsystems/webhook.zh.md +70 -0
- package/references/official-docs/docs/subsystems/workflow.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/workflow.md +8 -8
- package/references/official-docs/docs/subsystems/workflow.zh.md +13 -13
- package/references/official-docs/docs/subsystems/workspace.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/workspace.md +98 -5
- package/references/official-docs/docs/subsystems/workspace.zh.md +102 -9
- package/references/official-docs/docs/testing.i18n.yaml +2 -2
- package/references/official-docs/docs/testing.md +15 -10
- package/references/official-docs/docs/testing.zh.md +15 -10
- package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
- package/references/official-docs/docs/tool-catalog.md +433 -27
- package/references/official-docs/docs/tool-catalog.zh.md +438 -29
- package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +2 -2
- package/references/official-docs/docs/tool-execution-pipeline.md +1 -1
- package/references/official-docs/docs/tool-execution-pipeline.zh.md +1 -1
- package/references/official-docs/docs/user/develop/basic/config.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/basic/config.md +1 -1
- package/references/official-docs/docs/user/develop/basic/config.zh.md +4 -4
- package/references/official-docs/docs/user/develop/basic/index.i18n.yaml +1 -1
- package/references/official-docs/docs/user/develop/basic/index.zh.md +5 -5
- package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/basic/publish.md +3 -3
- package/references/official-docs/docs/user/develop/basic/publish.zh.md +7 -7
- package/references/official-docs/docs/user/develop/basic/tool.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/basic/tool.md +3 -3
- package/references/official-docs/docs/user/develop/basic/tool.zh.md +4 -4
- package/references/official-docs/docs/user/develop/framework/events.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/framework/events.md +2 -2
- package/references/official-docs/docs/user/develop/framework/events.zh.md +3 -3
- package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +1 -1
- package/references/official-docs/docs/user/develop/framework/index.zh.md +3 -3
- package/references/official-docs/docs/user/develop/framework/service.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/framework/service.md +1 -1
- package/references/official-docs/docs/user/develop/framework/service.zh.md +3 -3
- package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +6 -0
- package/references/official-docs/docs/user/develop/practice/dynamic-cordis.md +15 -0
- package/references/official-docs/docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
- package/references/official-docs/docs/user/develop/practice/index.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/practice/index.md +1 -1
- package/references/official-docs/docs/user/develop/practice/index.zh.md +3 -3
- package/references/official-docs/docs/user/develop/practice/llm-adapter.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/practice/llm-adapter.md +4 -3
- package/references/official-docs/docs/user/develop/practice/llm-adapter.zh.md +4 -3
- package/references/official-docs/docs/user/guide/github-review.i18n.yaml +6 -0
- package/references/official-docs/docs/user/guide/github-review.md +102 -0
- package/references/official-docs/docs/user/guide/github-review.zh.md +102 -0
- package/references/official-docs/docs/user/guide/index.i18n.yaml +2 -2
- package/references/official-docs/docs/user/guide/index.md +2 -2
- package/references/official-docs/docs/user/guide/index.zh.md +8 -8
- package/references/official-docs/docs/user/guide/mcp-memory.i18n.yaml +6 -0
- package/references/official-docs/docs/user/guide/mcp-memory.md +101 -0
- package/references/official-docs/docs/user/guide/mcp-memory.zh.md +101 -0
- package/references/official-docs/docs/user/guide/providers.i18n.yaml +2 -2
- package/references/official-docs/docs/user/guide/providers.md +40 -1
- package/references/official-docs/docs/user/guide/providers.zh.md +41 -2
- package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +2 -2
- package/references/official-docs/docs/user/guide/python-sdk.md +80 -34
- package/references/official-docs/docs/user/guide/python-sdk.zh.md +87 -41
- package/references/official-docs/docs/user/guide/schedule.i18n.yaml +6 -0
- package/references/official-docs/docs/user/guide/schedule.md +21 -0
- package/references/official-docs/docs/user/guide/schedule.zh.md +21 -0
- package/references/official-docs/docs/web-styling.i18n.yaml +1 -1
- package/references/official-docs/docs/web-styling.zh.md +2 -2
- package/references/official-docs/packages/AGENTS.md +3 -2
- package/references/official-docs/packages/README.md +104 -59
- package/references/official-docs/vendor/README.md +1 -0
- package/references/official-docs/website-docs.ts +52 -11
- package/references/sources.md +2 -2
- package/references/website-pages.md +3 -3
- package/scripts/check-docs-drift.ps1 +55 -0
- package/scripts/check-readme-sync.mjs +91 -0
- package/scripts/download-sources.ps1 +1 -1
- package/scripts/sync-official-docs.ps1 +19 -11
- package/scripts/verify-kit.ps1 +0 -4
- package/templates/js/README.es.md +1 -1
- package/templates/js/README.hi.md +1 -1
- package/templates/js/README.md +1 -1
- package/templates/js/README.pt.md +1 -1
- package/templates/js/README.zh.md +1 -1
- package/templates/js/package.json +4 -4
- package/templates/ts/README.es.md +1 -1
- package/templates/ts/README.hi.md +1 -1
- package/templates/ts/README.md +1 -1
- package/templates/ts/README.pt.md +1 -1
- package/templates/ts/README.zh.md +1 -1
- package/templates/ts/package.json +4 -4
- package/references/official-docs/examples/AGENTS.md +0 -20
|
@@ -1,12 +1,32 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Conversation 组装
|
|
2
2
|
|
|
3
|
-
[English](
|
|
3
|
+
[English](conversation.md) | 中文
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Conversation 是 Client `SessionEventLikeEntry` window 与浏览器 view 之间的 target-neutral assembly 层。[`ui-conversation`](../../packages/client/ui-conversation/README.zh.md)拥有 event 与 view registry、每个 `SessionBinding` 对应的 identity-stable binding、Turn/Step Location、增量 Context assembly、target source、共享 shell 与输入编排。[`ui-chat`](../../packages/client/ui-chat/README.zh.md)和 [`ui-trajectory`](../../packages/client/ui-trajectory/README.zh.md)等 target 包拥有各自的 Definition、最终 snapshot 与渲染。
|
|
6
6
|
|
|
7
|
-
[Conversation Node 组装决策](../../.agents/notes/implemented/architecture/2026-08-09-client-conversation-node-assembly.md)
|
|
7
|
+
本文定义数据模型与业务自有 Conversation node 的扩展路径。[Web Client 架构](web-client.zh.md)说明该子系统在 Client model 与 Slots 之间的位置;[Conversation Node 组装决策](../../.agents/notes/implemented/architecture/2026-08-09-client-conversation-node-assembly.zh.md)记录其设计理由。
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## 数据模型与所有权
|
|
10
|
+
|
|
11
|
+
Session Controller 拥有连续的已加载逻辑 event window。每个 `SessionEventLikeEntry` 都是 `{ type: 'event', event: SessionEvent }` 或 `{ type: 'chunks', event: ChunkRowEvent }`;两种内部 event 都公开 `type`、`seq`、`time` 与 `data`。`ui-conversation` 把这些 entry 直接交给 assembler,不另开 history stream、不转换 record,也不展开 packed member。每个 Session 对应一个 `ConversationNodeAssembler`,它应用所有已注册 Definition,并为每个已注册 view target 发布独立 source。
|
|
12
|
+
|
|
13
|
+
| 概念 | Owner 与用途 |
|
|
14
|
+
|---|---|
|
|
15
|
+
| Event Definition | 业务包一次匹配一条标准 event 或一个 packed Assistant run,以稳定 `(kind, id)` 关联输入、折叠确定性 State,并可选择 materialize 一个 target node。 |
|
|
16
|
+
| Context | Engine 为一个 `(kind, id)` 拥有的有序 Match 与当前 State。一个 packed run 只占一个 update Match;只有 update 的证据可以保持 pending,直到分页补齐其唯一 scalar start。 |
|
|
17
|
+
| Location | Engine 根据持久 boundary event 推导的 Session、Turn 或 Step 坐标。Definition 可以向一个 Turn 或 Step 发布类型化数据。 |
|
|
18
|
+
| View Definition | Target 包为每个 Session 创建一个增量 builder,并拥有该 target 的最终 snapshot 类型。 |
|
|
19
|
+
| View | Chat 或 Trajectory 等 Slot entry 只读取自身 target snapshot,并渲染 target 自有 node。 |
|
|
20
|
+
|
|
21
|
+
Chat 与 Trajectory 可以识别同一个持久 event family,但各自保留自己的 Definition State 与最终 node payload。共享的 target-neutral 机制只包括 identity routing、有序 replay、Location data、predecessor dependency 与 publication cadence。
|
|
22
|
+
|
|
23
|
+
## Target 激活
|
|
24
|
+
|
|
25
|
+
每个 Session 都保留单调增长的 active target 集合。创建或读取 target source 不会激活它。shell 会显式激活持久化选择或新选择的 View,其他消费者则通过 target source 的首个订阅激活 target。首次激活会创建该 target 的 builder,并从当前按 target 索引的 Context 调用一次 `replace()`。后续 flush 对每个 active target 调用 `apply()`,取消订阅不会移除 target。
|
|
26
|
+
|
|
27
|
+
shell 拥有 View 选择,并在 binding 创建、被选为 current 或 View roster 变化时,于渲染前解析已注册的偏好 View 或 Chat fallback。assembler 只接收解析后的 target id,不自行选择 Chat 或其他默认 target。第三方 View 使用相同的选择与激活操作。
|
|
28
|
+
|
|
29
|
+
## 可回放 event family
|
|
10
30
|
|
|
11
31
|
编写 Definition 前先选定稳定的业务 id。构成同一个 Node 的每条事件都必须携带该 id,或只凭自身 payload 独立推导出该 id;Client 绝不能把 update 猜测为属于“最近一个未完成”的 Context。
|
|
12
32
|
|
|
@@ -22,18 +42,21 @@
|
|
|
22
42
|
|
|
23
43
|
系统支持增量事件。如果生产方能以较低成本发出 whole-value checkpoint,应优先采用,因为 start 位于已加载窗口之外时它仍可直接使用。每条 delta 都必须携带稳定 id,并且按照日志 `seq` 升序回放时能够确定性地产生 State;它不能依赖只存在于实时内存中的状态。如果当前历史窗口只有 update,Assembler 会保留一个 pending Context,并在更早分页补齐 start 前不构造 State。如果产品必须在 start 尚未加载时渲染,terminal 或 checkpoint 事件就必须携带足够的完整 fallback 状态,让 Definition 能直接构造结果;不要通过扫描无关事件恢复它。
|
|
24
44
|
|
|
25
|
-
|
|
45
|
+
连续且属于同一 block 的历史 `assistant/chunk` delta 会以 `chunkrow/text-chunks`、`chunkrow/reasoning-chunks` 或 `chunkrow/tool-call-chunks` 到达。顶层 `seq` 与 `time` 表示首个逻辑成员,`data` 保留每个 fragment 与 timestamp gap。这些 Client-only event 只能充当 update;`start()` 只接收标准 `SessionEvent`。消费 Assistant delta 的 Definition 在同一组 `match()` 与 `update()` 方法里处理相关 packed tag,其他 Definition 直接返回 `null`,无需展开该 run。
|
|
46
|
+
|
|
47
|
+
## Definition 与类型化 Chat payload
|
|
26
48
|
|
|
27
49
|
为了完整展示关联关系,下面把生产方声明和 Client 贡献写在同一个代码块里。实际的包族中,branded id 与 `SessionEventMap` 声明留在事件生产方,Definition、Chat data 合并与 renderer 留在 Client 插件。
|
|
28
50
|
|
|
29
51
|
```ts ignore-check
|
|
30
52
|
import { createElement } from 'react'
|
|
53
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis'
|
|
31
54
|
import type { Branded } from '@deepseek-ai/dsh-brand'
|
|
32
55
|
import type {
|
|
33
|
-
|
|
56
|
+
ConversationLocation, ConversationNodeContext,
|
|
34
57
|
ConversationNodeDefinition,
|
|
35
|
-
} from '@deepseek-ai/dsh-client-
|
|
36
|
-
import type { ChatNodeViewProps } from '@deepseek-ai/dsh-client-ui-
|
|
58
|
+
} from '@deepseek-ai/dsh-client-ui-conversation/client'
|
|
59
|
+
import type { ChatNodeViewProps } from '@deepseek-ai/dsh-client-ui-chat/client'
|
|
37
60
|
|
|
38
61
|
type ReviewId = Branded<'ReviewId'>
|
|
39
62
|
|
|
@@ -88,13 +111,13 @@ interface ReviewChatData {
|
|
|
88
111
|
readonly summary?: string
|
|
89
112
|
}
|
|
90
113
|
|
|
91
|
-
declare module '@deepseek-ai/dsh-client-ui-
|
|
114
|
+
declare module '@deepseek-ai/dsh-client-ui-chat/client' {
|
|
92
115
|
interface ChatNodeDataMap {
|
|
93
116
|
'review-job': ReviewChatData
|
|
94
117
|
}
|
|
95
118
|
}
|
|
96
119
|
|
|
97
|
-
declare module '@deepseek-ai/dsh-client-
|
|
120
|
+
declare module '@deepseek-ai/dsh-client-ui-conversation/client' {
|
|
98
121
|
interface ConversationStepDataMap {
|
|
99
122
|
'review-job': ReviewChatData
|
|
100
123
|
}
|
|
@@ -182,10 +205,10 @@ function ReviewNodeView({ node }: ChatNodeViewProps<'review-job'>) {
|
|
|
182
205
|
return createElement('p', null, text)
|
|
183
206
|
}
|
|
184
207
|
|
|
185
|
-
export const inject = ['
|
|
208
|
+
export const inject = ['uiConversation', 'slots']
|
|
186
209
|
|
|
187
210
|
export function apply(ctx: ClientContext): void {
|
|
188
|
-
ctx.
|
|
211
|
+
ctx.uiConversation.events.register(reviewDefinition)
|
|
189
212
|
ctx.slots.inject('conversation.chat.node', () => ctx.slots.register({
|
|
190
213
|
name: 'conversation.chat.node',
|
|
191
214
|
key: 'review-job',
|
|
@@ -193,33 +216,33 @@ export function apply(ctx: ClientContext): void {
|
|
|
193
216
|
}
|
|
194
217
|
```
|
|
195
218
|
|
|
196
|
-
`match(event)` 是身份提取器,不是 fold
|
|
219
|
+
`match(event)` 是身份提取器,不是 fold:它只能收到当前 `SessionEventLike`,并返回 Definition 内部 id 与生命周期角色。命中后,Assembler 通过 `(kind, id)` 定位 Context;标准 event 可触发一次 `start`,标准或 packed event 可把当前 State 交给 `update`。两个函数都必须返回引擎随后采用的 State;推荐返回新的 immutable value,但函数原地修改后返回同一对象时,采用语义也相同。
|
|
197
220
|
|
|
198
221
|
`buildLocationData(context, scope)` 可以把 Definition 拥有的数据发布到引擎拥有的 Turn 或 Step 上。通过 declaration merging 为每个 key 指定精确 value 类型。同一 Location 内的另一个 Node 可以使用受限 slot hook(例如 `useTurnData(key)`)读取该值,无须取得 Session,也无须扫描 `snapshot.chat.nodes`。
|
|
199
222
|
|
|
200
223
|
`target` 与 `buildViewNode(context)` 必须同时声明一项由 target 拥有的渲染贡献。把 `context.key` 保留为 React 侧身份,根据持久排序证据选择 `anchorSeq`,并且只返回 renderer 可以直接使用的数据。某个 target Node 一旦发布,就要继续返回同一个 key;需要暂时离开可见流时使用 `visibility: 'hidden'`,不要改为返回 `null` 撤回它。
|
|
201
224
|
|
|
202
|
-
##
|
|
225
|
+
## Predecessor read
|
|
203
226
|
|
|
204
227
|
有些 Definition 需要另一个业务 kind 在当前位置之前的最新 State。`start` 会收到 `ConversationContextReader`;应在这里调用 `reader.previous<State>(kind)`,不要接收 Context 集合或扫描事件。Reader 返回当前 start `seq` 之前最近一个已启动 Context 的只读数据。
|
|
205
228
|
|
|
206
229
|
Assembler 会记录这项依赖。如果后续 older prepend 带来了更近的前序 Context、补齐了原先未知的窗口缺口,或者前序 State 被修订,引擎会从 `start` 重新运行依赖方 Context,并按 `seq` 升序回放其 update。被查询的 Definition 仍负责把有用信息写入自身 State;Reader 不提供业务专用查询方法,也不授予修改其他 Context 的权限。
|
|
207
230
|
|
|
208
|
-
##
|
|
231
|
+
## Window 更新路径
|
|
209
232
|
|
|
210
|
-
|
|
233
|
+
历史可能从尾部开始一页一页向前请求。Session journal 先校验互不重叠的逻辑 seq range,Assembler 再按每个已接受 input 的首 `seq` 排序并进入 State 回放。
|
|
211
234
|
|
|
212
235
|
| 路径 | 引擎工作 | Definition 可观察到的行为 |
|
|
213
236
|
|---|---|---|
|
|
214
|
-
| open、resync 或 gap repair 时 replace |
|
|
215
|
-
| prepend 一页更早历史 |
|
|
216
|
-
| append 一条实时事件 | 每个 Definition 各调用一次 `match`,按 key 查找命中的 Context,只更新该 Context | 对 start 之后的匹配事件执行一次 `update` 并请求一次发布;不扫描已有 Context |
|
|
237
|
+
| open、resync 或 gap repair 时 replace | 重建已加载窗口,每条标准 event 或 packed run 对每个 Definition 匹配一次,再回放每个已有 start 的 Context | 先执行 `start`,再按逻辑 `seq` 升序执行其 update;只有 update 的 pending Context 仍没有 State |
|
|
238
|
+
| prepend 一页更早历史 | 只匹配新增的更早 input,按 `(kind, id)` 合并进 Context,保留现有 keyed node,并只重放受影响的 Context 与依赖 | 新发现的 scalar start 会激活已收集的 scalar 与 packed update;Location 或前序依赖变化也可能重跑 Context |
|
|
239
|
+
| append 一条实时事件 | 每个 Definition 各调用一次 `match`,按 key 查找命中的 Context,只更新该 Context | 对 start 之后的匹配事件执行一次 scalar `update` 并请求一次发布;不扫描已有 Context |
|
|
217
240
|
|
|
218
|
-
注册 `D` 个 Definition
|
|
241
|
+
注册 `D` 个 Definition 时,一条新 scalar event 或 packed run 会进行 `D` 次仅当前 input 匹配;命中后的 Context key 查询是常数时间。Definition 代码必须维持这个性质:正常 append 热路径不得遍历完整事件窗口、所有 Context、`context.matches` 或已渲染 Node 集合。累计事实放进 State,同 Turn/Step 共享信息放进 Location data,有索引的前序依赖使用 `reader.previous()`。
|
|
219
242
|
|
|
220
|
-
`publication` 控制发生 State 变更后何时物化。结构或 terminal 变化使用 `immediate`,高频可见 delta 使用 `animation-frame`,只为后续发布积累 State 时使用 `none
|
|
243
|
+
`publication` 控制发生 State 变更后何时物化。结构或 terminal 变化使用 `immediate`,高频可见 delta 使用 `animation-frame`,只为后续发布积累 State 时使用 `none`。引擎按日志顺序应用每条 scalar update,并用一次 batch update 应用一个 packed run;该选项只合并视图发布频率。
|
|
221
244
|
|
|
222
|
-
##
|
|
245
|
+
## 验证要求
|
|
223
246
|
|
|
224
247
|
添加聚焦测试,证明以下结果:
|
|
225
248
|
|
|
@@ -229,5 +252,7 @@ Assembler 会记录这项依赖。如果后续 older prepend 带来了更近的
|
|
|
229
252
|
4. prepend 更早分页只增加更早的行;数据未变化的既有 keyed Node value 不被替换。
|
|
230
253
|
5. 重复的可见 delta 保持 `context.key`,并在请求 `animation-frame` 时每帧最多发布一次。
|
|
231
254
|
6. keyed renderer 只消费 `node.data` 与受限 Location hook,不扫描 Session 事件窗口、Context 或 Chat Node。
|
|
255
|
+
7. scalar 与 packed Assistant 历史产生相同的最终 State、timing boundary 和 target snapshot;一个 packed run 在 replace、prepend、Location replay 与 registry rebuild 中始终只保留一个 Match。
|
|
256
|
+
8. 创建 target source 不执行 builder 工作;显式选择或首次订阅执行一次完整 replace,后续更新送达所有 active target,重复激活不会再次 replace。
|
|
232
257
|
|
|
233
|
-
流式与中断处理可参考 [`packages/client/ui-
|
|
258
|
+
流式与中断处理可参考 [`packages/client/ui-chat/src/client/conversation-nodes/assistant.ts`](../../packages/client/ui-chat/src/client/conversation-nodes/assistant.ts),前序查询可参考 [`inbox.ts`](../../packages/client/ui-chat/src/client/conversation-nodes/inbox.ts) 与 [`message.ts`](../../packages/client/ui-chat/src/client/conversation-nodes/message.ts),只发布 Turn data 而不创建自有 Node 的例子见 [`packages/client/ui-deliverables`](../../packages/client/ui-deliverables)。
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write docs/subsystems/core.md
|
|
5
|
-
core.md:
|
|
6
|
-
core.zh.md:
|
|
5
|
+
core.md: 124d30a5abeddd81edd2eb03a9bb213487b6a38e
|
|
6
|
+
core.zh.md: c2d67eabb3b223d3f1d20c42f01280f16656ebef
|
|
@@ -17,7 +17,7 @@ A turn flows through the six packages in one loop: the driver in [`agent-loop`](
|
|
|
17
17
|
| `agent-loop/` | The concrete driver implementing the public `Agent` contract (`ctx.agentLoop`) | this page |
|
|
18
18
|
| `scope/` | The scoped-registration primitive the registries and loop build per-agent scoping on | [scope.md](scope.md) |
|
|
19
19
|
|
|
20
|
-
`scope/` is the one non-service package: a dependency-free library (`createScope`/`scopeOf`/`scopeTarget`) that sits below `session/` and `system-prompt/` in the module graph precisely so they can consume it without a cycle. `agent-loop` is the one concrete implementation of the public `Agent` contract and lives here because it is the harness's default product loop; it runs each driver inside `ctx.agents.withInitiator()`. Extension plugins depend on `agent` — including when they need the initiating Agent — and never on `agent-loop` directly, so the loop stays swappable.
|
|
20
|
+
`scope/` is the one non-service package: a dependency-free library (`createScope`/`scopeOf`/`scopeTarget`) that sits below `session/` and `system-prompt/` in the module graph precisely so they can consume it without a cycle. `agent-loop` is the one concrete implementation of the public `Agent` contract and lives here because it is the harness's default product loop; it runs each driver inside `ctx.agents.withInitiator()`. Extension plugins depend on `agent` — including when they need the initiating Agent — and never on `agent-loop` directly, so the loop stays swappable. [`dsh-base`](../../packages/bundle/base/README.md) is the default product composition, while [`dsh-sdk-minimal`](../../packages/bundle/sdk-minimal/README.md) declares a smaller standalone tree.
|
|
21
21
|
|
|
22
22
|
## Creation and ownership
|
|
23
23
|
|
|
@@ -57,9 +57,9 @@ interface AgentHandle {
|
|
|
57
57
|
Source: [`packages/core/agent/src/types.ts`](../../packages/core/agent/src/types.ts)
|
|
58
58
|
|
|
59
59
|
```ts type-equiv
|
|
60
|
-
/** Public live-agent handle. */
|
|
60
|
+
/** Public live-agent handle; the runtime face augments its live capabilities. */
|
|
61
61
|
interface Agent {
|
|
62
|
-
/**
|
|
62
|
+
/** Session-backed Agent identity. */
|
|
63
63
|
readonly id: SessionId
|
|
64
64
|
/** The provider route and model this agent's requests use. */
|
|
65
65
|
readonly options: AgentOptions
|
|
@@ -161,12 +161,14 @@ interface AgentOptions {
|
|
|
161
161
|
provider?: string
|
|
162
162
|
/** Model id interpreted by the selected provider adapter. */
|
|
163
163
|
model?: string
|
|
164
|
+
/** Adapter-owned reasoning effort for the selected provider/model route. */
|
|
165
|
+
reasoningEffort?: ReasoningEffortId
|
|
164
166
|
/** Maximum output tokens for each conversation-model request. */
|
|
165
167
|
maxTokens?: number
|
|
166
168
|
}
|
|
167
169
|
```
|
|
168
170
|
|
|
169
|
-
Dispatch requires `provider` and `model` after `agent/request`. When present, `maxTokens` must be a positive safe integer and caps every conversation-model request; omission allows the exact-model adapter default to materialize before the request header, or otherwise leaves provider behavior unchanged. An agent-scoped `deployment:persona` prompt section may shadow the global default persona.
|
|
171
|
+
Dispatch requires `provider` and `model` after `agent/request`. An explicit `reasoningEffort` seeds the first request on that route; exact-model resolution validates it, while omission allows the adapter default to materialize. When present, `maxTokens` must be a positive safe integer and caps every conversation-model request; omission allows the exact-model adapter default to materialize before the request header, or otherwise leaves provider behavior unchanged. An agent-scoped `deployment:persona` prompt section may shadow the global default persona.
|
|
170
172
|
|
|
171
173
|
The inbox is the delivery vocabulary — two ordered pending-message lists the agent owns as a durable projection:
|
|
172
174
|
|
|
@@ -200,7 +202,7 @@ type AgentCancelCause =
|
|
|
200
202
|
| { readonly kind: 'disposed' }
|
|
201
203
|
```
|
|
202
204
|
|
|
203
|
-
The cause is a TypeScript-enforced same-process input. An active cancellation holder copies it into the runtime-only `AbortSignal.reason`; a signal grants cooperating listeners no classification authority. Durable `turn/end`
|
|
205
|
+
The cause is a TypeScript-enforced same-process input. An active cancellation holder copies it into the runtime-only `AbortSignal.reason`; a signal grants cooperating listeners no classification authority. Durable `turn/end` records the outcome as `{ kind: 'aborted', reason: TurnEndCancelCause }`, so the cancel cause lands in the terminal result.
|
|
204
206
|
|
|
205
207
|
The [event taxonomy](../architecture.md#events) owns the `agent/*` lifecycle, checkpoint, and waterfall contracts. Turn and step boundaries are durable session events rather than agent emits.
|
|
206
208
|
|
|
@@ -222,7 +224,12 @@ It returns a `PreStepDecision`. Reject opens no step. Enter supplies the complet
|
|
|
222
224
|
/** Whether and with which messages the loop enters a proposed step. */
|
|
223
225
|
type PreStepDecision =
|
|
224
226
|
| { kind: 'reject' }
|
|
225
|
-
| {
|
|
227
|
+
| {
|
|
228
|
+
kind: 'enter'
|
|
229
|
+
messages: UserMessage[]
|
|
230
|
+
/** Start a distinct model-message series before this step's admitted messages. */
|
|
231
|
+
startsRequestSeries?: true
|
|
232
|
+
}
|
|
226
233
|
```
|
|
227
234
|
|
|
228
235
|
`agent/request-error` runs after a failed model step closes and before its turn closes. Listeners can repair durable state or await policy work while the failed turn's signal is still live. A handling listener returns `{ kind: 'retry' }` without calling `next()`; the default `undefined` leaves the failure terminal.
|
|
@@ -232,7 +239,7 @@ type PreStepDecision =
|
|
|
232
239
|
type RequestErrorAction = { kind: 'retry' } | undefined
|
|
233
240
|
```
|
|
234
241
|
|
|
235
|
-
`agent/pre-step` is the only
|
|
242
|
+
`agent/pre-step` is the only waterfall listener chain before request derivation. `agent/turn-stopping` runs when a turn has no tool or steering continuation, before one final steering drain.
|
|
236
243
|
|
|
237
244
|
`agent/session-start` carries a `SessionStartSource` (why the session lifecycle began; a bridge keys its SessionStart matcher on it):
|
|
238
245
|
|
|
@@ -245,7 +252,7 @@ type SessionStartSource = 'startup' | 'resume' | 'clear' | 'compact'
|
|
|
245
252
|
|
|
246
253
|
A `Session` is an **append-only log** of typed `SessionEvent`s — the single source of truth. The LLM message history is *derived* from the log (`deriveMessages()`), not stored separately. Every entry carries a monotonic `seq`, a `time`, and a `type`-discriminated `data` payload; surface variants may also list cited earlier events in `sourceEventSeqs` and carry a `surfaceOp`.
|
|
247
254
|
|
|
248
|
-
The `SessionEvent` envelope's exact conditional fields, the twelve event variants (`turn/start`, `turn/end`, `step/start`, `step/end`, `user/message`, `assistant/chunk`, `assistant/message`, `tool/call`, `tool/result`, `
|
|
255
|
+
The `SessionEvent` envelope's exact conditional fields, the twelve core event variants (`turn/start`, `turn/end`, `step/start`, `step/end`, `user/message`, `assistant/chunk`, `assistant/message`, `tool/call`, `tool/result`, `request/header`, `request/context`, `session/end-seed`), the `deriveMessages()` projection rules, the `TurnEndReason` reasons, and the execution-enclosure and standalone-event rules are on **[session.md](session.md)**. How the log is made durable — the `SessionPersistence` interface, JSONL provider, `session/flush` checkpoint, crash recovery, and `SessionHeader` — is on **[persistence.md](persistence.md)**.
|
|
249
256
|
|
|
250
257
|
## `ToolDefinition`
|
|
251
258
|
|
|
@@ -280,14 +287,13 @@ declare module '@deepseek-ai/dsh-llm' {
|
|
|
280
287
|
}
|
|
281
288
|
```
|
|
282
289
|
|
|
283
|
-
|
|
290
|
+
Five canonical maps use this pattern; a plugin author extends these:
|
|
284
291
|
|
|
285
292
|
| Map | Package | Derives | Catalog |
|
|
286
293
|
|---|---|---|---|
|
|
287
294
|
| `ContentBlockMap` | dsh-llm | `ContentBlock` | [llm-streaming.md](llm-streaming.md#content-blocks-and-messages) |
|
|
288
295
|
| `MessageSourceMap` | dsh-llm | `MessageSource` | [llm-streaming.md](llm-streaming.md#content-blocks-and-messages) |
|
|
289
296
|
| `FinishReasonMap` | dsh-llm | `FinishReason` | [llm-streaming.md](llm-streaming.md#the-model-request-and-result) |
|
|
290
|
-
| `TurnTriggerMap` | dsh-session | `TurnTrigger` | [session.md](session.md) |
|
|
291
297
|
| `TurnEndReasonMap` | dsh-session | `TurnEndReason` | [session.md](session.md) |
|
|
292
298
|
| `SessionEventMap` | dsh-session | `SessionEvent` | [session.md](session.md) |
|
|
293
299
|
|
|
@@ -295,9 +301,9 @@ Two large discriminated unions are the ones consumers `switch` over most: **`Str
|
|
|
295
301
|
|
|
296
302
|
### Branded IDs
|
|
297
303
|
|
|
298
|
-
IDs passed between packages are **branded** — structurally strings, but non-interchangeable at the type level (a `SessionId` cannot be passed where a `
|
|
304
|
+
IDs passed between packages are **branded** — structurally strings, but non-interchangeable at the type level (a `SessionId` cannot be passed where a `ToolCallId` is expected). Construction uses the shared `brandString<T>()` helper or an owner-defined validating factory; comparison, logging, and JSON behave as ordinary strings.
|
|
299
305
|
|
|
300
|
-
The `Branded<B>` primitive
|
|
306
|
+
The `Branded<B>` primitive and stateless constructor live in [dsh-brand](../../packages/util/brand), which has no harness capability dependency. `brandString<T>()` applies a compile-time-only string brand.
|
|
301
307
|
|
|
302
308
|
Source: [`packages/util/brand/src/index.ts`](../../packages/util/brand/src/index.ts)
|
|
303
309
|
|
|
@@ -306,7 +312,7 @@ Source: [`packages/util/brand/src/index.ts`](../../packages/util/brand/src/index
|
|
|
306
312
|
type Branded<B extends string> = string & { readonly [BRAND]: B }
|
|
307
313
|
```
|
|
308
314
|
|
|
309
|
-
The two core IDs are `
|
|
315
|
+
The two core IDs are `ToolCallId` (correlates a tool call with its result; dsh-llm) and `SessionId` (the shared live agent and durable session identity; dsh-session). Capability packages brand their own ids too, such as `JobId` in [jobs.md](jobs.md).
|
|
310
316
|
|
|
311
317
|
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
312
318
|
|
|
@@ -314,7 +320,7 @@ The two core IDs are `CallId` (correlates a tool call with its result; dsh-llm)
|
|
|
314
320
|
|
|
315
321
|
## Cordis API
|
|
316
322
|
|
|
317
|
-
Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) —
|
|
323
|
+
Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) — the language sides differ only in locale-specific paired document paths. Signature blocks use a `ts cordis-catalog` fence and keep the original source JSDoc; dispatch modes are defined in the [primer](../cordis-primer.md#dispatch-modes), and the framework-inherited `ctx` API lives in [cordis-api/inherited.md](../cordis-api/inherited.md).
|
|
318
324
|
|
|
319
325
|
<a id="ctxagentdefaultmodel--agentdefaultmodelconfig"></a>
|
|
320
326
|
|
|
@@ -338,7 +344,7 @@ currentSelection(): ModelSelection
|
|
|
338
344
|
async saveSelection(next: ModelSelection): Promise<void>
|
|
339
345
|
```
|
|
340
346
|
|
|
341
|
-
Source: [`packages/core/agent-default-model/src/index.ts
|
|
347
|
+
Source: [`packages/core/agent-default-model/src/index.ts`](../../packages/core/agent-default-model/src/index.ts)
|
|
342
348
|
|
|
343
349
|
<a id="ctxagentloop--agentloop"></a>
|
|
344
350
|
|
|
@@ -377,7 +383,7 @@ async resume(ownerCtx: Context, options: ResumeAgentOptions): Promise<AgentHandl
|
|
|
377
383
|
|
|
378
384
|
Types: [SessionHeader](persistence.md)
|
|
379
385
|
|
|
380
|
-
Source: [`packages/core/agent-loop/src/index.ts
|
|
386
|
+
Source: [`packages/core/agent-loop/src/index.ts`](../../packages/core/agent-loop/src/index.ts)
|
|
381
387
|
|
|
382
388
|
<a id="ctxagentpresets--agentpresets"></a>
|
|
383
389
|
|
|
@@ -394,6 +400,35 @@ Discovery is unmemoized: `list()` and `resolve()` re-read the roots on every cal
|
|
|
394
400
|
*/
|
|
395
401
|
async list(): Promise<AgentPreset[]>
|
|
396
402
|
|
|
403
|
+
/**
|
|
404
|
+
* The roster off the Host: {@link list} projected to path-free rows, with
|
|
405
|
+
* the default marked and this deployment's authoring capability beside it.
|
|
406
|
+
*
|
|
407
|
+
* Whether a client can open a preset's directory is the Host's own opener
|
|
408
|
+
* capability, not a roster property — a caller needing both joins them.
|
|
409
|
+
* @returns the rows and the authoring capability.
|
|
410
|
+
*/
|
|
411
|
+
@Remote('list') async remoteExportList(): Promise<AgentPresetRoster>
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Every preset's composition as flattened plugin rows, for plugin-listing
|
|
415
|
+
* surfaces beside the roster's own picker.
|
|
416
|
+
*
|
|
417
|
+
* A preset with a live standing mount answers from its newest generation's
|
|
418
|
+
* Loader entries — the composition new sessions join — even when the file
|
|
419
|
+
* behind it has since been edited into an unreadable state: the mount is
|
|
420
|
+
* what sessions actually run, so the broken verdict only applies to a
|
|
421
|
+
* preset nothing composed. One never composed since boot answers from its
|
|
422
|
+
* file, with `!!js` disabled gates evaluated against the Loader context so
|
|
423
|
+
* both answers reflect the same host. Reading never mounts: an unmounted
|
|
424
|
+
* preset is parsed, not composed, so listing a preset's plugins cannot
|
|
425
|
+
* activate them early. A composition that stopped reading between
|
|
426
|
+
* discovery's health verdict and this read is reported broken with the
|
|
427
|
+
* raced reason rather than dropped.
|
|
428
|
+
* @returns one composition per roster preset, in roster order.
|
|
429
|
+
*/
|
|
430
|
+
async compositionInventory(): Promise<AgentPresetComposition[]>
|
|
431
|
+
|
|
397
432
|
/**
|
|
398
433
|
* Resolve one preset by id.
|
|
399
434
|
*
|
|
@@ -468,6 +503,15 @@ composedPreset(agentCtx: Context): string | undefined
|
|
|
468
503
|
*/
|
|
469
504
|
async read(id: string): Promise<string>
|
|
470
505
|
|
|
506
|
+
/**
|
|
507
|
+
* One preset's composition text with the roster row it belongs to.
|
|
508
|
+
* @param agentPreset - the preset id.
|
|
509
|
+
* @returns the composition beside its trust and published metadata.
|
|
510
|
+
* @throws {RemoteError} `gateway/bad-request` for an empty id, or
|
|
511
|
+
* `agent-preset/not-found` when no configured root supplies it.
|
|
512
|
+
*/
|
|
513
|
+
@Remote('read') async readDocument(agentPreset: string): Promise<AgentPresetDocument>
|
|
514
|
+
|
|
471
515
|
/**
|
|
472
516
|
* Create a locally authored preset by copying an existing one whole.
|
|
473
517
|
*
|
|
@@ -485,13 +529,34 @@ async read(id: string): Promise<string>
|
|
|
485
529
|
*/
|
|
486
530
|
async copy(from: string, id: string, name?: string): Promise<void>
|
|
487
531
|
|
|
532
|
+
/**
|
|
533
|
+
* Copy one preset through the Remote API.
|
|
534
|
+
* @param from - the source preset id.
|
|
535
|
+
* @param id - the new preset id.
|
|
536
|
+
* @param name - the copy's optional display name.
|
|
537
|
+
* @returns once the copy is stored.
|
|
538
|
+
* @throws {RemoteError} with the corresponding stable preset code and
|
|
539
|
+
* details when the copy is refused.
|
|
540
|
+
*/
|
|
541
|
+
@Remote('copy') async remoteExportCopy(from: string, id: string, name?: string): Promise<void>
|
|
542
|
+
|
|
488
543
|
/**
|
|
489
544
|
* Delete a locally authored preset.
|
|
545
|
+
*
|
|
490
546
|
* @param id - the preset id.
|
|
491
547
|
* @throws when the preset is unknown or ships with the deployment.
|
|
492
548
|
*/
|
|
493
549
|
async remove(id: string): Promise<void>
|
|
494
550
|
|
|
551
|
+
/**
|
|
552
|
+
* Delete one preset through the Remote API.
|
|
553
|
+
* @param id - the preset id.
|
|
554
|
+
* @returns once the preset is deleted.
|
|
555
|
+
* @throws {RemoteError} with the corresponding stable preset code and
|
|
556
|
+
* details when deletion is refused.
|
|
557
|
+
*/
|
|
558
|
+
@Remote('deletePreset') async remoteExportDelete(id: string): Promise<void>
|
|
559
|
+
|
|
495
560
|
/**
|
|
496
561
|
* One agent's instance of a service its preset mounted.
|
|
497
562
|
*
|
|
@@ -524,7 +589,9 @@ serviceFor<K extends string & keyof Context>(agent: { ctx: Context }, name: K):
|
|
|
524
589
|
* state to restore. The re-link runs through the binding this roster kept
|
|
525
590
|
* from the agent's mount — dsh-scope's only re-link authority. An agent
|
|
526
591
|
* that never composed one has nothing to re-link: the switch is then the
|
|
527
|
-
* agent's first bind, exactly a mount.
|
|
592
|
+
* agent's first bind, exactly a mount. A committed re-link emits
|
|
593
|
+
* `tools/change` because changing the parent scope changes the Agent's
|
|
594
|
+
* resolved tool set without adding or removing registry entries.
|
|
528
595
|
* @param agentCtx - the agent's scope context.
|
|
529
596
|
* @param id - the preset to compose the agent from instead.
|
|
530
597
|
* @returns the preset now installed.
|
|
@@ -532,6 +599,16 @@ serviceFor<K extends string & keyof Context>(agent: { ctx: Context }, name: K):
|
|
|
532
599
|
*/
|
|
533
600
|
async recompose(agentCtx: Context, id: string): Promise<AgentPreset>
|
|
534
601
|
|
|
602
|
+
/**
|
|
603
|
+
* Compose a blank session's agent from a different preset and record it.
|
|
604
|
+
* @param agent - the session's live agent, resolved from the wire identity.
|
|
605
|
+
* @param agentPreset - the preset to compose the agent from instead.
|
|
606
|
+
* @returns the preset id that was recorded.
|
|
607
|
+
* @throws {RemoteError} with `gateway/bad-request`, `agent-preset/locked`,
|
|
608
|
+
* `agent-preset/not-found`, or `agent-preset/invalid` when refused.
|
|
609
|
+
*/
|
|
610
|
+
@Remote('select') async select(agent: Agent, agentPreset: string): Promise<string>
|
|
611
|
+
|
|
535
612
|
/**
|
|
536
613
|
* The standing scope key of one preset, for a host reader with no agent.
|
|
537
614
|
*
|
|
@@ -548,7 +625,7 @@ async standingKeyFor(id?: string): Promise<ScopeKey>
|
|
|
548
625
|
|
|
549
626
|
Types: [ScopeKey](scope.md)
|
|
550
627
|
|
|
551
|
-
Source: [`packages/preset/agent-presets/src/index.ts
|
|
628
|
+
Source: [`packages/preset/agent-presets/src/index.ts`](../../packages/preset/agent-presets/src/index.ts)
|
|
552
629
|
|
|
553
630
|
<a id="ctxagents--agentregistry"></a>
|
|
554
631
|
|
|
@@ -720,7 +797,7 @@ list(): Agent[]
|
|
|
720
797
|
roots(): Agent[]
|
|
721
798
|
```
|
|
722
799
|
|
|
723
|
-
Source: [`packages/core/agent/src/index.ts
|
|
800
|
+
Source: [`packages/core/agent/src/index.ts`](../../packages/core/agent/src/index.ts)
|
|
724
801
|
|
|
725
802
|
<a id="agent-events"></a>
|
|
726
803
|
|
|
@@ -748,7 +825,7 @@ A fully configured agent and live session were published. Setup is composition-o
|
|
|
748
825
|
|
|
749
826
|
Types: [Scoped](scope.md)
|
|
750
827
|
|
|
751
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
828
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
752
829
|
|
|
753
830
|
<a id="agentdisposed--emit"></a>
|
|
754
831
|
|
|
@@ -770,7 +847,7 @@ An agent left the registry; AgentLoop emits this after driver quiescence and sco
|
|
|
770
847
|
|
|
771
848
|
Types: [Scoped](scope.md)
|
|
772
849
|
|
|
773
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
850
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
774
851
|
|
|
775
852
|
<a id="agenterror--emit"></a>
|
|
776
853
|
|
|
@@ -794,7 +871,7 @@ A step or turn errored. The machine reports a failure here even when the error h
|
|
|
794
871
|
|
|
795
872
|
Types: [Scoped](scope.md)
|
|
796
873
|
|
|
797
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
874
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
798
875
|
|
|
799
876
|
<a id="agentinboxclaimed--emit"></a>
|
|
800
877
|
|
|
@@ -818,7 +895,7 @@ One message left the inbox inside its open turn. If the proposed step is rejecte
|
|
|
818
895
|
|
|
819
896
|
Types: [Scoped](scope.md) · [UserMessage](session.md)
|
|
820
897
|
|
|
821
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
898
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
822
899
|
|
|
823
900
|
<a id="agentinboxdiscarded--emit"></a>
|
|
824
901
|
|
|
@@ -839,7 +916,7 @@ One message was discarded from the live inbox.
|
|
|
839
916
|
|
|
840
917
|
Types: [Scoped](scope.md) · [UserMessage](session.md)
|
|
841
918
|
|
|
842
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
919
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
843
920
|
|
|
844
921
|
<a id="agentinboxinserted--emit"></a>
|
|
845
922
|
|
|
@@ -860,7 +937,7 @@ One message entered the live inbox.
|
|
|
860
937
|
|
|
861
938
|
Types: [Scoped](scope.md) · [UserMessage](session.md)
|
|
862
939
|
|
|
863
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
940
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
864
941
|
|
|
865
942
|
<a id="agentpre-step--waterfall"></a>
|
|
866
943
|
|
|
@@ -885,7 +962,7 @@ Reject a proposed step or replace the messages that enter it. Calling `next()` p
|
|
|
885
962
|
|
|
886
963
|
Types: [Scoped](scope.md) · [UserMessage](session.md)
|
|
887
964
|
|
|
888
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
965
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
889
966
|
|
|
890
967
|
<a id="agentrequest--waterfall"></a>
|
|
891
968
|
|
|
@@ -911,7 +988,7 @@ Replace the frozen call configuration. `await next()` yields the config the mach
|
|
|
911
988
|
|
|
912
989
|
Types: [LlmCallConfig](llm-streaming.md) · [Scoped](scope.md)
|
|
913
990
|
|
|
914
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
991
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
915
992
|
|
|
916
993
|
<a id="agentrequest-error--waterfall"></a>
|
|
917
994
|
|
|
@@ -940,7 +1017,7 @@ Handle one failed model-request attempt before the loop retries or closes its st
|
|
|
940
1017
|
|
|
941
1018
|
Types: [LlmFailure](llm-streaming.md) · [ResolvedRetryPolicy](llm-streaming.md) · [Scoped](scope.md)
|
|
942
1019
|
|
|
943
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
1020
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
944
1021
|
|
|
945
1022
|
<a id="agentsession-start--emit"></a>
|
|
946
1023
|
|
|
@@ -964,7 +1041,7 @@ The session lifecycle began, once before the first turn. Use `agent.inject()` to
|
|
|
964
1041
|
|
|
965
1042
|
Types: [Scoped](scope.md)
|
|
966
1043
|
|
|
967
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
1044
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
968
1045
|
|
|
969
1046
|
<a id="agentstatus--emit"></a>
|
|
970
1047
|
|
|
@@ -987,7 +1064,7 @@ Agent status changed (`idle` ⇄ `running`). A waking delivery enters `running`
|
|
|
987
1064
|
|
|
988
1065
|
Types: [Scoped](scope.md)
|
|
989
1066
|
|
|
990
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
1067
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
991
1068
|
|
|
992
1069
|
<a id="agentturn-stopping--serial"></a>
|
|
993
1070
|
|
|
@@ -1018,7 +1095,7 @@ The turn is about to close: the model owes no response (no live tool calls, no f
|
|
|
1018
1095
|
|
|
1019
1096
|
Types: [Scoped](scope.md)
|
|
1020
1097
|
|
|
1021
|
-
Source: [`packages/core/agent/src/runtime-types.ts
|
|
1098
|
+
Source: [`packages/core/agent/src/runtime-types.ts`](../../packages/core/agent/src/runtime-types.ts)
|
|
1022
1099
|
|
|
1023
1100
|
<a id="agent-loop-events"></a>
|
|
1024
1101
|
|
|
@@ -1043,7 +1120,7 @@ A declarative agent entry failed before it could publish a live agent. Consumers
|
|
|
1043
1120
|
'agent-loop/config-start-failed'(payload: { sessionId: SessionId; error: unknown }): void
|
|
1044
1121
|
```
|
|
1045
1122
|
|
|
1046
|
-
Source: [`packages/core/agent-loop/src/index.ts
|
|
1123
|
+
Source: [`packages/core/agent-loop/src/index.ts`](../../packages/core/agent-loop/src/index.ts)
|
|
1047
1124
|
|
|
1048
1125
|
<a id="agent-preset-events"></a>
|
|
1049
1126
|
|
|
@@ -1066,5 +1143,5 @@ One session committed a different agent preset to its durable log. Consumers inv
|
|
|
1066
1143
|
'agent-preset/selected'(sessionId: SessionId, agentPreset: string): void
|
|
1067
1144
|
```
|
|
1068
1145
|
|
|
1069
|
-
Source: [`packages/preset/agent-presets/src/types.ts
|
|
1146
|
+
Source: [`packages/preset/agent-presets/src/types.ts`](../../packages/preset/agent-presets/src/types.ts)
|
|
1070
1147
|
<!-- END GENERATED cordis-surface -->
|