dsh-plugin-guide 0.3.21 → 0.3.23
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 +15 -12
- package/README-hi.md +15 -12
- package/README-pt.md +15 -12
- package/README-zh.md +15 -12
- package/README.md +290 -280
- package/SKILL.md +36 -19
- package/dist/dsh-plugin-dev.js +113 -9
- package/guide/choosing-a-plugin.md +412 -0
- package/guide/choosing-a-plugin.zh-CN.md +414 -0
- package/guide/links.md +20 -2
- package/guide/migration-0.2.md +219 -0
- package/guide/plugin-dev-guide.md +99 -24
- package/guide/quick-reference.es.md +14 -8
- package/guide/quick-reference.hi.md +15 -9
- package/guide/quick-reference.md +18 -10
- package/guide/quick-reference.pt.md +15 -9
- package/guide/quick-reference.zh-CN.md +19 -11
- package/guide/release-engineering.md +2 -2
- package/guide/release-engineering.zh-CN.md +2 -2
- package/guide/unfixed-issues.md +117 -82
- package/guide/when-to-retire-a-plugin.md +127 -0
- package/guide/when-to-retire-a-plugin.zh-CN.md +127 -0
- package/icon.svg +5 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +8 -4
- package/references/official-docs/AGENTS.md +8 -5
- package/references/official-docs/CONTRIBUTING.i18n.yaml +6 -5
- package/references/official-docs/README.i18n.yaml +33 -5
- package/references/official-docs/README.zh.md +3 -3
- package/references/official-docs/SNAPSHOT.md +3 -3
- package/references/official-docs/THIRD_PARTY_NOTICES.md +34 -6
- package/references/official-docs/docs/AGENTS.md +4 -4
- package/references/official-docs/docs/agent-lifecycle.i18n.yaml +9 -5
- package/references/official-docs/docs/api-gateway.i18n.yaml +27 -5
- package/references/official-docs/docs/api-gateway.md +10 -9
- package/references/official-docs/docs/api-gateway.zh.md +10 -9
- package/references/official-docs/docs/architecture.i18n.yaml +36 -5
- package/references/official-docs/docs/architecture.md +10 -8
- package/references/official-docs/docs/architecture.zh.md +10 -8
- package/references/official-docs/docs/capability-seams.i18n.yaml +9 -5
- package/references/official-docs/docs/capability-seams.md +76 -32
- package/references/official-docs/docs/capability-seams.zh.md +76 -32
- package/references/official-docs/docs/config-catalog.i18n.yaml +18 -5
- package/references/official-docs/docs/config-catalog.md +1360 -765
- package/references/official-docs/docs/config-catalog.zh.md +1363 -767
- package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +27 -5
- package/references/official-docs/docs/cookbook/adding-a-package.md +56 -3
- package/references/official-docs/docs/cookbook/adding-a-package.zh.md +54 -3
- package/references/official-docs/docs/cookbook/adding-a-remote-api.i18n.yaml +24 -5
- package/references/official-docs/docs/cookbook/adding-a-remote-api.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-remote-api.zh.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.i18n.yaml +39 -5
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.md +46 -6
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.zh.md +46 -6
- package/references/official-docs/docs/cookbook/adding-a-settings-card.i18n.yaml +21 -5
- package/references/official-docs/docs/cookbook/adding-a-settings-card.md +34 -64
- package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +34 -64
- package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +30 -5
- package/references/official-docs/docs/cookbook/adding-a-tool.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +18 -5
- package/references/official-docs/docs/cookbook/adding-an-llm-adapter.i18n.yaml +18 -5
- package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +24 -5
- package/references/official-docs/docs/cookbook/extension-cookbook.md +3 -3
- package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +3 -3
- package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.i18n.yaml +21 -5
- package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +15 -5
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.i18n.yaml +30 -5
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.md +13 -1
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.zh.md +13 -1
- package/references/official-docs/docs/cordis-api/context.i18n.yaml +72 -5
- package/references/official-docs/docs/cordis-api/events.i18n.yaml +36 -5
- package/references/official-docs/docs/cordis-api/fiber.i18n.yaml +75 -5
- package/references/official-docs/docs/cordis-api/inherited.md +15 -13
- package/references/official-docs/docs/cordis-api/registry.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-api/service.i18n.yaml +36 -5
- package/references/official-docs/docs/cordis-primer.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-tutorial/01-first-plugin.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.i18n.yaml +15 -5
- package/references/official-docs/docs/cordis-tutorial/03-services.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-tutorial/04-events.i18n.yaml +15 -5
- package/references/official-docs/docs/cordis-tutorial/05-config.i18n.yaml +18 -5
- package/references/official-docs/docs/cordis-tutorial/05-config.md +27 -0
- package/references/official-docs/docs/cordis-tutorial/05-config.zh.md +27 -0
- package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +15 -5
- package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.i18n.yaml +18 -5
- package/references/official-docs/docs/cordis-tutorial/index.i18n.yaml +15 -5
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +33 -5
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +7 -7
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +7 -7
- package/references/official-docs/docs/defensive-patterns.i18n.yaml +27 -5
- package/references/official-docs/docs/dependency-catalog.json +2 -2
- package/references/official-docs/docs/development.i18n.yaml +48 -5
- package/references/official-docs/docs/development.md +27 -10
- package/references/official-docs/docs/development.zh.md +27 -10
- package/references/official-docs/docs/event-producer-consumer.i18n.yaml +12 -5
- package/references/official-docs/docs/event-producer-consumer.md +78 -66
- package/references/official-docs/docs/event-producer-consumer.zh.md +78 -66
- package/references/official-docs/docs/glossary.i18n.yaml +24 -5
- package/references/official-docs/docs/graph-atlas.i18n.yaml +9 -5
- package/references/official-docs/docs/i18n/README.i18n.yaml +18 -5
- package/references/official-docs/docs/i18n/README.md +12 -8
- package/references/official-docs/docs/i18n/README.zh.md +12 -8
- package/references/official-docs/docs/i18n/terminology.md +4 -4
- package/references/official-docs/docs/i18n/translation-prompt.md +2 -2
- package/references/official-docs/docs/i18n/translation-rules.i18n.yaml +27 -5
- package/references/official-docs/docs/module-graph.i18n.yaml +9 -5
- package/references/official-docs/docs/module-graph.md +348 -245
- package/references/official-docs/docs/module-graph.zh.md +348 -245
- package/references/official-docs/docs/persistence-catalog.i18n.yaml +2064 -5
- package/references/official-docs/docs/persistence-catalog.md +5275 -3205
- package/references/official-docs/docs/persistence-catalog.zh.md +5275 -3205
- package/references/official-docs/docs/persistence-changes/2026-09-11-initial.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.md +120 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.schema.json +16212 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.zh.md +120 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.schema.json +302 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.schema.json +250 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.md +60 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.schema.json +11405 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.zh.md +60 -0
- package/references/official-docs/docs/persistence-changes/README.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/README.md +17 -3
- package/references/official-docs/docs/persistence-changes/README.zh.md +17 -3
- package/references/official-docs/docs/persistence-changes/finalized/v4.json +379 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/README.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/README.md +3 -2
- package/references/official-docs/docs/persistence-changes/historical-formats/README.zh.md +3 -2
- package/references/official-docs/docs/persistence-changes/historical-formats/v0.i18n.yaml +1284 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/v1.i18n.yaml +1284 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/v2.i18n.yaml +1344 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.i18n.yaml +1441 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.md +5634 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.schema.json +61307 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.zh.md +5634 -0
- package/references/official-docs/docs/persistence-changes/releases/README.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.schema.json +3 -3
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-schema.json +12692 -48753
- package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.i18n.yaml +33 -5
- package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.i18n.yaml +27 -5
- package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.i18n.yaml +27 -5
- package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.i18n.yaml +27 -5
- package/references/official-docs/docs/postmortem/README.i18n.yaml +6 -5
- package/references/official-docs/docs/rescope.i18n.yaml +18 -5
- package/references/official-docs/docs/rescope.md +1 -1
- package/references/official-docs/docs/rescope.zh.md +1 -1
- package/references/official-docs/docs/session-format-status.i18n.yaml +27 -5
- package/references/official-docs/docs/session-format-status.md +17 -3
- package/references/official-docs/docs/session-format-status.zh.md +17 -3
- package/references/official-docs/docs/subsystems/README.i18n.yaml +6 -5
- package/references/official-docs/docs/subsystems/README.md +6 -3
- package/references/official-docs/docs/subsystems/README.zh.md +6 -3
- package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/agent-team.md +52 -28
- package/references/official-docs/docs/subsystems/agent-team.zh.md +52 -28
- package/references/official-docs/docs/subsystems/approval.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/approval.md +1 -1
- package/references/official-docs/docs/subsystems/approval.zh.md +1 -1
- package/references/official-docs/docs/subsystems/attachment.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/attachment.md +2 -2
- package/references/official-docs/docs/subsystems/attachment.zh.md +2 -2
- package/references/official-docs/docs/subsystems/boot.i18n.yaml +9 -5
- package/references/official-docs/docs/subsystems/boot.md +117 -17
- package/references/official-docs/docs/subsystems/boot.zh.md +117 -17
- package/references/official-docs/docs/subsystems/browser-use.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/claude-code-mods.i18n.yaml +28 -0
- package/references/official-docs/docs/subsystems/claude-code-mods.md +146 -0
- package/references/official-docs/docs/subsystems/claude-code-mods.zh.md +146 -0
- package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/client-modules.md +13 -7
- package/references/official-docs/docs/subsystems/client-modules.zh.md +13 -7
- package/references/official-docs/docs/subsystems/client-resources.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/commands.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/commands.md +1 -1
- package/references/official-docs/docs/subsystems/commands.zh.md +1 -1
- package/references/official-docs/docs/subsystems/compaction.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/compaction.md +2 -2
- package/references/official-docs/docs/subsystems/compaction.zh.md +2 -2
- package/references/official-docs/docs/subsystems/computer-use.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/conversation.i18n.yaml +30 -5
- package/references/official-docs/docs/subsystems/conversation.md +35 -6
- package/references/official-docs/docs/subsystems/conversation.zh.md +34 -5
- package/references/official-docs/docs/subsystems/core.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/core.md +70 -214
- package/references/official-docs/docs/subsystems/core.zh.md +70 -214
- package/references/official-docs/docs/subsystems/credentials.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/credentials.md +168 -5
- package/references/official-docs/docs/subsystems/credentials.zh.md +168 -5
- package/references/official-docs/docs/subsystems/deliverables.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/extensions.i18n.yaml +6 -5
- package/references/official-docs/docs/subsystems/extensions.md +6 -4
- package/references/official-docs/docs/subsystems/extensions.zh.md +6 -4
- package/references/official-docs/docs/subsystems/feedback.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +33 -5
- package/references/official-docs/docs/subsystems/filesystem.md +10 -0
- package/references/official-docs/docs/subsystems/filesystem.zh.md +10 -0
- package/references/official-docs/docs/subsystems/goal.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/goal.md +1 -1
- package/references/official-docs/docs/subsystems/goal.zh.md +1 -1
- package/references/official-docs/docs/subsystems/jobs.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/jobs.md +335 -126
- package/references/official-docs/docs/subsystems/jobs.zh.md +335 -126
- package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +48 -5
- package/references/official-docs/docs/subsystems/llm-streaming.md +60 -31
- package/references/official-docs/docs/subsystems/llm-streaming.zh.md +60 -31
- package/references/official-docs/docs/subsystems/lsp.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/mcp.i18n.yaml +33 -5
- package/references/official-docs/docs/subsystems/mcp.md +2 -2
- package/references/official-docs/docs/subsystems/mcp.zh.md +2 -2
- package/references/official-docs/docs/subsystems/office-to-pdf.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/office-to-pdf.md +4 -4
- package/references/official-docs/docs/subsystems/office-to-pdf.zh.md +4 -4
- package/references/official-docs/docs/subsystems/otel.i18n.yaml +7 -0
- package/references/official-docs/docs/subsystems/otel.md +44 -0
- package/references/official-docs/docs/subsystems/otel.zh.md +44 -0
- package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/permission-presets.md +7 -6
- package/references/official-docs/docs/subsystems/permission-presets.zh.md +7 -6
- package/references/official-docs/docs/subsystems/persistence.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/persistence.md +3 -3
- package/references/official-docs/docs/subsystems/persistence.zh.md +3 -3
- package/references/official-docs/docs/subsystems/plan.i18n.yaml +21 -5
- 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/product-telemetry.i18n.yaml +10 -0
- package/references/official-docs/docs/subsystems/product-telemetry.md +79 -0
- package/references/official-docs/docs/subsystems/product-telemetry.zh.md +79 -0
- package/references/official-docs/docs/subsystems/ptc-runtime.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/sandbox.md +1 -1
- package/references/official-docs/docs/subsystems/sandbox.zh.md +1 -1
- package/references/official-docs/docs/subsystems/schedule.i18n.yaml +39 -5
- package/references/official-docs/docs/subsystems/schedule.md +391 -33
- package/references/official-docs/docs/subsystems/schedule.zh.md +391 -33
- package/references/official-docs/docs/subsystems/scope.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/scope.md +1 -1
- package/references/official-docs/docs/subsystems/scope.zh.md +1 -1
- package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/session-projection.md +20 -18
- package/references/official-docs/docs/subsystems/session-projection.zh.md +20 -18
- package/references/official-docs/docs/subsystems/session-query.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/session-telemetry.md +6 -4
- package/references/official-docs/docs/subsystems/session-telemetry.zh.md +6 -4
- package/references/official-docs/docs/subsystems/session-title.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/session.i18n.yaml +66 -5
- package/references/official-docs/docs/subsystems/session.md +113 -62
- package/references/official-docs/docs/subsystems/session.zh.md +113 -62
- package/references/official-docs/docs/subsystems/settings.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/settings.md +42 -292
- package/references/official-docs/docs/subsystems/settings.zh.md +42 -292
- package/references/official-docs/docs/subsystems/shell.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/shell.md +29 -22
- package/references/official-docs/docs/subsystems/shell.zh.md +29 -22
- package/references/official-docs/docs/subsystems/sidebar-right.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/sidebar-right.md +14 -9
- package/references/official-docs/docs/subsystems/sidebar-right.zh.md +14 -9
- package/references/official-docs/docs/subsystems/skills.i18n.yaml +27 -5
- 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.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/slots.md +21 -7
- package/references/official-docs/docs/subsystems/slots.zh.md +21 -7
- package/references/official-docs/docs/subsystems/spill.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/spill.md +1 -1
- package/references/official-docs/docs/subsystems/spill.zh.md +1 -1
- package/references/official-docs/docs/subsystems/ssh.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/storage.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/storage.md +1 -2
- package/references/official-docs/docs/subsystems/storage.zh.md +1 -2
- package/references/official-docs/docs/subsystems/subagent.i18n.yaml +30 -5
- package/references/official-docs/docs/subsystems/subagent.md +35 -60
- package/references/official-docs/docs/subsystems/subagent.zh.md +35 -60
- package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +30 -5
- package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/terminal.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/todo.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/todo.md +3 -3
- package/references/official-docs/docs/subsystems/todo.zh.md +3 -3
- package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/tools.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/tools.md +15 -4
- package/references/official-docs/docs/subsystems/tools.zh.md +15 -4
- package/references/official-docs/docs/subsystems/typert.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/typert.md +147 -6
- package/references/official-docs/docs/subsystems/typert.zh.md +147 -6
- package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/user-questions.md +128 -1
- package/references/official-docs/docs/subsystems/user-questions.zh.md +129 -2
- package/references/official-docs/docs/subsystems/voice-input.i18n.yaml +19 -0
- package/references/official-docs/docs/subsystems/voice-input.md +164 -0
- package/references/official-docs/docs/subsystems/voice-input.zh.md +164 -0
- package/references/official-docs/docs/subsystems/web-client.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/web-client.md +10 -5
- package/references/official-docs/docs/subsystems/web-client.zh.md +10 -5
- package/references/official-docs/docs/subsystems/web-server.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/web-server.md +12 -4
- package/references/official-docs/docs/subsystems/web-server.zh.md +12 -4
- package/references/official-docs/docs/subsystems/web.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/webhook.i18n.yaml +18 -5
- 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 +27 -5
- package/references/official-docs/docs/subsystems/workflow.md +2 -2
- package/references/official-docs/docs/subsystems/workflow.zh.md +2 -2
- package/references/official-docs/docs/subsystems/workspace.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/workspace.md +175 -35
- package/references/official-docs/docs/subsystems/workspace.zh.md +175 -35
- package/references/official-docs/docs/testing.i18n.yaml +33 -5
- package/references/official-docs/docs/testing.md +2 -2
- package/references/official-docs/docs/testing.zh.md +2 -2
- package/references/official-docs/docs/tool-catalog.i18n.yaml +312 -5
- package/references/official-docs/docs/tool-catalog.md +321 -92
- package/references/official-docs/docs/tool-catalog.zh.md +321 -92
- package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +9 -5
- package/references/official-docs/docs/tool-execution-pipeline.md +6 -3
- package/references/official-docs/docs/tool-execution-pipeline.zh.md +6 -3
- package/references/official-docs/docs/ui-radius.i18n.yaml +31 -0
- package/references/official-docs/docs/ui-radius.md +115 -0
- package/references/official-docs/docs/ui-radius.zh.md +115 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.zh.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.md +25 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.zh.md +25 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.zh.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.md +23 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.zh.md +23 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.zh.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.md +27 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.zh.md +27 -0
- package/references/official-docs/docs/user/develop/basic/config.i18n.yaml +27 -5
- package/references/official-docs/docs/user/develop/basic/index.i18n.yaml +36 -5
- package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +30 -5
- package/references/official-docs/docs/user/develop/basic/publish.md +7 -1
- package/references/official-docs/docs/user/develop/basic/publish.zh.md +7 -1
- package/references/official-docs/docs/user/develop/basic/tool.i18n.yaml +15 -5
- package/references/official-docs/docs/user/develop/framework/events.i18n.yaml +45 -5
- package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +30 -5
- package/references/official-docs/docs/user/develop/framework/service.i18n.yaml +39 -5
- package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +9 -5
- package/references/official-docs/docs/user/develop/practice/index.i18n.yaml +45 -5
- package/references/official-docs/docs/user/develop/practice/llm-adapter.i18n.yaml +33 -5
- package/references/official-docs/docs/user/develop/practice/llm-adapter.md +1 -1
- package/references/official-docs/docs/user/develop/practice/llm-adapter.zh.md +1 -1
- package/references/official-docs/docs/user/guide/github-review.i18n.yaml +24 -5
- package/references/official-docs/docs/user/guide/index.i18n.yaml +18 -5
- package/references/official-docs/docs/user/guide/index.md +1 -0
- package/references/official-docs/docs/user/guide/index.zh.md +1 -0
- package/references/official-docs/docs/user/guide/mcp-memory.i18n.yaml +36 -5
- package/references/official-docs/docs/user/guide/network-proxy.i18n.yaml +24 -5
- package/references/official-docs/docs/user/guide/providers-custom-form.png +0 -0
- package/references/official-docs/docs/user/guide/providers-custom-form.zh.png +0 -0
- package/references/official-docs/docs/user/guide/providers-models-page.png +0 -0
- package/references/official-docs/docs/user/guide/providers-models-page.zh.png +0 -0
- package/references/official-docs/docs/user/guide/providers.i18n.yaml +36 -5
- package/references/official-docs/docs/user/guide/providers.md +88 -78
- package/references/official-docs/docs/user/guide/providers.zh.md +102 -92
- package/references/official-docs/docs/user/guide/public-deployments.i18n.yaml +19 -0
- package/references/official-docs/docs/user/guide/public-deployments.md +33 -0
- package/references/official-docs/docs/user/guide/public-deployments.zh.md +33 -0
- package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +27 -5
- package/references/official-docs/docs/user/guide/python-sdk.md +1 -1
- package/references/official-docs/docs/user/guide/python-sdk.zh.md +1 -1
- package/references/official-docs/docs/user/guide/schedule.i18n.yaml +30 -5
- package/references/official-docs/docs/user/guide/schedule.md +69 -11
- package/references/official-docs/docs/user/guide/schedule.zh.md +69 -11
- package/references/official-docs/docs/user/index.i18n.yaml +9 -5
- package/references/official-docs/docs/web-styling.i18n.yaml +18 -5
- package/references/official-docs/docs/web-styling.md +12 -3
- package/references/official-docs/docs/web-styling.zh.md +12 -3
- package/references/official-docs/packages/AGENTS.md +1 -2
- package/references/official-docs/packages/README.md +5 -5
- package/references/official-docs/vendor/README.md +6 -2
- package/references/official-docs/website-docs.ts +10 -3
- package/references/official-plugin-dev-skill.md +124 -0
- package/references/sources.md +10 -5
- package/scripts/archive-discussions.ps1 +9 -1
- package/scripts/build-llms-full.mjs +64 -0
- package/scripts/check-docs-drift.ps1 +1 -1
- package/scripts/sync-official-docs.ps1 +1 -1
- package/templates/js/icon.svg +4 -0
- package/templates/js/locale/en.json +6 -0
- package/templates/js/locale/zh.json +6 -0
- package/templates/js/package.json +9 -1
- package/templates/ts/icon.svg +4 -0
- package/templates/ts/locale/en.json +6 -0
- package/templates/ts/locale/zh.json +6 -0
- package/templates/ts/package.json +9 -1
- package/references/official-docs/docs/subsystems/invariants.i18n.yaml +0 -6
- package/references/official-docs/docs/subsystems/invariants.md +0 -88
- package/references/official-docs/docs/subsystems/invariants.zh.md +0 -88
|
@@ -110,7 +110,7 @@ interface Agent {
|
|
|
110
110
|
* turn and runs when the aborted activity converges to idle; a `disposed`
|
|
111
111
|
* cancel leaves it parked. A wake submitted while already idle always opens
|
|
112
112
|
* its turn boundary, even when its message is cleared before the driver
|
|
113
|
-
* claims ([
|
|
113
|
+
* claims ([driver wake convergence](../../agent-loop/src/agent.ts)).
|
|
114
114
|
* @param message - identified content and the source that supplied it.
|
|
115
115
|
* @param target - the preferred next-turn or next-step inbox boundary.
|
|
116
116
|
* @param wakeup - whether delivery may wake the driver.
|
|
@@ -301,7 +301,7 @@ type AgentCancelCause =
|
|
|
301
301
|
| { readonly kind: 'disposed' }
|
|
302
302
|
```
|
|
303
303
|
|
|
304
|
-
cause 是由 TypeScript
|
|
304
|
+
cause 是由 TypeScript 强制约束的同进程输入。活跃的取消持有者把同一个对象暴露为仅运行时的 `AbortSignal.reason`;signal 不授予协作监听器任何分类权限。持久 `turn/end` 以 `{ kind: 'aborted', reason: TurnEndCancelCause }` 记录结果,取消原因随终态结果一起持久化。
|
|
305
305
|
|
|
306
306
|
[事件分类](../architecture.zh.md#events)负责 `agent/*` 生命周期、检查点与 waterfall(瀑布式事件)约定。轮次和步骤边界是持久会话事件,而不是 agent emit。
|
|
307
307
|
|
|
@@ -431,7 +431,7 @@ Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnp
|
|
|
431
431
|
|
|
432
432
|
### `ctx.agentDefaultModel` — `AgentDefaultModelConfig`
|
|
433
433
|
|
|
434
|
-
Owns the default model selection independently of any Host or transport.
|
|
434
|
+
Owns the default model selection independently of any Host or transport. Each operation reads the owning Config references.
|
|
435
435
|
|
|
436
436
|
```ts cordis-catalog
|
|
437
437
|
/**
|
|
@@ -441,10 +441,11 @@ Owns the default model selection independently of any Host or transport. The com
|
|
|
441
441
|
currentSelection(): ModelSelection
|
|
442
442
|
|
|
443
443
|
/**
|
|
444
|
-
* Save the complete default model selection. A deployment without a
|
|
445
|
-
*
|
|
444
|
+
* Save the complete default model selection. A deployment without a configuration
|
|
445
|
+
* editor keeps its composition entry. Saves commit in submission order; a failed
|
|
446
|
+
* save rejects its caller without blocking later saves.
|
|
446
447
|
* @param next - resolved selection accepted by an entry point.
|
|
447
|
-
* @returns fulfillment after the optional
|
|
448
|
+
* @returns fulfillment after the optional profile write settles.
|
|
448
449
|
*/
|
|
449
450
|
async saveSelection(next: ModelSelection): Promise<void>
|
|
450
451
|
```
|
|
@@ -491,248 +492,103 @@ Types: [SessionHeader](persistence.zh.md)
|
|
|
491
492
|
|
|
492
493
|
Source: [`packages/core/agent-loop/src/index.ts`](../../packages/core/agent-loop/src/index.ts)
|
|
493
494
|
|
|
494
|
-
<a id="ctxagentpresets--
|
|
495
|
+
<a id="ctxagentpresets--agentpresetregistry"></a>
|
|
495
496
|
|
|
496
|
-
### `ctx.agentPresets` — `
|
|
497
|
+
### `ctx.agentPresets` — `AgentPresetRegistry`
|
|
497
498
|
|
|
498
|
-
Registry
|
|
499
|
-
|
|
500
|
-
Discovery is unmemoized: `list()` and `resolve()` re-read the roots on every call so a preset authored while the process runs is visible immediately, and a preset deleted underneath a picker disappears from the next read.
|
|
499
|
+
Registry of YAML-declared presets and the revisions live Agents retain.
|
|
501
500
|
|
|
502
501
|
```ts cordis-catalog
|
|
503
|
-
/**
|
|
504
|
-
*
|
|
505
|
-
* @returns the
|
|
502
|
+
/** Register and eagerly load a definition; activation failure remains visible in the roster.
|
|
503
|
+
* @param definition Parsed configuration supplied by the declaring plugin.
|
|
504
|
+
* @returns Definition disposer after activation or its diagnostic settles; the declaring plugin owns it.
|
|
506
505
|
*/
|
|
507
|
-
async
|
|
506
|
+
async register(definition: PresetDefinition): Promise<() => Promise<void>>
|
|
508
507
|
|
|
509
|
-
/**
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
* capability, and its mode-selection policy beside it.
|
|
513
|
-
*
|
|
514
|
-
* Whether a client can open a preset's directory is the Host's own opener
|
|
515
|
-
* capability, not a roster property — a caller needing both joins them.
|
|
516
|
-
* @returns the rows, authoring capability, and effective selection policy.
|
|
508
|
+
/** Inspect retained revisions, or the exact revision an Agent joined.
|
|
509
|
+
* @param ctx - optional Agent context; omission includes all retained revisions.
|
|
510
|
+
* @returns detached module references and isolation diagnostics; no match returns an empty list.
|
|
517
511
|
*/
|
|
518
|
-
|
|
512
|
+
inspectCompositions(ctx?: Context): AgentPresetInspection[]
|
|
519
513
|
|
|
520
|
-
/**
|
|
521
|
-
*
|
|
522
|
-
* surfaces beside the roster's own picker.
|
|
523
|
-
*
|
|
524
|
-
* A preset with a live standing mount answers from its newest generation's
|
|
525
|
-
* Loader entries — the composition new sessions join — even when the file
|
|
526
|
-
* behind it has since been edited into an unreadable state: the mount is
|
|
527
|
-
* what sessions actually run, so the broken verdict only applies to a
|
|
528
|
-
* preset nothing composed. One never composed since boot answers from its
|
|
529
|
-
* file, with `!!js` disabled gates evaluated against the Loader context so
|
|
530
|
-
* both answers reflect the same host. Reading never mounts: an unmounted
|
|
531
|
-
* preset is parsed, not composed, so listing a preset's plugins cannot
|
|
532
|
-
* activate them early. A composition that stopped reading between
|
|
533
|
-
* discovery's health verdict and this read is reported broken with the
|
|
534
|
-
* raced reason rather than dropped.
|
|
535
|
-
* @returns one composition per roster preset, in roster order.
|
|
536
|
-
*/
|
|
537
|
-
async compositionInventory(): Promise<AgentPresetComposition[]>
|
|
538
|
-
|
|
539
|
-
/**
|
|
540
|
-
* Resolve one preset by id.
|
|
541
|
-
*
|
|
542
|
-
* A broken preset resolves — deleting one, reading one, and reporting one
|
|
543
|
-
* all need the row — and the mounting paths refuse it AFTER resolution
|
|
544
|
-
* through {@link resolveMountable}.
|
|
545
|
-
* @param id - the preset id, or `undefined` for {@link defaultId}.
|
|
546
|
-
* @returns the resolved preset.
|
|
547
|
-
* @throws when no configured root supplies that id.
|
|
514
|
+
/** Read every declared preset, including activation failures.
|
|
515
|
+
* @returns Display metadata and loading diagnostics.
|
|
548
516
|
*/
|
|
549
|
-
async
|
|
550
|
-
|
|
551
|
-
/**
|
|
552
|
-
* Compose one agent from a preset: ensure the preset's standing mount, then
|
|
553
|
-
* parent the agent's scope key to it so the mount's registrations and
|
|
554
|
-
* listeners cover this agent.
|
|
555
|
-
*
|
|
556
|
-
* Call from the agent factory's `setup(agentCtx)`; a rejection there rolls
|
|
557
|
-
* the agent creation back, so a broken preset never yields a half-composed
|
|
558
|
-
* session.
|
|
559
|
-
* @param agentCtx - the agent's scope context.
|
|
560
|
-
* @param id - the preset id, or `undefined` for {@link defaultId}.
|
|
561
|
-
* @returns the preset that was composed, for the caller to record.
|
|
562
|
-
* @throws when the preset is unknown or its composition is unusable.
|
|
563
|
-
*/
|
|
564
|
-
async mount(agentCtx: Context, id?: string): Promise<AgentPreset>
|
|
565
|
-
|
|
566
|
-
/**
|
|
567
|
-
* Join one agent to the SAME standing composition another already runs on.
|
|
568
|
-
*
|
|
569
|
-
* This is how a child agent inherits its parent's capabilities. It is a bind,
|
|
570
|
-
* not a mount: the parent's generation is already composed, so the child gets
|
|
571
|
-
* that exact instance — the same plugin objects, the same tool registrations,
|
|
572
|
-
* the same prompt sections. Re-resolving the parent's preset by id instead
|
|
573
|
-
* would re-read the roster, and a composition file edited since the parent
|
|
574
|
-
* started would hand the child a DIFFERENT generation than the one its
|
|
575
|
-
* parent's history was produced under (and a preset deleted since would fail
|
|
576
|
-
* the child outright while its parent keeps running).
|
|
577
|
-
*
|
|
578
|
-
* Synchronous, and with no composition failure mode of its own — it reads no
|
|
579
|
-
* roster, mounts nothing, and touches no file — which is what lets a child
|
|
580
|
-
* creation window use it: the two in-process subagent drivers compose their
|
|
581
|
-
* children inside a synchronous `setup`. It still rejects a caller error, as
|
|
582
|
-
* the `@throws` below record.
|
|
583
|
-
*
|
|
584
|
-
* A parent that joined no preset — a rosterless deployment — yields no join
|
|
585
|
-
* and no error: there, the model-facing rows sit in the host composition and
|
|
586
|
-
* the child already sees them through the global layer.
|
|
587
|
-
* @param agentCtx - the joining agent's scope context.
|
|
588
|
-
* @param parentCtx - the scope context of the agent whose composition to join.
|
|
589
|
-
* @returns the preset id joined, or undefined when the parent joined none.
|
|
590
|
-
* @throws when `agentCtx` carries no scope, or has already joined a preset.
|
|
591
|
-
*/
|
|
592
|
-
composeFrom(agentCtx: Context, parentCtx: Context): string | undefined
|
|
593
|
-
|
|
594
|
-
/**
|
|
595
|
-
* The preset one live agent runs on.
|
|
596
|
-
*
|
|
597
|
-
* Read from the live scope chain rather than from the session, so it answers
|
|
598
|
-
* for an agent whose session has not recorded a preset yet — a child agent
|
|
599
|
-
* whose durable header is being built from its parent's composition.
|
|
600
|
-
* @param agentCtx - the agent's scope context.
|
|
601
|
-
* @returns the preset id, or undefined when the agent joined none.
|
|
602
|
-
*/
|
|
603
|
-
composedPreset(agentCtx: Context): string | undefined
|
|
517
|
+
async list(): Promise<AgentPreset[]>
|
|
604
518
|
|
|
605
|
-
/**
|
|
606
|
-
*
|
|
607
|
-
* @param id - the preset id.
|
|
608
|
-
* @returns the composition exactly as stored.
|
|
609
|
-
* @throws when no configured root supplies that id.
|
|
519
|
+
/** Read the selection roster.
|
|
520
|
+
* @returns Current presets, each marked when it is the default.
|
|
610
521
|
*/
|
|
611
|
-
async
|
|
522
|
+
@Remote('list') async remoteExportList(): Promise<AgentPresetRoster>
|
|
612
523
|
|
|
613
|
-
/**
|
|
614
|
-
*
|
|
615
|
-
* @
|
|
616
|
-
* @returns the composition beside its trust and published metadata.
|
|
617
|
-
* @throws {RemoteError} `gateway/bad-request` for an empty id, or
|
|
618
|
-
* `agent-preset/not-found` when no configured root supplies it.
|
|
524
|
+
/** Resolve an identity without starting an Agent.
|
|
525
|
+
* @param id Explicit preset or the current default.
|
|
526
|
+
* @returns Current metadata, including failure when activation failed.
|
|
619
527
|
*/
|
|
620
|
-
|
|
528
|
+
async resolve(id?: string): Promise<AgentPreset>
|
|
621
529
|
|
|
622
|
-
/**
|
|
623
|
-
*
|
|
624
|
-
*
|
|
625
|
-
* Copy is the only authoring write. Composition text never crosses this
|
|
626
|
-
* seam: the source is named by id and its directory is copied as it stands,
|
|
627
|
-
* so the copy is exactly as loadable as its source and authoring grants no
|
|
628
|
-
* capability the roster did not already carry. The copy is NOT mounted to
|
|
629
|
-
* validate — a source that mounts today yields a copy that mounts today.
|
|
630
|
-
* @param from - the preset the copy starts from; shipped presets are the
|
|
631
|
-
* primary source, so any trust is accepted.
|
|
632
|
-
* @param id - the new preset's id, which becomes its directory name.
|
|
633
|
-
* @param name - display name for the copy; absent falls back to the id.
|
|
634
|
-
* @throws when the source is unknown, the id is unusable or already taken,
|
|
635
|
-
* or the deployment configures no writable root.
|
|
530
|
+
/** Read one declaration's child plugin list as YAML, for viewing only.
|
|
531
|
+
* @param agentPreset Preset identity.
|
|
532
|
+
* @returns The declared composition beside its published metadata.
|
|
636
533
|
*/
|
|
637
|
-
|
|
534
|
+
@Remote('read') readDocument(agentPreset: string): Promise<AgentPresetDocument>
|
|
638
535
|
|
|
639
|
-
/**
|
|
640
|
-
*
|
|
641
|
-
* @param
|
|
642
|
-
* @
|
|
643
|
-
* @param name - the copy's optional display name.
|
|
644
|
-
* @returns once the copy is stored.
|
|
645
|
-
* @throws {RemoteError} with the corresponding stable preset code and
|
|
646
|
-
* details when the copy is refused.
|
|
536
|
+
/** Bind an unpublished Agent to the current preset revision.
|
|
537
|
+
* @param ctx Agent context from its setup callback.
|
|
538
|
+
* @param id Requested preset, or the default.
|
|
539
|
+
* @returns Bound preset identity.
|
|
647
540
|
*/
|
|
648
|
-
|
|
541
|
+
async mount(ctx: Context, id?: string): Promise<AgentPreset>
|
|
649
542
|
|
|
650
|
-
/**
|
|
651
|
-
*
|
|
652
|
-
*
|
|
653
|
-
* @
|
|
654
|
-
* @throws when the preset is unknown or ships with the deployment.
|
|
543
|
+
/** Join a child to the exact revision retained by its parent.
|
|
544
|
+
* @param ctx Child Agent context.
|
|
545
|
+
* @param parent Parent Agent context.
|
|
546
|
+
* @returns Inherited preset id, or undefined in a preset-free composition.
|
|
655
547
|
*/
|
|
656
|
-
|
|
548
|
+
composeFrom(ctx: Context, parent: Context): string | undefined
|
|
657
549
|
|
|
658
|
-
/**
|
|
659
|
-
*
|
|
660
|
-
* @
|
|
661
|
-
* @returns once the preset is deleted.
|
|
662
|
-
* @throws {RemoteError} with the corresponding stable preset code and
|
|
663
|
-
* details when deletion is refused.
|
|
550
|
+
/** Read the preset a live Agent uses.
|
|
551
|
+
* @param ctx Agent context.
|
|
552
|
+
* @returns Its preset id, if bound.
|
|
664
553
|
*/
|
|
665
|
-
|
|
554
|
+
composedPreset(ctx: Context): string | undefined
|
|
666
555
|
|
|
667
|
-
/**
|
|
668
|
-
*
|
|
669
|
-
*
|
|
670
|
-
*
|
|
671
|
-
* outside the group that declares them — including to the host. This is how a
|
|
672
|
-
* caller holding the agent reads one anyway: a request that is ABOUT a
|
|
673
|
-
* session but arrives from outside it, which is every browser RPC.
|
|
674
|
-
*
|
|
675
|
-
* Read addressing only. A host row that `inject`s a service cannot use this,
|
|
676
|
-
* because injection resolves before any session exists and has no agent to
|
|
677
|
-
* key by; such a service belongs on the host plane instead.
|
|
678
|
-
* @param agent - the agent whose composition to look inside.
|
|
679
|
-
* @param name - the service name as the preset's rows resolve it.
|
|
680
|
-
* @returns the agent's instance, or undefined when its preset mounts none.
|
|
556
|
+
/** Read a service supplied inside an Agent's isolated preset group.
|
|
557
|
+
* @param agent Agent whose composition is queried.
|
|
558
|
+
* @param name Cordis service name.
|
|
559
|
+
* @returns The service, or undefined.
|
|
681
560
|
*/
|
|
682
561
|
serviceFor<K extends string & keyof Context>(agent: { ctx: Context }, name: K): Context[K] | undefined
|
|
683
562
|
|
|
684
|
-
/**
|
|
685
|
-
*
|
|
686
|
-
*
|
|
687
|
-
*
|
|
688
|
-
* conversation would leave logged tool calls the new composition cannot
|
|
689
|
-
* make. The CALLER owns that check — this method does not read session
|
|
690
|
-
* history.
|
|
691
|
-
*
|
|
692
|
-
* The swap is a parent re-link, not an unmount: standing mounts are shared
|
|
693
|
-
* and permanent, so the old composition stays for its other agents and the
|
|
694
|
-
* new one is ensured BEFORE the link moves. An unknown or unusable preset
|
|
695
|
-
* therefore throws with the agent exactly as it was — there is no torn-down
|
|
696
|
-
* state to restore. The re-link runs through the binding this roster kept
|
|
697
|
-
* from the agent's mount — dsh-scope's only re-link authority. An agent
|
|
698
|
-
* that never composed one has nothing to re-link: the switch is then the
|
|
699
|
-
* agent's first bind, exactly a mount. A committed re-link emits
|
|
700
|
-
* `tools/change` because changing the parent scope changes the Agent's
|
|
701
|
-
* resolved tool set without adding or removing registry entries.
|
|
702
|
-
* @param agentCtx - the agent's scope context.
|
|
703
|
-
* @param id - the preset to compose the agent from instead.
|
|
704
|
-
* @returns the preset now installed.
|
|
705
|
-
* @throws when the preset is unknown or its composition is unusable.
|
|
563
|
+
/** Rebind a blank Agent; the caller owns the blank-session check.
|
|
564
|
+
* @param ctx Agent context.
|
|
565
|
+
* @param id Requested preset.
|
|
566
|
+
* @returns The bound identity.
|
|
706
567
|
*/
|
|
707
|
-
async recompose(
|
|
568
|
+
async recompose(ctx: Context, id: string): Promise<AgentPreset>
|
|
708
569
|
|
|
709
|
-
/**
|
|
710
|
-
*
|
|
711
|
-
* @param
|
|
712
|
-
* @
|
|
713
|
-
* @returns the preset id that was recorded.
|
|
714
|
-
* @throws {RemoteError} with `gateway/bad-request`, `agent-preset/locked`,
|
|
715
|
-
* `agent-preset/not-found`, or `agent-preset/invalid` when refused.
|
|
570
|
+
/** Select a preset before a session starts its first turn.
|
|
571
|
+
* @param agent Target Agent.
|
|
572
|
+
* @param agentPreset Requested identity.
|
|
573
|
+
* @returns Committed preset identity.
|
|
716
574
|
*/
|
|
717
575
|
@Remote('select') async select(agent: Agent, agentPreset: string): Promise<string>
|
|
718
576
|
|
|
719
|
-
/**
|
|
720
|
-
*
|
|
721
|
-
*
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
* @
|
|
727
|
-
* @returns the standing scope key readers pass as a registry view scope.
|
|
728
|
-
* @throws when the preset is unknown or its composition is unusable.
|
|
577
|
+
/** Read current registrations for cold transcript presentation.
|
|
578
|
+
* @param id Preset identity or the default.
|
|
579
|
+
* @returns A revision lease; dispose it after the scoped read completes.
|
|
580
|
+
*/
|
|
581
|
+
async acquireScope(id?: string): Promise<{ key: ScopeKey } & AsyncDisposable>
|
|
582
|
+
|
|
583
|
+
/** Read plugin rows without creating an Agent.
|
|
584
|
+
* @returns Current declaration metadata and activation states.
|
|
729
585
|
*/
|
|
730
|
-
|
|
586
|
+
compositionInventory(): Promise<AgentPresetComposition[]>
|
|
731
587
|
```
|
|
732
588
|
|
|
733
589
|
Types: [ScopeKey](scope.zh.md)
|
|
734
590
|
|
|
735
|
-
Source: [`packages/preset/agent-
|
|
591
|
+
Source: [`packages/preset/agent-preset-registry/src/index.ts`](../../packages/preset/agent-preset-registry/src/index.ts)
|
|
736
592
|
|
|
737
593
|
<a id="ctxagents--agentregistry"></a>
|
|
738
594
|
|
|
@@ -1261,5 +1117,5 @@ One session committed a different agent preset to its durable log. Consumers inv
|
|
|
1261
1117
|
'agent-preset/selected'(sessionId: SessionId, agentPreset: string): void
|
|
1262
1118
|
```
|
|
1263
1119
|
|
|
1264
|
-
Source: [`packages/preset/agent-
|
|
1120
|
+
Source: [`packages/preset/agent-preset-registry/src/types.ts`](../../packages/preset/agent-preset-registry/src/types.ts)
|
|
1265
1121
|
<!-- END GENERATED cordis-surface -->
|
|
@@ -1,6 +1,25 @@
|
|
|
1
|
-
# Bilingual-pair consistency record (docs/i18n/README.md):
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Bilingual-pair consistency record for credentials.md (docs/i18n/README.md): per heading
|
|
2
|
+
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
|
3
|
+
# After editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write docs/subsystems/credentials.md
|
|
5
|
-
credentials
|
|
6
|
-
|
|
5
|
+
/user-credentials:
|
|
6
|
+
en: 4589c745baf092c7
|
|
7
|
+
zh: 3a782e6a06825201
|
|
8
|
+
/user-credentials/identity:
|
|
9
|
+
en: aba5a25c34e229cc
|
|
10
|
+
zh: 96493f925f60b533
|
|
11
|
+
/user-credentials/resolution:
|
|
12
|
+
en: baaab4bca76bea6b
|
|
13
|
+
zh: 54ccdc03ffd44f63
|
|
14
|
+
/user-credentials/description:
|
|
15
|
+
en: 17573160805d3014
|
|
16
|
+
zh: 36a058a96f45df23
|
|
17
|
+
/user-credentials/change-commits:
|
|
18
|
+
en: 464315a953330eb2
|
|
19
|
+
zh: d9815591f3abc2cb
|
|
20
|
+
/user-credentials/embedded-platform-credentials:
|
|
21
|
+
en: 4f15fa7684abd4cc
|
|
22
|
+
zh: 9f2cde11303e9e02
|
|
23
|
+
/user-credentials/cordis-api/deepseek-account-events/deepseek-account-signed-out-emit:
|
|
24
|
+
en: 314e5b36f51b2c64
|
|
25
|
+
zh: 0e1cb3fe5adf5ecd
|
|
@@ -53,6 +53,14 @@ interface CredentialInfo {
|
|
|
53
53
|
|
|
54
54
|
`credentials/reference-updated (ref)` fires after a committed change to a provider-managed source — a `set`, an `unset`, or an external edit observed in storage. Ambient process-environment changes are not observable and never emit. Consumers do not need the event (they re-resolve per operation); it exists for configuration surfaces refreshing a "configured" badge.
|
|
55
55
|
|
|
56
|
+
## Embedded Platform credentials
|
|
57
|
+
|
|
58
|
+
PlatformSession is a Host-only snapshot from getPlatformSession: origin names the configured Platform issuer and token contains its stored account credential. userId repeats the stable account ID from the most recent successful getProfile, and is null until one succeeds or when that profile carries no ID. The snapshot reuses that ID without issuing a profile request of its own, so an unknown ID leaves userId null instead of delaying the caller; a profile read whose stable ID first becomes available or changes notifies watch subscribers, which lets identity consumers re-read the snapshot. Consumers key persistent browser storage by origin and userId and fall back to temporary storage for null. Signed-out accounts and credentials changed during the credential read return no snapshot; a mismatched issuer fails. Native consumers own document invalidation when credentials change. This snapshot is excluded from account-controller RPC, AccountView, and AccountDetails.
|
|
59
|
+
|
|
60
|
+
AccountDetails.balance projects recharge wallets in value and promotional wallets in bonusWallets, with independent currency and decimal balance strings. Failed queries contain no wallet arrays.
|
|
61
|
+
|
|
62
|
+
Bonus notification queries return an AccountBonusBatch with the current Platform account id and eligible orders in server order. AccountBonusNotification retains the server message and expiry without projecting credentials. Acknowledgment carries the expected account id and order id; the Host refuses it after an account change. Both notification operations use the initiating UI language through x-client-locale, without a language query parameter.
|
|
63
|
+
|
|
56
64
|
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
57
65
|
|
|
58
66
|
<a id="cordis-surface"></a>
|
|
@@ -253,6 +261,111 @@ Host service backing the generated `ctx.remote.credentials` namespace. It carrie
|
|
|
253
261
|
|
|
254
262
|
Source: [`packages/api/settings-controller/src/credentials.ts`](../../packages/api/settings-controller/src/credentials.ts)
|
|
255
263
|
|
|
264
|
+
<a id="ctxdeepseekaccount--deepseekaccount-abstract-seam"></a>
|
|
265
|
+
|
|
266
|
+
### `ctx.deepseekAccount` — `DeepSeekAccount` (abstract seam)
|
|
267
|
+
|
|
268
|
+
Account operations; only Host consumers can obtain a request credential.
|
|
269
|
+
|
|
270
|
+
```ts cordis-catalog
|
|
271
|
+
/**
|
|
272
|
+
* Read stored-account presence and the latest login attempt.
|
|
273
|
+
* @returns a snapshot without credentials or PKCE secrets.
|
|
274
|
+
*/
|
|
275
|
+
abstract getState(): Promise<AccountView>
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Query Platform profile independently of wallet balances.
|
|
279
|
+
* A ready result whose stable profile ID first becomes available or changes notifies watch
|
|
280
|
+
* consumers, so identity consumers re-read getPlatformSession; repeated IDs stay silent.
|
|
281
|
+
* @param client - identity of the requesting UI for this call.
|
|
282
|
+
* @returns profile outcome, or null if signed out or the grant changed during the query.
|
|
283
|
+
*/
|
|
284
|
+
abstract getProfile(client: AccountClientMetadata): Promise<AccountDetails['profile'] | null>
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Query Platform recharge and bonus wallet balances independently of profile data.
|
|
288
|
+
* @param client - identity of the requesting UI for this call.
|
|
289
|
+
* @returns balance outcome, or null if signed out or the grant changed during the query.
|
|
290
|
+
*/
|
|
291
|
+
abstract getBalance(client: AccountClientMetadata): Promise<AccountDetails['balance'] | null>
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Query the granted bonuses Platform has not yet recorded as displayed.
|
|
295
|
+
* @param client - identity of the requesting UI for this call; its language selects the server-authored message.
|
|
296
|
+
* @returns bonuses with their account, or null if signed out or the grant changed during the query.
|
|
297
|
+
*/
|
|
298
|
+
abstract getUnnotifiedBonuses(client: AccountClientMetadata): Promise<AccountBonusBatch | null>
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Record one displayed bonus as notified for the account it belongs to.
|
|
302
|
+
* @param accountId - account the notification was read for; a different current account is never acknowledged.
|
|
303
|
+
* @param orderId - granted bonus order the user saw.
|
|
304
|
+
* @param client - identity of the requesting UI for this call.
|
|
305
|
+
* @returns true once Platform records the acknowledgement; false if signed out or the account changed.
|
|
306
|
+
*/
|
|
307
|
+
abstract ackBonusNotified(accountId: AccountUserId, orderId: AccountBonusOrderId, client: AccountClientMetadata): Promise<boolean>
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Join an active attempt or start browser authorization.
|
|
311
|
+
* @param client - identity of the requesting UI; a new attempt captures it, and joining retains the original attempt's identity.
|
|
312
|
+
* @param callbackOrigin - browser-accessible loopback HTTP origin, including any SSH local port.
|
|
313
|
+
* @param loginSource - initiating UI, used to return from a failed exchange.
|
|
314
|
+
* @returns the initial snapshot without waiting for browser approval.
|
|
315
|
+
*/
|
|
316
|
+
abstract startSignIn(client: AccountClientMetadata, callbackOrigin: string, loginSource: 'web' | 'desktop'): Promise<AccountView>
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Cancel only the named attempt; committing attempts settle before returning.
|
|
320
|
+
* @param id - attempt identity from this Host.
|
|
321
|
+
* @returns state after cancellation or an already-started commit.
|
|
322
|
+
*/
|
|
323
|
+
abstract cancelSignIn(id: SignInAttemptId): Promise<AccountView>
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Remove the local grant while retaining API keys; the provider revokes it in the background.
|
|
327
|
+
* @param client - identity of the requesting UI, captured for the background revocation retries.
|
|
328
|
+
* @returns the signed-out state after local removal; remote failures never restore the grant.
|
|
329
|
+
*/
|
|
330
|
+
abstract signOut(client: AccountClientMetadata): Promise<AccountView>
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Subscribe to snapshots including a complete initial state.
|
|
334
|
+
* @param signal - subscription lifetime; ending it never cancels login.
|
|
335
|
+
* @returns complete snapshots as account state changes.
|
|
336
|
+
*/
|
|
337
|
+
abstract watch(signal: AbortSignal): AsyncIterable<AccountView>
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Resolve a credential only for the inference origin allowed by the provider.
|
|
341
|
+
* @param url - actual request destination or API base URL.
|
|
342
|
+
* @returns stored token, or undefined for other origins or a signed-out account.
|
|
343
|
+
*/
|
|
344
|
+
abstract resolveToken(url: string): Promise<string | undefined>
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Remove an inference-rejected token only while it still matches the stored login.
|
|
348
|
+
* @param token - token captured by the rejected inference request.
|
|
349
|
+
* @returns after matching credentials are removed and the expiry notification is emitted.
|
|
350
|
+
*/
|
|
351
|
+
abstract rejectToken(token: string): Promise<void>
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Read credentials for the configured Platform origin, bound to their issuing environment, and
|
|
355
|
+
* pair them with the account ID from the last successful profile read; no profile request is made.
|
|
356
|
+
* @returns a Host-only snapshot, or null while signed out or when the credential changed during the read.
|
|
357
|
+
*/
|
|
358
|
+
abstract getPlatformSession(): Promise<PlatformSession | null>
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* Read existing login identity without creating a device or returning credentials.
|
|
362
|
+
* @returns optional device/account identifiers and the provider's OS version string.
|
|
363
|
+
*/
|
|
364
|
+
abstract getDeviceIdentity(): Promise<{ deviceId?: string; userId?: AccountUserId; osVersion: string }>
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
Source: [`packages/credentials/deepseek-account/src/index.ts`](../../packages/credentials/deepseek-account/src/index.ts)
|
|
368
|
+
|
|
256
369
|
<a id="authorization-events"></a>
|
|
257
370
|
|
|
258
371
|
### `authorization/*` events
|
|
@@ -307,7 +420,7 @@ Source: [`packages/credentials/credentials/src/types.ts`](../../packages/credent
|
|
|
307
420
|
|
|
308
421
|
#### `credentials/reference-updated` — emit
|
|
309
422
|
|
|
310
|
-
Committed change to a provider-managed credential source: a `set`, an `unset`, or an external edit observed in storage. Ambient process-environment changes are not observable and never emit. Listener failures are contained and logged — a sync throw and an async rejection alike — without changing the committed operation's outcome
|
|
423
|
+
Committed change to a provider-managed credential source: a `set`, an `unset`, or an external edit observed in storage. Ambient process-environment changes are not observable and never emit. Listener failures are contained and logged — a sync throw and an async rejection alike — without changing the committed operation's outcome.
|
|
311
424
|
|
|
312
425
|
```ts cordis-catalog
|
|
313
426
|
/**
|
|
@@ -315,10 +428,7 @@ Committed change to a provider-managed credential source: a `set`, an `unset`, o
|
|
|
315
428
|
* `unset`, or an external edit observed in storage. Ambient
|
|
316
429
|
* process-environment changes are not observable and never emit. Listener
|
|
317
430
|
* failures are contained and logged — a sync throw and an async rejection
|
|
318
|
-
* alike — without changing the committed operation's outcome
|
|
319
|
-
* `INVARIANT`-coded failures, which rethrow after every listener ran;
|
|
320
|
-
* that rethrow reaches the emitter only from synchronous listeners, so
|
|
321
|
-
* invariant checks on this event must not be async functions.
|
|
431
|
+
* alike — without changing the committed operation's outcome.
|
|
322
432
|
* @param ref - the reference whose stored value changed.
|
|
323
433
|
* @mode emit
|
|
324
434
|
*/
|
|
@@ -326,4 +436,57 @@ Committed change to a provider-managed credential source: a `set`, an `unset`, o
|
|
|
326
436
|
```
|
|
327
437
|
|
|
328
438
|
Source: [`packages/credentials/credentials/src/types.ts`](../../packages/credentials/credentials/src/types.ts)
|
|
439
|
+
|
|
440
|
+
<a id="deepseek-account-events"></a>
|
|
441
|
+
|
|
442
|
+
### `deepseek-account/*` events
|
|
443
|
+
|
|
444
|
+
<a id="deepseek-accountmodel-sign-in-required--emit"></a>
|
|
445
|
+
|
|
446
|
+
#### `deepseek-account/model-sign-in-required` — emit
|
|
447
|
+
|
|
448
|
+
An account model request requires the user to sign in.
|
|
449
|
+
|
|
450
|
+
```ts cordis-catalog
|
|
451
|
+
/** An account model request requires the user to sign in.
|
|
452
|
+
* @mode emit
|
|
453
|
+
*/
|
|
454
|
+
'deepseek-account/model-sign-in-required'(): void
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
Source: [`packages/credentials/deepseek-account/src/types.ts`](../../packages/credentials/deepseek-account/src/types.ts)
|
|
458
|
+
|
|
459
|
+
<a id="deepseek-accountsession-expired--emit"></a>
|
|
460
|
+
|
|
461
|
+
#### `deepseek-account/session-expired` — emit
|
|
462
|
+
|
|
463
|
+
Server rejection removed the current account credential; this notification is not replayed.
|
|
464
|
+
|
|
465
|
+
```ts cordis-catalog
|
|
466
|
+
/** Server rejection removed the current account credential; this notification is not replayed.
|
|
467
|
+
* @mode emit
|
|
468
|
+
*/
|
|
469
|
+
'deepseek-account/session-expired'(): void
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
Source: [`packages/credentials/deepseek-account/src/types.ts`](../../packages/credentials/deepseek-account/src/types.ts)
|
|
473
|
+
|
|
474
|
+
<a id="deepseek-accountsigned-out--emit"></a>
|
|
475
|
+
|
|
476
|
+
#### `deepseek-account/signed-out` — emit
|
|
477
|
+
|
|
478
|
+
Local grant removal has completed.
|
|
479
|
+
|
|
480
|
+
```ts cordis-catalog
|
|
481
|
+
/** Local grant removal has completed.
|
|
482
|
+
* @mode emit
|
|
483
|
+
*/
|
|
484
|
+
'deepseek-account/signed-out'(): void
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
Source: [`packages/credentials/deepseek-account/src/index.ts`](../../packages/credentials/deepseek-account/src/index.ts)
|
|
329
488
|
<!-- END GENERATED cordis-surface -->
|
|
489
|
+
|
|
490
|
+
The account Service Definition exposes getState, getProfile, getBalance, getUnnotifiedBonuses, ackBonusNotified, startSignIn, cancelSignIn, signOut, watch, and Host-only resolveToken and getPlatformSession. The platform provider implements it with an AuthorizationFlow and a private GrantRecord. AccountView distinguishes stored presence from server validation; attempt IDs bind cancellation to one local flow. See [the account package](../../packages/credentials/deepseek-account/README.md).
|
|
491
|
+
|
|
492
|
+
`AccountClientMetadata` carries `version` from the caller’s `DSH_CLIENT_VERSION`, its active UI `locale`, and `timezoneOffsetSeconds` sampled when the operation begins. The offset is local time minus UTC in seconds: UTC+8 is `28800`. It contains no credentials. Login attempts retain their initiating metadata through exchange and cancellation; sign-out retains its metadata for revocation retries.
|