dsh-plugin-guide 0.3.26 → 0.3.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-es.md +30 -11
- package/README-hi.md +30 -11
- package/README-pt.md +30 -11
- package/README-zh.md +32 -11
- package/README.md +36 -16
- package/SKILL.md +4 -3
- package/dist/dsh-plugin-dev.js +17 -8
- package/guide/family-toolchain.md +260 -0
- package/guide/links.md +3 -2
- package/guide/migration-0.2.md +64 -8
- package/guide/plugin-dev-guide.md +8 -6
- package/guide/quick-reference.es.md +3 -2
- package/guide/quick-reference.hi.md +4 -3
- package/guide/quick-reference.md +6 -5
- package/guide/quick-reference.pt.md +4 -3
- package/guide/quick-reference.zh-CN.md +6 -5
- package/guide/release-engineering.md +4 -2
- package/guide/release-engineering.zh-CN.md +4 -2
- package/guide/unfixed-issues.md +7 -0
- package/guide/version-matrix.md +309 -0
- package/guide/when-to-retire-a-plugin.md +5 -5
- package/guide/when-to-retire-a-plugin.zh-CN.md +5 -5
- package/package.json +4 -3
- package/references/community-ecosystem.md +2 -1
- package/references/dev-resource-landscape.md +294 -0
- package/references/official-docs/AGENTS.md +4 -5
- package/references/official-docs/SNAPSHOT.md +3 -3
- package/references/official-docs/THIRD_PARTY_NOTICES.md +2 -1
- package/references/official-docs/docs/AGENTS.md +1 -1
- package/references/official-docs/docs/architecture.i18n.yaml +14 -14
- package/references/official-docs/docs/architecture.md +11 -12
- package/references/official-docs/docs/architecture.zh.md +11 -12
- package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
- package/references/official-docs/docs/capability-seams.md +48 -23
- package/references/official-docs/docs/capability-seams.zh.md +48 -23
- package/references/official-docs/docs/cli-help.i18n.yaml +34 -0
- package/references/official-docs/docs/cli-help.md +203 -0
- package/references/official-docs/docs/cli-help.zh.md +205 -0
- package/references/official-docs/docs/config-catalog.md +305 -145
- package/references/official-docs/docs/config-catalog.zh.md +305 -145
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.i18n.yaml +6 -6
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.md +7 -5
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.zh.md +7 -5
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.i18n.yaml +6 -6
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.md +11 -9
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.zh.md +11 -9
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +4 -4
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +5 -5
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +5 -5
- package/references/official-docs/docs/defensive-patterns.i18n.yaml +2 -2
- package/references/official-docs/docs/defensive-patterns.md +1 -1
- package/references/official-docs/docs/defensive-patterns.zh.md +1 -1
- package/references/official-docs/docs/development.i18n.yaml +6 -6
- package/references/official-docs/docs/development.md +4 -2
- package/references/official-docs/docs/development.zh.md +4 -2
- package/references/official-docs/docs/event-producer-consumer.md +33 -33
- package/references/official-docs/docs/event-producer-consumer.zh.md +33 -33
- package/references/official-docs/docs/experimental-persistence-catalog.i18n.yaml +10 -0
- package/references/official-docs/docs/experimental-persistence-catalog.md +17 -0
- package/references/official-docs/docs/experimental-persistence-catalog.zh.md +17 -0
- package/references/official-docs/docs/module-graph.md +202 -131
- package/references/official-docs/docs/module-graph.zh.md +202 -131
- package/references/official-docs/docs/persistence-catalog.i18n.yaml +185 -158
- package/references/official-docs/docs/persistence-catalog.md +213 -112
- package/references/official-docs/docs/persistence-catalog.zh.md +213 -112
- package/references/official-docs/docs/persistence-changes/2026-09-13-working-directory.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-13-working-directory.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-13-working-directory.schema.json +76 -0
- package/references/official-docs/docs/persistence-changes/2026-09-13-working-directory.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.i18n.yaml +4 -4
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.md +2 -2
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.zh.md +2 -2
- package/references/official-docs/docs/persistence-changes/2026-09-19-external-subagent-catalog.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-19-external-subagent-catalog.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-19-external-subagent-catalog.schema.json +290 -0
- package/references/official-docs/docs/persistence-changes/2026-09-19-external-subagent-catalog.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-10-05-ptc-operation-metadata.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-10-05-ptc-operation-metadata.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-10-05-ptc-operation-metadata.schema.json +457 -0
- package/references/official-docs/docs/persistence-changes/2026-10-05-ptc-operation-metadata.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-10-05-working-directory-attribution.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-10-05-working-directory-attribution.md +60 -0
- package/references/official-docs/docs/persistence-changes/2026-10-05-working-directory-attribution.schema.json +11474 -0
- package/references/official-docs/docs/persistence-changes/2026-10-05-working-directory-attribution.zh.md +60 -0
- package/references/official-docs/docs/persistence-changes/2026-10-07-title-reasoning-effort.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-10-07-title-reasoning-effort.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-10-07-title-reasoning-effort.schema.json +2990 -0
- package/references/official-docs/docs/persistence-changes/2026-10-07-title-reasoning-effort.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/README.i18n.yaml +4 -4
- package/references/official-docs/docs/persistence-changes/README.md +12 -10
- package/references/official-docs/docs/persistence-changes/README.zh.md +12 -10
- package/references/official-docs/docs/persistence-changes/historical-formats/README.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/historical-formats/README.md +1 -1
- package/references/official-docs/docs/persistence-changes/historical-formats/README.zh.md +1 -1
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.md +50 -50
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.zh.md +50 -50
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.md +14 -14
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.zh.md +14 -14
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.md +3 -3
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.zh.md +3 -3
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.md +10 -10
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.zh.md +10 -10
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.md +3 -3
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.zh.md +3 -3
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.md +13 -13
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.zh.md +13 -13
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.md +63 -63
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.zh.md +63 -63
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.md +54 -54
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.zh.md +54 -54
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.md +7 -7
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.zh.md +7 -7
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.md +27 -27
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.zh.md +27 -27
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.md +4 -4
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.zh.md +4 -4
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.md +27 -27
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.zh.md +27 -27
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.md +7 -7
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.zh.md +7 -7
- package/references/official-docs/docs/persistence-schema.json +2084 -1827
- package/references/official-docs/docs/session-format-status.i18n.yaml +6 -6
- package/references/official-docs/docs/session-format-status.md +6 -6
- package/references/official-docs/docs/session-format-status.zh.md +6 -6
- package/references/official-docs/docs/subsystems/README.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/README.md +4 -1
- package/references/official-docs/docs/subsystems/README.zh.md +4 -1
- package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +7 -7
- package/references/official-docs/docs/subsystems/agent-team.md +10 -10
- package/references/official-docs/docs/subsystems/agent-team.zh.md +10 -10
- package/references/official-docs/docs/subsystems/boot.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/boot.md +4 -4
- package/references/official-docs/docs/subsystems/boot.zh.md +4 -4
- package/references/official-docs/docs/subsystems/claude-code-mods.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/claude-code-mods.md +1 -1
- package/references/official-docs/docs/subsystems/claude-code-mods.zh.md +1 -1
- package/references/official-docs/docs/subsystems/jobs.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/jobs.md +2 -3
- package/references/official-docs/docs/subsystems/jobs.zh.md +2 -3
- package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +4 -4
- package/references/official-docs/docs/subsystems/llm-streaming.md +41 -14
- package/references/official-docs/docs/subsystems/llm-streaming.zh.md +41 -14
- package/references/official-docs/docs/subsystems/persistence.md +2 -0
- package/references/official-docs/docs/subsystems/persistence.zh.md +2 -0
- package/references/official-docs/docs/subsystems/plan.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/plan.md +1 -1
- package/references/official-docs/docs/subsystems/plan.zh.md +1 -1
- package/references/official-docs/docs/subsystems/session-query.md +2 -0
- package/references/official-docs/docs/subsystems/session-query.zh.md +2 -0
- package/references/official-docs/docs/subsystems/session-title.i18n.yaml +6 -6
- package/references/official-docs/docs/subsystems/session-title.md +14 -5
- package/references/official-docs/docs/subsystems/session-title.zh.md +14 -5
- package/references/official-docs/docs/subsystems/session.i18n.yaml +3 -0
- package/references/official-docs/docs/subsystems/session.md +48 -5
- package/references/official-docs/docs/subsystems/session.zh.md +48 -5
- package/references/official-docs/docs/subsystems/skills.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/skills.md +2 -2
- package/references/official-docs/docs/subsystems/skills.zh.md +2 -2
- package/references/official-docs/docs/subsystems/slots.md +10 -8
- package/references/official-docs/docs/subsystems/slots.zh.md +10 -8
- package/references/official-docs/docs/subsystems/ssh.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/ssh.md +22 -11
- package/references/official-docs/docs/subsystems/ssh.zh.md +22 -11
- package/references/official-docs/docs/subsystems/subagent.i18n.yaml +24 -27
- package/references/official-docs/docs/subsystems/subagent.md +165 -229
- package/references/official-docs/docs/subsystems/subagent.zh.md +167 -233
- package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/system-prompt.md +32 -2
- package/references/official-docs/docs/subsystems/system-prompt.zh.md +32 -2
- package/references/official-docs/docs/subsystems/tools.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/tools.md +3 -3
- package/references/official-docs/docs/subsystems/tools.zh.md +3 -3
- package/references/official-docs/docs/subsystems/translation.i18n.yaml +19 -0
- package/references/official-docs/docs/subsystems/translation.md +103 -0
- package/references/official-docs/docs/subsystems/translation.zh.md +103 -0
- package/references/official-docs/docs/subsystems/web-server.i18n.yaml +8 -8
- package/references/official-docs/docs/subsystems/web-server.md +43 -8
- package/references/official-docs/docs/subsystems/web-server.zh.md +43 -8
- package/references/official-docs/docs/subsystems/webhook.md +1 -1
- package/references/official-docs/docs/subsystems/webhook.zh.md +1 -1
- package/references/official-docs/docs/subsystems/workflow.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/workflow.md +1 -1
- package/references/official-docs/docs/subsystems/workflow.zh.md +1 -1
- package/references/official-docs/docs/subsystems/working-directory.i18n.yaml +13 -0
- package/references/official-docs/docs/subsystems/working-directory.md +64 -0
- package/references/official-docs/docs/subsystems/working-directory.zh.md +64 -0
- package/references/official-docs/docs/subsystems/workspace.md +2 -2
- package/references/official-docs/docs/subsystems/workspace.zh.md +2 -2
- package/references/official-docs/docs/subsystems/worktrees.i18n.yaml +13 -0
- package/references/official-docs/docs/subsystems/worktrees.md +76 -0
- package/references/official-docs/docs/subsystems/worktrees.zh.md +76 -0
- package/references/official-docs/docs/testing.i18n.yaml +2 -2
- package/references/official-docs/docs/testing.md +1 -1
- package/references/official-docs/docs/testing.zh.md +1 -1
- package/references/official-docs/docs/tool-catalog.i18n.yaml +57 -45
- package/references/official-docs/docs/tool-catalog.md +95 -41
- package/references/official-docs/docs/tool-catalog.zh.md +99 -45
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/bundled-python-tests/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/bundled-python-tests/guide.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/bundled-python-tests/guide.zh.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/deepseek-model-discovery/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/deepseek-model-discovery/guide.md +17 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/deepseek-model-discovery/guide.zh.md +17 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/desktop-test-auth-popup/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/desktop-test-auth-popup/guide.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/desktop-test-auth-popup/guide.zh.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-composition/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-composition/guide.md +28 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-composition/guide.zh.md +28 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/instruction-home-override/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/instruction-home-override/guide.md +20 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/instruction-home-override/guide.zh.md +20 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/mock-messages-events/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/mock-messages-events/guide.md +17 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/mock-messages-events/guide.zh.md +17 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/native-subagent-bundle-tools/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/native-subagent-bundle-tools/guide.md +31 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/native-subagent-bundle-tools/guide.zh.md +31 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/new-session-generations/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/new-session-generations/guide.md +20 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/new-session-generations/guide.zh.md +20 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/plugin-option-placement/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/plugin-option-placement/guide.md +20 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/plugin-option-placement/guide.zh.md +20 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-optional-resources/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-optional-resources/guide.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-optional-resources/guide.zh.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.md +21 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.zh.md +21 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-adapters/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-adapters/guide.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-adapters/guide.zh.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-provider-strategy/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-provider-strategy/guide.md +20 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-provider-strategy/guide.zh.md +20 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/ssh-helper-launch/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/ssh-helper-launch/guide.md +19 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/ssh-helper-launch/guide.zh.md +19 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/subagent-activations/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/subagent-activations/guide.md +59 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/subagent-activations/guide.zh.md +59 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.md +21 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.zh.md +21 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/terminal-command-labels/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/terminal-command-labels/guide.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/terminal-command-labels/guide.zh.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/tool-presentation-mode/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/tool-presentation-mode/guide.md +21 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/tool-presentation-mode/guide.zh.md +21 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/web-listener-trust-config/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/web-listener-trust-config/guide.md +36 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/web-listener-trust-config/guide.zh.md +36 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/working-directory/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/working-directory/guide.md +25 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/working-directory/guide.zh.md +25 -0
- package/references/official-docs/docs/user/guide/github-review.i18n.yaml +4 -4
- package/references/official-docs/docs/user/guide/github-review.md +7 -10
- package/references/official-docs/docs/user/guide/github-review.zh.md +7 -10
- package/references/official-docs/docs/user/guide/public-deployments.i18n.yaml +8 -8
- package/references/official-docs/docs/user/guide/public-deployments.md +9 -5
- package/references/official-docs/docs/user/guide/public-deployments.zh.md +9 -5
- package/references/official-docs/packages/README.md +4 -6
- package/references/official-docs/website-docs.ts +1 -0
- package/references/official-plugin-dev-skill.md +2 -2
- package/references/sources.md +1 -1
- package/scripts/build-llms-full.mjs +8 -0
- package/scripts/verify-kit.ps1 +8 -1
- package/templates/js/README-es.md +1 -1
- package/templates/js/README-hi.md +1 -1
- package/templates/js/README-pt.md +1 -1
- package/templates/js/README-zh.md +1 -1
- package/templates/js/README.md +1 -1
- package/templates/ts/README-es.md +1 -1
- package/templates/ts/README-hi.md +1 -1
- package/templates/ts/README-pt.md +1 -1
- package/templates/ts/README-zh.md +1 -1
- package/templates/ts/README.md +1 -1
|
@@ -529,7 +529,7 @@ interface LlmModelContext {
|
|
|
529
529
|
}
|
|
530
530
|
```
|
|
531
531
|
|
|
532
|
-
Reasoning effort is another exact-route capability. The core brands identifiers but does not enumerate their values; each adapter owns the
|
|
532
|
+
Reasoning effort is another exact-route capability. The core brands identifiers but does not enumerate their values; each adapter owns the choices in increasing effort order, display names, and optional deployment default. Ordering compares selectable controls, not predicted token use, cost, or latency.
|
|
533
533
|
|
|
534
534
|
```ts type-equiv
|
|
535
535
|
/** Adapter-owned identifier for one model's selectable reasoning effort. */
|
|
@@ -551,7 +551,7 @@ interface LlmReasoningEffortInfo {
|
|
|
551
551
|
```ts type-equiv
|
|
552
552
|
/** Selectable reasoning efforts for one exact provider/model route. */
|
|
553
553
|
interface LlmModelReasoningInfo {
|
|
554
|
-
/** Supported efforts
|
|
554
|
+
/** Supported efforts from least to greatest selectable reasoning effort, not predicted token use or latency. */
|
|
555
555
|
efforts: readonly LlmReasoningEffortInfo[]
|
|
556
556
|
/**
|
|
557
557
|
* Adapter-configured default materialized into requests when callers omit
|
|
@@ -634,8 +634,8 @@ interface GenerateOptions {
|
|
|
634
634
|
sessionId?: Branded<'SessionId'>
|
|
635
635
|
/**
|
|
636
636
|
* Provider-neutral classification for an auxiliary model call. Adapters may
|
|
637
|
-
* map the purpose to model-hidden transport metadata
|
|
638
|
-
*
|
|
637
|
+
* map the purpose to model-hidden transport metadata. Ordinary conversation
|
|
638
|
+
* requests leave it unset.
|
|
639
639
|
*/
|
|
640
640
|
purpose?: 'compaction' | 'session-title'
|
|
641
641
|
}
|
|
@@ -744,6 +744,16 @@ On the wire, a loop-built request is the derived history alone: the rendered pro
|
|
|
744
744
|
|
|
745
745
|
FIXME(call-config-shape): revisit which remaining fields are genuinely epoch-level for cache purposes (`model` and the model-owned reasoning effort are explicit; the sampling scalars sit here out of caution).
|
|
746
746
|
|
|
747
|
+
```ts type-equiv
|
|
748
|
+
/** Concrete generation settings; omitted controls use the selected route's defaults. */
|
|
749
|
+
interface LlmCallControls {
|
|
750
|
+
reasoningEffort?: ReasoningEffortId
|
|
751
|
+
temperature?: number
|
|
752
|
+
maxTokens?: number
|
|
753
|
+
stop?: string[]
|
|
754
|
+
}
|
|
755
|
+
```
|
|
756
|
+
|
|
747
757
|
```ts type-equiv
|
|
748
758
|
/**
|
|
749
759
|
* Provider, model, reasoning effort, and sampling scalars of one conversation's
|
|
@@ -751,16 +761,28 @@ FIXME(call-config-shape): revisit which remaining fields are genuinely epoch-lev
|
|
|
751
761
|
* the loop builds requests from the logged header rather than accepting these
|
|
752
762
|
* per call.
|
|
753
763
|
*/
|
|
754
|
-
interface LlmCallConfig {
|
|
764
|
+
interface LlmCallConfig extends LlmCallControls {
|
|
755
765
|
provider: string
|
|
756
766
|
model: string
|
|
757
|
-
reasoningEffort?: ReasoningEffortId
|
|
758
|
-
temperature?: number
|
|
759
|
-
maxTokens?: number
|
|
760
|
-
stop?: string[]
|
|
761
767
|
}
|
|
762
768
|
```
|
|
763
769
|
|
|
770
|
+
```ts type-equiv
|
|
771
|
+
/**
|
|
772
|
+
* Synchronous, pure configuration of one call before defaults and validation.
|
|
773
|
+
* Compose functions in the desired order; later writes replace earlier ones.
|
|
774
|
+
* The returned controls cannot change the captured route. Errors reject
|
|
775
|
+
* preparation before dispatch; only the resolved configuration is recordable.
|
|
776
|
+
* @param controls - detached, deeply frozen proposed controls, without defaults.
|
|
777
|
+
* @param model - detached, deeply frozen metadata from the captured adapter generation.
|
|
778
|
+
* @returns concrete controls; omitted fields receive the route's defaults.
|
|
779
|
+
*/
|
|
780
|
+
type ConfigureCall = (
|
|
781
|
+
controls: Readonly<LlmCallControls>,
|
|
782
|
+
model: Readonly<LlmResolvedModelInfo>,
|
|
783
|
+
) => LlmCallControls
|
|
784
|
+
```
|
|
785
|
+
|
|
764
786
|
```ts type-equiv
|
|
765
787
|
/**
|
|
766
788
|
* Effective config fields supplied by exact-model adapter resolution rather
|
|
@@ -774,7 +796,7 @@ interface LlmCallConfigAdapterDefaults {
|
|
|
774
796
|
|
|
775
797
|
## Official DeepSeek request extensions
|
|
776
798
|
|
|
777
|
-
`ctx.deepseekLlmApiExtensions` is the provider-specific registry for additive top-level fields on `deepseek-official` requests. Contributor plugins use `register(field, provider)` to claim one field; the adapter calls `prepare(request)` after serializing its base body and merges the returned fields before HTTP. The prepared `accept()` transaction runs after 2xx, so a contributor can commit delivery state without treating a transport or provider rejection as acceptance.
|
|
799
|
+
`ctx.deepseekLlmApiExtensions` is the provider-specific registry for additive top-level fields on `deepseek-official` requests. Contributor plugins use `register(field, provider)` to claim one field; the adapter calls `prepare(request)` after serializing its base body and merges the returned fields before HTTP. The prepared `accept()` transaction runs after 2xx, so a contributor can commit delivery state without treating a transport or provider rejection as acceptance. A contributor whose preparation throws is logged and omitted from that request, and an acceptance failure is logged without failing the request; a base-field collision uses `REQUEST_EXTENSION` and fails the model request. A merged body that fails to serialize is sent without extension fields; acceptance is skipped and the provider plugin logs the omitted field names.
|
|
778
800
|
|
|
779
801
|
The [wire reference](../deepseek-llm-api-wire-extensions.md) defines the exact request headers, extension transaction, field versions, and receiver obligations. The shipped composition registers [`dsh_session_log`](../../packages/session/session-log-deepseek/README.md) as a lossless incremental canonical-log suffix and [`dsh_plugin_packages`](../../packages/llm/plugin-package-inventory-deepseek/README.md) as the complete active Loader-backed package set. These fields remain outside model messages and are absent from the pi-ai adapter path.
|
|
780
802
|
|
|
@@ -909,8 +931,9 @@ register<K extends keyof DeepSeekLlmApiExtensionMap>( field: K, provider: DeepSe
|
|
|
909
931
|
|
|
910
932
|
/**
|
|
911
933
|
* Prepare every currently registered field from one immutable base request.
|
|
912
|
-
*
|
|
913
|
-
*
|
|
934
|
+
* A provider whose preparation throws, or whose value cannot be cloned, is omitted
|
|
935
|
+
* from this request; the first such failure per field is logged. Only cancellation rejects. Field values are cloned
|
|
936
|
+
* and frozen; providers retain no mutable alias to the outgoing request.
|
|
914
937
|
* @param request - exact serialized request facts before extension fields.
|
|
915
938
|
* @returns detached fields and their idempotent joint acceptance transaction.
|
|
916
939
|
*/
|
|
@@ -1054,11 +1077,15 @@ async resolveCallConfig(config: LlmCallConfig, signal?: AbortSignal): Promise<Ll
|
|
|
1054
1077
|
* Resolve one call under its current adapter registration. The returned
|
|
1055
1078
|
* one-shot handle keeps that registration across header logging and dispatch,
|
|
1056
1079
|
* so HMR cannot combine one adapter's capability result with another adapter.
|
|
1057
|
-
*
|
|
1080
|
+
* An optional synchronous callback selects concrete controls using captured
|
|
1081
|
+
* model metadata. Defaults and validation apply to its result. Callback
|
|
1082
|
+
* failures and cancellation reject preparation before dispatch.
|
|
1083
|
+
* @param config - provider/model route and optional concrete request controls.
|
|
1058
1084
|
* @param signal - optional cancellation for adapter-owned capability lookup.
|
|
1085
|
+
* @param configure - pure control selection, called once before defaults and validation.
|
|
1059
1086
|
* @returns a prepared config and its registration-bound stream entry point.
|
|
1060
1087
|
*/
|
|
1061
|
-
async prepareCall(config: LlmCallConfig, signal?: AbortSignal): Promise<PreparedLlmCall>
|
|
1088
|
+
async prepareCall( config: LlmCallConfig, signal?: AbortSignal, configure?: ConfigureCall, ): Promise<PreparedLlmCall>
|
|
1062
1089
|
|
|
1063
1090
|
/**
|
|
1064
1091
|
* Stream one model call as raw chunks (token-level deltas). Replay state is
|
|
@@ -535,7 +535,7 @@ interface LlmModelContext {
|
|
|
535
535
|
}
|
|
536
536
|
```
|
|
537
537
|
|
|
538
|
-
|
|
538
|
+
推理强度是另一项确切路由能力。核心为标识符添加品牌类型,但不枚举其值;每个适配器负责按强度递增排列的选项、显示名称与可选部署默认值。该顺序比较可选控制,不预测 token 用量、成本或延迟。
|
|
539
539
|
|
|
540
540
|
```ts type-equiv
|
|
541
541
|
/** Adapter-owned identifier for one model's selectable reasoning effort. */
|
|
@@ -557,7 +557,7 @@ interface LlmReasoningEffortInfo {
|
|
|
557
557
|
```ts type-equiv
|
|
558
558
|
/** Selectable reasoning efforts for one exact provider/model route. */
|
|
559
559
|
interface LlmModelReasoningInfo {
|
|
560
|
-
/** Supported efforts
|
|
560
|
+
/** Supported efforts from least to greatest selectable reasoning effort, not predicted token use or latency. */
|
|
561
561
|
efforts: readonly LlmReasoningEffortInfo[]
|
|
562
562
|
/**
|
|
563
563
|
* Adapter-configured default materialized into requests when callers omit
|
|
@@ -640,8 +640,8 @@ interface GenerateOptions {
|
|
|
640
640
|
sessionId?: Branded<'SessionId'>
|
|
641
641
|
/**
|
|
642
642
|
* Provider-neutral classification for an auxiliary model call. Adapters may
|
|
643
|
-
* map the purpose to model-hidden transport metadata
|
|
644
|
-
*
|
|
643
|
+
* map the purpose to model-hidden transport metadata. Ordinary conversation
|
|
644
|
+
* requests leave it unset.
|
|
645
645
|
*/
|
|
646
646
|
purpose?: 'compaction' | 'session-title'
|
|
647
647
|
}
|
|
@@ -750,6 +750,16 @@ interface LlmDiscoveredModel {
|
|
|
750
750
|
|
|
751
751
|
FIXME(call-config-shape):重新审视其余哪些字段出于缓存目的确实属于 epoch 层级(`model` 和模型持有的推理强度已明确属于;采样标量目前出于谨慎保留在此)。
|
|
752
752
|
|
|
753
|
+
```ts type-equiv
|
|
754
|
+
/** Concrete generation settings; omitted controls use the selected route's defaults. */
|
|
755
|
+
interface LlmCallControls {
|
|
756
|
+
reasoningEffort?: ReasoningEffortId
|
|
757
|
+
temperature?: number
|
|
758
|
+
maxTokens?: number
|
|
759
|
+
stop?: string[]
|
|
760
|
+
}
|
|
761
|
+
```
|
|
762
|
+
|
|
753
763
|
```ts type-equiv
|
|
754
764
|
/**
|
|
755
765
|
* Provider, model, reasoning effort, and sampling scalars of one conversation's
|
|
@@ -757,16 +767,28 @@ FIXME(call-config-shape):重新审视其余哪些字段出于缓存目的确
|
|
|
757
767
|
* the loop builds requests from the logged header rather than accepting these
|
|
758
768
|
* per call.
|
|
759
769
|
*/
|
|
760
|
-
interface LlmCallConfig {
|
|
770
|
+
interface LlmCallConfig extends LlmCallControls {
|
|
761
771
|
provider: string
|
|
762
772
|
model: string
|
|
763
|
-
reasoningEffort?: ReasoningEffortId
|
|
764
|
-
temperature?: number
|
|
765
|
-
maxTokens?: number
|
|
766
|
-
stop?: string[]
|
|
767
773
|
}
|
|
768
774
|
```
|
|
769
775
|
|
|
776
|
+
```ts type-equiv
|
|
777
|
+
/**
|
|
778
|
+
* Synchronous, pure configuration of one call before defaults and validation.
|
|
779
|
+
* Compose functions in the desired order; later writes replace earlier ones.
|
|
780
|
+
* The returned controls cannot change the captured route. Errors reject
|
|
781
|
+
* preparation before dispatch; only the resolved configuration is recordable.
|
|
782
|
+
* @param controls - detached, deeply frozen proposed controls, without defaults.
|
|
783
|
+
* @param model - detached, deeply frozen metadata from the captured adapter generation.
|
|
784
|
+
* @returns concrete controls; omitted fields receive the route's defaults.
|
|
785
|
+
*/
|
|
786
|
+
type ConfigureCall = (
|
|
787
|
+
controls: Readonly<LlmCallControls>,
|
|
788
|
+
model: Readonly<LlmResolvedModelInfo>,
|
|
789
|
+
) => LlmCallControls
|
|
790
|
+
```
|
|
791
|
+
|
|
770
792
|
```ts type-equiv
|
|
771
793
|
/**
|
|
772
794
|
* Effective config fields supplied by exact-model adapter resolution rather
|
|
@@ -780,7 +802,7 @@ interface LlmCallConfigAdapterDefaults {
|
|
|
780
802
|
|
|
781
803
|
## DeepSeek 官方请求扩展
|
|
782
804
|
|
|
783
|
-
`ctx.deepseekLlmApiExtensions` 是用于向 `deepseek-official` 请求添加顶层字段的提供方特定注册表。贡献插件通过 `register(field, provider)` 认领一个字段;适配器在序列化基础正文后调用 `prepare(request)`,并在 HTTP 前合并返回字段。已准备的 `accept()` 事务会在 2xx
|
|
805
|
+
`ctx.deepseekLlmApiExtensions` 是用于向 `deepseek-official` 请求添加顶层字段的提供方特定注册表。贡献插件通过 `register(field, provider)` 认领一个字段;适配器在序列化基础正文后调用 `prepare(request)`,并在 HTTP 前合并返回字段。已准备的 `accept()` 事务会在 2xx 后运行,因此贡献方可以提交交付状态,而不会把传输失败或提供方拒绝当作接受。贡献方准备时抛错会被记录并在该次请求中省略,接受失败只记录告警而不使请求失败;与基础字段冲突时使用 `REQUEST_EXTENSION` 并使模型请求失败。合并后的正文无法序列化时,请求不带扩展字段发出,跳过接受,并由提供方插件记录被省略的字段名。
|
|
784
806
|
|
|
785
807
|
[协议参考](../deepseek-llm-api-wire-extensions.zh.md)定义确切的请求标头、扩展事务、字段版本和接收方义务。随附组合会将 [`dsh_session_log`](../../packages/session/session-log-deepseek/README.zh.md) 注册为无损增量权威日志后缀,并将 [`dsh_plugin_packages`](../../packages/llm/plugin-package-inventory-deepseek/README.zh.md) 注册为完整存活 Loader 包集合。这些字段仍位于模型消息之外,也不会进入 pi-ai 适配器路径。
|
|
786
808
|
|
|
@@ -915,8 +937,9 @@ register<K extends keyof DeepSeekLlmApiExtensionMap>( field: K, provider: DeepSe
|
|
|
915
937
|
|
|
916
938
|
/**
|
|
917
939
|
* Prepare every currently registered field from one immutable base request.
|
|
918
|
-
*
|
|
919
|
-
*
|
|
940
|
+
* A provider whose preparation throws, or whose value cannot be cloned, is omitted
|
|
941
|
+
* from this request; the first such failure per field is logged. Only cancellation rejects. Field values are cloned
|
|
942
|
+
* and frozen; providers retain no mutable alias to the outgoing request.
|
|
920
943
|
* @param request - exact serialized request facts before extension fields.
|
|
921
944
|
* @returns detached fields and their idempotent joint acceptance transaction.
|
|
922
945
|
*/
|
|
@@ -1060,11 +1083,15 @@ async resolveCallConfig(config: LlmCallConfig, signal?: AbortSignal): Promise<Ll
|
|
|
1060
1083
|
* Resolve one call under its current adapter registration. The returned
|
|
1061
1084
|
* one-shot handle keeps that registration across header logging and dispatch,
|
|
1062
1085
|
* so HMR cannot combine one adapter's capability result with another adapter.
|
|
1063
|
-
*
|
|
1086
|
+
* An optional synchronous callback selects concrete controls using captured
|
|
1087
|
+
* model metadata. Defaults and validation apply to its result. Callback
|
|
1088
|
+
* failures and cancellation reject preparation before dispatch.
|
|
1089
|
+
* @param config - provider/model route and optional concrete request controls.
|
|
1064
1090
|
* @param signal - optional cancellation for adapter-owned capability lookup.
|
|
1091
|
+
* @param configure - pure control selection, called once before defaults and validation.
|
|
1065
1092
|
* @returns a prepared config and its registration-bound stream entry point.
|
|
1066
1093
|
*/
|
|
1067
|
-
async prepareCall(config: LlmCallConfig, signal?: AbortSignal): Promise<PreparedLlmCall>
|
|
1094
|
+
async prepareCall( config: LlmCallConfig, signal?: AbortSignal, configure?: ConfigureCall, ): Promise<PreparedLlmCall>
|
|
1068
1095
|
|
|
1069
1096
|
/**
|
|
1070
1097
|
* Stream one model call as raw chunks (token-level deltas). Replay state is
|
|
@@ -311,6 +311,8 @@ type SessionPersistenceRevision = Branded<'SessionPersistenceRevision'>
|
|
|
311
311
|
interface SessionPersistenceSnapshot {
|
|
312
312
|
/** Detached metadata for one stored session. */
|
|
313
313
|
readonly header: SessionHeader
|
|
314
|
+
/** Header-only format classification; absent without versioned artifact metadata. */
|
|
315
|
+
readonly formatStatus?: 'current' | 'migration-required'
|
|
314
316
|
/** Opaque change token; see {@link SessionPersistence.stat}. */
|
|
315
317
|
readonly revision: SessionPersistenceRevision
|
|
316
318
|
/** Logical event count, when the backend can provide it cheaply from metadata; otherwise absent. */
|
|
@@ -311,6 +311,8 @@ type SessionPersistenceRevision = Branded<'SessionPersistenceRevision'>
|
|
|
311
311
|
interface SessionPersistenceSnapshot {
|
|
312
312
|
/** Detached metadata for one stored session. */
|
|
313
313
|
readonly header: SessionHeader
|
|
314
|
+
/** Header-only format classification; absent without versioned artifact metadata. */
|
|
315
|
+
readonly formatStatus?: 'current' | 'migration-required'
|
|
314
316
|
/** Opaque change token; see {@link SessionPersistence.stat}. */
|
|
315
317
|
readonly revision: SessionPersistenceRevision
|
|
316
318
|
/** Logical event count, when the backend can provide it cheaply from metadata; otherwise absent. */
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
en: ee04468005fae8e1
|
|
16
16
|
zh: 1347d554102951f2
|
|
17
17
|
/plan-mode/the-exit-tool-and-the-plan-command:
|
|
18
|
-
en:
|
|
19
|
-
zh:
|
|
18
|
+
en: b5bbc440552d7ade
|
|
19
|
+
zh: 17fb1cfed1bc48ef
|
|
20
20
|
/plan-mode/the-service:
|
|
21
21
|
en: 07c3eec12e0dc75c
|
|
22
22
|
zh: 183d73f6672e2c5a
|
|
@@ -30,7 +30,7 @@ A missing, blank, or non-string `section` and any unknown key fail at plugin loa
|
|
|
30
30
|
|
|
31
31
|
## The exit tool and the `/plan` command
|
|
32
32
|
|
|
33
|
-
[`exit_plan_mode`](../tool-catalog.md#deepseek-aidsh-plan-mode) stays registered while plan mode is inactive, so entering or leaving plan mode changes only the prompt section, never the request tool catalog; execution outside plan mode fails. In plan mode it requires a complete markdown plan starting with a `#` heading and presents it for review through the [user-questions seam](user-questions.md). Approval returns `{ approved: true }` and records a silent (non-narrated) pending exit that is appended at the next accepted in-turn pre-step. Plan guidance therefore remains active for the rest of the assistant's current tool batch, and the tool result itself reports the transition. Keep-planning is a failed call carrying the user's feedback, so the model revises and presents again
|
|
33
|
+
[`exit_plan_mode`](../tool-catalog.md#deepseek-aidsh-plan-mode) stays registered while plan mode is inactive, so entering or leaving plan mode changes only the prompt section, never the request tool catalog; execution outside plan mode fails. In plan mode it requires a complete markdown plan starting with a `#` heading and presents it for review through the [user-questions seam](user-questions.md). Approval returns `{ approved: true }` and records a silent (non-narrated) pending exit that is appended at the next accepted in-turn pre-step. Plan guidance therefore remains active for the rest of the assistant's current tool batch, and the tool result itself reports the transition. Keep-planning is a failed call carrying the user's feedback, so the model revises and presents again. A dismissed review returns `{ approved: false }` and concludes the turn, so plan mode stays active until the user's next message. A missing interaction channel and a service reload during review also fail the call rather than silently leaving plan mode.
|
|
34
34
|
|
|
35
35
|
When [`ctx.commands`](commands.md) is composed, the plugin registers `/plan [off|message]`: bare `/plan` selects plan mode, any other non-empty message selects it and then submits the text through `agent.steer()` so it becomes the next step's ordinary logged user message under plan guidance, and the exact argument `off` selects inactive, which also cancels a pending entry before it is appended and becomes visible to a request.
|
|
36
36
|
|
|
@@ -30,7 +30,7 @@ interface PlanModeConfig {
|
|
|
30
30
|
|
|
31
31
|
## 退出工具与 `/plan` 命令
|
|
32
32
|
|
|
33
|
-
[`exit_plan_mode`](../tool-catalog.zh.md#deepseek-aidsh-plan-mode) 在计划模式未激活时仍保持注册,因此进入或离开计划模式只改变提示词段落,绝不改变请求的工具目录;在计划模式之外执行会失败。在计划模式中,它要求一份以 `#` 标题开头的完整 markdown 计划,并通过[用户交互 seam](user-questions.zh.md) 呈交评审。批准返回 `{ approved: true }`,并记录一个静默(不叙述)的待生效退出,由下一个被接受的轮内 pre-step 追加。因此,计划指引在 assistant
|
|
33
|
+
[`exit_plan_mode`](../tool-catalog.zh.md#deepseek-aidsh-plan-mode) 在计划模式未激活时仍保持注册,因此进入或离开计划模式只改变提示词段落,绝不改变请求的工具目录;在计划模式之外执行会失败。在计划模式中,它要求一份以 `#` 标题开头的完整 markdown 计划,并通过[用户交互 seam](user-questions.zh.md) 呈交评审。批准返回 `{ approved: true }`,并记录一个静默(不叙述)的待生效退出,由下一个被接受的轮内 pre-step 追加。因此,计划指引在 assistant 当前这批工具调用的剩余部分继续生效,而工具结果本身会报告这次转换。「继续规划」则是一次携带用户反馈的失败调用,模型据此修订并再次呈交。放弃评审返回 `{ approved: false }` 并结束当前轮次,计划模式保持激活,直到用户发出下一条消息。评审期间交互通道缺失或服务重载同样使调用失败,而不是静默离开计划模式。
|
|
34
34
|
|
|
35
35
|
当 [`ctx.commands`](commands.zh.md) 被组合时,插件注册 `/plan [off|message]`:单独的 `/plan` 选择计划模式;任何其他非空消息先选择计划模式,再通过 `agent.steer()` 提交该文本,使其在计划指引下成为下一步骤的普通已记录用户消息;确切参数 `off` 选择未激活,这还会在待生效条目被追加并对请求可见之前将其取消。
|
|
36
36
|
|
|
@@ -24,6 +24,8 @@ interface SessionRecord {
|
|
|
24
24
|
live: boolean
|
|
25
25
|
/** Whether the active persistence backend currently lists the id, including a created-but-unmaterialized session it already observes. */
|
|
26
26
|
persisted: boolean
|
|
27
|
+
/** Current for live Sessions; otherwise the persistence format status when reported. */
|
|
28
|
+
formatStatus?: 'current' | 'migration-required'
|
|
27
29
|
}
|
|
28
30
|
```
|
|
29
31
|
|
|
@@ -24,6 +24,8 @@ interface SessionRecord {
|
|
|
24
24
|
live: boolean
|
|
25
25
|
/** Whether the active persistence backend currently lists the id, including a created-but-unmaterialized session it already observes. */
|
|
26
26
|
persisted: boolean
|
|
27
|
+
/** Current for live Sessions; otherwise the persistence format status when reported. */
|
|
28
|
+
formatStatus?: 'current' | 'migration-required'
|
|
27
29
|
}
|
|
28
30
|
```
|
|
29
31
|
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
# After editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write docs/subsystems/session-title.md
|
|
5
5
|
/session-titles:
|
|
6
|
-
en:
|
|
7
|
-
zh:
|
|
6
|
+
en: 40ede027d4f62b35
|
|
7
|
+
zh: 0efd7cb0710a0ed9
|
|
8
8
|
/session-titles/durable-title-state:
|
|
9
9
|
en: c6be2d86647daa6f
|
|
10
10
|
zh: fb259d9fb4738f39
|
|
11
11
|
/session-titles/auxiliary-request-record:
|
|
12
|
-
en:
|
|
13
|
-
zh:
|
|
12
|
+
en: e5d5045ddfa7e771
|
|
13
|
+
zh: 8c989ef59853cce4
|
|
14
14
|
/session-titles/provider-input-and-output:
|
|
15
|
-
en:
|
|
16
|
-
zh:
|
|
15
|
+
en: 28ee84e62db773f0
|
|
16
|
+
zh: 93beca6fbcd02c4e
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
English | [中文](session-title.zh.md)
|
|
4
4
|
|
|
5
|
-
Durable latest-wins title state and the optional asynchronous provider vocabulary owned by [`@deepseek-ai/dsh-session-title`](../../packages/session/session-title). The shared
|
|
5
|
+
Durable latest-wins title state and the optional asynchronous provider vocabulary owned by [`@deepseek-ai/dsh-session-title`](../../packages/session/session-title). The shared execution module owns the exact auxiliary request record. Package READMEs own timing, fallback, failure, and fork behavior; the generated [persistence catalog](../persistence-catalog.md) owns the complete event declarations.
|
|
6
6
|
|
|
7
7
|
Sources: [`packages/session/session-title/src/index.ts`](../../packages/session/session-title/src/index.ts), [`packages/session/session-title-llm/src/index.ts`](../../packages/session/session-title-llm/src/index.ts)
|
|
8
8
|
|
|
@@ -64,7 +64,7 @@ interface SessionTitleSnapshot extends SessionTitleEventData {
|
|
|
64
64
|
|
|
65
65
|
## Auxiliary request record
|
|
66
66
|
|
|
67
|
-
The shared
|
|
67
|
+
The shared execution module records each validated, dispatchable title request before calling the model. The payload reproduces the model-visible system and message input, routing, output limit, resolved reasoning effort, provider ownership, and source-message attribution even when generation later fails.
|
|
68
68
|
|
|
69
69
|
```ts type-equiv
|
|
70
70
|
/** Exact model-visible request recorded before one auxiliary title dispatch. */
|
|
@@ -81,12 +81,14 @@ interface SessionTitleLlmRequestEventData {
|
|
|
81
81
|
readonly messages: Message[]
|
|
82
82
|
/** Exact auxiliary output-token cap. */
|
|
83
83
|
readonly maxTokens: number
|
|
84
|
+
/** Resolved reasoning effort when recorded; older requests can omit it. */
|
|
85
|
+
readonly reasoningEffort?: ReasoningEffortId
|
|
84
86
|
}
|
|
85
87
|
```
|
|
86
88
|
|
|
87
89
|
## Provider input and output
|
|
88
90
|
|
|
89
|
-
The service snapshots eligible messages through one revision. A provider returns only seqs from that request; service-owned acceptance verifies ordering, normalizes the title, enforces the byte limit, and appends the title with its source-message seqs and source kind.
|
|
91
|
+
The service snapshots eligible messages through one revision and, immediately before each provider call, the latest accepted title including the fallback it just ensured. A provider returns only seqs from that request; service-owned acceptance verifies ordering, normalizes the title, enforces the byte limit, and appends the title with its source-message seqs and source kind.
|
|
90
92
|
|
|
91
93
|
```ts type-equiv
|
|
92
94
|
/** One eligible human text message exposed to title providers. */
|
|
@@ -112,6 +114,12 @@ interface SessionTitleProviderRequest {
|
|
|
112
114
|
readonly messages: readonly SessionTitleUserMessage[]
|
|
113
115
|
/** Exact current logged main-request route, when one has been recorded. */
|
|
114
116
|
readonly route?: SessionTitleModelIdentity
|
|
117
|
+
/**
|
|
118
|
+
* Latest accepted title captured at invocation, including an accepted
|
|
119
|
+
* fallback whose event may follow the last eligible message. Absent before
|
|
120
|
+
* any title is accepted. The provider decides whether and how to use it.
|
|
121
|
+
*/
|
|
122
|
+
readonly currentTitle?: SessionTitleSnapshot
|
|
115
123
|
/** Cancellation for supersession, disposal, timeout composition, or the explicit caller. */
|
|
116
124
|
readonly signal: AbortSignal
|
|
117
125
|
}
|
|
@@ -138,7 +146,7 @@ interface SessionTitleProvider {
|
|
|
138
146
|
readonly automatic: SessionTitleAutomaticMode
|
|
139
147
|
/**
|
|
140
148
|
* Produce one title revision.
|
|
141
|
-
* @param request - message snapshot, current route, session, and cancellation.
|
|
149
|
+
* @param request - message snapshot, current title, current route, session, and cancellation.
|
|
142
150
|
* @returns proposed title plus exact input seqs and the optional provider/model route used to generate it.
|
|
143
151
|
*/
|
|
144
152
|
generate(request: SessionTitleProviderRequest): Promise<SessionTitleProviderResult>
|
|
@@ -191,7 +199,8 @@ async refresh(session: Session, signal?: AbortSignal): Promise<SessionTitleSnaps
|
|
|
191
199
|
|
|
192
200
|
/**
|
|
193
201
|
* Register the sole optional title provider. Disposal aborts its pending and
|
|
194
|
-
* active work
|
|
202
|
+
* active work; a replacement may register once disposal has started, and the
|
|
203
|
+
* closing provider's late results never commit.
|
|
195
204
|
* @param provider - provider identity, cadence, and generation function.
|
|
196
205
|
* @returns exact Cordis effect disposer, which settles after active calls quiesce.
|
|
197
206
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[English](session-title.md) | 中文
|
|
4
4
|
|
|
5
|
-
[`@deepseek-ai/dsh-session-title`](../../packages/session/session-title)
|
|
5
|
+
[`@deepseek-ai/dsh-session-title`](../../packages/session/session-title) 所拥有的持久、后写覆盖的标题状态与可选异步提供方词汇。共享执行模块负责精确的辅助请求记录。各包 README 负责时序、回退、失败与 fork 行为;生成的[持久化日志事件目录](../persistence-catalog.zh.md)负责完整的事件声明。
|
|
6
6
|
|
|
7
7
|
源码:[`packages/session/session-title/src/index.ts`](../../packages/session/session-title/src/index.ts)、[`packages/session/session-title-llm/src/index.ts`](../../packages/session/session-title-llm/src/index.ts)
|
|
8
8
|
|
|
@@ -64,7 +64,7 @@ interface SessionTitleSnapshot extends SessionTitleEventData {
|
|
|
64
64
|
|
|
65
65
|
## 辅助请求记录
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
共享执行模块会在调用模型前,记录每一项已经过验证且可分发的标题请求。即使后续生成失败,载荷仍会复现模型可见的系统输入与消息输入、路由、输出上限、解析后的推理强度、提供方归属和源消息归因。
|
|
68
68
|
|
|
69
69
|
```ts type-equiv
|
|
70
70
|
/** Exact model-visible request recorded before one auxiliary title dispatch. */
|
|
@@ -81,12 +81,14 @@ interface SessionTitleLlmRequestEventData {
|
|
|
81
81
|
readonly messages: Message[]
|
|
82
82
|
/** Exact auxiliary output-token cap. */
|
|
83
83
|
readonly maxTokens: number
|
|
84
|
+
/** Resolved reasoning effort when recorded; older requests can omit it. */
|
|
85
|
+
readonly reasoningEffort?: ReasoningEffortId
|
|
84
86
|
}
|
|
85
87
|
```
|
|
86
88
|
|
|
87
89
|
## 提供方输入与输出
|
|
88
90
|
|
|
89
|
-
|
|
91
|
+
服务会对截至某一修订的合格消息、以及在每次提供方调用前刚刚确保的回退和最新已接纳标题创建快照。提供方返回的 seq 仅可来自该请求;由服务负责的接纳流程会验证顺序、规范化标题、强制执行字节上限,并追加标题及其来源消息 seq 和来源类型。
|
|
90
92
|
|
|
91
93
|
```ts type-equiv
|
|
92
94
|
/** One eligible human text message exposed to title providers. */
|
|
@@ -112,6 +114,12 @@ interface SessionTitleProviderRequest {
|
|
|
112
114
|
readonly messages: readonly SessionTitleUserMessage[]
|
|
113
115
|
/** Exact current logged main-request route, when one has been recorded. */
|
|
114
116
|
readonly route?: SessionTitleModelIdentity
|
|
117
|
+
/**
|
|
118
|
+
* Latest accepted title captured at invocation, including an accepted
|
|
119
|
+
* fallback whose event may follow the last eligible message. Absent before
|
|
120
|
+
* any title is accepted. The provider decides whether and how to use it.
|
|
121
|
+
*/
|
|
122
|
+
readonly currentTitle?: SessionTitleSnapshot
|
|
115
123
|
/** Cancellation for supersession, disposal, timeout composition, or the explicit caller. */
|
|
116
124
|
readonly signal: AbortSignal
|
|
117
125
|
}
|
|
@@ -138,7 +146,7 @@ interface SessionTitleProvider {
|
|
|
138
146
|
readonly automatic: SessionTitleAutomaticMode
|
|
139
147
|
/**
|
|
140
148
|
* Produce one title revision.
|
|
141
|
-
* @param request - message snapshot, current route, session, and cancellation.
|
|
149
|
+
* @param request - message snapshot, current title, current route, session, and cancellation.
|
|
142
150
|
* @returns proposed title plus exact input seqs and the optional provider/model route used to generate it.
|
|
143
151
|
*/
|
|
144
152
|
generate(request: SessionTitleProviderRequest): Promise<SessionTitleProviderResult>
|
|
@@ -191,7 +199,8 @@ async refresh(session: Session, signal?: AbortSignal): Promise<SessionTitleSnaps
|
|
|
191
199
|
|
|
192
200
|
/**
|
|
193
201
|
* Register the sole optional title provider. Disposal aborts its pending and
|
|
194
|
-
* active work
|
|
202
|
+
* active work; a replacement may register once disposal has started, and the
|
|
203
|
+
* closing provider's late results never commit.
|
|
195
204
|
* @param provider - provider identity, cadence, and generation function.
|
|
196
205
|
* @returns exact Cordis effect disposer, which settles after active calls quiesce.
|
|
197
206
|
*/
|
|
@@ -59,6 +59,9 @@
|
|
|
59
59
|
/sessions/plugin-contributed-log-only-events:
|
|
60
60
|
en: 0a014a755b75449f
|
|
61
61
|
zh: 9d59d74490a1bcb2
|
|
62
|
+
/sessions/plugin-contributed-log-only-events/plugin-records:
|
|
63
|
+
en: 15102fd0b937fbf3
|
|
64
|
+
zh: 37ebf1d715db097c
|
|
62
65
|
/sessions/durability-contract:
|
|
63
66
|
en: 62e3e4fbcba292a3
|
|
64
67
|
zh: cb6dcaf531621e85
|
|
@@ -752,6 +752,49 @@ When several events in one plugin-owned family assemble into one Web Client Conv
|
|
|
752
752
|
|
|
753
753
|
The hook bridges' `hook/invoked` / `hook/result` pairs (from `@deepseek-ai/dsh-hook-protocol`) correlate by `handlerId`. `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, and `Stop` fire inside the loop's open turn, so their `hook/*` records are turn-enclosed by construction. `SessionStart` gets no `hook/*` record because it runs before turn 1; its context remains pending in the inbox until a waking delivery opens a turn.
|
|
754
754
|
|
|
755
|
+
### Plugin records
|
|
756
|
+
|
|
757
|
+
Experimental packages declare plugin-owned state in `PluginRecordMap`: `appendPluginRecord()` uses each declaration to type its name and payload, and appends an event marked `ignorable: true` in the `plugin:` namespace. `pluginRecordOf()` reads stored records with unknown payloads regardless of current declarations. The [experimental persistence catalog](../experimental-persistence-catalog.md) lists current declarations. The [package README](../../packages/core/session/README.md#write-experimental-plugin-records) owns the caller restriction, retention, and read path.
|
|
758
|
+
|
|
759
|
+
```ts type-equiv
|
|
760
|
+
/**
|
|
761
|
+
* Event type of an experimental plugin record: `plugin:` followed by
|
|
762
|
+
* slash-separated segments of lowercase letters, digits, `.`, `_`, and `-`,
|
|
763
|
+
* each starting with a letter or digit. A record type is never a
|
|
764
|
+
* {@link SessionEventMap} member.
|
|
765
|
+
*/
|
|
766
|
+
type PluginRecordType = `plugin:${string}`
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
```ts type-equiv
|
|
770
|
+
/**
|
|
771
|
+
* Payloads written by experimental packages, keyed by their `plugin:` record
|
|
772
|
+
* names. Packages augment this map to type writes and enter the current plugin
|
|
773
|
+
* record catalog; these declarations do not enter {@link SessionEventMap} or
|
|
774
|
+
* released persistence schemas. Stored records still require owner validation.
|
|
775
|
+
*/
|
|
776
|
+
interface PluginRecordMap {}
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
```ts type-equiv
|
|
780
|
+
/**
|
|
781
|
+
* One committed experimental plugin record, read from the log by
|
|
782
|
+
* `pluginRecordOf`. The record's owner validates `data` before use, because a
|
|
783
|
+
* restored record carries whatever JSON an earlier build of its owner wrote,
|
|
784
|
+
* or a V3 event that a format migration renamed into the `plugin:` namespace held.
|
|
785
|
+
*/
|
|
786
|
+
interface PluginRecord {
|
|
787
|
+
/** The record type, chosen by the owning plugin. */
|
|
788
|
+
readonly type: PluginRecordType
|
|
789
|
+
/** The record's position in the Session log. */
|
|
790
|
+
readonly seq: SessionSeq
|
|
791
|
+
/** Unix epoch milliseconds at append. */
|
|
792
|
+
readonly time: number
|
|
793
|
+
/** The JSON payload as committed. */
|
|
794
|
+
readonly data: unknown
|
|
795
|
+
}
|
|
796
|
+
```
|
|
797
|
+
|
|
755
798
|
## Durability contract
|
|
756
799
|
|
|
757
800
|
What a persistence backend relies on: the durable log persists every event losslessly, and every Assistant attempt is one `assistant/message` or `assistant/attempt` whose embedded compact stream preserves the original timed chunks. `seq` stays contiguous across these settlements and all interleaved events. A backend may choose its own storage framing for an event batch as long as a handle's `read()` returns the exact appended events; current JSONL writes one row per event (see [persistence.md](persistence.md)). All `event.data` must be JSON-serializable; `Session.append` enforces this at the source (throwing on non-serializable data), so a bad event never enters the log and `session.snapshotEvents()` always equals what a backend can persist. Adding an event type that carries non-serializable data, corrupts core execution nesting, or violates its owner's declared relation is a breaking change to the on-disk format.
|
|
@@ -879,10 +922,10 @@ workspaceDesktop(): { name: string; available: boolean; fileManager: 'finder' |
|
|
|
879
922
|
* Fork one cold-readable exact event prefix into a new Session. An omitted
|
|
880
923
|
* boundary selects the latest completed-turn prefix; an open cut receives
|
|
881
924
|
* synthetic fork closers.
|
|
882
|
-
* @param request - source Session
|
|
925
|
+
* @param request - source Session, optional exact inclusive event boundary, and migration preflight choice.
|
|
883
926
|
* @returns the new Session identity.
|
|
884
927
|
*/
|
|
885
|
-
@Remote('fork') fork(request: SessionForkRequest): Promise<SessionForkValue>
|
|
928
|
+
@Remote('fork') async fork(request: SessionForkRequest): Promise<SessionForkValue>
|
|
886
929
|
|
|
887
930
|
/**
|
|
888
931
|
* Admit one prompt after explicitly resuming its Session.
|
|
@@ -931,10 +974,10 @@ workspaceDesktop(): { name: string; available: boolean; fileManager: 'finder' |
|
|
|
931
974
|
@Remote({ mode: 'stream' }) follow(request: SessionFollowRequest, signal: AbortSignal): AsyncIterable<SessionFollowFrame>
|
|
932
975
|
|
|
933
976
|
/**
|
|
934
|
-
* Read
|
|
977
|
+
* Read exact projections, returning cached hints only when migration is required.
|
|
935
978
|
* @param request - Session whose current values are required.
|
|
936
|
-
* @param signal - cancellation for the Session
|
|
937
|
-
* @returns
|
|
979
|
+
* @param signal - cancellation for the Session read.
|
|
980
|
+
* @returns a sequenced baseline, cached hints when migration is deferred, or null when absent.
|
|
938
981
|
*/
|
|
939
982
|
@Remote('projections') async projections(request: SessionProjectionsRequest, signal: AbortSignal): Promise<SessionProjectionsValue>
|
|
940
983
|
|