dsh-plugin-guide 0.3.21 → 0.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-es.md +15 -12
- package/README-hi.md +15 -12
- package/README-pt.md +15 -12
- package/README-zh.md +15 -12
- package/README.md +290 -280
- package/SKILL.md +36 -19
- package/dist/dsh-plugin-dev.js +113 -9
- package/guide/choosing-a-plugin.md +412 -0
- package/guide/choosing-a-plugin.zh-CN.md +414 -0
- package/guide/links.md +20 -2
- package/guide/migration-0.2.md +219 -0
- package/guide/plugin-dev-guide.md +99 -24
- package/guide/quick-reference.es.md +14 -8
- package/guide/quick-reference.hi.md +15 -9
- package/guide/quick-reference.md +18 -10
- package/guide/quick-reference.pt.md +15 -9
- package/guide/quick-reference.zh-CN.md +19 -11
- package/guide/release-engineering.md +2 -2
- package/guide/release-engineering.zh-CN.md +2 -2
- package/guide/unfixed-issues.md +117 -82
- package/guide/when-to-retire-a-plugin.md +127 -0
- package/guide/when-to-retire-a-plugin.zh-CN.md +127 -0
- package/icon.svg +5 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +8 -4
- package/references/official-docs/AGENTS.md +8 -5
- package/references/official-docs/CONTRIBUTING.i18n.yaml +6 -5
- package/references/official-docs/README.i18n.yaml +33 -5
- package/references/official-docs/README.zh.md +3 -3
- package/references/official-docs/SNAPSHOT.md +3 -3
- package/references/official-docs/THIRD_PARTY_NOTICES.md +34 -6
- package/references/official-docs/docs/AGENTS.md +4 -4
- package/references/official-docs/docs/agent-lifecycle.i18n.yaml +9 -5
- package/references/official-docs/docs/api-gateway.i18n.yaml +27 -5
- package/references/official-docs/docs/api-gateway.md +10 -9
- package/references/official-docs/docs/api-gateway.zh.md +10 -9
- package/references/official-docs/docs/architecture.i18n.yaml +36 -5
- package/references/official-docs/docs/architecture.md +10 -8
- package/references/official-docs/docs/architecture.zh.md +10 -8
- package/references/official-docs/docs/capability-seams.i18n.yaml +9 -5
- package/references/official-docs/docs/capability-seams.md +76 -32
- package/references/official-docs/docs/capability-seams.zh.md +76 -32
- package/references/official-docs/docs/config-catalog.i18n.yaml +18 -5
- package/references/official-docs/docs/config-catalog.md +1360 -765
- package/references/official-docs/docs/config-catalog.zh.md +1363 -767
- package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +27 -5
- package/references/official-docs/docs/cookbook/adding-a-package.md +56 -3
- package/references/official-docs/docs/cookbook/adding-a-package.zh.md +54 -3
- package/references/official-docs/docs/cookbook/adding-a-remote-api.i18n.yaml +24 -5
- package/references/official-docs/docs/cookbook/adding-a-remote-api.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-remote-api.zh.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.i18n.yaml +39 -5
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.md +46 -6
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.zh.md +46 -6
- package/references/official-docs/docs/cookbook/adding-a-settings-card.i18n.yaml +21 -5
- package/references/official-docs/docs/cookbook/adding-a-settings-card.md +34 -64
- package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +34 -64
- package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +30 -5
- package/references/official-docs/docs/cookbook/adding-a-tool.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +18 -5
- package/references/official-docs/docs/cookbook/adding-an-llm-adapter.i18n.yaml +18 -5
- package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +24 -5
- package/references/official-docs/docs/cookbook/extension-cookbook.md +3 -3
- package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +3 -3
- package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.i18n.yaml +21 -5
- package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +15 -5
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.i18n.yaml +30 -5
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.md +13 -1
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.zh.md +13 -1
- package/references/official-docs/docs/cordis-api/context.i18n.yaml +72 -5
- package/references/official-docs/docs/cordis-api/events.i18n.yaml +36 -5
- package/references/official-docs/docs/cordis-api/fiber.i18n.yaml +75 -5
- package/references/official-docs/docs/cordis-api/inherited.md +15 -13
- package/references/official-docs/docs/cordis-api/registry.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-api/service.i18n.yaml +36 -5
- package/references/official-docs/docs/cordis-primer.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-tutorial/01-first-plugin.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.i18n.yaml +15 -5
- package/references/official-docs/docs/cordis-tutorial/03-services.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-tutorial/04-events.i18n.yaml +15 -5
- package/references/official-docs/docs/cordis-tutorial/05-config.i18n.yaml +18 -5
- package/references/official-docs/docs/cordis-tutorial/05-config.md +27 -0
- package/references/official-docs/docs/cordis-tutorial/05-config.zh.md +27 -0
- package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +15 -5
- package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.i18n.yaml +18 -5
- package/references/official-docs/docs/cordis-tutorial/index.i18n.yaml +15 -5
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +33 -5
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +7 -7
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +7 -7
- package/references/official-docs/docs/defensive-patterns.i18n.yaml +27 -5
- package/references/official-docs/docs/dependency-catalog.json +2 -2
- package/references/official-docs/docs/development.i18n.yaml +48 -5
- package/references/official-docs/docs/development.md +27 -10
- package/references/official-docs/docs/development.zh.md +27 -10
- package/references/official-docs/docs/event-producer-consumer.i18n.yaml +12 -5
- package/references/official-docs/docs/event-producer-consumer.md +78 -66
- package/references/official-docs/docs/event-producer-consumer.zh.md +78 -66
- package/references/official-docs/docs/glossary.i18n.yaml +24 -5
- package/references/official-docs/docs/graph-atlas.i18n.yaml +9 -5
- package/references/official-docs/docs/i18n/README.i18n.yaml +18 -5
- package/references/official-docs/docs/i18n/README.md +12 -8
- package/references/official-docs/docs/i18n/README.zh.md +12 -8
- package/references/official-docs/docs/i18n/terminology.md +4 -4
- package/references/official-docs/docs/i18n/translation-prompt.md +2 -2
- package/references/official-docs/docs/i18n/translation-rules.i18n.yaml +27 -5
- package/references/official-docs/docs/module-graph.i18n.yaml +9 -5
- package/references/official-docs/docs/module-graph.md +348 -245
- package/references/official-docs/docs/module-graph.zh.md +348 -245
- package/references/official-docs/docs/persistence-catalog.i18n.yaml +2064 -5
- package/references/official-docs/docs/persistence-catalog.md +5275 -3205
- package/references/official-docs/docs/persistence-catalog.zh.md +5275 -3205
- package/references/official-docs/docs/persistence-changes/2026-09-11-initial.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.md +120 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.schema.json +16212 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.zh.md +120 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.schema.json +302 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.schema.json +250 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.md +60 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.schema.json +11405 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.zh.md +60 -0
- package/references/official-docs/docs/persistence-changes/README.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/README.md +17 -3
- package/references/official-docs/docs/persistence-changes/README.zh.md +17 -3
- package/references/official-docs/docs/persistence-changes/finalized/v4.json +379 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/README.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/README.md +3 -2
- package/references/official-docs/docs/persistence-changes/historical-formats/README.zh.md +3 -2
- package/references/official-docs/docs/persistence-changes/historical-formats/v0.i18n.yaml +1284 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/v1.i18n.yaml +1284 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/v2.i18n.yaml +1344 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.i18n.yaml +1441 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.md +5634 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.schema.json +61307 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.zh.md +5634 -0
- package/references/official-docs/docs/persistence-changes/releases/README.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.schema.json +3 -3
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-schema.json +12692 -48753
- package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.i18n.yaml +33 -5
- package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.i18n.yaml +27 -5
- package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.i18n.yaml +27 -5
- package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.i18n.yaml +27 -5
- package/references/official-docs/docs/postmortem/README.i18n.yaml +6 -5
- package/references/official-docs/docs/rescope.i18n.yaml +18 -5
- package/references/official-docs/docs/rescope.md +1 -1
- package/references/official-docs/docs/rescope.zh.md +1 -1
- package/references/official-docs/docs/session-format-status.i18n.yaml +27 -5
- package/references/official-docs/docs/session-format-status.md +17 -3
- package/references/official-docs/docs/session-format-status.zh.md +17 -3
- package/references/official-docs/docs/subsystems/README.i18n.yaml +6 -5
- package/references/official-docs/docs/subsystems/README.md +6 -3
- package/references/official-docs/docs/subsystems/README.zh.md +6 -3
- package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/agent-team.md +52 -28
- package/references/official-docs/docs/subsystems/agent-team.zh.md +52 -28
- package/references/official-docs/docs/subsystems/approval.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/approval.md +1 -1
- package/references/official-docs/docs/subsystems/approval.zh.md +1 -1
- package/references/official-docs/docs/subsystems/attachment.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/attachment.md +2 -2
- package/references/official-docs/docs/subsystems/attachment.zh.md +2 -2
- package/references/official-docs/docs/subsystems/boot.i18n.yaml +9 -5
- package/references/official-docs/docs/subsystems/boot.md +117 -17
- package/references/official-docs/docs/subsystems/boot.zh.md +117 -17
- package/references/official-docs/docs/subsystems/browser-use.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/claude-code-mods.i18n.yaml +28 -0
- package/references/official-docs/docs/subsystems/claude-code-mods.md +146 -0
- package/references/official-docs/docs/subsystems/claude-code-mods.zh.md +146 -0
- package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/client-modules.md +13 -7
- package/references/official-docs/docs/subsystems/client-modules.zh.md +13 -7
- package/references/official-docs/docs/subsystems/client-resources.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/commands.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/commands.md +1 -1
- package/references/official-docs/docs/subsystems/commands.zh.md +1 -1
- package/references/official-docs/docs/subsystems/compaction.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/compaction.md +2 -2
- package/references/official-docs/docs/subsystems/compaction.zh.md +2 -2
- package/references/official-docs/docs/subsystems/computer-use.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/conversation.i18n.yaml +30 -5
- package/references/official-docs/docs/subsystems/conversation.md +35 -6
- package/references/official-docs/docs/subsystems/conversation.zh.md +34 -5
- package/references/official-docs/docs/subsystems/core.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/core.md +70 -214
- package/references/official-docs/docs/subsystems/core.zh.md +70 -214
- package/references/official-docs/docs/subsystems/credentials.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/credentials.md +168 -5
- package/references/official-docs/docs/subsystems/credentials.zh.md +168 -5
- package/references/official-docs/docs/subsystems/deliverables.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/extensions.i18n.yaml +6 -5
- package/references/official-docs/docs/subsystems/extensions.md +6 -4
- package/references/official-docs/docs/subsystems/extensions.zh.md +6 -4
- package/references/official-docs/docs/subsystems/feedback.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +33 -5
- package/references/official-docs/docs/subsystems/filesystem.md +10 -0
- package/references/official-docs/docs/subsystems/filesystem.zh.md +10 -0
- package/references/official-docs/docs/subsystems/goal.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/goal.md +1 -1
- package/references/official-docs/docs/subsystems/goal.zh.md +1 -1
- package/references/official-docs/docs/subsystems/jobs.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/jobs.md +335 -126
- package/references/official-docs/docs/subsystems/jobs.zh.md +335 -126
- package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +48 -5
- package/references/official-docs/docs/subsystems/llm-streaming.md +60 -31
- package/references/official-docs/docs/subsystems/llm-streaming.zh.md +60 -31
- package/references/official-docs/docs/subsystems/lsp.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/mcp.i18n.yaml +33 -5
- package/references/official-docs/docs/subsystems/mcp.md +2 -2
- package/references/official-docs/docs/subsystems/mcp.zh.md +2 -2
- package/references/official-docs/docs/subsystems/office-to-pdf.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/office-to-pdf.md +4 -4
- package/references/official-docs/docs/subsystems/office-to-pdf.zh.md +4 -4
- package/references/official-docs/docs/subsystems/otel.i18n.yaml +7 -0
- package/references/official-docs/docs/subsystems/otel.md +44 -0
- package/references/official-docs/docs/subsystems/otel.zh.md +44 -0
- package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/permission-presets.md +7 -6
- package/references/official-docs/docs/subsystems/permission-presets.zh.md +7 -6
- package/references/official-docs/docs/subsystems/persistence.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/persistence.md +3 -3
- package/references/official-docs/docs/subsystems/persistence.zh.md +3 -3
- package/references/official-docs/docs/subsystems/plan.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/plan.md +1 -1
- package/references/official-docs/docs/subsystems/plan.zh.md +1 -1
- package/references/official-docs/docs/subsystems/product-telemetry.i18n.yaml +10 -0
- package/references/official-docs/docs/subsystems/product-telemetry.md +79 -0
- package/references/official-docs/docs/subsystems/product-telemetry.zh.md +79 -0
- package/references/official-docs/docs/subsystems/ptc-runtime.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/sandbox.md +1 -1
- package/references/official-docs/docs/subsystems/sandbox.zh.md +1 -1
- package/references/official-docs/docs/subsystems/schedule.i18n.yaml +39 -5
- package/references/official-docs/docs/subsystems/schedule.md +391 -33
- package/references/official-docs/docs/subsystems/schedule.zh.md +391 -33
- package/references/official-docs/docs/subsystems/scope.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/scope.md +1 -1
- package/references/official-docs/docs/subsystems/scope.zh.md +1 -1
- package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/session-projection.md +20 -18
- package/references/official-docs/docs/subsystems/session-projection.zh.md +20 -18
- package/references/official-docs/docs/subsystems/session-query.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/session-telemetry.md +6 -4
- package/references/official-docs/docs/subsystems/session-telemetry.zh.md +6 -4
- package/references/official-docs/docs/subsystems/session-title.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/session.i18n.yaml +66 -5
- package/references/official-docs/docs/subsystems/session.md +113 -62
- package/references/official-docs/docs/subsystems/session.zh.md +113 -62
- package/references/official-docs/docs/subsystems/settings.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/settings.md +42 -292
- package/references/official-docs/docs/subsystems/settings.zh.md +42 -292
- package/references/official-docs/docs/subsystems/shell.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/shell.md +29 -22
- package/references/official-docs/docs/subsystems/shell.zh.md +29 -22
- package/references/official-docs/docs/subsystems/sidebar-right.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/sidebar-right.md +14 -9
- package/references/official-docs/docs/subsystems/sidebar-right.zh.md +14 -9
- package/references/official-docs/docs/subsystems/skills.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/skills.md +2 -2
- package/references/official-docs/docs/subsystems/skills.zh.md +2 -2
- package/references/official-docs/docs/subsystems/slots.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/slots.md +21 -7
- package/references/official-docs/docs/subsystems/slots.zh.md +21 -7
- package/references/official-docs/docs/subsystems/spill.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/spill.md +1 -1
- package/references/official-docs/docs/subsystems/spill.zh.md +1 -1
- package/references/official-docs/docs/subsystems/ssh.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/storage.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/storage.md +1 -2
- package/references/official-docs/docs/subsystems/storage.zh.md +1 -2
- package/references/official-docs/docs/subsystems/subagent.i18n.yaml +30 -5
- package/references/official-docs/docs/subsystems/subagent.md +35 -60
- package/references/official-docs/docs/subsystems/subagent.zh.md +35 -60
- package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +30 -5
- package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/terminal.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/todo.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/todo.md +3 -3
- package/references/official-docs/docs/subsystems/todo.zh.md +3 -3
- package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/tools.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/tools.md +15 -4
- package/references/official-docs/docs/subsystems/tools.zh.md +15 -4
- package/references/official-docs/docs/subsystems/typert.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/typert.md +147 -6
- package/references/official-docs/docs/subsystems/typert.zh.md +147 -6
- package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/user-questions.md +128 -1
- package/references/official-docs/docs/subsystems/user-questions.zh.md +129 -2
- package/references/official-docs/docs/subsystems/voice-input.i18n.yaml +19 -0
- package/references/official-docs/docs/subsystems/voice-input.md +164 -0
- package/references/official-docs/docs/subsystems/voice-input.zh.md +164 -0
- package/references/official-docs/docs/subsystems/web-client.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/web-client.md +10 -5
- package/references/official-docs/docs/subsystems/web-client.zh.md +10 -5
- package/references/official-docs/docs/subsystems/web-server.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/web-server.md +12 -4
- package/references/official-docs/docs/subsystems/web-server.zh.md +12 -4
- package/references/official-docs/docs/subsystems/web.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/webhook.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/webhook.md +1 -1
- package/references/official-docs/docs/subsystems/webhook.zh.md +1 -1
- package/references/official-docs/docs/subsystems/workflow.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/workflow.md +2 -2
- package/references/official-docs/docs/subsystems/workflow.zh.md +2 -2
- package/references/official-docs/docs/subsystems/workspace.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/workspace.md +175 -35
- package/references/official-docs/docs/subsystems/workspace.zh.md +175 -35
- package/references/official-docs/docs/testing.i18n.yaml +33 -5
- package/references/official-docs/docs/testing.md +2 -2
- package/references/official-docs/docs/testing.zh.md +2 -2
- package/references/official-docs/docs/tool-catalog.i18n.yaml +312 -5
- package/references/official-docs/docs/tool-catalog.md +321 -92
- package/references/official-docs/docs/tool-catalog.zh.md +321 -92
- package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +9 -5
- package/references/official-docs/docs/tool-execution-pipeline.md +6 -3
- package/references/official-docs/docs/tool-execution-pipeline.zh.md +6 -3
- package/references/official-docs/docs/ui-radius.i18n.yaml +31 -0
- package/references/official-docs/docs/ui-radius.md +115 -0
- package/references/official-docs/docs/ui-radius.zh.md +115 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.zh.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.md +25 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.zh.md +25 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.zh.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.md +23 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.zh.md +23 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.zh.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.md +27 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.zh.md +27 -0
- package/references/official-docs/docs/user/develop/basic/config.i18n.yaml +27 -5
- package/references/official-docs/docs/user/develop/basic/index.i18n.yaml +36 -5
- package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +30 -5
- package/references/official-docs/docs/user/develop/basic/publish.md +7 -1
- package/references/official-docs/docs/user/develop/basic/publish.zh.md +7 -1
- package/references/official-docs/docs/user/develop/basic/tool.i18n.yaml +15 -5
- package/references/official-docs/docs/user/develop/framework/events.i18n.yaml +45 -5
- package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +30 -5
- package/references/official-docs/docs/user/develop/framework/service.i18n.yaml +39 -5
- package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +9 -5
- package/references/official-docs/docs/user/develop/practice/index.i18n.yaml +45 -5
- package/references/official-docs/docs/user/develop/practice/llm-adapter.i18n.yaml +33 -5
- package/references/official-docs/docs/user/develop/practice/llm-adapter.md +1 -1
- package/references/official-docs/docs/user/develop/practice/llm-adapter.zh.md +1 -1
- package/references/official-docs/docs/user/guide/github-review.i18n.yaml +24 -5
- package/references/official-docs/docs/user/guide/index.i18n.yaml +18 -5
- package/references/official-docs/docs/user/guide/index.md +1 -0
- package/references/official-docs/docs/user/guide/index.zh.md +1 -0
- package/references/official-docs/docs/user/guide/mcp-memory.i18n.yaml +36 -5
- package/references/official-docs/docs/user/guide/network-proxy.i18n.yaml +24 -5
- package/references/official-docs/docs/user/guide/providers-custom-form.png +0 -0
- package/references/official-docs/docs/user/guide/providers-custom-form.zh.png +0 -0
- package/references/official-docs/docs/user/guide/providers-models-page.png +0 -0
- package/references/official-docs/docs/user/guide/providers-models-page.zh.png +0 -0
- package/references/official-docs/docs/user/guide/providers.i18n.yaml +36 -5
- package/references/official-docs/docs/user/guide/providers.md +88 -78
- package/references/official-docs/docs/user/guide/providers.zh.md +102 -92
- package/references/official-docs/docs/user/guide/public-deployments.i18n.yaml +19 -0
- package/references/official-docs/docs/user/guide/public-deployments.md +33 -0
- package/references/official-docs/docs/user/guide/public-deployments.zh.md +33 -0
- package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +27 -5
- package/references/official-docs/docs/user/guide/python-sdk.md +1 -1
- package/references/official-docs/docs/user/guide/python-sdk.zh.md +1 -1
- package/references/official-docs/docs/user/guide/schedule.i18n.yaml +30 -5
- package/references/official-docs/docs/user/guide/schedule.md +69 -11
- package/references/official-docs/docs/user/guide/schedule.zh.md +69 -11
- package/references/official-docs/docs/user/index.i18n.yaml +9 -5
- package/references/official-docs/docs/web-styling.i18n.yaml +18 -5
- package/references/official-docs/docs/web-styling.md +12 -3
- package/references/official-docs/docs/web-styling.zh.md +12 -3
- package/references/official-docs/packages/AGENTS.md +1 -2
- package/references/official-docs/packages/README.md +5 -5
- package/references/official-docs/vendor/README.md +6 -2
- package/references/official-docs/website-docs.ts +10 -3
- package/references/official-plugin-dev-skill.md +124 -0
- package/references/sources.md +10 -5
- package/scripts/archive-discussions.ps1 +9 -1
- package/scripts/build-llms-full.mjs +64 -0
- package/scripts/check-docs-drift.ps1 +1 -1
- package/scripts/sync-official-docs.ps1 +1 -1
- package/templates/js/icon.svg +4 -0
- package/templates/js/locale/en.json +6 -0
- package/templates/js/locale/zh.json +6 -0
- package/templates/js/package.json +9 -1
- package/templates/ts/icon.svg +4 -0
- package/templates/ts/locale/en.json +6 -0
- package/templates/ts/locale/zh.json +6 -0
- package/templates/ts/package.json +9 -1
- package/references/official-docs/docs/subsystems/invariants.i18n.yaml +0 -6
- package/references/official-docs/docs/subsystems/invariants.md +0 -88
- package/references/official-docs/docs/subsystems/invariants.zh.md +0 -88
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# DSH 插件生态实测:我怎么判断一个插件该不该继续做
|
|
2
|
+
|
|
3
|
+
> English: [when-to-retire-a-plugin.md](when-to-retire-a-plugin.md)
|
|
4
|
+
|
|
5
|
+
## 0. 我做了什么,为什么公开
|
|
6
|
+
|
|
7
|
+
2026-10-05,我把 npm 上的 DSH 生态全量拉了一遍(324 个真插件),把自己每个插件与同赛道对手比了周下载量:**3 个退役、7 个冻结、1 个改判**。公开判据,是因为「该不该继续维护」人人都会遇到,却大多无数据可依。
|
|
8
|
+
|
|
9
|
+
## 1. 判据
|
|
10
|
+
|
|
11
|
+
先讲清楚一件事:**这不是一次清理门户,是一次自我审计。** 官方没有要淘汰第三方插件——宿主 `CONTRIBUTING.md:19` 说,官方仓里的包并不天然比社区包更重要;官方展示的作用是「一个想法、一次官方展示、一种灵感来源,但不是来自我们的命令」。压力来自第三方作者。这一点在第 3 节用数据说。
|
|
12
|
+
|
|
13
|
+
**两条硬标准。**
|
|
14
|
+
|
|
15
|
+
**硬标准 A:同一能力已被官方做进内核。** 措辞很重要。不是「官方有一个同名包」,而是「官方**默认挂载**」或「官方已把它做成**一等子系统**」。这两者的差别,是这次审查里最容易搞错的地方。
|
|
16
|
+
|
|
17
|
+
**硬标准 B:同能力面上,第三方存在采用度显著更高的实现。** 「显著」量级定为「高出一个数量级」。判据只用同生态内的**相对**量级,不用绝对值。
|
|
18
|
+
|
|
19
|
+
**一条软标准。**
|
|
20
|
+
|
|
21
|
+
**软标准 C:维护成本 vs 真实使用者数。** 这条最容易被误用。我现在自己的 Web profile 跑的是 stock 组合,一个家族插件都不装。所以「我还用不用」不能当判据——这批仓对我来说是**发布物**,不是**自用工具**。能当判据的是两句话:**对外是否还有人需要**,和**这份维护成本是否还值**。
|
|
22
|
+
|
|
23
|
+
**一条元规则。**
|
|
24
|
+
|
|
25
|
+
**只承认文件级证据。** 任何结论必须能指到具体文件、具体行,或具体的 npm / GitHub API 读数;指不到的一律标「未证实」,不进决策。这条规则在本轮纠正了 4 处我原本的前提,其中两处直接关于「官方到底有没有这个能力」——一处是官方做了、只是没挂载,另一处是官方挂了、而我原以为没有。
|
|
26
|
+
|
|
27
|
+
**三档处置。**
|
|
28
|
+
|
|
29
|
+
| 档位 | 数量 | 包 | 含义 |
|
|
30
|
+
|---|---|---|---|
|
|
31
|
+
| 🪦 **退役** | 3 | `dsh-background-agents`、`dsh-session-pin`、`dsh-team-rooms` | **停止兼容性更新**:README 顶部 RETIRED 横幅、npm 已 `deprecate`、GitHub 仓已归档(只读) |
|
|
32
|
+
| 🧊 **冻结** | 7 | `dsh-budget`、`dsh-memento`、`dsh-draw`、`dsh-claude-move`、`dsh-reach`、`dsh-wechat`、`dsh-defend` | **不发新功能;但仍然可用、没有废弃**,只有真实故障才修 |
|
|
33
|
+
| ✅ **改判** | 1 | `dsh-catalog` | 原本判退役,复核后改判:它是家族内部工具,不与第三方目录竞争,**继续维护** |
|
|
34
|
+
|
|
35
|
+
另有两支早期走廊线 `dsh-plugin-upgrade-015`(停在 npm `0.1.1`)与 `dsh-plugin-upgrade-016`(从未发布)已退役;插件升级由 `dsh-plugin-upgrade` 一条线独家继续。
|
|
36
|
+
|
|
37
|
+
## 2. 数据(一):3 个退役
|
|
38
|
+
|
|
39
|
+
这一档基本只用了硬标准 A。
|
|
40
|
+
|
|
41
|
+
| 包 | 官方对应物 | 判定依据 |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| `dsh-background-agents` | `tool-subagent`(`backgroundMode: continuable`)+ `tool-subagent-control` + `tool-jobs` | 官方**默认挂载**。而且这个包**自己的 README 已经写了**:后台代理那一半 *superseded by DSH's native continuable subagents* |
|
|
44
|
+
| `dsh-session-pin` | `client-ui-workspace` 的 pin action | 官方**默认挂载**:会话右键菜单有 `Pin session`、行悬停有 pin 按钮、支持在置顶块内拖拽排序、宿主侧持久化 `pinnedSessionIds` 并广播 `pinned` 增量帧。插件这边剩下的只有行颜色 / 置顶面板 / 头部总开关这类外观增强 |
|
|
45
|
+
| `dsh-team-rooms` | `dsh-experimental-agent-team` | 官方把「团队」做成**一等子系统**:隐式根 roster、持久邮箱(离线成员恢复后收信、去重)、共享任务 DAG(CAS 防覆盖、依赖解锁、文件写冲突告警)、`wait_agent`。**同时**满足硬标准 B:自身周下载 **589(家族最低)**,第三方 `@nanmicoder/dsh-agent-teams` **13,273(22×)** |
|
|
46
|
+
|
|
47
|
+
关于 `dsh-team-rooms` 有一处必须说清楚:官方那个 `dsh-experimental-agent-team` 是**可选项**,base 里默认 `disabled`,而且启用时**要求禁用** `send_message` / `interrupt_agent` / `list_agents`。所以它不是「默认挂载式」的覆盖。它进内核、加上第三方 22× 的采用度,两条合起来才是这条判据成立的原因。
|
|
48
|
+
|
|
49
|
+
一处不好看的数据我照实写:`dsh-session-pin` 在官方内置 pin 之后**仍有 1,015 周下载**。报告给了两种解释——外观增强确实有真实需求,或者下载量口径本身有噪声。我无法从现有数据里区分这两者,所以按判据退役,但把这个数字留在这里。
|
|
50
|
+
|
|
51
|
+
## 3. 数据(二):7 个冻结 —— 倍数表
|
|
52
|
+
|
|
53
|
+
采集时间 2026-10-05,来源 npm registry API。**先说口径**:npm 周下载量**不等于用户数**(含 CI、镜像、重复安装),所以下表只用**包与包之间的相对量级**,不用绝对值。
|
|
54
|
+
|
|
55
|
+
| 能力面 | 我的包(周下载) | 同赛道第三方(周下载) | 倍数 | 对手强在哪 |
|
|
56
|
+
|---|---|---|---|---|
|
|
57
|
+
| 成本 / 用量计费 | `dsh-budget` 1,079 | **`dsh-cost-meter` 33,526** | **31×** | 170+ 模型价目、11 家 Coding Plan 额度查询 |
|
|
58
|
+
| 跨会话记忆 | `dsh-memento` 1,202 | **`@openviking/dsh-memory-plugin` 10,160** | **8×** | 字节跳动 volcengine 官方组织仓,有公司级资源投入 |
|
|
59
|
+
| IM 桥接 | `dsh-reach` ~0.6k / `dsh-wechat` 752 | **`@xmanrui/dsh-im` 17,384** | **23×** | 一个包覆盖 10 个通道(微信 / 飞书 / 企微 / 钉钉 / QQ / TG / WA / Slack / Discord / Matrix) |
|
|
60
|
+
| 注入与破坏性命令防护 | `dsh-defend` 937 | **`cc-safety-net` 13,087** | **14×** | 作为 coding-agent CLI hook 直接拦破坏性命令与密钥文件访问,接入路径短、覆盖人群广 |
|
|
61
|
+
| 图像生成 | `dsh-draw` 973 | **`dsh-image-gen` 7,216** | **7×** | 多供应商 |
|
|
62
|
+
| 会话 / 配置迁移 | `dsh-claude-move` 843 | **`dsh-chat-import` 5,111** | **6×** | 覆盖 25+ 个 AI coding agent |
|
|
63
|
+
|
|
64
|
+
**补四条背景读数。**
|
|
65
|
+
|
|
66
|
+
- **生态盘子。** 两个关键词交叉取并集:8,620 条命中、772 个候选,逐个核对 `dsh` 字段确认真插件 **324 个**。(口径说明:这个数**只算 npm 上声明了 `dsh` 清单、真的能被 `dsh plugin add` 装上的包**。社区目录站公布的条目数会高得多——它们把 GitHub 仓、子目录、未发布的候选都计进去,所以两个数字不该互相引用,也不该相加。)
|
|
67
|
+
- **不是个别现象。** **16 个能力面里,我的包在 14 个面上不是第一**,多数落后 **3–31 倍**;差距最大的一处在上下文洞察面:`dsh-fast` 917 对 `dsh-context` 38,999(**43×**)。
|
|
68
|
+
- **家族内第一不等于赛道第一。** `dsh-mcp-panel` 2,472 是家族内第一,但同赛道 `dsh-mcp-connector` 是 7,556(3×)。
|
|
69
|
+
- **没有一个是放任不管的仓。** 在这份报告之前,全部相关仓在 2026-10-05 当天都还有推送。退役和冻结是一次**主动判断**,不是清理死项目。
|
|
70
|
+
|
|
71
|
+
**为什么是这 7 个?** 它们同时满足两件事:对手不只是下载量更高,而是**在能力面上做得更宽**(多供应商 / 多通道 / 多 agent / 官方组织资源);而我在这些面上继续投入,已经不太可能产出「只有我能给」的东西。
|
|
72
|
+
|
|
73
|
+
也有两个反例必须一起说,否则判据会变成「落后就退」:
|
|
74
|
+
|
|
75
|
+
- **`dsh-fast`(917 对 `dsh-context` 38,999,43×)留在现状。** 它是轻量包,维护成本本就低,冻结省不下多少力气。**落后不是判据。**
|
|
76
|
+
- **硬标准 A 不成立、只成立硬标准 B,也足以冻结。** `dsh-draw` 这类包,官方对应物是**零**(`text-to-image` / `image_gen` / `txt2img` 在宿主全仓 0 命中),`dsh-memento` 也一样(官方 `capability-seams.md` 里没有 memory seam,`docs/user/guide/mcp-memory.md:5,31` 明写 shipped composition 里**没有** memory server)。**「官方没做」不等于「我该继续重投」**——记忆赛道至少有 10 个对手,`dsh-memento` 大概排在第 8 位。
|
|
77
|
+
|
|
78
|
+
## 4. 我在哪些面仍然第一
|
|
79
|
+
|
|
80
|
+
只列输的那一半,是误导。这一节是同时期的「仍然只有我」清单(2026-10-05):
|
|
81
|
+
|
|
82
|
+
| 能力面 | 我的包(周下载) | 状态 |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| LSP 动作面 | `dsh-lsp-actions` **1,170** | **全生态无强力对手**。官方 LSP **刻意排除** rename / formatting / diagnostics / symbol 列表 |
|
|
85
|
+
| 插件认证 / 体检 / 评分 | `dsh-plugin-doctor` 218、`dsh-score`、`dsh-test-drive`、`dsh-plugin-certification` | **无对手**。生态里只有 `dsh-why`(137)、`dsh-fix`(1,503)这类「修坏插件」,不是评分体系 |
|
|
86
|
+
| 研究 / 报告引擎 | `dsh-research-report` 1,019、`dsh-industry-research` 926、`dsh-fund-research` 802 | **基本无对手**(垂直领域) |
|
|
87
|
+
| 数据质量 | `dsh-data-quality` 769 | 接近的只有 `dsh-data-cleaning-agent` |
|
|
88
|
+
| 声明式权限 + 网络策略 | `dsh-permission-rules` **1,459** | 下载量上 `dsh-perm-gate` 1,851 **略高**(报告原文标注为「对手略高」);但**进程级 HTTP / CONNECT 代理网络策略**无人复制 |
|
|
89
|
+
| GitHub CI 自动化 | `dsh-github` 359 | 无对手(也是最低的一个,但确实没人在做) |
|
|
90
|
+
|
|
91
|
+
两条交叉验证:
|
|
92
|
+
|
|
93
|
+
- **star 冠军不是旗舰安全插件,是研究线。** `dsh-research-report` 215★ 与 `dsh-industry-research` 212★ 都高于 `dsh-memento` 139★、`dsh-permission-rules` 118★、`dsh-mcp-panel` 75★。
|
|
94
|
+
- **「官方没有」和「第三方没做」是两件独立的事。** 报告确认官方至今为零的面至少有 8 个(`dsh-defend`、`dsh-mask`、`dsh-budget`、`dsh-draw`、`dsh-translate`、`dsh-library`、`dsh-autotier`、`dsh-plugin-*` 工具链)——其中一部分被第三方占了,一部分还空着。**空缺本身不是护城河;没人在做、且我做得动,才是。**
|
|
95
|
+
|
|
96
|
+
## 5. 「冻结」不等于「废弃」
|
|
97
|
+
|
|
98
|
+
这一节是写给使用者的。
|
|
99
|
+
|
|
100
|
+
| 状态 | 会删包 / 撤版吗 | 还会修 bug 吗 | npm 状态 | 仓库状态 |
|
|
101
|
+
|---|---|---|---|---|
|
|
102
|
+
| 🪦 **退役**(3 个) | 不会 | **不会**(含兼容性更新) | 已 `deprecate` | 已归档,只读 |
|
|
103
|
+
| 🧊 **冻结**(7 个) | 不会 | **会**——但只有当宿主破坏性变更让它完全不可用时,才做最小兼容修复 | 正常,**没有** deprecated | 正常,**未归档** |
|
|
104
|
+
| 其余 | 不会 | 会 | 正常 | 正常 |
|
|
105
|
+
|
|
106
|
+
**已安装的用户该怎么做:什么都不用做。** 冻结的 7 个照常安装、照常运行,接口不变、版本不撤。只有当某次宿主升级真的把它弄坏了才需要动作——那种情况请开 issue,我会修。**如果你要的是新功能,请去用第 3 节表里那些对手**——它们在各自赛道上的采用度都明显更高,这也是我冻结自己这几个包的原因。
|
|
107
|
+
|
|
108
|
+
**为什么不用「删包」表达态度?** 因为删了之后,下一个人搜不到这个包,也看不到退役原因。所以家族表**行不删、只加状态备注**:退役与冻结的仓全部保留在每一张家族表里,用状态列标注 `🚫 已退役` / `🧊 已冻结`,描述原文照旧。
|
|
109
|
+
|
|
110
|
+
## 6. 给其他插件作者的 8 个自查问题
|
|
111
|
+
|
|
112
|
+
1. **官方是「有这个包」,还是「默认挂载」?** 官方 `experimental/*`、`computer-use`、`browser-use`、`lsp`、`speech-to-text` **都不在 stock 组合里**。「官方有包」不等于「用户装完就有」。
|
|
113
|
+
2. **`base` 里有这一行,等于用户有这个能力吗?** 不一定。Web 补丁会把 base 进程级挂载的模型面向工具行**逐条 disable**,再交给每个 agent preset 重新挂载。只查 `base/cordis.patch.yml` 会得出偏乐观的结论。
|
|
114
|
+
3. **你搜对手时用的是能力关键词,还是包名?** 只比包名会漏掉全部对手:`dsh-cost-meter` 与 `dsh-budget` 名字完全不同,`cc-safety-net` 与 `dsh-defend` 也是。
|
|
115
|
+
4. **同名等于同一件事吗?** 官方 `dsh-experimental-auto-review` 与 `dsh-auto-review` 同名,但安全模型相反:官方用当前 agent 自己的 provider / model,并自述 *can allow unsafe actions, deny useful work, and spend additional tokens*,没有确定性豁免、没有持久授权;我的是独立只读的第二模型 reviewer,失败即 **fail-closed**。这不算被替代。
|
|
116
|
+
5. **你的下载量能被第二个信号验证吗?** `dsh-budget` 周下载 1,079,star 只有 **10**——高下载更像 CI / 镜像噪声,低 star 才是真实吸引力。反过来 `dsh-auto-review` 有 **10 个 open issue**,那是真有人在用、在报障。单看下载量会骗人。
|
|
117
|
+
6. **「我还在用吗」是不是你的判据?** 如果不用了,它不该当判据(我的 Web profile 现在就跑 stock 组合)。换成这两句:**对外是否还有人需要?维护成本是否还值?**
|
|
118
|
+
7. **落后多少倍才该退?** 没有阈值。`dsh-fast` 落后 43× 留在现状,`dsh-defend` 落后 14× 被冻结。冻结要付的代价是「承认自己不再是这条赛道最好的选择」,所以只值得对「继续投入也不会产出独特东西」的包付这个代价。
|
|
119
|
+
8. **你的决定写进 README 了吗?** 只写在脑子里、或只写在一份内部报告里,等于没写。冻结的 7 个各自有 `## Maintenance status: 🧊 FROZEN` 一节,含实测对比表与「对手强在哪」的说明;退役的 3 个 README 顶部有 RETIRED 横幅。**使用者至少应该能从 README 里知道你为什么不做了。**
|
|
120
|
+
|
|
121
|
+
## 7. 事实陈述
|
|
122
|
+
|
|
123
|
+
- **家族现状**:家族表现在列 **44 个插件仓**(含 `dsh-plugin-upgrade-015` 的表为 45 行),其中 🚫 **已退役 3 个**、🧊 **已冻结 7 个**,其余按活跃仓维护。许可以 Apache-2.0 为主。
|
|
124
|
+
- **仓库位置**:https://github.com/PerryLink
|
|
125
|
+
- **数据采集时间**:2026-10-05。来源为那份自查报告——npm registry API 全量拉取、GitHub REST API 实测、宿主源码逐文件取证。**结论是可复核的**:每一条都能指到具体文件或具体 API 读数,指不到的一律标「未证实」。
|
|
126
|
+
|
|
127
|
+
最后一句,说给可能想接手的人:**`dsh-reach` 与 `dsh-wechat` 这两条 IM 桥接线,欢迎接手维护。** 它们被冻结的理由很具体——`@xmanrui/dsh-im` 在一个包里覆盖了 10 个通道,那是一件比我做得好的事。如果这两条线对你有用,而你想让它们继续长下去,两个仓都是宽松许可(`dsh-reach` 为 Apache-2.0、`dsh-wechat` 为 MIT),欢迎开 issue 谈接手。
|
package/icon.svg
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64" role="img" aria-label="dsh-plugin-guide">
|
|
2
|
+
<rect width="64" height="64" rx="14" fill="#0b6bcb" />
|
|
3
|
+
<path d="M14 20h36v5H14zM14 30h24v5H14zM14 40h30v5H14z" fill="#ffffff" />
|
|
4
|
+
<circle cx="48" cy="32" r="5" fill="#ffd166" />
|
|
5
|
+
</svg>
|
package/locale/en.json
ADDED
package/locale/zh.json
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-plugin-guide",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.23",
|
|
4
4
|
"description": "The dsh-plugin-guide knowledge base plus the dsh-plugin-dev CLI toolchain: official docs, Cordis primer, community deep-dives, and battle-tested pitfalls registered as an on-demand agent skill, with a scaffolder, static checker, and pack verifier for building DSH plugins.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
},
|
|
10
10
|
"exports": {
|
|
11
11
|
".": "./index.js",
|
|
12
|
-
"./package.json": "./package.json"
|
|
12
|
+
"./package.json": "./package.json",
|
|
13
|
+
"./locale/*.json": "./locale/*.json",
|
|
14
|
+
"./icon": "./icon.svg"
|
|
13
15
|
},
|
|
14
16
|
"files": [
|
|
15
17
|
"index.js",
|
|
@@ -17,10 +19,11 @@
|
|
|
17
19
|
"dist",
|
|
18
20
|
"templates",
|
|
19
21
|
"cordis.patch.yml",
|
|
22
|
+
"locale/*.json",
|
|
23
|
+
"icon.svg",
|
|
20
24
|
"SKILL.md",
|
|
21
25
|
"guide",
|
|
22
|
-
"references",
|
|
23
|
-
"scripts",
|
|
26
|
+
"references", "scripts",
|
|
24
27
|
"LICENSE",
|
|
25
28
|
"NOTICE.md",
|
|
26
29
|
"README.md",
|
|
@@ -53,6 +56,7 @@
|
|
|
53
56
|
"typecheck:checkout": "tsc -p tsconfig.checkout.json --noEmit",
|
|
54
57
|
"test": "vitest run",
|
|
55
58
|
"check:readmes": "node scripts/check-readme-sync.mjs",
|
|
59
|
+
"build:llms": "node scripts/build-llms-full.mjs",
|
|
56
60
|
"check:kit": "pwsh -File scripts/verify-kit.ps1",
|
|
57
61
|
"verify:artifacts": "node scripts/verify-artifacts.mjs",
|
|
58
62
|
"verify:self-contained": "pnpm run build && node dist/dsh-plugin-dev.js verify",
|
|
@@ -8,6 +8,8 @@ Public APIs are pre-stable; update every consumer. Follow [version/status](docs/
|
|
|
8
8
|
|
|
9
9
|
Acknowledge [declared persistence-type changes](docs/cookbook/reviewing-persistence-type-changes.md).
|
|
10
10
|
|
|
11
|
+
Record each externally perceptible breaking change immediately in an [upgrade guide](.agents/skills/dsh-create-upgrade-guide/SKILL.md).
|
|
12
|
+
|
|
11
13
|
**Application launch.** Only `dsh` profiles launch supported Node apps; package bins, demos, and public SDK argv escapes are forbidden ([rule](docs/architecture.md#application-launch)).
|
|
12
14
|
|
|
13
15
|
## Repository layout
|
|
@@ -66,7 +68,6 @@ packages/ @deepseek-ai/dsh-<pkg> workspaces at packages/<group>/<pkg>/
|
|
|
66
68
|
mcp/ external tools
|
|
67
69
|
experimental/ pre-stable prototypes; public by default with explicit private exceptions
|
|
68
70
|
test-support/ test infrastructure
|
|
69
|
-
runtime-diagnostics/ runtime invariants
|
|
70
71
|
util/ zero-dependency utilities
|
|
71
72
|
python/ Python SDK/runtime (python/README.md)
|
|
72
73
|
native/ @deepseek-ai/node-addon-system source (native/README.md)
|
|
@@ -101,6 +102,8 @@ pnpm run test:docs # quick documentation checks (no build; doc-quick aggreg
|
|
|
101
102
|
pnpm run website:build # VitePress build (doubles as dead-link check)
|
|
102
103
|
pnpm dsh --profile headless "task" # run one task from source (needs DEEPSEEK_API_KEY)
|
|
103
104
|
pnpm run demo:ptc -- "task" # headless PTC mode run (needs key)
|
|
105
|
+
pnpm run dev:web | dev:desktop # build, then launch; Web also rebuilds client bundles on edits. start:web | start:desktop skip the build
|
|
106
|
+
make web|dev-web|desktop|dev-desktop|build # the same commands; ARGS='--no-open' forwards options
|
|
104
107
|
```
|
|
105
108
|
|
|
106
109
|
### Host sandbox failures
|
|
@@ -124,11 +127,10 @@ Real-API tests/demos read `DEEPSEEK_API_KEY`, optional `DEEPSEEK_BASE_URL`, and
|
|
|
124
127
|
|
|
125
128
|
## Conventions
|
|
126
129
|
|
|
127
|
-
-
|
|
130
|
+
- Packages use `@deepseek-ai/dsh-<name>`; vendor is [rescoped](docs/rescope.md) and `private: true`. Harness packages declare `@deepseek-ai/cordis` in `peerDependencies`/`devDependencies`. Workspace dependency sections use DSH `workspace:*`, vendor/native `workspace:~` ([rules](.agents/notes/implemented/process/2026-08-10-npm-release-sequences.md)).
|
|
128
131
|
- ESM everywhere (`"type": "module"`). Use package names across packages and `.ts` in local relative imports. Config subprocesses run built `lib/` under plain Node; source regressions use their declared launcher ([testing policy](docs/testing.md#test-subprocess-launch-modes)). The `dsh` CLI source launch runs through tsx's ESM-only hook (`node --import tsx/esm`); modules it reaches must stay ESM (no CJS-only exports) — Node's native TypeScript modes are unavailable across the engines range ([source-launch contract](.agents/notes/implemented/architecture/2026-07-29-dsh-source-launch-tsx-esm.md)). Raw/Web `cordis.yml` bare plugins must appear in their resolver manifest's `dependencies`; `verify-cordis-config` enforces it.
|
|
129
132
|
- **Registrations are effects**: every contribution goes through `ctx.effect()` / `ctx.on()`; a registry's `register()` returns the disposer.
|
|
130
|
-
- **
|
|
131
|
-
- **Typed events use declaration merging** and merge-extensible maps. Event JSDoc needs `@mode` and payload `@param`; scoped keys absent from payloads need `@dshScopeScan unsupported`. Public service methods document parameters and non-void returns. `SessionEventMap` members are required-on-read by default — builds that do not know a type refuse the log unless the event carries the envelope's `ignorable: true`; only structural format changes bump `SESSION_FORMAT_VERSION` ([mechanism](.agents/notes/implemented/architecture/2026-08-10-session-log-version-mechanism.md)).
|
|
133
|
+
- **Typed events use declaration merging** and merge-extensible maps. Event JSDoc needs `@mode` and payload `@param`. Public service methods document parameters and non-void returns. `SessionEventMap` members are required-on-read by default — builds that do not know a type refuse the log unless the event carries the envelope's `ignorable: true`; only structural format changes bump `SESSION_FORMAT_VERSION` ([mechanism](.agents/notes/implemented/architecture/2026-08-10-session-log-version-mechanism.md)).
|
|
132
134
|
- **Switch on discriminant tags.** Closed unions end in `assertNever`; merge-extensible unions fall through a documented default.
|
|
133
135
|
- **Waterfall listeners MUST call `next()`** to delegate; returning without it short-circuits the chain ([semantics](docs/cordis-primer.md#cordis-waterfall-semantics)).
|
|
134
136
|
- **Model-visible ⟺ logged**: anything that reaches a model request must be reconstructable from the session log; a new model-visible input requires a session event.
|
|
@@ -140,10 +142,11 @@ Real-API tests/demos read `DEEPSEEK_API_KEY`, optional `DEEPSEEK_BASE_URL`, and
|
|
|
140
142
|
- **Misconfiguration fails loud** at load when self-contained, otherwise at the earliest resolvable point; never silently skip a missing referent.
|
|
141
143
|
- **Opaque cross-boundary ids are branded** (`Branded<B>` from `dsh-brand`), never bare `string`.
|
|
142
144
|
- **Trust TypeScript at typed same-process boundaries.** Do not add runtime validation, fallback behavior, or hostile-input tests solely for values the static interface requires; validate at parser/config, queued, model/tool JSON, durable/file, worker, process, and wire boundaries.
|
|
145
|
+
- **No new assertions to `unknown`** (`as unknown` or `<unknown>`). Preserve or reduce the exact legacy baseline; use typed values or validation for replacements ([rule](.agents/notes/implemented/process/2026-09-19-no-unknown-casts.md)).
|
|
143
146
|
- **Source plane vs artifact plane, never mixed.** Static gates and tests resolve workspace imports through tsconfig `paths` to `src` and pass on a clean tree; gates consuming built `lib/` declare that dependency ([layout](docs/development.md#typescript-project-layout)).
|
|
144
147
|
- **Keep compiler faces explicit.** A package with both Host and Client programs exposes face-specific leaf configs and a solution-only root; repo-wide programs seed a face config, never the root solution ([layout](docs/development.md#typescript-project-layout)).
|
|
145
148
|
- **An empty `catch` names the error** and why; keep its `try` to one statement.
|
|
146
|
-
- **Keep comments local.** Do not restate code, expand unrelated comments, or explain distant behavior without local need ([rationale](.agents/
|
|
149
|
+
- **Keep comments local.** Do not restate code, expand unrelated comments, or explain distant behavior without local need ([rationale](.agents/skills/dsh-prose-standard/SKILL.md)).
|
|
147
150
|
- **Ban `prove` + `nance`** ([rule](.agents/notes/implemented/process/2026-08-26-ban-ambiguous-origin-label.md)).
|
|
148
151
|
- **Prefer symmetry for parallel values**; unexplained asymmetry usually signals a missed extraction.
|
|
149
152
|
- **Tests describe behavior, not correctness.** Change obsolete behavior with its tests; explain why in the PR.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
# Bilingual-pair consistency record (docs/i18n/README.md):
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Bilingual-pair consistency record for CONTRIBUTING.md (docs/i18n/README.md): per heading
|
|
2
|
+
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
|
3
|
+
# After editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write CONTRIBUTING.md
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/contributing:
|
|
6
|
+
en: 08d2f421ff3617f4
|
|
7
|
+
zh: 9d060d70ad186dc5
|
|
@@ -1,6 +1,34 @@
|
|
|
1
|
-
# Bilingual-pair consistency record (docs/i18n/README.md):
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading
|
|
2
|
+
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
|
3
|
+
# After editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write README.md
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/deepseek-harness:
|
|
6
|
+
en: f68c4f080ce55ff2
|
|
7
|
+
zh: 88a76d7f7f0b260e
|
|
8
|
+
/deepseek-harness/developer-preview:
|
|
9
|
+
en: 4ef4d8a71ac143f0
|
|
10
|
+
zh: 1bfc3149ba8e5543
|
|
11
|
+
/deepseek-harness/run:
|
|
12
|
+
en: 4e0248e4c6474fc6
|
|
13
|
+
zh: eb2fb8d78c7d6bc0
|
|
14
|
+
/deepseek-harness/run/run-from-npm:
|
|
15
|
+
en: e22005cd42e6cbad
|
|
16
|
+
zh: 0f536f4208df1d60
|
|
17
|
+
/deepseek-harness/run/run-from-source:
|
|
18
|
+
en: 819e3f7c144d0d64
|
|
19
|
+
zh: de815f040975dba7
|
|
20
|
+
/deepseek-harness/community-and-support:
|
|
21
|
+
en: 20acf6451fdc869b
|
|
22
|
+
zh: d06246dd019ecef7
|
|
23
|
+
/deepseek-harness/contributing:
|
|
24
|
+
en: cabc2d3e9f8898bd
|
|
25
|
+
zh: 83b6d238bae29ce3
|
|
26
|
+
/deepseek-harness/development:
|
|
27
|
+
en: 803ca2b11b497bed
|
|
28
|
+
zh: 8b4071eb0e7783ef
|
|
29
|
+
/deepseek-harness/citation:
|
|
30
|
+
en: 6704e9e5a8d49a91
|
|
31
|
+
zh: 85c9cdd8d56f8e9d
|
|
32
|
+
/deepseek-harness/license:
|
|
33
|
+
en: 926995344fc1c72b
|
|
34
|
+
zh: c92fab5abf85932f
|
|
@@ -48,19 +48,17 @@ pnpm dsh web
|
|
|
48
48
|
|
|
49
49
|
- 通过 [GitHub Discussions](https://github.com/deepseek-ai/deepseek-harness/discussions) 提交反馈或 bug 报告。
|
|
50
50
|
- 为你的插件仓库添加 [`dsh-plugin`](https://github.com/topics/dsh-plugin) 话题,便于被发现。
|
|
51
|
-
- 欢迎加入 DeepSeek Harness
|
|
51
|
+
- 欢迎加入 DeepSeek Harness 企微群!扫描下方二维码填写入群问卷,小助手会定期发送入群邀请。
|
|
52
52
|
|
|
53
53
|
<table>
|
|
54
54
|
<thead>
|
|
55
55
|
<tr>
|
|
56
|
-
<th align="center">企微小助手</th>
|
|
57
56
|
<th align="center">入群问卷</th>
|
|
58
57
|
<th align="center">微信公众号</th>
|
|
59
58
|
</tr>
|
|
60
59
|
</thead>
|
|
61
60
|
<tbody>
|
|
62
61
|
<tr>
|
|
63
|
-
<td align="center"><img src="https://cdn.deepseek.com/harness/readme/community-wecom-assistant.png" alt="DeepSeek Harness 企微小助手二维码" width="180" height="180"></td>
|
|
64
62
|
<td align="center"><a href="https://trtgsjkv6r.feishu.cn/share/base/form/shrcnIt5twSVdLGD52KJBckGCgg"><img src="https://cdn.deepseek.com/harness/readme/community-wecom-survey.png" alt="DeepSeek Harness 入群问卷二维码" width="180" height="180"></a></td>
|
|
65
63
|
<td align="center"><img src="https://cdn.deepseek.com/harness/readme/community-wechat-official-account.png" alt="DeepSeek Harness 团队微信公众号二维码" width="180" height="180"></td>
|
|
66
64
|
</tr>
|
|
@@ -75,6 +73,8 @@ pnpm dsh web
|
|
|
75
73
|
|
|
76
74
|
请先阅读[开发指南](docs/development.zh.md)与[架构文档](docs/architecture.zh.md)。
|
|
77
75
|
|
|
76
|
+
`pnpm run dev:web` 会在一个终端里完成构建、启动,并在源码修改时重建 client bundle;`make help` 列出 Web 与 Desktop 对应的 Make target。完整表格见开发指南的「应用命令」一节。
|
|
77
|
+
|
|
78
78
|
面向 agent:请遵循 [AGENTS.md](AGENTS.md)。
|
|
79
79
|
|
|
80
80
|
## 引用
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
|---|---|
|
|
8
8
|
| Source checkout | `D:\deepseek-harness` |
|
|
9
9
|
| Source ref | `origin/master` |
|
|
10
|
-
| Source commit | `
|
|
11
|
-
| Synced at (UTC) | 2026-
|
|
10
|
+
| Source commit | `5badb15009ae1756c3afe0ae0cef1faafc290ccc` |
|
|
11
|
+
| Synced at (UTC) | 2026-10-06T11:33:47Z |
|
|
12
12
|
| Scope | tracked files at the ref: `docs/`, root `AGENTS.md`, `BENCHMARK.md`, `CLAUDE.md` (symlink target text), `CONTRIBUTING.md`/`.zh.md`/`.i18n.yaml`, `README.zh.md`/`.i18n.yaml` (the upstream English `README.md` is not in this dir; its snapshot lives in `downloads/github/harness/README.md`), `THIRD_PARTY_NOTICES.md`, `LICENSE`, `packages/AGENTS.md`, `packages/README.md`, `vendor/README.md`, `website/docs.ts` |
|
|
13
|
-
| File counts | docs/:
|
|
13
|
+
| File counts | docs/: 369 md files (182 .zh.md pairs) |
|
|
14
14
|
| Pruned this run | 15 out-of-scope/upstream-deleted entries |
|
|
15
15
|
|
|
16
16
|
Drift check: `pwsh -File scripts/verify-kit.ps1 -Checkout <checkout>` (tracked files only).
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
DeepSeek Harness is licensed under [MIT](LICENSE). It depends on the third-party software listed below. Each project remains under its own license; nothing in this file changes those terms.
|
|
7
7
|
|
|
8
|
-
This file lists **direct** dependencies declared by the workspace, the explicitly disclosed official Claude Code platform payload closure, and the
|
|
8
|
+
This file lists **direct** dependencies declared by the workspace, the explicitly disclosed official Claude Code platform payload closure, and the Bundled Python distributions. It is generated by `scripts/gen-third-party-notices.ts`: a pre-commit hook regenerates it whenever a staged file changes one of its inputs, and `scripts/gen-third-party-notices.spec.ts` asserts in the test lane that the committed bytes match. Deleting a manifest runs no hook, so that case is caught by the assertion instead. Run `pnpm run verify-third-party-notices` for the standalone check.
|
|
9
9
|
|
|
10
10
|
The complete npm transitive closure, including the Landlock launcher workspace, is recorded with exact pinned versions in [`pnpm-lock.yaml`](pnpm-lock.yaml) — inspect it with `pnpm licenses list`. The Python SDK closure is recorded separately in [`python/sdk/uv.lock`](python/sdk/uv.lock).
|
|
11
11
|
|
|
@@ -36,10 +36,14 @@ External packages installed for runtime use or distributed inside the prebuilt b
|
|
|
36
36
|
| [`@anthropic-ai/sdk`](https://github.com/anthropics/anthropic-sdk-typescript) | MIT |
|
|
37
37
|
| [`@babel/code-frame`](https://github.com/babel/babel) | MIT |
|
|
38
38
|
| [`@browserbasehq/stagehand`](https://github.com/browserbase/stagehand) | MIT |
|
|
39
|
-
| [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-
|
|
39
|
+
| [`@deepseek-ai/libreoffice-kit`](https://github.com/deepseek-ai/dsh-libreoffice-kit) | MPL-2.0 |
|
|
40
40
|
| [`@earendil-works/pi-ai`](https://github.com/earendil-works/pi) | MIT |
|
|
41
|
+
| [`@eslint-community/regexpp`](https://github.com/eslint-community/regexpp) | MIT |
|
|
42
|
+
| [`@fortune-sheet/core`](https://github.com/ruilisi/fortune-sheet) | MIT |
|
|
43
|
+
| [`@fortune-sheet/react`](https://github.com/ruilisi/fortune-sheet) | MIT |
|
|
41
44
|
| [`@joplin/turndown-plugin-gfm`](https://github.com/laurent22/joplin-turndown-plugin-gfm) | MIT |
|
|
42
45
|
| [`@jridgewell/gen-mapping`](https://github.com/jridgewell/sourcemaps) | MIT |
|
|
46
|
+
| [`@js-temporal/polyfill`](https://github.com/js-temporal/temporal-polyfill) | ISC |
|
|
43
47
|
| [`@lexical/history`](https://github.com/facebook/lexical) | MIT |
|
|
44
48
|
| [`@lexical/plain-text`](https://github.com/facebook/lexical) | MIT |
|
|
45
49
|
| [`@lexical/text`](https://github.com/facebook/lexical) | MIT |
|
|
@@ -51,8 +55,9 @@ External packages installed for runtime use or distributed inside the prebuilt b
|
|
|
51
55
|
| [`@openai/codex`](https://github.com/openai/codex) | Apache-2.0 |
|
|
52
56
|
| [`@opentelemetry/api`](https://github.com/open-telemetry/opentelemetry-js) | Apache-2.0 |
|
|
53
57
|
| [`@opentelemetry/api-logs`](https://github.com/open-telemetry/opentelemetry-js) | Apache-2.0 |
|
|
54
|
-
| [`@opentelemetry/
|
|
58
|
+
| [`@opentelemetry/core`](https://github.com/open-telemetry/opentelemetry-js) | Apache-2.0 |
|
|
55
59
|
| [`@opentelemetry/otlp-exporter-base`](https://github.com/open-telemetry/opentelemetry-js) | Apache-2.0 |
|
|
60
|
+
| [`@opentelemetry/otlp-transformer`](https://github.com/open-telemetry/opentelemetry-js) | Apache-2.0 |
|
|
56
61
|
| [`@opentelemetry/resources`](https://github.com/open-telemetry/opentelemetry-js) | Apache-2.0 |
|
|
57
62
|
| [`@opentelemetry/sdk-logs`](https://github.com/open-telemetry/opentelemetry-js) | Apache-2.0 |
|
|
58
63
|
| [`@playwright/mcp`](https://github.com/microsoft/playwright-mcp) | Apache-2.0 |
|
|
@@ -68,18 +73,25 @@ External packages installed for runtime use or distributed inside the prebuilt b
|
|
|
68
73
|
| [`@xterm/xterm`](https://github.com/xtermjs/xterm.js) | MIT |
|
|
69
74
|
| [`@yarnpkg/parsers`](https://github.com/yarnpkg/berry) | BSD-2-Clause |
|
|
70
75
|
| [`acorn`](https://github.com/acornjs/acorn) | MIT |
|
|
76
|
+
| [`ajv`](https://github.com/ajv-validator/ajv) | MIT |
|
|
71
77
|
| [`anser`](https://github.com/IonicaBizau/anser) | MIT |
|
|
78
|
+
| [`big.js`](https://github.com/MikeMcl/big.js) | MIT |
|
|
72
79
|
| [`buffer`](https://github.com/feross/buffer) | MIT |
|
|
73
80
|
| [`chokidar`](https://github.com/paulmillr/chokidar) | MIT |
|
|
81
|
+
| [`chrome-devtools-frontend`](https://github.com/ChromeDevTools/devtools-frontend) | BSD-3-Clause |
|
|
74
82
|
| [`chrome-devtools-mcp`](https://github.com/ChromeDevTools/chrome-devtools-mcp) | Apache-2.0 |
|
|
75
83
|
| [`clsx`](https://github.com/lukeed/clsx) | MIT |
|
|
76
84
|
| [`commander`](https://github.com/tj/commander.js) | MIT |
|
|
77
85
|
| [`compression`](https://github.com/expressjs/compression) | MIT |
|
|
78
86
|
| [`diff`](https://github.com/kpdecker/jsdiff) | BSD-3-Clause |
|
|
87
|
+
| [`dompurify`](https://github.com/cure53/DOMPurify) | (MPL-2.0 OR Apache-2.0) |
|
|
79
88
|
| [`electron-updater`](https://github.com/electron-userland/electron-builder) | MIT |
|
|
80
89
|
| [`eventsource-parser`](https://github.com/rexxars/eventsource-parser) | MIT |
|
|
90
|
+
| [`exceljs`](https://github.com/exceljs/exceljs) | MIT |
|
|
81
91
|
| [`execa`](https://github.com/sindresorhus/execa) | MIT |
|
|
92
|
+
| [`fast-xml-parser`](https://github.com/NaturalIntelligence/fast-xml-parser) | MIT |
|
|
82
93
|
| [`fflate`](https://github.com/101arrowz/fflate) | MIT |
|
|
94
|
+
| [`got`](https://github.com/sindresorhus/got) | MIT |
|
|
83
95
|
| [`immer`](https://github.com/immerjs/immer) | MIT |
|
|
84
96
|
| [`ipaddr.js`](https://github.com/whitequark/ipaddr.js) | MIT |
|
|
85
97
|
| [`js-yaml`](https://github.com/nodeca/js-yaml) | MIT |
|
|
@@ -102,6 +114,7 @@ External packages installed for runtime use or distributed inside the prebuilt b
|
|
|
102
114
|
| [`node-addon-require-builtin`](https://www.npmjs.com/package/node-addon-require-builtin) | MIT |
|
|
103
115
|
| [`node-pty`](https://github.com/microsoft/node-pty) | MIT |
|
|
104
116
|
| [`open`](https://github.com/sindresorhus/open) | MIT |
|
|
117
|
+
| [`papaparse`](https://github.com/mholt/PapaParse) | MIT |
|
|
105
118
|
| [`pdfjs-dist`](https://github.com/mozilla/pdf.js) | Apache-2.0 |
|
|
106
119
|
| [`picomatch`](https://github.com/micromatch/picomatch) | MIT |
|
|
107
120
|
| [`react`](https://github.com/facebook/react) | MIT |
|
|
@@ -109,7 +122,9 @@ External packages installed for runtime use or distributed inside the prebuilt b
|
|
|
109
122
|
| [`readable-stream`](https://github.com/nodejs/readable-stream) | MIT |
|
|
110
123
|
| [`resolve.exports`](https://github.com/lukeed/resolve.exports) | MIT |
|
|
111
124
|
| [`semver`](https://github.com/npm/node-semver) | ISC |
|
|
125
|
+
| [`serve-static`](https://github.com/expressjs/serve-static) | MIT |
|
|
112
126
|
| [`sharp`](https://github.com/lovell/sharp) | Apache-2.0 |
|
|
127
|
+
| [`sherpa-onnx-node`](https://github.com/csukuangfj/sherpa-onnx) | Apache-2.0 |
|
|
113
128
|
| [`shiki`](https://github.com/shikijs/shiki) | MIT |
|
|
114
129
|
| [`simple-icons`](https://github.com/simple-icons/simple-icons) | CC0-1.0 |
|
|
115
130
|
| [`supports-color`](https://github.com/chalk/supports-color) | MIT |
|
|
@@ -119,16 +134,26 @@ External packages installed for runtime use or distributed inside the prebuilt b
|
|
|
119
134
|
| [`undici`](https://github.com/nodejs/undici) | MIT |
|
|
120
135
|
| [`use-sync-external-store`](https://github.com/facebook/react) | MIT |
|
|
121
136
|
| [`ws`](https://github.com/websockets/ws) | MIT |
|
|
137
|
+
| [`xlsx`](https://git.sheetjs.com/SheetJS/sheetjs) | Apache-2.0 |
|
|
122
138
|
| [`yaml`](https://github.com/eemeli/yaml) | ISC |
|
|
123
139
|
| [`zod`](https://github.com/colinhacks/zod) | MIT |
|
|
124
140
|
| [`zustand`](https://github.com/pmndrs/zustand) | MIT |
|
|
125
141
|
|
|
126
142
|
pnpm applies local patches to the following packages at install time, so shipped artifacts carry modified copies; each patch file is the complete record of the modification:
|
|
127
143
|
|
|
144
|
+
- `@earendil-works/pi-ai@0.87.1` — [`patches/@earendil-works__pi-ai@0.87.1.patch`](patches/@earendil-works__pi-ai@0.87.1.patch)
|
|
128
145
|
- `@electron/osx-sign@1.3.3` — [`patches/@electron__osx-sign@1.3.3.patch`](patches/@electron__osx-sign@1.3.3.patch)
|
|
146
|
+
- `@fortune-sheet/core@1.0.4` — [`patches/@fortune-sheet__core@1.0.4.patch`](patches/@fortune-sheet__core@1.0.4.patch)
|
|
147
|
+
- `@fortune-sheet/react@1.0.4` — [`patches/@fortune-sheet__react@1.0.4.patch`](patches/@fortune-sheet__react@1.0.4.patch)
|
|
129
148
|
- `@yao-pkg/pkg@6.21.0` — [`patches/@yao-pkg__pkg@6.21.0.patch`](patches/@yao-pkg__pkg@6.21.0.patch)
|
|
149
|
+
- `exceljs@4.4.0` — [`patches/exceljs@4.4.0.patch`](patches/exceljs@4.4.0.patch)
|
|
130
150
|
- `node-pty@1.2.0-beta.15` — [`patches/node-pty@1.2.0-beta.15.patch`](patches/node-pty@1.2.0-beta.15.patch)
|
|
131
151
|
|
|
152
|
+
## Chrome DevTools frontend
|
|
153
|
+
|
|
154
|
+
The optional experimental Inspector distributes a locally compiled copy of [chrome-devtools-frontend 1.0.1638082](https://www.npmjs.com/package/chrome-devtools-frontend/v/1.0.1638082), from upstream revision [0e1186138ed519d9659c1874bf6375eca4483c72](https://chromium.googlesource.com/devtools/devtools-frontend/+/0e1186138ed519d9659c1874bf6375eca4483c72). The build includes the Chromium [BSD-3-Clause license](packages/experimental/inspector/assets/devtools/LICENSE) and the third-party license and notice files supplied by the npm source. The Chromium root license does not replace those dependencies' licenses.
|
|
155
|
+
|
|
156
|
+
|
|
132
157
|
## Official Claude Code platform payloads
|
|
133
158
|
|
|
134
159
|
The project owner authorizes distribution of every version of the official `@anthropic-ai/claude-agent-sdk` package and the official Claude Code CLI/platform payloads that each version declares through `optionalDependencies`. This identity-scoped authorization does not classify their declared terms as permissive and does not cover any unrelated runtime package; version, declared-license, and payload-set changes still require the ordinary dependency, lockfile, compatibility, terms, and notices review.
|
|
@@ -151,7 +176,7 @@ The installed SDK 0.3.263 declares the following optional platform packages. Eac
|
|
|
151
176
|
|
|
152
177
|
`@deepseek-ai/libreoffice-kit`, `@deepseek-ai/libreoffice-kit-wasm`, `@deepseek-ai/libreoffice-kit-darwin-arm64`, `@deepseek-ai/libreoffice-kit-darwin-x64`, `@deepseek-ai/libreoffice-kit-win32-arm64`, `@deepseek-ai/libreoffice-kit-win32-x64` declare MPL-2.0, which remains outside the permissive-license allowlist; the notices check accepts only these package identities at those terms. The [distribution decision](.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.md) records the source obligations.
|
|
153
178
|
|
|
154
|
-
The [kit repository](https://github.com/deepseek-
|
|
179
|
+
The [kit repository](https://github.com/deepseek-ai/dsh-libreoffice-kit) supplies the corresponding LibreOffice source pin, modifications, build instructions, Node API, and artifact validation. Its engine packages retain their license and third-party notices; the Node API retains its MPL-2.0 declaration and NOTICE. Recipients must have access to those corresponding sources and notices.
|
|
155
180
|
|
|
156
181
|
|
|
157
182
|
## Development-only npm dependencies
|
|
@@ -173,6 +198,7 @@ External packages **directly declared** for development, tests, types, or toolin
|
|
|
173
198
|
| [`@testing-library/dom`](https://github.com/testing-library/dom-testing-library) | MIT |
|
|
174
199
|
| [`@testing-library/react`](https://github.com/testing-library/react-testing-library) | MIT |
|
|
175
200
|
| [`@types/babel__code-frame`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
201
|
+
| [`@types/big.js`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
176
202
|
| [`@types/compression`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
177
203
|
| [`@types/js-yaml`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
178
204
|
| [`@types/jsdom`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
@@ -180,11 +206,13 @@ External packages **directly declared** for development, tests, types, or toolin
|
|
|
180
206
|
| [`@types/mime-types`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
181
207
|
| [`@types/negotiator`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
182
208
|
| [`@types/node`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
209
|
+
| [`@types/papaparse`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
183
210
|
| [`@types/picomatch`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
184
211
|
| [`@types/react`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
185
212
|
| [`@types/react-dom`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
186
213
|
| [`@types/readable-stream`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
187
214
|
| [`@types/semver`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
215
|
+
| [`@types/serve-static`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
188
216
|
| [`@types/spdx-expression-parse`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
189
217
|
| [`@types/turndown`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
190
218
|
| [`@types/use-sync-external-store`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
|
|
@@ -244,9 +272,9 @@ Direct dependencies of the `pyproject.toml` manifests, plus `uv` as the developm
|
|
|
244
272
|
| [`pytest`](https://github.com/pytest-dev/pytest) | MIT | test-only |
|
|
245
273
|
| [`uv`](https://github.com/astral-sh/uv) | MIT / Apache-2.0 | development workflow tool |
|
|
246
274
|
|
|
247
|
-
##
|
|
275
|
+
## Bundled Python distributions
|
|
248
276
|
|
|
249
|
-
The [
|
|
277
|
+
The [shared runtime lock](scripts/primary-runtime/lock.json) records each distribution version and the wheel download hashes. The table includes every entry in `pythonPackages`, including transitive dependencies. Wheel extraction preserves distribution metadata and the license and notice files supplied by each archive. Project licenses below do not enumerate the separate licenses of native libraries bundled inside wheels.
|
|
250
278
|
|
|
251
279
|
| Distribution | Locked version | Project license |
|
|
252
280
|
| --- | --- | --- |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AGENTS.md — The documentation standard
|
|
2
2
|
|
|
3
|
-
This file defines document structure, Markdown tiers, writing rules, and `verify-doc-budgets` ceilings. Use [dsh-doc](../.agents/skills/dsh-doc/SKILL.md) for placement and validation, and [dsh-prose-standard](../.agents/skills/dsh-prose-standard/SKILL.md) for required coverage and editorial judgment; the [doc-tiers Agent Note](../.agents/notes/
|
|
3
|
+
This file defines document structure, Markdown tiers, writing rules, and `verify-doc-budgets` ceilings. Use [dsh-doc](../.agents/skills/dsh-doc/SKILL.md) for placement and validation, and [dsh-prose-standard](../.agents/skills/dsh-prose-standard/SKILL.md) for required coverage and editorial judgment; the [archived doc-tiers Agent Note](../.agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.md) records the historical rationale.
|
|
4
4
|
|
|
5
5
|
## Document structure
|
|
6
6
|
|
|
@@ -40,10 +40,10 @@ Placement: bugs → postmortems; rationale → Agent Notes; procedures → cookb
|
|
|
40
40
|
- **Apply the Agent Note creation criteria.** Mechanical/local edits are exempt, including local UI changes; keep existing owning notes accurate ([scope](../.agents/notes/README.md#when-to-write-one)).
|
|
41
41
|
- **One physical line per paragraph** (`verify-md-wrap`): use editor soft-wrap. Code blocks, tables, and list structure keep their formatting; code comments stay under the linter's column limit.
|
|
42
42
|
- **Fenced `ts` blocks must compile** (`doc-typecheck`); a pasted type declaration and its original JSDoc use ` ```ts type-equiv `, while a body-stripped public class declaration uses ` ```ts public-api `; register either in the manifest so neither can drift ([mechanics](development.md#documenting-types-verbatim-ts-type-equiv)).
|
|
43
|
-
- **The owning [subsystems page](subsystems/README.md) updates in the same change** that reshapes a documented type. `verify-type-equiv` catches drifted pastes, not never-documented new types; a type is documented on its declaring package group's page ([page scoping](
|
|
43
|
+
- **The owning [subsystems page](subsystems/README.md) updates in the same change** that reshapes a documented type. `verify-type-equiv` catches drifted pastes, not never-documented new types; a type is documented on its declaring package group's page ([page scoping](../scripts/verify-subsystem-pages.ts)).
|
|
44
44
|
- **Pairs update together**: [Terminology-guided](i18n/terminology.md), single-pass active-agent work repositions first-use annotations, preserves untouched prose, and re-records; `dsh-translate-docs` remains user-invoked ([contract](i18n/README.md)).
|
|
45
45
|
- **Comments and JSDoc state complete contracts, not reasoning transcripts.** Preserve behavior, failure, timing, ownership, modality, exceptions, consequences, and non-obvious orientation; delete narration, test walkthroughs, review analysis, and code restatement. Keep the local contract and link its rationale. Use [dsh-prose-standard](../.agents/skills/dsh-prose-standard/SKILL.md) for details.
|
|
46
|
-
- Write directly: name actors and facts ([
|
|
46
|
+
- Write directly: name actors and facts ([reference](../.agents/skills/dsh-prose-standard/SKILL.md)). Reserve `seam` for the defined capability. Name the exact check, type, API, operation, or behavior instead of metaphorical "gate", "vocabulary", or "surface".
|
|
47
47
|
|
|
48
48
|
## Wordcount Budgets
|
|
49
49
|
|
|
@@ -55,7 +55,7 @@ When the gate goes red:
|
|
|
55
55
|
2. **Condense** content that belongs here but can be shorter.
|
|
56
56
|
3. **Raise** the ceiling only when the words need the space; justify the manifest diff in the PR. A too-low ceiling is a budget bug.
|
|
57
57
|
|
|
58
|
-
Ceilings are guardrails, not reduction targets. At or below target, retain at least 5% headroom; above target, freeze the ceiling until relocation or condensation brings the document under target. Lower a ceiling only when the document still has room. Targets: root `AGENTS.md` ≤ 1,
|
|
58
|
+
Ceilings are guardrails, not reduction targets. At or below target, retain at least 5% headroom; above target, freeze the ceiling until relocation or condensation brings the document under target. Lower a ceiling only when the document still has room. Targets: root `AGENTS.md` ≤ 1,960; `architecture.md` ≤ 2,400; subtree `AGENTS.md` ≤ 600, except `packages/AGENTS.md` ≤ 750 and this file ≤ 1,320; `packages/README.md` ≤ 994; plus `cordis-primer.md` 600, `defensive-patterns.md` 550, `testing.md` 1,300, `examples/AGENTS.md` 310. Review governs unbudgeted tiers.
|
|
59
59
|
|
|
60
60
|
## The slop checklist
|
|
61
61
|
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
# Bilingual-pair consistency record (docs/i18n/README.md):
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Bilingual-pair consistency record for agent-lifecycle.md (docs/i18n/README.md): per heading
|
|
2
|
+
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
|
3
|
+
# After editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write docs/agent-lifecycle.md
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/:
|
|
6
|
+
en: 41d772192075e133
|
|
7
|
+
zh: 305a6826a598b96d
|
|
8
|
+
/agent-turn-and-step-lifecycle:
|
|
9
|
+
en: a1389c8ed7e37324
|
|
10
|
+
zh: c2944b9192af4ec9
|
|
@@ -1,6 +1,28 @@
|
|
|
1
|
-
# Bilingual-pair consistency record (docs/i18n/README.md):
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Bilingual-pair consistency record for api-gateway.md (docs/i18n/README.md): per heading
|
|
2
|
+
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
|
3
|
+
# After editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write docs/api-gateway.md
|
|
5
|
-
api-gateway
|
|
6
|
-
|
|
5
|
+
/api-gateway:
|
|
6
|
+
en: 735eb4f22d5f6f71
|
|
7
|
+
zh: 1ca2759961efdc06
|
|
8
|
+
/api-gateway/programming-model:
|
|
9
|
+
en: ea12b64211f0d377
|
|
10
|
+
zh: 032e5c0d799c7529
|
|
11
|
+
/api-gateway/component-responsibilities:
|
|
12
|
+
en: e29f1d7026291075
|
|
13
|
+
zh: 15e361e797d44fce
|
|
14
|
+
/api-gateway/strict-generation-pipeline:
|
|
15
|
+
en: cb8da81a92acfa52
|
|
16
|
+
zh: be5f3c268f8571df
|
|
17
|
+
/api-gateway/runtime-invocation:
|
|
18
|
+
en: 2a2fed340aaa926c
|
|
19
|
+
zh: 46bb1f500c870a76
|
|
20
|
+
/api-gateway/src-development-fallback:
|
|
21
|
+
en: 9570ffe7a348e5ac
|
|
22
|
+
zh: 2b70b61b1ff1fbb0
|
|
23
|
+
/api-gateway/development-mode:
|
|
24
|
+
en: ba090d76471dd663
|
|
25
|
+
zh: fcddcb232de98248
|
|
26
|
+
/api-gateway/boundaries:
|
|
27
|
+
en: e6befc5f8c90f97b
|
|
28
|
+
zh: 3ade08102542a894
|