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
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { googleTranslate, microsoftTranslate } from './machine-translator.js';
|
|
2
|
+
import { maskText, unmaskText } from './text-masking.js';
|
|
3
|
+
/** Retry is one subset of the original batch, with complete input semantics. */
|
|
4
|
+
const MAX_REPAIR_INPUTS = 20;
|
|
5
|
+
const STRUCTURE_MARKER = /⟪d\d+⟫/g;
|
|
6
|
+
function restoreAnswer(source, masked, answer) {
|
|
7
|
+
const text = unmaskText(answer, masked.placeholders);
|
|
8
|
+
if (text === undefined)
|
|
9
|
+
return undefined;
|
|
10
|
+
const expected = source.match(STRUCTURE_MARKER) ?? [];
|
|
11
|
+
const actual = text.match(STRUCTURE_MARKER) ?? [];
|
|
12
|
+
if (expected.length !== actual.length || expected.some((marker, i) => marker !== actual[i]))
|
|
13
|
+
return undefined;
|
|
14
|
+
return text.replace(STRUCTURE_MARKER, '').trim() === '' ? undefined : text;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Preserve valid siblings and retry damaged structural inputs once, in full.
|
|
18
|
+
* A failed repair stays empty for the localizer retry policy. Formatting leaves
|
|
19
|
+
* never become separate translation requests.
|
|
20
|
+
*/
|
|
21
|
+
function withMasking(base) {
|
|
22
|
+
return {
|
|
23
|
+
id: base.id,
|
|
24
|
+
available: () => base.available(),
|
|
25
|
+
async translate(request) {
|
|
26
|
+
const masked = request.texts.map(maskText);
|
|
27
|
+
const translated = await base.translate({ ...request, texts: masked.map(entry => entry.text) });
|
|
28
|
+
request.signal.throwIfAborted();
|
|
29
|
+
if (translated.length !== masked.length)
|
|
30
|
+
throw new Error(base.id + ' translate: result count mismatch');
|
|
31
|
+
const restored = request.texts.map(() => '');
|
|
32
|
+
/** First reason one slot could not be answered, reported only if no slot was. */
|
|
33
|
+
let firstFailure;
|
|
34
|
+
const repairs = [];
|
|
35
|
+
for (let index = 0; index < request.texts.length; index++) {
|
|
36
|
+
const source = request.texts[index];
|
|
37
|
+
const answer = translated[index];
|
|
38
|
+
const text = restoreAnswer(source, masked[index], answer);
|
|
39
|
+
if (text !== undefined) {
|
|
40
|
+
restored[index] = text;
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const markers = source.match(STRUCTURE_MARKER) ?? [];
|
|
44
|
+
// Empty results and unstructured descriptions keep the existing retry
|
|
45
|
+
// policy. Only damaged structural prose gets the whole-input retry.
|
|
46
|
+
const prose = answer.replace(/⟦?[A-Z]\d+⟧|⟪d\d+⟫/g, '').trim();
|
|
47
|
+
if (markers.length === 0) {
|
|
48
|
+
firstFailure ??= base.id + ' translate: the answer lost or duplicated a placeholder';
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (prose === '') {
|
|
52
|
+
firstFailure ??= base.id + ' translate: invalid translated text';
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (repairs.length < MAX_REPAIR_INPUTS)
|
|
56
|
+
repairs.push(index);
|
|
57
|
+
}
|
|
58
|
+
if (repairs.length > 0) {
|
|
59
|
+
request.signal.throwIfAborted();
|
|
60
|
+
try {
|
|
61
|
+
const answers = await base.translate({ ...request, texts: repairs.map(index => masked[index].text) });
|
|
62
|
+
request.signal.throwIfAborted();
|
|
63
|
+
if (answers.length !== repairs.length)
|
|
64
|
+
throw new Error(base.id + ' translate: repair result count mismatch');
|
|
65
|
+
repairs.forEach((index, offset) => {
|
|
66
|
+
restored[index] = restoreAnswer(request.texts[index], masked[index], answers[offset]) ?? '';
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
if (request.signal.aborted)
|
|
71
|
+
throw error;
|
|
72
|
+
// Valid siblings remain available when the complete-input retry fails.
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
request.signal.throwIfAborted();
|
|
76
|
+
if (restored.every(text => text === ''))
|
|
77
|
+
throw new Error(firstFailure ?? base.id + ' translate: no valid translations');
|
|
78
|
+
return restored;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Build the ordered chain: google -> microsoft -> llm.
|
|
84
|
+
*
|
|
85
|
+
* The two public endpoints report themselves available unconditionally: they
|
|
86
|
+
* need no key, no registration and no configuration, which is what makes
|
|
87
|
+
* translation work out of the box on a fresh deployment. Whether one of them
|
|
88
|
+
* actually answers is settled by calling it, and the chain's circuit breaker is
|
|
89
|
+
* what stops a blocked network from costing a timeout per batch.
|
|
90
|
+
*
|
|
91
|
+
* The model hop is absent when the caller has none, so a deployment without a
|
|
92
|
+
* configured route gets a two-hop chain rather than a hop that always fails.
|
|
93
|
+
*
|
|
94
|
+
* The host context is accepted but unread: neither keyless endpoint needs a
|
|
95
|
+
* seam, and the field is part of the composition root's frozen call shape so a
|
|
96
|
+
* keyed provider can join the chain without changing that call.
|
|
97
|
+
* @param options - the host context and the already-built model provider.
|
|
98
|
+
* @returns the chain, best hop first.
|
|
99
|
+
*/
|
|
100
|
+
export function createTranslationProviders(options) {
|
|
101
|
+
const providers = [
|
|
102
|
+
withMasking({
|
|
103
|
+
id: 'google',
|
|
104
|
+
available: () => true,
|
|
105
|
+
translate: async (request) => (await googleTranslate(request)).texts
|
|
106
|
+
}),
|
|
107
|
+
withMasking({
|
|
108
|
+
id: 'microsoft',
|
|
109
|
+
available: () => true,
|
|
110
|
+
translate: async (request) => (await microsoftTranslate(request)).texts
|
|
111
|
+
})
|
|
112
|
+
];
|
|
113
|
+
if (options.llm !== undefined)
|
|
114
|
+
providers.push(withMasking(options.llm));
|
|
115
|
+
return providers;
|
|
116
|
+
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,130 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Function plugin (named exports, no default export). It registers one skill
|
|
5
|
-
* provider feeding enabled suites into `ctx.skills`, reconciles enabled
|
|
6
|
-
* suites' `mcp.json` servers into live self-built bridge mounts (stdio,
|
|
7
|
-
* Streamable HTTP with OAuth, and legacy SSE — no host MCP client needed),
|
|
8
|
-
* and mounts the market page's HTTP routes on the web server. Skills and MCP
|
|
9
|
-
* tools are exposed through the host's native model surfaces; this plugin
|
|
10
|
-
* does not register a redundant suite-inventory model tool.
|
|
11
|
-
*
|
|
12
|
-
* Requires `ctx.skills` (the dsh skill registry). MCP mounting is
|
|
13
|
-
* self-contained: suites' MCP servers mount through the market's own bridge
|
|
14
|
-
* plugin on the host `tools` registry.
|
|
15
|
-
*/
|
|
16
|
-
import { type Context, type Volatile } from '@deepseek-ai/cordis';
|
|
17
|
-
import z from '@deepseek-ai/schemastery';
|
|
18
|
-
import type { DownloadRegionSetting } from './contracts/settings.js';
|
|
19
|
-
import type { SourceRef } from './model/types.js';
|
|
20
|
-
export declare const name = "dsh-agent-plugins-market";
|
|
21
|
-
export declare const inject: string[];
|
|
22
|
-
/** Host configuration. */
|
|
23
|
-
/** Host configuration; the five market settings arrive as volatile references the host updates in place. */
|
|
24
|
-
export interface Config {
|
|
25
|
-
/** User-dimension suite root; defaults to `~/.dsh/agent-plugins` (`$DSH_HOME/agent-plugins`). */
|
|
26
|
-
userRoot?: string;
|
|
27
|
-
/** Legacy mutable data root to migrate; writes always use the canonical root/data. */
|
|
28
|
-
dataRoot?: string;
|
|
29
|
-
/** Initial repository sources, merged into the persisted state on first load. */
|
|
30
|
-
sources?: SourceRef[];
|
|
31
|
-
/**
|
|
32
|
-
* Git/archive acquisition tuning: `proxy` (http/https proxy URL),
|
|
33
|
-
* `insteadOf` URL-prefix rewrites (mirror acceleration), `timeoutMs` per
|
|
34
|
-
* git invocation, `cloneRetry` (default true), `fallbackTarball` (retry a
|
|
35
|
-
* failed GitHub clone as a codeload tarball download; default false), and
|
|
36
|
-
* `allowHttpArchives` (permit plain-http archive URLs; default false).
|
|
37
|
-
*/
|
|
38
|
-
git?: {
|
|
39
|
-
proxy?: string;
|
|
40
|
-
insteadOf?: Record<string, string>;
|
|
41
|
-
timeoutMs?: number;
|
|
42
|
-
cloneRetry?: boolean;
|
|
43
|
-
fallbackTarball?: boolean;
|
|
44
|
-
allowHttpArchives?: boolean;
|
|
45
|
-
};
|
|
46
|
-
/** MCP mount backend switch; updated live through the host settings service. */
|
|
47
|
-
mcpEnhanced: Volatile<boolean | undefined>;
|
|
48
|
-
/** Project-layout discovery switch; updated live through the host settings service. */
|
|
49
|
-
scanProjectLayouts: Volatile<boolean | undefined>;
|
|
50
|
-
/** Download region choice; updated live through the host settings service. */
|
|
51
|
-
downloadRegion: Volatile<DownloadRegionSetting | undefined>;
|
|
52
|
-
/** Experience-feedback tool switch; updated live through the host settings service. */
|
|
53
|
-
feedbackEnabled: Volatile<boolean | undefined>;
|
|
54
|
-
/** Background source-update switch; updated live through the host settings service. */
|
|
55
|
-
autoUpdateSources: Volatile<boolean | undefined>;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Schemastery projection the host loader reads: the five volatile fields become
|
|
59
|
-
* the `dsh-agent-plugins-market` settings namespace (the Plugins panel's
|
|
60
|
-
* configuration page reads it), while the startup fields stay plain.
|
|
61
|
-
*/
|
|
62
|
-
/** The schema's input face: every field optional, exactly what a profile patch may carry. */
|
|
63
|
-
export interface ConfigInput {
|
|
64
|
-
userRoot?: string | null;
|
|
65
|
-
dataRoot?: string | null;
|
|
66
|
-
sources?: unknown;
|
|
67
|
-
git?: {
|
|
68
|
-
proxy?: string | null;
|
|
69
|
-
insteadOf?: Record<string, unknown>;
|
|
70
|
-
timeoutMs?: number | null;
|
|
71
|
-
cloneRetry?: boolean | null;
|
|
72
|
-
fallbackTarball?: boolean | null;
|
|
73
|
-
allowHttpArchives?: boolean | null;
|
|
74
|
-
};
|
|
75
|
-
mcpEnhanced?: boolean | null;
|
|
76
|
-
scanProjectLayouts?: boolean | null;
|
|
77
|
-
downloadRegion?: 'auto' | 'global' | 'china' | null;
|
|
78
|
-
feedbackEnabled?: boolean | null;
|
|
79
|
-
autoUpdateSources?: boolean | null;
|
|
80
|
-
}
|
|
81
|
-
export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
82
|
-
userRoot: z<string | undefined, string | undefined, "plain">;
|
|
83
|
-
dataRoot: z<string | undefined, string | undefined, "plain">;
|
|
84
|
-
sources: z<any, any, "plain">;
|
|
85
|
-
git: z<Schemastery.ObjectS<NoInfer<{
|
|
86
|
-
proxy: z<string, string, "plain">;
|
|
87
|
-
insteadOf: z<import("@deepseek-ai/cosmokit").Dict<string, any>, import("@deepseek-ai/cosmokit").Dict<string, any>, "plain">;
|
|
88
|
-
timeoutMs: z<number, number, "plain">;
|
|
89
|
-
cloneRetry: z<boolean, boolean, "plain">;
|
|
90
|
-
fallbackTarball: z<boolean, boolean, "plain">;
|
|
91
|
-
allowHttpArchives: z<boolean, boolean, "plain">;
|
|
92
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
93
|
-
proxy: z<string, string, "plain">;
|
|
94
|
-
insteadOf: z<import("@deepseek-ai/cosmokit").Dict<string, any>, import("@deepseek-ai/cosmokit").Dict<string, any>, "plain">;
|
|
95
|
-
timeoutMs: z<number, number, "plain">;
|
|
96
|
-
cloneRetry: z<boolean, boolean, "plain">;
|
|
97
|
-
fallbackTarball: z<boolean, boolean, "plain">;
|
|
98
|
-
allowHttpArchives: z<boolean, boolean, "plain">;
|
|
99
|
-
}>>, "plain">;
|
|
100
|
-
mcpEnhanced: z<boolean, boolean, "volatile-defined">;
|
|
101
|
-
scanProjectLayouts: z<boolean, boolean, "volatile-defined">;
|
|
102
|
-
downloadRegion: z<"auto" | "global" | "china", "auto" | "global" | "china", "volatile-defined">;
|
|
103
|
-
feedbackEnabled: z<boolean, boolean, "volatile-defined">;
|
|
104
|
-
autoUpdateSources: z<boolean, boolean, "volatile-defined">;
|
|
105
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
106
|
-
userRoot: z<string | undefined, string | undefined, "plain">;
|
|
107
|
-
dataRoot: z<string | undefined, string | undefined, "plain">;
|
|
108
|
-
sources: z<any, any, "plain">;
|
|
109
|
-
git: z<Schemastery.ObjectS<NoInfer<{
|
|
110
|
-
proxy: z<string, string, "plain">;
|
|
111
|
-
insteadOf: z<import("@deepseek-ai/cosmokit").Dict<string, any>, import("@deepseek-ai/cosmokit").Dict<string, any>, "plain">;
|
|
112
|
-
timeoutMs: z<number, number, "plain">;
|
|
113
|
-
cloneRetry: z<boolean, boolean, "plain">;
|
|
114
|
-
fallbackTarball: z<boolean, boolean, "plain">;
|
|
115
|
-
allowHttpArchives: z<boolean, boolean, "plain">;
|
|
116
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
117
|
-
proxy: z<string, string, "plain">;
|
|
118
|
-
insteadOf: z<import("@deepseek-ai/cosmokit").Dict<string, any>, import("@deepseek-ai/cosmokit").Dict<string, any>, "plain">;
|
|
119
|
-
timeoutMs: z<number, number, "plain">;
|
|
120
|
-
cloneRetry: z<boolean, boolean, "plain">;
|
|
121
|
-
fallbackTarball: z<boolean, boolean, "plain">;
|
|
122
|
-
allowHttpArchives: z<boolean, boolean, "plain">;
|
|
123
|
-
}>>, "plain">;
|
|
124
|
-
mcpEnhanced: z<boolean, boolean, "volatile-defined">;
|
|
125
|
-
scanProjectLayouts: z<boolean, boolean, "volatile-defined">;
|
|
126
|
-
downloadRegion: z<"auto" | "global" | "china", "auto" | "global" | "china", "volatile-defined">;
|
|
127
|
-
feedbackEnabled: z<boolean, boolean, "volatile-defined">;
|
|
128
|
-
autoUpdateSources: z<boolean, boolean, "volatile-defined">;
|
|
129
|
-
}>>, "plain">;
|
|
130
|
-
export declare function apply(ctx: Context, config?: Config): Promise<void>;
|
|
1
|
+
/** Public installation entry; domain ownership lives in private workspace packages. */
|
|
2
|
+
export * from './packages/market-bundle/src/index.js';
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import type { LspLegacySeamMigration, LspStatusPayload } from '
|
|
2
|
-
import type { OverviewPayload, ServerConfigPayload,
|
|
3
|
-
import type { McpStatusPayload } from '
|
|
4
|
-
import type { SourceRef, Suite, SuiteSurfaceKey } from '
|
|
5
|
-
import type { McpBackend } from '
|
|
6
|
-
import type { McpMountDiagnostic } from '
|
|
7
|
-
import { type McpServerOverride, type McpSuiteOverrides } from '
|
|
8
|
-
import { type CatalogGitOptions, type CatalogOptions } from '
|
|
9
|
-
import
|
|
10
|
-
import { type
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
1
|
+
import type { LspLegacySeamMigration, LspStatusPayload } from '../../../market-contracts/src/contracts/lsp-status.js';
|
|
2
|
+
import type { MenuRowFaceWire, OverviewPayload, ServerConfigPayload, SourceProgress, SuiteDetail, SuiteDocumentText, UserPanelKind } from '../../../market-contracts/src/contracts/market.js';
|
|
3
|
+
import type { McpStatusPayload } from '../../../market-mcp/src/index.js';
|
|
4
|
+
import type { SourceRef, Suite, SuiteSurfaceKey } from '../../../market-contracts/src/model/types.js';
|
|
5
|
+
import type { McpBackend } from '../../../market-contracts/src/contracts/mcp.js';
|
|
6
|
+
import type { McpMountDiagnostic } from '../../../market-contracts/src/contracts/mcp.js';
|
|
7
|
+
import { type McpServerOverride, type McpSuiteOverrides } from '../../../market-mcp/src/index.js';
|
|
8
|
+
import { type CatalogGitOptions, type CatalogOptions } from '../../../market-catalog/src/index.js';
|
|
9
|
+
import type { DocumentTranslation, TranslationFields, TranslationSurfaceKind } from '../../../market-contracts/src/contracts/translation.js';
|
|
10
|
+
import { type LspServerTable, type McpBackendInfo, type SourceInput, type SourcePatch } from '../../../market-contracts/src/ports/ports.js';
|
|
11
|
+
import { type CatalogSnapshot } from '../../../market-catalog/src/index.js';
|
|
12
|
+
import { codeloadTarballUrl } from '../../../market-catalog/src/index.js';
|
|
13
|
+
import type { MarketService } from '../../../market-contracts/src/ports/queries.js';
|
|
14
|
+
import type { ExtensionSuiteCandidate } from '../../../market-runtime/src/index.js';
|
|
13
15
|
export declare class Catalog implements MarketService {
|
|
14
16
|
private readonly context;
|
|
15
17
|
private readonly ports;
|
|
@@ -18,6 +20,8 @@ export declare class Catalog implements MarketService {
|
|
|
18
20
|
private readonly installs;
|
|
19
21
|
private readonly mcp;
|
|
20
22
|
private readonly lsp;
|
|
23
|
+
private readonly translation;
|
|
24
|
+
private readonly suiteQueries;
|
|
21
25
|
constructor(options: CatalogOptions);
|
|
22
26
|
/** Latest MCP mount diagnostics (suiteId -> reasons), fed by host reconcile. */
|
|
23
27
|
get mcpDiagnostics(): McpMountDiagnostic[];
|
|
@@ -26,6 +30,26 @@ export declare class Catalog implements MarketService {
|
|
|
26
30
|
get userRoot(): string;
|
|
27
31
|
/** The plugin storage root holding per-suite `${PLUGIN_DATA}` directories and overrides. */
|
|
28
32
|
get dataRoot(): string;
|
|
33
|
+
/** The shared Agent layout root the direct user declarations (hooks, MCP) are read from. */
|
|
34
|
+
get agentsRoot(): string;
|
|
35
|
+
/**
|
|
36
|
+
* The host locale preference the panels render in.
|
|
37
|
+
*
|
|
38
|
+
* A read that walks many rows resolves it once and passes the value to every
|
|
39
|
+
* {@link translateFields} call: the host answers the preference by projecting
|
|
40
|
+
* every profile entry's live configuration, so reading it per row made a
|
|
41
|
+
* panel's latency scale with its row count instead of its work.
|
|
42
|
+
*/
|
|
43
|
+
get localePreference(): string;
|
|
44
|
+
/**
|
|
45
|
+
* The clock this catalog's caches age against.
|
|
46
|
+
*
|
|
47
|
+
* The panel row cache is derived from the same files the snapshot cache
|
|
48
|
+
* walks, so it measures its maximum age on the same timeline: a test that
|
|
49
|
+
* drives the catalog's injected clock drives both, and a deployment gets the
|
|
50
|
+
* one process clock.
|
|
51
|
+
*/
|
|
52
|
+
now(): number;
|
|
29
53
|
get sources(): SourceRef[];
|
|
30
54
|
/** Whether one suite currently carries an install entry. */
|
|
31
55
|
isInstalled(sourceId: string, suiteId: string): boolean;
|
|
@@ -33,6 +57,30 @@ export declare class Catalog implements MarketService {
|
|
|
33
57
|
setScanProjectLayouts(enabled: boolean): Promise<void>;
|
|
34
58
|
/** Load persisted user state once at plugin activation. */
|
|
35
59
|
load(): Promise<void>;
|
|
60
|
+
/** Release the localizer's and the snapshot cache's timers; in-flight work still persists. */
|
|
61
|
+
dispose(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Drop every cached translation, in memory and on disk.
|
|
64
|
+
*
|
|
65
|
+
* Translation is lazy, so this is the whole of the reset: nothing is queued
|
|
66
|
+
* here, and the next panel read repopulates the cache from scratch. The
|
|
67
|
+
* in-memory copy is emptied too, or the same process would keep serving text
|
|
68
|
+
* the file no longer holds.
|
|
69
|
+
* @returns fulfillment once the cache is empty.
|
|
70
|
+
*/
|
|
71
|
+
clearTranslations(): Promise<void>;
|
|
72
|
+
/** Apply the current display preference to pending translation work. */
|
|
73
|
+
syncTranslationEnabled(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Wait for queued translations to finish.
|
|
76
|
+
*
|
|
77
|
+
* Nothing on the request path calls this — the panel renders upstream text
|
|
78
|
+
* and re-reads. It exists so a test can observe the settled state instead of
|
|
79
|
+
* polling.
|
|
80
|
+
* @param deadlineMs - maximum wait; omitted waits for the queue alone.
|
|
81
|
+
* @returns whether the queue drained before the deadline.
|
|
82
|
+
*/
|
|
83
|
+
settleDescriptions(deadlineMs?: number): Promise<boolean>;
|
|
36
84
|
/** Append config-seeded sources missing from user state and persist them. */
|
|
37
85
|
mergeSources(sources: SourceRef[]): Promise<void>;
|
|
38
86
|
/**
|
|
@@ -49,16 +97,55 @@ export declare class Catalog implements MarketService {
|
|
|
49
97
|
refreshSettled(deadlineMs?: number): Promise<boolean>;
|
|
50
98
|
/** Read one coherent user-dimension snapshot, reusing in-flight discovery. */
|
|
51
99
|
readUserCatalog(): Promise<CatalogSnapshot>;
|
|
100
|
+
/** Installed local user declarations, including globally disabled suites; never changes global runtime discovery. */
|
|
101
|
+
installedSuiteDeclarations(): Promise<ExtensionSuiteCandidate[]>;
|
|
52
102
|
/** Read one coherent project-dimension snapshot for a workspace cwd. */
|
|
53
103
|
readProjectCatalog(cwd: string): Promise<CatalogSnapshot>;
|
|
54
104
|
/** Runtime discovery scans only sources containing an enabled install. No acquisition or network access. */
|
|
55
105
|
enabledUserSuites(): Promise<Suite[]>;
|
|
56
|
-
/**
|
|
106
|
+
/**
|
|
107
|
+
* The full market overview from one user snapshot.
|
|
108
|
+
*
|
|
109
|
+
* The description is localized on the way out: a suite whose text is already
|
|
110
|
+
* Chinese (or already bilingual) is served as authored, and every other
|
|
111
|
+
* description is translated in the background. The read itself never waits on
|
|
112
|
+
* a provider call — a suite with no cached translation carries its original
|
|
113
|
+
* text plus a translated field only once one lands, and the panel re-reads
|
|
114
|
+
* while anything reports itself pending.
|
|
115
|
+
*/
|
|
57
116
|
overview(): Promise<OverviewPayload>;
|
|
58
|
-
/** One
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
117
|
+
/** One entity's translated description, pending count included. {@link TranslationService.translateFields} owns the rule. */
|
|
118
|
+
translateFields(surface: TranslationSurfaceKind, id: string, fields: {
|
|
119
|
+
name?: string | undefined;
|
|
120
|
+
description?: string | undefined;
|
|
121
|
+
}, locale: string): {
|
|
122
|
+
fields: TranslationFields;
|
|
123
|
+
pending: number;
|
|
124
|
+
};
|
|
125
|
+
/** One authored text translated chunk by chunk. {@link TranslationService.translateDocument} owns the rule for bodies. */
|
|
126
|
+
translateDocument(surface: TranslationSurfaceKind, id: string, text: string, locale: string, retry?: boolean): DocumentTranslation;
|
|
127
|
+
/**
|
|
128
|
+
* The localized face of every `/` menu row this plugin owns.
|
|
129
|
+
*
|
|
130
|
+
* The rows come from the runtime registries (through
|
|
131
|
+
* {@link CatalogPorts.menuRowIdentities}) because only they know the call name
|
|
132
|
+
* a command actually got; the text comes from the shared translation service,
|
|
133
|
+
* because the panel reads it through the same translation cache. Resolution
|
|
134
|
+
* is a cache read and never a provider call: a row whose text is not cached
|
|
135
|
+
* yet answers without a face, and the panel read that follows queues it.
|
|
136
|
+
*
|
|
137
|
+
* A field is emitted only when the translation differs from the authored
|
|
138
|
+
* text. The menu shows the call name beside the label, so a name that
|
|
139
|
+
* translated to itself would only duplicate the alias.
|
|
140
|
+
* @returns one wire row per owned menu row, without rows carrying no translation.
|
|
141
|
+
*/
|
|
142
|
+
menuRowFaces(): Promise<MenuRowFaceWire[]>;
|
|
143
|
+
/** One suite's full detail. {@link SuiteQueries.suiteDetail} owns the composition. */
|
|
144
|
+
suiteDetail(sourceId: string, suiteId: string, projectCwd?: string): Promise<SuiteDetail>;
|
|
145
|
+
/** One suite document's authored text. {@link SuiteQueries.suiteDocument} owns the read. */
|
|
146
|
+
suiteDocument(sourceId: string, suiteId: string, kind: UserPanelKind, name: string, projectCwd?: string): Promise<SuiteDocumentText>;
|
|
147
|
+
/** One suite document's translation. {@link SuiteQueries.suiteDocumentTranslation} owns the keying. */
|
|
148
|
+
suiteDocumentTranslation(sourceId: string, suiteId: string, kind: UserPanelKind, name: string, retry?: boolean, projectCwd?: string): Promise<DocumentTranslation>;
|
|
62
149
|
/** Add a source and acquire it immediately (clone, download, or in-place). */
|
|
63
150
|
addSource(input: SourceInput): Promise<SourceRef>;
|
|
64
151
|
/** Register one unmanaged `.sources/` checkout as a source without touching its files. */
|
|
@@ -92,11 +179,19 @@ export declare class Catalog implements MarketService {
|
|
|
92
179
|
setSurface(sourceId: string, suiteId: string, surface: SuiteSurfaceKey, enabled: boolean): Promise<void>;
|
|
93
180
|
/** Build the flat MCP service inventory for the status surface. */
|
|
94
181
|
mcpStatus(): Promise<McpStatusPayload>;
|
|
95
|
-
/**
|
|
96
|
-
addMcpServer(name: string, server: unknown): Promise<void>;
|
|
97
|
-
/**
|
|
98
|
-
|
|
99
|
-
|
|
182
|
+
/** Validate and persist a user-owned MCP service with optional policy before reconciling its mount. */
|
|
183
|
+
addMcpServer(name: string, server: unknown, policy?: unknown): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Read a service without credential literals, or an unsaved template when
|
|
186
|
+
* `create` is true. The two transports have separate owners, so this facade
|
|
187
|
+
* only routes the request to the module that owns the declaration.
|
|
188
|
+
*/
|
|
189
|
+
serverConfig(kind: 'mcp' | 'lsp', id: string, create?: boolean): Promise<ServerConfigPayload>;
|
|
190
|
+
/**
|
|
191
|
+
* Validate a complete replacement before writing; plugin checkouts remain
|
|
192
|
+
* untouched. The MCP half also carries the editing policy, which the LSP
|
|
193
|
+
* document has no seat for.
|
|
194
|
+
*/
|
|
100
195
|
saveServerConfig(kind: 'mcp' | 'lsp', id: string, config: unknown, policy?: unknown): Promise<void>;
|
|
101
196
|
/** One suite's persisted MCP overrides, addressed by qualified suite id. */
|
|
102
197
|
mcpOverrides(sourceId: string, suiteId: string): Promise<McpSuiteOverrides>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SuiteDetail, UserPanelKind } from '../../../market-contracts/src/contracts/market.js';
|
|
2
|
+
import { type InstalledEntry, type Suite } from '../../../market-contracts/src/model/types.js';
|
|
3
|
+
import type { McpMountDiagnostic as McpDiagnostic } from '../../../market-contracts/src/contracts/mcp.js';
|
|
4
|
+
/** Build the detail response for one normalized suite. */
|
|
5
|
+
export declare function buildSuiteDetail(suite: Suite, installed: InstalledEntry | undefined, diagnostics: readonly McpDiagnostic[], mcpOverrides?: Record<string, Record<string, unknown>>): Promise<SuiteDetail>;
|
|
6
|
+
/**
|
|
7
|
+
* Read one of a suite's document surfaces — a skill, a command, or an agent —
|
|
8
|
+
* by the identity the market detail page addresses it with.
|
|
9
|
+
*
|
|
10
|
+
* This is the only body the market ever serves. The detail payload carries a
|
|
11
|
+
* document's name and description so its row can render, and the text arrives
|
|
12
|
+
* here when a reader opens that row, whole and uncut.
|
|
13
|
+
*
|
|
14
|
+
* The suite's own scanned resource list is the only source of a path: the
|
|
15
|
+
* caller names a document, never a path, and a name the scan did not produce is
|
|
16
|
+
* a miss rather than a lookup. Commands and agents read the same resource the
|
|
17
|
+
* scan that built the detail payload found, so a document read here is the
|
|
18
|
+
* document that payload named — re-read rather than taken from the request.
|
|
19
|
+
* @param suite - the normalized suite the document belongs to.
|
|
20
|
+
* @param kind - which of the three document surfaces the name belongs to.
|
|
21
|
+
* @param name - the document's name inside that surface.
|
|
22
|
+
* @returns the document's text exactly as authored.
|
|
23
|
+
*/
|
|
24
|
+
export declare function readSuiteDocument(suite: Suite, kind: UserPanelKind, name: string): Promise<string>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { CatalogPort as Catalog } from '../../../market-runtime/src/index.js';
|
|
2
|
+
import type { PanelResourceStore } from '../../../market-runtime/src/index.js';
|
|
3
|
+
import { type ExtensionResource } from '../../../market-contracts/src/contracts/extension-presets.js';
|
|
4
|
+
import type { UserPanelEntryWire, UserPanelKind } from '../../../market-contracts/src/contracts/market.js';
|
|
5
|
+
import { type Suite } from '../../../market-contracts/src/model/types.js';
|
|
6
|
+
import type { McpSuiteOverrides } from '../../../market-mcp/src/index.js';
|
|
7
|
+
import type { ExtensionSuiteCandidate } from '../../../market-runtime/src/index.js';
|
|
8
|
+
export interface ExtensionInventoryPorts {
|
|
9
|
+
catalog: Pick<Catalog, 'overview' | 'mcpStatus' | 'lspStatus'>;
|
|
10
|
+
panels: Record<UserPanelKind, Pick<PanelResourceStore, 'list'>>;
|
|
11
|
+
}
|
|
12
|
+
/** Shared options every mode honours. */
|
|
13
|
+
interface ExtensionInventoryBaseOptions {
|
|
14
|
+
sessionId?: string;
|
|
15
|
+
mcpSessionControl?: boolean;
|
|
16
|
+
/** Legacy mode: installed/local suites without validated declarations. */
|
|
17
|
+
projectSuites?: readonly Suite[];
|
|
18
|
+
/**
|
|
19
|
+
* Suites whose hook declarations this read publishes. The session inventory
|
|
20
|
+
* lists project hooks, installed user-dimension suites and the @user-hooks
|
|
21
|
+
* suite here; it stays separate from {@link projectSuites} so project owner
|
|
22
|
+
* addressing keeps its meaning. Absent, the hook source is projectSuites.
|
|
23
|
+
*/
|
|
24
|
+
hookSuites?: readonly Suite[];
|
|
25
|
+
}
|
|
26
|
+
/** Candidate mode: the override data must be explicit, because a missing value would read as "enabled". */
|
|
27
|
+
export interface ExtensionInventoryCandidateOptions extends ExtensionInventoryBaseOptions {
|
|
28
|
+
/** Validated declarations from the parse owner; `validSurfaces` is the availability evidence. */
|
|
29
|
+
candidates: readonly ExtensionSuiteCandidate[];
|
|
30
|
+
/** Per-suite MCP overrides, keyed by resource id. Required: absence is never "on". */
|
|
31
|
+
mcpOverrides: ReadonlyMap<string, McpSuiteOverrides>;
|
|
32
|
+
/** LSP server ids the user disabled, in the identity the LSP rows use. Required for the same reason. */
|
|
33
|
+
lspDisabledIds: ReadonlySet<string>;
|
|
34
|
+
}
|
|
35
|
+
/** Legacy mode: no candidates, so no validated-surface or override data exists. */
|
|
36
|
+
export interface ExtensionInventoryLegacyOptions extends ExtensionInventoryBaseOptions {
|
|
37
|
+
candidates?: undefined;
|
|
38
|
+
mcpOverrides?: undefined;
|
|
39
|
+
lspDisabledIds?: undefined;
|
|
40
|
+
}
|
|
41
|
+
export type ExtensionInventoryOptions = ExtensionInventoryCandidateOptions | ExtensionInventoryLegacyOptions;
|
|
42
|
+
/** Suite panel ids are JSON tuples, not display names or flattened command identifiers. */
|
|
43
|
+
export declare function suiteResourceOwner(entry: UserPanelEntryWire): string | undefined;
|
|
44
|
+
export declare function readExtensionInventory(ports: ExtensionInventoryPorts, options?: ExtensionInventoryOptions): Promise<ExtensionResource[]>;
|
|
45
|
+
export { extensionResourceEnabled } from '../../../market-runtime/src/index.js';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Read-only project resources reuse the full user-facing detail and document readers. */
|
|
2
|
+
import type { CatalogPort as Catalog } from '../../../market-runtime/src/index.js';
|
|
3
|
+
import { createPanelResources } from '../../../market-runtime/src/index.js';
|
|
4
|
+
import type { McpToolSnapshot } from '../../../market-contracts/src/ports/ports.js';
|
|
5
|
+
import type { McpMountDiagnostic } from '../../../market-contracts/src/contracts/mcp.js';
|
|
6
|
+
import type { Suite } from '../../../market-contracts/src/model/types.js';
|
|
7
|
+
import type { UserPanelKind } from '../../../market-contracts/src/contracts/market.js';
|
|
8
|
+
/** What one session's workspace can read: the project suites plus the full user-facing detail readers. */
|
|
9
|
+
export type ProjectExtensionReader = ReturnType<typeof createProjectExtensionResources>;
|
|
10
|
+
export declare function createProjectExtensionResources(catalog: Catalog, users: Parameters<typeof createPanelResources>[1], cwd: string): {
|
|
11
|
+
panels: Record<UserPanelKind, import("../../../market-runtime/src/index.js").PanelResourceStore>;
|
|
12
|
+
suites: () => Promise<Suite[]>;
|
|
13
|
+
suiteDetail(sourceId: string, suiteId: string): Promise<import("../../../market-contracts/src/contracts/market.js").SuiteDetail>;
|
|
14
|
+
/**
|
|
15
|
+
* One document of this workspace's suite, on any of the three surfaces.
|
|
16
|
+
*
|
|
17
|
+
* The lookup stays in Catalog — one reader for skills, commands and agents — and
|
|
18
|
+
* the project cwd only selects which snapshot answers. Re-scanning here would
|
|
19
|
+
* duplicate the catalog's own identity handling.
|
|
20
|
+
*/
|
|
21
|
+
suiteDocument(sourceId: string, suiteId: string, kind: UserPanelKind, name: string): Promise<import("../../../market-contracts/src/contracts/market.js").SuiteDocumentText>;
|
|
22
|
+
/** The same document's translation, answered from this workspace's snapshot. */
|
|
23
|
+
suiteDocumentTranslation(sourceId: string, suiteId: string, kind: UserPanelKind, name: string, retry?: boolean): Promise<import("@dsh-market/contracts/contracts/translation").DocumentTranslation>;
|
|
24
|
+
mcpStatus(diagnostics?: McpMountDiagnostic[], observed?: readonly McpToolSnapshot[]): Promise<import("@dsh-market/contracts/contracts/mcp-status").McpStatusPayload>;
|
|
25
|
+
lspStatus(): Promise<import("@dsh-market/contracts/contracts/lsp-status").LspStatusPayload>;
|
|
26
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The project resource window's installed inventory.
|
|
3
|
+
*
|
|
4
|
+
* One aggregation over the data planes that already exist — the market
|
|
5
|
+
* overview (installed suites), the three user panels (skills, commands,
|
|
6
|
+
* agents), the MCP status surface, and the LSP status surface — assembled
|
|
7
|
+
* here into the row shape the window renders. No second scan pipeline runs:
|
|
8
|
+
* every row cites the source of truth that already feeds the settings panels,
|
|
9
|
+
* and the per-entry enable flags come from the workspace filter state.
|
|
10
|
+
*
|
|
11
|
+
* @module application/resource-inventory
|
|
12
|
+
*/
|
|
13
|
+
import type { Catalog } from './catalog.js';
|
|
14
|
+
import type { PanelResourceStore } from '../../../market-runtime/src/index.js';
|
|
15
|
+
import type { ResourceFavoriteWire, ResourceWindowPayload } from '../../../market-contracts/src/contracts/resource-window.js';
|
|
16
|
+
import type { ResourceFilters } from '../../../market-runtime/src/index.js';
|
|
17
|
+
/** Structural catalog surface the inventory reads. */
|
|
18
|
+
interface InventoryCatalog {
|
|
19
|
+
overview(): Promise<import('../../../market-contracts/src/contracts/market.js').OverviewPayload>;
|
|
20
|
+
mcpStatus(): Promise<import('../../../market-contracts/src/contracts/mcp-status.js').McpStatusPayload>;
|
|
21
|
+
lspStatus(): Promise<import('../../../market-contracts/src/contracts/lsp-status.js').LspStatusPayload>;
|
|
22
|
+
}
|
|
23
|
+
/** Structural filter state the inventory reads (implemented by the runtime service). */
|
|
24
|
+
export interface InventoryFilterSource {
|
|
25
|
+
currentFilters(): ResourceFilters;
|
|
26
|
+
favorites(): Promise<ResourceFavoriteWire[]>;
|
|
27
|
+
}
|
|
28
|
+
/** The stores and services one inventory read needs. */
|
|
29
|
+
export interface ResourceInventoryDeps {
|
|
30
|
+
catalog: InventoryCatalog | Catalog;
|
|
31
|
+
panels: {
|
|
32
|
+
skills: PanelResourceStore;
|
|
33
|
+
commands: PanelResourceStore;
|
|
34
|
+
agents: PanelResourceStore;
|
|
35
|
+
};
|
|
36
|
+
filters: InventoryFilterSource;
|
|
37
|
+
/** The workspace label the header chip shows; defaults to the process cwd. */
|
|
38
|
+
workspace?: string;
|
|
39
|
+
}
|
|
40
|
+
/** Build one window payload from the live stores. */
|
|
41
|
+
export declare function buildResourceWindow(deps: ResourceInventoryDeps): Promise<ResourceWindowPayload>;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compatibility barrel for the service-configuration helpers that used to live
|
|
3
|
+
* here. Each declaration now belongs to the domain that owns it: MCP validation
|
|
4
|
+
* and redaction-restore to market-mcp, LSP validation and the override layer to
|
|
5
|
+
* market-lsp. The re-exports stay so existing importers and tests keep their
|
|
6
|
+
* current specifier; new code imports the owning module directly.
|
|
7
|
+
*/
|
|
8
|
+
export { McpConfigError, restoreRedactedConfig, validateServerMcp, type McpFieldError } from '../../../market-mcp/src/index.js';
|
|
9
|
+
export { applyLspOverrides, loadLspOverrides, lspConfig, saveLspOverride, validateServerLsp } from '../../../market-lsp/src/index.js';
|