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.md"
|
|
3
|
+
rawMarkdownPath: "en/reference/subsystems/subagent.md"
|
|
3
4
|
outline: [2,3]
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
#
|
|
7
|
+
# Subagents
|
|
7
8
|
|
|
8
|
-
The
|
|
9
|
+
The unified activation API manages local conversations and external executions.
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
## Capabilities and activation requests
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
Every backend uses startActivation. Capability flags validate request options; prepareContinuable selects local Agent creation, while start selects one external execution. The model-facing tool uses parent delivery. Workflow and code mode consumers can await caller results without injecting another parent message. Historical children with unavailable descriptors remain discoverable as `mode: 'unknown'` without granting continuation capabilities; the [package README](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent/README.md) defines catalog persistence.
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Two kinds of capability, discovered two ways
|
|
17
|
-
|
|
18
|
-
A provider advertises its **start-time** features on a static descriptor the service checks BEFORE a one-shot run exists; a request that needs one the provider lacks is rejected loud (`SubagentError('UNSUPPORTED_CAPABILITY')`), never accepted-then-ignored. Those flags describe only the one-shot [`start()`](#the-provider-contract-subagentprovider) path, where the provider composes the child. **Continuable** children are composed by the continuation manager itself, so they are gated by one optional method whose presence IS the capability, with TS narrowing as the discovery mechanism: [`SubagentProvider.prepareContinuable`](#the-provider-contract-subagentprovider).
|
|
15
|
+
Optional `request.cwd` selects the child's initial directory; relative paths resolve against the parent's current effective directory. Omitting it captures that directory at admission. Local child Sessions retain the parent's original project, and cold resume retains their logged directory state.
|
|
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` is the single cancellation channel before and after readiness. The [subagent composition-controls Agent Note](https://github.com/deepseek-ai/deepseek-harness/blob/master/.agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.md) owns the persona, live global-tool filter, absolute-depth, and visibility-not-authority rationale.
|
|
113
|
-
|
|
114
|
-
The caller-facing request does not carry catalog format details or continuation state. `SubagentRuntime.start()` resolves the detached one-shot descriptor after capability checks, then passes this provider-facing request to the selected transport; a continuable child never reaches `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
|
-
## Continuable children and activations
|
|
128
|
-
|
|
129
|
-
A **continuable background subagent** is one durable child Session with at most one process-local **Activation**, the period when a reconstructed child Agent is resident. An Activation is not a request, result, cancellation, or Task: it may execute many FIFO turns and stays resident while descendants it created are still running. The continuation manager owns activation admission, direct-parent authorization, the live ownership graph, cold resume, and child-first disposal; the Agent loop owns all turn ordering and execution. No continuable path creates a Task or an intermediate result-bearing wrapper.
|
|
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()` reserves the stable child id, snapshots the versioned `subagent/descriptor` payload, asks the named provider for its detached `ContinuableCreateSpec`, creates the child Agent through a private activation-owner scope, establishes any continuable-parent ownership, and submits the initial prompt. It resolves with `{ childId, messageId }` when inbox acceptance yields the message id — without waiting for the turn to start or for the message to enter the Session log. Every failure before that acceptance rejects with neither id, disposing any created handle and rolling back the Activation and parent ownership.
|
|
140
|
-
|
|
141
|
-
`SubagentRuntime.sendMessage()` is the sole model-authored message operation. It accepts the exact live sender plus a target id, permits only a direct parent or direct continuable child, derives sender attribution itself, and routes a direct-child target by Activation residency:
|
|
142
|
-
|
|
143
|
-
| Target Activation state | `sendMessage` |
|
|
144
|
-
|---|---|
|
|
145
|
-
| `running` | steer the nearest step in the same Activation |
|
|
146
|
-
| `waiting` | wake and steer the same Activation |
|
|
147
|
-
| no Activation | cold-resume a new Activation, then steer it |
|
|
148
|
-
|
|
149
|
-
`running` means the Agent has an active driver or maintenance task; `waiting` means no Agent activity is active but its Inbox is nonempty or it owns at least one child Activation that has not completed disposal; `settled` means no Agent activity is active, the Inbox is empty, and every owned child is disposed, at which point the manager disposes the [`AgentHandle`](./core.md#creation-and-ownership) and removes the Activation. The manager derives these internal conditions from `Agent.whenIdle()`, `Agent.inbox.hasPending`, the owned-child set, and an Activation generation that invalidates stale observations, rather than maintaining a second execution state machine. After the final Session flush, the child-lock decision uses the synchronous task entry of `Agent.runMaintenance()` to claim the idle phase and close admission in the same JavaScript turn. This conservative rule does not distinguish delivery modes: context parked by `Agent.inject()` can keep an idle Activation and its live ancestors resident until a waking delivery claims it, a queue mutation removes it, or manager teardown discards it.
|
|
150
|
-
|
|
151
|
-
The Agent inbox is the only queue. Every Agent message uses `Agent.steer()`: an idle target starts a turn, while a running target claims it at the nearest step boundary. The browser `subagent.prompt` Remote separately carries `delivery: 'queue' | 'steer'` through the same internal admission path; Queue opens a later FIFO turn, while Steer retains the Agent loop's best-effort nearest-step behavior and the message's human source. Successful delivery returns the accepted `MessageId`; the existing `agent/inbox/inserted`, `agent/inbox/claimed`, and `agent/inbox/discarded` events remain the message-lifecycle observations, and the continuation layer defines no second queue.
|
|
152
|
-
|
|
153
|
-
Authority comes from the exact live sender. Parent-to-child delivery requires the target's `SessionHeader.parentSession` to name the sender; child-to-parent delivery requires the sender's resident Activation to name the target. Siblings, ancestors beyond one edge, self-targets, stale Agent objects, and one-shot children are rejected. Each accepted message is framed as `Agent <sender-id> sent a message:` and records `AgentMessageSource`; provenance records the sender but grants no authority.
|
|
154
|
-
|
|
155
|
-
For `startContinuable()`, `sendMessage()`, and browser prompt delivery, the caller signal owns lookup, materialization, and admission only until inbox acceptance. Afterwards the manager owns the Activation independently: later caller cancellation neither cancels the accepted turn nor disposes the child. The public subagent service exposes no caller-selected Agent-message scheduling; browser human Queue and Steer remain internal adapter choices.
|
|
156
|
-
|
|
157
|
-
Live queue occurrence mutation remains in the Session domain. `session.updateQueue` admits ordinary Edit, Remove, and QueueDock Steer for a live subagent-owned Agent only when its current projected identity is continuable and its descriptor sequence is in that child's own non-seed suffix. The identity projection folds descriptors last-wins so a child descriptor supersedes descriptors retained from fork lineage; the own-suffix sequence check prevents a seed-only ancestor identity from authorizing mutation. One-shot, missing, unknown, corrupt, or cold children remain rejected, and queue mutation never cold-resumes a child. The target Session id is the human authority for these mutations, including pending `nextStep` steering or injected context. Steer requires a queued `MessageId` and an Agent that reports running when the command begins; cancellation after admission uses the Agent's accepted waking `nextTurn` fallback. Edit rewrites content under the same `MessageId`, and both Edit and Steer complete their Inbox work synchronously, so settlement observes only the final state. `agent/inbox/claimed` and `agent/inbox/discarded` wake the watcher to re-read whether any pending occurrence remains; this lets direct Agent delivery resume parked work and lets removing the last parked occurrence settle an idle child. The [human inbox-control Agent Note](https://github.com/deepseek-ai/deepseek-harness/blob/master/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.md) owns these semantics.
|
|
158
|
-
|
|
159
|
-
`SubagentRuntime.interrupt(targetSessionId, authority)` is the one public stop: it authorizes synchronously, issues `Agent.cancel(cause, { keepInbox: true })` on the live target, and returns without awaiting quiescence. The Activation, its unclaimed pending inbox work, and published descendants are untouched; work already claimed into the interrupted turn is not requeued. Once the interrupted driver is idle, a waking send resumes the parked FIFO queue. An absent target — unknown, one-shot, or already settled — and a manager-less composition are accepted no-ops. For a live target, a mismatched parent address or caller outside its live ancestry rejects with `UNAUTHORIZED`; stale ancestor objects and self-targeting ancestor requests reject before target lookup.
|
|
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
|
-
Every Activation owns its `AgentHandle` and an `ownedChildren: Set<SessionId>`; because one Session has at most one live Activation, the child Session id identifies the live child without another runtime-incarnation reference. Starting a child or submitting parent-originated work registers the child in a continuation-managed parent's set before the child can run, and that parent cannot settle while the set is non-empty. A top-level or other non-continuation Agent has no Activation and stays outside the waiting graph. Child release happens only after the child has no active Agent work, its Inbox is empty, every child of that child is disposed, the best-effort final session flush settles, and the child's `AgentHandle` completes disposal.
|
|
173
|
-
|
|
174
|
-
Final settlement awaits `ctx.sessions.flush(session)` but ignores its participation boolean because an arbitrary listener cannot prove that a persistence backend stored the state. Rejection is logged without failing the Activation, and the manager still disposes the handle and releases ownership; the persisted child state may then be missing or stale on a later resume. Manager unload invokes an internal manager-wide drain that closes admission and disposes every live forest; `drainContinuableDescendants(parents)` closes admission only below exact live host-owned Agents and disposes their continuable descendants while unrelated forests remain live. Both await already-admitted materializations in their scope, propagate cancellation top-down, release handles child-first, and await every selected branch despite individual failures. Durable child Sessions survive that process-local teardown.
|
|
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
|
+
## Local children and activations
|
|
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
|
-
```
|
|
204
|
-
|
|
205
|
-
When a resident Activation settles, the manager delivers one notice to the child's durable direct parent describing how that epoch ended and carrying its final assistant content. That delivery is unconditional for every child whose id a caller received, happens before the ownership release that would let the parent be judged settled, and reaches a resident parent through the same waking Agent delivery as an Agent message. A parent whose own lineage is already tearing down receives it without a wake, because waking an idle Agent starts a turn rather than queueing work. Its provenance is a distinct kind so a transcript never presents a runtime account as something the child wrote.
|
|
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
|
-
```
|
|
134
|
+
Spawn alone supports an independent `agentPreset`; omission and fork inherit the parent's active composition. The [child preset rules](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent/README.md#restoring-child-composition) define explicit selection, event ordering, and historical restoration.
|
|
225
135
|
|
|
226
|
-
|
|
136
|
+
A local child has a durable Session and at most one live activation. The manager reserves identity and capacity, prepares the child through its backend, and owns input admission, cold resume, and child-first disposal. The activation result settles after resource release and completion notification. Disposal reports cleanup failure separately without replacing a captured result. Structured capture closes input for that activation; a later cold resume does not inherit the output schema.
|
|
227
137
|
|
|
228
138
|
```ts type-equiv
|
|
229
139
|
/**
|
|
@@ -234,6 +144,8 @@ The provider participates only in preparing the initial creation spec, where `sp
|
|
|
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,34 +175,66 @@ interface ContinuableCreateSpec {
|
|
|
263
175
|
}
|
|
264
176
|
```
|
|
265
177
|
|
|
266
|
-
|
|
178
|
+
## Messages and interruption
|
|
267
179
|
|
|
268
|
-
|
|
180
|
+
sendMessage authorizes the exact live sender and permits only adjacent local agents. Running children receive steering input; absent continuable children resume from persistence. External executions reject follow-ups. Both local and external executions automatically report their final text, structured result, diagnostic, and status in the parent settlement notice. Local children can also send messages through send_message. caller delivery suppresses settlement notices. drainDescendants and drainChildren await owned work teardown for local and external activations.
|
|
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
|
+
## Durable enumeration
|
|
232
|
+
|
|
233
|
+
`listChildren` reads the parent-owned catalog of all local children and parent-delivery external children. Caller-delivery external executions leave membership and result collection to their caller; local workflow children remain discoverable after completion. External entries carry `mode: 'external'` and cannot open a child Session or accept follow-ups. Catalog entries record membership at creation without execution status. `list_agents` exposes direct continuable children with `running` or `inactive` activity; see the [control tool](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/tool-subagent-control/README.md#list_agents).
|
|
290
234
|
|
|
291
|
-
##
|
|
235
|
+
## Results and backend handles
|
|
292
236
|
|
|
293
|
-
|
|
237
|
+
SubagentResult is available to program consumers. The activation registry retains the external backend handle until disposal completes. A cleanup failure does not replace a captured execution result: the activation result and parent notice retain it, while dispose rejects and the live subagent/end event reports error. Backend-owned diagnostics must satisfy the safe-detail requirements below.
|
|
294
238
|
|
|
295
239
|
```ts type-equiv
|
|
296
240
|
/**
|
|
@@ -303,7 +247,7 @@ interface SubagentResult {
|
|
|
303
247
|
* are skipped. Without a non-empty message, the output is its accumulated
|
|
304
248
|
* assistant text stream, or `[]` when the child produced neither.
|
|
305
249
|
*/
|
|
306
|
-
readonly output: ContentBlock[]
|
|
250
|
+
readonly output: readonly ContentBlock[]
|
|
307
251
|
/**
|
|
308
252
|
* The structured result after a requested `outputSchema` was successfully
|
|
309
253
|
* satisfied. Requesting a schema does not guarantee presence: a provider can
|
|
@@ -325,8 +269,6 @@ interface SubagentResult {
|
|
|
325
269
|
}
|
|
326
270
|
```
|
|
327
271
|
|
|
328
|
-
`SubagentStopReason` is a [merge-extensible derived union](./core.md#the-map--derived-union-pattern) — a backend may add variants, so consumers branch on the known cases and treat an unknown terminal reason as a failure:
|
|
329
|
-
|
|
330
272
|
```ts type-equiv
|
|
331
273
|
/**
|
|
332
274
|
* Why a subagent run ended. Merge-extensible (a backend may add variants);
|
|
@@ -348,33 +290,17 @@ interface SubagentStopReasonMap {
|
|
|
348
290
|
}
|
|
349
291
|
```
|
|
350
292
|
|
|
351
|
-
## A one-shot run: `SubagentRun`
|
|
352
|
-
|
|
353
|
-
`SubagentRun` is the consumer-owned handle for a published one-shot child — one disposable foreground delegation with one result, never a durable child handle. Prompt submission, turn work, and infrastructure faults after publication belong to `result`. Consumers await that result and always dispose the run to reach quiescence. Child failures resolve with a non-completed stop reason; only unrepresentable infrastructure faults reject. A run has no steering and no resume: continuable conversations have no run at all, because the continuation manager holds their `AgentHandle` directly and orders every turn through the child's own inbox.
|
|
354
|
-
|
|
355
293
|
```ts type-equiv
|
|
356
294
|
/**
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
* continuation manager holds their `AgentHandle` directly and orders every
|
|
363
|
-
* 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.
|
|
364
300
|
*/
|
|
365
301
|
interface SubagentRun {
|
|
366
|
-
/**
|
|
367
|
-
* Parent-scoped run id. For a local run, this MUST equal the published child
|
|
368
|
-
* session id, whose `parentSession` records `request.parent.session.id`; a
|
|
369
|
-
* remote provider mints an id unique in the parent namespace.
|
|
370
|
-
*/
|
|
302
|
+
/** Provider-minted id, unique across all parents, providers, and local Sessions in this runtime. */
|
|
371
303
|
readonly id: SessionId
|
|
372
|
-
/**
|
|
373
|
-
* The exact published in-process child, or `undefined` for a remote run.
|
|
374
|
-
* When present, its id is {@link id}; the provider retains no ownership
|
|
375
|
-
* implication beyond the run's ordinary {@link dispose} contract.
|
|
376
|
-
*/
|
|
377
|
-
readonly localAgent: Agent | undefined
|
|
378
304
|
/**
|
|
379
305
|
* Resolves with the child's terminal {@link SubagentResult} when the run
|
|
380
306
|
* settles. Does NOT reject on a child-level failure — a model/transport
|
|
@@ -391,11 +317,9 @@ interface SubagentRun {
|
|
|
391
317
|
}
|
|
392
318
|
```
|
|
393
319
|
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
## The provider contract: `SubagentProvider`
|
|
320
|
+
## The provider contract: SubagentProvider
|
|
397
321
|
|
|
398
|
-
|
|
322
|
+
`SubagentManager` owns startup, message admission, and execution lifetimes. Spawn and Fork contribute detached creation inputs for local Agents. Codex, Claude Code, ACP, and DSH SDK contribute one execution handle; they do not gain multiple turns. Each activation is an execution record that directly retains its AgentHandle or SubagentRun. External completion follows the handle’s result promise; inbox and idle admission belong only to local execution. Both paths share admission, capacity, parent ownership, cancellation, and disposal. The [package reference](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent/README.md) describes composition and deployment requirements.
|
|
399
323
|
|
|
400
324
|
```ts type-equiv
|
|
401
325
|
/**
|
|
@@ -418,31 +342,28 @@ interface SubagentProvider {
|
|
|
418
342
|
*/
|
|
419
343
|
readonly inheritsParentContext: boolean
|
|
420
344
|
/**
|
|
421
|
-
* Optional static provider-owned provider/model route for
|
|
345
|
+
* Optional static provider-owned provider/model route for child Agent
|
|
422
346
|
* options. Consumers merge tool/model overrides over these values before
|
|
423
347
|
* preflight; providers whose route derives from the parent omit it. The value
|
|
424
348
|
* is detached immutable data and requires `agentOptions` support.
|
|
425
349
|
*/
|
|
426
350
|
readonly agentRouteDefaults?: Readonly<{ provider: string; model: string }>
|
|
427
351
|
/**
|
|
428
|
-
* Establish
|
|
352
|
+
* Establish one external execution and return its owned handle.
|
|
429
353
|
* The service has already validated that every requested start-time
|
|
430
|
-
* capability is supported
|
|
431
|
-
*
|
|
432
|
-
* initial turn. Before fulfillment, the provider owns setup and cleans any
|
|
433
|
-
* 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
|
|
434
356
|
* fulfillment; subsequent turn or infrastructure failure settles through
|
|
435
357
|
* the returned run. Distinct starts may overlap; cancellation, failure,
|
|
436
358
|
* result settlement, and disposal remain independent for each run.
|
|
437
359
|
*/
|
|
438
|
-
start(request: ResolvedSubagentStartRequest): Promise<SubagentRun>
|
|
360
|
+
start?(request: ResolvedSubagentStartRequest): Promise<SubagentRun>
|
|
439
361
|
/**
|
|
440
362
|
* OPTIONAL (continuable-creation capability): contribute the detached
|
|
441
363
|
* creation inputs that distinguish this provider's continuable children —
|
|
442
364
|
* only whether the child session is seeded with parent history. Method
|
|
443
|
-
* presence
|
|
444
|
-
*
|
|
445
|
-
* ordinary one-shot delegations.
|
|
365
|
+
* presence selects local activation execution. Providers without it execute
|
|
366
|
+
* through start and do not accept subsequent messages.
|
|
446
367
|
*
|
|
447
368
|
* This is the provider's ONLY participation in a continuable child. The
|
|
448
369
|
* continuation manager owns identity reservation, composition, Agent
|
|
@@ -455,14 +376,25 @@ interface SubagentProvider {
|
|
|
455
376
|
}
|
|
456
377
|
```
|
|
457
378
|
|
|
458
|
-
|
|
379
|
+
## Durable enumeration: `listChildren()`, `listDescendants()`, and their entries
|
|
459
380
|
|
|
460
|
-
|
|
381
|
+
The model-facing `list_agents` adapter reports current activity as `running` or `inactive`. These values do not describe task completion or guarantee that `send_message` will succeed.
|
|
382
|
+
|
|
383
|
+
`SubagentRuntime.listChildren(parentSessionId, signal?)` reads the parent's `subagentCatalog` view through a live-preferred Session observation and releases that observation on success or failure. It returns direct-child entries in parent event order without reading child logs or enumerating the Session corpus. Query failures propagate; a missing catalog projection fails explicitly. Browser rows derive membership from the shared projection store and add activity from Session status; the control stream pushes complete catalog updates. `listDescendants()` recursively reads those catalogs and derives `hasChildren` from each child catalog. [The parent-catalog Agent Note](https://github.com/deepseek-ai/deepseek-harness/blob/master/.agents/notes/implemented/architecture/2026-09-01-parent-owned-subagent-catalog.md) owns creation, fork isolation, ordering, and persistence costs.
|
|
384
|
+
|
|
385
|
+
`SubagentRuntime.listDescendants(rootSessionId)` recursively calls the same catalog reader in stable pre-order, preserving each parent's event order. External entries are leaves without local Sessions. One-shot and unknown-mode entries remain traversal nodes; unknown modes produce `unsupported` diagnostics. An unreadable child catalog produces `corrupt` or `unavailable` and stops only that branch. Root read failures, missing services or projections, and cancellation reject the listing. Each reachable catalog is observed once and released before the next read; repeated ids and cycles are skipped. Sessions absent from reachable catalogs are not discovered, including ordinary Session forks and any subagents below those forks. Each row carries its catalog parent and root-relative depth:
|
|
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
|
+
```
|
|
461
396
|
|
|
462
|
-
The spawn and fork backends create an ordinary one-shot agent through `parent.ctx`, pass cancellation into core creation, and dispose through `AgentHandle`; a continuable child is instead created by the continuation manager through its own activation-owner scope. Provider removal blocks new starts without revoking accepted runs. Each child gets a new flat scope rather than inheriting parent registrations. Depth and fork seeding reuse existing agent and session vocabulary:
|
|
463
397
|
|
|
464
|
-
- **Delegation depth** is durable `SessionHeader.delegationDepth` plus the merge-extensible runtime field `AgentOptions.subagentDepth`; absence means top-level depth zero, and the greater present value is authoritative. The seam owns both fields — the loop neither sets nor reads them — so an in-process child persists parent depth + 1, cold resume cannot lower it, and every start rejects a derived depth outside the safe-integer domain or above a defined absolute `request.maxDepth` cap.
|
|
465
|
-
- **Fork seeding** uses [`CreateAgentOptions.seed`](./core.md#creation-and-ownership) (a `SessionEvent[]` prefix threaded through `AgentLoop.createAgent` → `ctx.sessions.prepare({ seed })`, the same primitive `ctx.agents.resume()` uses). The fork backend passes a *balanced completed-turn prefix* of the parent's log — the parent's events up to and including its last `turn/end` — so the seed is contiguous-from-0 and the [invariants](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/runtime-diagnostics/invariants) replay accepts it (the in-flight, unbalanced turn is excluded).
|
|
466
398
|
|
|
467
399
|
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
468
400
|
|
|
@@ -492,19 +424,37 @@ Source: [`packages/subagent/tool-subagent/src/model-selection-settings.ts`](http
|
|
|
492
424
|
|
|
493
425
|
### `ctx.subagents` — `SubagentRuntime`
|
|
494
426
|
|
|
495
|
-
Named provider registry with
|
|
427
|
+
Named provider registry with managed activations, durable discovery, and local child messaging.
|
|
496
428
|
|
|
497
429
|
```ts cordis-catalog
|
|
498
430
|
/**
|
|
499
|
-
*
|
|
500
|
-
*
|
|
501
|
-
*
|
|
502
|
-
* failure rejects with no ids and rolls back the child entirely.
|
|
503
|
-
* @param spec - provider, delegation request, and caller cancellation.
|
|
504
|
-
* @returns the durable child id and the accepted prompt's message id.
|
|
505
|
-
* @throws when continuation services are unavailable or materialization fails.
|
|
431
|
+
* Resolve a delegation tool's depth policy against the current user setting.
|
|
432
|
+
* @param configured - Explicit tool limit, or provider-managed for external delegation.
|
|
433
|
+
* @returns The numeric limit, or undefined when the provider owns depth enforcement.
|
|
506
434
|
*/
|
|
507
|
-
|
|
435
|
+
resolveMaxDepth(configured?: number | 'provider-managed'): number | undefined
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Start a local child under its reserved identity.
|
|
439
|
+
* @param spec - local task, reserved child id, and result recipient.
|
|
440
|
+
* @returns activation with its accepted initial message id.
|
|
441
|
+
*/
|
|
442
|
+
startActivation(spec: SubagentActivationSpec & { readonly childId: SessionId }): Promise<SubagentActivation & { readonly messageId: MessageId }>
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Start a local or external child.
|
|
446
|
+
* @param spec - task, backend, and result recipient.
|
|
447
|
+
* @returns activation with a message id only for local children.
|
|
448
|
+
*/
|
|
449
|
+
startActivation(spec: SubagentActivationSpec): Promise<SubagentActivation>
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Join progressing descendants without cancelling them. Idle descendants whose
|
|
453
|
+
* inboxes require a later wake stay resident and do not delay host completion.
|
|
454
|
+
* @param parent - the exact parent whose descendant work is observed.
|
|
455
|
+
* @returns whether work was joined; hosts recheck parent idle after true.
|
|
456
|
+
*/
|
|
457
|
+
async waitForChildren(parent: Agent): Promise<boolean>
|
|
508
458
|
|
|
509
459
|
/**
|
|
510
460
|
* Steer one model-authored message to the sender's direct parent or direct
|
|
@@ -523,13 +473,13 @@ async startContinuable(spec: ContinuableStartSpec): Promise<ContinuableStart>
|
|
|
523
473
|
async sendMessage( sender: Agent, targetId: SessionId, content: ContentBlock[], options: SubagentSendMessageOptions, ): Promise<MessageId>
|
|
524
474
|
|
|
525
475
|
/**
|
|
526
|
-
* Interrupt one live
|
|
476
|
+
* Interrupt one live child's current execution under a human parent
|
|
527
477
|
* address or an exact live ancestor Agent. Fire-and-return: the cancel
|
|
528
478
|
* signal is issued before this returns, but the target may keep running
|
|
529
479
|
* until it observes the signal. Unclaimed pending inbox work, the Activation,
|
|
530
480
|
* and published descendants are preserved; claimed work is not requeued.
|
|
531
|
-
* Once the interrupted
|
|
532
|
-
* queue.
|
|
481
|
+
* Once the interrupted Agent is idle, a waking send resumes the parked FIFO
|
|
482
|
+
* queue. External backends stop their single execution. An absent target
|
|
533
483
|
* is an accepted no-op, as is a manager-less composition, which cannot own a
|
|
534
484
|
* live Activation.
|
|
535
485
|
* @param targetSessionId - the durable child session id to interrupt.
|
|
@@ -540,80 +490,58 @@ async sendMessage( sender: Agent, targetId: SessionId, content: ContentBlock[],
|
|
|
540
490
|
interrupt(targetSessionId: SessionId, authority: SubagentInterruptAuthority): void
|
|
541
491
|
|
|
542
492
|
/**
|
|
543
|
-
* Close
|
|
493
|
+
* Close subagent admission below exact live parent Agents, stop only their
|
|
544
494
|
* visible descendant Activations synchronously, then await admitted scoped
|
|
545
495
|
* materializations and release those forests child-first. The scoped cutoff
|
|
546
496
|
* lasts until each exact parent leaves the registry; unrelated parent trees
|
|
547
497
|
* remain live.
|
|
548
498
|
* @param parents - exact host-owned parent Agents entering teardown.
|
|
549
|
-
* @returns once every retained descendant
|
|
499
|
+
* @returns once every retained descendant activation released its execution handle.
|
|
550
500
|
* @throws an aggregate error after all branches settle when any failed.
|
|
551
501
|
*/
|
|
552
|
-
async
|
|
502
|
+
async drainDescendants(parents: readonly Agent[]): Promise<void>
|
|
553
503
|
|
|
554
504
|
/**
|
|
555
|
-
* Release selected resident
|
|
505
|
+
* Release selected resident direct children of one exact live
|
|
556
506
|
* parent. Other children of the same parent remain admitted and resident.
|
|
557
507
|
* Absent targets and a manager-less composition are accepted no-ops.
|
|
558
508
|
* @param parent - exact live direct parent authorizing the selected release.
|
|
559
509
|
* @param childIds - durable direct-child ids to release when resident.
|
|
560
|
-
* @returns once every selected
|
|
510
|
+
* @returns once every selected activation released its execution handle.
|
|
561
511
|
* @throws {SubagentError} `UNAUTHORIZED` when a resident target belongs to a
|
|
562
512
|
* different parent or the supplied parent identity is stale.
|
|
563
513
|
*/
|
|
564
|
-
async
|
|
514
|
+
async drainChildren(parent: Agent, childIds: readonly SessionId[]): Promise<void>
|
|
565
515
|
|
|
566
516
|
/**
|
|
567
|
-
*
|
|
568
|
-
*
|
|
569
|
-
*
|
|
570
|
-
*
|
|
571
|
-
*
|
|
572
|
-
*
|
|
573
|
-
*
|
|
574
|
-
* around each await. Read rejections that settle
|
|
575
|
-
* after an abort become a stable `SubagentError` with code `CANCELLED`.
|
|
576
|
-
* @param parentSessionId - parent session whose direct children are listed.
|
|
577
|
-
* @param signal - caller-owned cancellation forwarded to Session queries
|
|
578
|
-
* and observed around every read await.
|
|
579
|
-
* @returns children and per-child diagnostics ordered by `createdAt`, then id.
|
|
580
|
-
* @throws {@link SubagentError} when the projection registry or the session
|
|
581
|
-
* store is not mounted, or the caller cancels the listing.
|
|
517
|
+
* Read the parent's durable direct-child catalog without loading or resuming an Agent.
|
|
518
|
+
* The service owns and releases the live-preferred Session observation.
|
|
519
|
+
* @param parentSessionId - parent whose direct children are requested.
|
|
520
|
+
* @param signal - cancellation forwarded to the Session query.
|
|
521
|
+
* @returns catalog children in parent event order.
|
|
522
|
+
* @throws {@link SubagentError} when query or catalog projection is unavailable.
|
|
523
|
+
* @throws SessionQueryError when the parent cannot be read or the query is cancelled.
|
|
582
524
|
*/
|
|
583
|
-
listChildren(parentSessionId: SessionId, signal?: AbortSignal): Promise<
|
|
525
|
+
listChildren(parentSessionId: SessionId, signal?: AbortSignal): Promise<SubagentCatalogEntry[]>
|
|
584
526
|
|
|
585
527
|
/**
|
|
586
|
-
*
|
|
587
|
-
*
|
|
588
|
-
*
|
|
589
|
-
*
|
|
590
|
-
*
|
|
591
|
-
*
|
|
592
|
-
*
|
|
593
|
-
*
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
* @
|
|
597
|
-
*
|
|
598
|
-
* @throws {@link SubagentError}
|
|
528
|
+
* Recursively list reachable parent catalogs in stable pre-order, preserving
|
|
529
|
+
* each catalog's event order. Each row carries its catalog parent and depth;
|
|
530
|
+
* external children are leaves; one-shot and unknown-mode children remain
|
|
531
|
+
* traversal nodes. Unknown modes
|
|
532
|
+
* produce unsupported diagnostics. Unreadable child catalogs produce corrupt
|
|
533
|
+
* or unavailable diagnostics and stop only that branch. Root read failures,
|
|
534
|
+
* missing services or projections, and cancellation reject the whole listing.
|
|
535
|
+
* Each catalog is observed once and released before the next read. No Agent
|
|
536
|
+
* is loaded or resumed; Sessions absent from reachable catalogs are omitted.
|
|
537
|
+
* @param rootSessionId - session whose catalog starts descendant discovery.
|
|
538
|
+
* @param signal - cancellation forwarded to and checked around each catalog read.
|
|
539
|
+
* @returns children and branch diagnostics in parent-catalog pre-order.
|
|
540
|
+
* @throws {@link SubagentError} when listing dependencies are unavailable or the caller cancels.
|
|
541
|
+
* @throws SessionQueryError when the root catalog cannot be read.
|
|
599
542
|
*/
|
|
600
543
|
listDescendants(rootSessionId: SessionId, signal?: AbortSignal): Promise<SubagentDescendantListEntry[]>
|
|
601
544
|
|
|
602
|
-
/**
|
|
603
|
-
* Remote face of {@link listChildren} for one browser: the durable listing
|
|
604
|
-
* plus live Agent activity and the delivery-time parent availability hint.
|
|
605
|
-
* Parent availability is a hint; {@link prompt} performs the authoritative
|
|
606
|
-
* check. Named apart from the provider-name {@link list}, which owns the
|
|
607
|
-
* member.
|
|
608
|
-
* @param parentSessionId - parent session whose direct children are listed.
|
|
609
|
-
* @param signal - carrier cancellation forwarded to Session queries.
|
|
610
|
-
* @returns the catalog view for that parent.
|
|
611
|
-
* @throws {RemoteError} `gateway/bad-request` for an empty parent id,
|
|
612
|
-
* `gateway/cancelled` for an aborted read, `subagent/projections-unavailable` when
|
|
613
|
-
* the deployment has no projection registry, otherwise `gateway/internal`.
|
|
614
|
-
*/
|
|
615
|
-
@Remote('list') async remoteExportList(parentSessionId: SessionId, signal: AbortSignal): Promise<SubagentCatalog>
|
|
616
|
-
|
|
617
545
|
/**
|
|
618
546
|
* Deliver one browser-authored message to a continuable child through the
|
|
619
547
|
* exact live direct parent, retaining the caller-minted request identity and
|
|
@@ -623,6 +551,7 @@ listDescendants(rootSessionId: SessionId, signal?: AbortSignal): Promise<Subagen
|
|
|
623
551
|
* nearest step and retains the Agent loop's best-effort fallback semantics.
|
|
624
552
|
* Image parts are admitted and persisted through the attachment store
|
|
625
553
|
* before delivery, and the child's model must accept image input.
|
|
554
|
+
* Cold resume at capacity rejects with `subagent/delivery-unavailable`.
|
|
626
555
|
* @param request - durable address, delivery, minted identity, content, and optional browser zone.
|
|
627
556
|
* @param signal - carrier cancellation, owning the call until inbox acceptance.
|
|
628
557
|
* @returns the accepted message's inbox identity.
|
|
@@ -652,7 +581,8 @@ listDescendants(rootSessionId: SessionId, signal?: AbortSignal): Promise<Subagen
|
|
|
652
581
|
/**
|
|
653
582
|
* Register a provider under its name. Registration is effect-scoped and HMR
|
|
654
583
|
* safe; removing a provider blocks new starts but does not revoke runs that
|
|
655
|
-
* were already returned to their holders.
|
|
584
|
+
* were already returned to their holders. Providers without either execution
|
|
585
|
+
* method are rejected with UNSUPPORTED_CAPABILITY before registration.
|
|
656
586
|
* @param provider - the trusted provider implementation.
|
|
657
587
|
* @returns the exact Cordis effect disposer.
|
|
658
588
|
*/
|
|
@@ -670,20 +600,6 @@ getProvider(name: string): SubagentProvider | undefined
|
|
|
670
600
|
* @returns the registered names.
|
|
671
601
|
*/
|
|
672
602
|
list(): string[]
|
|
673
|
-
|
|
674
|
-
/**
|
|
675
|
-
* Establish a published child on the named provider. Capability and semantic
|
|
676
|
-
* checks run before delegation. Provider ownership lasts until its promise
|
|
677
|
-
* fulfills; a rejection therefore has no run for the caller to dispose and
|
|
678
|
-
* emits no run lifecycle events. Post-publication turn and infrastructure
|
|
679
|
-
* failures settle through the returned run.
|
|
680
|
-
* A catalog append failure disposes the run and handles its result rejection;
|
|
681
|
-
* the caller receives the catalog error even if disposal also fails.
|
|
682
|
-
* @param name - the provider to use.
|
|
683
|
-
* @param request - child label, prompt, parent, signal, and optional capabilities.
|
|
684
|
-
* @returns the published holder-owned run.
|
|
685
|
-
*/
|
|
686
|
-
async start(name: string, request: SubagentStartRequest): Promise<SubagentRun>
|
|
687
603
|
```
|
|
688
604
|
|
|
689
605
|
Types: [Agent](./core.md) · [ContentBlock](./llm-streaming.md) · [MessageId](./llm-streaming.md) · [SessionId](./core.md)
|
|
@@ -706,7 +622,6 @@ A published child settled. Scope-filtered dispatch uses the same delegating pare
|
|
|
706
622
|
* parent carrier as `subagent/start`, so the lifecycle pair reaches the
|
|
707
623
|
* same scoped audience.
|
|
708
624
|
* @param info - the run identity and terminal outcome.
|
|
709
|
-
* @dshScopeScan unsupported
|
|
710
625
|
* @mode emit
|
|
711
626
|
*/
|
|
712
627
|
'subagent/end'(this: Scoped<SubagentRuntime>, info: SubagentRunEndInfo): void
|
|
@@ -764,7 +679,6 @@ A provider established a published child. For in-process providers, `ctx.agents.
|
|
|
764
679
|
* parent-scoped listener observes only its own delegations. Paired with
|
|
765
680
|
* `subagent/end`.
|
|
766
681
|
* @param info - the provider and published child identity.
|
|
767
|
-
* @dshScopeScan unsupported
|
|
768
682
|
* @mode emit
|
|
769
683
|
*/
|
|
770
684
|
'subagent/start'(this: Scoped<SubagentRuntime>, info: SubagentRunInfo): void
|