dsh-plugin-dev-kb 1.5.2 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/README.en.md +31 -9
- package/README.md +42 -14
- package/kb/INDEX.md +3 -3
- package/kb/README.md +9 -4
- package/kb/extra/AGENTS.md +1 -1
- package/kb/extra/cli-help.md +15 -7
- package/kb/extra/cli-help.zh.md +15 -7
- package/kb/extra/cookbook/adding-a-plugin-preview.md +18 -25
- package/kb/extra/cookbook/adding-a-plugin-preview.zh.md +18 -25
- package/kb/extra/cookbook/reviewing-persistence-type-changes.md +1 -1
- package/kb/extra/cookbook/reviewing-persistence-type-changes.zh.md +1 -1
- package/kb/extra/cookbook/reviewing-ui-design.md +166 -0
- package/kb/extra/cookbook/reviewing-ui-design.zh.md +166 -0
- package/kb/extra/deepseek-llm-api-wire-extensions.md +2 -2
- package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +2 -2
- package/kb/extra/defensive-patterns/conversation-and-session.md +2 -2
- package/kb/extra/defensive-patterns/conversation-and-session.zh.md +2 -2
- package/kb/extra/defensive-patterns/general.md +2 -0
- package/kb/extra/defensive-patterns/general.zh.md +2 -0
- package/kb/extra/defensive-patterns/package-surface.md +1 -0
- package/kb/extra/defensive-patterns/package-surface.zh.md +1 -0
- package/kb/extra/defensive-patterns/remote-and-api.md +5 -3
- package/kb/extra/defensive-patterns/remote-and-api.zh.md +5 -3
- package/kb/extra/development.md +16 -9
- package/kb/extra/development.zh.md +16 -9
- package/kb/extra/event-producer-consumer.md +64 -51
- package/kb/extra/event-producer-consumer.zh.md +64 -51
- package/kb/extra/i18n/README.md +2 -0
- package/kb/extra/i18n/README.zh.md +2 -0
- package/kb/extra/module-graph.md +204 -92
- package/kb/extra/module-graph.zh.md +204 -92
- package/kb/extra/persistence-changes/2026-10-13-liveshare-share-viewer-principal.md +60 -0
- package/kb/extra/persistence-changes/2026-10-13-liveshare-share-viewer-principal.zh.md +60 -0
- package/kb/extra/persistence-changes/2026-10-19-session-team-mode.md +48 -0
- package/kb/extra/persistence-changes/2026-10-19-session-team-mode.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-10-22-action-card-status.md +60 -0
- package/kb/extra/persistence-changes/2026-10-22-action-card-status.zh.md +60 -0
- package/kb/extra/persistence-changes/2026-10-25-skill-catalog-incomplete.md +60 -0
- package/kb/extra/persistence-changes/2026-10-25-skill-catalog-incomplete.zh.md +60 -0
- package/kb/extra/persistence-changes/2026-10-27-retry-control-input.md +60 -0
- package/kb/extra/persistence-changes/2026-10-27-retry-control-input.zh.md +60 -0
- package/kb/extra/persistence-changes/2026-10-27-subagent-settlement-attribution.md +60 -0
- package/kb/extra/persistence-changes/2026-10-27-subagent-settlement-attribution.zh.md +60 -0
- package/kb/extra/persistence-changes/2026-11-02-subagent-catalog-names.md +48 -0
- package/kb/extra/persistence-changes/2026-11-02-subagent-catalog-names.zh.md +48 -0
- package/kb/extra/persistence-changes/2026-11-02-team-task-owner-names.md +48 -0
- package/kb/extra/persistence-changes/2026-11-02-team-task-owner-names.zh.md +48 -0
- package/kb/extra/persistence-changes/README.md +2 -0
- package/kb/extra/persistence-changes/README.zh.md +2 -0
- package/kb/extra/persistence-changes/historical-formats/README.md +1 -1
- package/kb/extra/persistence-changes/historical-formats/README.zh.md +1 -1
- package/kb/extra/rescope.md +7 -5
- package/kb/extra/rescope.zh.md +7 -5
- package/kb/extra/subsystems/agent-team.md +38 -75
- package/kb/extra/subsystems/agent-team.zh.md +38 -75
- package/kb/extra/subsystems/attachment.md +36 -13
- package/kb/extra/subsystems/attachment.zh.md +36 -13
- package/kb/extra/subsystems/boot.md +179 -5
- package/kb/extra/subsystems/boot.zh.md +179 -5
- package/kb/extra/subsystems/computer-use.md +78 -0
- package/kb/extra/subsystems/computer-use.zh.md +78 -0
- package/kb/extra/subsystems/deliverables.md +2 -0
- package/kb/extra/subsystems/deliverables.zh.md +2 -0
- package/kb/extra/subsystems/forge.md +1226 -0
- package/kb/extra/subsystems/forge.zh.md +1226 -0
- package/kb/extra/subsystems/liveshare.md +158 -0
- package/kb/extra/subsystems/liveshare.zh.md +158 -0
- package/kb/extra/subsystems/mcp.md +96 -1
- package/kb/extra/subsystems/mcp.zh.md +96 -1
- package/kb/extra/subsystems/worktrees.md +54 -3
- package/kb/extra/subsystems/worktrees.zh.md +54 -3
- package/kb/extra/testing.md +1 -1
- package/kb/extra/testing.zh.md +1 -1
- package/kb/extra/ui-design-review-cases.md +445 -0
- package/kb/extra/ui-design-review-cases.zh.md +445 -0
- package/kb/extra/ui-radius.md +3 -1
- package/kb/extra/ui-radius.zh.md +3 -1
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.md +1 -1
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.zh.md +1 -1
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/cordis-timer-wrappers/guide.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/cordis-timer-wrappers/guide.zh.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/plugin-manager-view-fields/guide.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.2/plugin-manager-view-fields/guide.zh.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.4/model-switch-compaction/guide.md +30 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.4/model-switch-compaction/guide.zh.md +30 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.4/session-model-selection/guide.md +28 -0
- package/kb/extra/upgrade-guide/v0.2.1-alpha.4/session-model-selection/guide.zh.md +28 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.1/agent-instructions-chain-budgets/guide.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.1/agent-instructions-chain-budgets/guide.zh.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.1/subagent-control-tools/guide.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.1/subagent-control-tools/guide.zh.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/agent-runtime-owner/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/agent-runtime-owner/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/agent-team-subagents/guide.md +31 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/agent-team-subagents/guide.zh.md +31 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/approval-projection-dependency/guide.md +34 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/approval-projection-dependency/guide.zh.md +34 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/auto-review-shutdown/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/auto-review-shutdown/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/auto-review-user-sources/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/auto-review-user-sources/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/built-in-japanese/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/built-in-japanese/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/conditional-tools/guide.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/conditional-tools/guide.zh.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/context-menu-services/guide.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/context-menu-services/guide.zh.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/cua-consent-storage/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/cua-consent-storage/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/cua-preset-scope/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/cua-preset-scope/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/cua-relative-coordinates/guide.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/cua-relative-coordinates/guide.zh.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/file-drag-callbacks/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/file-drag-callbacks/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/headless-policy-composition/guide.md +27 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/headless-policy-composition/guide.zh.md +27 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/model-badge-package-removal/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/model-badge-package-removal/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/new-session-blank-reuse/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/new-session-blank-reuse/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/node-24/guide.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/node-24/guide.zh.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/official-bundle-lists/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/official-bundle-lists/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/persistent-terminal-controls/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/persistent-terminal-controls/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/pi-ai-default-capacities/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/pi-ai-default-capacities/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/pi-ai-model-catalog/guide.md +53 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/pi-ai-model-catalog/guide.zh.md +53 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/pi-ai-protocol-replay/guide.md +30 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/pi-ai-protocol-replay/guide.zh.md +30 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/ptc-script-format/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/ptc-script-format/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/sdk-desktop-context/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/sdk-desktop-context/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/sdk-minimal-checkpoints/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/sdk-minimal-checkpoints/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/session-projection-handles/guide.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/session-projection-handles/guide.zh.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/session-store-writes/guide.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/session-store-writes/guide.zh.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/session-team-mode/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/session-team-mode/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/subagent-activation-options/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/subagent-activation-options/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/subagent-service-methods/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/subagent-service-methods/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/subagent-user-controls/guide.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/subagent-user-controls/guide.zh.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/tool-executor-plugins/guide.md +35 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/tool-executor-plugins/guide.zh.md +35 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/web-fetch-private-destinations/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/web-fetch-private-destinations/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/webserver-index-peer/guide.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.2/webserver-index-peer/guide.zh.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/attachment-read-access/guide.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/attachment-read-access/guide.zh.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/computer-use-helper-permissions/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/computer-use-helper-permissions/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/cua-bundle-id-consent/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/cua-bundle-id-consent/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/generated-worktree-names/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/generated-worktree-names/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/inbox-only-agent-wait/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/inbox-only-agent-wait/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/independent-session-forks/guide.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/independent-session-forks/guide.zh.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/ptc-caller-cancellation/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/ptc-caller-cancellation/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/session-follow-activation/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/session-follow-activation/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/subagent-runtime-ownership/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/subagent-runtime-ownership/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/team-mode-menu/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/team-mode-menu/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/team-projection/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/team-projection/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/web-file-downloads/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/web-file-downloads/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/web-search-defaults/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.3/web-search-defaults/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.4/model-listing-refresh/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.4/model-listing-refresh/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.4/reasoning-body-props/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.4/reasoning-body-props/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/context-menu-target/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/context-menu-target/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/cordis-loader-entry-trees/guide.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/cordis-loader-entry-trees/guide.zh.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/css-anchored-menus/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/css-anchored-menus/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/cua-source-dev-helper/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/cua-source-dev-helper/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/desktop-stable-channel/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/desktop-stable-channel/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/forge-git-permissions/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/forge-git-permissions/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/forge-worktree-entry/guide.md +29 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/forge-worktree-entry/guide.zh.md +29 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/fs-observation-policy-default-off/guide.md +29 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/fs-observation-policy-default-off/guide.zh.md +29 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/llm-request-purpose-declarations/guide.md +29 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/llm-request-purpose-declarations/guide.zh.md +29 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/pi-ai-request-image-count/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/pi-ai-request-image-count/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/projection-event-frames/guide.md +32 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/projection-event-frames/guide.zh.md +32 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/projection-released-checkpoint/guide.md +30 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/projection-released-checkpoint/guide.zh.md +30 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/projection-snapshot-scope/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/projection-snapshot-scope/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/retained-ptc-timeout/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/retained-ptc-timeout/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/schedule-agent-tools/guide.md +37 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/schedule-agent-tools/guide.zh.md +37 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/schedule-remote-host-tasks/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/schedule-remote-host-tasks/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/sdk-run-commands/guide.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/sdk-run-commands/guide.zh.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/session-header-menu/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/session-header-menu/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/subagent-explicit-reasoning/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/subagent-explicit-reasoning/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/web-search-credential-modes/guide.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/web-search-credential-modes/guide.zh.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/web-search-default-provider/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/web-search-default-provider/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/chat-process-activity-context/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/chat-process-activity-context/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/subagent-names/guide.md +29 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/subagent-names/guide.zh.md +29 -0
- package/kb/extra/web-styling.md +19 -1
- package/kb/extra/web-styling.zh.md +19 -1
- package/kb/meta/search-index.json +1272 -1098
- package/kb/meta/source.json +8 -4
- package/kb/site/develop/cordis-tutorial/04-events.md +1 -1
- package/kb/site/develop/cordis-tutorial/07-into-the-harness.md +5 -4
- package/kb/site/develop/framework/events.md +1 -1
- package/kb/site/develop/practice/dynamic-cordis.md +1 -1
- package/kb/site/en/develop/cordis-tutorial/04-events.md +1 -1
- package/kb/site/en/develop/cordis-tutorial/07-into-the-harness.md +5 -4
- package/kb/site/en/develop/framework/events.md +1 -1
- package/kb/site/en/develop/practice/dynamic-cordis.md +1 -1
- package/kb/site/en/guide/network-proxy.md +1 -1
- package/kb/site/en/guide/plugin-market.md +10 -10
- package/kb/site/en/guide/providers.md +5 -1
- package/kb/site/en/guide/python-sdk.md +17 -2
- package/kb/site/en/guide/schedule.md +45 -26
- package/kb/site/en/reference/agent-lifecycle.md +3 -1
- package/kb/site/en/reference/api-gateway.md +4 -4
- package/kb/site/en/reference/capability-seams.md +65 -17
- package/kb/site/en/reference/config-catalog.md +560 -238
- package/kb/site/en/reference/cookbook/adding-a-package.md +4 -2
- package/kb/site/en/reference/cookbook/extension-cookbook.md +1 -1
- package/kb/site/en/reference/cordis-api/context.md +1 -1
- package/kb/site/en/reference/cordis-api/events.md +9 -9
- package/kb/site/en/reference/cordis-api/fiber.md +85 -32
- package/kb/site/en/reference/cordis-api/inherited.md +10 -9
- package/kb/site/en/reference/experimental-persistence-catalog.md +3 -0
- package/kb/site/en/reference/index.md +14 -8
- package/kb/site/en/reference/persistence-catalog.md +532 -246
- package/kb/site/en/reference/subsystems/client-modules.md +19 -11
- package/kb/site/en/reference/subsystems/compaction.md +1 -1
- package/kb/site/en/reference/subsystems/conversation.md +2 -0
- package/kb/site/en/reference/subsystems/core.md +119 -65
- package/kb/site/en/reference/subsystems/filesystem.md +202 -28
- package/kb/site/en/reference/subsystems/index.md +3 -1
- package/kb/site/en/reference/subsystems/llm-streaming.md +92 -4
- package/kb/site/en/reference/subsystems/persistence.md +17 -7
- package/kb/site/en/reference/subsystems/plan.md +4 -4
- package/kb/site/en/reference/subsystems/ptc-runtime.md +12 -5
- package/kb/site/en/reference/subsystems/sandbox.md +11 -4
- package/kb/site/en/reference/subsystems/schedule.md +194 -430
- package/kb/site/en/reference/subsystems/session-projection.md +186 -44
- package/kb/site/en/reference/subsystems/session-reference.md +4 -3
- package/kb/site/en/reference/subsystems/session.md +119 -31
- package/kb/site/en/reference/subsystems/sidebar-right.md +12 -11
- package/kb/site/en/reference/subsystems/skills.md +4 -4
- package/kb/site/en/reference/subsystems/slots.md +30 -3
- package/kb/site/en/reference/subsystems/storage.md +26 -9
- package/kb/site/en/reference/subsystems/subagent.md +119 -102
- package/kb/site/en/reference/subsystems/system-prompt.md +13 -11
- package/kb/site/en/reference/subsystems/token-meter.md +45 -0
- package/kb/site/en/reference/subsystems/tools.md +222 -82
- package/kb/site/en/reference/subsystems/typert.md +21 -11
- package/kb/site/en/reference/subsystems/user-questions.md +22 -6
- package/kb/site/en/reference/subsystems/web-client.md +1 -1
- package/kb/site/en/reference/subsystems/web-server.md +68 -23
- package/kb/site/en/reference/subsystems/web.md +79 -21
- package/kb/site/en/reference/tool-catalog.md +270 -395
- package/kb/site/en/reference/tool-execution-pipeline.md +5 -4
- package/kb/site/guide/network-proxy.md +1 -1
- package/kb/site/guide/plugin-market.md +10 -10
- package/kb/site/guide/providers.md +5 -1
- package/kb/site/guide/python-sdk.md +17 -2
- package/kb/site/guide/schedule.md +45 -26
- package/kb/site/reference/agent-lifecycle.md +3 -1
- package/kb/site/reference/api-gateway.md +4 -4
- package/kb/site/reference/capability-seams.md +65 -17
- package/kb/site/reference/config-catalog.md +560 -238
- package/kb/site/reference/cookbook/adding-a-package.md +4 -2
- package/kb/site/reference/cookbook/extension-cookbook.md +1 -1
- package/kb/site/reference/cordis-api/context.md +1 -1
- package/kb/site/reference/cordis-api/events.md +9 -9
- package/kb/site/reference/cordis-api/fiber.md +87 -32
- package/kb/site/reference/cordis-api/inherited.md +10 -9
- package/kb/site/reference/experimental-persistence-catalog.md +3 -0
- package/kb/site/reference/index.md +14 -8
- package/kb/site/reference/persistence-catalog.md +532 -246
- package/kb/site/reference/subsystems/client-modules.md +19 -11
- package/kb/site/reference/subsystems/compaction.md +1 -1
- package/kb/site/reference/subsystems/conversation.md +4 -0
- package/kb/site/reference/subsystems/core.md +119 -65
- package/kb/site/reference/subsystems/filesystem.md +202 -28
- package/kb/site/reference/subsystems/index.md +3 -1
- package/kb/site/reference/subsystems/llm-streaming.md +92 -4
- package/kb/site/reference/subsystems/persistence.md +17 -7
- package/kb/site/reference/subsystems/plan.md +4 -4
- package/kb/site/reference/subsystems/ptc-runtime.md +12 -5
- package/kb/site/reference/subsystems/sandbox.md +11 -4
- package/kb/site/reference/subsystems/schedule.md +197 -433
- package/kb/site/reference/subsystems/session-projection.md +186 -44
- package/kb/site/reference/subsystems/session-reference.md +4 -3
- package/kb/site/reference/subsystems/session.md +119 -31
- package/kb/site/reference/subsystems/sidebar-right.md +12 -11
- package/kb/site/reference/subsystems/skills.md +4 -4
- package/kb/site/reference/subsystems/slots.md +30 -3
- package/kb/site/reference/subsystems/storage.md +26 -9
- package/kb/site/reference/subsystems/subagent.md +119 -102
- package/kb/site/reference/subsystems/system-prompt.md +13 -11
- package/kb/site/reference/subsystems/token-meter.md +45 -0
- package/kb/site/reference/subsystems/tools.md +222 -82
- package/kb/site/reference/subsystems/typert.md +21 -11
- package/kb/site/reference/subsystems/user-questions.md +22 -6
- package/kb/site/reference/subsystems/web-client.md +1 -1
- package/kb/site/reference/subsystems/web-server.md +68 -23
- package/kb/site/reference/subsystems/web.md +79 -21
- package/kb/site/reference/tool-catalog.md +273 -399
- package/kb/site/reference/tool-execution-pipeline.md +4 -3
- package/lib/index.js +268 -11
- package/lib/kb-search.js +261 -0
- package/lib/kb-version.js +118 -0
- package/package.json +5 -3
- package/scripts/refresh-kb.mjs +153 -0
- package/scripts/selfcheck.mjs +28 -0
- package/scripts/smoke.mjs +77 -0
- package/skills/dsh-plugin-dev-kb.md +8 -7
- package/skills/dsh-plugin-starter.md +65 -0
- package/skills/dsh-upgrade-assistant.md +62 -0
- package/kb/extra/agent-lifecycle.md +0 -91
- package/kb/extra/agent-lifecycle.zh.md +0 -93
- package/kb/extra/api-gateway.md +0 -172
- package/kb/extra/api-gateway.zh.md +0 -178
- package/kb/extra/architecture.md +0 -165
- package/kb/extra/architecture.zh.md +0 -169
- package/kb/extra/capability-seams.md +0 -714
- package/kb/extra/capability-seams.zh.md +0 -716
- package/kb/extra/config-catalog.md +0 -4801
- package/kb/extra/config-catalog.zh.md +0 -4803
- package/kb/extra/cookbook/adding-a-package.md +0 -170
- package/kb/extra/cookbook/adding-a-package.zh.md +0 -170
- package/kb/extra/cookbook/adding-a-settings-card.md +0 -72
- package/kb/extra/cookbook/adding-a-settings-card.zh.md +0 -72
- package/kb/extra/cookbook/adding-a-tool.md +0 -101
- package/kb/extra/cookbook/adding-a-tool.zh.md +0 -103
- package/kb/extra/cookbook/adding-an-llm-adapter.md +0 -43
- package/kb/extra/cookbook/adding-an-llm-adapter.zh.md +0 -43
- package/kb/extra/cookbook/extension-cookbook.md +0 -132
- package/kb/extra/cookbook/extension-cookbook.zh.md +0 -136
- package/kb/extra/cordis-api/context.md +0 -364
- package/kb/extra/cordis-api/context.zh.md +0 -366
- package/kb/extra/cordis-api/events.md +0 -207
- package/kb/extra/cordis-api/events.zh.md +0 -209
- package/kb/extra/cordis-api/fiber.md +0 -375
- package/kb/extra/cordis-api/fiber.zh.md +0 -377
- package/kb/extra/cordis-api/inherited.md +0 -38
- package/kb/extra/cordis-api/registry.md +0 -152
- package/kb/extra/cordis-api/registry.zh.md +0 -154
- package/kb/extra/cordis-api/service.md +0 -102
- package/kb/extra/cordis-api/service.zh.md +0 -104
- package/kb/extra/cordis-tutorial/01-first-plugin.md +0 -95
- package/kb/extra/cordis-tutorial/01-first-plugin.zh.md +0 -95
- package/kb/extra/cordis-tutorial/02-lifecycle-and-effects.md +0 -98
- package/kb/extra/cordis-tutorial/02-lifecycle-and-effects.zh.md +0 -98
- package/kb/extra/cordis-tutorial/03-services.md +0 -98
- package/kb/extra/cordis-tutorial/03-services.zh.md +0 -98
- package/kb/extra/cordis-tutorial/04-events.md +0 -144
- package/kb/extra/cordis-tutorial/04-events.zh.md +0 -144
- package/kb/extra/cordis-tutorial/05-config.md +0 -111
- package/kb/extra/cordis-tutorial/05-config.zh.md +0 -111
- package/kb/extra/cordis-tutorial/06-composition-and-hmr.md +0 -113
- package/kb/extra/cordis-tutorial/06-composition-and-hmr.zh.md +0 -113
- package/kb/extra/cordis-tutorial/07-into-the-harness.md +0 -108
- package/kb/extra/cordis-tutorial/07-into-the-harness.zh.md +0 -108
- package/kb/extra/cordis-tutorial/index.md +0 -60
- package/kb/extra/cordis-tutorial/index.zh.md +0 -62
- package/kb/extra/experimental-persistence-catalog.md +0 -17
- package/kb/extra/experimental-persistence-catalog.zh.md +0 -17
- package/kb/extra/persistence-catalog.md +0 -9140
- package/kb/extra/persistence-catalog.zh.md +0 -9142
- package/kb/extra/subsystems/README.md +0 -76
- package/kb/extra/subsystems/README.zh.md +0 -76
- package/kb/extra/subsystems/approval.md +0 -170
- package/kb/extra/subsystems/approval.zh.md +0 -170
- package/kb/extra/subsystems/client-modules.md +0 -198
- package/kb/extra/subsystems/client-modules.zh.md +0 -198
- package/kb/extra/subsystems/client-resources.md +0 -92
- package/kb/extra/subsystems/client-resources.zh.md +0 -92
- package/kb/extra/subsystems/commands.md +0 -223
- package/kb/extra/subsystems/commands.zh.md +0 -223
- package/kb/extra/subsystems/compaction.md +0 -284
- package/kb/extra/subsystems/compaction.zh.md +0 -284
- package/kb/extra/subsystems/conversation.md +0 -301
- package/kb/extra/subsystems/conversation.zh.md +0 -303
- package/kb/extra/subsystems/core.md +0 -1113
- package/kb/extra/subsystems/core.zh.md +0 -1125
- package/kb/extra/subsystems/credentials.md +0 -493
- package/kb/extra/subsystems/credentials.zh.md +0 -493
- package/kb/extra/subsystems/filesystem.md +0 -530
- package/kb/extra/subsystems/filesystem.zh.md +0 -530
- package/kb/extra/subsystems/goal.md +0 -313
- package/kb/extra/subsystems/goal.zh.md +0 -313
- package/kb/extra/subsystems/jobs.md +0 -554
- package/kb/extra/subsystems/jobs.zh.md +0 -554
- package/kb/extra/subsystems/llm-streaming.md +0 -1196
- package/kb/extra/subsystems/llm-streaming.zh.md +0 -1202
- package/kb/extra/subsystems/lsp.md +0 -202
- package/kb/extra/subsystems/lsp.zh.md +0 -202
- package/kb/extra/subsystems/permission-presets.md +0 -167
- package/kb/extra/subsystems/permission-presets.zh.md +0 -167
- package/kb/extra/subsystems/persistence.md +0 -418
- package/kb/extra/subsystems/persistence.zh.md +0 -418
- package/kb/extra/subsystems/plan.md +0 -87
- package/kb/extra/subsystems/plan.zh.md +0 -87
- package/kb/extra/subsystems/ptc-runtime.md +0 -250
- package/kb/extra/subsystems/ptc-runtime.zh.md +0 -250
- package/kb/extra/subsystems/sandbox.md +0 -221
- package/kb/extra/subsystems/sandbox.zh.md +0 -221
- package/kb/extra/subsystems/schedule.md +0 -550
- package/kb/extra/subsystems/schedule.zh.md +0 -550
- package/kb/extra/subsystems/scope.md +0 -59
- package/kb/extra/subsystems/scope.zh.md +0 -61
- package/kb/extra/subsystems/session-projection.md +0 -356
- package/kb/extra/subsystems/session-projection.zh.md +0 -356
- package/kb/extra/subsystems/session-query.md +0 -511
- package/kb/extra/subsystems/session-query.zh.md +0 -511
- package/kb/extra/subsystems/session-reference.md +0 -224
- package/kb/extra/subsystems/session-reference.zh.md +0 -224
- package/kb/extra/subsystems/session-telemetry.md +0 -212
- package/kb/extra/subsystems/session-telemetry.zh.md +0 -212
- package/kb/extra/subsystems/session-title.md +0 -213
- package/kb/extra/subsystems/session-title.zh.md +0 -213
- package/kb/extra/subsystems/session.md +0 -1339
- package/kb/extra/subsystems/session.zh.md +0 -1343
- package/kb/extra/subsystems/settings.md +0 -155
- package/kb/extra/subsystems/settings.zh.md +0 -155
- package/kb/extra/subsystems/shell.md +0 -314
- package/kb/extra/subsystems/shell.zh.md +0 -314
- package/kb/extra/subsystems/sidebar-right.md +0 -160
- package/kb/extra/subsystems/sidebar-right.zh.md +0 -160
- package/kb/extra/subsystems/skills.md +0 -352
- package/kb/extra/subsystems/skills.zh.md +0 -352
- package/kb/extra/subsystems/slots.md +0 -200
- package/kb/extra/subsystems/slots.zh.md +0 -204
- package/kb/extra/subsystems/spill.md +0 -124
- package/kb/extra/subsystems/spill.zh.md +0 -124
- package/kb/extra/subsystems/storage.md +0 -259
- package/kb/extra/subsystems/storage.zh.md +0 -259
- package/kb/extra/subsystems/subagent.md +0 -686
- package/kb/extra/subsystems/subagent.zh.md +0 -688
- package/kb/extra/subsystems/subprocess.md +0 -321
- package/kb/extra/subsystems/subprocess.zh.md +0 -321
- package/kb/extra/subsystems/system-prompt.md +0 -254
- package/kb/extra/subsystems/system-prompt.zh.md +0 -254
- package/kb/extra/subsystems/terminal.md +0 -184
- package/kb/extra/subsystems/terminal.zh.md +0 -184
- package/kb/extra/subsystems/token-meter.md +0 -106
- package/kb/extra/subsystems/token-meter.zh.md +0 -106
- package/kb/extra/subsystems/tools.md +0 -747
- package/kb/extra/subsystems/tools.zh.md +0 -747
- package/kb/extra/subsystems/typert.md +0 -690
- package/kb/extra/subsystems/typert.zh.md +0 -690
- package/kb/extra/subsystems/user-questions.md +0 -307
- package/kb/extra/subsystems/user-questions.zh.md +0 -307
- package/kb/extra/subsystems/web-client.md +0 -100
- package/kb/extra/subsystems/web-client.zh.md +0 -100
- package/kb/extra/subsystems/web-server.md +0 -302
- package/kb/extra/subsystems/web-server.zh.md +0 -302
- package/kb/extra/subsystems/web.md +0 -206
- package/kb/extra/subsystems/web.zh.md +0 -206
- package/kb/extra/subsystems/workflow.md +0 -278
- package/kb/extra/subsystems/workflow.zh.md +0 -278
- package/kb/extra/subsystems/workspace.md +0 -647
- package/kb/extra/subsystems/workspace.zh.md +0 -647
- package/kb/extra/tool-catalog.md +0 -2824
- package/kb/extra/tool-catalog.zh.md +0 -2832
- package/kb/extra/tool-execution-pipeline.md +0 -65
- package/kb/extra/tool-execution-pipeline.zh.md +0 -67
|
@@ -10,13 +10,15 @@ The [boot package group](../../packages/boot/README.md) owns launcher-provided p
|
|
|
10
10
|
|
|
11
11
|
`PluginInfo` carries module identity, effective enablement, fiber phase and optional display `meta`, plus a unique `patchId` or a `readOnlyReason`.
|
|
12
12
|
|
|
13
|
-
`BundleInfo.official` identifies project-maintained shipped optional bundles and on-demand catalog entries independently of installation. `availability` identifies a readable installation-provided or profile package, or `missing`; on-demand catalog entries exclude undeclared transitive copies. `installed` records the profile dependency declaration. An on-demand `installTarget` carries the host-derived exact spec and version. `BundleInfo` also carries the package name, optional installed version, selected enablement, removal availability, optional resolution error, and, for a bundle the profile's own dependency supplies and the installation does not, `source`: that dependency as a spec `pnpm add` accepts. Its optional `meta` and each `BundleRowInfo.meta` contain display text or a metadata diagnostic; Clients select a language at render time.
|
|
13
|
+
`BundleInfo.official` identifies project-maintained shipped optional bundles and on-demand catalog entries independently of installation. `availability` identifies a readable installation-provided or profile package, or `missing`; on-demand catalog entries exclude undeclared transitive copies. `installed` records the profile dependency declaration. An on-demand `installTarget` carries the host-derived exact spec and version. `BundleInfo` also carries the package name, optional installed version, selected enablement, removal availability, update eligibility (`updatable`), optional resolution or unsupported-platform error, and, for a bundle the profile's own dependency supplies and the installation does not, `source`: that dependency as a spec `pnpm add` accepts. Its optional `meta` and each `BundleRowInfo.meta` contain display text or a metadata diagnostic; Clients select a language at render time.
|
|
14
14
|
|
|
15
15
|
`InstallBundleOptions.saveExact` passes `--save-exact` to the shared package installer. `InstallBundleOptions.enabled` defaults to true. False installs without selecting the bundle layer. `approvedBuilds` grants persistent script permission to the supplied pending package names before installation. `registry` names the registry asked first; absent, the configured one.
|
|
16
16
|
|
|
17
|
+
`BundleDetail` is a profile bundle's long description: `{ status: 'found' }` with its `origin` (`locale` or `readme`), its `path` inside the package, and its `markdown`, or `{ status: 'none' }`; [`readBundleDetail`](../../packages/boot/plugin-manager/README.md#bundle-detail-documents) documents the order and the image route. `NpmFileSource` names a public npm file CDN, `jsdelivr`, `unpkg`, or `npmmirror`; a read's `npmFileSources` lists the ones to ask first.
|
|
18
|
+
|
|
17
19
|
`PluginRegistries` carries the configured first registry, `null` for the one pnpm's own configuration names, the fallbacks asked after it, and `resolved`, the URL pnpm's own configuration names or `null` while unread. `InspectOptions.registry` names the registry a lookup asks first.
|
|
18
20
|
|
|
19
|
-
`ChangeResult.changed` reports a disk edit independently of `application`: `applied`, `restart-required`, `overridden` or `failed`. Optional `error` carries a localizable code and external diagnostic. `packageResult` records the
|
|
21
|
+
`ChangeResult.changed` reports a disk edit independently of `application`: `applied`, `restart-required`, `overridden` or `failed`. Optional `error` carries a localizable code and external diagnostic. `packageResult` records the run's exit status, bounded output, truncation flag and complete diagnostic log path, plus `timedOut` when the manager terminated a run that stopped printing or the GitHub connection check hit its deadline; a terminated run records the coerced status 1 because its process returned none. A terminated run is classified `timeout` whatever exit status the signal left behind, so installation and removal report failure instead of success and no further registry is asked. `pendingBuilds` lists undecided packages across the profile; `approvedBuilds` records the names granted permission by this operation; `registries` lists the registries an installation asked, in order; `bundle` and `version` name the package a finished installation added and its manifest version; `failedAt` says whether the last failed run could not reach the registry it asked or the host a git or tarball spec is fetched from.
|
|
20
22
|
|
|
21
23
|
## Market records
|
|
22
24
|
|
|
@@ -26,6 +28,8 @@ The [boot package group](../../packages/boot/README.md) owns launcher-provided p
|
|
|
26
28
|
|
|
27
29
|
`MarketQuery` selects one page of an index: fuzzy `text`, a `category`, `labels` that must all be present, a `MarketSort`, `offset`, `limit` up to 100, `refresh` to fetch again instead of using a cached document, and `fetchedAt` to continue the pages of one document. `MarketSearchResult` carries the index URL, `title`, optional `description`, market `metadata`, the document's `fetchedAt`, the page's `entries`, the `total` number of matches, and the `nextOffset`. Each `MarketListingEntry` adds `defaultVersion`, the version installed by default, and `installation`, the profile's status for the package name; each of its `versions` adds `install`, the exact spec and optional first registry for `installBundle`, and `compatibility`, the evaluation of its `engines.dsh` including a version exemption.
|
|
28
30
|
|
|
31
|
+
`PluginDetail` is a market entry's long description: `{ status: 'found' }` with its `origin` (`locale`, `readme`, or `repository`), its `markdown`, and a `document` id whose images `GET /api/plugin-market/detail-file` serves, or `{ status: 'none' }`. The [plugin market documents the order](../../packages/boot/plugin-market/README.md#plugin-detail-documents) its sources are read in.
|
|
32
|
+
|
|
29
33
|
## Profile reconciliation
|
|
30
34
|
|
|
31
35
|
<a id="profile-reconciliation"></a>
|
|
@@ -65,6 +69,53 @@ interface PendingModule {
|
|
|
65
69
|
|
|
66
70
|
Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) — the language sides differ only in locale-specific paired document paths. Signature blocks use a `ts cordis-catalog` fence and keep the original source JSDoc; dispatch modes are defined in the [primer](../cordis-primer.md#dispatch-modes), and the framework-inherited `ctx` API lives in [cordis-api/inherited.md](../cordis-api/inherited.md).
|
|
67
71
|
|
|
72
|
+
<a id="ctxactioncards--actioncards"></a>
|
|
73
|
+
|
|
74
|
+
### `ctx.actionCards` — `ActionCards`
|
|
75
|
+
|
|
76
|
+
Card tool, kind registry, Session projection, user actions and status notices.
|
|
77
|
+
|
|
78
|
+
```ts cordis-catalog
|
|
79
|
+
/**
|
|
80
|
+
* Register one action kind for the caller's lifetime.
|
|
81
|
+
* @param kind - the kind's skill, details schema, verbs and handler.
|
|
82
|
+
* @returns disposer removing the kind; actions on its cards are then unavailable.
|
|
83
|
+
* @throws when another kind already registered the same action.
|
|
84
|
+
*/
|
|
85
|
+
register<Details>(kind: ActionCardKind<Details>): () => void
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Record a card decision in the Session log; the next model request reports it.
|
|
89
|
+
* @param agent - agent whose Session owns the card.
|
|
90
|
+
* @param decision - the card's new state.
|
|
91
|
+
* @throws when no kind ever registered the decision's action with this service, or its phase is one the projection derives.
|
|
92
|
+
*/
|
|
93
|
+
record(agent: Agent, decision: ActionCardDecision): void
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Read the cards of one Session.
|
|
97
|
+
* @param session - a Session whose projections are prepared.
|
|
98
|
+
* @returns proposals and decisions by call id.
|
|
99
|
+
*/
|
|
100
|
+
view(session: Session): ActionCardView
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Apply a user action to a logged card. Shared checks run first, then the kind reconciles the card; `dismiss` is
|
|
104
|
+
* recorded here and every other verb goes to the card's kind. `dismiss` also works on an unstarted card whose kind
|
|
105
|
+
* is no longer registered. Concurrent actions on one card share one operation.
|
|
106
|
+
* @param agent - live root resolved from the displayed Session.
|
|
107
|
+
* @param callId - the card's `propose_action` call id.
|
|
108
|
+
* @param verb - `dismiss` or one of the kind's verbs.
|
|
109
|
+
* @param payload - kind-defined fields such as a chosen location.
|
|
110
|
+
* @returns acceptance of background work, the decision in effect, or a refusal.
|
|
111
|
+
*/
|
|
112
|
+
@Remote act(agent: Agent, callId: ToolCallId, verb: string, payload?: Record<string, JsonValue>): Promise<ActionCardResult>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Types: [Agent](core.md) · [Session](session.md) · [ToolCallId](core.md)
|
|
116
|
+
|
|
117
|
+
Source: [`packages/experimental/action-cards/src/index.ts`](../../packages/experimental/action-cards/src/index.ts)
|
|
118
|
+
|
|
68
119
|
<a id="ctxconfigeditor--configeditor"></a>
|
|
69
120
|
|
|
70
121
|
### `ctx.configEditor` — `ConfigEditor`
|
|
@@ -92,6 +143,14 @@ async edit( entry: Entry, change: (current: Record<string, unknown>, inherited:
|
|
|
92
143
|
|
|
93
144
|
Source: [`packages/boot/config-editor/src/index.ts`](../../packages/boot/config-editor/src/index.ts)
|
|
94
145
|
|
|
146
|
+
<a id="ctxheadlessstartup--headlessstartupvalues"></a>
|
|
147
|
+
|
|
148
|
+
### `ctx.headlessStartup` — `HeadlessStartupValues`
|
|
149
|
+
|
|
150
|
+
What the runner row reads from HEADLESS_STARTUP_SERVICE.
|
|
151
|
+
|
|
152
|
+
Source: [`packages/bundle/headless/src/startup.ts`](../../packages/bundle/headless/src/startup.ts)
|
|
153
|
+
|
|
95
154
|
<a id="ctxhmr--hmr"></a>
|
|
96
155
|
|
|
97
156
|
### `ctx.hmr` — `Hmr`
|
|
@@ -143,6 +202,20 @@ Source: [`packages/boot/hmr/src/index.ts`](../../packages/boot/hmr/src/index.ts)
|
|
|
143
202
|
Manage profile files and apply their declared reload lifecycle.
|
|
144
203
|
|
|
145
204
|
```ts cordis-catalog
|
|
205
|
+
/**
|
|
206
|
+
* Read a bundle's long description: the Markdown file its locale `meta.detail` names in `language`, otherwise its
|
|
207
|
+
* README. An installed bundle is read from its directory without network access; an official bundle the installation
|
|
208
|
+
* offers before it is installed is read from the npm file CDNs at its offered version. Nothing is cached.
|
|
209
|
+
* @param name - the bundle's package name, as `listBundles()` lists it.
|
|
210
|
+
* @param language - the display language, such as `zh-CN`; documents fall back through its prefixes to English.
|
|
211
|
+
* @param options - `npmFileSources` names npm file CDNs to ask first for an offered bundle, in order, such as the one
|
|
212
|
+
* a Client measured as fastest; configured CDNs it omits follow, and CDNs that are not configured are not asked.
|
|
213
|
+
* @returns the document with its origin and path, or `none`.
|
|
214
|
+
* @throws {RemoteError} `plugin-manager/unknown-bundle`, `plugin-manager/invalid-language`, or
|
|
215
|
+
* `plugin-manager/detail-unavailable`.
|
|
216
|
+
*/
|
|
217
|
+
@Remote async readBundleDetail(name: string, language: string, options?: { npmFileSources?: NpmFileSource[] }): Promise<BundleDetail>
|
|
218
|
+
|
|
146
219
|
/** Read exact plugin-version exemptions saved in this profile.
|
|
147
220
|
* @returns Accepted package-name@version keys with the runtime versions they may run on, and any
|
|
148
221
|
* record or file problem the reader rejected, which the caller reports instead of failing.
|
|
@@ -183,6 +256,30 @@ Manage profile files and apply their declared reload lifecycle.
|
|
|
183
256
|
*/
|
|
184
257
|
@Remote async inspect(spec: string, options?: InspectOptions, signal?: AbortSignal): Promise<PluginSpecInspection>
|
|
185
258
|
|
|
259
|
+
/** Read the published versions newer than an installed registry package's version, from the first registry that answers.
|
|
260
|
+
* Official bundles follow the DSH version and are not listed.
|
|
261
|
+
* @param name Installed profile dependency name.
|
|
262
|
+
* @param options The registry asked first; absent, the one the package was installed from in this process, else the configured one.
|
|
263
|
+
* @param signal Ends the lookups early.
|
|
264
|
+
* @returns At most `versionListLimit` newer versions, newest first, with their tags, deprecation, bundle declaration,
|
|
265
|
+
* and DSH compatibility, and the registry that answered; or why no list could be read, with every registry asked.
|
|
266
|
+
*/
|
|
267
|
+
@Remote async listVersions(name: string, options?: ListVersionsOptions, signal?: AbortSignal): Promise<PluginVersionList>
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Replace an installed registry bundle with a newer published version. The target is checked on the registry first:
|
|
271
|
+
* it must exist, declare a bundle, and accept the running DSH version, or nothing changes. With HMR the installed
|
|
272
|
+
* version is removed, so its plugins stop, and the target is installed with the same selection; when that
|
|
273
|
+
* installation fails or is cancelled, the removed version is installed again from the registry it came from.
|
|
274
|
+
* Without HMR the target is installed over the running version and the result reports the restart.
|
|
275
|
+
* @param name Installed profile dependency name.
|
|
276
|
+
* @param version Exact published version newer than the installed one.
|
|
277
|
+
* @param options The registry asked first, as for `listVersions`, and the request id naming the progress and the
|
|
278
|
+
* target installation's logs and cancellation.
|
|
279
|
+
* @returns The versions, the last step that ran with its result, and the reinstallation when one ran.
|
|
280
|
+
*/
|
|
281
|
+
@Remote async updateBundle(name: string, version: string, options?: UpdateBundleOptions): Promise<PluginUpdateResult>
|
|
282
|
+
|
|
186
283
|
/** Persist a plugin entry's desired enablement and apply it on live profiles.
|
|
187
284
|
* @param id Loader entry identity returned by listPlugins.
|
|
188
285
|
* @param enabled Whether the plugin should run.
|
|
@@ -200,7 +297,10 @@ Manage profile files and apply their declared reload lifecycle.
|
|
|
200
297
|
/**
|
|
201
298
|
* Install a package using the same pnpm implementation as dsh plugin. GitHub
|
|
202
299
|
* repositories get a connection check bounded by githubConnectionTimeoutMs before pnpm starts;
|
|
203
|
-
* only network failures or timeouts stop installation,
|
|
300
|
+
* only network failures or timeouts stop installation, and a stop streams the check's diagnostic
|
|
301
|
+
* as the installation's install-log run under its request id, while pnpm owns authentication and transport fallback. An
|
|
302
|
+
* HTTP(S) Git URL on another host is installed over SSH instead when access probes bounded by gitTransportTimeoutMs
|
|
303
|
+
* find that only SSH can read it. A run
|
|
204
304
|
* that fails, is cancelled, or adds a package without a bundle patch restores
|
|
205
305
|
* `package.json` and `pnpm-lock.yaml` as they were; downloaded files can stay.
|
|
206
306
|
* @param spec One package spec, including local paths relative to the invocation directory.
|
|
@@ -280,10 +380,49 @@ Fetches, validates, and caches configured market indexes; annotates entries with
|
|
|
280
380
|
* or `plugin-market/invalid-index`.
|
|
281
381
|
*/
|
|
282
382
|
async entry(url: string, name: string): Promise<MarketListingEntry | undefined>
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Read the long description of one listed version of a plugin market entry, from the version's source: the npm file
|
|
386
|
+
* CDNs for a public npm version, or its pinned Git commit. The Markdown file the package's locale `meta.detail` names
|
|
387
|
+
* in `language` comes first, then the package's README, then the README of the entry's `repository`, or for an npm
|
|
388
|
+
* version without one, of its `package.json` `repository`, at the default branch. An npm version from another
|
|
389
|
+
* registry has no readable package files, so only the entry's `repository` is read.
|
|
390
|
+
* @param url - a configured index URL.
|
|
391
|
+
* @param name - the plugin's package name.
|
|
392
|
+
* @param version - one listed version.
|
|
393
|
+
* @param language - the display language, such as `zh-CN`; documents fall back through its prefixes to English.
|
|
394
|
+
* @param options - `refresh` reads again instead of reusing a result cached for `cacheTtlMs`; `npmFileSources` names
|
|
395
|
+
* npm file CDNs to ask first for an npm version, in order; configured CDNs it omits follow, and CDNs that are not
|
|
396
|
+
* configured are not asked.
|
|
397
|
+
* @returns the document with its origin and image document id, or `none`.
|
|
398
|
+
* @throws {RemoteError} the failures of `search`, `plugin-market/unknown-plugin` for an unlisted plugin or version,
|
|
399
|
+
* `plugin-market/invalid-query`, or `plugin-market/detail-unavailable`.
|
|
400
|
+
*/
|
|
401
|
+
@Remote async readEntryDetail( url: string, name: string, version: string, language: string, options?: { refresh?: boolean; npmFileSources?: NpmFileSource[] }, ): Promise<PluginDetail>
|
|
283
402
|
```
|
|
284
403
|
|
|
285
404
|
Source: [`packages/boot/plugin-market/src/index.ts`](../../packages/boot/plugin-market/src/index.ts)
|
|
286
405
|
|
|
406
|
+
<a id="ctxpluginrecommendations--pluginrecommendations"></a>
|
|
407
|
+
|
|
408
|
+
### `ctx.pluginRecommendations` — `PluginRecommendations`
|
|
409
|
+
|
|
410
|
+
Catalog lookups for card text and the enabling behind the `enable_official_plugin` card.
|
|
411
|
+
|
|
412
|
+
```ts cordis-catalog
|
|
413
|
+
/**
|
|
414
|
+
* Read the current catalog text for a logged card.
|
|
415
|
+
* @param agent - Exact live root resolved by the Gateway from the Session id.
|
|
416
|
+
* @param callId - The card's `propose_action` call id, never a package supplied by the browser.
|
|
417
|
+
* @returns the plugin's title, description and selection, or a refusal when the card names no available official plugin.
|
|
418
|
+
*/
|
|
419
|
+
@Remote async describe(agent: Agent, callId: ToolCallId): Promise<RecommendationDetails>
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
Types: [Agent](core.md) · [ToolCallId](core.md)
|
|
423
|
+
|
|
424
|
+
Source: [`packages/experimental/plugin-recommendations/src/index.ts`](../../packages/experimental/plugin-recommendations/src/index.ts)
|
|
425
|
+
|
|
287
426
|
<a id="ctxpluginregistryprobe--pluginregistryprobe"></a>
|
|
288
427
|
|
|
289
428
|
### `ctx.pluginRegistryProbe` — `PluginRegistryProbe`
|
|
@@ -394,11 +533,11 @@ Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin
|
|
|
394
533
|
|
|
395
534
|
#### `plugin-manager/install-log` — emit
|
|
396
535
|
|
|
397
|
-
One chunk of
|
|
536
|
+
One chunk of an installation run's output, streamed as the run produces it.
|
|
398
537
|
|
|
399
538
|
```ts cordis-catalog
|
|
400
539
|
/**
|
|
401
|
-
* One chunk of
|
|
540
|
+
* One chunk of an installation run's output, streamed as the run produces it.
|
|
402
541
|
* @mode emit
|
|
403
542
|
* @param chunk - the chunk and the run it belongs to.
|
|
404
543
|
*/
|
|
@@ -425,6 +564,41 @@ An installation moved between its Host phases. `installing` is announced once pe
|
|
|
425
564
|
|
|
426
565
|
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
427
566
|
|
|
567
|
+
<a id="plugin-manageroperation--parallel"></a>
|
|
568
|
+
|
|
569
|
+
#### `plugin-manager/operation` — parallel
|
|
570
|
+
|
|
571
|
+
One manager invocation started or ended; subscribers run independently without delaying management.
|
|
572
|
+
|
|
573
|
+
```ts cordis-catalog
|
|
574
|
+
/**
|
|
575
|
+
* One manager invocation started or ended; subscribers run independently without delaying management.
|
|
576
|
+
* @mode parallel
|
|
577
|
+
* @param operation - Correlated operation facts; a start without an end has an unknown outcome.
|
|
578
|
+
*/
|
|
579
|
+
'plugin-manager/operation'(operation: PluginOperation): void | Promise<void>
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
583
|
+
|
|
584
|
+
<a id="plugin-managerupdate-state--emit"></a>
|
|
585
|
+
|
|
586
|
+
#### `plugin-manager/update-state` — emit
|
|
587
|
+
|
|
588
|
+
An update moved to its next step: checking the target, removing the installed version, installing the target, or reinstalling the removed version after the target failed. Announced once per step.
|
|
589
|
+
|
|
590
|
+
```ts cordis-catalog
|
|
591
|
+
/**
|
|
592
|
+
* An update moved to its next step: checking the target, removing the installed version, installing the target,
|
|
593
|
+
* or reinstalling the removed version after the target failed. Announced once per step.
|
|
594
|
+
* @mode emit
|
|
595
|
+
* @param progress - the update's request id and step.
|
|
596
|
+
*/
|
|
597
|
+
'plugin-manager/update-state'(progress: PluginUpdateProgress): void
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
601
|
+
|
|
428
602
|
<a id="plugin-market-events"></a>
|
|
429
603
|
|
|
430
604
|
### `plugin-market/*` events
|
|
@@ -10,13 +10,15 @@
|
|
|
10
10
|
|
|
11
11
|
`PluginInfo` 包含模块标识、实际启停状态、fiber 阶段和可选的展示 `meta`,以及唯一的 `patchId` 或 `readOnlyReason`。
|
|
12
12
|
|
|
13
|
-
`BundleInfo.official` 标识项目维护的随附可选组合包和按需目录项,独立于安装状态。`availability` 表示可读取的安装随附包、profile 包或 `missing`;按需目录项不计入未声明的传递依赖副本。`installed` 记录 profile 的依赖声明。按需条目的 `installTarget` 包含 Host 生成的精确 spec 和版本。`BundleInfo`
|
|
13
|
+
`BundleInfo.official` 标识项目维护的随附可选组合包和按需目录项,独立于安装状态。`availability` 表示可读取的安装随附包、profile 包或 `missing`;按需目录项不计入未声明的传递依赖副本。`installed` 记录 profile 的依赖声明。按需条目的 `installTarget` 包含 Host 生成的精确 spec 和版本。`BundleInfo` 还包含包名、可选的安装版本、组合层选择状态、删除可用性、更新资格(`updatable`)、可选的解析错误或平台不支持错误;由 profile 自身依赖提供、且安装不提供的组合包还带有 `source`,即该依赖在 `pnpm add` 中可用的 spec。它的可选 `meta` 与各行的 `BundleRowInfo.meta` 包含展示文本或元信息诊断;Client 在渲染时选择语言。
|
|
14
14
|
|
|
15
15
|
`InstallBundleOptions.saveExact` 向共享包安装器传入 `--save-exact`。`InstallBundleOptions.enabled` 默认为 true,false 表示安装但不选择组合包层。`approvedBuilds` 在安装前向指定的待审批包名授予持久脚本权限。`registry` 指定首先询问的注册表;缺省为配置的那个。
|
|
16
16
|
|
|
17
|
+
`BundleDetail` 是 profile 中组合包的详细介绍:`{ status: 'found' }` 携带其 `origin`(`locale` 或 `readme`)、在包内的 `path` 和 `markdown`;否则为 `{ status: 'none' }`。[`readBundleDetail`](../../packages/boot/plugin-manager/README.zh.md#bundle-detail-documents) 说明读取顺序和图片路由。`NpmFileSource` 指定一个公共 npm 文件 CDN:`jsdelivr`、`unpkg` 或 `npmmirror`;一次读取的 `npmFileSources` 列出先请求的 CDN。
|
|
18
|
+
|
|
17
19
|
`PluginRegistries` 携带配置的第一个注册表(`null` 即 pnpm 自身配置指定的那个)、随后依次询问的备选注册表,以及 `resolved`——pnpm 自身配置指向的 URL,未读到时为 `null`。`InspectOptions.registry` 指定一次查询首先询问的注册表。
|
|
18
20
|
|
|
19
|
-
`ChangeResult.changed` 报告磁盘修改,独立于 `application`:`applied`、`restart-required`、`overridden` 或 `failed`。可选的 `error` 包含可本地化的错误码和外部诊断。`packageResult`
|
|
21
|
+
`ChangeResult.changed` 报告磁盘修改,独立于 `application`:`applied`、`restart-required`、`overridden` 或 `failed`。可选的 `error` 包含可本地化的错误码和外部诊断。`packageResult` 记录运行的退出状态、有界输出、截断标志及完整诊断日志路径;当管理器终止了一个停止打印的运行,或 GitHub 连接检查到达期限,还记录 `timedOut`;被终止的运行记录强制填入的状态 1,因为它的进程没有返回任何状态。被终止的运行不论信号留下什么退出状态都归类为 `timeout`,因此安装与删除都报告失败而非成功,也不会再询问下一个注册表。`pendingBuilds` 列出整个 profile 尚未决定的包;`approvedBuilds` 记录本次操作授予权限的包名;`registries` 按顺序列出一次安装问过的注册表;`bundle` 与 `version` 给出完成的安装新增的包及其清单版本;`failedAt` 说明最后一次失败的运行连不上的是所问的注册表,还是 git 或 tarball spec 自身拉取的主机。
|
|
20
22
|
|
|
21
23
|
## 市场记录
|
|
22
24
|
|
|
@@ -26,6 +28,8 @@
|
|
|
26
28
|
|
|
27
29
|
`MarketQuery` 选择索引的一页:模糊匹配的 `text`、一个 `category`、必须全部具备的 `labels`、一个 `MarketSort`、`offset`、不超过 100 的 `limit`、表示重新获取而不使用缓存文档的 `refresh`,以及用于继续读取同一文档后续页的 `fetchedAt`。`MarketSearchResult` 携带索引 URL、`title`、可选的 `description`、市场 `metadata`、该文档的 `fetchedAt`、本页的 `entries`、匹配总数 `total` 和 `nextOffset`。每个 `MarketListingEntry` 额外携带 `defaultVersion`,即默认安装的版本,以及 `installation`,即该包名在当前 profile 中的状态;其 `versions` 中的每个版本额外携带 `install`,即交给 `installBundle` 的精确 spec 和可选的首选 registry,以及 `compatibility`,即包含版本豁免在内的 `engines.dsh` 评估结果。
|
|
28
30
|
|
|
31
|
+
`PluginDetail` 是市场条目的详细介绍:`{ status: 'found' }` 携带其 `origin`(`locale`、`readme` 或 `repository`)、`markdown`,以及一个 `document` id,该文档中的图片由 `GET /api/plugin-market/detail-file` 提供;否则为 `{ status: 'none' }`。读取其来源的顺序见[插件市场的说明](../../packages/boot/plugin-market/README.zh.md#plugin-detail-documents)。
|
|
32
|
+
|
|
29
33
|
## Profile 重新组合
|
|
30
34
|
|
|
31
35
|
<a id="profile-reconciliation"></a>
|
|
@@ -65,6 +69,53 @@ interface PendingModule {
|
|
|
65
69
|
|
|
66
70
|
Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) — the language sides differ only in locale-specific paired document paths. Signature blocks use a `ts cordis-catalog` fence and keep the original source JSDoc; dispatch modes are defined in the [primer](../cordis-primer.zh.md#dispatch-modes), and the framework-inherited `ctx` API lives in [cordis-api/inherited.md](../cordis-api/inherited.md).
|
|
67
71
|
|
|
72
|
+
<a id="ctxactioncards--actioncards"></a>
|
|
73
|
+
|
|
74
|
+
### `ctx.actionCards` — `ActionCards`
|
|
75
|
+
|
|
76
|
+
Card tool, kind registry, Session projection, user actions and status notices.
|
|
77
|
+
|
|
78
|
+
```ts cordis-catalog
|
|
79
|
+
/**
|
|
80
|
+
* Register one action kind for the caller's lifetime.
|
|
81
|
+
* @param kind - the kind's skill, details schema, verbs and handler.
|
|
82
|
+
* @returns disposer removing the kind; actions on its cards are then unavailable.
|
|
83
|
+
* @throws when another kind already registered the same action.
|
|
84
|
+
*/
|
|
85
|
+
register<Details>(kind: ActionCardKind<Details>): () => void
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Record a card decision in the Session log; the next model request reports it.
|
|
89
|
+
* @param agent - agent whose Session owns the card.
|
|
90
|
+
* @param decision - the card's new state.
|
|
91
|
+
* @throws when no kind ever registered the decision's action with this service, or its phase is one the projection derives.
|
|
92
|
+
*/
|
|
93
|
+
record(agent: Agent, decision: ActionCardDecision): void
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Read the cards of one Session.
|
|
97
|
+
* @param session - a Session whose projections are prepared.
|
|
98
|
+
* @returns proposals and decisions by call id.
|
|
99
|
+
*/
|
|
100
|
+
view(session: Session): ActionCardView
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Apply a user action to a logged card. Shared checks run first, then the kind reconciles the card; `dismiss` is
|
|
104
|
+
* recorded here and every other verb goes to the card's kind. `dismiss` also works on an unstarted card whose kind
|
|
105
|
+
* is no longer registered. Concurrent actions on one card share one operation.
|
|
106
|
+
* @param agent - live root resolved from the displayed Session.
|
|
107
|
+
* @param callId - the card's `propose_action` call id.
|
|
108
|
+
* @param verb - `dismiss` or one of the kind's verbs.
|
|
109
|
+
* @param payload - kind-defined fields such as a chosen location.
|
|
110
|
+
* @returns acceptance of background work, the decision in effect, or a refusal.
|
|
111
|
+
*/
|
|
112
|
+
@Remote act(agent: Agent, callId: ToolCallId, verb: string, payload?: Record<string, JsonValue>): Promise<ActionCardResult>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Types: [Agent](core.zh.md) · [Session](session.zh.md) · [ToolCallId](core.zh.md)
|
|
116
|
+
|
|
117
|
+
Source: [`packages/experimental/action-cards/src/index.ts`](../../packages/experimental/action-cards/src/index.ts)
|
|
118
|
+
|
|
68
119
|
<a id="ctxconfigeditor--configeditor"></a>
|
|
69
120
|
|
|
70
121
|
### `ctx.configEditor` — `ConfigEditor`
|
|
@@ -92,6 +143,14 @@ async edit( entry: Entry, change: (current: Record<string, unknown>, inherited:
|
|
|
92
143
|
|
|
93
144
|
Source: [`packages/boot/config-editor/src/index.ts`](../../packages/boot/config-editor/src/index.ts)
|
|
94
145
|
|
|
146
|
+
<a id="ctxheadlessstartup--headlessstartupvalues"></a>
|
|
147
|
+
|
|
148
|
+
### `ctx.headlessStartup` — `HeadlessStartupValues`
|
|
149
|
+
|
|
150
|
+
What the runner row reads from HEADLESS_STARTUP_SERVICE.
|
|
151
|
+
|
|
152
|
+
Source: [`packages/bundle/headless/src/startup.ts`](../../packages/bundle/headless/src/startup.ts)
|
|
153
|
+
|
|
95
154
|
<a id="ctxhmr--hmr"></a>
|
|
96
155
|
|
|
97
156
|
### `ctx.hmr` — `Hmr`
|
|
@@ -143,6 +202,20 @@ Source: [`packages/boot/hmr/src/index.ts`](../../packages/boot/hmr/src/index.ts)
|
|
|
143
202
|
Manage profile files and apply their declared reload lifecycle.
|
|
144
203
|
|
|
145
204
|
```ts cordis-catalog
|
|
205
|
+
/**
|
|
206
|
+
* Read a bundle's long description: the Markdown file its locale `meta.detail` names in `language`, otherwise its
|
|
207
|
+
* README. An installed bundle is read from its directory without network access; an official bundle the installation
|
|
208
|
+
* offers before it is installed is read from the npm file CDNs at its offered version. Nothing is cached.
|
|
209
|
+
* @param name - the bundle's package name, as `listBundles()` lists it.
|
|
210
|
+
* @param language - the display language, such as `zh-CN`; documents fall back through its prefixes to English.
|
|
211
|
+
* @param options - `npmFileSources` names npm file CDNs to ask first for an offered bundle, in order, such as the one
|
|
212
|
+
* a Client measured as fastest; configured CDNs it omits follow, and CDNs that are not configured are not asked.
|
|
213
|
+
* @returns the document with its origin and path, or `none`.
|
|
214
|
+
* @throws {RemoteError} `plugin-manager/unknown-bundle`, `plugin-manager/invalid-language`, or
|
|
215
|
+
* `plugin-manager/detail-unavailable`.
|
|
216
|
+
*/
|
|
217
|
+
@Remote async readBundleDetail(name: string, language: string, options?: { npmFileSources?: NpmFileSource[] }): Promise<BundleDetail>
|
|
218
|
+
|
|
146
219
|
/** Read exact plugin-version exemptions saved in this profile.
|
|
147
220
|
* @returns Accepted package-name@version keys with the runtime versions they may run on, and any
|
|
148
221
|
* record or file problem the reader rejected, which the caller reports instead of failing.
|
|
@@ -183,6 +256,30 @@ Manage profile files and apply their declared reload lifecycle.
|
|
|
183
256
|
*/
|
|
184
257
|
@Remote async inspect(spec: string, options?: InspectOptions, signal?: AbortSignal): Promise<PluginSpecInspection>
|
|
185
258
|
|
|
259
|
+
/** Read the published versions newer than an installed registry package's version, from the first registry that answers.
|
|
260
|
+
* Official bundles follow the DSH version and are not listed.
|
|
261
|
+
* @param name Installed profile dependency name.
|
|
262
|
+
* @param options The registry asked first; absent, the one the package was installed from in this process, else the configured one.
|
|
263
|
+
* @param signal Ends the lookups early.
|
|
264
|
+
* @returns At most `versionListLimit` newer versions, newest first, with their tags, deprecation, bundle declaration,
|
|
265
|
+
* and DSH compatibility, and the registry that answered; or why no list could be read, with every registry asked.
|
|
266
|
+
*/
|
|
267
|
+
@Remote async listVersions(name: string, options?: ListVersionsOptions, signal?: AbortSignal): Promise<PluginVersionList>
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Replace an installed registry bundle with a newer published version. The target is checked on the registry first:
|
|
271
|
+
* it must exist, declare a bundle, and accept the running DSH version, or nothing changes. With HMR the installed
|
|
272
|
+
* version is removed, so its plugins stop, and the target is installed with the same selection; when that
|
|
273
|
+
* installation fails or is cancelled, the removed version is installed again from the registry it came from.
|
|
274
|
+
* Without HMR the target is installed over the running version and the result reports the restart.
|
|
275
|
+
* @param name Installed profile dependency name.
|
|
276
|
+
* @param version Exact published version newer than the installed one.
|
|
277
|
+
* @param options The registry asked first, as for `listVersions`, and the request id naming the progress and the
|
|
278
|
+
* target installation's logs and cancellation.
|
|
279
|
+
* @returns The versions, the last step that ran with its result, and the reinstallation when one ran.
|
|
280
|
+
*/
|
|
281
|
+
@Remote async updateBundle(name: string, version: string, options?: UpdateBundleOptions): Promise<PluginUpdateResult>
|
|
282
|
+
|
|
186
283
|
/** Persist a plugin entry's desired enablement and apply it on live profiles.
|
|
187
284
|
* @param id Loader entry identity returned by listPlugins.
|
|
188
285
|
* @param enabled Whether the plugin should run.
|
|
@@ -200,7 +297,10 @@ Manage profile files and apply their declared reload lifecycle.
|
|
|
200
297
|
/**
|
|
201
298
|
* Install a package using the same pnpm implementation as dsh plugin. GitHub
|
|
202
299
|
* repositories get a connection check bounded by githubConnectionTimeoutMs before pnpm starts;
|
|
203
|
-
* only network failures or timeouts stop installation,
|
|
300
|
+
* only network failures or timeouts stop installation, and a stop streams the check's diagnostic
|
|
301
|
+
* as the installation's install-log run under its request id, while pnpm owns authentication and transport fallback. An
|
|
302
|
+
* HTTP(S) Git URL on another host is installed over SSH instead when access probes bounded by gitTransportTimeoutMs
|
|
303
|
+
* find that only SSH can read it. A run
|
|
204
304
|
* that fails, is cancelled, or adds a package without a bundle patch restores
|
|
205
305
|
* `package.json` and `pnpm-lock.yaml` as they were; downloaded files can stay.
|
|
206
306
|
* @param spec One package spec, including local paths relative to the invocation directory.
|
|
@@ -280,10 +380,49 @@ Fetches, validates, and caches configured market indexes; annotates entries with
|
|
|
280
380
|
* or `plugin-market/invalid-index`.
|
|
281
381
|
*/
|
|
282
382
|
async entry(url: string, name: string): Promise<MarketListingEntry | undefined>
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Read the long description of one listed version of a plugin market entry, from the version's source: the npm file
|
|
386
|
+
* CDNs for a public npm version, or its pinned Git commit. The Markdown file the package's locale `meta.detail` names
|
|
387
|
+
* in `language` comes first, then the package's README, then the README of the entry's `repository`, or for an npm
|
|
388
|
+
* version without one, of its `package.json` `repository`, at the default branch. An npm version from another
|
|
389
|
+
* registry has no readable package files, so only the entry's `repository` is read.
|
|
390
|
+
* @param url - a configured index URL.
|
|
391
|
+
* @param name - the plugin's package name.
|
|
392
|
+
* @param version - one listed version.
|
|
393
|
+
* @param language - the display language, such as `zh-CN`; documents fall back through its prefixes to English.
|
|
394
|
+
* @param options - `refresh` reads again instead of reusing a result cached for `cacheTtlMs`; `npmFileSources` names
|
|
395
|
+
* npm file CDNs to ask first for an npm version, in order; configured CDNs it omits follow, and CDNs that are not
|
|
396
|
+
* configured are not asked.
|
|
397
|
+
* @returns the document with its origin and image document id, or `none`.
|
|
398
|
+
* @throws {RemoteError} the failures of `search`, `plugin-market/unknown-plugin` for an unlisted plugin or version,
|
|
399
|
+
* `plugin-market/invalid-query`, or `plugin-market/detail-unavailable`.
|
|
400
|
+
*/
|
|
401
|
+
@Remote async readEntryDetail( url: string, name: string, version: string, language: string, options?: { refresh?: boolean; npmFileSources?: NpmFileSource[] }, ): Promise<PluginDetail>
|
|
283
402
|
```
|
|
284
403
|
|
|
285
404
|
Source: [`packages/boot/plugin-market/src/index.ts`](../../packages/boot/plugin-market/src/index.ts)
|
|
286
405
|
|
|
406
|
+
<a id="ctxpluginrecommendations--pluginrecommendations"></a>
|
|
407
|
+
|
|
408
|
+
### `ctx.pluginRecommendations` — `PluginRecommendations`
|
|
409
|
+
|
|
410
|
+
Catalog lookups for card text and the enabling behind the `enable_official_plugin` card.
|
|
411
|
+
|
|
412
|
+
```ts cordis-catalog
|
|
413
|
+
/**
|
|
414
|
+
* Read the current catalog text for a logged card.
|
|
415
|
+
* @param agent - Exact live root resolved by the Gateway from the Session id.
|
|
416
|
+
* @param callId - The card's `propose_action` call id, never a package supplied by the browser.
|
|
417
|
+
* @returns the plugin's title, description and selection, or a refusal when the card names no available official plugin.
|
|
418
|
+
*/
|
|
419
|
+
@Remote async describe(agent: Agent, callId: ToolCallId): Promise<RecommendationDetails>
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
Types: [Agent](core.zh.md) · [ToolCallId](core.zh.md)
|
|
423
|
+
|
|
424
|
+
Source: [`packages/experimental/plugin-recommendations/src/index.ts`](../../packages/experimental/plugin-recommendations/src/index.ts)
|
|
425
|
+
|
|
287
426
|
<a id="ctxpluginregistryprobe--pluginregistryprobe"></a>
|
|
288
427
|
|
|
289
428
|
### `ctx.pluginRegistryProbe` — `PluginRegistryProbe`
|
|
@@ -394,11 +533,11 @@ Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin
|
|
|
394
533
|
|
|
395
534
|
#### `plugin-manager/install-log` — emit
|
|
396
535
|
|
|
397
|
-
One chunk of
|
|
536
|
+
One chunk of an installation run's output, streamed as the run produces it.
|
|
398
537
|
|
|
399
538
|
```ts cordis-catalog
|
|
400
539
|
/**
|
|
401
|
-
* One chunk of
|
|
540
|
+
* One chunk of an installation run's output, streamed as the run produces it.
|
|
402
541
|
* @mode emit
|
|
403
542
|
* @param chunk - the chunk and the run it belongs to.
|
|
404
543
|
*/
|
|
@@ -425,6 +564,41 @@ An installation moved between its Host phases. `installing` is announced once pe
|
|
|
425
564
|
|
|
426
565
|
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
427
566
|
|
|
567
|
+
<a id="plugin-manageroperation--parallel"></a>
|
|
568
|
+
|
|
569
|
+
#### `plugin-manager/operation` — parallel
|
|
570
|
+
|
|
571
|
+
One manager invocation started or ended; subscribers run independently without delaying management.
|
|
572
|
+
|
|
573
|
+
```ts cordis-catalog
|
|
574
|
+
/**
|
|
575
|
+
* One manager invocation started or ended; subscribers run independently without delaying management.
|
|
576
|
+
* @mode parallel
|
|
577
|
+
* @param operation - Correlated operation facts; a start without an end has an unknown outcome.
|
|
578
|
+
*/
|
|
579
|
+
'plugin-manager/operation'(operation: PluginOperation): void | Promise<void>
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
583
|
+
|
|
584
|
+
<a id="plugin-managerupdate-state--emit"></a>
|
|
585
|
+
|
|
586
|
+
#### `plugin-manager/update-state` — emit
|
|
587
|
+
|
|
588
|
+
An update moved to its next step: checking the target, removing the installed version, installing the target, or reinstalling the removed version after the target failed. Announced once per step.
|
|
589
|
+
|
|
590
|
+
```ts cordis-catalog
|
|
591
|
+
/**
|
|
592
|
+
* An update moved to its next step: checking the target, removing the installed version, installing the target,
|
|
593
|
+
* or reinstalling the removed version after the target failed. Announced once per step.
|
|
594
|
+
* @mode emit
|
|
595
|
+
* @param progress - the update's request id and step.
|
|
596
|
+
*/
|
|
597
|
+
'plugin-manager/update-state'(progress: PluginUpdateProgress): void
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
601
|
+
|
|
428
602
|
<a id="plugin-market-events"></a>
|
|
429
603
|
|
|
430
604
|
### `plugin-market/*` events
|
|
@@ -4,9 +4,19 @@ English | [中文](computer-use.zh.md)
|
|
|
4
4
|
|
|
5
5
|
Computer use lets a model observe and operate the local desktop through a configured provider. The shared DSH capability is called **computer use**; **Cua Driver** names the upstream implementation.
|
|
6
6
|
|
|
7
|
+
[Computer Use](../../packages/experimental/cua-bundle/README.md) provides an optional experimental switch for macOS CUA permission setup.
|
|
7
8
|
|
|
8
9
|
The [`macOS CUA provider`](../../packages/experimental/cua-macos/README.md) uses the [shared CUA objects and executor](../../packages/experimental/cua/README.md), which enforce application consent through User Questions and profile configuration.
|
|
9
10
|
|
|
11
|
+
The CUA provider owns `ctx.cuaAccess` for system-permission status, explicit system requests, and application revocation. Its [permission page](../../packages/experimental/cua/README.md) projects these controls; app/window operations enforce the provider's consent policy before dispatch.
|
|
12
|
+
|
|
13
|
+
| Permission type | Meaning |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `CuaApplicationId`, `CuaApplicationGrant` | A platform-provided application identity and its displayed saved decision. |
|
|
16
|
+
| `CuaSystemPermission` | Accessibility or Screen Recording, selected by the human. |
|
|
17
|
+
| `CuaPermissionProcess`, `CuaSystemPermissionState` | Native privilege checks, observed helper/parent processes, and the application identified by macOS process responsibility at helper startup. The independent helper uses its own bundle when system attribution is unavailable; application metadata is absent if neither bundle can be identified. |
|
|
18
|
+
| `CuaApplicationState` | Saved grants, refused applications, and whether persistence is available. Session-only grants remain internal to the provider. System observations and application icons are queried separately so the page can display each result as it arrives. |
|
|
19
|
+
|
|
10
20
|
## Choose a provider
|
|
11
21
|
|
|
12
22
|
Mount [`dsh-computer-use`](../../packages/computer-use/computer-use/README.md) and one provider in the same composition. Both Cua Driver providers are experimental public npm packages and require explicit activation.
|
|
@@ -56,4 +66,72 @@ register(name: ComputerUseProviderName): () => Promise<void>
|
|
|
56
66
|
```
|
|
57
67
|
|
|
58
68
|
Source: [`packages/computer-use/computer-use/src/index.ts`](../../packages/computer-use/computer-use/src/index.ts)
|
|
69
|
+
|
|
70
|
+
<a id="ctxcuaaccess--cuaaccess"></a>
|
|
71
|
+
|
|
72
|
+
### `ctx.cuaAccess` — `CuaAccess`
|
|
73
|
+
|
|
74
|
+
Browser controls for provider-owned native permission and application decisions.
|
|
75
|
+
|
|
76
|
+
```ts cordis-catalog
|
|
77
|
+
/** Read PTC execution state separately from native permission checks.
|
|
78
|
+
* @returns Whether the shared runtime retains memory and has an editable profile entry.
|
|
79
|
+
*/
|
|
80
|
+
@Remote ptcConfiguration(): { persistent: boolean; writable: boolean }
|
|
81
|
+
|
|
82
|
+
/** Persist in-memory PTC execution through the existing profile editor and Loader lifecycle.
|
|
83
|
+
* @returns Completion after the shared runtime reload; already-persistent runtimes are left intact.
|
|
84
|
+
*/
|
|
85
|
+
@Remote async enablePersistentPtc(): Promise<void>
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Read fresh stored application decisions without issuing a native request.
|
|
89
|
+
* @returns Saved grants, refused applications and durable-storage availability.
|
|
90
|
+
*/
|
|
91
|
+
@Remote applications(): Promise<CuaApplicationState>
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Inspect system privileges independently of application decisions and icons.
|
|
95
|
+
* @returns Fresh native preflight and launch metadata.
|
|
96
|
+
*/
|
|
97
|
+
@Remote async systemStatus(): Promise<CuaSystemPermissionState>
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Load presentation icons separately from application decisions.
|
|
101
|
+
* @returns Optional native PNG icons keyed by executable path; applications without paths are skipped.
|
|
102
|
+
*/
|
|
103
|
+
@Remote async applicationIcons(): Promise<Record<string, string>>
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Request the selected system privilege through the native provider.
|
|
107
|
+
* @param permission macOS privilege to request.
|
|
108
|
+
* @param locale Current Client language for provider-owned permission UI.
|
|
109
|
+
* @returns Current permission observations; requesting does not establish consent.
|
|
110
|
+
*/
|
|
111
|
+
@Remote async requestPermission(permission: CuaSystemPermission, locale: string): Promise<CuaSystemPermissionState>
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Open the macOS privacy pane selected by the user.
|
|
115
|
+
* @param permission Corresponding system privilege.
|
|
116
|
+
* @param locale Current Client language for provider-owned recovery instructions.
|
|
117
|
+
* @returns Completion after macOS accepted the open request.
|
|
118
|
+
*/
|
|
119
|
+
@Remote async openSettings(permission: CuaSystemPermission, locale: string): Promise<void>
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Remove saved and session access and join affected operations.
|
|
123
|
+
* @param id Application identity displayed on the permission page.
|
|
124
|
+
* @returns Completion after persistence and cancellation; dispatched input cannot be undone.
|
|
125
|
+
*/
|
|
126
|
+
@Remote revoke(id: CuaApplicationId): Promise<void>
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Clear this application's refusals across sessions so each session may ask for access again.
|
|
130
|
+
* @param id Refused or revoked application displayed on the permission page.
|
|
131
|
+
* @returns Completion after clearing refusals; no permission is granted and no action is replayed.
|
|
132
|
+
*/
|
|
133
|
+
@Remote async retryApproval(id: CuaApplicationId): Promise<void>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Source: [`packages/experimental/cua/src/access.ts`](../../packages/experimental/cua/src/access.ts)
|
|
59
137
|
<!-- END GENERATED cordis-surface -->
|