dsh-plugin-dev-kb 1.3.0 → 1.5.1
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/CHANGELOG.md +34 -0
- package/README.en.md +6 -6
- package/README.md +13 -8
- package/kb/INDEX.md +25 -21
- package/kb/README.md +6 -4
- package/kb/extra/AGENTS.md +14 -12
- package/kb/extra/agent-lifecycle.md +91 -0
- package/kb/extra/agent-lifecycle.zh.md +93 -0
- package/kb/extra/api-gateway.md +172 -0
- package/kb/extra/api-gateway.zh.md +178 -0
- package/kb/extra/architecture.md +165 -0
- package/kb/extra/architecture.zh.md +169 -0
- package/kb/extra/capability-seams.md +714 -0
- package/kb/extra/capability-seams.zh.md +716 -0
- package/kb/extra/cli-help.md +203 -0
- package/kb/extra/cli-help.zh.md +205 -0
- package/kb/extra/config-catalog.md +4801 -0
- package/kb/extra/config-catalog.zh.md +4803 -0
- package/kb/extra/cookbook/adding-a-package.md +170 -0
- package/kb/extra/cookbook/adding-a-package.zh.md +170 -0
- package/kb/extra/cookbook/adding-a-plugin-preview.md +52 -0
- package/kb/extra/cookbook/adding-a-plugin-preview.zh.md +52 -0
- package/kb/extra/cookbook/adding-a-remote-api.md +2 -2
- package/kb/extra/cookbook/adding-a-remote-api.zh.md +2 -2
- package/kb/extra/cookbook/adding-a-session-format-version.md +51 -7
- package/kb/extra/cookbook/adding-a-session-format-version.zh.md +51 -7
- package/kb/extra/cookbook/adding-a-settings-card.md +72 -0
- package/kb/extra/cookbook/adding-a-settings-card.zh.md +72 -0
- package/kb/extra/cookbook/adding-a-tool.md +101 -0
- package/kb/extra/cookbook/adding-a-tool.zh.md +103 -0
- package/kb/extra/cookbook/adding-an-llm-adapter.md +43 -0
- package/kb/extra/cookbook/adding-an-llm-adapter.zh.md +43 -0
- package/kb/extra/cookbook/extension-cookbook.md +132 -0
- package/kb/extra/cookbook/extension-cookbook.zh.md +136 -0
- package/kb/extra/cookbook/reviewing-persistence-type-changes.md +122 -0
- package/kb/extra/cookbook/reviewing-persistence-type-changes.zh.md +122 -0
- package/kb/extra/cordis-api/context.md +364 -0
- package/kb/extra/cordis-api/context.zh.md +366 -0
- package/kb/extra/cordis-api/events.md +207 -0
- package/kb/extra/cordis-api/events.zh.md +209 -0
- package/kb/extra/cordis-api/fiber.md +375 -0
- package/kb/extra/cordis-api/fiber.zh.md +377 -0
- package/kb/extra/cordis-api/inherited.md +38 -0
- package/kb/extra/cordis-api/registry.md +152 -0
- package/kb/extra/cordis-api/registry.zh.md +154 -0
- package/kb/extra/cordis-api/service.md +102 -0
- package/kb/extra/cordis-api/service.zh.md +104 -0
- package/kb/extra/cordis-tutorial/01-first-plugin.md +95 -0
- package/kb/extra/cordis-tutorial/01-first-plugin.zh.md +95 -0
- package/kb/extra/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
- package/kb/extra/cordis-tutorial/02-lifecycle-and-effects.zh.md +98 -0
- package/kb/extra/cordis-tutorial/03-services.md +98 -0
- package/kb/extra/cordis-tutorial/03-services.zh.md +98 -0
- package/kb/extra/cordis-tutorial/04-events.md +144 -0
- package/kb/extra/cordis-tutorial/04-events.zh.md +144 -0
- package/kb/extra/cordis-tutorial/05-config.md +111 -0
- package/kb/extra/cordis-tutorial/05-config.zh.md +111 -0
- package/kb/extra/cordis-tutorial/06-composition-and-hmr.md +113 -0
- package/kb/extra/cordis-tutorial/06-composition-and-hmr.zh.md +113 -0
- package/kb/extra/cordis-tutorial/07-into-the-harness.md +108 -0
- package/kb/extra/cordis-tutorial/07-into-the-harness.zh.md +108 -0
- package/kb/extra/cordis-tutorial/index.md +60 -0
- package/kb/extra/cordis-tutorial/index.zh.md +62 -0
- package/kb/extra/deepseek-llm-api-wire-extensions.md +22 -23
- package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +21 -22
- package/kb/extra/defensive-patterns/README.md +25 -0
- package/kb/extra/defensive-patterns/README.zh.md +27 -0
- package/kb/extra/defensive-patterns/client-components.md +493 -0
- package/kb/extra/defensive-patterns/client-components.zh.md +495 -0
- package/kb/extra/defensive-patterns/conversation-and-session.md +316 -0
- package/kb/extra/defensive-patterns/conversation-and-session.zh.md +316 -0
- package/kb/extra/defensive-patterns/general.md +222 -0
- package/kb/extra/defensive-patterns/general.zh.md +252 -0
- package/kb/extra/defensive-patterns/package-surface.md +231 -0
- package/kb/extra/defensive-patterns/package-surface.zh.md +231 -0
- package/kb/extra/defensive-patterns/remote-and-api.md +115 -0
- package/kb/extra/defensive-patterns/remote-and-api.zh.md +115 -0
- package/kb/extra/development.md +55 -18
- package/kb/extra/development.zh.md +56 -18
- package/kb/extra/event-producer-consumer.md +90 -68
- package/kb/extra/event-producer-consumer.zh.md +91 -69
- package/kb/extra/experimental-persistence-catalog.md +17 -0
- package/kb/extra/experimental-persistence-catalog.zh.md +17 -0
- package/kb/extra/glossary.md +2 -1
- package/kb/extra/glossary.zh.md +2 -1
- package/kb/extra/i18n/README.md +15 -7
- package/kb/extra/i18n/README.zh.md +15 -7
- package/kb/extra/i18n/style-samples.md +2 -2
- package/kb/extra/i18n/terminology.md +5 -4
- package/kb/extra/i18n/translation-prompt.md +2 -2
- package/kb/extra/module-graph.md +759 -432
- package/kb/extra/module-graph.zh.md +759 -432
- package/kb/extra/persistence-catalog.md +9140 -0
- package/kb/extra/persistence-catalog.zh.md +9142 -0
- package/kb/extra/persistence-changes/2026-09-11-initial.md +280 -0
- package/kb/extra/persistence-changes/2026-09-11-initial.zh.md +280 -0
- package/kb/extra/persistence-changes/2026-09-12-auto-review-error-metadata.md +52 -0
- package/kb/extra/persistence-changes/2026-09-12-auto-review-error-metadata.zh.md +52 -0
- package/kb/extra/persistence-changes/2026-09-13-working-directory.md +48 -0
- package/kb/extra/persistence-changes/2026-09-13-working-directory.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-09-14-image-offload.md +96 -0
- package/kb/extra/persistence-changes/2026-09-14-image-offload.zh.md +96 -0
- package/kb/extra/persistence-changes/2026-09-14-workspace-changes-event.md +48 -0
- package/kb/extra/persistence-changes/2026-09-14-workspace-changes-event.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-09-16-session-format-v4.md +120 -0
- package/kb/extra/persistence-changes/2026-09-16-session-format-v4.zh.md +120 -0
- package/kb/extra/persistence-changes/2026-09-18-schedule-optional-title.md +48 -0
- package/kb/extra/persistence-changes/2026-09-18-schedule-optional-title.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-09-19-external-subagent-catalog.md +48 -0
- package/kb/extra/persistence-changes/2026-09-19-external-subagent-catalog.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-09-20-unknown-child-catalog.md +48 -0
- package/kb/extra/persistence-changes/2026-09-20-unknown-child-catalog.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-09-21-user-question-reply.md +60 -0
- package/kb/extra/persistence-changes/2026-09-21-user-question-reply.zh.md +60 -0
- package/kb/extra/persistence-changes/2026-09-30-job-session-lifecycle.md +52 -0
- package/kb/extra/persistence-changes/2026-09-30-job-session-lifecycle.zh.md +52 -0
- package/kb/extra/persistence-changes/2026-10-05-ptc-operation-metadata.md +48 -0
- package/kb/extra/persistence-changes/2026-10-05-ptc-operation-metadata.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-10-05-working-directory-attribution.md +60 -0
- package/kb/extra/persistence-changes/2026-10-05-working-directory-attribution.zh.md +60 -0
- package/kb/extra/persistence-changes/2026-10-07-title-reasoning-effort.md +48 -0
- package/kb/extra/persistence-changes/2026-10-07-title-reasoning-effort.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-10-13-deepseek-search-thinking.md +48 -0
- package/kb/extra/persistence-changes/2026-10-13-deepseek-search-thinking.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-10-13-user-rpc-principal.md +60 -0
- package/kb/extra/persistence-changes/2026-10-13-user-rpc-principal.zh.md +60 -0
- package/kb/extra/persistence-changes/README.md +90 -0
- package/kb/extra/persistence-changes/README.zh.md +90 -0
- package/kb/extra/persistence-changes/historical-formats/README.md +75 -0
- package/kb/extra/persistence-changes/historical-formats/README.zh.md +75 -0
- package/kb/extra/persistence-changes/historical-formats/v0.md +5105 -0
- package/kb/extra/persistence-changes/historical-formats/v0.zh.md +5105 -0
- package/kb/extra/persistence-changes/historical-formats/v1.md +5107 -0
- package/kb/extra/persistence-changes/historical-formats/v1.zh.md +5107 -0
- package/kb/extra/persistence-changes/historical-formats/v2.md +5362 -0
- package/kb/extra/persistence-changes/historical-formats/v2.zh.md +5362 -0
- package/kb/extra/persistence-changes/historical-formats/v3.md +5634 -0
- package/kb/extra/persistence-changes/historical-formats/v3.zh.md +5634 -0
- package/kb/extra/persistence-changes/releases/README.md +103 -0
- package/kb/extra/persistence-changes/releases/README.zh.md +103 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.1.md +201 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.1.zh.md +201 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.2.md +261 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.2.zh.md +261 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.3.md +126 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.3.zh.md +126 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.4.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.4.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.5.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.5.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.1.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.1.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.2.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.2.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.3.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.3.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.5.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.5.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.6.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.6.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.7.md +82 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.7.zh.md +82 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.8.md +110 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.8.zh.md +110 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.1-rc.1.md +82 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.1-rc.1.zh.md +82 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.1-rc.2.md +119 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.1-rc.2.zh.md +119 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.1.md +295 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.1.zh.md +295 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.2.md +286 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.2.zh.md +286 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.3.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.3.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.4.md +95 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.4.zh.md +95 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.5.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.5.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-rc.1.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-rc.1.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.3-alpha.1.md +154 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.3-alpha.1.zh.md +154 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.3-alpha.2.md +86 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.3-alpha.2.zh.md +86 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-alpha.1.md +139 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-alpha.1.zh.md +139 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-alpha.2.md +95 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-alpha.2.zh.md +95 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-rc.1.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-rc.1.zh.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-rc.2.md +75 -0
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-rc.2.zh.md +75 -0
- package/kb/extra/rescope.md +1 -1
- package/kb/extra/rescope.zh.md +1 -1
- package/kb/extra/session-format-status.md +24 -8
- package/kb/extra/session-format-status.zh.md +24 -8
- package/kb/extra/subsystems/README.md +76 -0
- package/kb/extra/subsystems/README.zh.md +76 -0
- package/kb/extra/subsystems/agent-team.md +61 -37
- package/kb/extra/subsystems/agent-team.zh.md +61 -37
- package/kb/extra/subsystems/approval.md +170 -0
- package/kb/extra/subsystems/approval.zh.md +170 -0
- package/kb/extra/subsystems/attachment.md +19 -9
- package/kb/extra/subsystems/attachment.zh.md +19 -9
- package/kb/extra/subsystems/boot.md +447 -0
- package/kb/extra/subsystems/boot.zh.md +447 -0
- package/kb/extra/subsystems/browser-use.md +67 -0
- package/kb/extra/subsystems/browser-use.zh.md +67 -0
- package/kb/extra/subsystems/claude-code-mods.md +146 -0
- package/kb/extra/subsystems/claude-code-mods.zh.md +146 -0
- package/kb/extra/subsystems/client-modules.md +198 -0
- package/kb/extra/subsystems/client-modules.zh.md +198 -0
- package/kb/extra/subsystems/client-resources.md +92 -0
- package/kb/extra/subsystems/client-resources.zh.md +92 -0
- package/kb/extra/subsystems/commands.md +223 -0
- package/kb/extra/subsystems/commands.zh.md +223 -0
- package/kb/extra/subsystems/compaction.md +284 -0
- package/kb/extra/subsystems/compaction.zh.md +284 -0
- package/kb/extra/subsystems/computer-use.md +59 -0
- package/kb/extra/subsystems/computer-use.zh.md +59 -0
- package/kb/extra/subsystems/conversation.md +301 -0
- package/kb/extra/subsystems/conversation.zh.md +303 -0
- package/kb/extra/subsystems/core.md +1113 -0
- package/kb/extra/subsystems/core.zh.md +1125 -0
- package/kb/extra/subsystems/credentials.md +493 -0
- package/kb/extra/subsystems/credentials.zh.md +493 -0
- package/kb/extra/subsystems/deliverables.md +178 -0
- package/kb/extra/subsystems/deliverables.zh.md +178 -0
- package/kb/extra/subsystems/extensions.md +6 -4
- package/kb/extra/subsystems/extensions.zh.md +6 -4
- package/kb/extra/subsystems/feedback.md +4 -4
- package/kb/extra/subsystems/feedback.zh.md +4 -4
- package/kb/extra/subsystems/filesystem.md +530 -0
- package/kb/extra/subsystems/filesystem.zh.md +530 -0
- package/kb/extra/subsystems/goal.md +313 -0
- package/kb/extra/subsystems/goal.zh.md +313 -0
- package/kb/extra/subsystems/jobs.md +554 -0
- package/kb/extra/subsystems/jobs.zh.md +554 -0
- package/kb/extra/subsystems/llm-streaming.md +1196 -0
- package/kb/extra/subsystems/llm-streaming.zh.md +1202 -0
- package/kb/extra/subsystems/lsp.md +202 -0
- package/kb/extra/subsystems/lsp.zh.md +202 -0
- package/kb/extra/subsystems/mcp.md +139 -0
- package/kb/extra/subsystems/mcp.zh.md +139 -0
- package/kb/extra/subsystems/office-to-pdf.md +87 -0
- package/kb/extra/subsystems/office-to-pdf.zh.md +87 -0
- package/kb/extra/subsystems/otel.md +44 -0
- package/kb/extra/subsystems/otel.zh.md +44 -0
- package/kb/extra/subsystems/permission-presets.md +167 -0
- package/kb/extra/subsystems/permission-presets.zh.md +167 -0
- package/kb/extra/subsystems/persistence.md +418 -0
- package/kb/extra/subsystems/persistence.zh.md +418 -0
- package/kb/extra/subsystems/plan.md +87 -0
- package/kb/extra/subsystems/plan.zh.md +87 -0
- package/kb/extra/subsystems/product-telemetry.md +81 -0
- package/kb/extra/subsystems/product-telemetry.zh.md +81 -0
- package/kb/extra/subsystems/ptc-runtime.md +250 -0
- package/kb/extra/subsystems/ptc-runtime.zh.md +250 -0
- package/kb/extra/subsystems/sandbox.md +221 -0
- package/kb/extra/subsystems/sandbox.zh.md +221 -0
- package/kb/extra/subsystems/schedule.md +550 -0
- package/kb/extra/subsystems/schedule.zh.md +550 -0
- package/kb/extra/subsystems/scope.md +59 -0
- package/kb/extra/subsystems/scope.zh.md +61 -0
- package/kb/extra/subsystems/session-projection.md +356 -0
- package/kb/extra/subsystems/session-projection.zh.md +356 -0
- package/kb/extra/subsystems/session-query.md +511 -0
- package/kb/extra/subsystems/session-query.zh.md +511 -0
- package/kb/extra/subsystems/session-reference.md +224 -0
- package/kb/extra/subsystems/session-reference.zh.md +224 -0
- package/kb/extra/subsystems/session-telemetry.md +212 -0
- package/kb/extra/subsystems/session-telemetry.zh.md +212 -0
- package/kb/extra/subsystems/session-title.md +213 -0
- package/kb/extra/subsystems/session-title.zh.md +213 -0
- package/kb/extra/subsystems/session.md +1339 -0
- package/kb/extra/subsystems/session.zh.md +1343 -0
- package/kb/extra/subsystems/settings.md +155 -0
- package/kb/extra/subsystems/settings.zh.md +155 -0
- package/kb/extra/subsystems/shell.md +314 -0
- package/kb/extra/subsystems/shell.zh.md +314 -0
- package/kb/extra/subsystems/sidebar-right.md +160 -0
- package/kb/extra/subsystems/sidebar-right.zh.md +160 -0
- package/kb/extra/subsystems/skills.md +352 -0
- package/kb/extra/subsystems/skills.zh.md +352 -0
- package/kb/extra/subsystems/slots.md +200 -0
- package/kb/extra/subsystems/slots.zh.md +204 -0
- package/kb/extra/subsystems/spill.md +124 -0
- package/kb/extra/subsystems/spill.zh.md +124 -0
- package/kb/extra/subsystems/ssh.md +146 -0
- package/kb/extra/subsystems/ssh.zh.md +146 -0
- package/kb/extra/subsystems/storage.md +259 -0
- package/kb/extra/subsystems/storage.zh.md +259 -0
- package/kb/extra/subsystems/subagent.md +686 -0
- package/kb/extra/subsystems/subagent.zh.md +688 -0
- package/kb/extra/subsystems/subprocess.md +321 -0
- package/kb/extra/subsystems/subprocess.zh.md +321 -0
- package/kb/extra/subsystems/system-prompt.md +254 -0
- package/kb/extra/subsystems/system-prompt.zh.md +254 -0
- package/kb/extra/subsystems/terminal.md +184 -0
- package/kb/extra/subsystems/terminal.zh.md +184 -0
- package/kb/extra/subsystems/todo.md +3 -3
- package/kb/extra/subsystems/todo.zh.md +3 -3
- package/kb/extra/subsystems/token-meter.md +106 -0
- package/kb/extra/subsystems/token-meter.zh.md +106 -0
- package/kb/extra/subsystems/tools.md +747 -0
- package/kb/extra/subsystems/tools.zh.md +747 -0
- package/kb/extra/subsystems/translation.md +103 -0
- package/kb/extra/subsystems/translation.zh.md +103 -0
- package/kb/extra/subsystems/typert.md +690 -0
- package/kb/extra/subsystems/typert.zh.md +690 -0
- package/kb/extra/subsystems/user-questions.md +307 -0
- package/kb/extra/subsystems/user-questions.zh.md +307 -0
- package/kb/extra/subsystems/voice-input.md +164 -0
- package/kb/extra/subsystems/voice-input.zh.md +164 -0
- package/kb/extra/subsystems/web-client.md +100 -0
- package/kb/extra/subsystems/web-client.zh.md +100 -0
- package/kb/extra/subsystems/web-server.md +302 -0
- package/kb/extra/subsystems/web-server.zh.md +302 -0
- package/kb/extra/subsystems/web.md +206 -0
- package/kb/extra/subsystems/web.zh.md +206 -0
- package/kb/extra/subsystems/webhook.md +4 -4
- package/kb/extra/subsystems/webhook.zh.md +2 -2
- package/kb/extra/subsystems/workflow.md +278 -0
- package/kb/extra/subsystems/workflow.zh.md +278 -0
- package/kb/extra/subsystems/working-directory.md +64 -0
- package/kb/extra/subsystems/working-directory.zh.md +64 -0
- package/kb/extra/subsystems/workspace.md +647 -0
- package/kb/extra/subsystems/workspace.zh.md +647 -0
- package/kb/extra/subsystems/worktrees.md +76 -0
- package/kb/extra/subsystems/worktrees.zh.md +76 -0
- package/kb/extra/testing.md +4 -4
- package/kb/extra/testing.zh.md +4 -4
- package/kb/extra/tool-catalog.md +2824 -0
- package/kb/extra/tool-catalog.zh.md +2832 -0
- package/kb/extra/tool-execution-pipeline.md +65 -0
- package/kb/extra/tool-execution-pipeline.zh.md +67 -0
- package/kb/extra/ui-radius.md +117 -0
- package/kb/extra/ui-radius.zh.md +117 -0
- package/kb/extra/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.md +25 -0
- package/kb/extra/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.zh.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/bundled-python-tests/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/bundled-python-tests/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/primary-runtime-python-aliases/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/primary-runtime-python-aliases/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.zh.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.md +27 -0
- package/kb/extra/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.zh.md +27 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/deepseek-model-discovery/guide.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/deepseek-model-discovery/guide.zh.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/desktop-test-auth-popup/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/desktop-test-auth-popup/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/experimental-package-composition/guide.md +28 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/experimental-package-composition/guide.zh.md +28 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/instruction-home-override/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/instruction-home-override/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/job-id-identity/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/job-id-identity/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/jsonl-persistence-plugin/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/jsonl-persistence-plugin/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/mock-messages-events/guide.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/mock-messages-events/guide.zh.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/native-subagent-bundle-tools/guide.md +31 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/native-subagent-bundle-tools/guide.zh.md +31 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/new-session-generations/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/new-session-generations/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/plugin-option-placement/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/plugin-option-placement/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/python-optional-resources/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/python-optional-resources/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/session-title-adapters/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/session-title-adapters/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/session-title-provider-strategy/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/session-title-provider-strategy/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/ssh-helper-launch/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/ssh-helper-launch/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/subagent-activations/guide.md +59 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/subagent-activations/guide.zh.md +59 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/subagent-preset-composition/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/subagent-preset-composition/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/terminal-command-labels/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/terminal-command-labels/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/tool-presentation-mode/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/tool-presentation-mode/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/web-listener-trust-config/guide.md +36 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/web-listener-trust-config/guide.zh.md +36 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/working-directory/guide.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/working-directory/guide.zh.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/deepseek-account-identity-watch/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/deepseek-account-identity-watch/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/deepseek-account-model-catalog/guide.md +27 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/deepseek-account-model-catalog/guide.zh.md +27 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/desktop-font-size-shortcuts/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/desktop-font-size-shortcuts/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/from-default-profile-replaces-target/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/from-default-profile-replaces-target/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/operator-connect/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/operator-connect/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/pi-ai-azure-provider/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/pi-ai-azure-provider/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/pi-ai-model-discovery/guide.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/pi-ai-model-discovery/guide.zh.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/plugin-install-over-installed/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/plugin-install-over-installed/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/sdk-minimal-image-compaction/guide.md +32 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/sdk-minimal-image-compaction/guide.zh.md +32 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/stored-credentials-precedence/guide.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/stored-credentials-precedence/guide.zh.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.3/plugin-engines-dsh/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.3/plugin-engines-dsh/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.4/account-notification-fields/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.4/account-notification-fields/guide.zh.md +18 -0
- package/kb/extra/web-styling.md +12 -3
- package/kb/extra/web-styling.zh.md +12 -3
- package/kb/meta/search-index.json +2690 -404
- package/kb/meta/site-pages.txt +188 -188
- package/kb/meta/source.json +7 -6
- package/kb/meta/topics.md +10 -6
- package/kb/site/develop/basic/config.md +1 -0
- package/kb/site/develop/basic/index.md +1 -0
- package/kb/site/develop/basic/publish.md +12 -3
- package/kb/site/develop/basic/tool.md +1 -0
- package/kb/site/develop/cordis-tutorial/01-first-plugin.md +1 -0
- package/kb/site/develop/cordis-tutorial/02-lifecycle-and-effects.md +1 -0
- package/kb/site/develop/cordis-tutorial/03-services.md +1 -0
- package/kb/site/develop/cordis-tutorial/04-events.md +1 -0
- package/kb/site/develop/cordis-tutorial/05-config.md +28 -0
- package/kb/site/develop/cordis-tutorial/06-composition-and-hmr.md +3 -2
- package/kb/site/develop/cordis-tutorial/07-into-the-harness.md +1 -0
- package/kb/site/develop/cordis-tutorial/index.md +1 -0
- package/kb/site/develop/framework/events.md +1 -0
- package/kb/site/develop/framework/index.md +2 -1
- package/kb/site/develop/framework/service.md +1 -0
- package/kb/site/develop/practice/dynamic-cordis.md +9 -8
- package/kb/site/develop/practice/index.md +1 -0
- package/kb/site/develop/practice/llm-adapter.md +2 -1
- package/kb/site/en/develop/basic/config.md +1 -0
- package/kb/site/en/develop/basic/index.md +1 -0
- package/kb/site/en/develop/basic/publish.md +12 -3
- package/kb/site/en/develop/basic/tool.md +1 -0
- package/kb/site/en/develop/cordis-tutorial/01-first-plugin.md +1 -0
- package/kb/site/en/develop/cordis-tutorial/02-lifecycle-and-effects.md +1 -0
- package/kb/site/en/develop/cordis-tutorial/03-services.md +1 -0
- package/kb/site/en/develop/cordis-tutorial/04-events.md +1 -0
- package/kb/site/en/develop/cordis-tutorial/05-config.md +28 -0
- package/kb/site/en/develop/cordis-tutorial/06-composition-and-hmr.md +3 -2
- package/kb/site/en/develop/cordis-tutorial/07-into-the-harness.md +1 -0
- package/kb/site/en/develop/cordis-tutorial/index.md +1 -0
- package/kb/site/en/develop/framework/events.md +1 -0
- package/kb/site/en/develop/framework/index.md +2 -1
- package/kb/site/en/develop/framework/service.md +1 -0
- package/kb/site/en/develop/practice/dynamic-cordis.md +9 -8
- package/kb/site/en/develop/practice/index.md +1 -0
- package/kb/site/en/develop/practice/llm-adapter.md +2 -1
- package/kb/site/en/guide/github-review.md +8 -10
- package/kb/site/en/guide/mcp-memory.md +1 -0
- package/kb/site/en/guide/network-proxy.md +2 -1
- package/kb/site/en/guide/plugin-market.md +151 -0
- package/kb/site/en/guide/providers-custom-form.png +0 -0
- package/kb/site/en/guide/providers-models-page.png +0 -0
- package/kb/site/en/guide/providers.md +121 -83
- package/kb/site/en/guide/public-deployments.md +40 -0
- package/kb/site/en/guide/python-sdk.md +49 -29
- package/kb/site/en/guide/quickstart.md +2 -0
- package/kb/site/en/guide/schedule.md +70 -11
- package/kb/site/en/reference/agent-lifecycle.md +1 -0
- package/kb/site/en/reference/api-gateway.md +22 -13
- package/kb/site/en/reference/capability-seams.md +242 -77
- package/kb/site/en/reference/config-catalog.md +2102 -904
- package/kb/site/en/reference/cookbook/adding-a-package.md +57 -3
- package/kb/site/en/reference/cookbook/adding-a-settings-card.md +35 -64
- package/kb/site/en/reference/cookbook/adding-a-tool.md +4 -3
- package/kb/site/en/reference/cookbook/adding-an-llm-adapter.md +1 -0
- package/kb/site/en/reference/cookbook/extension-cookbook.md +6 -5
- package/kb/site/en/reference/cordis-api/context.md +1 -0
- package/kb/site/en/reference/cordis-api/events.md +1 -0
- package/kb/site/en/reference/cordis-api/fiber.md +4 -3
- package/kb/site/en/reference/cordis-api/inherited.md +16 -16
- package/kb/site/en/reference/cordis-api/registry.md +1 -0
- package/kb/site/en/reference/cordis-api/service.md +1 -0
- package/kb/site/en/reference/cordis-primer.md +1 -0
- package/kb/site/en/reference/experimental-persistence-catalog.md +20 -0
- package/kb/site/en/reference/index.md +27 -21
- package/kb/site/en/reference/persistence-catalog.md +8055 -62
- package/kb/site/en/reference/subsystems/approval.md +2 -1
- package/kb/site/en/reference/subsystems/client-modules.md +37 -15
- package/kb/site/en/reference/subsystems/client-resources.md +3 -1
- package/kb/site/en/reference/subsystems/commands.md +6 -1
- package/kb/site/en/reference/subsystems/compaction.md +50 -3
- package/kb/site/en/reference/subsystems/conversation.md +50 -6
- package/kb/site/en/reference/subsystems/core.md +100 -258
- package/kb/site/en/reference/subsystems/credentials.md +178 -13
- package/kb/site/en/reference/subsystems/filesystem.md +11 -0
- package/kb/site/en/reference/subsystems/goal.md +2 -1
- package/kb/site/en/reference/subsystems/index.md +20 -6
- package/kb/site/en/reference/subsystems/jobs.md +397 -132
- package/kb/site/en/reference/subsystems/llm-streaming.md +157 -50
- package/kb/site/en/reference/subsystems/lsp.md +1 -0
- package/kb/site/en/reference/subsystems/permission-presets.md +66 -29
- package/kb/site/en/reference/subsystems/persistence.md +6 -3
- package/kb/site/en/reference/subsystems/plan.md +3 -2
- package/kb/site/en/reference/subsystems/ptc-runtime.md +254 -0
- package/kb/site/en/reference/subsystems/sandbox.md +7 -5
- package/kb/site/en/reference/subsystems/schedule.md +392 -33
- package/kb/site/en/reference/subsystems/scope.md +2 -1
- package/kb/site/en/reference/subsystems/session-projection.md +22 -19
- package/kb/site/en/reference/subsystems/session-query.md +3 -0
- package/kb/site/en/reference/subsystems/session-reference.md +8 -6
- package/kb/site/en/reference/subsystems/session-telemetry.md +7 -4
- package/kb/site/en/reference/subsystems/session-title.md +20 -10
- package/kb/site/en/reference/subsystems/session.md +254 -91
- package/kb/site/en/reference/subsystems/settings.md +43 -292
- package/kb/site/en/reference/subsystems/shell.md +37 -28
- package/kb/site/en/reference/subsystems/sidebar-right.md +25 -12
- package/kb/site/en/reference/subsystems/skills.md +5 -6
- package/kb/site/en/reference/subsystems/slots.md +88 -70
- package/kb/site/en/reference/subsystems/spill.md +4 -3
- package/kb/site/en/reference/subsystems/storage.md +2 -2
- package/kb/site/en/reference/subsystems/subagent.md +207 -293
- package/kb/site/en/reference/subsystems/subprocess.md +17 -18
- package/kb/site/en/reference/subsystems/system-prompt.md +36 -3
- package/kb/site/en/reference/subsystems/terminal.md +1 -0
- package/kb/site/en/reference/subsystems/token-meter.md +1 -0
- package/kb/site/en/reference/subsystems/tools.md +42 -14
- package/kb/site/en/reference/subsystems/typert.md +362 -14
- package/kb/site/en/reference/subsystems/user-questions.md +131 -1
- package/kb/site/en/reference/subsystems/web-client.md +15 -9
- package/kb/site/en/reference/subsystems/web-server.md +157 -8
- package/kb/site/en/reference/subsystems/web.md +3 -2
- package/kb/site/en/reference/subsystems/workflow.md +10 -9
- package/kb/site/en/reference/subsystems/workspace.md +290 -42
- package/kb/site/en/reference/tool-catalog.md +908 -352
- package/kb/site/en/reference/tool-execution-pipeline.md +7 -3
- package/kb/site/guide/github-review.md +8 -10
- package/kb/site/guide/mcp-memory.md +1 -0
- package/kb/site/guide/network-proxy.md +2 -1
- package/kb/site/guide/plugin-market.md +151 -0
- package/kb/site/guide/providers-custom-form.zh.png +0 -0
- package/kb/site/guide/providers-models-page.zh.png +0 -0
- package/kb/site/guide/providers.md +132 -94
- package/kb/site/guide/public-deployments.md +40 -0
- package/kb/site/guide/python-sdk.md +49 -29
- package/kb/site/guide/quickstart.md +2 -0
- package/kb/site/guide/schedule.md +70 -11
- package/kb/site/reference/agent-lifecycle.md +1 -0
- package/kb/site/reference/api-gateway.md +28 -13
- package/kb/site/reference/capability-seams.md +242 -77
- package/kb/site/reference/config-catalog.md +2105 -906
- package/kb/site/reference/cookbook/adding-a-package.md +55 -3
- package/kb/site/reference/cookbook/adding-a-settings-card.md +35 -64
- package/kb/site/reference/cookbook/adding-a-tool.md +4 -3
- package/kb/site/reference/cookbook/adding-an-llm-adapter.md +1 -0
- package/kb/site/reference/cookbook/extension-cookbook.md +6 -5
- package/kb/site/reference/cordis-api/context.md +1 -0
- package/kb/site/reference/cordis-api/events.md +1 -0
- package/kb/site/reference/cordis-api/fiber.md +4 -3
- package/kb/site/reference/cordis-api/inherited.md +16 -16
- package/kb/site/reference/cordis-api/registry.md +1 -0
- package/kb/site/reference/cordis-api/service.md +1 -0
- package/kb/site/reference/cordis-primer.md +1 -0
- package/kb/site/reference/experimental-persistence-catalog.md +20 -0
- package/kb/site/reference/index.md +27 -21
- package/kb/site/reference/persistence-catalog.md +8061 -68
- package/kb/site/reference/subsystems/approval.md +2 -1
- package/kb/site/reference/subsystems/client-modules.md +37 -15
- package/kb/site/reference/subsystems/client-resources.md +3 -1
- package/kb/site/reference/subsystems/commands.md +6 -1
- package/kb/site/reference/subsystems/compaction.md +50 -3
- package/kb/site/reference/subsystems/conversation.md +51 -5
- package/kb/site/reference/subsystems/core.md +102 -258
- package/kb/site/reference/subsystems/credentials.md +178 -13
- package/kb/site/reference/subsystems/filesystem.md +11 -0
- package/kb/site/reference/subsystems/goal.md +2 -1
- package/kb/site/reference/subsystems/index.md +20 -6
- package/kb/site/reference/subsystems/jobs.md +396 -131
- package/kb/site/reference/subsystems/llm-streaming.md +157 -50
- package/kb/site/reference/subsystems/lsp.md +1 -0
- package/kb/site/reference/subsystems/permission-presets.md +66 -29
- package/kb/site/reference/subsystems/persistence.md +6 -3
- package/kb/site/reference/subsystems/plan.md +3 -2
- package/kb/site/reference/subsystems/ptc-runtime.md +254 -0
- package/kb/site/reference/subsystems/sandbox.md +7 -5
- package/kb/site/reference/subsystems/schedule.md +392 -33
- package/kb/site/reference/subsystems/scope.md +4 -1
- package/kb/site/reference/subsystems/session-projection.md +22 -19
- package/kb/site/reference/subsystems/session-query.md +3 -0
- package/kb/site/reference/subsystems/session-reference.md +8 -6
- package/kb/site/reference/subsystems/session-telemetry.md +7 -4
- package/kb/site/reference/subsystems/session-title.md +20 -10
- package/kb/site/reference/subsystems/session.md +254 -91
- package/kb/site/reference/subsystems/settings.md +43 -292
- package/kb/site/reference/subsystems/shell.md +37 -28
- package/kb/site/reference/subsystems/sidebar-right.md +25 -12
- package/kb/site/reference/subsystems/skills.md +5 -6
- package/kb/site/reference/subsystems/slots.md +92 -70
- package/kb/site/reference/subsystems/spill.md +3 -2
- package/kb/site/reference/subsystems/storage.md +2 -2
- package/kb/site/reference/subsystems/subagent.md +208 -296
- package/kb/site/reference/subsystems/subprocess.md +17 -18
- package/kb/site/reference/subsystems/system-prompt.md +36 -3
- package/kb/site/reference/subsystems/terminal.md +1 -0
- package/kb/site/reference/subsystems/token-meter.md +1 -0
- package/kb/site/reference/subsystems/tools.md +42 -14
- package/kb/site/reference/subsystems/typert.md +362 -14
- package/kb/site/reference/subsystems/user-questions.md +132 -2
- package/kb/site/reference/subsystems/web-client.md +15 -9
- package/kb/site/reference/subsystems/web-server.md +157 -8
- package/kb/site/reference/subsystems/web.md +3 -2
- package/kb/site/reference/subsystems/workflow.md +10 -9
- package/kb/site/reference/subsystems/workspace.md +290 -42
- package/kb/site/reference/tool-catalog.md +862 -306
- package/kb/site/reference/tool-execution-pipeline.md +7 -3
- package/package.json +2 -2
- package/skills/dsh-dev-sandbox.md +67 -0
- package/skills/dsh-plugin-dev-kb.md +5 -4
- package/kb/extra/defensive-patterns.md +0 -33
- package/kb/extra/defensive-patterns.zh.md +0 -35
- package/kb/site/en/reference/subsystems/code-runtime.md +0 -198
- package/kb/site/en/reference/subsystems/invariants.md +0 -91
- package/kb/site/reference/subsystems/code-runtime.md +0 -198
- package/kb/site/reference/subsystems/invariants.md +0 -91
|
@@ -1,64 +1,92 @@
|
|
|
1
1
|
---
|
|
2
2
|
editSource: "docs/subsystems/subagent.zh.md"
|
|
3
|
+
rawMarkdownPath: "reference/subsystems/subagent.md"
|
|
3
4
|
outline: [2,3]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
#
|
|
7
|
+
# 子代理
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
统一的 activation API 管理本地会话和外部执行。
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
## 能力与 activation 请求
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
所有后端都使用 startActivation。能力标记校验请求选项;prepareContinuable 选择本地 Agent 创建,start 选择一次外部执行。面向模型的工具采用 parent 回传。Workflow 与 code mode 消费者可以等待 caller 结果,不额外向父代理注入消息。历史子会话的 descriptor 不可用时,以 `mode: 'unknown'` 保持可发现性,但不授予继续执行能力;[包 README](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent/README.zh.md) 定义目录持久化语义。
|
|
13
14
|
|
|
14
|
-
`
|
|
15
|
-
|
|
16
|
-
## 两类能力,两种发现方式
|
|
17
|
-
|
|
18
|
-
提供方通过一个静态描述符公布其**启动时**功能,服务会在单次 run 存在之前即行检查;如果请求依赖提供方不具备的功能,会被明确拒绝(`SubagentError('UNSUPPORTED_CAPABILITY')`),绝不会被接受后静默忽略。这些 flag 仅描述单次 [`start()`](#the-provider-contract-subagentprovider) 路径,即由提供方组合子 agent 的路径。**可继续**子 agent 由继续执行管理器自行组合,因此它们由唯一一个可选方法把关,方法存在即为能力,并以 TypeScript 的类型收窄作为发现机制:[`SubagentProvider.prepareContinuable`](#the-provider-contract-subagentprovider)。
|
|
15
|
+
可选的 `request.cwd` 指定子级的初始目录;相对路径以父级当前有效目录为基准解析。省略时,在准入阶段捕获该目录。本地子 Session 保留父级的原始项目,冷恢复保留其日志中的目录状态。
|
|
19
16
|
|
|
20
17
|
```ts type-equiv
|
|
21
18
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* {@link SubagentProvider.start} path, where the provider composes the child;
|
|
27
|
-
* continuable children are composed by the continuation manager itself and are
|
|
28
|
-
* gated by {@link SubagentProvider.prepareContinuable} instead. Each flag
|
|
29
|
-
* corresponds one-to-one to a {@link SubagentStartRequest} option: `depthLimit`
|
|
30
|
-
* to `maxDepth`; the other names match.
|
|
19
|
+
* Start-time options supported by a registered backend. The manager checks
|
|
20
|
+
* every requested option before preparing a local child or starting an external
|
|
21
|
+
* execution. depthLimit controls maxDepth; the remaining flag names match
|
|
22
|
+
* SubagentStartRequest fields.
|
|
31
23
|
*/
|
|
32
24
|
interface SubagentCapabilities {
|
|
33
25
|
readonly agentOptions: boolean
|
|
26
|
+
/** Supports selecting a preset independently of the parent's composition. */
|
|
27
|
+
readonly agentPreset: boolean
|
|
34
28
|
readonly outputSchema: boolean
|
|
35
29
|
readonly depthLimit: boolean
|
|
36
|
-
readonly toolFilter: boolean
|
|
37
|
-
readonly persona: boolean
|
|
38
30
|
}
|
|
39
31
|
```
|
|
40
32
|
|
|
41
|
-
|
|
33
|
+
```ts type-equiv
|
|
34
|
+
/** One managed child execution and its result delivery policy. */
|
|
35
|
+
interface SubagentActivationSpec {
|
|
36
|
+
/** Registered backend to use. */
|
|
37
|
+
readonly provider: string
|
|
38
|
+
/** Short task label retained in cataloged child membership. */
|
|
39
|
+
readonly label: string
|
|
40
|
+
/** Optional reserved identity for a local child; external backends allocate their own ids. */
|
|
41
|
+
readonly childId?: SessionId
|
|
42
|
+
/** Task, parent, and backend-supported execution options. */
|
|
43
|
+
readonly request: Omit<SubagentStartRequest, 'label' | 'signal'>
|
|
44
|
+
/** Cancellation before publication; callers own later cancellation through dispose. */
|
|
45
|
+
readonly signal: AbortSignal
|
|
46
|
+
/** Parent delivery notifies the model; caller delivery only returns the result. Local children always enter the parent catalog. */
|
|
47
|
+
readonly delivery: 'parent' | 'caller'
|
|
48
|
+
}
|
|
49
|
+
```
|
|
42
50
|
|
|
43
|
-
|
|
51
|
+
```ts type-equiv
|
|
52
|
+
/** A managed execution; disposal addresses this exact activation, never a later resume. */
|
|
53
|
+
interface SubagentActivation {
|
|
54
|
+
/** Stable identity of the child. */
|
|
55
|
+
readonly childId: SessionId
|
|
56
|
+
/** Accepted inbox message, when the backend has a local inbox. */
|
|
57
|
+
readonly messageId?: MessageId
|
|
58
|
+
/**
|
|
59
|
+
* Execution result after teardown settles and notifications are sent; capture failures reject.
|
|
60
|
+
* Teardown failures are reported by dispose() without replacing a captured result.
|
|
61
|
+
*/
|
|
62
|
+
readonly result: Promise<SubagentResult>
|
|
63
|
+
/** Stop and release this activation and its owned descendants; rejects on teardown failure. */
|
|
64
|
+
dispose(): Promise<void>
|
|
65
|
+
}
|
|
66
|
+
```
|
|
44
67
|
|
|
45
68
|
```ts type-equiv
|
|
46
69
|
/**
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* and resolves the durable descriptor before dispatching to
|
|
51
|
-
* {@link SubagentProvider.start}.
|
|
70
|
+
* Task and optional capabilities supplied to a backend. startActivation carries
|
|
71
|
+
* these fields in request while owning its label, cancellation, and delivery
|
|
72
|
+
* policy separately.
|
|
52
73
|
*/
|
|
53
74
|
interface SubagentStartRequest {
|
|
75
|
+
/** Initial child directory; relative paths resolve against the parent's current directory. Omitted inherits that directory at start. */
|
|
76
|
+
readonly cwd?: string
|
|
77
|
+
/**
|
|
78
|
+
* Independent preset id; omission joins the parent's current generation.
|
|
79
|
+
* Requires a provider with `capabilities.agentPreset` that does not inherit
|
|
80
|
+
* parent context.
|
|
81
|
+
*/
|
|
82
|
+
readonly agentPreset?: string
|
|
54
83
|
/** Optional short display label persisted with a session-backed child. */
|
|
55
84
|
readonly label?: string
|
|
56
85
|
/** Content delivered as the child's user message. */
|
|
57
86
|
readonly prompt: ContentBlock[]
|
|
58
87
|
/**
|
|
59
|
-
* The spawning agent.
|
|
60
|
-
*
|
|
61
|
-
* and only when no deployment `cwd` override is configured.
|
|
88
|
+
* The spawning agent. Its effective directory supplies the default cwd;
|
|
89
|
+
* in-process children retain its origin, lineage, and delegation depth.
|
|
62
90
|
*/
|
|
63
91
|
readonly parent: Agent
|
|
64
92
|
/**
|
|
@@ -90,140 +118,22 @@ interface SubagentStartRequest {
|
|
|
90
118
|
* start otherwise.
|
|
91
119
|
*/
|
|
92
120
|
readonly maxDepth?: number
|
|
93
|
-
/**
|
|
94
|
-
* Optional child tool scoping. Requires {@link SubagentCapabilities.toolFilter};
|
|
95
|
-
* rejected at start otherwise. In-process backends apply it as a scoped
|
|
96
|
-
* `tools.restrict()` in the child's creation window: the named tools vanish
|
|
97
|
-
* from the child's prompt AND refuse to execute (one visibility), with loud
|
|
98
|
-
* unknown-name validation.
|
|
99
|
-
*/
|
|
100
|
-
readonly toolFilter?: ToolRestriction
|
|
101
|
-
/**
|
|
102
|
-
* Optional per-child persona. Requires {@link SubagentCapabilities.persona};
|
|
103
|
-
* rejected at start otherwise. In-process backends register it as a scoped
|
|
104
|
-
* `deployment:persona-prefix` section on the child, SHADOWING the deployment's
|
|
105
|
-
* persona for this child alone — same template semantics as the deployment
|
|
106
|
-
* persona (strict `{{…}}` interpolation against the registered variables).
|
|
107
|
-
*/
|
|
108
|
-
readonly persona?: string
|
|
109
121
|
}
|
|
110
122
|
```
|
|
111
123
|
|
|
112
|
-
`signal` 是就绪前后唯一的取消通道。[subagent 组合控制 Agent Note](https://github.com/deepseek-ai/deepseek-harness/blob/master/.agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.zh.md)规定 persona、live 全局工具过滤、绝对深度以及「可见性而非权限」的设计理由。
|
|
113
|
-
|
|
114
|
-
面向调用方的请求不携带目录格式细节或继续执行状态。`SubagentRuntime.start()` 会在能力检查后解析分离的一次性描述符,再将以下面向提供方的请求传给所选传输;可继续子 agent 绝不会到达 `SubagentProvider.start()`:
|
|
115
|
-
|
|
116
124
|
```ts type-equiv
|
|
117
|
-
/**
|
|
118
|
-
* Provider-facing one-shot request after {@link SubagentRuntime.start} resolves
|
|
119
|
-
* the durable child descriptor.
|
|
120
|
-
*/
|
|
125
|
+
/** Provider-facing request with an absolute directory selected before startup. */
|
|
121
126
|
interface ResolvedSubagentStartRequest extends SubagentStartRequest {
|
|
122
|
-
/**
|
|
123
|
-
readonly
|
|
124
|
-
}
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## 可继续子 agent 与激活
|
|
128
|
-
|
|
129
|
-
**可继续后台 subagent** 是一份持久化子 agent 会话(Session),至多关联一个进程内的 **Activation(激活)**,即被重建的子 Agent 处于驻留状态的时段。Activation 不是请求、结果、取消或 Task:它可以执行多个 FIFO 轮次,并在其创建的后代仍在运行期间保持驻留。继续执行管理器负责 activation 准入、直接父级鉴权、实时所有权图、冷恢复(cold resume)与子级优先释放;agent loop 负责一切轮次排序与执行。任何可继续路径都不会创建 Task,也不会创建承载中间结果的包装层。
|
|
130
|
-
|
|
131
|
-
```text
|
|
132
|
-
persisted Session
|
|
133
|
-
-> optional live Activation
|
|
134
|
-
-> one retained AgentHandle
|
|
135
|
-
-> Agent inbox as the only turn FIFO
|
|
136
|
-
-> zero or more owned child Activations
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
`SubagentRuntime.startContinuable()` 会预留稳定的子 agent id,对版本化的 `subagent/descriptor` payload 建立快照,向指定提供方索取其分离的 `ContinuableCreateSpec`,通过私有的 activation-owner 作用域创建子 Agent,建立任何可继续父级的所有权,并提交初始提示词。当收件箱(inbox)准入产出消息 id 时,它以 `{ childId, messageId }` resolve——无需等待轮次开始,也无需等待消息进入会话日志。在该准入之前的任何失败都会以两个 id 都不返回的方式 reject,并 dispose(资源释放)任何已创建的 handle,回滚 Activation 与父级所有权。
|
|
140
|
-
|
|
141
|
-
`SubagentRuntime.sendMessage()` 是唯一由模型编写消息的操作。它接收确切在线 sender 与目标 id,只允许直接 parent 或直接可继续 child,自行推导 sender 来源信息,并根据目标 child 的 Activation 驻留状态路由:
|
|
142
|
-
|
|
143
|
-
| 目标 Activation 状态 | `sendMessage` |
|
|
144
|
-
|---|---|
|
|
145
|
-
| `running` | 在同一 Activation 中 steer 最近的 step |
|
|
146
|
-
| `waiting` | 唤醒并 steer 同一 Activation |
|
|
147
|
-
| 无 Activation | 冷恢复新的 Activation,然后 steer |
|
|
148
|
-
|
|
149
|
-
`running` 表示 Agent 拥有活跃的 driver 或 maintenance 任务;`waiting` 表示没有活跃的 Agent 工作,但其 Inbox 非空或仍拥有至少一个尚未完成 dispose 的子 Activation;`settled` 表示没有活跃的 Agent 工作、Inbox 为空且其拥有的每个子级都已 dispose,此时管理器会 dispose [`AgentHandle`](./core.md#creation-and-ownership) 并移除该 Activation。管理器根据 `Agent.whenIdle()`、`Agent.inbox.hasPending`、其拥有的子级集合,以及让过期观察失效的 Activation generation 推导这些内部条件,而非维护第二套执行状态机。最终 Session flush 之后,child-lock 决策会通过 `Agent.runMaintenance()` 的同步 task 入口占用 idle 阶段,并在同一个 JavaScript turn 内关闭准入。这条保守规则不区分投递模式:`Agent.inject()` 停放的 context 可以让空闲 Activation 及其在线祖先继续驻留,直到唤醒投递将其 claim、queue 变更将其移除,或 manager teardown 将其丢弃。
|
|
150
|
-
|
|
151
|
-
Agent 收件箱是唯一队列。每条 Agent 消息都使用 `Agent.steer()`:空闲目标会启动一个轮次,运行中目标则在最近的 step 边界领取消息。浏览器 `subagent.prompt` Remote 会另行通过同一条内部准入路径携带 `delivery: 'queue' | 'steer'`;Queue 开启后续 FIFO 轮次,Steer 保留 Agent loop 的 best-effort 最近 step 行为以及消息的人类来源。投递成功会返回被接受的 `MessageId`;既有的 `agent/inbox/inserted`、`agent/inbox/claimed` 与 `agent/inbox/discarded` 事件仍是消息生命周期的观测点,继续执行层不定义第二条队列。
|
|
152
|
-
|
|
153
|
-
权限来自确切在线 sender。parent 到 child 的投递要求目标的 `SessionHeader.parentSession` 指向 sender;child 到 parent 的投递要求 sender 的驻留 Activation 指向目标。sibling、相隔多于一条边的 ancestor、self-target、陈旧 Agent 对象与一次性 child 都会被拒绝。每条已接受消息都以 `Agent <sender-id> sent a message:` 作为前缀,并记录 `AgentMessageSource`;来源信息记录 sender,但不授予权限。
|
|
154
|
-
|
|
155
|
-
对于 `startContinuable()`、`sendMessage()` 与浏览器 prompt 投递,调用方 signal 仅在收件箱接受之前掌管查找、物化与准入。此后管理器独立掌管该 Activation:之后的调用方取消既不会取消已接受的轮次,也不会 dispose 子 agent。公开 subagent 服务不暴露由调用方选择的 Agent 消息调度;浏览器人类 Queue 与 Steer 仍是内部适配器选择。
|
|
156
|
-
|
|
157
|
-
在线 queue occurrence 变更属于 Session 域。只有在线 subagent-owned Agent 的当前 projection identity 为 continuable,且其 descriptor 序号位于该 child 自身的非 seed suffix 时,`session.updateQueue` 才会接纳普通 Edit、Remove 与 QueueDock Steer。Identity projection 以 last-wins 方式折叠 descriptor,因此 child descriptor 会覆盖 fork lineage 保留的 descriptor;own-suffix 序号检查会阻止仅来自 seed 的祖先 identity 授权变更。One-shot、缺失、未知、损坏或冷 child 会被拒绝,queue 变更绝不会冷恢复 child。这些变更以目标 Session id 作为人类权限,包括待处理 `nextStep` steering 或注入 context。Steer 要求 queued `MessageId`,且 command 开始时 Agent 必须报告 running;准入后发生取消时,会使用 Agent 已接受的唤醒 `nextTurn` fallback。Edit 会在同一个 `MessageId` 下改写内容,且 Edit 与 Steer 都会同步完成 Inbox 变更,因此 settlement 只会观察最终状态。`agent/inbox/claimed` 与 `agent/inbox/discarded` 都会唤醒 watcher 重新读取是否仍有待处理 occurrence;这样,直接 Agent 投递可以恢复停放工作,而移除最后一个停放 occurrence 可使 idle child 结算。[人类 inbox 控制 Agent Note](https://github.com/deepseek-ai/deepseek-harness/blob/master/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.zh.md)拥有这些语义。
|
|
158
|
-
|
|
159
|
-
`SubagentRuntime.interrupt(targetSessionId, authority)` 是唯一的公开停止操作:它同步完成鉴权,对在线目标发出 `Agent.cancel(cause, { keepInbox: true })`,然后不等待完全停稳即返回。Activation、其尚未领取的待处理 inbox 工作与已发布的后代均不受影响;已被领取进入中断轮次的工作不会重新入队。被中断的 driver 进入 idle 后,一次唤醒发送会恢复被暂停的 FIFO 队列。不存在的目标——未知、一次性或已结算——以及未绑定管理器的组合是被接受的 no-op。对在线目标,错误的 parent 地址或不在其在线祖先链中的调用方会以 `UNAUTHORIZED` 拒绝;陈旧的 ancestor 对象和指向自身的 ancestor 请求会在查找目标前拒绝。
|
|
160
|
-
|
|
161
|
-
```ts type-equiv
|
|
162
|
-
/**
|
|
163
|
-
* Authority under which one interrupt request is admitted. `user` carries the
|
|
164
|
-
* durable direct-parent address a human client presented; `ancestor` carries
|
|
165
|
-
* the exact live Agent object whose recorded lineage must contain the caller.
|
|
166
|
-
*/
|
|
167
|
-
type SubagentInterruptAuthority =
|
|
168
|
-
| { readonly kind: 'user'; readonly parentSessionId: SessionId }
|
|
169
|
-
| { readonly kind: 'ancestor'; readonly agent: Agent }
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
每个 Activation 都拥有自己的 `AgentHandle` 和一个 `ownedChildren: Set<SessionId>`;由于一份会话至多有一个存活 Activation,子会话 id 无需另一个运行时化身引用即可标识存活的子 agent。启动子 agent 或提交源自 parent 的工作,会在子 agent 能够运行之前将其注册到受继续执行管理的父级集合中;只要该集合非空,该父级就无法 settle。顶层或其他非继续执行的 Agent 没有 Activation,处于 waiting 图之外。只有当子 Agent 没有活跃工作、其 Inbox 为空、该子 agent 的每个子级都已 dispose、best-effort 的最终会话 flush 结算完毕,且子 agent 的 `AgentHandle` 完成 dispose 之后,才会释放子 agent。
|
|
173
|
-
|
|
174
|
-
最终结算会等待 `ctx.sessions.flush(session)`,但会忽略其参与布尔值,因为任意 listener 都无法证明某个持久化后端已存储该状态。rejection 会被记录,但不会使 Activation 失败;管理器仍会 dispose 该 handle 并释放所有权,此后持久化的子 agent 状态在后续恢复时可能缺失或陈旧。管理器卸载会调用内部的管理器全局 drain,关闭准入并 dispose 每片在线森林;`drainContinuableDescendants(parents)` 只关闭由 host 确切拥有的在线 Agent 之下的准入,并 dispose 其可继续后代,而无关森林保持在线。两者都会等待各自作用域内已获准的物化过程,自顶向下传播取消,按 child-first 顺序释放 handle,并且即使个别分支失败也会等待所有选中分支。持久化子会话不受该进程内拆卸的影响。
|
|
175
|
-
|
|
176
|
-
```ts type-equiv
|
|
177
|
-
/** Durable attribution for one model-authored message between adjacent Agents. */
|
|
178
|
-
interface AgentMessageSource {
|
|
179
|
-
readonly kind: 'agent-message'
|
|
180
|
-
/** A message another agent addressed to this one (`relay` context form). */
|
|
181
|
-
readonly form: 'relay'
|
|
182
|
-
/** Session id of the Agent whose tool call produced the message. */
|
|
183
|
-
readonly senderSessionId: SessionId
|
|
127
|
+
/** Absolute child directory captured from the parent or explicit request. */
|
|
128
|
+
readonly cwd: string
|
|
184
129
|
}
|
|
185
130
|
```
|
|
186
131
|
|
|
187
|
-
|
|
188
|
-
/** Options for one model-authored message between adjacent Agents. */
|
|
189
|
-
interface SubagentSendMessageOptions {
|
|
190
|
-
/** Caller cancellation, owning the operation only until inbox acceptance. */
|
|
191
|
-
readonly signal: AbortSignal
|
|
192
|
-
}
|
|
193
|
-
```
|
|
132
|
+
## 本地子代理与 activation
|
|
194
133
|
|
|
195
|
-
|
|
196
|
-
/** Identities returned once a continuable child accepted its initial prompt. */
|
|
197
|
-
interface ContinuableStart {
|
|
198
|
-
/** The durable child session id, stable across activations. */
|
|
199
|
-
readonly childId: SessionId
|
|
200
|
-
/** The accepted initial prompt's inbox message id. */
|
|
201
|
-
readonly messageId: MessageId
|
|
202
|
-
}
|
|
203
|
-
```
|
|
134
|
+
只有 spawn 支持独立的 `agentPreset`;省略选择与 fork 都继承父方的活跃组装。[子级 preset 规则](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent/README.zh.md#restoring-child-composition)定义显式选择、事件顺序和历史恢复行为。
|
|
204
135
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
```ts type-equiv
|
|
208
|
-
/**
|
|
209
|
-
* Durable attribution for the runtime's own account of a continuable child
|
|
210
|
-
* settling. Deliberately a different kind from
|
|
211
|
-
* {@link AgentMessageSource}: an Agent message is content the sender chose,
|
|
212
|
-
* while this message is the manager stating what became of the child, and a
|
|
213
|
-
* transcript that merged them would credit the child with words it never wrote.
|
|
214
|
-
*/
|
|
215
|
-
interface SubagentSettledMessageSource {
|
|
216
|
-
readonly kind: 'subagent-settled'
|
|
217
|
-
/** A runtime account shown without expanding the row (`notice` context form). */
|
|
218
|
-
readonly form: 'notice'
|
|
219
|
-
/** One-line account of how the child ended. */
|
|
220
|
-
readonly summary: string
|
|
221
|
-
/** Session id of the child that settled. */
|
|
222
|
-
readonly senderSessionId: SessionId
|
|
223
|
-
}
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
提供方只参与准备初始创建 spec,`spawn` 与 `fork` 在此有所不同。其返回的 spec 只携带分离的、提供方专属的创建输入——即可选的父级历史种子——不含 Agent、`AgentHandle`、提示词投递、结果、dispose 或恢复操作。冷恢复根本不经由提供方分发:管理器折叠通用描述符,通过同一个 activation-owner 作用域调用 `ctx.agents.resume()`,并提交等待中的轮次。
|
|
136
|
+
本地子代理拥有持久 Session,最多有一个在线 activation。Manager 预留身份和容量,通过后端准备子代理,并管理输入准入、冷恢复以及先子后父的释放顺序。activation 结果在资源释放和完成通知之后结算。释放操作单独报告清理失败,不会覆盖已捕获的结果。结构化结果提交会关闭该 activation 的输入;之后的冷恢复不会继承输出 schema。
|
|
227
137
|
|
|
228
138
|
```ts type-equiv
|
|
229
139
|
/**
|
|
@@ -234,6 +144,8 @@ interface SubagentSettledMessageSource {
|
|
|
234
144
|
* history.
|
|
235
145
|
*/
|
|
236
146
|
interface ContinuableCreateRequest {
|
|
147
|
+
/** Absolute initial directory captured before provider preparation. */
|
|
148
|
+
readonly cwd: string
|
|
237
149
|
/** The reserved durable child session id, for provider diagnostics. */
|
|
238
150
|
readonly sessionId: SessionId
|
|
239
151
|
/** The delegating parent agent whose history a seeding provider reads. */
|
|
@@ -263,36 +175,66 @@ interface ContinuableCreateSpec {
|
|
|
263
175
|
}
|
|
264
176
|
```
|
|
265
177
|
|
|
266
|
-
|
|
178
|
+
## 消息与中断
|
|
267
179
|
|
|
268
|
-
|
|
180
|
+
sendMessage 根据确切的在线发送者实例授权,仅允许相邻本地代理通信。运行中的子代理接收引导输入;不在线的可继续子代理从持久化恢复。外部执行拒绝后续消息。本地与外部执行都会通过父级结束通知自动回传最终文本、结构化结果、诊断和状态。本地子代理也可以通过 send_message 发送消息。caller 回传会抑制结束通知。drainDescendants 与 drainChildren 对本地和外部 activation 都等待所属任务清理完成。
|
|
269
181
|
|
|
270
|
-
|
|
182
|
+
```ts type-equiv
|
|
183
|
+
/** Durable attribution for one model-authored message between Agents. */
|
|
184
|
+
interface AgentMessageSource {
|
|
185
|
+
readonly kind: 'agent-message'
|
|
186
|
+
/** A message another agent addressed to this one (`relay` context form). */
|
|
187
|
+
readonly form: 'relay'
|
|
188
|
+
/** Session id of the Agent whose tool call produced the message. */
|
|
189
|
+
readonly senderSessionId: SessionId
|
|
190
|
+
}
|
|
191
|
+
```
|
|
271
192
|
|
|
272
|
-
|
|
193
|
+
```ts type-equiv
|
|
194
|
+
/**
|
|
195
|
+
* Durable attribution for the runtime's own account of a continuable child
|
|
196
|
+
* settling. Deliberately a different kind from
|
|
197
|
+
* {@link AgentMessageSource}: an Agent message is content the sender chose,
|
|
198
|
+
* while this message is the manager stating what became of the child, and a
|
|
199
|
+
* transcript that merged them would credit the child with words it never wrote.
|
|
200
|
+
*/
|
|
201
|
+
interface SubagentSettledMessageSource {
|
|
202
|
+
readonly kind: 'subagent-settled'
|
|
203
|
+
/** A runtime account shown without expanding the row (`notice` context form). */
|
|
204
|
+
readonly form: 'notice'
|
|
205
|
+
/** One-line account of how the child ended. */
|
|
206
|
+
readonly summary: string
|
|
207
|
+
/** Session id of the child that settled. */
|
|
208
|
+
readonly senderSessionId: SessionId
|
|
209
|
+
}
|
|
210
|
+
```
|
|
273
211
|
|
|
274
|
-
|
|
212
|
+
```ts type-equiv
|
|
213
|
+
/** Options for one model-authored message between adjacent Agents. */
|
|
214
|
+
interface SubagentSendMessageOptions {
|
|
215
|
+
/** Caller cancellation, owning the operation only until inbox acceptance. */
|
|
216
|
+
readonly signal: AbortSignal
|
|
217
|
+
}
|
|
218
|
+
```
|
|
275
219
|
|
|
276
220
|
```ts type-equiv
|
|
277
221
|
/**
|
|
278
|
-
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
222
|
+
* Authority under which one interrupt request is admitted. `user` carries the
|
|
223
|
+
* durable direct-parent address a human client presented; `ancestor` carries
|
|
224
|
+
* the exact live Agent object whose recorded lineage must contain the caller.
|
|
281
225
|
*/
|
|
282
|
-
type
|
|
283
|
-
|
|
284
|
-
readonly
|
|
285
|
-
/** Edge distance from the requested root; direct children are `1`. */
|
|
286
|
-
readonly depth: number
|
|
287
|
-
}
|
|
226
|
+
type SubagentInterruptAuthority =
|
|
227
|
+
| { readonly kind: 'user'; readonly parentSessionId: SessionId }
|
|
228
|
+
| { readonly kind: 'ancestor'; readonly agent: Agent }
|
|
288
229
|
```
|
|
289
230
|
|
|
231
|
+
## 持久枚举
|
|
290
232
|
|
|
291
|
-
|
|
233
|
+
`listChildren` 读取父级拥有的目录,其中包含所有本地子级及 parent 投递的外部子级。caller 投递的外部执行由调用方负责成员关系与结果收集;本地工作流子级在完成后仍可被发现。外部条目携带 `mode: 'external'`,不能打开子 Session 或接受后续消息。目录在创建时记录成员关系,不携带执行状态。`list_agents` 展示可继续的直接子级,其活跃状态为 `running` 或 `inactive`;参见[控制工具](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/tool-subagent-control/README.zh.md#list_agents)。
|
|
292
234
|
|
|
293
|
-
##
|
|
235
|
+
## 结果与后端句柄
|
|
294
236
|
|
|
295
|
-
|
|
237
|
+
SubagentResult 供程序消费方读取。activation 注册表保留外部后端句柄,直到释放完成。清理失败不会覆盖已捕获的执行结果:activation 结果与父级通知保留该结果,dispose 拒绝,而在线 subagent/end 事件报告 error。后端提供的诊断必须满足下述安全信息要求。
|
|
296
238
|
|
|
297
239
|
```ts type-equiv
|
|
298
240
|
/**
|
|
@@ -305,7 +247,7 @@ interface SubagentResult {
|
|
|
305
247
|
* are skipped. Without a non-empty message, the output is its accumulated
|
|
306
248
|
* assistant text stream, or `[]` when the child produced neither.
|
|
307
249
|
*/
|
|
308
|
-
readonly output: ContentBlock[]
|
|
250
|
+
readonly output: readonly ContentBlock[]
|
|
309
251
|
/**
|
|
310
252
|
* The structured result after a requested `outputSchema` was successfully
|
|
311
253
|
* satisfied. Requesting a schema does not guarantee presence: a provider can
|
|
@@ -327,8 +269,6 @@ interface SubagentResult {
|
|
|
327
269
|
}
|
|
328
270
|
```
|
|
329
271
|
|
|
330
|
-
`SubagentStopReason` 是一个[可合并扩展的派生联合类型](./core.md#the-map--derived-union-pattern)——后端可以添加变体,因此消费方应对已知 case 分支处理,将未知的终态原因视为失败:
|
|
331
|
-
|
|
332
272
|
```ts type-equiv
|
|
333
273
|
/**
|
|
334
274
|
* Why a subagent run ended. Merge-extensible (a backend may add variants);
|
|
@@ -350,33 +290,17 @@ interface SubagentStopReasonMap {
|
|
|
350
290
|
}
|
|
351
291
|
```
|
|
352
292
|
|
|
353
|
-
## 单次 run:`SubagentRun`
|
|
354
|
-
|
|
355
|
-
`SubagentRun` 是消费方持有的、指向一个已发布单次子 agent 的句柄——一次可 dispose 的前台委派,只有一个结果,绝不是持久化子 agent handle。发布后的提示词提交、轮次工作与基础设施故障归 `result` 所有。消费方 await 该结果并始终 dispose 该 run,直至完全停稳。子 agent 失败时以非 completed 的 stop reason resolve;只有无法表示的基础设施故障才会 reject。run 没有 steering,也没有恢复:可继续对话根本没有 run,因为继续执行管理器直接持有它们的 `AgentHandle`,并通过子 agent 自己的收件箱为每个轮次排序。
|
|
356
|
-
|
|
357
293
|
```ts type-equiv
|
|
358
294
|
/**
|
|
359
|
-
*
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
* continuation manager holds their `AgentHandle` directly and orders every
|
|
365
|
-
* turn through the child's own inbox.
|
|
295
|
+
* Backend execution handle owned directly by the activation registry.
|
|
296
|
+
* A result may become available before resource release; the manager always
|
|
297
|
+
* disposes the handle and awaits cleanup. Backend startup failures clean up
|
|
298
|
+
* partial resources before rejecting, while accepted execution failures settle
|
|
299
|
+
* through result.
|
|
366
300
|
*/
|
|
367
301
|
interface SubagentRun {
|
|
368
|
-
/**
|
|
369
|
-
* Parent-scoped run id. For a local run, this MUST equal the published child
|
|
370
|
-
* session id, whose `parentSession` records `request.parent.session.id`; a
|
|
371
|
-
* remote provider mints an id unique in the parent namespace.
|
|
372
|
-
*/
|
|
302
|
+
/** Provider-minted id, unique across all parents, providers, and local Sessions in this runtime. */
|
|
373
303
|
readonly id: SessionId
|
|
374
|
-
/**
|
|
375
|
-
* The exact published in-process child, or `undefined` for a remote run.
|
|
376
|
-
* When present, its id is {@link id}; the provider retains no ownership
|
|
377
|
-
* implication beyond the run's ordinary {@link dispose} contract.
|
|
378
|
-
*/
|
|
379
|
-
readonly localAgent: Agent | undefined
|
|
380
304
|
/**
|
|
381
305
|
* Resolves with the child's terminal {@link SubagentResult} when the run
|
|
382
306
|
* settles. Does NOT reject on a child-level failure — a model/transport
|
|
@@ -393,13 +317,9 @@ interface SubagentRun {
|
|
|
393
317
|
}
|
|
394
318
|
```
|
|
395
319
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
<a id="the-provider-contract-subagentprovider"></a>
|
|
320
|
+
## 提供方约定:SubagentProvider
|
|
399
321
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
每个提供方都是一个具名的子 agent 传输层,多个提供方可以共存。服务在 `start()` 之前校验请求的启动时能力,并拒绝在没有 `prepareContinuable` 的提供方上发起可继续 start。`inheritsParentContext` 仅描述对话种子注入(`fork`:true;`spawn` 和 `acp`:false),使消费方能生成准确的面向模型措辞,而不暗示继承了工具、服务或权限。如果某个提供方的一次性路由拥有静态的提供方自有默认值,它会公开可选且不可变的 `agentRouteDefaults`,使 Consumer 能够在预检前以正确基线合并模型与工具覆盖。
|
|
322
|
+
`SubagentManager` 统一管理启动、消息准入与执行生命周期。Spawn 与 Fork 提供用于本地 Agent 的独立创建输入。Codex、Claude Code、ACP 和 DSH SDK 提供一个执行句柄,不增加多轮能力。每条 activation 都是直接持有 AgentHandle 或 SubagentRun 的执行期记录。外部完成由句柄的 result promise 确定;inbox 与空闲准入仅属于本地执行。两条路径共用准入、容量、父子所有权、取消和释放机制。[包参考](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent/README.zh.md)说明组合与部署要求。
|
|
403
323
|
|
|
404
324
|
```ts type-equiv
|
|
405
325
|
/**
|
|
@@ -422,31 +342,28 @@ interface SubagentProvider {
|
|
|
422
342
|
*/
|
|
423
343
|
readonly inheritsParentContext: boolean
|
|
424
344
|
/**
|
|
425
|
-
* Optional static provider-owned provider/model route for
|
|
345
|
+
* Optional static provider-owned provider/model route for child Agent
|
|
426
346
|
* options. Consumers merge tool/model overrides over these values before
|
|
427
347
|
* preflight; providers whose route derives from the parent omit it. The value
|
|
428
348
|
* is detached immutable data and requires `agentOptions` support.
|
|
429
349
|
*/
|
|
430
350
|
readonly agentRouteDefaults?: Readonly<{ provider: string; model: string }>
|
|
431
351
|
/**
|
|
432
|
-
* Establish
|
|
352
|
+
* Establish one external execution and return its owned handle.
|
|
433
353
|
* The service has already validated that every requested start-time
|
|
434
|
-
* capability is supported
|
|
435
|
-
*
|
|
436
|
-
* initial turn. Before fulfillment, the provider owns setup and cleans any
|
|
437
|
-
* unpublished partial resources before rejecting. Ownership transfers on
|
|
354
|
+
* capability is supported. Before fulfillment, the provider owns setup and
|
|
355
|
+
* cleans any unpublished partial resources before rejecting. Ownership transfers on
|
|
438
356
|
* fulfillment; subsequent turn or infrastructure failure settles through
|
|
439
357
|
* the returned run. Distinct starts may overlap; cancellation, failure,
|
|
440
358
|
* result settlement, and disposal remain independent for each run.
|
|
441
359
|
*/
|
|
442
|
-
start(request: ResolvedSubagentStartRequest): Promise<SubagentRun>
|
|
360
|
+
start?(request: ResolvedSubagentStartRequest): Promise<SubagentRun>
|
|
443
361
|
/**
|
|
444
362
|
* OPTIONAL (continuable-creation capability): contribute the detached
|
|
445
363
|
* creation inputs that distinguish this provider's continuable children —
|
|
446
364
|
* only whether the child session is seeded with parent history. Method
|
|
447
|
-
* presence
|
|
448
|
-
*
|
|
449
|
-
* ordinary one-shot delegations.
|
|
365
|
+
* presence selects local activation execution. Providers without it execute
|
|
366
|
+
* through start and do not accept subsequent messages.
|
|
450
367
|
*
|
|
451
368
|
* This is the provider's ONLY participation in a continuable child. The
|
|
452
369
|
* continuation manager owns identity reservation, composition, Agent
|
|
@@ -459,14 +376,27 @@ interface SubagentProvider {
|
|
|
459
376
|
}
|
|
460
377
|
```
|
|
461
378
|
|
|
462
|
-
|
|
379
|
+
## 持久化枚举:`listChildren()`、`listDescendants()` 与其条目
|
|
463
380
|
|
|
464
|
-
|
|
381
|
+
模型侧的 `list_agents` 适配器将当前活动表示为 `running` 或 `inactive`。这些值不描述任务完成情况,也不保证 `send_message` 会成功。
|
|
465
382
|
|
|
466
|
-
|
|
383
|
+
`SubagentRuntime.listChildren(parentSessionId, signal?)` 通过优先使用在线 Session 的观察读取父会话的 `subagentCatalog` 视图,并在成功或失败时释放观察。它按父会话事件顺序返回直接子级条目,不读取子级日志,也不枚举 Session 语料库。查询失败直接传播;缺少目录投影时显式失败。浏览器条目从共享 projection store 派生成员关系,并从 Session 状态补充活动状态;control stream 推送完整目录更新。`listDescendants()` 递归读取这些目录,并从每个子级目录推导 `hasChildren`。[父目录 Agent Note](https://github.com/deepseek-ai/deepseek-harness/blob/master/.agents/notes/implemented/architecture/2026-09-01-parent-owned-subagent-catalog.zh.md) 说明创建、fork 隔离、排序和持久化成本。
|
|
384
|
+
|
|
385
|
+
`SubagentRuntime.listDescendants(rootSessionId)` 以稳定前序递归调用同一目录读取函数,保留每个父级的事件顺序。外部条目是没有本地 Session 的叶节点。一次性和未知模式条目仍是遍历节点;未知模式产生 `unsupported` 诊断。无法读取的子级目录产生 `corrupt` 或 `unavailable`,只停止该分支。根读取失败、服务或投影缺失、取消会使整个查询失败。每个可达目录只观察一次,并在下一次读取前释放;重复 id 和循环引用会被跳过。可达目录中不存在的 Session 不会被发现,包括普通 Session fork 及其下的子 agent。每行携带目录中的父级和相对根的深度:
|
|
386
|
+
|
|
387
|
+
```ts type-equiv
|
|
388
|
+
/** One catalog descendant with its direct parent and edge distance from the requested root. */
|
|
389
|
+
type SubagentDescendantListEntry = SubagentListEntry & {
|
|
390
|
+
/** Parent whose catalog contains this child. */
|
|
391
|
+
readonly parentId: SessionId
|
|
392
|
+
/** Edge distance from the requested root; direct children are `1`. */
|
|
393
|
+
readonly depth: number
|
|
394
|
+
}
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
<a id="the-terminal-result-subagentresult"></a>
|
|
467
399
|
|
|
468
|
-
- **委派深度**由持久 `SessionHeader.delegationDepth` 与可合并扩展的运行时字段 `AgentOptions.subagentDepth` 共同表示;缺失表示顶层深度为零,存在的较大值具有权威性。两个字段都归该 seam 所有——循环既不设置也不读取它们——因此进程内子 agent 会持久保存 parent 深度 + 1,冷恢复无法降低深度,而且每次 start 都会拒绝超出安全整数域、或高于已定义绝对 `request.maxDepth` 上限的派生深度。
|
|
469
|
-
- **Fork 种子注入**使用 [`CreateAgentOptions.seed`](./core.md#creation-and-ownership)(一个 `SessionEvent[]` 前缀,经由 `AgentLoop.createAgent` → `ctx.sessions.prepare({ seed })` 传递,与 `ctx.agents.resume()` 使用的原语相同)。fork 后端传入父级日志的一段*平衡的已完成轮次前缀*——父级事件直到并包括其最后一个 `turn/end`——因此种子从 0 连续,[invariants](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/runtime-diagnostics/invariants) 回放可以接受它(进行中的、未平衡的轮次被排除在外)。
|
|
470
400
|
|
|
471
401
|
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
472
402
|
|
|
@@ -496,19 +426,37 @@ Source: [`packages/subagent/tool-subagent/src/model-selection-settings.ts`](http
|
|
|
496
426
|
|
|
497
427
|
### `ctx.subagents` — `SubagentRuntime`
|
|
498
428
|
|
|
499
|
-
Named provider registry with
|
|
429
|
+
Named provider registry with managed activations, durable discovery, and local child messaging.
|
|
500
430
|
|
|
501
431
|
```ts cordis-catalog
|
|
502
432
|
/**
|
|
503
|
-
*
|
|
504
|
-
*
|
|
505
|
-
*
|
|
506
|
-
* failure rejects with no ids and rolls back the child entirely.
|
|
507
|
-
* @param spec - provider, delegation request, and caller cancellation.
|
|
508
|
-
* @returns the durable child id and the accepted prompt's message id.
|
|
509
|
-
* @throws when continuation services are unavailable or materialization fails.
|
|
433
|
+
* Resolve a delegation tool's depth policy against the current user setting.
|
|
434
|
+
* @param configured - Explicit tool limit, or provider-managed for external delegation.
|
|
435
|
+
* @returns The numeric limit, or undefined when the provider owns depth enforcement.
|
|
510
436
|
*/
|
|
511
|
-
|
|
437
|
+
resolveMaxDepth(configured?: number | 'provider-managed'): number | undefined
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* Start a local child under its reserved identity.
|
|
441
|
+
* @param spec - local task, reserved child id, and result recipient.
|
|
442
|
+
* @returns activation with its accepted initial message id.
|
|
443
|
+
*/
|
|
444
|
+
startActivation(spec: SubagentActivationSpec & { readonly childId: SessionId }): Promise<SubagentActivation & { readonly messageId: MessageId }>
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* Start a local or external child.
|
|
448
|
+
* @param spec - task, backend, and result recipient.
|
|
449
|
+
* @returns activation with a message id only for local children.
|
|
450
|
+
*/
|
|
451
|
+
startActivation(spec: SubagentActivationSpec): Promise<SubagentActivation>
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Join progressing descendants without cancelling them. Idle descendants whose
|
|
455
|
+
* inboxes require a later wake stay resident and do not delay host completion.
|
|
456
|
+
* @param parent - the exact parent whose descendant work is observed.
|
|
457
|
+
* @returns whether work was joined; hosts recheck parent idle after true.
|
|
458
|
+
*/
|
|
459
|
+
async waitForChildren(parent: Agent): Promise<boolean>
|
|
512
460
|
|
|
513
461
|
/**
|
|
514
462
|
* Steer one model-authored message to the sender's direct parent or direct
|
|
@@ -527,13 +475,13 @@ async startContinuable(spec: ContinuableStartSpec): Promise<ContinuableStart>
|
|
|
527
475
|
async sendMessage( sender: Agent, targetId: SessionId, content: ContentBlock[], options: SubagentSendMessageOptions, ): Promise<MessageId>
|
|
528
476
|
|
|
529
477
|
/**
|
|
530
|
-
* Interrupt one live
|
|
478
|
+
* Interrupt one live child's current execution under a human parent
|
|
531
479
|
* address or an exact live ancestor Agent. Fire-and-return: the cancel
|
|
532
480
|
* signal is issued before this returns, but the target may keep running
|
|
533
481
|
* until it observes the signal. Unclaimed pending inbox work, the Activation,
|
|
534
482
|
* and published descendants are preserved; claimed work is not requeued.
|
|
535
|
-
* Once the interrupted
|
|
536
|
-
* queue.
|
|
483
|
+
* Once the interrupted Agent is idle, a waking send resumes the parked FIFO
|
|
484
|
+
* queue. External backends stop their single execution. An absent target
|
|
537
485
|
* is an accepted no-op, as is a manager-less composition, which cannot own a
|
|
538
486
|
* live Activation.
|
|
539
487
|
* @param targetSessionId - the durable child session id to interrupt.
|
|
@@ -544,80 +492,58 @@ async sendMessage( sender: Agent, targetId: SessionId, content: ContentBlock[],
|
|
|
544
492
|
interrupt(targetSessionId: SessionId, authority: SubagentInterruptAuthority): void
|
|
545
493
|
|
|
546
494
|
/**
|
|
547
|
-
* Close
|
|
495
|
+
* Close subagent admission below exact live parent Agents, stop only their
|
|
548
496
|
* visible descendant Activations synchronously, then await admitted scoped
|
|
549
497
|
* materializations and release those forests child-first. The scoped cutoff
|
|
550
498
|
* lasts until each exact parent leaves the registry; unrelated parent trees
|
|
551
499
|
* remain live.
|
|
552
500
|
* @param parents - exact host-owned parent Agents entering teardown.
|
|
553
|
-
* @returns once every retained descendant
|
|
501
|
+
* @returns once every retained descendant activation released its execution handle.
|
|
554
502
|
* @throws an aggregate error after all branches settle when any failed.
|
|
555
503
|
*/
|
|
556
|
-
async
|
|
504
|
+
async drainDescendants(parents: readonly Agent[]): Promise<void>
|
|
557
505
|
|
|
558
506
|
/**
|
|
559
|
-
* Release selected resident
|
|
507
|
+
* Release selected resident direct children of one exact live
|
|
560
508
|
* parent. Other children of the same parent remain admitted and resident.
|
|
561
509
|
* Absent targets and a manager-less composition are accepted no-ops.
|
|
562
510
|
* @param parent - exact live direct parent authorizing the selected release.
|
|
563
511
|
* @param childIds - durable direct-child ids to release when resident.
|
|
564
|
-
* @returns once every selected
|
|
512
|
+
* @returns once every selected activation released its execution handle.
|
|
565
513
|
* @throws {SubagentError} `UNAUTHORIZED` when a resident target belongs to a
|
|
566
514
|
* different parent or the supplied parent identity is stale.
|
|
567
515
|
*/
|
|
568
|
-
async
|
|
516
|
+
async drainChildren(parent: Agent, childIds: readonly SessionId[]): Promise<void>
|
|
569
517
|
|
|
570
518
|
/**
|
|
571
|
-
*
|
|
572
|
-
*
|
|
573
|
-
*
|
|
574
|
-
*
|
|
575
|
-
*
|
|
576
|
-
*
|
|
577
|
-
*
|
|
578
|
-
* around each await. Read rejections that settle
|
|
579
|
-
* after an abort become a stable `SubagentError` with code `CANCELLED`.
|
|
580
|
-
* @param parentSessionId - parent session whose direct children are listed.
|
|
581
|
-
* @param signal - caller-owned cancellation forwarded to Session queries
|
|
582
|
-
* and observed around every read await.
|
|
583
|
-
* @returns children and per-child diagnostics ordered by `createdAt`, then id.
|
|
584
|
-
* @throws {@link SubagentError} when the projection registry or the session
|
|
585
|
-
* store is not mounted, or the caller cancels the listing.
|
|
519
|
+
* Read the parent's durable direct-child catalog without loading or resuming an Agent.
|
|
520
|
+
* The service owns and releases the live-preferred Session observation.
|
|
521
|
+
* @param parentSessionId - parent whose direct children are requested.
|
|
522
|
+
* @param signal - cancellation forwarded to the Session query.
|
|
523
|
+
* @returns catalog children in parent event order.
|
|
524
|
+
* @throws {@link SubagentError} when query or catalog projection is unavailable.
|
|
525
|
+
* @throws SessionQueryError when the parent cannot be read or the query is cancelled.
|
|
586
526
|
*/
|
|
587
|
-
listChildren(parentSessionId: SessionId, signal?: AbortSignal): Promise<
|
|
527
|
+
listChildren(parentSessionId: SessionId, signal?: AbortSignal): Promise<SubagentCatalogEntry[]>
|
|
588
528
|
|
|
589
529
|
/**
|
|
590
|
-
*
|
|
591
|
-
*
|
|
592
|
-
*
|
|
593
|
-
*
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
*
|
|
597
|
-
*
|
|
598
|
-
*
|
|
599
|
-
*
|
|
600
|
-
* @
|
|
601
|
-
*
|
|
602
|
-
* @throws {@link SubagentError}
|
|
530
|
+
* Recursively list reachable parent catalogs in stable pre-order, preserving
|
|
531
|
+
* each catalog's event order. Each row carries its catalog parent and depth;
|
|
532
|
+
* external children are leaves; one-shot and unknown-mode children remain
|
|
533
|
+
* traversal nodes. Unknown modes
|
|
534
|
+
* produce unsupported diagnostics. Unreadable child catalogs produce corrupt
|
|
535
|
+
* or unavailable diagnostics and stop only that branch. Root read failures,
|
|
536
|
+
* missing services or projections, and cancellation reject the whole listing.
|
|
537
|
+
* Each catalog is observed once and released before the next read. No Agent
|
|
538
|
+
* is loaded or resumed; Sessions absent from reachable catalogs are omitted.
|
|
539
|
+
* @param rootSessionId - session whose catalog starts descendant discovery.
|
|
540
|
+
* @param signal - cancellation forwarded to and checked around each catalog read.
|
|
541
|
+
* @returns children and branch diagnostics in parent-catalog pre-order.
|
|
542
|
+
* @throws {@link SubagentError} when listing dependencies are unavailable or the caller cancels.
|
|
543
|
+
* @throws SessionQueryError when the root catalog cannot be read.
|
|
603
544
|
*/
|
|
604
545
|
listDescendants(rootSessionId: SessionId, signal?: AbortSignal): Promise<SubagentDescendantListEntry[]>
|
|
605
546
|
|
|
606
|
-
/**
|
|
607
|
-
* Remote face of {@link listChildren} for one browser: the durable listing
|
|
608
|
-
* plus live Agent activity and the delivery-time parent availability hint.
|
|
609
|
-
* Parent availability is a hint; {@link prompt} performs the authoritative
|
|
610
|
-
* check. Named apart from the provider-name {@link list}, which owns the
|
|
611
|
-
* member.
|
|
612
|
-
* @param parentSessionId - parent session whose direct children are listed.
|
|
613
|
-
* @param signal - carrier cancellation forwarded to Session queries.
|
|
614
|
-
* @returns the catalog view for that parent.
|
|
615
|
-
* @throws {RemoteError} `gateway/bad-request` for an empty parent id,
|
|
616
|
-
* `gateway/cancelled` for an aborted read, `subagent/projections-unavailable` when
|
|
617
|
-
* the deployment has no projection registry, otherwise `gateway/internal`.
|
|
618
|
-
*/
|
|
619
|
-
@Remote('list') async remoteExportList(parentSessionId: SessionId, signal: AbortSignal): Promise<SubagentCatalog>
|
|
620
|
-
|
|
621
547
|
/**
|
|
622
548
|
* Deliver one browser-authored message to a continuable child through the
|
|
623
549
|
* exact live direct parent, retaining the caller-minted request identity and
|
|
@@ -627,6 +553,7 @@ listDescendants(rootSessionId: SessionId, signal?: AbortSignal): Promise<Subagen
|
|
|
627
553
|
* nearest step and retains the Agent loop's best-effort fallback semantics.
|
|
628
554
|
* Image parts are admitted and persisted through the attachment store
|
|
629
555
|
* before delivery, and the child's model must accept image input.
|
|
556
|
+
* Cold resume at capacity rejects with `subagent/delivery-unavailable`.
|
|
630
557
|
* @param request - durable address, delivery, minted identity, content, and optional browser zone.
|
|
631
558
|
* @param signal - carrier cancellation, owning the call until inbox acceptance.
|
|
632
559
|
* @returns the accepted message's inbox identity.
|
|
@@ -656,7 +583,8 @@ listDescendants(rootSessionId: SessionId, signal?: AbortSignal): Promise<Subagen
|
|
|
656
583
|
/**
|
|
657
584
|
* Register a provider under its name. Registration is effect-scoped and HMR
|
|
658
585
|
* safe; removing a provider blocks new starts but does not revoke runs that
|
|
659
|
-
* were already returned to their holders.
|
|
586
|
+
* were already returned to their holders. Providers without either execution
|
|
587
|
+
* method are rejected with UNSUPPORTED_CAPABILITY before registration.
|
|
660
588
|
* @param provider - the trusted provider implementation.
|
|
661
589
|
* @returns the exact Cordis effect disposer.
|
|
662
590
|
*/
|
|
@@ -674,20 +602,6 @@ getProvider(name: string): SubagentProvider | undefined
|
|
|
674
602
|
* @returns the registered names.
|
|
675
603
|
*/
|
|
676
604
|
list(): string[]
|
|
677
|
-
|
|
678
|
-
/**
|
|
679
|
-
* Establish a published child on the named provider. Capability and semantic
|
|
680
|
-
* checks run before delegation. Provider ownership lasts until its promise
|
|
681
|
-
* fulfills; a rejection therefore has no run for the caller to dispose and
|
|
682
|
-
* emits no run lifecycle events. Post-publication turn and infrastructure
|
|
683
|
-
* failures settle through the returned run.
|
|
684
|
-
* A catalog append failure disposes the run and handles its result rejection;
|
|
685
|
-
* the caller receives the catalog error even if disposal also fails.
|
|
686
|
-
* @param name - the provider to use.
|
|
687
|
-
* @param request - child label, prompt, parent, signal, and optional capabilities.
|
|
688
|
-
* @returns the published holder-owned run.
|
|
689
|
-
*/
|
|
690
|
-
async start(name: string, request: SubagentStartRequest): Promise<SubagentRun>
|
|
691
605
|
```
|
|
692
606
|
|
|
693
607
|
Types: [Agent](./core.md) · [ContentBlock](./llm-streaming.md) · [MessageId](./llm-streaming.md) · [SessionId](./core.md)
|
|
@@ -710,7 +624,6 @@ A published child settled. Scope-filtered dispatch uses the same delegating pare
|
|
|
710
624
|
* parent carrier as `subagent/start`, so the lifecycle pair reaches the
|
|
711
625
|
* same scoped audience.
|
|
712
626
|
* @param info - the run identity and terminal outcome.
|
|
713
|
-
* @dshScopeScan unsupported
|
|
714
627
|
* @mode emit
|
|
715
628
|
*/
|
|
716
629
|
'subagent/end'(this: Scoped<SubagentRuntime>, info: SubagentRunEndInfo): void
|
|
@@ -768,7 +681,6 @@ A provider established a published child. For in-process providers, `ctx.agents.
|
|
|
768
681
|
* parent-scoped listener observes only its own delegations. Paired with
|
|
769
682
|
* `subagent/end`.
|
|
770
683
|
* @param info - the provider and published child identity.
|
|
771
|
-
* @dshScopeScan unsupported
|
|
772
684
|
* @mode emit
|
|
773
685
|
*/
|
|
774
686
|
'subagent/start'(this: Scoped<SubagentRuntime>, info: SubagentRunInfo): void
|