@hashicorp/kits 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +619 -0
- package/bin/kits.js +8 -0
- package/dist/adapters/base-adapter.d.ts +231 -0
- package/dist/adapters/base-adapter.d.ts.map +1 -0
- package/dist/adapters/base-adapter.js +703 -0
- package/dist/adapters/base-adapter.js.map +1 -0
- package/dist/adapters/claude-code/detection.d.ts +63 -0
- package/dist/adapters/claude-code/detection.d.ts.map +1 -0
- package/dist/adapters/claude-code/detection.js +154 -0
- package/dist/adapters/claude-code/detection.js.map +1 -0
- package/dist/adapters/claude-code/index.d.ts +178 -0
- package/dist/adapters/claude-code/index.d.ts.map +1 -0
- package/dist/adapters/claude-code/index.js +643 -0
- package/dist/adapters/claude-code/index.js.map +1 -0
- package/dist/adapters/claude-code/installer.d.ts +161 -0
- package/dist/adapters/claude-code/installer.d.ts.map +1 -0
- package/dist/adapters/claude-code/installer.js +413 -0
- package/dist/adapters/claude-code/installer.js.map +1 -0
- package/dist/adapters/claude-code/model-mapping.d.ts +7 -0
- package/dist/adapters/claude-code/model-mapping.d.ts.map +1 -0
- package/dist/adapters/claude-code/model-mapping.js +14 -0
- package/dist/adapters/claude-code/model-mapping.js.map +1 -0
- package/dist/adapters/claude-code/tool-mapping.d.ts +18 -0
- package/dist/adapters/claude-code/tool-mapping.d.ts.map +1 -0
- package/dist/adapters/claude-code/tool-mapping.js +31 -0
- package/dist/adapters/claude-code/tool-mapping.js.map +1 -0
- package/dist/adapters/codex/detection.d.ts +60 -0
- package/dist/adapters/codex/detection.d.ts.map +1 -0
- package/dist/adapters/codex/detection.js +146 -0
- package/dist/adapters/codex/detection.js.map +1 -0
- package/dist/adapters/codex/index.d.ts +167 -0
- package/dist/adapters/codex/index.d.ts.map +1 -0
- package/dist/adapters/codex/index.js +344 -0
- package/dist/adapters/codex/index.js.map +1 -0
- package/dist/adapters/codex/installer.d.ts +147 -0
- package/dist/adapters/codex/installer.d.ts.map +1 -0
- package/dist/adapters/codex/installer.js +229 -0
- package/dist/adapters/codex/installer.js.map +1 -0
- package/dist/adapters/codex/model-mapping.d.ts +7 -0
- package/dist/adapters/codex/model-mapping.d.ts.map +1 -0
- package/dist/adapters/codex/model-mapping.js +14 -0
- package/dist/adapters/codex/model-mapping.js.map +1 -0
- package/dist/adapters/codex/tool-mapping.d.ts +19 -0
- package/dist/adapters/codex/tool-mapping.d.ts.map +1 -0
- package/dist/adapters/codex/tool-mapping.js +32 -0
- package/dist/adapters/codex/tool-mapping.js.map +1 -0
- package/dist/adapters/command-parser.d.ts +72 -0
- package/dist/adapters/command-parser.d.ts.map +1 -0
- package/dist/adapters/command-parser.js +222 -0
- package/dist/adapters/command-parser.js.map +1 -0
- package/dist/adapters/file-operations.d.ts +164 -0
- package/dist/adapters/file-operations.d.ts.map +1 -0
- package/dist/adapters/file-operations.js +526 -0
- package/dist/adapters/file-operations.js.map +1 -0
- package/dist/adapters/gemini-cli/detection.d.ts +57 -0
- package/dist/adapters/gemini-cli/detection.d.ts.map +1 -0
- package/dist/adapters/gemini-cli/detection.js +143 -0
- package/dist/adapters/gemini-cli/detection.js.map +1 -0
- package/dist/adapters/gemini-cli/index.d.ts +182 -0
- package/dist/adapters/gemini-cli/index.d.ts.map +1 -0
- package/dist/adapters/gemini-cli/index.js +598 -0
- package/dist/adapters/gemini-cli/index.js.map +1 -0
- package/dist/adapters/gemini-cli/installer.d.ts +158 -0
- package/dist/adapters/gemini-cli/installer.d.ts.map +1 -0
- package/dist/adapters/gemini-cli/installer.js +457 -0
- package/dist/adapters/gemini-cli/installer.js.map +1 -0
- package/dist/adapters/gemini-cli/model-mapping.d.ts +7 -0
- package/dist/adapters/gemini-cli/model-mapping.d.ts.map +1 -0
- package/dist/adapters/gemini-cli/model-mapping.js +14 -0
- package/dist/adapters/gemini-cli/model-mapping.js.map +1 -0
- package/dist/adapters/gemini-cli/tool-mapping.d.ts +18 -0
- package/dist/adapters/gemini-cli/tool-mapping.d.ts.map +1 -0
- package/dist/adapters/gemini-cli/tool-mapping.js +31 -0
- package/dist/adapters/gemini-cli/tool-mapping.js.map +1 -0
- package/dist/adapters/github-copilot/detection.d.ts +58 -0
- package/dist/adapters/github-copilot/detection.d.ts.map +1 -0
- package/dist/adapters/github-copilot/detection.js +144 -0
- package/dist/adapters/github-copilot/detection.js.map +1 -0
- package/dist/adapters/github-copilot/index.d.ts +203 -0
- package/dist/adapters/github-copilot/index.d.ts.map +1 -0
- package/dist/adapters/github-copilot/index.js +595 -0
- package/dist/adapters/github-copilot/index.js.map +1 -0
- package/dist/adapters/github-copilot/installer.d.ts +124 -0
- package/dist/adapters/github-copilot/installer.d.ts.map +1 -0
- package/dist/adapters/github-copilot/installer.js +343 -0
- package/dist/adapters/github-copilot/installer.js.map +1 -0
- package/dist/adapters/github-copilot/model-mapping.d.ts +7 -0
- package/dist/adapters/github-copilot/model-mapping.d.ts.map +1 -0
- package/dist/adapters/github-copilot/model-mapping.js +14 -0
- package/dist/adapters/github-copilot/model-mapping.js.map +1 -0
- package/dist/adapters/github-copilot/tool-mapping.d.ts +18 -0
- package/dist/adapters/github-copilot/tool-mapping.d.ts.map +1 -0
- package/dist/adapters/github-copilot/tool-mapping.js +31 -0
- package/dist/adapters/github-copilot/tool-mapping.js.map +1 -0
- package/dist/adapters/index.d.ts +39 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +76 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/interface.d.ts +9 -0
- package/dist/adapters/interface.d.ts.map +1 -0
- package/dist/adapters/interface.js +8 -0
- package/dist/adapters/interface.js.map +1 -0
- package/dist/adapters/model-templating.d.ts +16 -0
- package/dist/adapters/model-templating.d.ts.map +1 -0
- package/dist/adapters/model-templating.js +52 -0
- package/dist/adapters/model-templating.js.map +1 -0
- package/dist/adapters/opencode/detection.d.ts +57 -0
- package/dist/adapters/opencode/detection.d.ts.map +1 -0
- package/dist/adapters/opencode/detection.js +140 -0
- package/dist/adapters/opencode/detection.js.map +1 -0
- package/dist/adapters/opencode/index.d.ts +168 -0
- package/dist/adapters/opencode/index.d.ts.map +1 -0
- package/dist/adapters/opencode/index.js +494 -0
- package/dist/adapters/opencode/index.js.map +1 -0
- package/dist/adapters/opencode/installer.d.ts +91 -0
- package/dist/adapters/opencode/installer.d.ts.map +1 -0
- package/dist/adapters/opencode/installer.js +290 -0
- package/dist/adapters/opencode/installer.js.map +1 -0
- package/dist/adapters/opencode/model-mapping.d.ts +7 -0
- package/dist/adapters/opencode/model-mapping.d.ts.map +1 -0
- package/dist/adapters/opencode/model-mapping.js +14 -0
- package/dist/adapters/opencode/model-mapping.js.map +1 -0
- package/dist/adapters/opencode/tool-mapping.d.ts +18 -0
- package/dist/adapters/opencode/tool-mapping.d.ts.map +1 -0
- package/dist/adapters/opencode/tool-mapping.js +31 -0
- package/dist/adapters/opencode/tool-mapping.js.map +1 -0
- package/dist/adapters/registry.d.ts +154 -0
- package/dist/adapters/registry.d.ts.map +1 -0
- package/dist/adapters/registry.js +223 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/adapters/skill-frontmatter.d.ts +34 -0
- package/dist/adapters/skill-frontmatter.d.ts.map +1 -0
- package/dist/adapters/skill-frontmatter.js +110 -0
- package/dist/adapters/skill-frontmatter.js.map +1 -0
- package/dist/adapters/subagent-frontmatter.d.ts +22 -0
- package/dist/adapters/subagent-frontmatter.d.ts.map +1 -0
- package/dist/adapters/subagent-frontmatter.js +80 -0
- package/dist/adapters/subagent-frontmatter.js.map +1 -0
- package/dist/adapters/tool-templating.d.ts +162 -0
- package/dist/adapters/tool-templating.d.ts.map +1 -0
- package/dist/adapters/tool-templating.js +273 -0
- package/dist/adapters/tool-templating.js.map +1 -0
- package/dist/adapters/types.d.ts +347 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +33 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +261 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/info.d.ts +20 -0
- package/dist/cli/info.d.ts.map +1 -0
- package/dist/cli/info.js +194 -0
- package/dist/cli/info.js.map +1 -0
- package/dist/cli/install.d.ts +21 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +1624 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/list.d.ts +19 -0
- package/dist/cli/list.d.ts.map +1 -0
- package/dist/cli/list.js +216 -0
- package/dist/cli/list.js.map +1 -0
- package/dist/cli/types.d.ts +246 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +25 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/uninstall.d.ts +20 -0
- package/dist/cli/uninstall.d.ts.map +1 -0
- package/dist/cli/uninstall.js +393 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/cli/upgrade.d.ts +20 -0
- package/dist/cli/upgrade.d.ts.map +1 -0
- package/dist/cli/upgrade.js +372 -0
- package/dist/cli/upgrade.js.map +1 -0
- package/dist/cli/validate.d.ts +14 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +307 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/core/debug.d.ts +23 -0
- package/dist/core/debug.d.ts.map +1 -0
- package/dist/core/debug.js +69 -0
- package/dist/core/debug.js.map +1 -0
- package/dist/core/hook-instance.d.ts +8 -0
- package/dist/core/hook-instance.d.ts.map +1 -0
- package/dist/core/hook-instance.js +62 -0
- package/dist/core/hook-instance.js.map +1 -0
- package/dist/core/mcp-instance.d.ts +13 -0
- package/dist/core/mcp-instance.d.ts.map +1 -0
- package/dist/core/mcp-instance.js +80 -0
- package/dist/core/mcp-instance.js.map +1 -0
- package/dist/core/types.d.ts +461 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +42 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/upgrade-executor.d.ts +70 -0
- package/dist/core/upgrade-executor.d.ts.map +1 -0
- package/dist/core/upgrade-executor.js +368 -0
- package/dist/core/upgrade-executor.js.map +1 -0
- package/dist/discovery/fetcher-registry.d.ts +87 -0
- package/dist/discovery/fetcher-registry.d.ts.map +1 -0
- package/dist/discovery/fetcher-registry.js +119 -0
- package/dist/discovery/fetcher-registry.js.map +1 -0
- package/dist/discovery/git-fetcher.d.ts +61 -0
- package/dist/discovery/git-fetcher.d.ts.map +1 -0
- package/dist/discovery/git-fetcher.js +150 -0
- package/dist/discovery/git-fetcher.js.map +1 -0
- package/dist/discovery/index.d.ts +13 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +15 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/kit-scanner.d.ts +55 -0
- package/dist/discovery/kit-scanner.d.ts.map +1 -0
- package/dist/discovery/kit-scanner.js +305 -0
- package/dist/discovery/kit-scanner.js.map +1 -0
- package/dist/discovery/local-fetcher.d.ts +38 -0
- package/dist/discovery/local-fetcher.d.ts.map +1 -0
- package/dist/discovery/local-fetcher.js +100 -0
- package/dist/discovery/local-fetcher.js.map +1 -0
- package/dist/discovery/source-parser.d.ts +33 -0
- package/dist/discovery/source-parser.d.ts.map +1 -0
- package/dist/discovery/source-parser.js +136 -0
- package/dist/discovery/source-parser.js.map +1 -0
- package/dist/discovery/types.d.ts +145 -0
- package/dist/discovery/types.d.ts.map +1 -0
- package/dist/discovery/types.js +18 -0
- package/dist/discovery/types.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest/index.d.ts +79 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +200 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/read.d.ts +32 -0
- package/dist/manifest/read.d.ts.map +1 -0
- package/dist/manifest/read.js +88 -0
- package/dist/manifest/read.js.map +1 -0
- package/dist/manifest/types.d.ts +119 -0
- package/dist/manifest/types.d.ts.map +1 -0
- package/dist/manifest/types.js +44 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/manifest/upgrade-check.d.ts +72 -0
- package/dist/manifest/upgrade-check.d.ts.map +1 -0
- package/dist/manifest/upgrade-check.js +215 -0
- package/dist/manifest/upgrade-check.js.map +1 -0
- package/dist/manifest/utils.d.ts +35 -0
- package/dist/manifest/utils.d.ts.map +1 -0
- package/dist/manifest/utils.js +57 -0
- package/dist/manifest/utils.js.map +1 -0
- package/dist/manifest/write.d.ts +44 -0
- package/dist/manifest/write.d.ts.map +1 -0
- package/dist/manifest/write.js +77 -0
- package/dist/manifest/write.js.map +1 -0
- package/dist/resolution/env-resolver.d.ts +81 -0
- package/dist/resolution/env-resolver.d.ts.map +1 -0
- package/dist/resolution/env-resolver.js +233 -0
- package/dist/resolution/env-resolver.js.map +1 -0
- package/dist/resolution/index.d.ts +55 -0
- package/dist/resolution/index.d.ts.map +1 -0
- package/dist/resolution/index.js +412 -0
- package/dist/resolution/index.js.map +1 -0
- package/dist/resolution/multi-kit-resolver.d.ts +43 -0
- package/dist/resolution/multi-kit-resolver.d.ts.map +1 -0
- package/dist/resolution/multi-kit-resolver.js +258 -0
- package/dist/resolution/multi-kit-resolver.js.map +1 -0
- package/dist/resolution/primitive-paths.d.ts +17 -0
- package/dist/resolution/primitive-paths.d.ts.map +1 -0
- package/dist/resolution/primitive-paths.js +59 -0
- package/dist/resolution/primitive-paths.js.map +1 -0
- package/dist/resolution/primitives-registry.d.ts +137 -0
- package/dist/resolution/primitives-registry.d.ts.map +1 -0
- package/dist/resolution/primitives-registry.js +295 -0
- package/dist/resolution/primitives-registry.js.map +1 -0
- package/dist/resolution/reference-parser.d.ts +62 -0
- package/dist/resolution/reference-parser.d.ts.map +1 -0
- package/dist/resolution/reference-parser.js +182 -0
- package/dist/resolution/reference-parser.js.map +1 -0
- package/dist/resolution/types.d.ts +77 -0
- package/dist/resolution/types.d.ts.map +1 -0
- package/dist/resolution/types.js +13 -0
- package/dist/resolution/types.js.map +1 -0
- package/dist/resolution/version-resolver.d.ts +76 -0
- package/dist/resolution/version-resolver.d.ts.map +1 -0
- package/dist/resolution/version-resolver.js +269 -0
- package/dist/resolution/version-resolver.js.map +1 -0
- package/dist/tui/compatibility.d.ts +80 -0
- package/dist/tui/compatibility.d.ts.map +1 -0
- package/dist/tui/compatibility.js +355 -0
- package/dist/tui/compatibility.js.map +1 -0
- package/dist/tui/env-prompt.d.ts +129 -0
- package/dist/tui/env-prompt.d.ts.map +1 -0
- package/dist/tui/env-prompt.js +488 -0
- package/dist/tui/env-prompt.js.map +1 -0
- package/dist/tui/harness-select.d.ts +54 -0
- package/dist/tui/harness-select.d.ts.map +1 -0
- package/dist/tui/harness-select.js +171 -0
- package/dist/tui/harness-select.js.map +1 -0
- package/dist/tui/index.d.ts +112 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +213 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/kit-select.d.ts +72 -0
- package/dist/tui/kit-select.d.ts.map +1 -0
- package/dist/tui/kit-select.js +209 -0
- package/dist/tui/kit-select.js.map +1 -0
- package/dist/tui/progress.d.ts +75 -0
- package/dist/tui/progress.d.ts.map +1 -0
- package/dist/tui/progress.js +267 -0
- package/dist/tui/progress.js.map +1 -0
- package/dist/tui/resolution.d.ts +62 -0
- package/dist/tui/resolution.d.ts.map +1 -0
- package/dist/tui/resolution.js +261 -0
- package/dist/tui/resolution.js.map +1 -0
- package/dist/tui/scope-compatibility.d.ts +139 -0
- package/dist/tui/scope-compatibility.d.ts.map +1 -0
- package/dist/tui/scope-compatibility.js +230 -0
- package/dist/tui/scope-compatibility.js.map +1 -0
- package/dist/tui/scope-select.d.ts +67 -0
- package/dist/tui/scope-select.d.ts.map +1 -0
- package/dist/tui/scope-select.js +134 -0
- package/dist/tui/scope-select.js.map +1 -0
- package/dist/tui/spinner.d.ts +114 -0
- package/dist/tui/spinner.d.ts.map +1 -0
- package/dist/tui/spinner.js +186 -0
- package/dist/tui/spinner.js.map +1 -0
- package/dist/tui/summary.d.ts +71 -0
- package/dist/tui/summary.d.ts.map +1 -0
- package/dist/tui/summary.js +343 -0
- package/dist/tui/summary.js.map +1 -0
- package/dist/tui/types.d.ts +234 -0
- package/dist/tui/types.d.ts.map +1 -0
- package/dist/tui/types.js +7 -0
- package/dist/tui/types.js.map +1 -0
- package/dist/tui/upgrade-select.d.ts +73 -0
- package/dist/tui/upgrade-select.d.ts.map +1 -0
- package/dist/tui/upgrade-select.js +324 -0
- package/dist/tui/upgrade-select.js.map +1 -0
- package/dist/validation/index.d.ts +13 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +13 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/source.d.ts +14 -0
- package/dist/validation/source.d.ts.map +1 -0
- package/dist/validation/source.js +51 -0
- package/dist/validation/source.js.map +1 -0
- package/dist/validation/utils.d.ts +29 -0
- package/dist/validation/utils.d.ts.map +1 -0
- package/dist/validation/utils.js +89 -0
- package/dist/validation/utils.js.map +1 -0
- package/dist/validation/validate-commands.d.ts +28 -0
- package/dist/validation/validate-commands.d.ts.map +1 -0
- package/dist/validation/validate-commands.js +151 -0
- package/dist/validation/validate-commands.js.map +1 -0
- package/dist/validation/validate-hooks.d.ts +13 -0
- package/dist/validation/validate-hooks.d.ts.map +1 -0
- package/dist/validation/validate-hooks.js +272 -0
- package/dist/validation/validate-hooks.js.map +1 -0
- package/dist/validation/validate-kits.d.ts +15 -0
- package/dist/validation/validate-kits.d.ts.map +1 -0
- package/dist/validation/validate-kits.js +185 -0
- package/dist/validation/validate-kits.js.map +1 -0
- package/dist/validation/validate-mcp.d.ts +12 -0
- package/dist/validation/validate-mcp.d.ts.map +1 -0
- package/dist/validation/validate-mcp.js +132 -0
- package/dist/validation/validate-mcp.js.map +1 -0
- package/dist/validation/validate-skills.d.ts +24 -0
- package/dist/validation/validate-skills.d.ts.map +1 -0
- package/dist/validation/validate-skills.js +223 -0
- package/dist/validation/validate-skills.js.map +1 -0
- package/dist/validation/validate-subagents.d.ts +27 -0
- package/dist/validation/validate-subagents.d.ts.map +1 -0
- package/dist/validation/validate-subagents.js +269 -0
- package/dist/validation/validate-subagents.js.map +1 -0
- package/package.json +91 -0
- package/schemas/command.schema.json +23 -0
- package/schemas/examples/hook-binding-valid.json +20 -0
- package/schemas/examples/hook-program-valid.json +25 -0
- package/schemas/examples/http-server-valid.json +82 -0
- package/schemas/examples/invalid-sensitive-header-no-envvar.json +16 -0
- package/schemas/examples/invalid-sensitive-header-with-value.json +17 -0
- package/schemas/examples/invalid-sensitive-var-with-default.json +19 -0
- package/schemas/examples/stdio-server-valid.json +55 -0
- package/schemas/hook-binding.schema.json +63 -0
- package/schemas/hook-program.schema.json +104 -0
- package/schemas/kit.schema.json +338 -0
- package/schemas/kits.schema.json +117 -0
- package/schemas/manifest.schema.json +200 -0
- package/schemas/mcp-server.schema.json +305 -0
- package/schemas/primitives.schema.json +118 -0
- package/schemas/skill.schema.json +96 -0
- package/schemas/subagent.schema.json +107 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upgrade checking functionality for installed primitives.
|
|
3
|
+
*
|
|
4
|
+
* Compares installed primitive versions against the primitives registry
|
|
5
|
+
* to identify available updates.
|
|
6
|
+
*/
|
|
7
|
+
import * as semver from "semver";
|
|
8
|
+
import { readManifest } from "./read.js";
|
|
9
|
+
/**
|
|
10
|
+
* Check for available upgrades for a specific installation scope.
|
|
11
|
+
*
|
|
12
|
+
* Convenience function that reads the manifest for the given scope
|
|
13
|
+
* and checks for available upgrades.
|
|
14
|
+
*
|
|
15
|
+
* @param scope - Installation scope (global or project)
|
|
16
|
+
* @param registry - The primitives registry loader
|
|
17
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
18
|
+
* @returns Array of available upgrade information, empty if no manifest exists
|
|
19
|
+
*/
|
|
20
|
+
export async function checkForUpgradesInScope(scope, registry, projectRoot) {
|
|
21
|
+
const manifest = await readManifest(scope, projectRoot);
|
|
22
|
+
if (!manifest) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
return checkForUpgrades(manifest, registry);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check for available upgrades across all installed primitives.
|
|
29
|
+
*
|
|
30
|
+
* @param manifest - The installation manifest
|
|
31
|
+
* @param registry - The primitives registry loader
|
|
32
|
+
* @returns Array of available upgrade information
|
|
33
|
+
*/
|
|
34
|
+
export async function checkForUpgrades(manifest, registry) {
|
|
35
|
+
const upgrades = [];
|
|
36
|
+
// Load the registry if not already loaded
|
|
37
|
+
await registry.load();
|
|
38
|
+
// Iterate through all harnesses and kits
|
|
39
|
+
for (const [harnessName, harnessEntry] of Object.entries(manifest.harnesses)) {
|
|
40
|
+
if (!harnessEntry)
|
|
41
|
+
continue;
|
|
42
|
+
for (const [kitName, kit] of Object.entries(harnessEntry.kits)) {
|
|
43
|
+
// Check each primitive for upgrades
|
|
44
|
+
for (const primitive of kit.primitives) {
|
|
45
|
+
// Skip inline primitives - they don't come from the registry
|
|
46
|
+
if (primitive.isInline)
|
|
47
|
+
continue;
|
|
48
|
+
// Skip primitives without version tracking
|
|
49
|
+
if (!primitive.versionSpec || !primitive.version)
|
|
50
|
+
continue;
|
|
51
|
+
// Check for available upgrade
|
|
52
|
+
const upgrade = await checkPrimitiveUpgrade(registry, harnessName, kitName, primitive.name, primitive.type, primitive.version, primitive.versionSpec);
|
|
53
|
+
if (upgrade) {
|
|
54
|
+
upgrades.push(upgrade);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return upgrades;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if a specific primitive has an available upgrade.
|
|
63
|
+
*
|
|
64
|
+
* @returns Upgrade info if available, null otherwise
|
|
65
|
+
*/
|
|
66
|
+
async function checkPrimitiveUpgrade(registry, harness, kit, primitiveName, primitiveType, currentVersion, versionSpec) {
|
|
67
|
+
// Get available versions from registry
|
|
68
|
+
const versions = await registry.getVersions(primitiveType, primitiveName);
|
|
69
|
+
if (versions.length === 0) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
// Find the highest version that satisfies the spec
|
|
73
|
+
const latestMatching = findHighestMatchingVersion(versions.map((v) => v.version), versionSpec);
|
|
74
|
+
if (!latestMatching) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
// Check if the latest matching version is higher than current
|
|
78
|
+
if (!semver.valid(currentVersion) || !semver.valid(latestMatching)) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
if (!semver.gt(latestMatching, currentVersion)) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
// Determine if this is a breaking change (major version bump)
|
|
85
|
+
const currentMajor = semver.major(currentVersion);
|
|
86
|
+
const newMajor = semver.major(latestMatching);
|
|
87
|
+
const breaking = newMajor > currentMajor;
|
|
88
|
+
return {
|
|
89
|
+
kit,
|
|
90
|
+
harness,
|
|
91
|
+
primitive: primitiveName,
|
|
92
|
+
type: primitiveType,
|
|
93
|
+
currentVersion,
|
|
94
|
+
availableVersion: latestMatching,
|
|
95
|
+
versionSpec,
|
|
96
|
+
breaking,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Find the highest version that satisfies a version spec.
|
|
101
|
+
*/
|
|
102
|
+
function findHighestMatchingVersion(versions, spec) {
|
|
103
|
+
// Handle "latest" keyword
|
|
104
|
+
if (spec.toLowerCase() === "latest") {
|
|
105
|
+
const validVersions = versions.filter((v) => semver.valid(v));
|
|
106
|
+
if (validVersions.length === 0)
|
|
107
|
+
return null;
|
|
108
|
+
return semver.maxSatisfying(validVersions, "*");
|
|
109
|
+
}
|
|
110
|
+
// Use semver to find highest matching
|
|
111
|
+
const validVersions = versions.filter((v) => semver.valid(v));
|
|
112
|
+
return semver.maxSatisfying(validVersions, spec);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create an upgrade summary from upgrade checks.
|
|
116
|
+
*
|
|
117
|
+
* @param upgrades - Array of upgrade checks
|
|
118
|
+
* @returns Summary of available upgrades
|
|
119
|
+
*/
|
|
120
|
+
export function createUpgradeSummary(upgrades) {
|
|
121
|
+
// Count unique kits
|
|
122
|
+
const kits = new Set(upgrades.map((u) => u.kit));
|
|
123
|
+
// Count unique harnesses
|
|
124
|
+
const harnesses = new Set(upgrades.map((u) => u.harness));
|
|
125
|
+
// Count breaking changes
|
|
126
|
+
const breakingChanges = upgrades.filter((u) => u.breaking).length;
|
|
127
|
+
return {
|
|
128
|
+
upgrades,
|
|
129
|
+
totalUpgrades: upgrades.length,
|
|
130
|
+
breakingChanges,
|
|
131
|
+
affectedKits: kits.size,
|
|
132
|
+
affectedHarnesses: harnesses.size,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Group upgrades by kit for display purposes.
|
|
137
|
+
*
|
|
138
|
+
* @param upgrades - Array of upgrade checks
|
|
139
|
+
* @returns Map of kit name to upgrades for that kit
|
|
140
|
+
*/
|
|
141
|
+
export function groupUpgradesByKit(upgrades) {
|
|
142
|
+
const grouped = new Map();
|
|
143
|
+
for (const upgrade of upgrades) {
|
|
144
|
+
const key = `${upgrade.kit}:${upgrade.harness}`;
|
|
145
|
+
const existing = grouped.get(key) || [];
|
|
146
|
+
existing.push(upgrade);
|
|
147
|
+
grouped.set(key, existing);
|
|
148
|
+
}
|
|
149
|
+
return grouped;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Group upgrades by harness for display purposes.
|
|
153
|
+
*
|
|
154
|
+
* @param upgrades - Array of upgrade checks
|
|
155
|
+
* @returns Map of harness name to upgrades for that harness
|
|
156
|
+
*/
|
|
157
|
+
export function groupUpgradesByHarness(upgrades) {
|
|
158
|
+
const grouped = new Map();
|
|
159
|
+
for (const upgrade of upgrades) {
|
|
160
|
+
const existing = grouped.get(upgrade.harness) || [];
|
|
161
|
+
existing.push(upgrade);
|
|
162
|
+
grouped.set(upgrade.harness, existing);
|
|
163
|
+
}
|
|
164
|
+
return grouped;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Filter upgrades to only include non-breaking changes.
|
|
168
|
+
*
|
|
169
|
+
* @param upgrades - Array of upgrade checks
|
|
170
|
+
* @returns Array of non-breaking upgrades
|
|
171
|
+
*/
|
|
172
|
+
export function filterNonBreaking(upgrades) {
|
|
173
|
+
return upgrades.filter((u) => !u.breaking);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Filter upgrades to only include breaking changes.
|
|
177
|
+
*
|
|
178
|
+
* @param upgrades - Array of upgrade checks
|
|
179
|
+
* @returns Array of breaking upgrades
|
|
180
|
+
*/
|
|
181
|
+
export function filterBreaking(upgrades) {
|
|
182
|
+
return upgrades.filter((u) => u.breaking);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Format an upgrade for display.
|
|
186
|
+
*
|
|
187
|
+
* @param upgrade - The upgrade check
|
|
188
|
+
* @returns Formatted string describing the upgrade
|
|
189
|
+
*/
|
|
190
|
+
export function formatUpgrade(upgrade) {
|
|
191
|
+
const changeType = upgrade.breaking ? "major" : getChangeType(upgrade);
|
|
192
|
+
return `${upgrade.primitive}: ${upgrade.currentVersion} → ${upgrade.availableVersion} (${changeType})`;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Determine the type of version change (patch, minor, major).
|
|
196
|
+
*/
|
|
197
|
+
function getChangeType(upgrade) {
|
|
198
|
+
const current = upgrade.currentVersion;
|
|
199
|
+
const available = upgrade.availableVersion;
|
|
200
|
+
if (!semver.valid(current) || !semver.valid(available)) {
|
|
201
|
+
return "unknown";
|
|
202
|
+
}
|
|
203
|
+
const currentMajor = semver.major(current);
|
|
204
|
+
const currentMinor = semver.minor(current);
|
|
205
|
+
const availableMajor = semver.major(available);
|
|
206
|
+
const availableMinor = semver.minor(available);
|
|
207
|
+
if (availableMajor > currentMajor) {
|
|
208
|
+
return "major";
|
|
209
|
+
}
|
|
210
|
+
if (availableMinor > currentMinor) {
|
|
211
|
+
return "minor";
|
|
212
|
+
}
|
|
213
|
+
return "patch";
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=upgrade-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-check.js","sourceRoot":"","sources":["../../src/manifest/upgrade-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for the manifest module.
|
|
3
|
+
*/
|
|
4
|
+
import type { InstallationScope } from "../core/types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Expand ~ to home directory.
|
|
7
|
+
*
|
|
8
|
+
* @param pathStr - Path string that may contain ~
|
|
9
|
+
* @returns Expanded path string
|
|
10
|
+
*/
|
|
11
|
+
export declare function expandPath(pathStr: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Get the manifest file path for a given scope.
|
|
14
|
+
*
|
|
15
|
+
* @param scope - Installation scope (global or project)
|
|
16
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
17
|
+
* @returns Absolute path to the manifest file
|
|
18
|
+
*/
|
|
19
|
+
export declare function getManifestPath(scope: InstallationScope, projectRoot?: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Get the manifest directory path for a given scope.
|
|
22
|
+
*
|
|
23
|
+
* @param scope - Installation scope (global or project)
|
|
24
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
25
|
+
* @returns Absolute path to the manifest directory
|
|
26
|
+
*/
|
|
27
|
+
export declare function getManifestDir(scope: InstallationScope, projectRoot?: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Ensure the manifest directory exists for a given scope.
|
|
30
|
+
*
|
|
31
|
+
* @param scope - Installation scope (global or project)
|
|
32
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
33
|
+
*/
|
|
34
|
+
export declare function ensureManifestDir(scope: InstallationScope, projectRoot?: string): Promise<void>;
|
|
35
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/manifest/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAO1D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,iBAAiB,EACxB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAWR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,iBAAiB,EACxB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,iBAAiB,EACxB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for the manifest module.
|
|
3
|
+
*/
|
|
4
|
+
import fs from "node:fs/promises";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { GLOBAL_MANIFEST_PATH, PROJECT_MANIFEST_DIR, PROJECT_MANIFEST_FILENAME, } from "./types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Expand ~ to home directory.
|
|
9
|
+
*
|
|
10
|
+
* @param pathStr - Path string that may contain ~
|
|
11
|
+
* @returns Expanded path string
|
|
12
|
+
*/
|
|
13
|
+
export function expandPath(pathStr) {
|
|
14
|
+
if (pathStr.startsWith("~")) {
|
|
15
|
+
const home = process.env["HOME"] || process.env["USERPROFILE"] || "";
|
|
16
|
+
return path.join(home, pathStr.slice(1));
|
|
17
|
+
}
|
|
18
|
+
return pathStr;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the manifest file path for a given scope.
|
|
22
|
+
*
|
|
23
|
+
* @param scope - Installation scope (global or project)
|
|
24
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
25
|
+
* @returns Absolute path to the manifest file
|
|
26
|
+
*/
|
|
27
|
+
export function getManifestPath(scope, projectRoot) {
|
|
28
|
+
if (scope === "global") {
|
|
29
|
+
return expandPath(GLOBAL_MANIFEST_PATH);
|
|
30
|
+
}
|
|
31
|
+
// Project scope
|
|
32
|
+
if (!projectRoot) {
|
|
33
|
+
throw new Error("projectRoot is required for project scope");
|
|
34
|
+
}
|
|
35
|
+
return path.join(projectRoot, PROJECT_MANIFEST_DIR, PROJECT_MANIFEST_FILENAME);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get the manifest directory path for a given scope.
|
|
39
|
+
*
|
|
40
|
+
* @param scope - Installation scope (global or project)
|
|
41
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
42
|
+
* @returns Absolute path to the manifest directory
|
|
43
|
+
*/
|
|
44
|
+
export function getManifestDir(scope, projectRoot) {
|
|
45
|
+
return path.dirname(getManifestPath(scope, projectRoot));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Ensure the manifest directory exists for a given scope.
|
|
49
|
+
*
|
|
50
|
+
* @param scope - Installation scope (global or project)
|
|
51
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
52
|
+
*/
|
|
53
|
+
export async function ensureManifestDir(scope, projectRoot) {
|
|
54
|
+
const manifestDir = getManifestDir(scope, projectRoot);
|
|
55
|
+
await fs.mkdir(manifestDir, { recursive: true });
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/manifest/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAwB,EACxB,WAAoB;IAEpB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAC1C,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAwB,EACxB,WAAoB;IAEpB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAwB,EACxB,WAAoB;IAEpB,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest write operations.
|
|
3
|
+
*
|
|
4
|
+
* Provides functionality to write and update the installation manifest.
|
|
5
|
+
*/
|
|
6
|
+
import type { InstallationScope } from "../core/types.js";
|
|
7
|
+
import type { InstallationManifest } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Error thrown when manifest write fails.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ManifestWriteError extends Error {
|
|
12
|
+
readonly errorCause?: unknown;
|
|
13
|
+
constructor(message: string, cause?: unknown);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Write the installation manifest to disk.
|
|
17
|
+
*
|
|
18
|
+
* Creates the manifest directory if it doesn't exist.
|
|
19
|
+
* Updates the lastUpdated timestamp automatically.
|
|
20
|
+
* Ensures the scope field matches the write location.
|
|
21
|
+
*
|
|
22
|
+
* @param manifest - The manifest to write
|
|
23
|
+
* @param scope - Installation scope (global or project), defaults to manifest.scope
|
|
24
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
25
|
+
* @throws ManifestWriteError if writing fails
|
|
26
|
+
*/
|
|
27
|
+
export declare function writeManifest(manifest: InstallationManifest, scope?: InstallationScope, projectRoot?: string): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Get the expanded manifest path for a given scope.
|
|
30
|
+
*
|
|
31
|
+
* @param scope - Installation scope (global or project), defaults to global
|
|
32
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
33
|
+
* @returns The absolute path to the manifest file
|
|
34
|
+
*/
|
|
35
|
+
export declare function getManifestPathForScope(scope?: InstallationScope, projectRoot?: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Get the manifest directory path for a given scope.
|
|
38
|
+
*
|
|
39
|
+
* @param scope - Installation scope (global or project), defaults to global
|
|
40
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
41
|
+
* @returns The absolute path to the manifest directory
|
|
42
|
+
*/
|
|
43
|
+
export declare function getManifestDirForScope(scope?: InstallationScope, projectRoot?: string): string;
|
|
44
|
+
//# sourceMappingURL=write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/manifest/write.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAK7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,CAAC,EAAE,iBAAiB,EACzB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,GAAE,iBAA4B,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,GAAE,iBAA4B,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAER"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest write operations.
|
|
3
|
+
*
|
|
4
|
+
* Provides functionality to write and update the installation manifest.
|
|
5
|
+
*/
|
|
6
|
+
import fs from "node:fs/promises";
|
|
7
|
+
import { getManifestPath, getManifestDir, ensureManifestDir } from "./utils.js";
|
|
8
|
+
/**
|
|
9
|
+
* Error thrown when manifest write fails.
|
|
10
|
+
*/
|
|
11
|
+
export class ManifestWriteError extends Error {
|
|
12
|
+
errorCause;
|
|
13
|
+
constructor(message, cause) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.name = "ManifestWriteError";
|
|
16
|
+
this.errorCause = cause;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Write the installation manifest to disk.
|
|
21
|
+
*
|
|
22
|
+
* Creates the manifest directory if it doesn't exist.
|
|
23
|
+
* Updates the lastUpdated timestamp automatically.
|
|
24
|
+
* Ensures the scope field matches the write location.
|
|
25
|
+
*
|
|
26
|
+
* @param manifest - The manifest to write
|
|
27
|
+
* @param scope - Installation scope (global or project), defaults to manifest.scope
|
|
28
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
29
|
+
* @throws ManifestWriteError if writing fails
|
|
30
|
+
*/
|
|
31
|
+
export async function writeManifest(manifest, scope, projectRoot) {
|
|
32
|
+
// Use provided scope or fall back to manifest's scope
|
|
33
|
+
const effectiveScope = scope ?? manifest.scope;
|
|
34
|
+
const manifestPath = getManifestPath(effectiveScope, projectRoot);
|
|
35
|
+
try {
|
|
36
|
+
// Ensure directory exists
|
|
37
|
+
await ensureManifestDir(effectiveScope, projectRoot);
|
|
38
|
+
// Update timestamp
|
|
39
|
+
manifest.lastUpdated = new Date().toISOString();
|
|
40
|
+
// Ensure scope field is set correctly
|
|
41
|
+
manifest.scope = effectiveScope;
|
|
42
|
+
// Set or clear projectRoot based on scope
|
|
43
|
+
if (effectiveScope === "project" && projectRoot) {
|
|
44
|
+
manifest.projectRoot = projectRoot;
|
|
45
|
+
}
|
|
46
|
+
else if (effectiveScope === "global") {
|
|
47
|
+
delete manifest.projectRoot;
|
|
48
|
+
}
|
|
49
|
+
// Write manifest with pretty formatting
|
|
50
|
+
const content = JSON.stringify(manifest, null, 2);
|
|
51
|
+
await fs.writeFile(manifestPath, content, "utf-8");
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
throw new ManifestWriteError(`Failed to write manifest to ${manifestPath}`, error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get the expanded manifest path for a given scope.
|
|
59
|
+
*
|
|
60
|
+
* @param scope - Installation scope (global or project), defaults to global
|
|
61
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
62
|
+
* @returns The absolute path to the manifest file
|
|
63
|
+
*/
|
|
64
|
+
export function getManifestPathForScope(scope = "global", projectRoot) {
|
|
65
|
+
return getManifestPath(scope, projectRoot);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get the manifest directory path for a given scope.
|
|
69
|
+
*
|
|
70
|
+
* @param scope - Installation scope (global or project), defaults to global
|
|
71
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
72
|
+
* @returns The absolute path to the manifest directory
|
|
73
|
+
*/
|
|
74
|
+
export function getManifestDirForScope(scope = "global", projectRoot) {
|
|
75
|
+
return getManifestDir(scope, projectRoot);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/manifest/write.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIlC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEhF;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,UAAU,CAAW;IAE9B,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAA8B,EAC9B,KAAyB,EACzB,WAAoB;IAEpB,sDAAsD;IACtD,MAAM,cAAc,GAAG,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;IAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAErD,mBAAmB;QACnB,QAAQ,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEhD,sCAAsC;QACtC,QAAQ,CAAC,KAAK,GAAG,cAAc,CAAC;QAEhC,0CAA0C;QAC1C,IAAI,cAAc,KAAK,SAAS,IAAI,WAAW,EAAE,CAAC;YAChD,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;QACrC,CAAC;aAAM,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,QAAQ,CAAC,WAAW,CAAC;QAC9B,CAAC;QAED,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,kBAAkB,CAC1B,+BAA+B,YAAY,EAAE,EAC7C,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAA2B,QAAQ,EACnC,WAAoB;IAEpB,OAAO,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAA2B,QAAQ,EACnC,WAAoB;IAEpB,OAAO,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment variable resolution module.
|
|
3
|
+
*
|
|
4
|
+
* Resolves MCP server environment variable definitions to concrete values,
|
|
5
|
+
* handling sensitivity classification and multiple value sources.
|
|
6
|
+
*
|
|
7
|
+
* See PRD-001 FR-20, FR-21 for requirements.
|
|
8
|
+
*/
|
|
9
|
+
import type { McpServerConfig, McpEnvVarDefinition, McpHeaderDefinition, ResolvedHeader, EnvVarResolutionResult } from "../core/types.js";
|
|
10
|
+
/**
|
|
11
|
+
* CLI --env flag values parsed from KEY=VALUE format.
|
|
12
|
+
*/
|
|
13
|
+
export interface CliEnvFlags {
|
|
14
|
+
[key: string]: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Extract environment variable definitions from MCP server config.
|
|
18
|
+
*
|
|
19
|
+
* @param config - The MCP server configuration
|
|
20
|
+
* @returns Record of env var names to definitions
|
|
21
|
+
*/
|
|
22
|
+
export declare function extractEnvDefsFromConfig(config: McpServerConfig): Record<string, McpEnvVarDefinition>;
|
|
23
|
+
/**
|
|
24
|
+
* Extract header definitions from HTTP transport config.
|
|
25
|
+
*
|
|
26
|
+
* @param config - The MCP server configuration
|
|
27
|
+
* @returns Record of header names to definitions
|
|
28
|
+
*/
|
|
29
|
+
export declare function extractHeaderDefsFromConfig(config: McpServerConfig): Record<string, McpHeaderDefinition>;
|
|
30
|
+
/**
|
|
31
|
+
* Resolve environment variable definitions to values.
|
|
32
|
+
*
|
|
33
|
+
* Resolution priority:
|
|
34
|
+
* 1. Sensitive vars: Always passthrough (never resolve value)
|
|
35
|
+
* 2. CLI --env flags: For nonsensitive vars only
|
|
36
|
+
* 3. process.env: Current environment value
|
|
37
|
+
* 4. Default value: If specified for nonsensitive var
|
|
38
|
+
* 5. Passthrough: If no value resolved
|
|
39
|
+
*
|
|
40
|
+
* @param serverName - Name of the MCP server (for result tracking)
|
|
41
|
+
* @param envDefs - Environment variable definitions from config
|
|
42
|
+
* @param cliEnvFlags - Values from CLI --env flags
|
|
43
|
+
* @returns Resolution result with resolved vars, missing required, and warnings
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveEnvVars(serverName: string, envDefs: Record<string, McpEnvVarDefinition>, cliEnvFlags?: CliEnvFlags): EnvVarResolutionResult;
|
|
46
|
+
/**
|
|
47
|
+
* Resolve header definitions to values.
|
|
48
|
+
*
|
|
49
|
+
* @param headerDefs - Header definitions from HTTP transport config
|
|
50
|
+
* @returns Array of resolved headers
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveHeaders(headerDefs: Record<string, McpHeaderDefinition>): ResolvedHeader[];
|
|
53
|
+
/**
|
|
54
|
+
* Validate that --env flags don't include sensitive variables.
|
|
55
|
+
*
|
|
56
|
+
* @param cliEnvFlags - Values from CLI --env flags
|
|
57
|
+
* @param envDefs - Environment variable definitions from config
|
|
58
|
+
* @returns List of invalid flag names (sensitive vars that were provided)
|
|
59
|
+
*/
|
|
60
|
+
export declare function validateCliEnvFlags(cliEnvFlags: CliEnvFlags, envDefs: Record<string, McpEnvVarDefinition>): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Resolve all environment variables for an MCP server config.
|
|
63
|
+
*
|
|
64
|
+
* This is a convenience function that combines extraction and resolution.
|
|
65
|
+
*
|
|
66
|
+
* @param serverName - Name of the MCP server
|
|
67
|
+
* @param config - The MCP server configuration
|
|
68
|
+
* @param cliEnvFlags - Values from CLI --env flags
|
|
69
|
+
* @returns Complete resolution result including env vars and headers
|
|
70
|
+
*/
|
|
71
|
+
export declare function resolveEnvVarsFromConfig(serverName: string, config: McpServerConfig, cliEnvFlags?: CliEnvFlags): EnvVarResolutionResult;
|
|
72
|
+
/**
|
|
73
|
+
* Merge multiple env var definitions from different MCP servers.
|
|
74
|
+
*
|
|
75
|
+
* Used when validating CLI flags against all MCP servers in a kit.
|
|
76
|
+
*
|
|
77
|
+
* @param configs - Array of MCP server configurations
|
|
78
|
+
* @returns Merged record of all env var definitions
|
|
79
|
+
*/
|
|
80
|
+
export declare function mergeEnvDefs(configs: McpServerConfig[]): Record<string, McpEnvVarDefinition>;
|
|
81
|
+
//# sourceMappingURL=env-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-resolver.d.ts","sourceRoot":"","sources":["../../src/resolution/env-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EAEnB,cAAc,EACd,sBAAsB,EAEvB,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,GACtB,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAErC;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,eAAe,GACtB,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAKrC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAC5C,WAAW,GAAE,WAAgB,GAC5B,sBAAsB,CAiFxB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC9C,cAAc,EAAE,CAmClB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC3C,MAAM,EAAE,CAWV;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,EACvB,WAAW,GAAE,WAAgB,GAC5B,sBAAsB,CAQxB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,EAAE,GACzB,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA8BrC"}
|