@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,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local fetcher for handling local path sources.
|
|
3
|
+
*
|
|
4
|
+
* Validates that local paths exist and are accessible.
|
|
5
|
+
*/
|
|
6
|
+
import fs from "node:fs/promises";
|
|
7
|
+
import { parseSource, SourceParseError } from "./source-parser.js";
|
|
8
|
+
/**
|
|
9
|
+
* Error thrown when local path operations fail.
|
|
10
|
+
*/
|
|
11
|
+
export class LocalFetchError extends Error {
|
|
12
|
+
localSource;
|
|
13
|
+
localCause;
|
|
14
|
+
constructor(message, source, cause) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = "LocalFetchError";
|
|
17
|
+
this.localSource = source;
|
|
18
|
+
if (cause) {
|
|
19
|
+
this.localCause = cause;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Local fetcher implementation for local path sources.
|
|
25
|
+
*/
|
|
26
|
+
export class LocalFetcher {
|
|
27
|
+
/**
|
|
28
|
+
* Check if this fetcher can handle the given source.
|
|
29
|
+
*
|
|
30
|
+
* Handles local paths: ./path, ../path, /absolute/path, ~/path
|
|
31
|
+
*/
|
|
32
|
+
canHandle(source) {
|
|
33
|
+
try {
|
|
34
|
+
const descriptor = parseSource(source);
|
|
35
|
+
return descriptor.type === "local";
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Fetch (validate) a local path.
|
|
43
|
+
*
|
|
44
|
+
* @param source - Local path (e.g., "./my-kits" or "/absolute/path")
|
|
45
|
+
* @returns Fetch result with local path (no cleanup needed)
|
|
46
|
+
* @throws LocalFetchError if the path does not exist or is not accessible
|
|
47
|
+
*/
|
|
48
|
+
async fetch(source) {
|
|
49
|
+
let descriptor;
|
|
50
|
+
try {
|
|
51
|
+
const parsed = parseSource(source);
|
|
52
|
+
if (parsed.type !== "local") {
|
|
53
|
+
throw new SourceParseError("Not a local source", source);
|
|
54
|
+
}
|
|
55
|
+
descriptor = parsed;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
throw new LocalFetchError(`Failed to parse source: ${source}`, source, error instanceof Error ? error : undefined);
|
|
59
|
+
}
|
|
60
|
+
// Check if path exists
|
|
61
|
+
try {
|
|
62
|
+
const stats = await fs.stat(descriptor.path);
|
|
63
|
+
if (!stats.isDirectory()) {
|
|
64
|
+
throw new LocalFetchError(`Path is not a directory: ${descriptor.path}`, source);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (error instanceof LocalFetchError) {
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
const nodeError = error;
|
|
72
|
+
if (nodeError.code === "ENOENT") {
|
|
73
|
+
throw new LocalFetchError(`Path does not exist: ${descriptor.path}`, source, error instanceof Error ? error : undefined);
|
|
74
|
+
}
|
|
75
|
+
if (nodeError.code === "EACCES") {
|
|
76
|
+
throw new LocalFetchError(`Permission denied: ${descriptor.path}`, source, error instanceof Error ? error : undefined);
|
|
77
|
+
}
|
|
78
|
+
throw new LocalFetchError(`Failed to access path: ${descriptor.path}`, source, error instanceof Error ? error : undefined);
|
|
79
|
+
}
|
|
80
|
+
// Check for read access
|
|
81
|
+
try {
|
|
82
|
+
await fs.access(descriptor.path, fs.constants.R_OK);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
throw new LocalFetchError(`Cannot read directory: ${descriptor.path}`, source, error instanceof Error ? error : undefined);
|
|
86
|
+
}
|
|
87
|
+
// Return result (no cleanup needed for local paths)
|
|
88
|
+
return {
|
|
89
|
+
localPath: descriptor.path,
|
|
90
|
+
// No cleanup function for local paths
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Create a local fetcher.
|
|
96
|
+
*/
|
|
97
|
+
export function createLocalFetcher() {
|
|
98
|
+
return new LocalFetcher();
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=local-fetcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-fetcher.js","sourceRoot":"","sources":["../../src/discovery/local-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source parser for kit repository sources.
|
|
3
|
+
*
|
|
4
|
+
* Parses GitHub shorthand (org/repo, org/repo@ref) and local paths.
|
|
5
|
+
*/
|
|
6
|
+
import type { SourceDescriptor } from "./types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Error thrown when source parsing fails.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SourceParseError extends Error {
|
|
11
|
+
readonly source: string;
|
|
12
|
+
constructor(message: string, source: string);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Parse a source string into a typed source descriptor.
|
|
16
|
+
*
|
|
17
|
+
* Supported formats:
|
|
18
|
+
* - GitHub shorthand: org/repo, org/repo@ref
|
|
19
|
+
* - Local paths: ./path, ../path, /absolute/path, ~/path
|
|
20
|
+
*
|
|
21
|
+
* @param source - The source string to parse
|
|
22
|
+
* @returns Parsed source descriptor
|
|
23
|
+
* @throws SourceParseError if the source format is not recognized
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseSource(source: string): SourceDescriptor;
|
|
26
|
+
/**
|
|
27
|
+
* Format a source descriptor back to a string.
|
|
28
|
+
*
|
|
29
|
+
* @param descriptor - The source descriptor to format
|
|
30
|
+
* @returns Formatted source string
|
|
31
|
+
*/
|
|
32
|
+
export declare function formatSource(descriptor: SourceDescriptor): string;
|
|
33
|
+
//# sourceMappingURL=source-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-parser.d.ts","sourceRoot":"","sources":["../../src/discovery/source-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAA6B,MAAM,YAAY,CAAC;AAQ9E;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,MAAM,EAAE,MAAM;gBAD9B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM;CAKjC;AAmFD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CA+B5D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAOjE"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source parser for kit repository sources.
|
|
3
|
+
*
|
|
4
|
+
* Parses GitHub shorthand (org/repo, org/repo@ref) and local paths.
|
|
5
|
+
*/
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
/**
|
|
8
|
+
* GitHub shorthand pattern: org/repo or org/repo@ref
|
|
9
|
+
* Does NOT match URLs (http://, https://, git://)
|
|
10
|
+
*/
|
|
11
|
+
const GITHUB_SHORTHAND_PATTERN = /^([a-zA-Z0-9_.-]+)\/([a-zA-Z0-9_.-]+)(?:@(.+))?$/;
|
|
12
|
+
/**
|
|
13
|
+
* Error thrown when source parsing fails.
|
|
14
|
+
*/
|
|
15
|
+
export class SourceParseError extends Error {
|
|
16
|
+
source;
|
|
17
|
+
constructor(message, source) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.source = source;
|
|
20
|
+
this.name = "SourceParseError";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check if a string looks like a local path.
|
|
25
|
+
*
|
|
26
|
+
* Local paths start with:
|
|
27
|
+
* - ./ (relative)
|
|
28
|
+
* - ../ (parent relative)
|
|
29
|
+
* - / (absolute)
|
|
30
|
+
* - ~ (home directory)
|
|
31
|
+
*/
|
|
32
|
+
function isLocalPath(source) {
|
|
33
|
+
return (source.startsWith("./") ||
|
|
34
|
+
source.startsWith("../") ||
|
|
35
|
+
source.startsWith("/") ||
|
|
36
|
+
source.startsWith("~"));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check if a string looks like a URL.
|
|
40
|
+
*/
|
|
41
|
+
function isUrl(source) {
|
|
42
|
+
return (source.startsWith("http://") ||
|
|
43
|
+
source.startsWith("https://") ||
|
|
44
|
+
source.startsWith("git://") ||
|
|
45
|
+
source.startsWith("ssh://"));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Parse a GitHub shorthand source.
|
|
49
|
+
*
|
|
50
|
+
* @param source - GitHub shorthand (e.g., "example-org/kits@v1.0.0")
|
|
51
|
+
* @returns Parsed GitHub source descriptor
|
|
52
|
+
* @throws SourceParseError if the source is not valid GitHub shorthand
|
|
53
|
+
*/
|
|
54
|
+
function parseGitHubShorthand(source) {
|
|
55
|
+
const match = source.match(GITHUB_SHORTHAND_PATTERN);
|
|
56
|
+
if (!match) {
|
|
57
|
+
throw new SourceParseError(`Invalid GitHub shorthand: ${source}`, source);
|
|
58
|
+
}
|
|
59
|
+
const [, owner, repo, ref] = match;
|
|
60
|
+
const result = {
|
|
61
|
+
type: "github",
|
|
62
|
+
owner: owner,
|
|
63
|
+
repo: repo,
|
|
64
|
+
};
|
|
65
|
+
if (ref) {
|
|
66
|
+
result.ref = ref;
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Parse a local path source.
|
|
72
|
+
*
|
|
73
|
+
* @param source - Local path (e.g., "./my-kits" or "/absolute/path")
|
|
74
|
+
* @returns Parsed local source descriptor
|
|
75
|
+
*/
|
|
76
|
+
function parseLocalPath(source) {
|
|
77
|
+
let resolvedPath;
|
|
78
|
+
if (source.startsWith("~")) {
|
|
79
|
+
// Expand home directory
|
|
80
|
+
const home = process.env["HOME"] || process.env["USERPROFILE"] || "";
|
|
81
|
+
resolvedPath = path.resolve(source.replace(/^~/, home));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
resolvedPath = path.resolve(source);
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
type: "local",
|
|
88
|
+
path: resolvedPath,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Parse a source string into a typed source descriptor.
|
|
93
|
+
*
|
|
94
|
+
* Supported formats:
|
|
95
|
+
* - GitHub shorthand: org/repo, org/repo@ref
|
|
96
|
+
* - Local paths: ./path, ../path, /absolute/path, ~/path
|
|
97
|
+
*
|
|
98
|
+
* @param source - The source string to parse
|
|
99
|
+
* @returns Parsed source descriptor
|
|
100
|
+
* @throws SourceParseError if the source format is not recognized
|
|
101
|
+
*/
|
|
102
|
+
export function parseSource(source) {
|
|
103
|
+
if (!source || source.trim() === "") {
|
|
104
|
+
throw new SourceParseError("Source cannot be empty", source);
|
|
105
|
+
}
|
|
106
|
+
const trimmed = source.trim();
|
|
107
|
+
// Check for URLs (not supported in initial release)
|
|
108
|
+
if (isUrl(trimmed)) {
|
|
109
|
+
throw new SourceParseError("URL sources are not supported. Use GitHub shorthand (org/repo) or local paths instead.", source);
|
|
110
|
+
}
|
|
111
|
+
// Check for local paths first (they might contain slashes)
|
|
112
|
+
if (isLocalPath(trimmed)) {
|
|
113
|
+
return parseLocalPath(trimmed);
|
|
114
|
+
}
|
|
115
|
+
// Try GitHub shorthand
|
|
116
|
+
if (GITHUB_SHORTHAND_PATTERN.test(trimmed)) {
|
|
117
|
+
return parseGitHubShorthand(trimmed);
|
|
118
|
+
}
|
|
119
|
+
// Unknown format
|
|
120
|
+
throw new SourceParseError(`Unrecognized source format: ${source}. ` +
|
|
121
|
+
"Expected GitHub shorthand (org/repo) or local path (./path).", source);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Format a source descriptor back to a string.
|
|
125
|
+
*
|
|
126
|
+
* @param descriptor - The source descriptor to format
|
|
127
|
+
* @returns Formatted source string
|
|
128
|
+
*/
|
|
129
|
+
export function formatSource(descriptor) {
|
|
130
|
+
if (descriptor.type === "github") {
|
|
131
|
+
const base = `${descriptor.owner}/${descriptor.repo}`;
|
|
132
|
+
return descriptor.ref ? `${base}@${descriptor.ref}` : base;
|
|
133
|
+
}
|
|
134
|
+
return descriptor.path;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=source-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-parser.js","sourceRoot":"","sources":["../../src/discovery/source-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B;;;GAGG;AACH,MAAM,wBAAwB,GAAG,kDAAkD,CAAC;AAEpF;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAGvB;IAFlB,YACE,OAAe,EACC,MAAc;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAAQ;QAG9B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,CACL,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QACvB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QACxB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QACtB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,KAAK,CAAC,MAAc;IAC3B,OAAO,CACL,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;QAC5B,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;QAC7B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,gBAAgB,CAAC,6BAA6B,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;IAEnC,MAAM,MAAM,GAAiB;QAC3B,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,KAAM;QACb,IAAI,EAAE,IAAK;KACZ,CAAC;IAEF,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,YAAoB,CAAC;IAEzB,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,wBAAwB;QACxB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACrE,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAE9B,oDAAoD;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,gBAAgB,CACxB,wFAAwF,EACxF,MAAM,CACP,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,uBAAuB;IACvB,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,iBAAiB;IACjB,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,MAAM,IAAI;QACvC,8DAA8D,EAChE,MAAM,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,UAA4B;IACvD,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACtD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discovery type definitions.
|
|
3
|
+
*
|
|
4
|
+
* These types support source fetching and kit discovery from repositories.
|
|
5
|
+
*/
|
|
6
|
+
import type { PrimitiveType, KitManifest, KitRegistry, PrimitivesRegistry } from "../core/types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Source types supported by the installer.
|
|
9
|
+
*/
|
|
10
|
+
export type SourceType = "github" | "local";
|
|
11
|
+
/**
|
|
12
|
+
* Parsed GitHub source.
|
|
13
|
+
*/
|
|
14
|
+
export interface GitHubSource {
|
|
15
|
+
type: "github";
|
|
16
|
+
owner: string;
|
|
17
|
+
repo: string;
|
|
18
|
+
ref?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parsed local source.
|
|
22
|
+
*/
|
|
23
|
+
export interface LocalSource {
|
|
24
|
+
type: "local";
|
|
25
|
+
path: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Parsed source descriptor.
|
|
29
|
+
*/
|
|
30
|
+
export type SourceDescriptor = GitHubSource | LocalSource;
|
|
31
|
+
/**
|
|
32
|
+
* Type guard for GitHub sources.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isGitHubSource(source: SourceDescriptor): source is GitHubSource;
|
|
35
|
+
/**
|
|
36
|
+
* Type guard for local sources.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isLocalSource(source: SourceDescriptor): source is LocalSource;
|
|
39
|
+
/**
|
|
40
|
+
* Result of fetching a source.
|
|
41
|
+
*/
|
|
42
|
+
export interface FetchResult {
|
|
43
|
+
localPath: string;
|
|
44
|
+
cleanup?: () => Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Primitive counts for a kit.
|
|
48
|
+
*/
|
|
49
|
+
export interface PrimitiveCounts {
|
|
50
|
+
commands: number;
|
|
51
|
+
skills: number;
|
|
52
|
+
subagents: number;
|
|
53
|
+
mcp: number;
|
|
54
|
+
hooks: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Discovered kit with computed metadata.
|
|
58
|
+
*/
|
|
59
|
+
export interface DiscoveredKit {
|
|
60
|
+
name: string;
|
|
61
|
+
path: string;
|
|
62
|
+
manifest: KitManifest;
|
|
63
|
+
requiredPrimitives: PrimitiveType[];
|
|
64
|
+
primitiveCounts: PrimitiveCounts;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Repository metadata inferred from kits.json or structure.
|
|
68
|
+
*/
|
|
69
|
+
export interface RepositoryMetadata {
|
|
70
|
+
name: string;
|
|
71
|
+
description?: string;
|
|
72
|
+
version?: string;
|
|
73
|
+
owner?: {
|
|
74
|
+
name: string;
|
|
75
|
+
url?: string;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Result of kit discovery.
|
|
80
|
+
*/
|
|
81
|
+
export interface KitDiscoveryResult {
|
|
82
|
+
source: string;
|
|
83
|
+
localPath: string;
|
|
84
|
+
repository: RepositoryMetadata;
|
|
85
|
+
registry?: KitRegistry;
|
|
86
|
+
primitivesRegistry?: PrimitivesRegistry;
|
|
87
|
+
kits: DiscoveredKit[];
|
|
88
|
+
errors: DiscoveryError[];
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Error during kit discovery.
|
|
92
|
+
*/
|
|
93
|
+
export interface DiscoveryError {
|
|
94
|
+
type: "invalid-manifest" | "missing-file" | "parse-error" | "validation-error";
|
|
95
|
+
path?: string;
|
|
96
|
+
message: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Source fetcher interface.
|
|
100
|
+
*/
|
|
101
|
+
export interface SourceFetcher {
|
|
102
|
+
/**
|
|
103
|
+
* Check if this fetcher can handle the given source.
|
|
104
|
+
*/
|
|
105
|
+
canHandle(source: string): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Fetch the source to a local directory.
|
|
108
|
+
*/
|
|
109
|
+
fetch(source: string): Promise<FetchResult>;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Detected harness information.
|
|
113
|
+
*/
|
|
114
|
+
export interface DetectedHarness {
|
|
115
|
+
name: string;
|
|
116
|
+
displayName: string;
|
|
117
|
+
detected: boolean;
|
|
118
|
+
version?: string;
|
|
119
|
+
configPath?: string;
|
|
120
|
+
installationPaths: {
|
|
121
|
+
commands: string;
|
|
122
|
+
skills: string;
|
|
123
|
+
subagents?: string;
|
|
124
|
+
hooks?: string;
|
|
125
|
+
};
|
|
126
|
+
supportedPrimitives: PrimitiveType[];
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Compatibility information for a kit against a harness.
|
|
130
|
+
*/
|
|
131
|
+
export interface KitCompatibility {
|
|
132
|
+
harness: string;
|
|
133
|
+
compatible: boolean;
|
|
134
|
+
missingPrimitives: PrimitiveType[];
|
|
135
|
+
experimentalPrimitives: PrimitiveType[];
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Compatibility matrix for a kit across all harnesses.
|
|
139
|
+
*/
|
|
140
|
+
export interface CompatibilityMatrix {
|
|
141
|
+
kit: string;
|
|
142
|
+
requiredPrimitives: PrimitiveType[];
|
|
143
|
+
harnesses: KitCompatibility[];
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discovery type definitions.
|
|
3
|
+
*
|
|
4
|
+
* These types support source fetching and kit discovery from repositories.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Type guard for GitHub sources.
|
|
8
|
+
*/
|
|
9
|
+
export function isGitHubSource(source) {
|
|
10
|
+
return source.type === "github";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Type guard for local sources.
|
|
14
|
+
*/
|
|
15
|
+
export function isLocalSource(source) {
|
|
16
|
+
return source.type === "local";
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgCH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAwB;IACrD,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;AACjC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hashicorp/kits
|
|
3
|
+
*
|
|
4
|
+
* Install AI agent kits into your favorite coding assistants.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./core/types.js";
|
|
7
|
+
export * from "./adapters/types.js";
|
|
8
|
+
export * from "./adapters/index.js";
|
|
9
|
+
export * from "./manifest/types.js";
|
|
10
|
+
export * from "./resolution/types.js";
|
|
11
|
+
export * from "./discovery/types.js";
|
|
12
|
+
export * from "./cli/types.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,iBAAiB,CAAC;AAGhC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hashicorp/kits
|
|
3
|
+
*
|
|
4
|
+
* Install AI agent kits into your favorite coding assistants.
|
|
5
|
+
*/
|
|
6
|
+
// Core types
|
|
7
|
+
export * from "./core/types.js";
|
|
8
|
+
// Adapter types and implementations
|
|
9
|
+
export * from "./adapters/types.js";
|
|
10
|
+
export * from "./adapters/index.js";
|
|
11
|
+
// Manifest types
|
|
12
|
+
export * from "./manifest/types.js";
|
|
13
|
+
// Resolution types
|
|
14
|
+
export * from "./resolution/types.js";
|
|
15
|
+
// Discovery types
|
|
16
|
+
export * from "./discovery/types.js";
|
|
17
|
+
// CLI types
|
|
18
|
+
export * from "./cli/types.js";
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,cAAc,iBAAiB,CAAC;AAEhC,oCAAoC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,iBAAiB;AACjB,cAAc,qBAAqB,CAAC;AAEpC,mBAAmB;AACnB,cAAc,uBAAuB,CAAC;AAEtC,kBAAkB;AAClB,cAAc,sBAAsB,CAAC;AAErC,YAAY;AACZ,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest module for the kit installer.
|
|
3
|
+
*
|
|
4
|
+
* This module handles reading, writing, and managing the installation manifest
|
|
5
|
+
* that tracks installed kits and primitives across harnesses.
|
|
6
|
+
*/
|
|
7
|
+
import type { HarnessName, InstallationScope, ResolvedPrimitive, KitManifest } from "../core/types.js";
|
|
8
|
+
import type { InstalledKit } from "./types.js";
|
|
9
|
+
export type { InstalledPrimitive, InstalledKit, HarnessInstallation, InstallationManifest, UpgradeCheck, UpgradeSummary, } from "./types.js";
|
|
10
|
+
export { MANIFEST_VERSION, GLOBAL_MANIFEST_PATH, PROJECT_MANIFEST_DIR, PROJECT_MANIFEST_FILENAME, createEmptyManifest, } from "./types.js";
|
|
11
|
+
export { readManifest, getOrCreateManifest, ManifestReadError } from "./read.js";
|
|
12
|
+
export { writeManifest, ManifestWriteError } from "./write.js";
|
|
13
|
+
export { getManifestPathForScope, getManifestDirForScope } from "./write.js";
|
|
14
|
+
export { checkForUpgrades, checkForUpgradesInScope, createUpgradeSummary, } from "./upgrade-check.js";
|
|
15
|
+
export { expandPath, getManifestPath, getManifestDir, ensureManifestDir, } from "./utils.js";
|
|
16
|
+
/**
|
|
17
|
+
* Record a kit installation in the manifest.
|
|
18
|
+
*
|
|
19
|
+
* @param harness - The harness name
|
|
20
|
+
* @param kit - The kit manifest
|
|
21
|
+
* @param primitives - The resolved primitives that were installed
|
|
22
|
+
* @param source - The source repository
|
|
23
|
+
* @param scope - Installation scope (global or project)
|
|
24
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
25
|
+
*/
|
|
26
|
+
export declare function recordInstallation(harness: HarnessName, kit: KitManifest, primitives: ResolvedPrimitive[], source: string, scope?: InstallationScope, projectRoot?: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Remove a kit installation from the manifest.
|
|
29
|
+
*
|
|
30
|
+
* @param harness - The harness name
|
|
31
|
+
* @param kitName - The kit name to remove
|
|
32
|
+
* @param scope - Installation scope (global or project)
|
|
33
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
34
|
+
* @returns The removed kit info or null if not found
|
|
35
|
+
*/
|
|
36
|
+
export declare function removeInstallation(harness: HarnessName, kitName: string, scope?: InstallationScope, projectRoot?: string): Promise<InstalledKit | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Get all installed kits, optionally filtered by harness.
|
|
39
|
+
*
|
|
40
|
+
* @param scope - Installation scope (global or project)
|
|
41
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
42
|
+
* @param harness - Optional harness name to filter by
|
|
43
|
+
* @returns Array of installed kit info with harness context
|
|
44
|
+
*/
|
|
45
|
+
export declare function getInstalledKits(scope?: InstallationScope, projectRoot?: string, harness?: HarnessName): Promise<Array<{
|
|
46
|
+
harness: HarnessName;
|
|
47
|
+
kitName: string;
|
|
48
|
+
kit: InstalledKit;
|
|
49
|
+
}>>;
|
|
50
|
+
/**
|
|
51
|
+
* Check if a kit is installed in any harness.
|
|
52
|
+
*
|
|
53
|
+
* @param kitName - The kit name to check
|
|
54
|
+
* @param scope - Installation scope (global or project)
|
|
55
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
56
|
+
* @returns True if the kit is installed somewhere
|
|
57
|
+
*/
|
|
58
|
+
export declare function isKitInstalled(kitName: string, scope?: InstallationScope, projectRoot?: string): Promise<boolean>;
|
|
59
|
+
/**
|
|
60
|
+
* Check if a kit is installed in a specific harness.
|
|
61
|
+
*
|
|
62
|
+
* @param harness - The harness name
|
|
63
|
+
* @param kitName - The kit name to check
|
|
64
|
+
* @param scope - Installation scope (global or project)
|
|
65
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
66
|
+
* @returns True if the kit is installed in the harness
|
|
67
|
+
*/
|
|
68
|
+
export declare function isKitInstalledInHarness(harness: HarnessName, kitName: string, scope?: InstallationScope, projectRoot?: string): Promise<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* Get a specific installed kit.
|
|
71
|
+
*
|
|
72
|
+
* @param harness - The harness name
|
|
73
|
+
* @param kitName - The kit name
|
|
74
|
+
* @param scope - Installation scope (global or project)
|
|
75
|
+
* @param projectRoot - Absolute path to project root (required for project scope)
|
|
76
|
+
* @returns The installed kit or null if not found
|
|
77
|
+
*/
|
|
78
|
+
export declare function getInstalledKit(harness: HarnessName, kitName: string, scope?: InstallationScope, projectRoot?: string): Promise<InstalledKit | null>;
|
|
79
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAKnE,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGjF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAG/D,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAG7E,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,iBAA4B,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,iBAA4B,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA0B9B;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,GAAE,iBAA4B,EACnC,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,KAAK,CAAC;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CAyB9E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,iBAA4B,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAalB;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,iBAA4B,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,iBAA4B,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAY9B"}
|