dsh-agent-plugins-market 0.9.0 → 0.9.2
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.md +64 -154
- package/README.zh.md +74 -164
- package/assets/dsh-agent-plugins.png +0 -0
- package/client/client.js +5371 -1085
- package/client/client.js.map +1 -1
- package/lib/index.js +2 -257
- package/lib/{application → packages/market-bundle/src/application}/catalog.js +207 -41
- package/lib/{application → packages/market-bundle/src/application}/details.js +73 -29
- package/lib/packages/market-bundle/src/application/extension-inventory.js +408 -0
- package/lib/packages/market-bundle/src/application/extension-project.js +64 -0
- package/lib/packages/market-bundle/src/application/resource-inventory.js +96 -0
- package/lib/packages/market-bundle/src/application/server-config.js +9 -0
- package/lib/packages/market-bundle/src/application/suite-queries.js +86 -0
- package/lib/packages/market-bundle/src/index.js +372 -0
- package/lib/{runtime/host → packages/market-bundle/src/platform}/feedback-tool.js +2 -2
- package/lib/{runtime/host → packages/market-bundle/src/platform}/settings-namespace.js +55 -7
- package/lib/packages/market-bundle/src/platform/settings-schema.js +25 -0
- package/lib/packages/market-bundle/src/routes-extension-presets.js +161 -0
- package/lib/packages/market-bundle/src/routes-resources.js +127 -0
- package/lib/{routes.js → packages/market-bundle/src/routes.js} +225 -21
- package/lib/packages/market-bundle/src/runtime-adapters.js +57 -0
- package/lib/packages/market-bundle/src/session-extension.js +337 -0
- package/lib/{application → packages/market-catalog/src/application}/catalog-context.js +7 -4
- package/lib/{application → packages/market-catalog/src/application}/install-store.js +3 -3
- package/lib/{application → packages/market-catalog/src/application}/snapshot-cache.js +100 -11
- package/lib/{application → packages/market-catalog/src/application}/source-store.js +24 -11
- package/lib/{application → packages/market-catalog/src/application}/state/state-store.js +1 -1
- package/lib/{application → packages/market-catalog/src/application}/state/storage-migration.js +1 -1
- package/lib/packages/market-catalog/src/index.js +19 -0
- package/lib/{catalog → packages/market-catalog/src/scanning}/archive.js +1 -1
- package/lib/{catalog → packages/market-catalog/src/scanning}/codex-mcp.js +1 -1
- package/lib/{catalog → packages/market-catalog/src/scanning}/component-files.js +2 -2
- package/lib/{catalog → packages/market-catalog/src/scanning}/manifests.js +2 -2
- package/lib/{catalog → packages/market-catalog/src/scanning}/native-project.js +1 -1
- package/lib/{catalog → packages/market-catalog/src/scanning}/paths.js +1 -1
- package/lib/{catalog → packages/market-catalog/src/scanning}/plugin-variables.js +21 -1
- package/lib/{catalog → packages/market-catalog/src/scanning}/scan-resolvers.js +35 -2
- package/lib/{catalog → packages/market-catalog/src/scanning}/skills-parse.js +40 -10
- package/lib/{catalog → packages/market-catalog/src/scanning}/validate.js +15 -2
- package/lib/packages/market-contracts/src/contracts/extension-presets.js +125 -0
- package/lib/{contracts → packages/market-contracts/src/contracts}/market.js +33 -5
- package/lib/packages/market-contracts/src/contracts/mcp-overrides.js +2 -0
- package/lib/packages/market-contracts/src/contracts/resource-window.js +29 -0
- package/lib/packages/market-contracts/src/contracts/settings.js +130 -0
- package/lib/packages/market-contracts/src/contracts/surface-toggles.js +29 -0
- package/lib/packages/market-contracts/src/contracts/translation.js +28 -0
- package/lib/packages/market-contracts/src/index.js +4 -0
- package/lib/{model → packages/market-contracts/src/model}/layouts.js +11 -0
- package/lib/{application → packages/market-contracts/src/ports}/ports.js +3 -0
- package/lib/{application/mcp/mcp-redaction.js → packages/market-contracts/src/redaction.js} +17 -1
- package/lib/{application → packages/market-lsp/src/application}/lsp/lsp-direct-config.js +2 -2
- package/lib/{application → packages/market-lsp/src/application}/lsp/lsp-server-state.js +1 -1
- package/lib/{application → packages/market-lsp/src/application}/lsp/lsp-status.js +20 -3
- package/lib/{application → packages/market-lsp/src/application}/lsp/profile-seam.js +1 -1
- package/lib/packages/market-lsp/src/application/lsp/validation.js +46 -0
- package/lib/{application → packages/market-lsp/src/application}/lsp-service.js +61 -3
- package/lib/packages/market-lsp/src/index.js +8 -0
- package/lib/{runtime → packages/market-lsp/src/runtime}/lsp/lsp-mounts.js +79 -40
- package/lib/{application → packages/market-mcp/src/application}/mcp/mcp-backend.js +0 -16
- package/lib/{application → packages/market-mcp/src/application}/mcp/mcp-config.js +104 -21
- package/lib/{application → packages/market-mcp/src/application}/mcp/mcp-direct-config.js +12 -4
- package/lib/{application → packages/market-mcp/src/application}/mcp/mcp-overrides.js +4 -4
- package/lib/{application → packages/market-mcp/src/application}/mcp/mcp-status.js +49 -10
- package/lib/packages/market-mcp/src/application/mcp/validation.js +63 -0
- package/lib/{application → packages/market-mcp/src/application}/mcp-service.js +111 -91
- package/lib/packages/market-mcp/src/index.js +10 -0
- package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/bridge.js +12 -9
- package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/connection.js +1 -1
- package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/oauth.js +1 -1
- package/lib/packages/market-mcp/src/runtime/mcp/bridge/tool-ownership.js +26 -0
- package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/tools.js +1 -1
- package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/mcp-auth-record.js +35 -4
- package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/mcp-mounts.js +35 -4
- package/lib/packages/market-runtime/src/adapter-contracts.js +1 -0
- package/lib/packages/market-runtime/src/application/command-resources.js +74 -0
- package/lib/packages/market-runtime/src/application/extension-authorization.js +27 -0
- package/lib/packages/market-runtime/src/application/extension-hook-selection.js +56 -0
- package/lib/packages/market-runtime/src/application/extension-suite-declarations.js +57 -0
- package/lib/packages/market-runtime/src/application/extension-suite-selection.js +84 -0
- package/lib/packages/market-runtime/src/application/fs-probe.js +43 -0
- package/lib/packages/market-runtime/src/application/panel-resources.js +370 -0
- package/lib/{application → packages/market-runtime/src/application}/panels/user-hooks.js +2 -2
- package/lib/{application → packages/market-runtime/src/application}/panels/user-store.js +53 -13
- package/lib/{application → packages/market-runtime/src/application}/project-agent-roles.js +20 -11
- package/lib/packages/market-runtime/src/application/state/extension-presets.js +144 -0
- package/lib/packages/market-runtime/src/application/state/resource-favorites.js +90 -0
- package/lib/packages/market-runtime/src/application/state/resource-filters.js +2 -0
- package/lib/packages/market-runtime/src/application/state/surface-toggles.js +10 -0
- package/lib/packages/market-runtime/src/application/state/workspace-policy.js +56 -0
- package/lib/packages/market-runtime/src/catalog-port.js +1 -0
- package/lib/packages/market-runtime/src/extension-service.js +1 -0
- package/lib/packages/market-runtime/src/index.js +31 -0
- package/lib/{runtime → packages/market-runtime/src/runtime}/agents/agent-role-router.js +74 -79
- package/lib/packages/market-runtime/src/runtime/agents/agent-teams-seat.js +58 -0
- package/lib/{runtime → packages/market-runtime/src/runtime}/agents/subagent-catalog.js +89 -21
- package/lib/packages/market-runtime/src/runtime/agents/team-coordination.js +51 -0
- package/lib/packages/market-runtime/src/runtime/agents/teammate-role-runtime.js +241 -0
- package/lib/packages/market-runtime/src/runtime/agents/teammate-role-tool.js +130 -0
- package/lib/{runtime → packages/market-runtime/src/runtime}/core/reconcile-scheduler.js +2 -2
- package/lib/packages/market-runtime/src/runtime/core/reconciler.js +457 -0
- package/lib/packages/market-runtime/src/runtime/host/command-name-allocator.js +168 -0
- package/lib/packages/market-runtime/src/runtime/host/extension-progress.js +120 -0
- package/lib/packages/market-runtime/src/runtime/host/extension-runtime.js +405 -0
- package/lib/packages/market-runtime/src/runtime/host/extension-session-state.js +839 -0
- package/lib/packages/market-runtime/src/runtime/host/extension-tool-gates.js +96 -0
- package/lib/{runtime → packages/market-runtime/src/runtime}/host/failure-detail.js +1 -1
- package/lib/{runtime → packages/market-runtime/src/runtime}/host/host-locale.js +2 -0
- package/lib/packages/market-runtime/src/runtime/host/menu-row-identities.js +38 -0
- package/lib/packages/market-runtime/src/runtime/host/resource-filter-service.js +81 -0
- package/lib/packages/market-runtime/src/runtime/host/scoped-contributors.js +304 -0
- package/lib/packages/market-runtime/src/runtime/host/surface-toggle-service.js +15 -0
- package/lib/packages/market-runtime/src/runtime/panels/user-commands.js +211 -0
- package/lib/{runtime → packages/market-runtime/src/runtime}/panels/user-panels.js +34 -14
- package/lib/packages/market-runtime/src/runtime/surfaces/commands-mounts.js +256 -0
- package/lib/packages/market-runtime/src/runtime/surfaces/extension-hooks.js +294 -0
- package/lib/packages/market-runtime/src/runtime/surfaces/hook-dry-run.js +122 -0
- package/lib/{runtime → packages/market-runtime/src/runtime}/surfaces/hooks-mounts.js +1 -1
- package/lib/{runtime → packages/market-runtime/src/runtime}/surfaces/project-runtime.js +23 -13
- package/lib/packages/market-runtime/src/runtime/surfaces/skills-provider.js +241 -0
- package/lib/packages/market-translation/src/application/state/translation-cache.js +122 -0
- package/lib/packages/market-translation/src/application/translation/chain.js +99 -0
- package/lib/packages/market-translation/src/application/translation/document.js +384 -0
- package/lib/packages/market-translation/src/application/translation/localizer.js +642 -0
- package/lib/packages/market-translation/src/application/translation/service.js +113 -0
- package/lib/packages/market-translation/src/application/translation/unit.js +19 -0
- package/lib/packages/market-translation/src/index.js +4 -0
- package/lib/packages/market-translation/src/runtime/host/llm-translator.js +278 -0
- package/lib/packages/market-translation/src/runtime/host/machine-translator.js +152 -0
- package/lib/packages/market-translation/src/runtime/host/text-masking.js +96 -0
- package/lib/packages/market-translation/src/runtime/host/translation-providers.js +116 -0
- package/lib/types/index.d.ts +2 -130
- package/lib/types/{application → packages/market-bundle/src/application}/catalog.d.ts +117 -22
- package/lib/types/packages/market-bundle/src/application/details.d.ts +24 -0
- package/lib/types/packages/market-bundle/src/application/extension-inventory.d.ts +45 -0
- package/lib/types/packages/market-bundle/src/application/extension-project.d.ts +26 -0
- package/lib/types/packages/market-bundle/src/application/resource-inventory.d.ts +42 -0
- package/lib/types/packages/market-bundle/src/application/server-config.d.ts +9 -0
- package/lib/types/packages/market-bundle/src/application/suite-queries.d.ts +84 -0
- package/lib/types/packages/market-bundle/src/index.d.ts +125 -0
- package/lib/types/{runtime/host → packages/market-bundle/src/platform}/settings-namespace.d.ts +44 -9
- package/lib/types/{application/mcp/mcp-backend.d.ts → packages/market-bundle/src/platform/settings-schema.d.ts} +13 -28
- package/lib/types/packages/market-bundle/src/routes-extension-presets.d.ts +15 -0
- package/lib/types/packages/market-bundle/src/routes-resources.d.ts +17 -0
- package/lib/types/packages/market-bundle/src/routes.d.ts +32 -0
- package/lib/types/packages/market-bundle/src/runtime-adapters.d.ts +42 -0
- package/lib/types/packages/market-bundle/src/session-extension.d.ts +62 -0
- package/lib/types/{application → packages/market-catalog/src/application}/catalog-context.d.ts +11 -3
- package/lib/types/{application → packages/market-catalog/src/application}/install-store.d.ts +1 -1
- package/lib/types/{application → packages/market-catalog/src/application}/regions.d.ts +1 -1
- package/lib/types/{application → packages/market-catalog/src/application}/snapshot-cache.d.ts +44 -2
- package/lib/types/{application → packages/market-catalog/src/application}/source-store.d.ts +12 -3
- package/lib/types/{application → packages/market-catalog/src/application}/state/state-store.d.ts +1 -1
- package/lib/types/packages/market-catalog/src/index.d.ts +22 -0
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/archive.d.ts +1 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/codex-mcp.d.ts +1 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/component-files.d.ts +1 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/lsp-spec.d.ts +1 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/manifests.d.ts +3 -3
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/native-project.d.ts +2 -2
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/plugin-variables.d.ts +12 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/project-config.d.ts +2 -2
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/project-hooks.d.ts +2 -2
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/scan-pipeline.d.ts +1 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/scan-resolvers.d.ts +3 -3
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/source-catalog.d.ts +1 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/suite-components.d.ts +1 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/suite-scanner.d.ts +1 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/surfaces.d.ts +1 -1
- package/lib/types/{catalog → packages/market-catalog/src/scanning}/validate.d.ts +1 -1
- package/lib/types/packages/market-contracts/src/contracts/extension-presets.d.ts +237 -0
- package/lib/types/{contracts → packages/market-contracts/src/contracts}/market.d.ts +87 -16
- package/lib/types/packages/market-contracts/src/contracts/mcp-overrides.d.ts +39 -0
- package/lib/types/{contracts → packages/market-contracts/src/contracts}/mcp-status.d.ts +9 -0
- package/lib/types/packages/market-contracts/src/contracts/resource-window.d.ts +70 -0
- package/lib/types/packages/market-contracts/src/contracts/settings.d.ts +121 -0
- package/lib/types/packages/market-contracts/src/contracts/surface-toggles.d.ts +28 -0
- package/lib/types/packages/market-contracts/src/contracts/translation.d.ts +81 -0
- package/lib/types/{runtime → packages/market-contracts/src}/host/plugin-message-source.d.ts +1 -1
- package/lib/types/packages/market-contracts/src/index.d.ts +5 -0
- package/lib/types/{model → packages/market-contracts/src/model}/layouts.d.ts +7 -0
- package/lib/types/{model → packages/market-contracts/src/model}/types.d.ts +2 -2
- package/lib/types/packages/market-contracts/src/ports/ports.d.ts +183 -0
- package/lib/types/{application → packages/market-contracts/src/ports}/queries.d.ts +27 -6
- package/lib/types/{application/mcp/mcp-redaction.d.ts → packages/market-contracts/src/redaction.d.ts} +2 -0
- package/lib/types/{application → packages/market-lsp/src/application}/lsp/lsp-direct-config.d.ts +1 -1
- package/lib/types/{application → packages/market-lsp/src/application}/lsp/lsp-status.d.ts +21 -5
- package/lib/types/packages/market-lsp/src/application/lsp/validation.d.ts +8 -0
- package/lib/types/{application → packages/market-lsp/src/application}/lsp-service.d.ts +19 -6
- package/lib/types/packages/market-lsp/src/index.d.ts +8 -0
- package/lib/types/{runtime → packages/market-lsp/src/runtime}/lsp/lsp-mounts.d.ts +26 -6
- package/lib/types/packages/market-mcp/src/application/mcp/mcp-backend.d.ts +28 -0
- package/lib/types/{application → packages/market-mcp/src/application}/mcp/mcp-bridge-config.d.ts +1 -1
- package/lib/types/{application → packages/market-mcp/src/application}/mcp/mcp-config.d.ts +2 -2
- package/lib/types/{application → packages/market-mcp/src/application}/mcp/mcp-direct-config.d.ts +6 -1
- package/lib/types/{application → packages/market-mcp/src/application}/mcp/mcp-overrides.d.ts +4 -38
- package/lib/types/packages/market-mcp/src/application/mcp/mcp-status.d.ts +40 -0
- package/lib/types/{application/server-config.d.ts → packages/market-mcp/src/application/mcp/validation.d.ts} +2 -10
- package/lib/types/{application → packages/market-mcp/src/application}/mcp-service.d.ts +22 -16
- package/lib/types/packages/market-mcp/src/index.d.ts +12 -0
- package/lib/types/packages/market-mcp/src/runtime/mcp/bridge/tool-ownership.d.ts +14 -0
- package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/mcp-auth-record.d.ts +4 -0
- package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/mcp-mounts.d.ts +19 -3
- package/lib/types/packages/market-runtime/src/adapter-contracts.d.ts +89 -0
- package/lib/types/{application → packages/market-runtime/src/application}/agent-roles.d.ts +2 -0
- package/lib/types/packages/market-runtime/src/application/command-resources.d.ts +26 -0
- package/lib/types/packages/market-runtime/src/application/extension-authorization.d.ts +12 -0
- package/lib/types/packages/market-runtime/src/application/extension-hook-selection.d.ts +23 -0
- package/lib/types/packages/market-runtime/src/application/extension-suite-declarations.d.ts +10 -0
- package/lib/types/packages/market-runtime/src/application/extension-suite-selection.d.ts +30 -0
- package/lib/types/packages/market-runtime/src/application/fs-probe.d.ts +12 -0
- package/lib/types/packages/market-runtime/src/application/panel-resources.d.ts +100 -0
- package/lib/types/{application → packages/market-runtime/src/application}/panels/user-hooks.d.ts +1 -1
- package/lib/types/packages/market-runtime/src/application/project-agent-roles.d.ts +10 -0
- package/lib/types/packages/market-runtime/src/application/state/extension-presets.d.ts +24 -0
- package/lib/types/packages/market-runtime/src/application/state/resource-favorites.d.ts +9 -0
- package/lib/types/packages/market-runtime/src/application/state/resource-filters.d.ts +2 -0
- package/lib/types/packages/market-runtime/src/application/state/surface-toggles.d.ts +6 -0
- package/lib/types/packages/market-runtime/src/application/state/workspace-policy.d.ts +19 -0
- package/lib/types/packages/market-runtime/src/catalog-port.d.ts +30 -0
- package/lib/types/packages/market-runtime/src/extension-service.d.ts +14 -0
- package/lib/types/packages/market-runtime/src/index.d.ts +41 -0
- package/lib/types/{runtime → packages/market-runtime/src/runtime}/agents/agent-role-router.d.ts +66 -31
- package/lib/types/packages/market-runtime/src/runtime/agents/agent-teams-seat.d.ts +41 -0
- package/lib/types/{runtime → packages/market-runtime/src/runtime}/agents/subagent-catalog.d.ts +34 -2
- package/lib/types/packages/market-runtime/src/runtime/agents/team-coordination.d.ts +8 -0
- package/lib/types/packages/market-runtime/src/runtime/agents/teammate-role-runtime.d.ts +74 -0
- package/lib/types/packages/market-runtime/src/runtime/agents/teammate-role-tool.d.ts +6 -0
- package/lib/types/{runtime → packages/market-runtime/src/runtime}/core/reconcile-scheduler.d.ts +5 -2
- package/lib/types/packages/market-runtime/src/runtime/core/reconciler.d.ts +141 -0
- package/lib/types/packages/market-runtime/src/runtime/host/command-name-allocator.d.ts +132 -0
- package/lib/types/packages/market-runtime/src/runtime/host/extension-progress.d.ts +91 -0
- package/lib/types/packages/market-runtime/src/runtime/host/extension-runtime.d.ts +77 -0
- package/lib/types/packages/market-runtime/src/runtime/host/extension-session-state.d.ts +242 -0
- package/lib/types/packages/market-runtime/src/runtime/host/extension-tool-gates.d.ts +38 -0
- package/lib/types/{runtime → packages/market-runtime/src/runtime}/host/host-locale.d.ts +1 -1
- package/lib/types/packages/market-runtime/src/runtime/host/menu-row-identities.d.ts +50 -0
- package/lib/types/{runtime → packages/market-runtime/src/runtime}/host/model-catalog.d.ts +1 -1
- package/lib/types/packages/market-runtime/src/runtime/host/resource-filter-service.d.ts +34 -0
- package/lib/types/packages/market-runtime/src/runtime/host/scoped-contributors.d.ts +58 -0
- package/lib/types/packages/market-runtime/src/runtime/host/surface-toggle-service.d.ts +10 -0
- package/lib/types/packages/market-runtime/src/runtime/panels/user-commands.d.ts +74 -0
- package/lib/types/{runtime → packages/market-runtime/src/runtime}/panels/user-panels.d.ts +7 -1
- package/lib/types/packages/market-runtime/src/runtime/surfaces/commands-mounts.d.ts +81 -0
- package/lib/types/packages/market-runtime/src/runtime/surfaces/extension-hooks.d.ts +59 -0
- package/lib/types/packages/market-runtime/src/runtime/surfaces/hook-dry-run.d.ts +91 -0
- package/lib/types/{runtime → packages/market-runtime/src/runtime}/surfaces/hooks-mounts.d.ts +1 -1
- package/lib/types/{runtime → packages/market-runtime/src/runtime}/surfaces/project-runtime.d.ts +8 -5
- package/lib/types/packages/market-runtime/src/runtime/surfaces/skills-provider.d.ts +71 -0
- package/lib/types/packages/market-translation/src/application/state/translation-cache.d.ts +56 -0
- package/lib/types/packages/market-translation/src/application/translation/chain.d.ts +47 -0
- package/lib/types/packages/market-translation/src/application/translation/document.d.ts +54 -0
- package/lib/types/packages/market-translation/src/application/translation/localizer.d.ts +325 -0
- package/lib/types/packages/market-translation/src/application/translation/service.d.ts +89 -0
- package/lib/types/packages/market-translation/src/application/translation/unit.d.ts +35 -0
- package/lib/types/packages/market-translation/src/index.d.ts +4 -0
- package/lib/types/packages/market-translation/src/runtime/host/llm-translator.d.ts +30 -0
- package/lib/types/packages/market-translation/src/runtime/host/machine-translator.d.ts +52 -0
- package/lib/types/packages/market-translation/src/runtime/host/text-masking.d.ts +42 -0
- package/lib/types/packages/market-translation/src/runtime/host/translation-providers.d.ts +42 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +47 -10
- package/schemas/README.md +4 -4
- package/schemas/agent-plugins/spec.md +2 -2
- package/schemas/com.deepseek.harness/spec.md +1 -1
- package/schemas/skill-collection/spec.md +10 -2
- package/lib/application/panel-resources.js +0 -161
- package/lib/application/server-config.js +0 -109
- package/lib/contracts/settings.js +0 -63
- package/lib/runtime/core/reconciler.js +0 -100
- package/lib/runtime/panels/user-commands.js +0 -105
- package/lib/runtime/surfaces/commands-mounts.js +0 -186
- package/lib/runtime/surfaces/skills-provider.js +0 -160
- package/lib/types/application/details.d.ts +0 -7
- package/lib/types/application/mcp/mcp-status.d.ts +0 -24
- package/lib/types/application/panel-resources.d.ts +0 -28
- package/lib/types/application/ports.d.ts +0 -86
- package/lib/types/application/project-agent-roles.d.ts +0 -3
- package/lib/types/contracts/settings.d.ts +0 -59
- package/lib/types/routes.d.ts +0 -16
- package/lib/types/runtime/core/reconciler.d.ts +0 -58
- package/lib/types/runtime/panels/user-commands.d.ts +0 -27
- package/lib/types/runtime/surfaces/commands-mounts.d.ts +0 -48
- package/lib/types/runtime/surfaces/skills-provider.d.ts +0 -23
- /package/lib/{application → packages/market-catalog/src/application}/deadline.js +0 -0
- /package/lib/{application → packages/market-catalog/src/application}/json-file.js +0 -0
- /package/lib/{application → packages/market-catalog/src/application}/regions.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/fs-probes.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/git.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/lsp-spec.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/project-config.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/project-hooks.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/scan-pipeline.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/source-catalog.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/suite-components.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/suite-scanner.js +0 -0
- /package/lib/{catalog → packages/market-catalog/src/scanning}/surfaces.js +0 -0
- /package/lib/{contracts → packages/market-contracts/src/contracts}/lsp-status.js +0 -0
- /package/lib/{contracts → packages/market-contracts/src/contracts}/lsp.js +0 -0
- /package/lib/{contracts → packages/market-contracts/src/contracts}/mcp-status.js +0 -0
- /package/lib/{contracts → packages/market-contracts/src/contracts}/mcp.js +0 -0
- /package/lib/{runtime → packages/market-contracts/src}/host/plugin-message-source.js +0 -0
- /package/lib/{model → packages/market-contracts/src/model}/command-names.js +0 -0
- /package/lib/{model → packages/market-contracts/src/model}/preset-source.js +0 -0
- /package/lib/{model → packages/market-contracts/src/model}/types.js +0 -0
- /package/lib/{application → packages/market-contracts/src/ports}/queries.js +0 -0
- /package/lib/{application → packages/market-mcp/src/application}/mcp/mcp-bridge-config.js +0 -0
- /package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/host-contract.js +0 -0
- /package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/host-seams.js +0 -0
- /package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/plugin-identity.js +0 -0
- /package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/projection.js +0 -0
- /package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/transport.js +0 -0
- /package/lib/{runtime → packages/market-mcp/src/runtime}/mcp/mcp-credentials.js +0 -0
- /package/lib/{application → packages/market-runtime/src/application}/agent-roles.js +0 -0
- /package/lib/{runtime → packages/market-runtime/src/runtime}/agents/agent-role-names.js +0 -0
- /package/lib/{runtime → packages/market-runtime/src/runtime}/core/context.js +0 -0
- /package/lib/{runtime → packages/market-runtime/src/runtime}/core/mount-lifecycle.js +0 -0
- /package/lib/{runtime → packages/market-runtime/src/runtime}/core/source-auto-update.js +0 -0
- /package/lib/{runtime → packages/market-runtime/src/runtime}/core/timer-seat.js +0 -0
- /package/lib/{runtime → packages/market-runtime/src/runtime}/host/model-catalog.js +0 -0
- /package/lib/{runtime → packages/market-runtime/src/runtime}/host/shell-path.js +0 -0
- /package/lib/{runtime → packages/market-runtime/src/runtime}/host/tool-registry-observer.js +0 -0
- /package/lib/{runtime → packages/market-runtime/src/runtime}/surfaces/dynamic-context.js +0 -0
- /package/lib/types/{runtime/host → packages/market-bundle/src/platform}/feedback-tool.d.ts +0 -0
- /package/lib/types/{application → packages/market-catalog/src/application}/deadline.d.ts +0 -0
- /package/lib/types/{application → packages/market-catalog/src/application}/json-file.d.ts +0 -0
- /package/lib/types/{application → packages/market-catalog/src/application}/state/storage-migration.d.ts +0 -0
- /package/lib/types/{catalog → packages/market-catalog/src/scanning}/fs-probes.d.ts +0 -0
- /package/lib/types/{catalog → packages/market-catalog/src/scanning}/git.d.ts +0 -0
- /package/lib/types/{catalog → packages/market-catalog/src/scanning}/paths.d.ts +0 -0
- /package/lib/types/{catalog → packages/market-catalog/src/scanning}/skills-parse.d.ts +0 -0
- /package/lib/types/{contracts → packages/market-contracts/src/contracts}/lsp-status.d.ts +0 -0
- /package/lib/types/{contracts → packages/market-contracts/src/contracts}/lsp.d.ts +0 -0
- /package/lib/types/{contracts → packages/market-contracts/src/contracts}/mcp.d.ts +0 -0
- /package/lib/types/{model → packages/market-contracts/src/model}/command-names.d.ts +0 -0
- /package/lib/types/{model → packages/market-contracts/src/model}/preset-source.d.ts +0 -0
- /package/lib/types/{application → packages/market-lsp/src/application}/lsp/lsp-server-state.d.ts +0 -0
- /package/lib/types/{application → packages/market-lsp/src/application}/lsp/profile-seam.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/bridge.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/connection.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/host-contract.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/host-seams.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/oauth.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/plugin-identity.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/projection.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/tools.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/bridge/transport.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-mcp/src/runtime}/mcp/mcp-credentials.d.ts +0 -0
- /package/lib/types/{application → packages/market-runtime/src/application}/panels/user-store.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-runtime/src/runtime}/agents/agent-role-names.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-runtime/src/runtime}/core/context.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-runtime/src/runtime}/core/mount-lifecycle.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-runtime/src/runtime}/core/source-auto-update.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-runtime/src/runtime}/core/timer-seat.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-runtime/src/runtime}/host/failure-detail.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-runtime/src/runtime}/host/shell-path.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-runtime/src/runtime}/host/tool-registry-observer.d.ts +0 -0
- /package/lib/types/{runtime → packages/market-runtime/src/runtime}/surfaces/dynamic-context.d.ts +0 -0
|
@@ -4,6 +4,8 @@ export declare const MARKET_API_PREFIX: "/api/agent-plugins/";
|
|
|
4
4
|
/** Fixed Agent Plugins Market HTTP routes. */
|
|
5
5
|
export declare const MARKET_ROUTES: {
|
|
6
6
|
readonly overview: "/api/agent-plugins/overview";
|
|
7
|
+
readonly surfaceToggles: "/api/agent-plugins/surface-toggles";
|
|
8
|
+
readonly setSurfaceToggle: "/api/agent-plugins/surface-toggles/set";
|
|
7
9
|
readonly mcpStatus: "/api/agent-plugins/mcp-status";
|
|
8
10
|
readonly addMcpServer: "/api/agent-plugins/mcp-servers/add";
|
|
9
11
|
readonly lspStatus: "/api/agent-plugins/lsp-status";
|
|
@@ -16,7 +18,20 @@ export declare const MARKET_ROUTES: {
|
|
|
16
18
|
readonly config: "/api/agent-plugins/config";
|
|
17
19
|
readonly modelCatalog: "/api/agent-plugins/model-catalog";
|
|
18
20
|
readonly suite: "/api/agent-plugins/suite";
|
|
19
|
-
|
|
21
|
+
/**
|
|
22
|
+
* One suite document's authored text (GET). The query names the suite, the
|
|
23
|
+
* surface, and the document — `{ sourceId, suiteId, kind, name }` — and the
|
|
24
|
+
* body is read server-side when a reader opens the row, so the detail payload
|
|
25
|
+
* never carries a document's bytes.
|
|
26
|
+
*/
|
|
27
|
+
readonly suiteDocument: "/api/agent-plugins/suite/document";
|
|
28
|
+
/**
|
|
29
|
+
* One suite document's translation (POST). The body names the suite and the
|
|
30
|
+
* document — `{ sourceId, suiteId, kind, name }` — and never carries text, so
|
|
31
|
+
* this is the market detail page's counterpart of
|
|
32
|
+
* {@link userPanelTranslationRoute}: the file is re-read server-side.
|
|
33
|
+
*/
|
|
34
|
+
readonly suiteDocumentTranslation: "/api/agent-plugins/suite/document/translation";
|
|
20
35
|
readonly addSource: "/api/agent-plugins/sources/add";
|
|
21
36
|
readonly updateSource: "/api/agent-plugins/sources/update";
|
|
22
37
|
readonly adoptSource: "/api/agent-plugins/sources/adopt";
|
|
@@ -35,6 +50,8 @@ export declare const MARKET_ROUTES: {
|
|
|
35
50
|
readonly mcpBackend: "/api/agent-plugins/mcp-backend";
|
|
36
51
|
readonly setMcpBackend: "/api/agent-plugins/set-mcp-backend";
|
|
37
52
|
readonly userPanel: "/api/agent-plugins/user-panel";
|
|
53
|
+
readonly menuRowFaces: "/api/agent-plugins/menu-row-faces";
|
|
54
|
+
readonly clearTranslations: "/api/agent-plugins/translations/clear";
|
|
38
55
|
};
|
|
39
56
|
/** One timeout's three layers: the user's value, the suite declaration, and the value in force. */
|
|
40
57
|
export interface ServerTimeoutPolicy {
|
|
@@ -133,6 +150,15 @@ export interface ModelCatalogPayload {
|
|
|
133
150
|
export type UserPanelMutation = 'create' | 'update' | 'delete';
|
|
134
151
|
/** Build one user-panel list route URL (`GET`, no mutation). */
|
|
135
152
|
export declare function userPanelRoute(kind: UserPanelKind): string;
|
|
153
|
+
/**
|
|
154
|
+
* Build the document-translation route URL for one panel's entries (POST).
|
|
155
|
+
*
|
|
156
|
+
* It sits under the entry segment because it translates one entry's document,
|
|
157
|
+
* and it is a POST because it queues provider work — the entry it names is the
|
|
158
|
+
* only input, and the server re-reads that entry rather than trusting text
|
|
159
|
+
* from the page.
|
|
160
|
+
*/
|
|
161
|
+
export declare function userPanelTranslationRoute(kind: UserPanelKind): string;
|
|
136
162
|
/** Build one user-panel mutation route URL (all POSTs). */
|
|
137
163
|
export declare function userPanelMutationRoute(kind: UserPanelKind, mutation: UserPanelMutation, name?: string): string;
|
|
138
164
|
/** The MCP mount backend state reported to the settings page. */
|
|
@@ -211,6 +237,8 @@ export interface SuiteOverviewCard {
|
|
|
211
237
|
name: string;
|
|
212
238
|
version?: string;
|
|
213
239
|
description?: string;
|
|
240
|
+
/** The description translated for the panel's locale; absent means render `description`. */
|
|
241
|
+
translatedDescription?: string;
|
|
214
242
|
keywords: string[];
|
|
215
243
|
surfaces: SuiteSurfaceCounts;
|
|
216
244
|
enabled: boolean;
|
|
@@ -238,6 +266,13 @@ export interface OverviewPayload {
|
|
|
238
266
|
};
|
|
239
267
|
/** Unmanaged `.sources/` checkouts (manual clones) available for adoption. */
|
|
240
268
|
unmanaged?: UnmanagedSource[];
|
|
269
|
+
/**
|
|
270
|
+
* Translatable chunks still waiting for a translation, absent or 0 when none
|
|
271
|
+
* are. One chunk counts once, so a card contributes one per chunk of its
|
|
272
|
+
* description still in flight. The panel re-reads while this is non-zero so a
|
|
273
|
+
* translated card replaces the original text without a manual refresh.
|
|
274
|
+
*/
|
|
275
|
+
translationPending?: number;
|
|
241
276
|
}
|
|
242
277
|
/** Host-side progress of the source mutation currently in flight. */
|
|
243
278
|
export interface SourceProgress {
|
|
@@ -252,14 +287,16 @@ export interface SuiteSkillMeta {
|
|
|
252
287
|
whenToUse?: string;
|
|
253
288
|
path: string;
|
|
254
289
|
}
|
|
255
|
-
/**
|
|
256
|
-
|
|
290
|
+
/**
|
|
291
|
+
* One command or agent as the suite detail payload carries it: the identity its
|
|
292
|
+
* row renders, never the body. The text is a separate read, made when a reader
|
|
293
|
+
* opens that row.
|
|
294
|
+
*/
|
|
295
|
+
export interface SuiteDocumentMeta {
|
|
257
296
|
name: string;
|
|
297
|
+
/** The document's frontmatter `description`, when it declares one. */
|
|
258
298
|
description?: string;
|
|
259
|
-
content: string;
|
|
260
299
|
}
|
|
261
|
-
/** Claude Code agent preview alias retained for feature-specific readability. */
|
|
262
|
-
export type AgentPreview = MarkdownPreview;
|
|
263
300
|
/** One LSP definition preview in a suite detail response. */
|
|
264
301
|
export interface LspPreview {
|
|
265
302
|
name: string;
|
|
@@ -301,11 +338,15 @@ export interface McpServerDetail {
|
|
|
301
338
|
}
|
|
302
339
|
/** Full suite detail response served by the detail modal. */
|
|
303
340
|
export interface SuiteDetail {
|
|
341
|
+
/** Description units still pending; absent means settled. */
|
|
342
|
+
translationPending?: number;
|
|
304
343
|
sourceId: string;
|
|
305
344
|
suiteId: string;
|
|
306
345
|
name: string;
|
|
307
346
|
version: string | null;
|
|
308
347
|
description: string | null;
|
|
348
|
+
/** The description translated for the panel's locale; absent means render `description`. */
|
|
349
|
+
translatedDescription?: string;
|
|
309
350
|
author: string | null;
|
|
310
351
|
keywords: string[];
|
|
311
352
|
/** Last modification of the suite checkout, as an ISO timestamp; null when it cannot be read. */
|
|
@@ -325,21 +366,21 @@ export interface SuiteDetail {
|
|
|
325
366
|
count: number;
|
|
326
367
|
entries: HookPreview[];
|
|
327
368
|
};
|
|
328
|
-
commands:
|
|
329
|
-
agents:
|
|
369
|
+
commands: SuiteDocumentMeta[];
|
|
370
|
+
agents: SuiteDocumentMeta[];
|
|
330
371
|
lsp: LspSurfaceDetail;
|
|
331
372
|
errors: string[];
|
|
332
373
|
mcpErrors: string[];
|
|
333
374
|
}
|
|
334
|
-
/** One
|
|
335
|
-
export interface
|
|
375
|
+
/** One document's full authored text, served by the suite document route. */
|
|
376
|
+
export interface SuiteDocumentText {
|
|
336
377
|
name: string;
|
|
337
|
-
description: string;
|
|
338
378
|
content: string;
|
|
339
|
-
path: string;
|
|
340
379
|
}
|
|
341
380
|
/** A user panel entry (skills / commands / agent personas) over HTTP. */
|
|
342
381
|
export interface UserPanelEntryWire {
|
|
382
|
+
/** Description units still pending on an entry read; absent means settled. */
|
|
383
|
+
translationPending?: number;
|
|
343
384
|
/**
|
|
344
385
|
* Entry name: the name its document declares, else its document name — the
|
|
345
386
|
* file's base name, or, on a panel that reads subdirectories, the document's
|
|
@@ -347,26 +388,56 @@ export interface UserPanelEntryWire {
|
|
|
347
388
|
*/
|
|
348
389
|
name: string;
|
|
349
390
|
description: string;
|
|
391
|
+
/** The description translated for the panel's locale; absent means render `description`. */
|
|
392
|
+
translatedDescription?: string;
|
|
350
393
|
disabled: boolean;
|
|
351
394
|
/** User entries are editable; suite-owned plugin entries answer only to the enable switch. */
|
|
352
395
|
origin: 'user' | 'plugin';
|
|
353
396
|
id?: string;
|
|
354
|
-
|
|
397
|
+
/**
|
|
398
|
+
* The document's own text, exactly as authored. The list read omits it — it
|
|
399
|
+
* was the bulk of the response and the client fetches the one entry it opens
|
|
400
|
+
* — while the single-entry read and the raw user store always carry it.
|
|
401
|
+
*/
|
|
402
|
+
rawText?: string;
|
|
355
403
|
/** Human-readable suite owner for a plugin-provided entry. */
|
|
356
404
|
suiteName?: string;
|
|
357
405
|
metadata: Record<string, unknown>;
|
|
358
406
|
path: string;
|
|
359
407
|
/** The entry file's last modification, as an ISO timestamp. */
|
|
360
408
|
updatedAt?: string | null;
|
|
361
|
-
|
|
409
|
+
/**
|
|
410
|
+
* Frontmatter-stripped body. Supplied by the raw user store, which needs it
|
|
411
|
+
* for a command's payload; the panel view deliberately omits it, because the
|
|
412
|
+
* client renders `rawText` and sending both shipped the same document twice.
|
|
413
|
+
*/
|
|
414
|
+
content?: string;
|
|
362
415
|
/** Suite checkout root of a plugin-provided file; runtime consumers resolve `${PLUGIN_ROOT}` against it. */
|
|
363
416
|
suiteRoot?: string;
|
|
364
417
|
/** The suite's `${PLUGIN_DATA}` directory, for the same runtime resolution. */
|
|
365
418
|
suiteData?: string;
|
|
366
419
|
}
|
|
420
|
+
/** The `/` menu groups whose rows this plugin owns. */
|
|
421
|
+
export type MenuRowSource = 'commands' | 'skills';
|
|
422
|
+
/**
|
|
423
|
+
* One localized `/` menu row face over HTTP.
|
|
424
|
+
*
|
|
425
|
+
* The row's identity fields never travel: the client matches on `source` +
|
|
426
|
+
* `name` and the host row supplies everything else. Only the description is
|
|
427
|
+
* translated — a name is an identifier the user types and matches against
|
|
428
|
+
* upstream documentation, so no field here can override the host's title.
|
|
429
|
+
*/
|
|
430
|
+
export interface MenuRowFaceWire {
|
|
431
|
+
/** Which menu group the row belongs to: the slash-command group or the skill group. */
|
|
432
|
+
source: MenuRowSource;
|
|
433
|
+
/** Command call name or skill name, exactly as the menu row carries it. */
|
|
434
|
+
name: string;
|
|
435
|
+
/** Translated description; absent when nothing was translated. */
|
|
436
|
+
description?: string;
|
|
437
|
+
}
|
|
367
438
|
/** The user panel surface the market exposes. */
|
|
368
439
|
export type UserPanelKind = 'skills' | 'commands' | 'agents';
|
|
369
440
|
/** Build a suite-detail URL without duplicating route or query encoding logic. */
|
|
370
441
|
export declare function suiteRoute(sourceId: string, suiteId: string): string;
|
|
371
|
-
/** Build a
|
|
372
|
-
export declare function
|
|
442
|
+
/** Build a suite-document URL without duplicating route or query encoding logic. */
|
|
443
|
+
export declare function documentRoute(sourceId: string, suiteId: string, kind: UserPanelKind, name: string): string;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { McpServerSse, McpServerStreamableHttp, McpServerStdio } from '../model/types.js';
|
|
2
|
+
/** HTTP-shaped server sources (url + headers carriers) overrides can edit. */
|
|
3
|
+
type McpServerHttp = McpServerStreamableHttp | McpServerSse;
|
|
4
|
+
/** The largest timeout a bridge config and the host timer can hold. */
|
|
5
|
+
export declare const MAX_TIMEOUT_MS = 2147483647;
|
|
6
|
+
/** Per-server override record; absent fields pass through from the source. */
|
|
7
|
+
export type McpServerOverride = {
|
|
8
|
+
/** Validated complete user configuration, retaining source-owned identity. */
|
|
9
|
+
config?: McpServerStdio | McpServerHttp;
|
|
10
|
+
/** Disabled servers are not mounted at all (default enabled). */
|
|
11
|
+
enabled?: boolean;
|
|
12
|
+
/** Replaces the source URL (streamable-http only). */
|
|
13
|
+
url?: string;
|
|
14
|
+
/** Replaces the whole header map (streamable-http only). */
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
/** Replaces the whole env map (stdio). */
|
|
17
|
+
env?: Record<string, string>;
|
|
18
|
+
/** Replaces the whole args list (stdio). */
|
|
19
|
+
args?: string[];
|
|
20
|
+
/** Replaces the OAuth block (streamable-http only); `enabled: false` disables a source-declared flow. */
|
|
21
|
+
auth?: {
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
scope?: string;
|
|
24
|
+
};
|
|
25
|
+
/** Per-tool-call timeout in milliseconds; absent inherits the suite's value or the bridge default. */
|
|
26
|
+
toolCallTimeoutMs?: number;
|
|
27
|
+
/** Startup timeout in milliseconds; absent inherits the suite's value or the bridge default. */
|
|
28
|
+
startupTimeoutMs?: number;
|
|
29
|
+
/** Tool names the user turned off; the suite's own deny list stays in force beside them. */
|
|
30
|
+
disabledTools?: string[];
|
|
31
|
+
};
|
|
32
|
+
/** Timeout fields a policy save can set (`number`) or clear back to inheritance (`null`). */
|
|
33
|
+
export interface McpTimeoutPatch {
|
|
34
|
+
toolCallTimeoutMs?: number | null;
|
|
35
|
+
startupTimeoutMs?: number | null;
|
|
36
|
+
}
|
|
37
|
+
/** Overrides for one suite, keyed by mcp.json server key. */
|
|
38
|
+
export type McpSuiteOverrides = Record<string, McpServerOverride>;
|
|
39
|
+
export {};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/** Browser-safe MCP status records shared by host aggregation and client rendering. */
|
|
2
2
|
/** A tool observed in the host MCP tool registry. */
|
|
3
3
|
export interface McpStatusTool {
|
|
4
|
+
/** The tool's call name, as the server advertises it; never translated. */
|
|
4
5
|
name: string;
|
|
5
6
|
description?: string;
|
|
7
|
+
/** The description translated for the panel's locale; absent means render `description`. */
|
|
8
|
+
translatedDescription?: string;
|
|
6
9
|
/** The advertised input schema, kept only while it stays small enough to transport; absent otherwise. */
|
|
7
10
|
parameters?: unknown;
|
|
8
11
|
}
|
|
@@ -85,4 +88,10 @@ export interface McpStatusPayload {
|
|
|
85
88
|
/** The mount backend the rows were observed under; `host` cannot enforce tool
|
|
86
89
|
* filters or startup timeouts, so the panel disables those controls. */
|
|
87
90
|
backend?: 'builtin' | 'host';
|
|
91
|
+
/**
|
|
92
|
+
* Descriptions this read queued that have not landed yet; absent means the
|
|
93
|
+
* text is settled. The panel re-reads while it is non-zero, so translated
|
|
94
|
+
* text appears without the user pressing refresh.
|
|
95
|
+
*/
|
|
96
|
+
translationPending?: number;
|
|
88
97
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** Browser-safe resource-window wire records and route constants. */
|
|
2
|
+
import { type SurfaceToggleKey } from './surface-toggles.js';
|
|
3
|
+
/** Fixed resource-window HTTP routes. */
|
|
4
|
+
export declare const RESOURCE_ROUTES: {
|
|
5
|
+
readonly inventory: "/api/agent-plugins/resource-window";
|
|
6
|
+
readonly setEntry: "/api/agent-plugins/resource-window/entry";
|
|
7
|
+
readonly reset: "/api/agent-plugins/resource-window/reset";
|
|
8
|
+
readonly applyFavorite: "/api/agent-plugins/resource-window/favorites/apply";
|
|
9
|
+
readonly saveFavorite: "/api/agent-plugins/resource-window/favorites/save";
|
|
10
|
+
readonly deleteFavorite: "/api/agent-plugins/resource-window/favorites/delete";
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* The window's six tabs, each the facet of one switchable surface. Market rows
|
|
14
|
+
* are installed suites; the other five list the entries that surface mounts.
|
|
15
|
+
*/
|
|
16
|
+
export type ResourceFace = SurfaceToggleKey;
|
|
17
|
+
/** The tab order the window shows, matching the prototype. */
|
|
18
|
+
export declare const RESOURCE_FACE_ORDER: readonly ResourceFace[];
|
|
19
|
+
/** One inventory row: one already-installed resource this workspace mounts. */
|
|
20
|
+
export interface ResourceEntryWire {
|
|
21
|
+
/** Stable id: `${face}:${entryKey}` — unique across tabs. */
|
|
22
|
+
id: string;
|
|
23
|
+
face: ResourceFace;
|
|
24
|
+
/** Display name: suite name, skill/command/agent name, or server name. */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Version when the source declares one; absent otherwise. */
|
|
27
|
+
version?: string;
|
|
28
|
+
/** One provenance word: the owning source, suite, or "direct". */
|
|
29
|
+
source: string;
|
|
30
|
+
/** Description for the card view's body line. */
|
|
31
|
+
description?: string;
|
|
32
|
+
/** Surface counts for the market tab's footer row; absent elsewhere. */
|
|
33
|
+
counts?: Array<{
|
|
34
|
+
label: string;
|
|
35
|
+
count: number;
|
|
36
|
+
}>;
|
|
37
|
+
/** Whether this workspace mounts the entry right now. */
|
|
38
|
+
enabled: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Whether the user-level (global) state itself has the entry off: the
|
|
41
|
+
* settings page's own disable, not this workspace's filter. A globally off
|
|
42
|
+
* entry reads disabled here and its switch locks — this surface can filter
|
|
43
|
+
* further, never re-enable what the user level turned off.
|
|
44
|
+
*/
|
|
45
|
+
globalDisabled?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/** The workspace's installed inventory with per-entry filter state. */
|
|
48
|
+
export interface ResourceWindowPayload {
|
|
49
|
+
workspace: string;
|
|
50
|
+
entries: ResourceEntryWire[];
|
|
51
|
+
favorites: ResourceFavoriteWire[];
|
|
52
|
+
}
|
|
53
|
+
/** One cross-project favorite: a complete snapshot of every switch. */
|
|
54
|
+
export interface ResourceFavoriteWire {
|
|
55
|
+
id: string;
|
|
56
|
+
name: string;
|
|
57
|
+
createdAt: string;
|
|
58
|
+
/** The six surface switches at save time. */
|
|
59
|
+
surfaces: Record<SurfaceToggleKey, boolean>;
|
|
60
|
+
/** Entry ids turned off at save time, across all faces. */
|
|
61
|
+
offEntries: string[];
|
|
62
|
+
}
|
|
63
|
+
/** The favorite payload the save route accepts and stores verbatim. */
|
|
64
|
+
export interface ResourceFavoriteInput {
|
|
65
|
+
name: string;
|
|
66
|
+
surfaces: Record<SurfaceToggleKey, boolean>;
|
|
67
|
+
offEntries: string[];
|
|
68
|
+
}
|
|
69
|
+
/** Read one untrusted favorite input; unknown faces and non-strings drop out. */
|
|
70
|
+
export declare function resolveFavoriteInput(value: unknown): ResourceFavoriteInput | undefined;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe settings contract of the market's host settings namespace: the
|
|
3
|
+
* namespace key, the fields with their defaults, and the one reader that turns
|
|
4
|
+
* a stored section into resolved values.
|
|
5
|
+
*
|
|
6
|
+
* The defaults live here and nowhere else. The namespace schema declares them
|
|
7
|
+
* to the host, the node half reads them back through {@link resolveMarketSettings},
|
|
8
|
+
* and the browser half — which cannot import `src/runtime` — reads the same
|
|
9
|
+
* resolved values off the settings snapshot it is handed. Changing a default is
|
|
10
|
+
* therefore a one-line edit in this module.
|
|
11
|
+
*
|
|
12
|
+
* One default is not a constant: `translationEnabled` follows the interface
|
|
13
|
+
* language, so its reader takes the language as an argument and
|
|
14
|
+
* {@link interfaceLanguageTranslates} answers that default only. An explicit
|
|
15
|
+
* preference is independent of language. {@link resolveTranslationTarget}
|
|
16
|
+
* selects the language of displayed translations, including English.
|
|
17
|
+
*
|
|
18
|
+
* @module contracts/settings
|
|
19
|
+
*/
|
|
20
|
+
/** Settings namespace this plugin registers; the key the plugin-config tab pairs our card by. */
|
|
21
|
+
export declare const MARKET_SETTINGS_NAMESPACE = "dsh-agent-plugins-market";
|
|
22
|
+
/** The persisted download-region setting: `auto` follows the interface language. */
|
|
23
|
+
export type DownloadRegionSetting = 'auto' | 'global' | 'china';
|
|
24
|
+
/** Every market setting with the value it resolves to when the document says nothing. */
|
|
25
|
+
export interface MarketSettings {
|
|
26
|
+
/** ON = the built-in MCP bridge with OAuth and SSE; OFF = host client compat mode. */
|
|
27
|
+
mcpEnhanced: boolean;
|
|
28
|
+
/** ON = native project Agent layouts (`.claude/`, `.agents/`) take part in discovery. */
|
|
29
|
+
scanProjectLayouts: boolean;
|
|
30
|
+
/** Download region for GitHub acquisition. */
|
|
31
|
+
downloadRegion: DownloadRegionSetting;
|
|
32
|
+
/** ON = the `report_market_issue` model tool is registered. */
|
|
33
|
+
feedbackEnabled: boolean;
|
|
34
|
+
/** ON = every configured source refreshes in the background. */
|
|
35
|
+
autoUpdateSources: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* ON = suite, skill, command, agent, MCP and LSP text is localized for the
|
|
38
|
+
* host locale. The stored value while the user has one, the interface
|
|
39
|
+
* language's default otherwise.
|
|
40
|
+
*/
|
|
41
|
+
translationEnabled: boolean;
|
|
42
|
+
/** ON = the composer carries the Agent preset manager entry (experimental). */
|
|
43
|
+
agentPresetsEnabled: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The default of every market setting — the single place one is written.
|
|
47
|
+
*
|
|
48
|
+
* These are user-visible behavior: a flip here is a behavior change that ships
|
|
49
|
+
* with its documentation, not a private implementation detail.
|
|
50
|
+
*
|
|
51
|
+
* `translationEnabled` is the one exception: the interface language decides it
|
|
52
|
+
* (see {@link interfaceLanguageTranslates}), so this constant is not where its
|
|
53
|
+
* effective default lives. It is what the browser store holds before the host
|
|
54
|
+
* answers, and that pre-answer state deliberately withholds the translation
|
|
55
|
+
* control rather than flashing it. The namespace schema declares no default for
|
|
56
|
+
* the field at all, an absence that is load-bearing: a schema default would
|
|
57
|
+
* reach the live config reference and erase the difference between "the user
|
|
58
|
+
* never set this" and "the user turned it off".
|
|
59
|
+
*/
|
|
60
|
+
export declare const MARKET_SETTINGS_DEFAULTS: MarketSettings;
|
|
61
|
+
/** Every field name the market's settings section carries. */
|
|
62
|
+
export type MarketSettingKey = keyof MarketSettings;
|
|
63
|
+
/**
|
|
64
|
+
* Narrow an untrusted stored region to a setting; anything else reads as the
|
|
65
|
+
* declared default.
|
|
66
|
+
* @param value - the stored `downloadRegion` value.
|
|
67
|
+
* @param fallback - the value an unrecognized input reads as.
|
|
68
|
+
*/
|
|
69
|
+
export declare function narrowDownloadRegion(value: unknown, fallback?: DownloadRegionSetting): DownloadRegionSetting;
|
|
70
|
+
/**
|
|
71
|
+
* Whether one interface language renders the market's Chinese dictionary.
|
|
72
|
+
*
|
|
73
|
+
* This is the host's own rule rather than a second reading of it:
|
|
74
|
+
* `bindHostLocale` (`runtime/host/host-locale.ts`) answers every preference
|
|
75
|
+
* that is not English with the Chinese dictionary, so as far as the interface is
|
|
76
|
+
* concerned everything that is not English is Chinese — an absent preference
|
|
77
|
+
* included, which the host reads as zh.
|
|
78
|
+
*
|
|
79
|
+
* This determines only the default display preference: Chinese starts on and
|
|
80
|
+
* English starts off. It must not gate an explicitly enabled translation.
|
|
81
|
+
* @param localePreference - the host `locale.preference`, or undefined while nothing supplies one.
|
|
82
|
+
*/
|
|
83
|
+
export declare function interfaceLanguageTranslates(localePreference: string | undefined): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* The language the interface renders, as the translation chain names it.
|
|
86
|
+
*
|
|
87
|
+
* The target follows the dictionary, not the preference tag. The market ships
|
|
88
|
+
* exactly one non-English dictionary and {@link bindHostLocale}'s counterpart
|
|
89
|
+
* resolves every preference that is not English to it, so a `ja` or `zh-Hant`
|
|
90
|
+
* reader is surrounded by Simplified Chinese copy: translating upstream text
|
|
91
|
+
* into Japanese, or into Traditional, would put the one part of the page the
|
|
92
|
+
* layer owns into a language nothing around it is written in. `zh` is the tag
|
|
93
|
+
* both machine endpoints already map to Simplified Chinese
|
|
94
|
+
* (`runtime/host/machine-translator.ts`) and the one the model hop names
|
|
95
|
+
* "Simplified Chinese"; a second dictionary would add a case here rather than a
|
|
96
|
+
* second reading of the preference somewhere else.
|
|
97
|
+
*
|
|
98
|
+
* Target selection is independent of whether translations are displayed.
|
|
99
|
+
* @param localePreference - the host `locale.preference`, or undefined while nothing supplies one.
|
|
100
|
+
* @returns the language rendered by the interface.
|
|
101
|
+
*/
|
|
102
|
+
export declare function resolveTranslationTarget(localePreference: string | undefined): 'zh' | 'en';
|
|
103
|
+
/**
|
|
104
|
+
* Resolve a stored settings section the way the host resolves it: each field
|
|
105
|
+
* takes its stored value when it is one this field accepts, and its default
|
|
106
|
+
* otherwise.
|
|
107
|
+
*
|
|
108
|
+
* The host hands the resolved section back on its own, but not every caller has
|
|
109
|
+
* one — the plugin's own halves read a section they may not have received yet,
|
|
110
|
+
* and a test hands in a bare literal. Funnelling all of them through this
|
|
111
|
+
* function is what keeps a second reading of "what does missing mean" from
|
|
112
|
+
* growing somewhere else.
|
|
113
|
+
*
|
|
114
|
+
* A stored boolean always wins: the user's own answer is never overridden by
|
|
115
|
+
* the language. Only a section that says nothing about the field takes the
|
|
116
|
+
* language's answer, which is what makes a language switch move the default for
|
|
117
|
+
* a user who never set the field and leave every other user alone.
|
|
118
|
+
* @param section - the stored (or absent) namespace section, untrusted.
|
|
119
|
+
* @param localePreference - the host `locale.preference` the language-derived default follows.
|
|
120
|
+
*/
|
|
121
|
+
export declare function resolveMarketSettings(section: unknown, localePreference?: string): MarketSettings;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Per-project on/off switches for the six surfaces the plugin mounts. */
|
|
2
|
+
/** The six switchable surfaces, in the order the composer control shows them. */
|
|
3
|
+
export declare const SURFACE_TOGGLE_KEYS: readonly ["market", "skills", "commands", "agents", "mcp", "lsp"];
|
|
4
|
+
/** One switchable surface. */
|
|
5
|
+
export type SurfaceToggleKey = (typeof SURFACE_TOGGLE_KEYS)[number];
|
|
6
|
+
/**
|
|
7
|
+
* The persisted toggle state for one workspace. Every key defaults to on: the
|
|
8
|
+
* file only records a project that turned something off, so the common case —
|
|
9
|
+
* no opinion — costs nothing and an absent file means "all surfaces on".
|
|
10
|
+
*/
|
|
11
|
+
export interface SurfaceToggles {
|
|
12
|
+
market: boolean;
|
|
13
|
+
skills: boolean;
|
|
14
|
+
commands: boolean;
|
|
15
|
+
agents: boolean;
|
|
16
|
+
mcp: boolean;
|
|
17
|
+
lsp: boolean;
|
|
18
|
+
}
|
|
19
|
+
/** The all-on default applied when a workspace has no recorded opinion. */
|
|
20
|
+
export declare const ALL_SURFACES_ON: SurfaceToggles;
|
|
21
|
+
/**
|
|
22
|
+
* Read one workspace's toggles from an untrusted record.
|
|
23
|
+
*
|
|
24
|
+
* Unknown keys are dropped and wrong-typed values fall back to on, so a
|
|
25
|
+
* hand-edited or future-shaped file degrades to "the known keys apply" the
|
|
26
|
+
* same way the other state files in this plugin do.
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveSurfaceToggles(value: unknown): SurfaceToggles;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The wire and domain vocabulary of the translation layer.
|
|
3
|
+
*
|
|
4
|
+
* A translation unit names one translatable field of one entity — a suite
|
|
5
|
+
* description, an MCP tool description — and the translated field set carries
|
|
6
|
+
* the results back to every surface that renders them. Kept free of imports so
|
|
7
|
+
* both the server layers and the client bundle can depend on it.
|
|
8
|
+
*
|
|
9
|
+
* Descriptions and document prose are translated. A name is an identifier the user types,
|
|
10
|
+
* greps, and matches against upstream documentation, and machine translation
|
|
11
|
+
* turned them into text that was harder to recognize than the original — so
|
|
12
|
+
* the layer never touches one.
|
|
13
|
+
*/
|
|
14
|
+
/** One translation backend: a public machine-translation endpoint or the user's own model. */
|
|
15
|
+
export type TranslationProviderId = 'google' | 'microsoft' | 'llm';
|
|
16
|
+
/** One translation backend: a public endpoint or the user's own model. */
|
|
17
|
+
export interface TranslationProvider {
|
|
18
|
+
/** Which provider this is; also the identity folded into the cache key. */
|
|
19
|
+
readonly id: TranslationProviderId;
|
|
20
|
+
/**
|
|
21
|
+
* Whether this provider can serve a call right now.
|
|
22
|
+
*
|
|
23
|
+
* Read per call and never cached: a model route provisions after the plugin's
|
|
24
|
+
* apply() returns, so an answer captured at composition time would report
|
|
25
|
+
* "unavailable" for the life of the process.
|
|
26
|
+
*/
|
|
27
|
+
available(): boolean;
|
|
28
|
+
/** Translate one batch, preserving order and length. Rejects on any failure. */
|
|
29
|
+
translate(request: {
|
|
30
|
+
texts: readonly string[];
|
|
31
|
+
locale: string;
|
|
32
|
+
signal: AbortSignal;
|
|
33
|
+
}): Promise<string[]>;
|
|
34
|
+
}
|
|
35
|
+
/** One surface whose entities are translated; matches the six switchable surfaces. */
|
|
36
|
+
export type TranslationSurfaceKind = 'market' | 'skills' | 'commands' | 'agents' | 'mcp' | 'lsp';
|
|
37
|
+
/**
|
|
38
|
+
* Which text of one entity a cached translation belongs to.
|
|
39
|
+
*
|
|
40
|
+
* The role is a cache-key slot rather than a rendering concern: a description
|
|
41
|
+
* and a document body retain distinct historical keys. The localizer can reuse
|
|
42
|
+
* one translation when their source text and target are identical.
|
|
43
|
+
*/
|
|
44
|
+
export type TranslationRole = 'description' | 'document';
|
|
45
|
+
/**
|
|
46
|
+
* The translated fields of one entity.
|
|
47
|
+
*
|
|
48
|
+
* The description is optional because it may be cached, still pending, or
|
|
49
|
+
* absent upstream. An absent field means "render the upstream text".
|
|
50
|
+
*/
|
|
51
|
+
export interface TranslationFields {
|
|
52
|
+
translatedDescription?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* One document body on its way to the target language.
|
|
56
|
+
*
|
|
57
|
+
* Each paragraph remains authored until every request for it succeeds.
|
|
58
|
+
* `pending` counts paragraphs with unfinished work. `failed` counts paragraphs
|
|
59
|
+
* that cannot currently produce a complete translation. Other paragraphs remain
|
|
60
|
+
* readable while those requests settle.
|
|
61
|
+
*/
|
|
62
|
+
export interface DocumentTranslation {
|
|
63
|
+
/** The body with complete translated paragraphs and authored fallbacks. */
|
|
64
|
+
text: string;
|
|
65
|
+
/** Complete Markdown with each translated paragraph directly after its original. */
|
|
66
|
+
bilingualText?: string;
|
|
67
|
+
/** Paragraphs with queued or running work; the client re-reads while this is non-zero. */
|
|
68
|
+
pending: number;
|
|
69
|
+
/** Paragraphs left original because translation failed or a sentence exceeds its safe budget. */
|
|
70
|
+
failed?: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Merge two optional field sets; the later one wins per field.
|
|
74
|
+
*
|
|
75
|
+
* A field left undefined in `next` leaves the `base` value in place, so a
|
|
76
|
+
* caller can layer a partial result over an earlier one without erasing it.
|
|
77
|
+
* @param base - the field set to start from.
|
|
78
|
+
* @param next - the field set layered on top.
|
|
79
|
+
* @returns a new field set holding the merged values.
|
|
80
|
+
*/
|
|
81
|
+
export declare function mergeTranslationFields(base: TranslationFields, next: TranslationFields): TranslationFields;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* agent's inbox with their producer identity attached. The host's message
|
|
5
5
|
* sources are merge-extensible — each producer declares its own kind through a
|
|
6
6
|
* module augmentation, and consumers fall through unknown kinds.
|
|
7
|
-
* @module
|
|
7
|
+
* @module contracts/host/plugin-message-source
|
|
8
8
|
*/
|
|
9
9
|
import type { UserMessage } from '@deepseek-ai/dsh-llm';
|
|
10
10
|
/** Producer identity of every follow-up message this plugin injects. */
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Portable public records. Host augmentations are available only through the host subpath. */
|
|
2
|
+
export * from './model/types.js';
|
|
3
|
+
export * from './contracts/settings.js';
|
|
4
|
+
export * from './contracts/extension-presets.js';
|
|
5
|
+
export type { MarketService, MarketQueries, MarketMutations } from './ports/queries.js';
|
|
@@ -59,6 +59,13 @@ export declare const PLUGIN_DATA_VARIABLES: ReadonlySet<string>;
|
|
|
59
59
|
export declare const PROJECT_DIR_VARIABLES: ReadonlySet<string>;
|
|
60
60
|
/** Claude Code names the directory holding the skill's own file; no dialect alias exists. */
|
|
61
61
|
export declare const SKILL_DIR_VARIABLE = "CLAUDE_SKILL_DIR";
|
|
62
|
+
/**
|
|
63
|
+
* The path names the Claude Code runtime exports to a spawned component. Only
|
|
64
|
+
* the claude-code spellings: a suite script reads a generic or other-dialect
|
|
65
|
+
* alias as a runtime marker, so exporting one would select another runtime's
|
|
66
|
+
* branch. Skill-directory names stay out because no process receives them.
|
|
67
|
+
*/
|
|
68
|
+
export declare const CLAUDE_COMPONENT_ENVIRONMENT: Readonly<Record<'root' | 'data' | 'projectDir', string>>;
|
|
62
69
|
/** Explicit project document formats and portable surfaces; execution stays in the runtime adapters. */
|
|
63
70
|
export type ProjectMcpFormat = 'mcpServers' | 'zcode' | 'codex';
|
|
64
71
|
export type ProjectHookFormat = 'claude' | 'zcode';
|
|
@@ -56,9 +56,9 @@ export interface SuiteManifest {
|
|
|
56
56
|
systemPrompt?: string;
|
|
57
57
|
systemPromptPath?: string;
|
|
58
58
|
layout: SuiteLayoutKind;
|
|
59
|
-
/** Absolute manifest file path. */
|
|
59
|
+
/** Absolute manifest file path, or empty for a metadata-only or aggregate suite. */
|
|
60
60
|
path: string;
|
|
61
|
-
/**
|
|
61
|
+
/** Sanitized manifest or directory name, or reserved `@skills` for an aggregate collection. */
|
|
62
62
|
id: string;
|
|
63
63
|
name: string;
|
|
64
64
|
version?: string;
|