dsh-plugin-guide 0.3.15 → 0.3.17
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 +43 -40
- package/README-hi.md +43 -40
- package/README-pt.md +43 -40
- package/README-zh.md +43 -40
- package/README.md +19 -15
- package/dist/dsh-plugin-dev.js +230 -6
- package/guide/plugin-dev-guide.md +1 -1
- package/guide/release-engineering.md +7 -5
- package/guide/release-engineering.zh-CN.md +7 -5
- package/guide/unfixed-issues.md +4 -2
- package/package.json +5 -4
- package/references/official-docs/AGENTS.md +74 -49
- package/references/official-docs/README.i18n.yaml +2 -2
- package/references/official-docs/README.zh.md +12 -0
- package/references/official-docs/SNAPSHOT.md +4 -4
- package/references/official-docs/THIRD_PARTY_NOTICES.md +86 -30
- package/references/official-docs/docs/AGENTS.md +7 -6
- package/references/official-docs/docs/agent-lifecycle.i18n.yaml +2 -2
- package/references/official-docs/docs/agent-lifecycle.md +12 -5
- package/references/official-docs/docs/agent-lifecycle.zh.md +12 -5
- package/references/official-docs/docs/api-gateway.i18n.yaml +2 -2
- package/references/official-docs/docs/api-gateway.md +2 -2
- package/references/official-docs/docs/api-gateway.zh.md +2 -2
- package/references/official-docs/docs/architecture.i18n.yaml +2 -2
- package/references/official-docs/docs/architecture.md +26 -12
- package/references/official-docs/docs/architecture.zh.md +28 -14
- package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
- package/references/official-docs/docs/capability-seams.md +111 -31
- package/references/official-docs/docs/capability-seams.zh.md +111 -31
- package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
- package/references/official-docs/docs/config-catalog.md +674 -202
- package/references/official-docs/docs/config-catalog.zh.md +691 -219
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.i18n.yaml +6 -0
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.md +111 -0
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.zh.md +111 -0
- package/references/official-docs/docs/cookbook/adding-a-settings-card.md +8 -8
- package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +9 -9
- package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +2 -2
- package/references/official-docs/docs/cookbook/adding-a-tool.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +4 -4
- package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +2 -2
- package/references/official-docs/docs/cookbook/adding-a-vendored-package.md +1 -1
- package/references/official-docs/docs/cookbook/adding-a-vendored-package.zh.md +1 -1
- package/references/official-docs/docs/cookbook/adding-an-llm-adapter.zh.md +1 -1
- package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +2 -2
- package/references/official-docs/docs/cookbook/extension-cookbook.md +3 -3
- package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +5 -5
- package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +2 -2
- package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.md +1 -1
- package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +1 -1
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.i18n.yaml +6 -0
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.md +108 -0
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.zh.md +108 -0
- package/references/official-docs/docs/cordis-api/fiber.i18n.yaml +2 -2
- package/references/official-docs/docs/cordis-api/fiber.md +3 -3
- package/references/official-docs/docs/cordis-api/fiber.zh.md +3 -3
- package/references/official-docs/docs/cordis-api/inherited.md +0 -3
- package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +2 -2
- package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.md +2 -2
- package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.zh.md +2 -2
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +2 -2
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +14 -15
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +15 -16
- package/references/official-docs/docs/dependency-catalog.json +7312 -0
- package/references/official-docs/docs/development.i18n.yaml +2 -2
- package/references/official-docs/docs/development.md +13 -3
- package/references/official-docs/docs/development.zh.md +16 -6
- package/references/official-docs/docs/event-producer-consumer.i18n.yaml +2 -2
- package/references/official-docs/docs/event-producer-consumer.md +50 -39
- package/references/official-docs/docs/event-producer-consumer.zh.md +55 -44
- package/references/official-docs/docs/glossary.i18n.yaml +2 -2
- package/references/official-docs/docs/glossary.md +1 -1
- package/references/official-docs/docs/glossary.zh.md +1 -1
- package/references/official-docs/docs/i18n/README.i18n.yaml +2 -2
- package/references/official-docs/docs/i18n/README.md +8 -3
- package/references/official-docs/docs/i18n/README.zh.md +8 -3
- package/references/official-docs/docs/i18n/style-samples.md +1 -1
- package/references/official-docs/docs/i18n/translation-prompt.md +5 -5
- package/references/official-docs/docs/i18n/translation-rules.zh.md +2 -2
- package/references/official-docs/docs/module-graph.i18n.yaml +2 -2
- package/references/official-docs/docs/module-graph.md +303 -120
- package/references/official-docs/docs/module-graph.zh.md +303 -120
- package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
- package/references/official-docs/docs/persistence-catalog.md +5699 -64
- package/references/official-docs/docs/persistence-catalog.zh.md +5708 -73
- package/references/official-docs/docs/persistence-changes/2026-09-11-initial.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/2026-09-11-initial.md +280 -0
- package/references/official-docs/docs/persistence-changes/2026-09-11-initial.schema.json +13557 -0
- package/references/official-docs/docs/persistence-changes/2026-09-11-initial.zh.md +280 -0
- package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.md +52 -0
- package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.schema.json +910 -0
- package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.zh.md +52 -0
- package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.md +96 -0
- package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.schema.json +8478 -0
- package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.zh.md +96 -0
- package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.schema.json +72 -0
- package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/README.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/README.md +74 -0
- package/references/official-docs/docs/persistence-changes/README.zh.md +74 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/README.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/README.md +74 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/README.zh.md +74 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v0.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v0.md +5105 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v0.schema.json +49308 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v0.zh.md +5105 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v1.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v1.md +5107 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v1.schema.json +49411 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v1.zh.md +5107 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v2.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v2.md +5362 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v2.schema.json +56466 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v2.zh.md +5362 -0
- package/references/official-docs/docs/persistence-changes/releases/README.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/README.md +103 -0
- package/references/official-docs/docs/persistence-changes/releases/README.zh.md +103 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.md +201 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.schema.json +39868 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.zh.md +201 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.md +261 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.schema.json +43342 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.zh.md +261 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.md +126 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.schema.json +19452 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.zh.md +126 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.md +82 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.schema.json +5320 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.zh.md +82 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.md +110 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.schema.json +21258 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.zh.md +110 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.md +82 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.schema.json +417 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.zh.md +82 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.md +119 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.schema.json +29672 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.zh.md +119 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.md +295 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.schema.json +48429 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.zh.md +295 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.md +286 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.schema.json +49347 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.zh.md +286 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.md +95 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.schema.json +17642 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.zh.md +95 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.md +154 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.schema.json +38678 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.zh.md +154 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.md +86 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.schema.json +783 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.zh.md +86 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.md +139 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.schema.json +24597 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.zh.md +139 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.md +95 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.schema.json +2132 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.zh.md +95 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.i18n.yaml +6 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.schema.json +5 -0
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.zh.md +75 -0
- package/references/official-docs/docs/persistence-changes/releases/manifest.json +162 -0
- package/references/official-docs/docs/persistence-schema.json +61480 -0
- package/references/official-docs/docs/postmortem/README.i18n.yaml +1 -1
- package/references/official-docs/docs/postmortem/README.md +1 -1
- package/references/official-docs/docs/postmortem/README.zh.md +1 -1
- package/references/official-docs/docs/rescope.i18n.yaml +2 -2
- package/references/official-docs/docs/rescope.md +2 -2
- package/references/official-docs/docs/rescope.zh.md +2 -2
- package/references/official-docs/docs/session-format-status.i18n.yaml +6 -0
- package/references/official-docs/docs/session-format-status.md +49 -0
- package/references/official-docs/docs/session-format-status.zh.md +49 -0
- package/references/official-docs/docs/subsystems/README.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/README.md +12 -3
- package/references/official-docs/docs/subsystems/README.zh.md +23 -14
- package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/agent-team.md +1 -1
- package/references/official-docs/docs/subsystems/agent-team.zh.md +2 -2
- package/references/official-docs/docs/subsystems/approval.i18n.yaml +2 -2
- 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 +2 -2
- package/references/official-docs/docs/subsystems/attachment.md +17 -7
- package/references/official-docs/docs/subsystems/attachment.zh.md +17 -7
- package/references/official-docs/docs/subsystems/{code-runtime.i18n.yaml → boot.i18n.yaml} +3 -3
- package/references/official-docs/docs/subsystems/boot.md +223 -0
- package/references/official-docs/docs/subsystems/boot.zh.md +223 -0
- package/references/official-docs/docs/subsystems/browser-use.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/browser-use.md +67 -0
- package/references/official-docs/docs/subsystems/browser-use.zh.md +67 -0
- package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/client-modules.md +20 -10
- package/references/official-docs/docs/subsystems/client-modules.zh.md +21 -11
- package/references/official-docs/docs/subsystems/client-resources.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/client-resources.md +92 -0
- package/references/official-docs/docs/subsystems/client-resources.zh.md +92 -0
- package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/commands.md +4 -0
- package/references/official-docs/docs/subsystems/commands.zh.md +5 -1
- package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/compaction.md +48 -2
- package/references/official-docs/docs/subsystems/compaction.zh.md +50 -4
- package/references/official-docs/docs/subsystems/computer-use.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/computer-use.md +56 -0
- package/references/official-docs/docs/subsystems/computer-use.zh.md +56 -0
- package/references/official-docs/docs/subsystems/conversation.zh.md +1 -1
- package/references/official-docs/docs/subsystems/core.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/core.md +106 -60
- package/references/official-docs/docs/subsystems/core.zh.md +109 -63
- package/references/official-docs/docs/subsystems/deliverables.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/deliverables.md +178 -0
- package/references/official-docs/docs/subsystems/deliverables.zh.md +178 -0
- package/references/official-docs/docs/subsystems/extensions.zh.md +1 -1
- package/references/official-docs/docs/subsystems/feedback.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/feedback.md +165 -31
- package/references/official-docs/docs/subsystems/feedback.zh.md +165 -31
- package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/filesystem.md +15 -0
- package/references/official-docs/docs/subsystems/filesystem.zh.md +16 -1
- package/references/official-docs/docs/subsystems/goal.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/goal.md +37 -1
- package/references/official-docs/docs/subsystems/goal.zh.md +38 -2
- package/references/official-docs/docs/subsystems/invariants.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/invariants.md +1 -1
- package/references/official-docs/docs/subsystems/invariants.zh.md +3 -3
- package/references/official-docs/docs/subsystems/jobs.i18n.yaml +1 -1
- package/references/official-docs/docs/subsystems/jobs.md +1 -1
- package/references/official-docs/docs/subsystems/jobs.zh.md +1 -1
- package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/llm-streaming.md +35 -15
- package/references/official-docs/docs/subsystems/llm-streaming.zh.md +37 -17
- package/references/official-docs/docs/subsystems/lsp.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/lsp.md +1 -1
- package/references/official-docs/docs/subsystems/lsp.zh.md +1 -1
- package/references/official-docs/docs/subsystems/mcp.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/mcp.md +139 -0
- package/references/official-docs/docs/subsystems/mcp.zh.md +139 -0
- package/references/official-docs/docs/subsystems/office-to-pdf.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/office-to-pdf.md +87 -0
- package/references/official-docs/docs/subsystems/office-to-pdf.zh.md +87 -0
- package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/permission-presets.md +62 -27
- package/references/official-docs/docs/subsystems/permission-presets.zh.md +62 -27
- package/references/official-docs/docs/subsystems/persistence.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/persistence.md +36 -15
- package/references/official-docs/docs/subsystems/persistence.zh.md +36 -15
- package/references/official-docs/docs/subsystems/plan.zh.md +2 -2
- package/references/official-docs/docs/subsystems/ptc-runtime.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/ptc-runtime.md +232 -0
- package/references/official-docs/docs/subsystems/ptc-runtime.zh.md +232 -0
- package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/sandbox.md +5 -4
- package/references/official-docs/docs/subsystems/sandbox.zh.md +7 -6
- package/references/official-docs/docs/subsystems/schedule.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/schedule.md +2 -2
- package/references/official-docs/docs/subsystems/schedule.zh.md +3 -3
- package/references/official-docs/docs/subsystems/scope.i18n.yaml +2 -2
- 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 +2 -2
- package/references/official-docs/docs/subsystems/session-projection.md +1 -1
- package/references/official-docs/docs/subsystems/session-projection.zh.md +2 -2
- package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session-reference.md +11 -6
- package/references/official-docs/docs/subsystems/session-reference.zh.md +11 -6
- package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session-telemetry.md +22 -6
- package/references/official-docs/docs/subsystems/session-telemetry.zh.md +23 -7
- package/references/official-docs/docs/subsystems/session-title.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session-title.md +5 -5
- package/references/official-docs/docs/subsystems/session-title.zh.md +5 -5
- package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/session.md +149 -61
- package/references/official-docs/docs/subsystems/session.zh.md +150 -62
- package/references/official-docs/docs/subsystems/shell.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/shell.md +19 -15
- package/references/official-docs/docs/subsystems/shell.zh.md +20 -16
- package/references/official-docs/docs/subsystems/sidebar-right.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/sidebar-right.md +153 -0
- package/references/official-docs/docs/subsystems/sidebar-right.zh.md +153 -0
- package/references/official-docs/docs/subsystems/skills.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/skills.md +4 -6
- package/references/official-docs/docs/subsystems/skills.zh.md +4 -6
- package/references/official-docs/docs/subsystems/slots.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/slots.md +52 -38
- package/references/official-docs/docs/subsystems/slots.zh.md +53 -39
- package/references/official-docs/docs/subsystems/spill.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/spill.md +13 -6
- package/references/official-docs/docs/subsystems/spill.zh.md +13 -6
- package/references/official-docs/docs/subsystems/ssh.i18n.yaml +6 -0
- package/references/official-docs/docs/subsystems/ssh.md +135 -0
- package/references/official-docs/docs/subsystems/ssh.zh.md +135 -0
- package/references/official-docs/docs/subsystems/storage.zh.md +2 -2
- package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/subagent.md +33 -16
- package/references/official-docs/docs/subsystems/subagent.zh.md +32 -15
- package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/subprocess.md +41 -44
- package/references/official-docs/docs/subsystems/subprocess.zh.md +41 -44
- package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/system-prompt.md +6 -2
- package/references/official-docs/docs/subsystems/system-prompt.zh.md +7 -3
- package/references/official-docs/docs/subsystems/todo.zh.md +1 -1
- package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/token-meter.md +2 -1
- package/references/official-docs/docs/subsystems/token-meter.zh.md +2 -1
- package/references/official-docs/docs/subsystems/tools.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/tools.md +28 -12
- package/references/official-docs/docs/subsystems/tools.zh.md +28 -12
- package/references/official-docs/docs/subsystems/typert.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/typert.md +6 -5
- package/references/official-docs/docs/subsystems/typert.zh.md +6 -5
- package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/user-questions.md +2 -0
- package/references/official-docs/docs/subsystems/user-questions.zh.md +2 -0
- package/references/official-docs/docs/subsystems/web-client.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/web-client.md +5 -5
- package/references/official-docs/docs/subsystems/web-client.zh.md +6 -6
- package/references/official-docs/docs/subsystems/web-server.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/web-server.md +64 -0
- package/references/official-docs/docs/subsystems/web-server.zh.md +65 -1
- package/references/official-docs/docs/subsystems/webhook.i18n.yaml +1 -1
- package/references/official-docs/docs/subsystems/webhook.md +2 -2
- package/references/official-docs/docs/subsystems/workflow.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/workflow.md +8 -8
- package/references/official-docs/docs/subsystems/workflow.zh.md +10 -10
- package/references/official-docs/docs/subsystems/workspace.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/workspace.md +199 -1
- package/references/official-docs/docs/subsystems/workspace.zh.md +199 -1
- package/references/official-docs/docs/testing.i18n.yaml +2 -2
- package/references/official-docs/docs/testing.md +5 -4
- package/references/official-docs/docs/testing.zh.md +5 -4
- package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
- package/references/official-docs/docs/tool-catalog.md +452 -187
- package/references/official-docs/docs/tool-catalog.zh.md +454 -189
- package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +2 -2
- package/references/official-docs/docs/tool-execution-pipeline.md +2 -2
- package/references/official-docs/docs/tool-execution-pipeline.zh.md +2 -2
- package/references/official-docs/docs/user/develop/basic/index.zh.md +1 -1
- package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/basic/publish.md +2 -2
- package/references/official-docs/docs/user/develop/basic/publish.zh.md +5 -5
- package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/framework/index.md +1 -1
- package/references/official-docs/docs/user/develop/framework/index.zh.md +1 -1
- package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +2 -2
- package/references/official-docs/docs/user/develop/practice/dynamic-cordis.md +8 -8
- package/references/official-docs/docs/user/develop/practice/dynamic-cordis.zh.md +8 -8
- package/references/official-docs/docs/user/guide/index.zh.md +2 -2
- package/references/official-docs/docs/user/guide/mcp-memory.zh.md +1 -1
- package/references/official-docs/docs/user/guide/network-proxy.i18n.yaml +2 -2
- package/references/official-docs/docs/user/guide/network-proxy.md +1 -1
- package/references/official-docs/docs/user/guide/network-proxy.zh.md +1 -1
- package/references/official-docs/docs/user/guide/providers.i18n.yaml +2 -2
- package/references/official-docs/docs/user/guide/providers.md +12 -8
- package/references/official-docs/docs/user/guide/providers.zh.md +14 -10
- package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +2 -2
- package/references/official-docs/docs/user/guide/python-sdk.md +59 -23
- package/references/official-docs/docs/user/guide/python-sdk.zh.md +60 -24
- package/references/official-docs/docs/web-styling.i18n.yaml +2 -2
- package/references/official-docs/docs/web-styling.md +2 -1
- package/references/official-docs/docs/web-styling.zh.md +3 -2
- package/references/official-docs/packages/AGENTS.md +1 -1
- package/references/official-docs/packages/README.md +12 -7
- package/references/official-docs/vendor/README.md +15 -11
- package/references/official-docs/website-docs.ts +4 -2
- package/scripts/sync-official-docs.ps1 +5 -5
- package/templates/js/README-es.md +1 -1
- package/templates/js/README-hi.md +1 -1
- package/templates/js/README-pt.md +1 -1
- package/templates/js/README-zh.md +1 -1
- package/templates/js/README.md +1 -1
- package/templates/js/package.json +2 -2
- package/templates/ts/README-es.md +1 -1
- package/templates/ts/README-hi.md +1 -1
- package/templates/ts/README-pt.md +1 -1
- package/templates/ts/README-zh.md +1 -1
- package/templates/ts/README.md +1 -1
- package/templates/ts/package.json +2 -2
- package/references/official-docs/docs/subsystems/code-runtime.md +0 -195
- package/references/official-docs/docs/subsystems/code-runtime.zh.md +0 -195
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# Profile management
|
|
2
|
+
|
|
3
|
+
English | [中文](boot.zh.md)
|
|
4
|
+
|
|
5
|
+
The [boot package group](../../packages/boot/README.md) owns launcher-provided profile access and the plugin manager. [Plugin Manager](../../packages/boot/plugin-manager/README.md) documents persistence, reload and package-operation behavior.
|
|
6
|
+
|
|
7
|
+
## Management records
|
|
8
|
+
|
|
9
|
+
`PluginEntryId` identifies one Loader entry; callers obtain it from `listPlugins` rather than constructing a patch id.
|
|
10
|
+
|
|
11
|
+
`PluginInfo` carries module identity, effective enablement and fiber phase, plus a unique `patchId` or a `readOnlyReason`.
|
|
12
|
+
|
|
13
|
+
`BundleInfo` carries the package name, optional installed version, selected enablement, removal availability and optional resolution error.
|
|
14
|
+
|
|
15
|
+
`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.
|
|
16
|
+
|
|
17
|
+
`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 pnpm exit code, bounded output, truncation flag and complete diagnostic log path. `pendingBuilds` lists undecided packages across the profile; `approvedBuilds` records the names granted permission by this operation.
|
|
18
|
+
|
|
19
|
+
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
20
|
+
|
|
21
|
+
<a id="cordis-surface"></a>
|
|
22
|
+
|
|
23
|
+
## Cordis API
|
|
24
|
+
|
|
25
|
+
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).
|
|
26
|
+
|
|
27
|
+
<a id="ctxhmr--hmr"></a>
|
|
28
|
+
|
|
29
|
+
### `ctx.hmr` — `Hmr`
|
|
30
|
+
|
|
31
|
+
Hot reload service with Cordis-compatible module configuration and events.
|
|
32
|
+
|
|
33
|
+
```ts cordis-catalog
|
|
34
|
+
/** Serialize a caller-owned mutation with all automatic reload paths.
|
|
35
|
+
* @param operation Work that must not overlap module or configuration replacement.
|
|
36
|
+
* @returns The operation result after its asynchronous work completes.
|
|
37
|
+
*/
|
|
38
|
+
runExclusive<T>(operation: () => Promise<T>): Promise<T>
|
|
39
|
+
|
|
40
|
+
/** Watch a configuration path through the same queue as module replacement.
|
|
41
|
+
* @param filename Absolute path, which may not exist yet.
|
|
42
|
+
* @param refresh Rebuilds configuration from its current files and awaits Loader completion.
|
|
43
|
+
* @returns Disposer closing this registration and waiting for its pending refresh.
|
|
44
|
+
*/
|
|
45
|
+
async watchConfig(filename: string, refresh: () => Promise<void>): Promise<() => Promise<void>>
|
|
46
|
+
|
|
47
|
+
/** Read direct module dependency URLs from the active Node loader.
|
|
48
|
+
* @param url Module URL.
|
|
49
|
+
* @returns Linked module URLs, or an empty list for an uncached module.
|
|
50
|
+
*/
|
|
51
|
+
async getLinked(url: string): Promise<string[]>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Source: [`packages/boot/hmr/src/index.ts`](../../packages/boot/hmr/src/index.ts)
|
|
55
|
+
|
|
56
|
+
<a id="ctxpluginmanager--pluginmanager"></a>
|
|
57
|
+
|
|
58
|
+
### `ctx.pluginManager` — `PluginManager`
|
|
59
|
+
|
|
60
|
+
Manage profile files and apply their declared reload lifecycle.
|
|
61
|
+
|
|
62
|
+
```ts cordis-catalog
|
|
63
|
+
/** Read current plugins, including why a row cannot be changed through the profile patch.
|
|
64
|
+
* @returns Current runtime entries with persistent patch targets.
|
|
65
|
+
*/
|
|
66
|
+
@Remote async listPlugins(): Promise<PluginInfo[]>
|
|
67
|
+
|
|
68
|
+
/** Read the profile's installed bundles, the bundles this dsh installation supplies, and the selected names that are not bundles.
|
|
69
|
+
* A dependency without a bundle patch is listed, as a `not-bundle` problem, only while it is selected.
|
|
70
|
+
* @returns Package versions, one-liners, rows, activation selections, whether the installation offers the
|
|
71
|
+
* bundle, and removal availability.
|
|
72
|
+
*/
|
|
73
|
+
@Remote listBundles(): Promise<BundleInfo[]>
|
|
74
|
+
|
|
75
|
+
/** Read what a spec names before installing it.
|
|
76
|
+
* @param spec One package spec: a registry name, an absolute path, a git address, or a tarball.
|
|
77
|
+
* @param signal Ends a registry lookup early.
|
|
78
|
+
* @returns The package the spec names, or why it is refused.
|
|
79
|
+
*/
|
|
80
|
+
@Remote async inspect(spec: string, signal?: AbortSignal): Promise<PluginSpecInspection>
|
|
81
|
+
|
|
82
|
+
/** Persist a plugin entry's desired enablement and apply it on live profiles.
|
|
83
|
+
* @param id Loader entry identity returned by listPlugins.
|
|
84
|
+
* @param enabled Whether the plugin should run.
|
|
85
|
+
* @returns Saved and runtime outcomes, including higher-priority overrides.
|
|
86
|
+
*/
|
|
87
|
+
@Remote setPluginEnabled(id: PluginEntryId, enabled: boolean): Promise<ChangeResult>
|
|
88
|
+
|
|
89
|
+
/** Select or remove a bundle layer while retaining installed dependencies.
|
|
90
|
+
* @param name Bundle package name.
|
|
91
|
+
* @param enabled Whether the bundle contributes its patch layer.
|
|
92
|
+
* @returns Persisted and runtime outcomes.
|
|
93
|
+
*/
|
|
94
|
+
@Remote setBundleEnabled(name: string, enabled: boolean): Promise<ChangeResult>
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Install a package using the same pnpm implementation as dsh plugin. A run
|
|
98
|
+
* that fails, is cancelled, or adds a package without a bundle patch restores
|
|
99
|
+
* `package.json` and `pnpm-lock.yaml` as they were; downloaded files can stay.
|
|
100
|
+
* @param spec One package spec, including local paths relative to the invocation directory.
|
|
101
|
+
* @param options Whether to activate the installed bundle (defaults to true), the request id a cancellation names, and
|
|
102
|
+
* the pending build scripts to allow for this profile before pnpm runs.
|
|
103
|
+
* @returns Package-manager diagnostics and observed activation outcome.
|
|
104
|
+
*/
|
|
105
|
+
@Remote installBundle(spec: string, options?: InstallBundleOptions): Promise<ChangeResult>
|
|
106
|
+
|
|
107
|
+
/** Stop an installation this manager owns and wait until its files are back.
|
|
108
|
+
* @param requestId The id the installation was started with.
|
|
109
|
+
* @returns `cancelled` once pnpm exited and the files are restored, `too-late` once the bundle is being
|
|
110
|
+
* applied, `not-running` for any other id.
|
|
111
|
+
*/
|
|
112
|
+
@Remote async cancelInstall(requestId: PluginInstallRequestId): Promise<PluginInstallCancellation>
|
|
113
|
+
|
|
114
|
+
/** Unload and remove a profile-owned bundle dependency through dsh plugin's pnpm path.
|
|
115
|
+
* @param name Installed dependency name.
|
|
116
|
+
* @returns Removal diagnostics and the remaining profile state.
|
|
117
|
+
*/
|
|
118
|
+
@Remote removeBundle(name: string): Promise<ChangeResult>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Source: [`packages/boot/plugin-manager/src/index.ts`](../../packages/boot/plugin-manager/src/index.ts)
|
|
122
|
+
|
|
123
|
+
<a id="ctxprofilecontext--profilecontext"></a>
|
|
124
|
+
|
|
125
|
+
### `ctx.profileContext` — `ProfileContext`
|
|
126
|
+
|
|
127
|
+
Current profile facts; scheduling and mutation belong to their callers.
|
|
128
|
+
|
|
129
|
+
Source: [`packages/boot/app-boot/src/profile-context.ts`](../../packages/boot/app-boot/src/profile-context.ts)
|
|
130
|
+
|
|
131
|
+
<a id="hmr-events"></a>
|
|
132
|
+
|
|
133
|
+
### `hmr/*` events
|
|
134
|
+
|
|
135
|
+
<a id="hmrchange--emit"></a>
|
|
136
|
+
|
|
137
|
+
#### `hmr/change` — emit
|
|
138
|
+
|
|
139
|
+
A watched file has no module or configuration handler.
|
|
140
|
+
|
|
141
|
+
```ts cordis-catalog
|
|
142
|
+
/** A watched file has no module or configuration handler.
|
|
143
|
+
* @mode emit
|
|
144
|
+
* @param url Canonical file URL.
|
|
145
|
+
*/
|
|
146
|
+
'hmr/change'(url: string): void
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Source: [`packages/boot/hmr/src/index.ts`](../../packages/boot/hmr/src/index.ts)
|
|
150
|
+
|
|
151
|
+
<a id="hmrreload--emit"></a>
|
|
152
|
+
|
|
153
|
+
#### `hmr/reload` — emit
|
|
154
|
+
|
|
155
|
+
Module replacements have finished loading.
|
|
156
|
+
|
|
157
|
+
```ts cordis-catalog
|
|
158
|
+
/** Module replacements have finished loading.
|
|
159
|
+
* @mode emit
|
|
160
|
+
* @param reloads Replaced plugins and their module locations.
|
|
161
|
+
*/
|
|
162
|
+
'hmr/reload'(reloads: Map<Plugin, Reload>): void
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Source: [`packages/boot/hmr/src/index.ts`](../../packages/boot/hmr/src/index.ts)
|
|
166
|
+
|
|
167
|
+
<a id="plugin-manager-events"></a>
|
|
168
|
+
|
|
169
|
+
### `plugin-manager/*` events
|
|
170
|
+
|
|
171
|
+
<a id="plugin-managerchanged--emit"></a>
|
|
172
|
+
|
|
173
|
+
#### `plugin-manager/changed` — emit
|
|
174
|
+
|
|
175
|
+
The profile's plugins, bundles, or composition changed: a manager operation completed. A patch generation applied outside the manager, by HMR's watcher after a CLI or hand edit, announces nothing here.
|
|
176
|
+
|
|
177
|
+
```ts cordis-catalog
|
|
178
|
+
/**
|
|
179
|
+
* The profile's plugins, bundles, or composition changed: a manager
|
|
180
|
+
* operation completed. A patch generation applied outside the manager,
|
|
181
|
+
* by HMR's watcher after a CLI or hand edit, announces nothing here.
|
|
182
|
+
* @mode emit
|
|
183
|
+
* @param change - what changed.
|
|
184
|
+
*/
|
|
185
|
+
'plugin-manager/changed'(change: PluginChange): void
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
189
|
+
|
|
190
|
+
<a id="plugin-managerinstall-log--emit"></a>
|
|
191
|
+
|
|
192
|
+
#### `plugin-manager/install-log` — emit
|
|
193
|
+
|
|
194
|
+
One chunk of a pnpm run's output, streamed as the run produces it.
|
|
195
|
+
|
|
196
|
+
```ts cordis-catalog
|
|
197
|
+
/**
|
|
198
|
+
* One chunk of a pnpm run's output, streamed as the run produces it.
|
|
199
|
+
* @mode emit
|
|
200
|
+
* @param chunk - the chunk and the run it belongs to.
|
|
201
|
+
*/
|
|
202
|
+
'plugin-manager/install-log'(chunk: PluginInstallLogChunk): void
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
206
|
+
|
|
207
|
+
<a id="plugin-managerinstall-state--emit"></a>
|
|
208
|
+
|
|
209
|
+
#### `plugin-manager/install-state` — emit
|
|
210
|
+
|
|
211
|
+
An installation moved between its Host phases.
|
|
212
|
+
|
|
213
|
+
```ts cordis-catalog
|
|
214
|
+
/**
|
|
215
|
+
* An installation moved between its Host phases.
|
|
216
|
+
* @mode emit
|
|
217
|
+
* @param progress - the installation's request id and phase.
|
|
218
|
+
*/
|
|
219
|
+
'plugin-manager/install-state'(progress: PluginInstallProgress): void
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
223
|
+
<!-- END GENERATED cordis-surface -->
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# Profile 管理
|
|
2
|
+
|
|
3
|
+
[English](boot.md) | 中文
|
|
4
|
+
|
|
5
|
+
[boot 包组](../../packages/boot/README.zh.md)负责 launcher 提供的 profile 访问与插件管理器。[插件管理器](../../packages/boot/plugin-manager/README.zh.md)文档说明持久化、重载与包操作行为。
|
|
6
|
+
|
|
7
|
+
## 管理记录
|
|
8
|
+
|
|
9
|
+
`PluginEntryId` 标识一个 Loader 条目;调用方从 `listPlugins` 获取,不自行拼接 patch id。
|
|
10
|
+
|
|
11
|
+
`PluginInfo` 包含模块标识、实际启停状态和 fiber 阶段,以及唯一的 `patchId` 或 `readOnlyReason`。
|
|
12
|
+
|
|
13
|
+
`BundleInfo` 包含包名、可选的安装版本、组合层选择状态、删除可用性及可选的解析错误。
|
|
14
|
+
|
|
15
|
+
`InstallBundleOptions.enabled` 默认为 true,false 表示安装但不选择组合包层。`approvedBuilds` 在安装前向指定的待审批包名授予持久脚本权限。
|
|
16
|
+
|
|
17
|
+
`ChangeResult.changed` 报告磁盘修改,独立于 `application`:`applied`、`restart-required`、`overridden` 或 `failed`。可选的 `error` 包含可本地化的错误码和外部诊断。`packageResult` 记录 pnpm 退出码、有界输出、截断标志及完整诊断日志路径。`pendingBuilds` 列出整个 profile 尚未决定的包;`approvedBuilds` 记录本次操作授予权限的包名。
|
|
18
|
+
|
|
19
|
+
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
20
|
+
|
|
21
|
+
<a id="cordis-surface"></a>
|
|
22
|
+
|
|
23
|
+
## Cordis API
|
|
24
|
+
|
|
25
|
+
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).
|
|
26
|
+
|
|
27
|
+
<a id="ctxhmr--hmr"></a>
|
|
28
|
+
|
|
29
|
+
### `ctx.hmr` — `Hmr`
|
|
30
|
+
|
|
31
|
+
Hot reload service with Cordis-compatible module configuration and events.
|
|
32
|
+
|
|
33
|
+
```ts cordis-catalog
|
|
34
|
+
/** Serialize a caller-owned mutation with all automatic reload paths.
|
|
35
|
+
* @param operation Work that must not overlap module or configuration replacement.
|
|
36
|
+
* @returns The operation result after its asynchronous work completes.
|
|
37
|
+
*/
|
|
38
|
+
runExclusive<T>(operation: () => Promise<T>): Promise<T>
|
|
39
|
+
|
|
40
|
+
/** Watch a configuration path through the same queue as module replacement.
|
|
41
|
+
* @param filename Absolute path, which may not exist yet.
|
|
42
|
+
* @param refresh Rebuilds configuration from its current files and awaits Loader completion.
|
|
43
|
+
* @returns Disposer closing this registration and waiting for its pending refresh.
|
|
44
|
+
*/
|
|
45
|
+
async watchConfig(filename: string, refresh: () => Promise<void>): Promise<() => Promise<void>>
|
|
46
|
+
|
|
47
|
+
/** Read direct module dependency URLs from the active Node loader.
|
|
48
|
+
* @param url Module URL.
|
|
49
|
+
* @returns Linked module URLs, or an empty list for an uncached module.
|
|
50
|
+
*/
|
|
51
|
+
async getLinked(url: string): Promise<string[]>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Source: [`packages/boot/hmr/src/index.ts`](../../packages/boot/hmr/src/index.ts)
|
|
55
|
+
|
|
56
|
+
<a id="ctxpluginmanager--pluginmanager"></a>
|
|
57
|
+
|
|
58
|
+
### `ctx.pluginManager` — `PluginManager`
|
|
59
|
+
|
|
60
|
+
Manage profile files and apply their declared reload lifecycle.
|
|
61
|
+
|
|
62
|
+
```ts cordis-catalog
|
|
63
|
+
/** Read current plugins, including why a row cannot be changed through the profile patch.
|
|
64
|
+
* @returns Current runtime entries with persistent patch targets.
|
|
65
|
+
*/
|
|
66
|
+
@Remote async listPlugins(): Promise<PluginInfo[]>
|
|
67
|
+
|
|
68
|
+
/** Read the profile's installed bundles, the bundles this dsh installation supplies, and the selected names that are not bundles.
|
|
69
|
+
* A dependency without a bundle patch is listed, as a `not-bundle` problem, only while it is selected.
|
|
70
|
+
* @returns Package versions, one-liners, rows, activation selections, whether the installation offers the
|
|
71
|
+
* bundle, and removal availability.
|
|
72
|
+
*/
|
|
73
|
+
@Remote listBundles(): Promise<BundleInfo[]>
|
|
74
|
+
|
|
75
|
+
/** Read what a spec names before installing it.
|
|
76
|
+
* @param spec One package spec: a registry name, an absolute path, a git address, or a tarball.
|
|
77
|
+
* @param signal Ends a registry lookup early.
|
|
78
|
+
* @returns The package the spec names, or why it is refused.
|
|
79
|
+
*/
|
|
80
|
+
@Remote async inspect(spec: string, signal?: AbortSignal): Promise<PluginSpecInspection>
|
|
81
|
+
|
|
82
|
+
/** Persist a plugin entry's desired enablement and apply it on live profiles.
|
|
83
|
+
* @param id Loader entry identity returned by listPlugins.
|
|
84
|
+
* @param enabled Whether the plugin should run.
|
|
85
|
+
* @returns Saved and runtime outcomes, including higher-priority overrides.
|
|
86
|
+
*/
|
|
87
|
+
@Remote setPluginEnabled(id: PluginEntryId, enabled: boolean): Promise<ChangeResult>
|
|
88
|
+
|
|
89
|
+
/** Select or remove a bundle layer while retaining installed dependencies.
|
|
90
|
+
* @param name Bundle package name.
|
|
91
|
+
* @param enabled Whether the bundle contributes its patch layer.
|
|
92
|
+
* @returns Persisted and runtime outcomes.
|
|
93
|
+
*/
|
|
94
|
+
@Remote setBundleEnabled(name: string, enabled: boolean): Promise<ChangeResult>
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Install a package using the same pnpm implementation as dsh plugin. A run
|
|
98
|
+
* that fails, is cancelled, or adds a package without a bundle patch restores
|
|
99
|
+
* `package.json` and `pnpm-lock.yaml` as they were; downloaded files can stay.
|
|
100
|
+
* @param spec One package spec, including local paths relative to the invocation directory.
|
|
101
|
+
* @param options Whether to activate the installed bundle (defaults to true), the request id a cancellation names, and
|
|
102
|
+
* the pending build scripts to allow for this profile before pnpm runs.
|
|
103
|
+
* @returns Package-manager diagnostics and observed activation outcome.
|
|
104
|
+
*/
|
|
105
|
+
@Remote installBundle(spec: string, options?: InstallBundleOptions): Promise<ChangeResult>
|
|
106
|
+
|
|
107
|
+
/** Stop an installation this manager owns and wait until its files are back.
|
|
108
|
+
* @param requestId The id the installation was started with.
|
|
109
|
+
* @returns `cancelled` once pnpm exited and the files are restored, `too-late` once the bundle is being
|
|
110
|
+
* applied, `not-running` for any other id.
|
|
111
|
+
*/
|
|
112
|
+
@Remote async cancelInstall(requestId: PluginInstallRequestId): Promise<PluginInstallCancellation>
|
|
113
|
+
|
|
114
|
+
/** Unload and remove a profile-owned bundle dependency through dsh plugin's pnpm path.
|
|
115
|
+
* @param name Installed dependency name.
|
|
116
|
+
* @returns Removal diagnostics and the remaining profile state.
|
|
117
|
+
*/
|
|
118
|
+
@Remote removeBundle(name: string): Promise<ChangeResult>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Source: [`packages/boot/plugin-manager/src/index.ts`](../../packages/boot/plugin-manager/src/index.ts)
|
|
122
|
+
|
|
123
|
+
<a id="ctxprofilecontext--profilecontext"></a>
|
|
124
|
+
|
|
125
|
+
### `ctx.profileContext` — `ProfileContext`
|
|
126
|
+
|
|
127
|
+
Current profile facts; scheduling and mutation belong to their callers.
|
|
128
|
+
|
|
129
|
+
Source: [`packages/boot/app-boot/src/profile-context.ts`](../../packages/boot/app-boot/src/profile-context.ts)
|
|
130
|
+
|
|
131
|
+
<a id="hmr-events"></a>
|
|
132
|
+
|
|
133
|
+
### `hmr/*` events
|
|
134
|
+
|
|
135
|
+
<a id="hmrchange--emit"></a>
|
|
136
|
+
|
|
137
|
+
#### `hmr/change` — emit
|
|
138
|
+
|
|
139
|
+
A watched file has no module or configuration handler.
|
|
140
|
+
|
|
141
|
+
```ts cordis-catalog
|
|
142
|
+
/** A watched file has no module or configuration handler.
|
|
143
|
+
* @mode emit
|
|
144
|
+
* @param url Canonical file URL.
|
|
145
|
+
*/
|
|
146
|
+
'hmr/change'(url: string): void
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Source: [`packages/boot/hmr/src/index.ts`](../../packages/boot/hmr/src/index.ts)
|
|
150
|
+
|
|
151
|
+
<a id="hmrreload--emit"></a>
|
|
152
|
+
|
|
153
|
+
#### `hmr/reload` — emit
|
|
154
|
+
|
|
155
|
+
Module replacements have finished loading.
|
|
156
|
+
|
|
157
|
+
```ts cordis-catalog
|
|
158
|
+
/** Module replacements have finished loading.
|
|
159
|
+
* @mode emit
|
|
160
|
+
* @param reloads Replaced plugins and their module locations.
|
|
161
|
+
*/
|
|
162
|
+
'hmr/reload'(reloads: Map<Plugin, Reload>): void
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Source: [`packages/boot/hmr/src/index.ts`](../../packages/boot/hmr/src/index.ts)
|
|
166
|
+
|
|
167
|
+
<a id="plugin-manager-events"></a>
|
|
168
|
+
|
|
169
|
+
### `plugin-manager/*` events
|
|
170
|
+
|
|
171
|
+
<a id="plugin-managerchanged--emit"></a>
|
|
172
|
+
|
|
173
|
+
#### `plugin-manager/changed` — emit
|
|
174
|
+
|
|
175
|
+
The profile's plugins, bundles, or composition changed: a manager operation completed. A patch generation applied outside the manager, by HMR's watcher after a CLI or hand edit, announces nothing here.
|
|
176
|
+
|
|
177
|
+
```ts cordis-catalog
|
|
178
|
+
/**
|
|
179
|
+
* The profile's plugins, bundles, or composition changed: a manager
|
|
180
|
+
* operation completed. A patch generation applied outside the manager,
|
|
181
|
+
* by HMR's watcher after a CLI or hand edit, announces nothing here.
|
|
182
|
+
* @mode emit
|
|
183
|
+
* @param change - what changed.
|
|
184
|
+
*/
|
|
185
|
+
'plugin-manager/changed'(change: PluginChange): void
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
189
|
+
|
|
190
|
+
<a id="plugin-managerinstall-log--emit"></a>
|
|
191
|
+
|
|
192
|
+
#### `plugin-manager/install-log` — emit
|
|
193
|
+
|
|
194
|
+
One chunk of a pnpm run's output, streamed as the run produces it.
|
|
195
|
+
|
|
196
|
+
```ts cordis-catalog
|
|
197
|
+
/**
|
|
198
|
+
* One chunk of a pnpm run's output, streamed as the run produces it.
|
|
199
|
+
* @mode emit
|
|
200
|
+
* @param chunk - the chunk and the run it belongs to.
|
|
201
|
+
*/
|
|
202
|
+
'plugin-manager/install-log'(chunk: PluginInstallLogChunk): void
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
206
|
+
|
|
207
|
+
<a id="plugin-managerinstall-state--emit"></a>
|
|
208
|
+
|
|
209
|
+
#### `plugin-manager/install-state` — emit
|
|
210
|
+
|
|
211
|
+
An installation moved between its Host phases.
|
|
212
|
+
|
|
213
|
+
```ts cordis-catalog
|
|
214
|
+
/**
|
|
215
|
+
* An installation moved between its Host phases.
|
|
216
|
+
* @mode emit
|
|
217
|
+
* @param progress - the installation's request id and phase.
|
|
218
|
+
*/
|
|
219
|
+
'plugin-manager/install-state'(progress: PluginInstallProgress): void
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Source: [`packages/boot/plugin-manager/src/types.ts`](../../packages/boot/plugin-manager/src/types.ts)
|
|
223
|
+
<!-- END GENERATED cordis-surface -->
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
|
2
|
+
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
|
+
# after editing either side, bring the other along and re-record with:
|
|
4
|
+
# pnpm run verify-translation-pairing --write docs/subsystems/browser-use.md
|
|
5
|
+
browser-use.md: 73cedae85752b296c3f85e53d40448e25a711685
|
|
6
|
+
browser-use.zh.md: 573b15962eddab154947a33e9bebe2303cb24fea
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Browser use
|
|
2
|
+
|
|
3
|
+
English | [中文](browser-use.zh.md)
|
|
4
|
+
|
|
5
|
+
Browser use lets a model inspect and operate web pages through a configured backend. DSH owns the task loop; the provider supplies browser operations and keeps browser state across turns of one live Session.
|
|
6
|
+
|
|
7
|
+
## Choose a provider
|
|
8
|
+
|
|
9
|
+
Mount [`dsh-browser-use`](../../packages/browser-use/browser-use/README.md) and one provider in the same composition. The providers are experimental public npm packages and require explicit activation. Their initial browser engine is Chromium.
|
|
10
|
+
|
|
11
|
+
| Provider | Integration |
|
|
12
|
+
|---|---|
|
|
13
|
+
| [Playwright MCP](../../packages/experimental/browser-use-playwright-mcp/README.md) | Playwright's browser-control MCP tools |
|
|
14
|
+
| [Chrome DevTools MCP](../../packages/experimental/browser-use-chrome-devtools-mcp/README.md) | Chrome DevTools inspection and control through MCP |
|
|
15
|
+
| [Stagehand](../../packages/experimental/browser-use-stagehand-native/README.md) | Native browser operations with AI-assisted actions, observation, and extraction |
|
|
16
|
+
|
|
17
|
+
The shared service registers only a name and rejects any second provider, including another instance with the same name. It has no common browser-operation methods, browser resources, or model-controlled selector. Provider configuration in a profile or preset selects launch or attachment for that activation.
|
|
18
|
+
|
|
19
|
+
## Session ownership
|
|
20
|
+
|
|
21
|
+
A launched browser belongs to the exact live Agent and Session that uses it. Calls across turns reuse that browser. Disposing the Session runtime closes its launched resources; reloading or forking a Session starts fresh browser state. Browser profiles and login state are not restored from the Session log.
|
|
22
|
+
|
|
23
|
+
An attached browser remains externally owned. The provider reserves it for one Session within that provider instance, preserves its existing browser state, and rejects simultaneous attachment by another Session. Teardown disconnects and leaves the external browser running. Separate DSH processes and other clients remain outside this reservation.
|
|
24
|
+
|
|
25
|
+
Provider shutdown stops tool admission and waits for owned work and resource cleanup before releasing the shared provider registration. Cancellation cannot undo a browser action already delivered.
|
|
26
|
+
|
|
27
|
+
## MCP initialization
|
|
28
|
+
|
|
29
|
+
An MCP provider initializes one client for each live Agent created after the provider loads. The existing serial `agent/created` event awaits connection and discovery before creation or resume completes and queued input runs. The client remains with the Session across turns. Startup failure or cancellation rejects creation or resume and triggers client cleanup.
|
|
30
|
+
|
|
31
|
+
If an attachment is busy, that activation continues without the browser and does not retry on later turns. After release, a newly created or resumed activation can acquire it. Loading or reloading the provider does not adopt already active Sessions; the [shared runtime](../../packages/experimental/browser-use-runtime/README.md) owns these initialization rules.
|
|
32
|
+
|
|
33
|
+
## Tools and recorded results
|
|
34
|
+
|
|
35
|
+
Provider tools use the normal DSH execution pipeline and Session log. The providers own their tool schemas, result rendering, image support, configuration, and upstream limitations; the shared service adds no model-visible content. Stagehand's AI-assisted operations use its explicitly configured native model while DSH retains the task loop. DSH model routing, credential reuse, underlying inference request/response capture, and integration into Session usage accounting are deferred; returned SDK data and metadata remain ordinary logged tool results.
|
|
36
|
+
|
|
37
|
+
Browser MCP connections also expose [resources and server instructions](mcp.md). Resource calls addressed to a browser server use its Session queue and reject other Sessions; server instructions are assembled only for its owning Session.
|
|
38
|
+
|
|
39
|
+
The [decision record](../../.agents/notes/implemented/architecture/2026-09-12-browser-use-provider-registration.md) explains the registration-only service and per-Session ownership.
|
|
40
|
+
|
|
41
|
+
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
42
|
+
|
|
43
|
+
<a id="cordis-surface"></a>
|
|
44
|
+
|
|
45
|
+
## Cordis API
|
|
46
|
+
|
|
47
|
+
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).
|
|
48
|
+
|
|
49
|
+
<a id="ctxbrowseruse--browseruseregistry"></a>
|
|
50
|
+
|
|
51
|
+
### `ctx.browserUse` — `BrowserUseRegistry`
|
|
52
|
+
|
|
53
|
+
Owns one optional provider registration in the shared browser-use service.
|
|
54
|
+
|
|
55
|
+
```ts cordis-catalog
|
|
56
|
+
/**
|
|
57
|
+
* Reserve the sole provider slot until the contribution is disposed.
|
|
58
|
+
* A second registration fails even when it repeats the current name. Providers
|
|
59
|
+
* must stop their tools and await owned work before releasing this registration.
|
|
60
|
+
* @param name - provider-owned name used in registration diagnostics.
|
|
61
|
+
* @returns the effect disposer for this exact registration.
|
|
62
|
+
*/
|
|
63
|
+
register(name: BrowserUseProviderName): () => Promise<void>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Source: [`packages/browser-use/browser-use/src/index.ts`](../../packages/browser-use/browser-use/src/index.ts)
|
|
67
|
+
<!-- END GENERATED cordis-surface -->
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# 浏览器操作
|
|
2
|
+
|
|
3
|
+
[English](browser-use.md) | 中文
|
|
4
|
+
|
|
5
|
+
浏览器操作让模型通过配置的后端检查与操作网页。DSH 拥有任务循环;提供方提供浏览器操作,并在一个实时 Session 的多个轮次之间保留浏览器状态。
|
|
6
|
+
|
|
7
|
+
## 选择提供方
|
|
8
|
+
|
|
9
|
+
在同一组合中挂载 [`dsh-browser-use`](../../packages/browser-use/browser-use/README.zh.md) 和一个提供方。这些提供方是实验性公共 npm 包,需要显式激活。它们最初支持的浏览器引擎是 Chromium。
|
|
10
|
+
|
|
11
|
+
| 提供方 | 集成方式 |
|
|
12
|
+
|---|---|
|
|
13
|
+
| [Playwright MCP](../../packages/experimental/browser-use-playwright-mcp/README.zh.md) | Playwright 的浏览器控制 MCP 工具 |
|
|
14
|
+
| [Chrome DevTools MCP](../../packages/experimental/browser-use-chrome-devtools-mcp/README.zh.md) | 通过 MCP 进行 Chrome DevTools 检查与控制 |
|
|
15
|
+
| [Stagehand](../../packages/experimental/browser-use-stagehand-native/README.zh.md) | 原生浏览器操作,支持 AI(人工智能)辅助的动作、观测与提取 |
|
|
16
|
+
|
|
17
|
+
共享服务只注册名称,并拒绝任何第二次提供方注册,包括同名实例。它不包含通用浏览器操作方法、浏览器资源或模型控制的选择器。Profile 或 preset 中的提供方配置为此次激活选择启动或附加模式。
|
|
18
|
+
|
|
19
|
+
## Session 所有权
|
|
20
|
+
|
|
21
|
+
启动的浏览器属于使用它的确切实时 Agent 与 Session。跨轮次的调用复用该浏览器。Session 运行时释放时关闭其启动的资源;重新加载或 fork Session 时创建全新浏览器状态。浏览器 profile 和登录状态不会从 Session 日志恢复。
|
|
22
|
+
|
|
23
|
+
附加的浏览器仍归外部所有。提供方在该提供方实例内将浏览器保留给一个 Session,保留现有浏览器状态,并拒绝另一个 Session 同时附加。清理会断开连接并保持外部浏览器运行。独立 DSH 进程与其他客户端不受此保留约束。
|
|
24
|
+
|
|
25
|
+
提供方关闭时先停止接收工具调用,并等待自有工作与资源清理完成,再释放共享提供方注册。取消无法撤销已交付的浏览器操作。
|
|
26
|
+
|
|
27
|
+
## MCP 初始化
|
|
28
|
+
|
|
29
|
+
MCP 提供方为其加载后创建的每个活动 Agent 初始化一个客户端。现有的串行 `agent/created` 事件等待连接和发现结束后,创建或恢复才完成,排队输入才开始运行。客户端跨轮次归 Session 所有。启动失败或取消会拒绝创建或恢复,并触发客户端清理。
|
|
30
|
+
|
|
31
|
+
如果附加连接已被占用,本次激活不使用浏览器,但继续运行,后续轮次不会重试。连接释放后,新创建或恢复的激活可以获取它。加载或重新加载提供方不会接管已经活动的 Session;[共享运行时](../../packages/experimental/browser-use-runtime/README.zh.md)拥有这些初始化规则。
|
|
32
|
+
|
|
33
|
+
## 工具与记录结果
|
|
34
|
+
|
|
35
|
+
提供方工具使用常规 DSH 执行管线与 Session 日志。提供方拥有自己的工具 schema、结果渲染、图像支持、配置和上游限制;共享服务不添加模型可见内容。Stagehand 的 AI 辅助操作使用其显式配置的原生模型,DSH 保留任务循环。DSH 模型路由、凭据复用、底层推理请求/响应捕获,以及与 Session 用量计量的集成均属暂缓工作;返回的 SDK 数据和元数据仍作为普通工具结果记录。
|
|
36
|
+
|
|
37
|
+
浏览器 MCP 连接还提供[资源和服务器指令](mcp.zh.md)。发往浏览器服务器的资源调用使用其 Session 队列,并拒绝其他 Session 的请求;服务器指令只会组装到所属 Session 的提示词中。
|
|
38
|
+
|
|
39
|
+
[决策记录](../../.agents/notes/implemented/architecture/2026-09-12-browser-use-provider-registration.zh.md)解释只注册名称的服务与按 Session 管理的所有权。
|
|
40
|
+
|
|
41
|
+
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
42
|
+
|
|
43
|
+
<a id="cordis-surface"></a>
|
|
44
|
+
|
|
45
|
+
## Cordis API
|
|
46
|
+
|
|
47
|
+
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).
|
|
48
|
+
|
|
49
|
+
<a id="ctxbrowseruse--browseruseregistry"></a>
|
|
50
|
+
|
|
51
|
+
### `ctx.browserUse` — `BrowserUseRegistry`
|
|
52
|
+
|
|
53
|
+
Owns one optional provider registration in the shared browser-use service.
|
|
54
|
+
|
|
55
|
+
```ts cordis-catalog
|
|
56
|
+
/**
|
|
57
|
+
* Reserve the sole provider slot until the contribution is disposed.
|
|
58
|
+
* A second registration fails even when it repeats the current name. Providers
|
|
59
|
+
* must stop their tools and await owned work before releasing this registration.
|
|
60
|
+
* @param name - provider-owned name used in registration diagnostics.
|
|
61
|
+
* @returns the effect disposer for this exact registration.
|
|
62
|
+
*/
|
|
63
|
+
register(name: BrowserUseProviderName): () => Promise<void>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Source: [`packages/browser-use/browser-use/src/index.ts`](../../packages/browser-use/browser-use/src/index.ts)
|
|
67
|
+
<!-- END GENERATED cordis-surface -->
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write docs/subsystems/client-modules.md
|
|
5
|
-
client-modules.md:
|
|
6
|
-
client-modules.zh.md:
|
|
5
|
+
client-modules.md: 89f3e675628bca71f001170b5efabb241134dfb0
|
|
6
|
+
client-modules.zh.md: 1a41b4bd061ebf83f80c6f7c1633932da13b5942
|