@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,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini CLI installation helpers.
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for installing primitives to Gemini CLI:
|
|
5
|
+
* - MCP server configuration in ~/.gemini/settings.json
|
|
6
|
+
* - Hook configuration in ~/.gemini/settings.json
|
|
7
|
+
* - Command transformation (Markdown → TOML)
|
|
8
|
+
* - Subagent transformation (Markdown → JSON config)
|
|
9
|
+
* - Environment variable substitution
|
|
10
|
+
*/
|
|
11
|
+
import type { McpServerConfig, CommandMetadata, SubagentMetadata, ResolvedEnvVar, ResolvedHeader, EnvVarOutput, HeaderOutput } from "../../core/types.js";
|
|
12
|
+
import type { HookInstallation, HookInstallationInput, FileOperationResult } from "../types.js";
|
|
13
|
+
/**
|
|
14
|
+
* Gemini CLI settings structure.
|
|
15
|
+
*/
|
|
16
|
+
export interface GeminiSettings {
|
|
17
|
+
mcpServers?: Record<string, GeminiMcpServerEntry>;
|
|
18
|
+
hooks?: Record<string, GeminiHookConfig>;
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* MCP server entry in Gemini CLI config.
|
|
23
|
+
*/
|
|
24
|
+
export interface GeminiMcpServerEntry {
|
|
25
|
+
command?: string;
|
|
26
|
+
args?: string[];
|
|
27
|
+
env?: Record<string, string>;
|
|
28
|
+
url?: string;
|
|
29
|
+
headers?: Record<string, string>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Gemini CLI hook configuration.
|
|
33
|
+
*/
|
|
34
|
+
export interface GeminiHookMatcherEntry {
|
|
35
|
+
matcher: string | {
|
|
36
|
+
tool?: string;
|
|
37
|
+
pattern?: string;
|
|
38
|
+
};
|
|
39
|
+
hooks: GeminiHookEntry[];
|
|
40
|
+
}
|
|
41
|
+
export type GeminiHookConfig = GeminiHookMatcherEntry[];
|
|
42
|
+
export interface GeminiHookEntry {
|
|
43
|
+
name?: string;
|
|
44
|
+
type: "command";
|
|
45
|
+
command: string;
|
|
46
|
+
timeout?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Read the settings configuration file.
|
|
50
|
+
*/
|
|
51
|
+
export declare function readSettingsConfig(): Promise<GeminiSettings>;
|
|
52
|
+
/**
|
|
53
|
+
* Write the settings configuration file.
|
|
54
|
+
*/
|
|
55
|
+
export declare function writeSettingsConfig(config: GeminiSettings): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Process environment variable values.
|
|
58
|
+
*/
|
|
59
|
+
export declare function processEnvValue(value: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* Transform an MCP server configuration for Gemini CLI.
|
|
62
|
+
*
|
|
63
|
+
* Note: Full environment variable transformation with sensitivity handling
|
|
64
|
+
* is implemented in transformEnvVars (Phase 7). This function provides
|
|
65
|
+
* basic passthrough for all env vars using ${VAR} syntax.
|
|
66
|
+
*/
|
|
67
|
+
export declare function transformMcpServerConfig(config: McpServerConfig): GeminiMcpServerEntry;
|
|
68
|
+
/**
|
|
69
|
+
* Parse frontmatter from Markdown content.
|
|
70
|
+
*
|
|
71
|
+
* Extracts YAML frontmatter from Markdown files.
|
|
72
|
+
*/
|
|
73
|
+
export declare function parseFrontmatter(content: string): {
|
|
74
|
+
frontmatter: Record<string, unknown>;
|
|
75
|
+
body: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Transform a Markdown command to TOML format for Gemini CLI.
|
|
79
|
+
*
|
|
80
|
+
* Gemini CLI command format (TOML):
|
|
81
|
+
* ```toml
|
|
82
|
+
* description = "Command description"
|
|
83
|
+
*
|
|
84
|
+
* [prompt]
|
|
85
|
+
* content = """
|
|
86
|
+
* The command prompt content...
|
|
87
|
+
* """
|
|
88
|
+
* ```
|
|
89
|
+
*
|
|
90
|
+
* Note: Uses canonical command-parser for frontmatter extraction.
|
|
91
|
+
* The argumentHint field is intentionally ignored as Gemini CLI
|
|
92
|
+
* does not support this field.
|
|
93
|
+
*/
|
|
94
|
+
export declare function transformCommandToToml(content: string, metadata: CommandMetadata): string;
|
|
95
|
+
/**
|
|
96
|
+
* Transform a Markdown subagent to JSON config for Gemini CLI.
|
|
97
|
+
*
|
|
98
|
+
* Gemini CLI subagent format (JSON):
|
|
99
|
+
* ```json
|
|
100
|
+
* {
|
|
101
|
+
* "name": "agent-name",
|
|
102
|
+
* "description": "Agent description",
|
|
103
|
+
* "systemPrompt": "The agent system prompt..."
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export declare function transformSubagentToJson(content: string, metadata: SubagentMetadata): string;
|
|
108
|
+
/**
|
|
109
|
+
* Transform a hook for Gemini CLI.
|
|
110
|
+
*/
|
|
111
|
+
export declare function transformHookConfig(input: HookInstallationInput): HookInstallation;
|
|
112
|
+
/**
|
|
113
|
+
* Transform resolved environment variables to Gemini CLI format.
|
|
114
|
+
*
|
|
115
|
+
* Gemini CLI uses JSON configuration with ${VAR} syntax for passthrough.
|
|
116
|
+
*
|
|
117
|
+
* Rules (per FR-20.5):
|
|
118
|
+
* - Passthrough: "VAR": "${VAR}"
|
|
119
|
+
* - Direct value: "VAR": "value"
|
|
120
|
+
*/
|
|
121
|
+
export declare function transformEnvVars(resolved: ResolvedEnvVar[]): EnvVarOutput;
|
|
122
|
+
/**
|
|
123
|
+
* Transform resolved headers to Gemini CLI format.
|
|
124
|
+
*
|
|
125
|
+
* Gemini CLI uses ${VAR} syntax within header values for passthrough.
|
|
126
|
+
*
|
|
127
|
+
* Rules (per FR-21.4):
|
|
128
|
+
* - Sensitive with envVar: "Header": "${VAR}"
|
|
129
|
+
* - Nonsensitive with static value: "Header": "value"
|
|
130
|
+
* - Nonsensitive with envVar: "Header": "${VAR}"
|
|
131
|
+
*/
|
|
132
|
+
export declare function transformHeaders(resolved: ResolvedHeader[]): HeaderOutput;
|
|
133
|
+
/**
|
|
134
|
+
* Add an MCP server to the configuration.
|
|
135
|
+
*/
|
|
136
|
+
export declare function addMcpServer(namespacedName: string, config: McpServerConfig): Promise<FileOperationResult>;
|
|
137
|
+
/**
|
|
138
|
+
* Remove an MCP server from the configuration.
|
|
139
|
+
*/
|
|
140
|
+
export declare function removeMcpServer(namespacedName: string): Promise<boolean>;
|
|
141
|
+
/**
|
|
142
|
+
* Add a hook to the settings configuration.
|
|
143
|
+
*/
|
|
144
|
+
export declare function addHookConfig(namespacedName: string, hookInstallation: HookInstallation): Promise<FileOperationResult>;
|
|
145
|
+
/**
|
|
146
|
+
* Remove a hook from the settings configuration.
|
|
147
|
+
*/
|
|
148
|
+
export declare function removeHookConfig(namespacedName: string): Promise<boolean>;
|
|
149
|
+
export declare function mergeHookConfigs(existing: Record<string, GeminiHookConfig>, addition: Record<string, GeminiHookConfig>): Record<string, GeminiHookConfig>;
|
|
150
|
+
/**
|
|
151
|
+
* Get all installed MCP servers for a specific kit.
|
|
152
|
+
*/
|
|
153
|
+
export declare function getKitMcpServers(kitName: string): Promise<string[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Remove all MCP servers for a specific kit.
|
|
156
|
+
*/
|
|
157
|
+
export declare function removeKitMcpServers(kitName: string): Promise<string[]>;
|
|
158
|
+
//# sourceMappingURL=installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../../src/adapters/gemini-cli/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini CLI installation helpers.
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for installing primitives to Gemini CLI:
|
|
5
|
+
* - MCP server configuration in ~/.gemini/settings.json
|
|
6
|
+
* - Hook configuration in ~/.gemini/settings.json
|
|
7
|
+
* - Command transformation (Markdown → TOML)
|
|
8
|
+
* - Subagent transformation (Markdown → JSON config)
|
|
9
|
+
* - Environment variable substitution
|
|
10
|
+
*/
|
|
11
|
+
import * as path from "node:path";
|
|
12
|
+
import { expandPath, pathExists, readFile, writeTransformed, ensureDirectory, } from "../file-operations.js";
|
|
13
|
+
import { parseCommandFrontmatter, extractCommandBody } from "../command-parser.js";
|
|
14
|
+
import { GEMINI_CLI_PATHS } from "./detection.js";
|
|
15
|
+
import { geminiCliToolMapping } from "./tool-mapping.js";
|
|
16
|
+
/**
|
|
17
|
+
* Read the settings configuration file.
|
|
18
|
+
*/
|
|
19
|
+
export async function readSettingsConfig() {
|
|
20
|
+
const configPath = expandPath(GEMINI_CLI_PATHS.settingsJson);
|
|
21
|
+
if (!pathExists(configPath)) {
|
|
22
|
+
return {};
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const content = await readFile(configPath);
|
|
26
|
+
return JSON.parse(content);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return {};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Write the settings configuration file.
|
|
34
|
+
*/
|
|
35
|
+
export async function writeSettingsConfig(config) {
|
|
36
|
+
const configPath = expandPath(GEMINI_CLI_PATHS.settingsJson);
|
|
37
|
+
await ensureDirectory(path.dirname(configPath));
|
|
38
|
+
await writeTransformed(configPath, JSON.stringify(config, null, 2));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Process environment variable values.
|
|
42
|
+
*/
|
|
43
|
+
export function processEnvValue(value) {
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Transform an MCP server configuration for Gemini CLI.
|
|
48
|
+
*
|
|
49
|
+
* Note: Full environment variable transformation with sensitivity handling
|
|
50
|
+
* is implemented in transformEnvVars (Phase 7). This function provides
|
|
51
|
+
* basic passthrough for all env vars using ${VAR} syntax.
|
|
52
|
+
*/
|
|
53
|
+
export function transformMcpServerConfig(config) {
|
|
54
|
+
// Only stdio transport is supported for Gemini CLI MCP servers
|
|
55
|
+
if (config.transport.type !== "stdio") {
|
|
56
|
+
throw new Error(`Unsupported transport type: ${config.transport.type}. Gemini CLI only supports stdio transport.`);
|
|
57
|
+
}
|
|
58
|
+
const entry = {
|
|
59
|
+
command: config.transport.command,
|
|
60
|
+
};
|
|
61
|
+
if (config.transport.args && config.transport.args.length > 0) {
|
|
62
|
+
entry.args = config.transport.args;
|
|
63
|
+
}
|
|
64
|
+
// Basic env var passthrough - full transformation in Phase 7
|
|
65
|
+
if (config.env && Object.keys(config.env).length > 0) {
|
|
66
|
+
entry.env = {};
|
|
67
|
+
for (const [key] of Object.entries(config.env)) {
|
|
68
|
+
// Use passthrough syntax for all env vars
|
|
69
|
+
entry.env[key] = `\${${key}}`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return entry;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Parse frontmatter from Markdown content.
|
|
76
|
+
*
|
|
77
|
+
* Extracts YAML frontmatter from Markdown files.
|
|
78
|
+
*/
|
|
79
|
+
export function parseFrontmatter(content) {
|
|
80
|
+
const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
81
|
+
if (!frontmatterMatch || !frontmatterMatch[1] || !frontmatterMatch[2]) {
|
|
82
|
+
return { frontmatter: {}, body: content };
|
|
83
|
+
}
|
|
84
|
+
const frontmatterYaml = frontmatterMatch[1];
|
|
85
|
+
const body = frontmatterMatch[2];
|
|
86
|
+
// Simple YAML parsing for frontmatter
|
|
87
|
+
const frontmatter = {};
|
|
88
|
+
const lines = frontmatterYaml.split("\n");
|
|
89
|
+
for (const line of lines) {
|
|
90
|
+
// Support canonical camelCase keys like "argumentHint"
|
|
91
|
+
const match = line.match(/^([\w-]+):\s*(.*)$/);
|
|
92
|
+
if (match && match[1] && match[2] !== undefined) {
|
|
93
|
+
const key = match[1];
|
|
94
|
+
let value = match[2].trim();
|
|
95
|
+
// Handle quoted strings
|
|
96
|
+
if (typeof value === "string" && value.startsWith('"') && value.endsWith('"')) {
|
|
97
|
+
value = value.slice(1, -1);
|
|
98
|
+
}
|
|
99
|
+
else if (typeof value === "string" && value.startsWith("'") && value.endsWith("'")) {
|
|
100
|
+
value = value.slice(1, -1);
|
|
101
|
+
}
|
|
102
|
+
else if (value === "true") {
|
|
103
|
+
value = true;
|
|
104
|
+
}
|
|
105
|
+
else if (value === "false") {
|
|
106
|
+
value = false;
|
|
107
|
+
}
|
|
108
|
+
else if (typeof value === "string" && !isNaN(Number(value))) {
|
|
109
|
+
value = Number(value);
|
|
110
|
+
}
|
|
111
|
+
frontmatter[key] = value;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return { frontmatter, body };
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Escape a string for TOML.
|
|
118
|
+
*/
|
|
119
|
+
function escapeTomlString(str) {
|
|
120
|
+
return str
|
|
121
|
+
.replace(/\\/g, "\\\\")
|
|
122
|
+
.replace(/"/g, '\\"')
|
|
123
|
+
.replace(/\n/g, "\\n")
|
|
124
|
+
.replace(/\r/g, "\\r")
|
|
125
|
+
.replace(/\t/g, "\\t");
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Transform a Markdown command to TOML format for Gemini CLI.
|
|
129
|
+
*
|
|
130
|
+
* Gemini CLI command format (TOML):
|
|
131
|
+
* ```toml
|
|
132
|
+
* description = "Command description"
|
|
133
|
+
*
|
|
134
|
+
* [prompt]
|
|
135
|
+
* content = """
|
|
136
|
+
* The command prompt content...
|
|
137
|
+
* """
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* Note: Uses canonical command-parser for frontmatter extraction.
|
|
141
|
+
* The argumentHint field is intentionally ignored as Gemini CLI
|
|
142
|
+
* does not support this field.
|
|
143
|
+
*/
|
|
144
|
+
export function transformCommandToToml(content, metadata) {
|
|
145
|
+
// Use canonical command parser for proper field handling
|
|
146
|
+
const frontmatter = parseCommandFrontmatter(content);
|
|
147
|
+
const body = extractCommandBody(content);
|
|
148
|
+
const lines = [];
|
|
149
|
+
// Add description (required field from canonical format)
|
|
150
|
+
const description = frontmatter.description || metadata.description || "";
|
|
151
|
+
if (description) {
|
|
152
|
+
lines.push(`description = "${escapeTomlString(description)}"`);
|
|
153
|
+
}
|
|
154
|
+
// Note: argumentHint is intentionally ignored for Gemini CLI
|
|
155
|
+
lines.push("");
|
|
156
|
+
lines.push("[prompt]");
|
|
157
|
+
// Use multi-line string for content
|
|
158
|
+
lines.push(`content = """`);
|
|
159
|
+
lines.push(body.trim());
|
|
160
|
+
lines.push(`"""`);
|
|
161
|
+
return lines.join("\n");
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Transform a Markdown subagent to JSON config for Gemini CLI.
|
|
165
|
+
*
|
|
166
|
+
* Gemini CLI subagent format (JSON):
|
|
167
|
+
* ```json
|
|
168
|
+
* {
|
|
169
|
+
* "name": "agent-name",
|
|
170
|
+
* "description": "Agent description",
|
|
171
|
+
* "systemPrompt": "The agent system prompt..."
|
|
172
|
+
* }
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
export function transformSubagentToJson(content, metadata) {
|
|
176
|
+
const { frontmatter, body } = parseFrontmatter(content);
|
|
177
|
+
const config = {
|
|
178
|
+
name: frontmatter["name"] || "agent",
|
|
179
|
+
description: frontmatter["description"] || metadata.description || "",
|
|
180
|
+
systemPrompt: body.trim(),
|
|
181
|
+
};
|
|
182
|
+
// Add optional fields
|
|
183
|
+
if (frontmatter["model"] !== undefined) {
|
|
184
|
+
config["model"] = frontmatter["model"];
|
|
185
|
+
}
|
|
186
|
+
if (frontmatter["temperature"] !== undefined) {
|
|
187
|
+
config["temperature"] = frontmatter["temperature"];
|
|
188
|
+
}
|
|
189
|
+
if (frontmatter["maxTokens"] !== undefined) {
|
|
190
|
+
config["maxTokens"] = frontmatter["maxTokens"];
|
|
191
|
+
}
|
|
192
|
+
return JSON.stringify(config, null, 2);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Map hook event to Gemini CLI configuration key.
|
|
196
|
+
*/
|
|
197
|
+
function mapHookEvent(event) {
|
|
198
|
+
const eventMap = {
|
|
199
|
+
"session.start": "onStart",
|
|
200
|
+
"session.end": "onEnd",
|
|
201
|
+
"prompt.submit": "beforePrompt",
|
|
202
|
+
"tool.before": "beforeTool",
|
|
203
|
+
"tool.after": "afterTool",
|
|
204
|
+
notification: "notification",
|
|
205
|
+
"compaction.before": "preCompress",
|
|
206
|
+
};
|
|
207
|
+
return eventMap[event] ?? null;
|
|
208
|
+
}
|
|
209
|
+
function mapToolName(tool) {
|
|
210
|
+
if (!tool)
|
|
211
|
+
return undefined;
|
|
212
|
+
return geminiCliToolMapping[tool] ?? tool;
|
|
213
|
+
}
|
|
214
|
+
function buildMatcher(binding) {
|
|
215
|
+
if (!binding.matcher) {
|
|
216
|
+
return "*";
|
|
217
|
+
}
|
|
218
|
+
const mappedTool = mapToolName(binding.matcher.tool);
|
|
219
|
+
const pattern = binding.matcher.command_pattern ??
|
|
220
|
+
binding.matcher.file_pattern ??
|
|
221
|
+
binding.matcher.prompt_pattern;
|
|
222
|
+
if (mappedTool || pattern) {
|
|
223
|
+
const matcher = {};
|
|
224
|
+
if (mappedTool) {
|
|
225
|
+
matcher.tool = mappedTool;
|
|
226
|
+
}
|
|
227
|
+
if (pattern) {
|
|
228
|
+
matcher.pattern = pattern;
|
|
229
|
+
}
|
|
230
|
+
return matcher;
|
|
231
|
+
}
|
|
232
|
+
return "*";
|
|
233
|
+
}
|
|
234
|
+
function buildCommand(commandPath, workingDir) {
|
|
235
|
+
if (!workingDir || workingDir === "inherit") {
|
|
236
|
+
return commandPath;
|
|
237
|
+
}
|
|
238
|
+
return `cd ${workingDir} && ${commandPath}`;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Transform a hook for Gemini CLI.
|
|
242
|
+
*/
|
|
243
|
+
export function transformHookConfig(input) {
|
|
244
|
+
const eventKey = mapHookEvent(input.binding.event);
|
|
245
|
+
if (!eventKey) {
|
|
246
|
+
throw new Error(`Unsupported Gemini hook event: ${input.binding.event}`);
|
|
247
|
+
}
|
|
248
|
+
if (input.program.runtime.type !== "command") {
|
|
249
|
+
throw new Error(`Unsupported Gemini hook runtime: ${input.program.runtime.type}`);
|
|
250
|
+
}
|
|
251
|
+
const matcher = buildMatcher(input.binding);
|
|
252
|
+
const timeout = input.binding.runtime?.timeout_ms ?? input.program.runtime.timeout_ms;
|
|
253
|
+
const workingDir = input.binding.runtime?.working_directory ?? input.program.runtime.working_directory;
|
|
254
|
+
const command = buildCommand(input.targetPath, workingDir);
|
|
255
|
+
const hookEntry = {
|
|
256
|
+
name: input.instanceName,
|
|
257
|
+
type: "command",
|
|
258
|
+
command,
|
|
259
|
+
...(timeout !== undefined ? { timeout } : {}),
|
|
260
|
+
};
|
|
261
|
+
return {
|
|
262
|
+
files: [
|
|
263
|
+
{
|
|
264
|
+
type: "copy",
|
|
265
|
+
source: input.entryPath,
|
|
266
|
+
destination: input.targetPath,
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
config: {
|
|
270
|
+
[eventKey]: [{ matcher, hooks: [hookEntry] }],
|
|
271
|
+
},
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Transform resolved environment variables to Gemini CLI format.
|
|
276
|
+
*
|
|
277
|
+
* Gemini CLI uses JSON configuration with ${VAR} syntax for passthrough.
|
|
278
|
+
*
|
|
279
|
+
* Rules (per FR-20.5):
|
|
280
|
+
* - Passthrough: "VAR": "${VAR}"
|
|
281
|
+
* - Direct value: "VAR": "value"
|
|
282
|
+
*/
|
|
283
|
+
export function transformEnvVars(resolved) {
|
|
284
|
+
const env = {};
|
|
285
|
+
for (const r of resolved) {
|
|
286
|
+
if (r.usePassthrough) {
|
|
287
|
+
env[r.name] = `\${${r.name}}`;
|
|
288
|
+
}
|
|
289
|
+
else if (r.value !== undefined) {
|
|
290
|
+
env[r.name] = r.value;
|
|
291
|
+
}
|
|
292
|
+
// Skip if no value and not passthrough (shouldn't happen)
|
|
293
|
+
}
|
|
294
|
+
return env;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Transform resolved headers to Gemini CLI format.
|
|
298
|
+
*
|
|
299
|
+
* Gemini CLI uses ${VAR} syntax within header values for passthrough.
|
|
300
|
+
*
|
|
301
|
+
* Rules (per FR-21.4):
|
|
302
|
+
* - Sensitive with envVar: "Header": "${VAR}"
|
|
303
|
+
* - Nonsensitive with static value: "Header": "value"
|
|
304
|
+
* - Nonsensitive with envVar: "Header": "${VAR}"
|
|
305
|
+
*/
|
|
306
|
+
export function transformHeaders(resolved) {
|
|
307
|
+
const headers = {};
|
|
308
|
+
for (const r of resolved) {
|
|
309
|
+
if (r.usePassthrough && r.envVar) {
|
|
310
|
+
headers[r.name] = `\${${r.envVar}}`;
|
|
311
|
+
}
|
|
312
|
+
else if (r.value !== undefined) {
|
|
313
|
+
headers[r.name] = r.value;
|
|
314
|
+
}
|
|
315
|
+
// Skip if no value and no passthrough (shouldn't happen)
|
|
316
|
+
}
|
|
317
|
+
return headers;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Add an MCP server to the configuration.
|
|
321
|
+
*/
|
|
322
|
+
export async function addMcpServer(namespacedName, config) {
|
|
323
|
+
try {
|
|
324
|
+
const settings = await readSettingsConfig();
|
|
325
|
+
if (!settings.mcpServers) {
|
|
326
|
+
settings.mcpServers = {};
|
|
327
|
+
}
|
|
328
|
+
settings.mcpServers[namespacedName] = transformMcpServerConfig(config);
|
|
329
|
+
await writeSettingsConfig(settings);
|
|
330
|
+
return {
|
|
331
|
+
operation: "merge",
|
|
332
|
+
destination: expandPath(GEMINI_CLI_PATHS.settingsJson),
|
|
333
|
+
success: true,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
return {
|
|
338
|
+
operation: "merge",
|
|
339
|
+
destination: expandPath(GEMINI_CLI_PATHS.settingsJson),
|
|
340
|
+
success: false,
|
|
341
|
+
error: error instanceof Error ? error.message : String(error),
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Remove an MCP server from the configuration.
|
|
347
|
+
*/
|
|
348
|
+
export async function removeMcpServer(namespacedName) {
|
|
349
|
+
const settings = await readSettingsConfig();
|
|
350
|
+
if (!settings.mcpServers || !settings.mcpServers[namespacedName]) {
|
|
351
|
+
return false;
|
|
352
|
+
}
|
|
353
|
+
delete settings.mcpServers[namespacedName];
|
|
354
|
+
await writeSettingsConfig(settings);
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Add a hook to the settings configuration.
|
|
359
|
+
*/
|
|
360
|
+
export async function addHookConfig(namespacedName, hookInstallation) {
|
|
361
|
+
try {
|
|
362
|
+
const settings = await readSettingsConfig();
|
|
363
|
+
if (!settings.hooks) {
|
|
364
|
+
settings.hooks = {};
|
|
365
|
+
}
|
|
366
|
+
// Merge hook config into settings
|
|
367
|
+
if (hookInstallation.config) {
|
|
368
|
+
settings.hooks = mergeHookConfigs(settings.hooks, hookInstallation.config);
|
|
369
|
+
}
|
|
370
|
+
await writeSettingsConfig(settings);
|
|
371
|
+
return {
|
|
372
|
+
operation: "merge",
|
|
373
|
+
destination: expandPath(GEMINI_CLI_PATHS.settingsJson),
|
|
374
|
+
success: true,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
catch (error) {
|
|
378
|
+
return {
|
|
379
|
+
operation: "merge",
|
|
380
|
+
destination: expandPath(GEMINI_CLI_PATHS.settingsJson),
|
|
381
|
+
success: false,
|
|
382
|
+
error: error instanceof Error ? error.message : String(error),
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Remove a hook from the settings configuration.
|
|
388
|
+
*/
|
|
389
|
+
export async function removeHookConfig(namespacedName) {
|
|
390
|
+
const settings = await readSettingsConfig();
|
|
391
|
+
if (!settings.hooks) {
|
|
392
|
+
return false;
|
|
393
|
+
}
|
|
394
|
+
let removed = false;
|
|
395
|
+
for (const key of Object.keys(settings.hooks)) {
|
|
396
|
+
const entries = settings.hooks[key] ?? [];
|
|
397
|
+
const filtered = entries.filter((entry) => {
|
|
398
|
+
return !entry.hooks.some((hook) => hook.command?.includes(namespacedName));
|
|
399
|
+
});
|
|
400
|
+
if (filtered.length !== entries.length) {
|
|
401
|
+
removed = true;
|
|
402
|
+
if (filtered.length === 0) {
|
|
403
|
+
delete settings.hooks[key];
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
settings.hooks[key] = filtered;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
if (removed) {
|
|
411
|
+
await writeSettingsConfig(settings);
|
|
412
|
+
}
|
|
413
|
+
return removed;
|
|
414
|
+
}
|
|
415
|
+
export function mergeHookConfigs(existing, addition) {
|
|
416
|
+
const merged = { ...existing };
|
|
417
|
+
for (const [eventKey, entries] of Object.entries(addition)) {
|
|
418
|
+
if (!merged[eventKey]) {
|
|
419
|
+
merged[eventKey] = [];
|
|
420
|
+
}
|
|
421
|
+
merged[eventKey] = [...merged[eventKey], ...entries];
|
|
422
|
+
}
|
|
423
|
+
return merged;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Get all installed MCP servers for a specific kit.
|
|
427
|
+
*/
|
|
428
|
+
export async function getKitMcpServers(kitName) {
|
|
429
|
+
const settings = await readSettingsConfig();
|
|
430
|
+
if (!settings.mcpServers) {
|
|
431
|
+
return [];
|
|
432
|
+
}
|
|
433
|
+
const prefix = `${kitName}.`;
|
|
434
|
+
return Object.keys(settings.mcpServers).filter((name) => name.startsWith(prefix));
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Remove all MCP servers for a specific kit.
|
|
438
|
+
*/
|
|
439
|
+
export async function removeKitMcpServers(kitName) {
|
|
440
|
+
const settings = await readSettingsConfig();
|
|
441
|
+
const removed = [];
|
|
442
|
+
if (!settings.mcpServers) {
|
|
443
|
+
return removed;
|
|
444
|
+
}
|
|
445
|
+
const prefix = `${kitName}.`;
|
|
446
|
+
for (const name of Object.keys(settings.mcpServers)) {
|
|
447
|
+
if (name.startsWith(prefix)) {
|
|
448
|
+
delete settings.mcpServers[name];
|
|
449
|
+
removed.push(name);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
if (removed.length > 0) {
|
|
453
|
+
await writeSettingsConfig(settings);
|
|
454
|
+
}
|
|
455
|
+
return removed;
|
|
456
|
+
}
|
|
457
|
+
//# sourceMappingURL=installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../../src/adapters/gemini-cli/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-mapping.d.ts","sourceRoot":"","sources":["../../../src/adapters/gemini-cli/model-mapping.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,qBAAqB,EAAE,YAMnC,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,YAAY,CAEvD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini CLI model mapping.
|
|
3
|
+
*/
|
|
4
|
+
export const geminiCliModelMapping = {
|
|
5
|
+
fast: "gemini-2.5-flash",
|
|
6
|
+
standard: "gemini-2.5-pro",
|
|
7
|
+
power: "gemini-2.5-pro",
|
|
8
|
+
auto: null,
|
|
9
|
+
inherit: null,
|
|
10
|
+
};
|
|
11
|
+
export function getGeminiCliModelMapping() {
|
|
12
|
+
return geminiCliModelMapping;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=model-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-mapping.js","sourceRoot":"","sources":["../../../src/adapters/gemini-cli/model-mapping.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,gBAAgB;IAC1B,KAAK,EAAE,gBAAgB;IACvB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,MAAM,UAAU,wBAAwB;IACtC,OAAO,qBAAqB,CAAC;AAC/B,CAAC"}
|