dsh-plugin-dev-kb 1.4.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 +19 -0
- package/README.en.md +6 -6
- package/README.md +10 -5
- package/kb/INDEX.md +8 -4
- package/kb/extra/AGENTS.md +4 -3
- 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-session-format-version.md +7 -5
- package/kb/extra/cookbook/adding-a-session-format-version.zh.md +7 -5
- 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 +11 -9
- package/kb/extra/cookbook/reviewing-persistence-type-changes.zh.md +11 -9
- 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 +5 -5
- package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +5 -5
- 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 +31 -11
- package/kb/extra/development.zh.md +32 -11
- package/kb/extra/event-producer-consumer.md +40 -39
- package/kb/extra/event-producer-consumer.zh.md +40 -39
- package/kb/extra/experimental-persistence-catalog.md +17 -0
- package/kb/extra/experimental-persistence-catalog.zh.md +17 -0
- package/kb/extra/glossary.md +1 -0
- package/kb/extra/glossary.zh.md +1 -0
- package/kb/extra/i18n/style-samples.md +2 -2
- package/kb/extra/i18n/terminology.md +1 -0
- package/kb/extra/module-graph.md +274 -195
- package/kb/extra/module-graph.zh.md +274 -195
- package/kb/extra/persistence-catalog.md +9140 -0
- package/kb/extra/persistence-catalog.zh.md +9142 -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-16-session-format-v4.md +2 -2
- package/kb/extra/persistence-changes/2026-09-16-session-format-v4.zh.md +2 -2
- 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-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 +12 -10
- package/kb/extra/persistence-changes/README.zh.md +12 -10
- package/kb/extra/persistence-changes/historical-formats/README.md +1 -1
- package/kb/extra/persistence-changes/historical-formats/README.zh.md +1 -1
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.2.md +50 -50
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.2.zh.md +50 -50
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.3.md +14 -14
- package/kb/extra/persistence-changes/releases/dsh-v0.0.1-rc.3.zh.md +14 -14
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.7.md +3 -3
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.7.zh.md +3 -3
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.8.md +10 -10
- package/kb/extra/persistence-changes/releases/dsh-v0.1.0-rc.8.zh.md +10 -10
- package/kb/extra/persistence-changes/releases/dsh-v0.1.1-rc.1.md +3 -3
- package/kb/extra/persistence-changes/releases/dsh-v0.1.1-rc.1.zh.md +3 -3
- package/kb/extra/persistence-changes/releases/dsh-v0.1.1-rc.2.md +13 -13
- package/kb/extra/persistence-changes/releases/dsh-v0.1.1-rc.2.zh.md +13 -13
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.1.md +63 -63
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.1.zh.md +63 -63
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.2.md +54 -54
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.2.zh.md +54 -54
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.4.md +7 -7
- package/kb/extra/persistence-changes/releases/dsh-v0.1.2-alpha.4.zh.md +7 -7
- package/kb/extra/persistence-changes/releases/dsh-v0.1.3-alpha.1.md +27 -27
- package/kb/extra/persistence-changes/releases/dsh-v0.1.3-alpha.1.zh.md +27 -27
- package/kb/extra/persistence-changes/releases/dsh-v0.1.3-alpha.2.md +4 -4
- package/kb/extra/persistence-changes/releases/dsh-v0.1.3-alpha.2.zh.md +4 -4
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-alpha.1.md +27 -27
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-alpha.1.zh.md +27 -27
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-alpha.2.md +7 -7
- package/kb/extra/persistence-changes/releases/dsh-v0.1.5-alpha.2.zh.md +7 -7
- package/kb/extra/session-format-status.md +6 -6
- package/kb/extra/session-format-status.zh.md +6 -6
- package/kb/extra/subsystems/README.md +76 -0
- package/kb/extra/subsystems/README.zh.md +76 -0
- package/kb/extra/subsystems/agent-team.md +10 -10
- package/kb/extra/subsystems/agent-team.zh.md +10 -10
- package/kb/extra/subsystems/approval.md +170 -0
- package/kb/extra/subsystems/approval.zh.md +170 -0
- package/kb/extra/subsystems/boot.md +128 -4
- package/kb/extra/subsystems/boot.zh.md +128 -4
- package/kb/extra/subsystems/claude-code-mods.md +1 -1
- package/kb/extra/subsystems/claude-code-mods.zh.md +1 -1
- 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 +3 -0
- package/kb/extra/subsystems/computer-use.zh.md +3 -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/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/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 +4 -2
- package/kb/extra/subsystems/product-telemetry.zh.md +4 -2
- 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 +22 -11
- package/kb/extra/subsystems/ssh.zh.md +22 -11
- 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/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/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 +1 -1
- package/kb/extra/subsystems/webhook.zh.md +1 -1
- 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 +1 -1
- package/kb/extra/testing.zh.md +1 -1
- 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 +6 -4
- package/kb/extra/ui-radius.zh.md +6 -4
- 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.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/meta/search-index.json +1932 -366
- package/kb/meta/source.json +9 -8
- package/kb/site/develop/basic/publish.md +3 -1
- package/kb/site/en/develop/basic/publish.md +3 -1
- package/kb/site/en/guide/github-review.md +7 -10
- package/kb/site/en/guide/plugin-market.md +151 -0
- package/kb/site/en/guide/providers.md +27 -4
- package/kb/site/en/guide/public-deployments.md +10 -6
- package/kb/site/en/guide/python-sdk.md +8 -9
- package/kb/site/en/reference/api-gateway.md +10 -3
- package/kb/site/en/reference/capability-seams.md +71 -24
- package/kb/site/en/reference/config-catalog.md +452 -191
- package/kb/site/en/reference/experimental-persistence-catalog.md +20 -0
- package/kb/site/en/reference/index.md +11 -12
- package/kb/site/en/reference/persistence-catalog.md +552 -192
- package/kb/site/en/reference/subsystems/client-modules.md +14 -0
- package/kb/site/en/reference/subsystems/conversation.md +14 -0
- package/kb/site/en/reference/subsystems/core.md +3 -1
- package/kb/site/en/reference/subsystems/credentials.md +13 -12
- package/kb/site/en/reference/subsystems/index.md +4 -1
- package/kb/site/en/reference/subsystems/jobs.md +62 -7
- package/kb/site/en/reference/subsystems/llm-streaming.md +82 -15
- package/kb/site/en/reference/subsystems/persistence.md +2 -0
- package/kb/site/en/reference/subsystems/plan.md +1 -1
- package/kb/site/en/reference/subsystems/ptc-runtime.md +24 -6
- package/kb/site/en/reference/subsystems/session-query.md +2 -0
- package/kb/site/en/reference/subsystems/session-title.md +14 -5
- package/kb/site/en/reference/subsystems/session.md +59 -14
- package/kb/site/en/reference/subsystems/sidebar-right.md +2 -0
- package/kb/site/en/reference/subsystems/skills.md +2 -2
- package/kb/site/en/reference/subsystems/slots.md +80 -83
- package/kb/site/en/reference/subsystems/subagent.md +175 -247
- package/kb/site/en/reference/subsystems/system-prompt.md +32 -2
- package/kb/site/en/reference/subsystems/tools.md +3 -3
- package/kb/site/en/reference/subsystems/typert.md +222 -17
- package/kb/site/en/reference/subsystems/web-client.md +1 -1
- package/kb/site/en/reference/subsystems/web-server.md +87 -11
- package/kb/site/en/reference/subsystems/web.md +2 -2
- package/kb/site/en/reference/subsystems/workflow.md +1 -1
- package/kb/site/en/reference/subsystems/workspace.md +25 -37
- package/kb/site/en/reference/tool-catalog.md +156 -51
- package/kb/site/guide/github-review.md +7 -10
- package/kb/site/guide/plugin-market.md +151 -0
- package/kb/site/guide/providers.md +27 -4
- package/kb/site/guide/public-deployments.md +10 -6
- package/kb/site/guide/python-sdk.md +8 -9
- package/kb/site/reference/api-gateway.md +16 -3
- package/kb/site/reference/capability-seams.md +71 -24
- package/kb/site/reference/config-catalog.md +452 -191
- package/kb/site/reference/experimental-persistence-catalog.md +20 -0
- package/kb/site/reference/index.md +11 -12
- package/kb/site/reference/persistence-catalog.md +552 -192
- package/kb/site/reference/subsystems/client-modules.md +14 -0
- package/kb/site/reference/subsystems/conversation.md +16 -0
- package/kb/site/reference/subsystems/core.md +5 -1
- package/kb/site/reference/subsystems/credentials.md +13 -12
- package/kb/site/reference/subsystems/index.md +4 -1
- package/kb/site/reference/subsystems/jobs.md +62 -7
- package/kb/site/reference/subsystems/llm-streaming.md +82 -15
- package/kb/site/reference/subsystems/persistence.md +2 -0
- package/kb/site/reference/subsystems/plan.md +1 -1
- package/kb/site/reference/subsystems/ptc-runtime.md +24 -6
- package/kb/site/reference/subsystems/scope.md +2 -0
- package/kb/site/reference/subsystems/session-query.md +2 -0
- package/kb/site/reference/subsystems/session-title.md +14 -5
- package/kb/site/reference/subsystems/session.md +59 -14
- package/kb/site/reference/subsystems/sidebar-right.md +2 -0
- package/kb/site/reference/subsystems/skills.md +2 -2
- package/kb/site/reference/subsystems/slots.md +84 -83
- package/kb/site/reference/subsystems/subagent.md +177 -251
- package/kb/site/reference/subsystems/system-prompt.md +32 -2
- package/kb/site/reference/subsystems/tools.md +3 -3
- package/kb/site/reference/subsystems/typert.md +222 -17
- package/kb/site/reference/subsystems/web-client.md +1 -1
- package/kb/site/reference/subsystems/web-server.md +87 -11
- package/kb/site/reference/subsystems/web.md +2 -2
- package/kb/site/reference/subsystems/workflow.md +1 -1
- package/kb/site/reference/subsystems/workspace.md +25 -37
- package/kb/site/reference/tool-catalog.md +160 -55
- package/package.json +2 -2
- package/skills/dsh-dev-sandbox.md +67 -0
- package/kb/extra/defensive-patterns.md +0 -33
- package/kb/extra/defensive-patterns.zh.md +0 -35
|
@@ -28,6 +28,8 @@ interface SessionRecord {
|
|
|
28
28
|
live: boolean
|
|
29
29
|
/** Whether the active persistence backend currently lists the id, including a created-but-unmaterialized session it already observes. */
|
|
30
30
|
persisted: boolean
|
|
31
|
+
/** Current for live Sessions; otherwise the persistence format status when reported. */
|
|
32
|
+
formatStatus?: 'current' | 'migration-required'
|
|
31
33
|
}
|
|
32
34
|
```
|
|
33
35
|
|
|
@@ -6,7 +6,7 @@ outline: [2,3]
|
|
|
6
6
|
|
|
7
7
|
# 会话标题
|
|
8
8
|
|
|
9
|
-
[`@deepseek-ai/dsh-session-title`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-title)
|
|
9
|
+
[`@deepseek-ai/dsh-session-title`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-title) 所拥有的持久、后写覆盖的标题状态与可选异步提供方词汇。共享执行模块负责精确的辅助请求记录。各包 README 负责时序、回退、失败与 fork 行为;生成的[持久化日志事件目录](../persistence-catalog.md)负责完整的事件声明。
|
|
10
10
|
|
|
11
11
|
源码:[`packages/session/session-title/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-title/src/index.ts)、[`packages/session/session-title-llm/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-title-llm/src/index.ts)
|
|
12
12
|
|
|
@@ -68,7 +68,7 @@ interface SessionTitleSnapshot extends SessionTitleEventData {
|
|
|
68
68
|
|
|
69
69
|
## 辅助请求记录
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
共享执行模块会在调用模型前,记录每一项已经过验证且可分发的标题请求。即使后续生成失败,载荷仍会复现模型可见的系统输入与消息输入、路由、输出上限、解析后的推理强度、提供方归属和源消息归因。
|
|
72
72
|
|
|
73
73
|
```ts type-equiv
|
|
74
74
|
/** Exact model-visible request recorded before one auxiliary title dispatch. */
|
|
@@ -85,12 +85,14 @@ interface SessionTitleLlmRequestEventData {
|
|
|
85
85
|
readonly messages: Message[]
|
|
86
86
|
/** Exact auxiliary output-token cap. */
|
|
87
87
|
readonly maxTokens: number
|
|
88
|
+
/** Resolved reasoning effort when recorded; older requests can omit it. */
|
|
89
|
+
readonly reasoningEffort?: ReasoningEffortId
|
|
88
90
|
}
|
|
89
91
|
```
|
|
90
92
|
|
|
91
93
|
## 提供方输入与输出
|
|
92
94
|
|
|
93
|
-
|
|
95
|
+
服务会对截至某一修订的合格消息、以及在每次提供方调用前刚刚确保的回退和最新已接纳标题创建快照。提供方返回的 seq 仅可来自该请求;由服务负责的接纳流程会验证顺序、规范化标题、强制执行字节上限,并追加标题及其来源消息 seq 和来源类型。
|
|
94
96
|
|
|
95
97
|
```ts type-equiv
|
|
96
98
|
/** One eligible human text message exposed to title providers. */
|
|
@@ -116,6 +118,12 @@ interface SessionTitleProviderRequest {
|
|
|
116
118
|
readonly messages: readonly SessionTitleUserMessage[]
|
|
117
119
|
/** Exact current logged main-request route, when one has been recorded. */
|
|
118
120
|
readonly route?: SessionTitleModelIdentity
|
|
121
|
+
/**
|
|
122
|
+
* Latest accepted title captured at invocation, including an accepted
|
|
123
|
+
* fallback whose event may follow the last eligible message. Absent before
|
|
124
|
+
* any title is accepted. The provider decides whether and how to use it.
|
|
125
|
+
*/
|
|
126
|
+
readonly currentTitle?: SessionTitleSnapshot
|
|
119
127
|
/** Cancellation for supersession, disposal, timeout composition, or the explicit caller. */
|
|
120
128
|
readonly signal: AbortSignal
|
|
121
129
|
}
|
|
@@ -142,7 +150,7 @@ interface SessionTitleProvider {
|
|
|
142
150
|
readonly automatic: SessionTitleAutomaticMode
|
|
143
151
|
/**
|
|
144
152
|
* Produce one title revision.
|
|
145
|
-
* @param request - message snapshot, current route, session, and cancellation.
|
|
153
|
+
* @param request - message snapshot, current title, current route, session, and cancellation.
|
|
146
154
|
* @returns proposed title plus exact input seqs and the optional provider/model route used to generate it.
|
|
147
155
|
*/
|
|
148
156
|
generate(request: SessionTitleProviderRequest): Promise<SessionTitleProviderResult>
|
|
@@ -195,7 +203,8 @@ async refresh(session: Session, signal?: AbortSignal): Promise<SessionTitleSnaps
|
|
|
195
203
|
|
|
196
204
|
/**
|
|
197
205
|
* Register the sole optional title provider. Disposal aborts its pending and
|
|
198
|
-
* active work
|
|
206
|
+
* active work; a replacement may register once disposal has started, and the
|
|
207
|
+
* closing provider's late results never commit.
|
|
199
208
|
* @param provider - provider identity, cadence, and generation function.
|
|
200
209
|
* @returns exact Cordis effect disposer, which settles after active calls quiesce.
|
|
201
210
|
*/
|
|
@@ -760,6 +760,49 @@ interface TurnEndReasonMap {
|
|
|
760
760
|
|
|
761
761
|
钩子桥接层的 `hook/invoked` / `hook/result` 对(来自 `@deepseek-ai/dsh-hook-protocol`)通过 `handlerId` 关联。`UserPromptSubmit`、`PreToolUse`、`PostToolUse` 与 `Stop` 在 loop 已打开的轮次内触发,因此其 `hook/*` 记录天然位于轮次之内。`SessionStart` 不生成 `hook/*` 记录,因为它在轮次 1 之前运行;其上下文会在 inbox 中保持待处理,直到唤醒交付打开一个轮次。
|
|
762
762
|
|
|
763
|
+
### 插件记录
|
|
764
|
+
|
|
765
|
+
实验性包在 `PluginRecordMap` 中声明插件自有的状态:`appendPluginRecord()` 根据每项声明约束名称与 payload 类型,并在 `plugin:` 命名空间中追加一条带 `ignorable: true` 标记的事件。`pluginRecordOf()` 读取已存记录,其 payload 为未知类型,不受当前声明约束。[实验性持久化目录](../experimental-persistence-catalog.md)列出当前声明。调用方限制、保留方式与读取路径见[包 README](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/README.zh.md#write-experimental-plugin-records)。
|
|
766
|
+
|
|
767
|
+
```ts type-equiv
|
|
768
|
+
/**
|
|
769
|
+
* Event type of an experimental plugin record: `plugin:` followed by
|
|
770
|
+
* slash-separated segments of lowercase letters, digits, `.`, `_`, and `-`,
|
|
771
|
+
* each starting with a letter or digit. A record type is never a
|
|
772
|
+
* {@link SessionEventMap} member.
|
|
773
|
+
*/
|
|
774
|
+
type PluginRecordType = `plugin:${string}`
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
```ts type-equiv
|
|
778
|
+
/**
|
|
779
|
+
* Payloads written by experimental packages, keyed by their `plugin:` record
|
|
780
|
+
* names. Packages augment this map to type writes and enter the current plugin
|
|
781
|
+
* record catalog; these declarations do not enter {@link SessionEventMap} or
|
|
782
|
+
* released persistence schemas. Stored records still require owner validation.
|
|
783
|
+
*/
|
|
784
|
+
interface PluginRecordMap {}
|
|
785
|
+
```
|
|
786
|
+
|
|
787
|
+
```ts type-equiv
|
|
788
|
+
/**
|
|
789
|
+
* One committed experimental plugin record, read from the log by
|
|
790
|
+
* `pluginRecordOf`. The record's owner validates `data` before use, because a
|
|
791
|
+
* restored record carries whatever JSON an earlier build of its owner wrote,
|
|
792
|
+
* or a V3 event that a format migration renamed into the `plugin:` namespace held.
|
|
793
|
+
*/
|
|
794
|
+
interface PluginRecord {
|
|
795
|
+
/** The record type, chosen by the owning plugin. */
|
|
796
|
+
readonly type: PluginRecordType
|
|
797
|
+
/** The record's position in the Session log. */
|
|
798
|
+
readonly seq: SessionSeq
|
|
799
|
+
/** Unix epoch milliseconds at append. */
|
|
800
|
+
readonly time: number
|
|
801
|
+
/** The JSON payload as committed. */
|
|
802
|
+
readonly data: unknown
|
|
803
|
+
}
|
|
804
|
+
```
|
|
805
|
+
|
|
763
806
|
## 持久性约定
|
|
764
807
|
|
|
765
808
|
持久化后端依赖的约定如下:持久日志无损保存每个事件,每个 Assistant attempt 都是一个 `assistant/message` 或 `assistant/attempt`,其嵌入式紧凑 stream 会保留原始带时间 chunk。`seq` 在这些 settlement 与所有交错事件之间保持连续。后端可以为事件批次选择自己的存储 framing,只要句柄的 `read()` 返回与追加时完全一致的事件即可;当前 JSONL 每个事件写一行(见 [persistence.md](./persistence.md))。所有 `event.data` 都必须可序列化为 JSON;`Session.append` 会从源头强制这一要求(遇到不可序列化数据时抛出),因此错误事件绝不会进入日志,`session.snapshotEvents()` 始终与后端可持久化的内容一致。新增会携带不可序列化数据、破坏核心执行嵌套或违反事件所有方声明关系的事件类型,都会构成磁盘格式的破坏性变更。
|
|
@@ -813,17 +856,19 @@ inspect( sessionId: SessionId, signal?: AbortSignal, ): Promise<SessionInspectio
|
|
|
813
856
|
@Remote('list') async list(_request: SessionListRequest, signal: AbortSignal): Promise<SessionListValue>
|
|
814
857
|
|
|
815
858
|
/**
|
|
816
|
-
* Search visible Session content without resuming an Agent.
|
|
859
|
+
* Search visible Session content without resuming an Agent. A non-owner
|
|
860
|
+
* receives only the hits whose Session `allows()` admits; `hasMore`
|
|
861
|
+
* describes the bounded result before that filtering.
|
|
817
862
|
* @param request - literal message-content query.
|
|
818
863
|
* @param signal - cancellation for list and search reads.
|
|
819
864
|
* @returns authorized bounded Session search results.
|
|
820
865
|
*/
|
|
821
|
-
@Remote('search') search(request: SessionSearchRequest, signal: AbortSignal): Promise<SessionSearchValue>
|
|
866
|
+
@Remote('search') async search(request: SessionSearchRequest, signal: AbortSignal): Promise<SessionSearchValue>
|
|
822
867
|
|
|
823
868
|
/**
|
|
824
|
-
* Create
|
|
825
|
-
* @param request -
|
|
826
|
-
* @returns the Session identity and
|
|
869
|
+
* Create one ordinary Session for a new conversation, reusing the named blank Session while it is reusable.
|
|
870
|
+
* @param request - optional blank Session to reuse, location, and Agent preset.
|
|
871
|
+
* @returns the created or reused Session identity and its preset when configured.
|
|
827
872
|
*/
|
|
828
873
|
@Remote('create') create(request: SessionCreateRequest): Promise<SessionCreateValue>
|
|
829
874
|
|
|
@@ -887,10 +932,10 @@ workspaceDesktop(): { name: string; available: boolean; fileManager: 'finder' |
|
|
|
887
932
|
* Fork one cold-readable exact event prefix into a new Session. An omitted
|
|
888
933
|
* boundary selects the latest completed-turn prefix; an open cut receives
|
|
889
934
|
* synthetic fork closers.
|
|
890
|
-
* @param request - source Session
|
|
935
|
+
* @param request - source Session, optional exact inclusive event boundary, and migration preflight choice.
|
|
891
936
|
* @returns the new Session identity.
|
|
892
937
|
*/
|
|
893
|
-
@Remote('fork') fork(request: SessionForkRequest): Promise<SessionForkValue>
|
|
938
|
+
@Remote('fork') async fork(request: SessionForkRequest): Promise<SessionForkValue>
|
|
894
939
|
|
|
895
940
|
/**
|
|
896
941
|
* Admit one prompt after explicitly resuming its Session.
|
|
@@ -898,7 +943,7 @@ workspaceDesktop(): { name: string; available: boolean; fileManager: 'finder' |
|
|
|
898
943
|
* @param signal - caller cancellation before prompt admission begins.
|
|
899
944
|
* @returns acknowledgement that the Agent accepted the prompt.
|
|
900
945
|
*/
|
|
901
|
-
@Remote('prompt') prompt(request: SessionPromptRequest, signal: AbortSignal): Promise<SessionPromptValue>
|
|
946
|
+
@Remote('prompt') async prompt(request: SessionPromptRequest, signal: AbortSignal): Promise<SessionPromptValue>
|
|
902
947
|
|
|
903
948
|
/**
|
|
904
949
|
* Read one image proven reachable from the addressed Session log.
|
|
@@ -927,7 +972,7 @@ workspaceDesktop(): { name: string; available: boolean; fileManager: 'finder' |
|
|
|
927
972
|
* @param signal - cancellation for persistence reads.
|
|
928
973
|
* @returns one chronological page.
|
|
929
974
|
*/
|
|
930
|
-
@Remote('page') page(request: SessionPageRequest, signal: AbortSignal): Promise<SessionPage>
|
|
975
|
+
@Remote({ name: 'page', resources: { session: addressedSession } }) page(request: SessionPageRequest, signal: AbortSignal): Promise<SessionPage>
|
|
931
976
|
|
|
932
977
|
/**
|
|
933
978
|
* Follow one Session log from its opening or resume cursor.
|
|
@@ -936,13 +981,13 @@ workspaceDesktop(): { name: string; available: boolean; fileManager: 'finder' |
|
|
|
936
981
|
* @returns a complete opening snapshot followed by gap-free durable event
|
|
937
982
|
* frames and optional cursorless assistant-stream frames.
|
|
938
983
|
*/
|
|
939
|
-
@Remote({ mode: 'stream' }) follow(request: SessionFollowRequest, signal: AbortSignal): AsyncIterable<SessionFollowFrame>
|
|
984
|
+
@Remote({ mode: 'stream', resources: { session: addressedSession } }) follow(request: SessionFollowRequest, signal: AbortSignal): AsyncIterable<SessionFollowFrame>
|
|
940
985
|
|
|
941
986
|
/**
|
|
942
|
-
* Read
|
|
987
|
+
* Read exact projections, returning cached hints only when migration is required.
|
|
943
988
|
* @param request - Session whose current values are required.
|
|
944
|
-
* @param signal - cancellation for the Session
|
|
945
|
-
* @returns
|
|
989
|
+
* @param signal - cancellation for the Session read.
|
|
990
|
+
* @returns a sequenced baseline, cached hints when migration is deferred, or null when absent.
|
|
946
991
|
*/
|
|
947
992
|
@Remote('projections') async projections(request: SessionProjectionsRequest, signal: AbortSignal): Promise<SessionProjectionsValue>
|
|
948
993
|
|
|
@@ -951,7 +996,7 @@ workspaceDesktop(): { name: string; available: boolean; fileManager: 'finder' |
|
|
|
951
996
|
* @param signal - cancellation owned by the Remote stream carrier.
|
|
952
997
|
* @returns one complete baseline followed by live replacement frames.
|
|
953
998
|
*/
|
|
954
|
-
@Remote({ mode: 'stream' }) control(signal: AbortSignal): AsyncIterable<SessionControlFrame>
|
|
999
|
+
@Remote({ mode: 'stream' }) async *control(signal: AbortSignal): AsyncIterable<SessionControlFrame>
|
|
955
1000
|
```
|
|
956
1001
|
|
|
957
1002
|
Types: [SessionId](./core.md) · [SessionInspection](./persistence.md) · [SessionSearchRequest](./session-query.md)
|
|
@@ -50,6 +50,8 @@ tab 身份是 `(kind, address)` 二元组:注册表的认领把地址原文用
|
|
|
50
50
|
| `keepMounted` | 可选的懒保活:已访问正文跨隐藏、Session 切换与停靠切换保留,由所属 View 持有 Session reference。 |
|
|
51
51
|
| `guide` | 可选的引导页入口框:`{ order, title(), description?(), icon? }`。点一框即把贡献它的类型作为页面打开;省略即不上引导页。 |
|
|
52
52
|
|
|
53
|
+
完整地址模式匹配地址原文:picomatch 的 globstar(`**`)即使启用 `dot: true` 也排除独立的 `.` 和 `..` 段;该选项允许匹配 dotfile,不改变点段排除规则。地址由资源业务代码解析,文件读取仍受 Host 文件系统权限限制。
|
|
54
|
+
|
|
53
55
|
路由是一次排序认领。`candidates(address)` 对模式命中且未被 `canOpen` 否决的类型排序:先按档,再按最长命中模式的长度,最后按注册顺序。`claim(address, kind?)` 取第一个候选,或直接用点名的 `kind`——跳过它的 glob,但 `canOpen` 仍生效——返回 `{ kind, contentId: address, title }`。没有任何类型认领的地址会抛错:这是接线错误,不是用户错误。
|
|
54
56
|
|
|
55
57
|
同一个 `kind` 可同时携带一个 `builtin` 与一个 `extension` 注册。extension 在认领、`get(kind)`、`openTab(kind)` 与引导页上生效,席位按生效定义的 `id` 找 tab 的正文与标题,不涉及任何 slot 优先级;extension 注销后 builtin 恢复。kind 上的其它任何撞名以及任何重复的 `id` 都抛错。
|
|
@@ -6,9 +6,9 @@ outline: [2,3]
|
|
|
6
6
|
|
|
7
7
|
# Skills
|
|
8
8
|
|
|
9
|
-
[skill(技能)能力族](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill) 包含 Service Definition([dsh-skill](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/skill),`ctx.skills`)、本地 Service Provider([dsh-skill-filesystem](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/skill-filesystem))、可选的随包提供方([dsh-skill-badge](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/
|
|
9
|
+
[skill(技能)能力族](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill) 包含 Service Definition([dsh-skill](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/skill),`ctx.skills`)、本地 Service Provider([dsh-skill-filesystem](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/skill-filesystem))、可选的随包提供方([dsh-skill-badge](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/experimental/skill-badge)、[dsh-skill-office](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/skill-office) 及 [dsh-sandbox-windows-acl](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/sandbox/sandbox-windows-acl) 中的 Windows ACL 诊断提供方)和 Consumer([dsh-tool-skill](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/tool-skill))。注册表在其宿主层与各 scope 层之间合并各提供方的目录;提供方贡献本地或随包 skill;Consumer 拥有初始目录和替换目录,以及面向模型的 `skill` 工具。skill 是可选的指令而非会话事件,因此其词汇定义在此处而非 [core.md](./core.md)。
|
|
10
10
|
|
|
11
|
-
源码:[`packages/skill/skill/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/skill/src/index.ts)、[`packages/skill/skill-filesystem/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/skill-filesystem/src/index.ts)、[`packages/
|
|
11
|
+
源码:[`packages/skill/skill/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/skill/src/index.ts)、[`packages/skill/skill-filesystem/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/skill-filesystem/src/index.ts)、[`packages/experimental/skill-badge/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/skill-badge/src/index.ts)、[`packages/skill/skill-office/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/skill-office/src/index.ts)、[`packages/sandbox/sandbox-windows-acl/src/acl-skill.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/sandbox/sandbox-windows-acl/src/acl-skill.ts) 与 [`packages/skill/tool-skill/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/tool-skill/src/index.ts)。
|
|
12
12
|
|
|
13
13
|
## 提供方注册表
|
|
14
14
|
|
|
@@ -65,6 +65,8 @@ Slot 声明固定两个相互独立的维度。
|
|
|
65
65
|
|
|
66
66
|
对于 `single`、`list` 和 `keyed` cell,`priority` 是遮蔽优先级;对于 `chain`,它是选举顺序。数值越小越先运行或渲染。普通增量贡献应选用新的 list `id` 或 keyed `key`;复用已有 cell 表示有意替换其展示。
|
|
67
67
|
|
|
68
|
+
<a id="component-inputs"></a>
|
|
69
|
+
|
|
68
70
|
## 组件输入
|
|
69
71
|
|
|
70
72
|
注册组件会在 binding 位置收到组装后的输入。组件应从这些类型推导 props,不要重新抄写成员。
|
|
@@ -88,11 +90,12 @@ Slot 声明固定两个相互独立的维度。
|
|
|
88
90
|
|
|
89
91
|
| 可用范围 | Props | Owner |
|
|
90
92
|
|---|---|---|
|
|
91
|
-
| 所有 scope | `useSessions`、`useSessionStatus`、`useSessionRetainInfo` | `ui-session` |
|
|
92
|
-
| 所有 scope | `useWorkspaces` | `ui-workspace` |
|
|
93
|
+
| 所有 scope | `useSessions`、`useSessionStatus`、`useSessionRetainInfo`、`useSessionAccess` | `ui-session` |
|
|
94
|
+
| 所有 scope | `useWorkspaces`、`useWorkspaceAccess` | `ui-workspace` |
|
|
95
|
+
| 所有 scope | `useRemoteAccess`(`global` 资源) | `api-remote-access` |
|
|
93
96
|
| 所有作用域 | `usePanelInfo` | `ui-layout` |
|
|
94
|
-
| `session` | `sessionId`、`useSession`、`useProjection
|
|
95
|
-
| `session-maybe` | 结果可选的 `sessionId`、`useSession`、`useProjection` | `ui-session` |
|
|
97
|
+
| `session` | `sessionId`、`useSession`、`useProjection`、`useAccess`(所绑定 Session 的答案) | `ui-session` |
|
|
98
|
+
| `session-maybe` | 结果可选的 `sessionId`、`useSession`、`useProjection`、`useAccess` | `ui-session` |
|
|
96
99
|
| `session` | `useConversation`、`useInput`、`inputActions` | `ui-conversation` |
|
|
97
100
|
| `session-maybe` | 结果可选的 `useConversation`、`useInput`、`inputActions` | `ui-conversation` |
|
|
98
101
|
| `session` | `useChat` | `ui-chat` |
|
|
@@ -112,90 +115,88 @@ Renderer 还会根据声明的 store 创建 `useStore`,并根据声明的 loca
|
|
|
112
115
|
|
|
113
116
|
一次渲染时 owner 已知的值走 owner props;单个 entry 的 callback 与私有 observable 走注册项 `inject`;由 slot owner 控制、所有 occupant 共享的能力走 slot 级 `inject`;需要跨 entry 共享或跨重新挂载保留的可变视图状态走声明的 store。React node 通过 child slot 组合,不通过注入值传递。
|
|
114
117
|
|
|
115
|
-
|
|
118
|
+
<a id="current-hierarchy"></a>
|
|
119
|
+
|
|
120
|
+
## Conversation 层级
|
|
116
121
|
|
|
117
|
-
|
|
122
|
+
下面的 Conversation 路径区分声明所有者与可复用 Factory 根,省略无关的外壳位置。条目拥有其声明的子 Slot;Factory 在其定义注册期间拥有子 Slot 声明。方括号标出默认 React 组件,普通 React 后代组件可以渲染其所有者的 Slot。Factory 调用指向独立的可复用定义,不是新的 Slot 声明。
|
|
118
123
|
|
|
119
124
|
```text
|
|
120
|
-
root
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
│ ├─
|
|
125
|
-
│
|
|
126
|
-
│
|
|
127
|
-
│
|
|
128
|
-
│
|
|
129
|
-
│
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
│
|
|
135
|
-
│ ├─
|
|
136
|
-
│ └─
|
|
137
|
-
│
|
|
138
|
-
│ ├─
|
|
139
|
-
│
|
|
140
|
-
│
|
|
141
|
-
├─
|
|
142
|
-
│
|
|
143
|
-
│
|
|
144
|
-
│
|
|
145
|
-
│
|
|
146
|
-
│
|
|
147
|
-
│
|
|
148
|
-
│
|
|
149
|
-
│ └─
|
|
150
|
-
│ ├─
|
|
151
|
-
│ │ └─ conversation.
|
|
152
|
-
│ │
|
|
153
|
-
│ │
|
|
154
|
-
│ │
|
|
155
|
-
│
|
|
156
|
-
│
|
|
157
|
-
|
|
158
|
-
│
|
|
159
|
-
│
|
|
160
|
-
|
|
161
|
-
│
|
|
162
|
-
│
|
|
163
|
-
│
|
|
164
|
-
│
|
|
165
|
-
│
|
|
166
|
-
│
|
|
167
|
-
│
|
|
168
|
-
│
|
|
169
|
-
│
|
|
170
|
-
|
|
171
|
-
│
|
|
172
|
-
│
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
│
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
│ │ ├─ sidebar.right.tab.guide
|
|
189
|
-
│ │ └─ sidebar.right.tab.guide.entry
|
|
190
|
-
│ ├─ sidebar.right.pane.tab.title
|
|
191
|
-
│ └─ sidebar.right.tab.menu.item
|
|
192
|
-
├─ shell.bottom
|
|
193
|
-
├─ shell.leading
|
|
194
|
-
└─ shell.overlay
|
|
195
|
-
└─ shell.quota-notice
|
|
125
|
+
root [AppFrame]
|
|
126
|
+
└─ main[key=conversation] [ConversationPanel]
|
|
127
|
+
└─ main.conversation [ConversationRoot / ConversationMainPanel]
|
|
128
|
+
├─ conversation.header [ConversationHeader]
|
|
129
|
+
│ ├─ conversation.header.leading
|
|
130
|
+
│ └─ conversation.session.header [ConversationSessionHeader]
|
|
131
|
+
│ ├─ conversation.session.header.lineage
|
|
132
|
+
│ ├─ conversation.session.header.actions
|
|
133
|
+
│ ├─ conversation.session.header.utilities
|
|
134
|
+
│ └─ conversation.session.header.corner
|
|
135
|
+
└─ calls Factory: conversation.content
|
|
136
|
+
|
|
137
|
+
Factory: conversation.content [ConversationContent]
|
|
138
|
+
├─ conversation.session [ConversationSession / DefaultConversationViews]
|
|
139
|
+
│ └─ conversation.view
|
|
140
|
+
│ ├─ id=chat [ChatView]
|
|
141
|
+
│ │ └─ conversation.chat.flow [ChatFlow]
|
|
142
|
+
│ │ └─ conversation.chat.node [ChatNodeSeat dispatch]
|
|
143
|
+
│ │ ├─ key=user,steering [UserMessageNodeView]
|
|
144
|
+
│ │ │ └─ calls Factory: conversation.chat.user.content
|
|
145
|
+
│ │ ├─ key=assistant-step [AssistantNodeView / AssistantMarkdown]
|
|
146
|
+
│ │ │ ├─ conversation.chat.message.images [MessageImages]
|
|
147
|
+
│ │ │ └─ conversation.chat.reasoning.body [DefaultReasoningBody]
|
|
148
|
+
│ │ │ └─ calls Factory: conversation.chat.reasoning.content
|
|
149
|
+
│ │ ├─ key=tool-call [ToolCallTree]
|
|
150
|
+
│ │ │ └─ tool.call.toolview
|
|
151
|
+
│ │ │ └─ key=read_image [ReadImageRow / ToolRow]
|
|
152
|
+
│ │ │ └─ tool.call.images [MessageImages]
|
|
153
|
+
│ │ ├─ key=command-input [GoalCommandInputView]
|
|
154
|
+
│ │ │ └─ calls Factory: conversation.user.text
|
|
155
|
+
│ │ ├─ key=command [CommandNodeView]
|
|
156
|
+
│ │ │ └─ conversation.chat.commandview
|
|
157
|
+
│ │ └─ key=turn-tail [TurnTailNodeView]
|
|
158
|
+
│ │ ├─ conversation.chat.turnTail
|
|
159
|
+
│ │ └─ conversation.chat.assistant-actions
|
|
160
|
+
│ └─ id=trajectory [TrajectoryView / TrajectoryTable]
|
|
161
|
+
│ └─ conversation.trajectory.images [MessageImages]
|
|
162
|
+
├─ conversation.composer
|
|
163
|
+
│ ├─ conversation.approval.detail
|
|
164
|
+
│ └─ conversation.plan-review.actions
|
|
165
|
+
├─ conversation.composer.bar [InputBar]
|
|
166
|
+
│ ├─ conversation.input.attachments
|
|
167
|
+
│ ├─ conversation.input.permission
|
|
168
|
+
│ ├─ conversation.input.plan
|
|
169
|
+
│ ├─ conversation.input.model
|
|
170
|
+
│ │ └─ conversation.input.model.label
|
|
171
|
+
│ ├─ conversation.input.overlay
|
|
172
|
+
│ ├─ conversation.composer.dock
|
|
173
|
+
│ ├─ conversation.input.left
|
|
174
|
+
│ └─ conversation.input.right
|
|
175
|
+
├─ conversation.input.dock
|
|
176
|
+
│ └─ id=queue [QueueDock]
|
|
177
|
+
│ └─ calls Factory: conversation.user.text
|
|
178
|
+
├─ conversation.hero.brand.mark
|
|
179
|
+
├─ conversation.hero.workspace
|
|
180
|
+
│ └─ conversation.hero.workspace.directoryFlow
|
|
181
|
+
├─ conversation.hero.agentPreset
|
|
182
|
+
└─ conversation.hero.options
|
|
183
|
+
|
|
184
|
+
Factory: conversation.chat.user.content [UserContent]
|
|
185
|
+
├─ conversation.chat.user.images [MessageImages]
|
|
186
|
+
└─ calls Factory: conversation.user.text
|
|
187
|
+
|
|
188
|
+
Factory: conversation.user.text [UserText]
|
|
189
|
+
└─ conversation.user.text.node [keyed, inline]
|
|
190
|
+
|
|
191
|
+
Factory: conversation.images.content [MessageImagesContent / ImageGallery]
|
|
192
|
+
Factory: conversation.chat.reasoning.content [ReasoningContent / MarkdownText]
|
|
196
193
|
```
|
|
197
194
|
|
|
198
|
-
|
|
195
|
+
四个图片 Slot 默认均填入 `MessageImages`,由它携带调用者的图片引用和授权 loader 调用 `conversation.images.content`。用户与输出图片的替换互不影响。`conversation.user.text` Factory 由用户内容、Queue 和 Goal 共用;其 `inline: true` keyed Slot 使用 span 锚点及行内错误占位,而不是块级包装。
|
|
196
|
+
|
|
197
|
+
生成的 [Client inspect catalog](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/extensions/cordis-client-runner/src/client/slot-catalog.ts) 是包含所有外壳分支及每个 key 的完整参考,包含 cardinality、scope、owner props、标准 props、当前 occupant、声明 owner 与替换风险。运行中的动态包可以用 `cordis_inspect what:"client"` 查询实时树与某个精确 key;源码 catalog 由 `pnpm run gen-client-catalog` 根据 `SlotMap` 声明和 `slots.register()` 调用点生成。
|
|
198
|
+
|
|
199
|
+
<a id="extension-rules"></a>
|
|
199
200
|
|
|
200
201
|
## 扩展规则
|
|
201
202
|
|