@kindgi/cli 0.0.0-bootstrap.0 → 0.1.1
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/LICENSE +201 -0
- package/README.md +738 -1
- package/dist/build/apt.d.ts +16 -0
- package/dist/build/apt.d.ts.map +1 -0
- package/dist/build/apt.js +50 -0
- package/dist/build/apt.js.map +1 -0
- package/dist/build/bundle.d.ts +48 -0
- package/dist/build/bundle.d.ts.map +1 -0
- package/dist/build/bundle.js +125 -0
- package/dist/build/bundle.js.map +1 -0
- package/dist/build/containerfile.d.ts +27 -0
- package/dist/build/containerfile.d.ts.map +1 -0
- package/dist/build/containerfile.js +197 -0
- package/dist/build/containerfile.js.map +1 -0
- package/dist/build/context-files.d.ts +24 -0
- package/dist/build/context-files.d.ts.map +1 -0
- package/dist/build/context-files.js +99 -0
- package/dist/build/context-files.js.map +1 -0
- package/dist/build/defaults.d.ts +66 -0
- package/dist/build/defaults.d.ts.map +1 -0
- package/dist/build/defaults.js +597 -0
- package/dist/build/defaults.js.map +1 -0
- package/dist/build/envelope.d.ts +72 -0
- package/dist/build/envelope.d.ts.map +1 -0
- package/dist/build/envelope.js +76 -0
- package/dist/build/envelope.js.map +1 -0
- package/dist/build/host-install.d.ts +100 -0
- package/dist/build/host-install.d.ts.map +1 -0
- package/dist/build/host-install.js +443 -0
- package/dist/build/host-install.js.map +1 -0
- package/dist/build/image-config.d.ts +32 -0
- package/dist/build/image-config.d.ts.map +1 -0
- package/dist/build/image-config.js +129 -0
- package/dist/build/image-config.js.map +1 -0
- package/dist/build/integrity.d.ts +51 -0
- package/dist/build/integrity.d.ts.map +1 -0
- package/dist/build/integrity.js +75 -0
- package/dist/build/integrity.js.map +1 -0
- package/dist/build/node-image.d.ts +18 -0
- package/dist/build/node-image.d.ts.map +1 -0
- package/dist/build/node-image.js +46 -0
- package/dist/build/node-image.js.map +1 -0
- package/dist/build/pack-root.d.ts +69 -0
- package/dist/build/pack-root.d.ts.map +1 -0
- package/dist/build/pack-root.js +102 -0
- package/dist/build/pack-root.js.map +1 -0
- package/dist/build/poetry-requirements.d.ts +5 -0
- package/dist/build/poetry-requirements.d.ts.map +1 -0
- package/dist/build/poetry-requirements.js +8 -0
- package/dist/build/poetry-requirements.js.map +1 -0
- package/dist/build/python-image.d.ts +40 -0
- package/dist/build/python-image.d.ts.map +1 -0
- package/dist/build/python-image.js +197 -0
- package/dist/build/python-image.js.map +1 -0
- package/dist/build/runners.d.ts +259 -0
- package/dist/build/runners.d.ts.map +1 -0
- package/dist/build/runners.js +4 -0
- package/dist/build/runners.js.map +1 -0
- package/dist/build/version-specifier.d.ts +2 -0
- package/dist/build/version-specifier.d.ts.map +1 -0
- package/dist/build/version-specifier.js +70 -0
- package/dist/build/version-specifier.js.map +1 -0
- package/dist/cli-package.d.ts +15 -0
- package/dist/cli-package.d.ts.map +1 -0
- package/dist/cli-package.js +37 -0
- package/dist/cli-package.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +26 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/adapters.d.ts +3 -0
- package/dist/commands/adapters.d.ts.map +1 -0
- package/dist/commands/adapters.js +148 -0
- package/dist/commands/adapters.js.map +1 -0
- package/dist/commands/agents.d.ts +3 -0
- package/dist/commands/agents.d.ts.map +1 -0
- package/dist/commands/agents.js +82 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/approvals.d.ts +3 -0
- package/dist/commands/approvals.d.ts.map +1 -0
- package/dist/commands/approvals.js +92 -0
- package/dist/commands/approvals.js.map +1 -0
- package/dist/commands/artifacts.d.ts +3 -0
- package/dist/commands/artifacts.d.ts.map +1 -0
- package/dist/commands/artifacts.js +87 -0
- package/dist/commands/artifacts.js.map +1 -0
- package/dist/commands/auth.d.ts +25 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +283 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/build.d.ts +46 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +902 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/capabilities.d.ts +3 -0
- package/dist/commands/capabilities.d.ts.map +1 -0
- package/dist/commands/capabilities.js +38 -0
- package/dist/commands/capabilities.js.map +1 -0
- package/dist/commands/conversations.d.ts +3 -0
- package/dist/commands/conversations.d.ts.map +1 -0
- package/dist/commands/conversations.js +75 -0
- package/dist/commands/conversations.js.map +1 -0
- package/dist/commands/deploy.d.ts +7 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +697 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts +43 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +1110 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/env.d.ts +27 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +816 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/feedback.d.ts +33 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +374 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/flows.d.ts +3 -0
- package/dist/commands/flows.d.ts.map +1 -0
- package/dist/commands/flows.js +60 -0
- package/dist/commands/flows.js.map +1 -0
- package/dist/commands/guardrails.d.ts +3 -0
- package/dist/commands/guardrails.d.ts.map +1 -0
- package/dist/commands/guardrails.js +89 -0
- package/dist/commands/guardrails.js.map +1 -0
- package/dist/commands/health.d.ts +8 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +40 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/helpers.d.ts +48 -0
- package/dist/commands/helpers.d.ts.map +1 -0
- package/dist/commands/helpers.js +110 -0
- package/dist/commands/helpers.js.map +1 -0
- package/dist/commands/index.d.ts +7 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +90 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +46 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +454 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/key.d.ts +3 -0
- package/dist/commands/key.d.ts.map +1 -0
- package/dist/commands/key.js +322 -0
- package/dist/commands/key.js.map +1 -0
- package/dist/commands/mcp.d.ts +43 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +433 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/memory.d.ts +3 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +82 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/observations.d.ts +3 -0
- package/dist/commands/observations.d.ts.map +1 -0
- package/dist/commands/observations.js +27 -0
- package/dist/commands/observations.js.map +1 -0
- package/dist/commands/proposals.d.ts +3 -0
- package/dist/commands/proposals.d.ts.map +1 -0
- package/dist/commands/proposals.js +116 -0
- package/dist/commands/proposals.js.map +1 -0
- package/dist/commands/provenance.d.ts +3 -0
- package/dist/commands/provenance.d.ts.map +1 -0
- package/dist/commands/provenance.js +53 -0
- package/dist/commands/provenance.js.map +1 -0
- package/dist/commands/providers.d.ts +3 -0
- package/dist/commands/providers.d.ts.map +1 -0
- package/dist/commands/providers.js +212 -0
- package/dist/commands/providers.js.map +1 -0
- package/dist/commands/reviewers.d.ts +3 -0
- package/dist/commands/reviewers.d.ts.map +1 -0
- package/dist/commands/reviewers.js +78 -0
- package/dist/commands/reviewers.js.map +1 -0
- package/dist/commands/runs.d.ts +3 -0
- package/dist/commands/runs.d.ts.map +1 -0
- package/dist/commands/runs.js +223 -0
- package/dist/commands/runs.js.map +1 -0
- package/dist/commands/secrets.d.ts +18 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +702 -0
- package/dist/commands/secrets.js.map +1 -0
- package/dist/commands/skills.d.ts +64 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +430 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/test.d.ts +5 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +181 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/tokens.d.ts +3 -0
- package/dist/commands/tokens.d.ts.map +1 -0
- package/dist/commands/tokens.js +33 -0
- package/dist/commands/tokens.js.map +1 -0
- package/dist/commands/tools.d.ts +3 -0
- package/dist/commands/tools.d.ts.map +1 -0
- package/dist/commands/tools.js +162 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/commands/types.d.ts +54 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +4 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/commands/unwired.d.ts +22 -0
- package/dist/commands/unwired.d.ts.map +1 -0
- package/dist/commands/unwired.js +52 -0
- package/dist/commands/unwired.js.map +1 -0
- package/dist/commands/version.d.ts +8 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +41 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config.d.ts +42 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +83 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +162 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +45 -0
- package/dist/context.js.map +1 -0
- package/dist/deploy/defaults.d.ts +14 -0
- package/dist/deploy/defaults.d.ts.map +1 -0
- package/dist/deploy/defaults.js +37 -0
- package/dist/deploy/defaults.js.map +1 -0
- package/dist/deploy/envelope-loader.d.ts +24 -0
- package/dist/deploy/envelope-loader.d.ts.map +1 -0
- package/dist/deploy/envelope-loader.js +141 -0
- package/dist/deploy/envelope-loader.js.map +1 -0
- package/dist/deploy/post.d.ts +48 -0
- package/dist/deploy/post.d.ts.map +1 -0
- package/dist/deploy/post.js +210 -0
- package/dist/deploy/post.js.map +1 -0
- package/dist/deploy/response.d.ts +42 -0
- package/dist/deploy/response.d.ts.map +1 -0
- package/dist/deploy/response.js +128 -0
- package/dist/deploy/response.js.map +1 -0
- package/dist/deploy/runners.d.ts +218 -0
- package/dist/deploy/runners.d.ts.map +1 -0
- package/dist/deploy/runners.js +4 -0
- package/dist/deploy/runners.js.map +1 -0
- package/dist/dev/bundler.d.ts +10 -0
- package/dist/dev/bundler.d.ts.map +1 -0
- package/dist/dev/bundler.js +235 -0
- package/dist/dev/bundler.js.map +1 -0
- package/dist/dev/defaults.d.ts +140 -0
- package/dist/dev/defaults.d.ts.map +1 -0
- package/dist/dev/defaults.js +709 -0
- package/dist/dev/defaults.js.map +1 -0
- package/dist/dev/dev-only-imports.d.ts +15 -0
- package/dist/dev/dev-only-imports.d.ts.map +1 -0
- package/dist/dev/dev-only-imports.js +57 -0
- package/dist/dev/dev-only-imports.js.map +1 -0
- package/dist/dev/docker-compose.dev.yml +68 -0
- package/dist/dev/index-child.d.ts +2 -0
- package/dist/dev/index-child.d.ts.map +1 -0
- package/dist/dev/index-child.js +53 -0
- package/dist/dev/index-child.js.map +1 -0
- package/dist/dev/pack-code.d.ts +36 -0
- package/dist/dev/pack-code.d.ts.map +1 -0
- package/dist/dev/pack-code.js +129 -0
- package/dist/dev/pack-code.js.map +1 -0
- package/dist/dev/pack-env.d.ts +13 -0
- package/dist/dev/pack-env.d.ts.map +1 -0
- package/dist/dev/pack-env.js +36 -0
- package/dist/dev/pack-env.js.map +1 -0
- package/dist/dev/pack-service.d.ts +40 -0
- package/dist/dev/pack-service.d.ts.map +1 -0
- package/dist/dev/pack-service.js +189 -0
- package/dist/dev/pack-service.js.map +1 -0
- package/dist/dev/paths.d.ts +22 -0
- package/dist/dev/paths.d.ts.map +1 -0
- package/dist/dev/paths.js +35 -0
- package/dist/dev/paths.js.map +1 -0
- package/dist/dev/postgres-container.d.ts +77 -0
- package/dist/dev/postgres-container.d.ts.map +1 -0
- package/dist/dev/postgres-container.js +346 -0
- package/dist/dev/postgres-container.js.map +1 -0
- package/dist/dev/python-builder.d.ts +16 -0
- package/dist/dev/python-builder.d.ts.map +1 -0
- package/dist/dev/python-builder.js +122 -0
- package/dist/dev/python-builder.js.map +1 -0
- package/dist/dev/register.d.ts +71 -0
- package/dist/dev/register.d.ts.map +1 -0
- package/dist/dev/register.js +54 -0
- package/dist/dev/register.js.map +1 -0
- package/dist/dev/runners.d.ts +312 -0
- package/dist/dev/runners.d.ts.map +1 -0
- package/dist/dev/runners.js +4 -0
- package/dist/dev/runners.js.map +1 -0
- package/dist/dev/runtime-container.d.ts +71 -0
- package/dist/dev/runtime-container.d.ts.map +1 -0
- package/dist/dev/runtime-container.js +173 -0
- package/dist/dev/runtime-container.js.map +1 -0
- package/dist/dev/runtime-env.d.ts +62 -0
- package/dist/dev/runtime-env.d.ts.map +1 -0
- package/dist/dev/runtime-env.js +100 -0
- package/dist/dev/runtime-env.js.map +1 -0
- package/dist/dev/runtime-image.d.ts +26 -0
- package/dist/dev/runtime-image.d.ts.map +1 -0
- package/dist/dev/runtime-image.js +44 -0
- package/dist/dev/runtime-image.js.map +1 -0
- package/dist/dev/runtime-registry.d.ts +73 -0
- package/dist/dev/runtime-registry.d.ts.map +1 -0
- package/dist/dev/runtime-registry.js +111 -0
- package/dist/dev/runtime-registry.js.map +1 -0
- package/dist/env/defaults.d.ts +3 -0
- package/dist/env/defaults.d.ts.map +1 -0
- package/dist/env/defaults.js +22 -0
- package/dist/env/defaults.js.map +1 -0
- package/dist/env/pack-env-plan.d.ts +70 -0
- package/dist/env/pack-env-plan.d.ts.map +1 -0
- package/dist/env/pack-env-plan.js +236 -0
- package/dist/env/pack-env-plan.js.map +1 -0
- package/dist/env/parser.d.ts +9 -0
- package/dist/env/parser.d.ts.map +1 -0
- package/dist/env/parser.js +11 -0
- package/dist/env/parser.js.map +1 -0
- package/dist/env/project-env.d.ts +34 -0
- package/dist/env/project-env.d.ts.map +1 -0
- package/dist/env/project-env.js +45 -0
- package/dist/env/project-env.js.map +1 -0
- package/dist/env/runners.d.ts +22 -0
- package/dist/env/runners.d.ts.map +1 -0
- package/dist/env/runners.js +4 -0
- package/dist/env/runners.js.map +1 -0
- package/dist/env/writer.d.ts +7 -0
- package/dist/env/writer.d.ts.map +1 -0
- package/dist/env/writer.js +9 -0
- package/dist/env/writer.js.map +1 -0
- package/dist/errors.d.ts +31 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +111 -0
- package/dist/errors.js.map +1 -0
- package/dist/help.d.ts +5 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +61 -0
- package/dist/help.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/init/augment-scaffolder.d.ts +86 -0
- package/dist/init/augment-scaffolder.d.ts.map +1 -0
- package/dist/init/augment-scaffolder.js +538 -0
- package/dist/init/augment-scaffolder.js.map +1 -0
- package/dist/init/dependency-specs.d.ts +58 -0
- package/dist/init/dependency-specs.d.ts.map +1 -0
- package/dist/init/dependency-specs.js +153 -0
- package/dist/init/dependency-specs.js.map +1 -0
- package/dist/init/gitignore-patcher.d.ts +23 -0
- package/dist/init/gitignore-patcher.d.ts.map +1 -0
- package/dist/init/gitignore-patcher.js +103 -0
- package/dist/init/gitignore-patcher.js.map +1 -0
- package/dist/init/mode-detect.d.ts +34 -0
- package/dist/init/mode-detect.d.ts.map +1 -0
- package/dist/init/mode-detect.js +115 -0
- package/dist/init/mode-detect.js.map +1 -0
- package/dist/init/package-json-patcher.d.ts +36 -0
- package/dist/init/package-json-patcher.d.ts.map +1 -0
- package/dist/init/package-json-patcher.js +128 -0
- package/dist/init/package-json-patcher.js.map +1 -0
- package/dist/init/pnpm-workspace-patcher.d.ts +55 -0
- package/dist/init/pnpm-workspace-patcher.d.ts.map +1 -0
- package/dist/init/pnpm-workspace-patcher.js +248 -0
- package/dist/init/pnpm-workspace-patcher.js.map +1 -0
- package/dist/init/pyproject-patcher.d.ts +56 -0
- package/dist/init/pyproject-patcher.d.ts.map +1 -0
- package/dist/init/pyproject-patcher.js +324 -0
- package/dist/init/pyproject-patcher.js.map +1 -0
- package/dist/init/python-augment.d.ts +22 -0
- package/dist/init/python-augment.d.ts.map +1 -0
- package/dist/init/python-augment.js +300 -0
- package/dist/init/python-augment.js.map +1 -0
- package/dist/init/template-files.d.ts +18 -0
- package/dist/init/template-files.d.ts.map +1 -0
- package/dist/init/template-files.js +53 -0
- package/dist/init/template-files.js.map +1 -0
- package/dist/key/defaults.d.ts +3 -0
- package/dist/key/defaults.d.ts.map +1 -0
- package/dist/key/defaults.js +60 -0
- package/dist/key/defaults.js.map +1 -0
- package/dist/key/fingerprint.d.ts +6 -0
- package/dist/key/fingerprint.d.ts.map +1 -0
- package/dist/key/fingerprint.js +25 -0
- package/dist/key/fingerprint.js.map +1 -0
- package/dist/key/paths.d.ts +30 -0
- package/dist/key/paths.d.ts.map +1 -0
- package/dist/key/paths.js +51 -0
- package/dist/key/paths.js.map +1 -0
- package/dist/key/runners.d.ts +60 -0
- package/dist/key/runners.d.ts.map +1 -0
- package/dist/key/runners.js +4 -0
- package/dist/key/runners.js.map +1 -0
- package/dist/main.d.ts +113 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +199 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/launcher.d.ts +143 -0
- package/dist/mcp/launcher.d.ts.map +1 -0
- package/dist/mcp/launcher.js +393 -0
- package/dist/mcp/launcher.js.map +1 -0
- package/dist/mcp/preset-loader.d.ts +29 -0
- package/dist/mcp/preset-loader.d.ts.map +1 -0
- package/dist/mcp/preset-loader.js +217 -0
- package/dist/mcp/preset-loader.js.map +1 -0
- package/dist/mcp/preset-types.d.ts +71 -0
- package/dist/mcp/preset-types.d.ts.map +1 -0
- package/dist/mcp/preset-types.js +4 -0
- package/dist/mcp/preset-types.js.map +1 -0
- package/dist/mcp/presets/README.md +68 -0
- package/dist/mcp/presets/postgres.json +15 -0
- package/dist/output.d.ts +26 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +46 -0
- package/dist/output.js.map +1 -0
- package/dist/pack-config.d.ts +37 -0
- package/dist/pack-config.d.ts.map +1 -0
- package/dist/pack-config.js +65 -0
- package/dist/pack-config.js.map +1 -0
- package/dist/package-manager.d.ts +33 -0
- package/dist/package-manager.d.ts.map +1 -0
- package/dist/package-manager.js +129 -0
- package/dist/package-manager.js.map +1 -0
- package/dist/parse.d.ts +88 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +100 -0
- package/dist/parse.js.map +1 -0
- package/dist/providers/preset-loader.d.ts +47 -0
- package/dist/providers/preset-loader.d.ts.map +1 -0
- package/dist/providers/preset-loader.js +107 -0
- package/dist/providers/preset-loader.js.map +1 -0
- package/dist/providers/presets/anthropic.json +47 -0
- package/dist/providers/presets/gemini.json +40 -0
- package/dist/reference.d.ts +28 -0
- package/dist/reference.d.ts.map +1 -0
- package/dist/reference.js +52 -0
- package/dist/reference.js.map +1 -0
- package/dist/sdk-package.d.ts +9 -0
- package/dist/sdk-package.d.ts.map +1 -0
- package/dist/sdk-package.js +20 -0
- package/dist/sdk-package.js.map +1 -0
- package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +252 -0
- package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +302 -0
- package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +297 -0
- package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +289 -0
- package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +705 -0
- package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +298 -0
- package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +211 -0
- package/dist/sdk-skills/kindgi-getting-started/SKILL.md +189 -0
- package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +205 -0
- package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +325 -0
- package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +176 -0
- package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +305 -0
- package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +242 -0
- package/dist/stop-signal.d.ts +15 -0
- package/dist/stop-signal.d.ts.map +1 -0
- package/dist/stop-signal.js +16 -0
- package/dist/stop-signal.js.map +1 -0
- package/dist/templates/minimal/.nvmrc +1 -0
- package/dist/templates/minimal/AGENTS.md +23 -0
- package/dist/templates/minimal/README.md.tmpl +69 -0
- package/dist/templates/minimal/agents/.gitkeep +0 -0
- package/dist/templates/minimal/flows/.gitkeep +0 -0
- package/dist/templates/minimal/gitignore +8 -0
- package/dist/templates/minimal/guardrails/.gitkeep +0 -0
- package/dist/templates/minimal/kindgi.config.ts.tmpl +44 -0
- package/dist/templates/minimal/package.json.tmpl +25 -0
- package/dist/templates/minimal/pnpm-workspace.yaml +8 -0
- package/dist/templates/minimal/tools/.gitkeep +0 -0
- package/dist/templates/minimal/tsconfig.json.tmpl +27 -0
- package/dist/templates/minimal/vitest.config.ts.tmpl +14 -0
- package/dist/templates/python/AGENTS.md +30 -0
- package/dist/templates/python/README.md.tmpl +56 -0
- package/dist/templates/python/agents/echo_agent.py.tmpl +23 -0
- package/dist/templates/python/flows/echo_flow.py.tmpl +17 -0
- package/dist/templates/python/gitignore +9 -0
- package/dist/templates/python/guardrails/response_not_empty.py.tmpl +27 -0
- package/dist/templates/python/pyproject.toml.tmpl +42 -0
- package/dist/templates/python/tests/test_tools.py.tmpl +22 -0
- package/dist/templates/python/tools/echo.py.tmpl +27 -0
- package/dist/templates/python/tools/greet.py.tmpl +20 -0
- package/dist/templates/sample/.nvmrc +1 -0
- package/dist/templates/sample/AGENTS.md +23 -0
- package/dist/templates/sample/README.md.tmpl +85 -0
- package/dist/templates/sample/agents/echo-agent/index.ts.tmpl +34 -0
- package/dist/templates/sample/flows/echo-flow/index.ts.tmpl +59 -0
- package/dist/templates/sample/gitignore +8 -0
- package/dist/templates/sample/guardrails/response-not-empty/index.ts.tmpl +58 -0
- package/dist/templates/sample/kindgi.config.ts.tmpl +41 -0
- package/dist/templates/sample/package.json.tmpl +25 -0
- package/dist/templates/sample/pnpm-workspace.yaml +8 -0
- package/dist/templates/sample/tools/echo/index.test.ts.tmpl +31 -0
- package/dist/templates/sample/tools/echo/index.ts.tmpl +37 -0
- package/dist/templates/sample/tools/fetch-httpbin/index.ts.tmpl +60 -0
- package/dist/templates/sample/tools/greet/index.ts.tmpl +35 -0
- package/dist/templates/sample/tsconfig.json.tmpl +27 -0
- package/dist/templates/sample/vitest.config.ts.tmpl +14 -0
- package/dist/terminal-input.d.ts +17 -0
- package/dist/terminal-input.d.ts.map +1 -0
- package/dist/terminal-input.js +88 -0
- package/dist/terminal-input.js.map +1 -0
- package/dist/test/defaults.d.ts +3 -0
- package/dist/test/defaults.d.ts.map +1 -0
- package/dist/test/defaults.js +104 -0
- package/dist/test/defaults.js.map +1 -0
- package/dist/test/runners.d.ts +60 -0
- package/dist/test/runners.d.ts.map +1 -0
- package/dist/test/runners.js +4 -0
- package/dist/test/runners.js.map +1 -0
- package/dist/version-info.d.ts +9 -0
- package/dist/version-info.d.ts.map +1 -0
- package/dist/version-info.js +27 -0
- package/dist/version-info.js.map +1 -0
- package/dist/write-fully.d.ts +13 -0
- package/dist/write-fully.d.ts.map +1 -0
- package/dist/write-fully.js +17 -0
- package/dist/write-fully.js.map +1 -0
- package/package.json +63 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;CAC1E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,eAAe,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAM,GAC9D,YAAY,CA0Dd;AAED,KAAK,eAAe,GAChB;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
|
package/dist/parse.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
import { parseArgs } from 'node:util';
|
|
4
|
+
/**
|
|
5
|
+
* Global flags recognised on every command. Kept small on purpose —
|
|
6
|
+
* per-command flags are declared in each command's handler and merged
|
|
7
|
+
* on parse.
|
|
8
|
+
*/
|
|
9
|
+
export const GLOBAL_OPTION_SPEC = {
|
|
10
|
+
url: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
description: "The Kindgi API's URL. Overrides `KINDGI_API_URL` and the config files.",
|
|
13
|
+
},
|
|
14
|
+
token: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
description: 'The API token. Overrides `KINDGI_API_TOKEN` and the config files.',
|
|
17
|
+
},
|
|
18
|
+
verbose: {
|
|
19
|
+
type: 'boolean',
|
|
20
|
+
short: 'v',
|
|
21
|
+
description: 'Show more detail when a command fails.',
|
|
22
|
+
},
|
|
23
|
+
help: { type: 'boolean', short: 'h', description: 'Show help.' },
|
|
24
|
+
version: { type: 'boolean', description: "Print the CLI's version." },
|
|
25
|
+
json: { type: 'boolean', description: 'Output pretty-printed JSON (the default).' },
|
|
26
|
+
table: { type: 'boolean', description: 'Output a table, for commands that list.' },
|
|
27
|
+
raw: { type: 'boolean', description: 'Output compact, one-line JSON.' },
|
|
28
|
+
quiet: {
|
|
29
|
+
type: 'boolean',
|
|
30
|
+
description: 'Print nothing: the exit code alone reports the result.',
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Parse a token vector against a merged option spec (globals + the
|
|
35
|
+
* command's own options). `parseArgs` is used with `allowPositionals:
|
|
36
|
+
* true` and `strict: true`; unknown flags fail loudly.
|
|
37
|
+
*/
|
|
38
|
+
export function parseCommand(tokens, extraOptionSpec = {}) {
|
|
39
|
+
const merged = { ...GLOBAL_OPTION_SPEC, ...extraOptionSpec };
|
|
40
|
+
// `parseArgs` has no optional values: a bare `--name` of such an option
|
|
41
|
+
// (last, or before another flag) becomes `--name=`.
|
|
42
|
+
const optional = new Set(Object.entries(merged)
|
|
43
|
+
.filter(([, spec]) => spec.type === 'string' && spec.optionalValue === true)
|
|
44
|
+
.map(([name]) => `--${name}`));
|
|
45
|
+
const args = tokens.map((token, i) => {
|
|
46
|
+
const next = tokens[i + 1];
|
|
47
|
+
return optional.has(token) && (next === undefined || next.startsWith('-'))
|
|
48
|
+
? `${token}=`
|
|
49
|
+
: token;
|
|
50
|
+
});
|
|
51
|
+
// `parseArgs` takes only its own keys: drop the description and the
|
|
52
|
+
// optional-value marker.
|
|
53
|
+
const options = Object.fromEntries(Object.entries(merged).map(([name, spec]) => {
|
|
54
|
+
if (spec.type !== 'string') {
|
|
55
|
+
const { description: _description, ...rest } = spec;
|
|
56
|
+
return [name, rest];
|
|
57
|
+
}
|
|
58
|
+
const { optionalValue: _optional, description: _description, ...rest } = spec;
|
|
59
|
+
return [name, rest];
|
|
60
|
+
}));
|
|
61
|
+
const parsed = parseArgs({
|
|
62
|
+
args,
|
|
63
|
+
options,
|
|
64
|
+
allowPositionals: true,
|
|
65
|
+
strict: true,
|
|
66
|
+
});
|
|
67
|
+
const values = parsed.values;
|
|
68
|
+
const positionals = parsed.positionals ?? [];
|
|
69
|
+
const format = pickFormat(values.json === true, values.table === true, values.raw === true, values.quiet === true);
|
|
70
|
+
const globals = {
|
|
71
|
+
verbose: values.verbose === true,
|
|
72
|
+
help: values.help === true,
|
|
73
|
+
version: values.version === true,
|
|
74
|
+
format,
|
|
75
|
+
formatRequested: [values.json, values.table, values.raw, values.quiet].includes(true),
|
|
76
|
+
...(typeof values.url === 'string' ? { url: values.url } : {}),
|
|
77
|
+
...(typeof values.token === 'string' ? { token: values.token } : {}),
|
|
78
|
+
};
|
|
79
|
+
// Strip global keys from options so command handlers see only their own.
|
|
80
|
+
const own = {};
|
|
81
|
+
for (const [key, value] of Object.entries(values)) {
|
|
82
|
+
if (key in GLOBAL_OPTION_SPEC)
|
|
83
|
+
continue;
|
|
84
|
+
own[key] = value;
|
|
85
|
+
}
|
|
86
|
+
return { globals, positionals, options: own };
|
|
87
|
+
}
|
|
88
|
+
function pickFormat(json, table, raw, quiet) {
|
|
89
|
+
if (quiet)
|
|
90
|
+
return 'quiet';
|
|
91
|
+
if (raw)
|
|
92
|
+
return 'raw';
|
|
93
|
+
if (table)
|
|
94
|
+
return 'table';
|
|
95
|
+
// Default pretty JSON (also selected explicitly by --json).
|
|
96
|
+
if (json)
|
|
97
|
+
return 'json';
|
|
98
|
+
return 'json';
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { RegisterProviderInput } from '@kindgi/client';
|
|
2
|
+
export interface ProviderPreset {
|
|
3
|
+
/** Matches the JSON filename stem; `--preset=<name>`. */
|
|
4
|
+
readonly name: string;
|
|
5
|
+
/** One line for `kindgi providers presets`. */
|
|
6
|
+
readonly description: string;
|
|
7
|
+
readonly adapterId: string;
|
|
8
|
+
/** The secret holding the credential; absent when the adapter finds its own. */
|
|
9
|
+
readonly secret?: string;
|
|
10
|
+
/** Adapter settings the caller supplies, each as `--<key>=<value>`. */
|
|
11
|
+
readonly adapterConfig?: readonly PresetSetting[];
|
|
12
|
+
/** When the models' prices were last checked against the vendor's. */
|
|
13
|
+
readonly pricesCheckedAt: string;
|
|
14
|
+
readonly metadata: PresetMetadata;
|
|
15
|
+
}
|
|
16
|
+
export interface PresetSetting {
|
|
17
|
+
readonly key: string;
|
|
18
|
+
readonly description: string;
|
|
19
|
+
}
|
|
20
|
+
type PresetMetadata = RegisterProviderInput['metadata'];
|
|
21
|
+
export declare function defaultProviderPresetsRoot(): string;
|
|
22
|
+
export interface PresetIO {
|
|
23
|
+
readonly readdir: (path: string) => Promise<readonly string[]>;
|
|
24
|
+
readonly readFile: (path: string) => Promise<string>;
|
|
25
|
+
}
|
|
26
|
+
/** Every preset, by name. A malformed file fails the load, naming the file. */
|
|
27
|
+
export declare function loadProviderPresets(dir?: string, io?: PresetIO): Promise<Readonly<Record<string, ProviderPreset>>>;
|
|
28
|
+
export interface PresetChoices {
|
|
29
|
+
/** A subset of the preset's model names; all of them when absent. */
|
|
30
|
+
readonly models?: readonly string[];
|
|
31
|
+
/** Overrides the preset's secret name. */
|
|
32
|
+
readonly secret?: string;
|
|
33
|
+
/** The secret's environment (`local` in `kindgi dev`). */
|
|
34
|
+
readonly envName: string;
|
|
35
|
+
/** The values of the preset's `adapterConfig` settings, by key. */
|
|
36
|
+
readonly settings: Readonly<Record<string, string | undefined>>;
|
|
37
|
+
}
|
|
38
|
+
/** The registration body for a preset, or why the choices don't fit it. */
|
|
39
|
+
export declare function presetRegistration(preset: ProviderPreset, choices: PresetChoices): {
|
|
40
|
+
readonly kind: 'ok';
|
|
41
|
+
readonly input: RegisterProviderInput;
|
|
42
|
+
} | {
|
|
43
|
+
readonly kind: 'err';
|
|
44
|
+
readonly message: string;
|
|
45
|
+
};
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=preset-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preset-loader.d.ts","sourceRoot":"","sources":["../../src/providers/preset-loader.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,KAAK,cAAc,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAIxD,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACtD;AAOD,+EAA+E;AAC/E,wBAAsB,mBAAmB,CACvC,GAAG,GAAE,MAAqC,EAC1C,EAAE,GAAE,QAAqB,GACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAmBnD;AAuCD,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACjE;AAED,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,GAEpB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,GAC9D;IACE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CA+BJ"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* Provider presets — `kindgi providers register --preset=<name>`.
|
|
5
|
+
*
|
|
6
|
+
* A preset is a vendor's registration body with the models, context
|
|
7
|
+
* windows and prices filled in (`src/providers/presets/<name>.json`,
|
|
8
|
+
* copied to `dist/providers/presets/` at build): its adapter, the secret
|
|
9
|
+
* its credential lives in (if any), the adapter settings it needs from
|
|
10
|
+
* the caller (e.g. Gemini's `--project`), and `metadata`. Prices change
|
|
11
|
+
* with the vendors' — `pricesCheckedAt` says when they were last read.
|
|
12
|
+
*/
|
|
13
|
+
import { readFile as nodeReadFile, readdir as nodeReaddir } from 'node:fs/promises';
|
|
14
|
+
import { dirname, join } from 'node:path';
|
|
15
|
+
import { fileURLToPath } from 'node:url';
|
|
16
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
17
|
+
export function defaultProviderPresetsRoot() {
|
|
18
|
+
return join(__dirname, 'presets');
|
|
19
|
+
}
|
|
20
|
+
const DEFAULT_IO = {
|
|
21
|
+
readdir: async (path) => nodeReaddir(path),
|
|
22
|
+
readFile: async (path) => nodeReadFile(path, 'utf8'),
|
|
23
|
+
};
|
|
24
|
+
/** Every preset, by name. A malformed file fails the load, naming the file. */
|
|
25
|
+
export async function loadProviderPresets(dir = defaultProviderPresetsRoot(), io = DEFAULT_IO) {
|
|
26
|
+
const files = (await io.readdir(dir)).filter((n) => n.endsWith('.json')).sort();
|
|
27
|
+
const presets = {};
|
|
28
|
+
for (const file of files) {
|
|
29
|
+
const problem = (message) => new Error(`provider preset ${file}: ${message}`);
|
|
30
|
+
let parsed;
|
|
31
|
+
try {
|
|
32
|
+
parsed = JSON.parse(await io.readFile(join(dir, file)));
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
throw problem(`invalid JSON — ${err.message}`);
|
|
36
|
+
}
|
|
37
|
+
const preset = checkPreset(parsed);
|
|
38
|
+
if (typeof preset === 'string')
|
|
39
|
+
throw problem(preset);
|
|
40
|
+
if (preset.name !== file.replace(/\.json$/, '')) {
|
|
41
|
+
throw problem(`name "${preset.name}" does not match the file name`);
|
|
42
|
+
}
|
|
43
|
+
presets[preset.name] = preset;
|
|
44
|
+
}
|
|
45
|
+
return presets;
|
|
46
|
+
}
|
|
47
|
+
function checkPreset(input) {
|
|
48
|
+
if (input === null || typeof input !== 'object' || Array.isArray(input)) {
|
|
49
|
+
return 'must be a JSON object';
|
|
50
|
+
}
|
|
51
|
+
const p = input;
|
|
52
|
+
for (const key of ['name', 'description', 'adapterId', 'pricesCheckedAt']) {
|
|
53
|
+
if (typeof p[key] !== 'string' || p[key] === '')
|
|
54
|
+
return `"${key}" must be a non-empty string`;
|
|
55
|
+
}
|
|
56
|
+
if (p.secret !== undefined && (typeof p.secret !== 'string' || p.secret === '')) {
|
|
57
|
+
return '"secret" must be a non-empty string';
|
|
58
|
+
}
|
|
59
|
+
if (p.adapterConfig !== undefined &&
|
|
60
|
+
(!Array.isArray(p.adapterConfig) ||
|
|
61
|
+
!p.adapterConfig.every((s) => s !== null &&
|
|
62
|
+
typeof s === 'object' &&
|
|
63
|
+
typeof s.key === 'string' &&
|
|
64
|
+
typeof s.description === 'string'))) {
|
|
65
|
+
return '"adapterConfig" must be a list of { key, description }';
|
|
66
|
+
}
|
|
67
|
+
const metadata = p.metadata;
|
|
68
|
+
if (metadata === undefined ||
|
|
69
|
+
typeof metadata.id !== 'string' ||
|
|
70
|
+
!Array.isArray(metadata.models) ||
|
|
71
|
+
metadata.models.length === 0 ||
|
|
72
|
+
!metadata.models.every((m) => typeof m.name === 'string')) {
|
|
73
|
+
return '"metadata" must have an id and at least one named model';
|
|
74
|
+
}
|
|
75
|
+
return input;
|
|
76
|
+
}
|
|
77
|
+
/** The registration body for a preset, or why the choices don't fit it. */
|
|
78
|
+
export function presetRegistration(preset, choices) {
|
|
79
|
+
const all = preset.metadata.models;
|
|
80
|
+
const unknown = (choices.models ?? []).filter((name) => !all.some((m) => m.name === name));
|
|
81
|
+
if (unknown.length > 0) {
|
|
82
|
+
return {
|
|
83
|
+
kind: 'err',
|
|
84
|
+
message: `preset "${preset.name}" has no model ${unknown.join(', ')} — it has ${all.map((m) => m.name).join(', ')}`,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const models = choices.models === undefined ? all : all.filter((m) => choices.models?.includes(m.name));
|
|
88
|
+
const missing = (preset.adapterConfig ?? []).filter((s) => choices.settings[s.key] === undefined);
|
|
89
|
+
if (missing.length > 0) {
|
|
90
|
+
return {
|
|
91
|
+
kind: 'err',
|
|
92
|
+
message: `preset "${preset.name}" needs ${missing.map((s) => `--${s.key}=<…> (${s.description})`).join(', ')}`,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const secret = choices.secret ?? preset.secret;
|
|
96
|
+
const adapterConfig = Object.fromEntries((preset.adapterConfig ?? []).map((s) => [s.key, choices.settings[s.key]]));
|
|
97
|
+
return {
|
|
98
|
+
kind: 'ok',
|
|
99
|
+
input: {
|
|
100
|
+
metadata: { ...preset.metadata, models },
|
|
101
|
+
adapter_id: preset.adapterId,
|
|
102
|
+
...(secret !== undefined && { secret_ref: { envName: choices.envName, name: secret } }),
|
|
103
|
+
...(Object.keys(adapterConfig).length > 0 && { adapter_config: adapterConfig }),
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=preset-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preset-loader.js","sourceRoot":"","sources":["../../src/providers/preset-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "anthropic",
|
|
3
|
+
"description": "Claude on the Anthropic API (key: ANTHROPIC_API_KEY).",
|
|
4
|
+
"adapterId": "@kindgi/adapter-model-anthropic",
|
|
5
|
+
"secret": "ANTHROPIC_API_KEY",
|
|
6
|
+
"pricesCheckedAt": "2026-10-01",
|
|
7
|
+
"metadata": {
|
|
8
|
+
"id": "anthropic",
|
|
9
|
+
"region": "unspecified",
|
|
10
|
+
"description": "Claude on the Anthropic API",
|
|
11
|
+
"models": [
|
|
12
|
+
{
|
|
13
|
+
"name": "claude-opus-5-5",
|
|
14
|
+
"contextWindow": 1000000,
|
|
15
|
+
"maxOutputTokens": 16000,
|
|
16
|
+
"features": ["tool-use", "parallel-tool-use", "structured-output", "long-context"],
|
|
17
|
+
"cost": {
|
|
18
|
+
"promptUsdPer1kTokens": 0.004,
|
|
19
|
+
"completionUsdPer1kTokens": 0.02
|
|
20
|
+
},
|
|
21
|
+
"description": "Most capable Opus \u2014 long-running agentic and knowledge work."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "claude-sonnet-5-5",
|
|
25
|
+
"contextWindow": 1000000,
|
|
26
|
+
"maxOutputTokens": 16000,
|
|
27
|
+
"features": ["tool-use", "parallel-tool-use", "structured-output", "long-context"],
|
|
28
|
+
"cost": {
|
|
29
|
+
"promptUsdPer1kTokens": 0.002,
|
|
30
|
+
"completionUsdPer1kTokens": 0.01
|
|
31
|
+
},
|
|
32
|
+
"description": "Balanced performance and cost."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "claude-haiku-4-5",
|
|
36
|
+
"contextWindow": 200000,
|
|
37
|
+
"maxOutputTokens": 8192,
|
|
38
|
+
"features": ["tool-use", "parallel-tool-use"],
|
|
39
|
+
"cost": {
|
|
40
|
+
"promptUsdPer1kTokens": 0.001,
|
|
41
|
+
"completionUsdPer1kTokens": 0.005
|
|
42
|
+
},
|
|
43
|
+
"description": "Fastest and cheapest \u2014 routing, classification, simple calls."
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "gemini",
|
|
3
|
+
"description": "Gemini on Vertex AI (Google Application Default Credentials; --project=<gcp-project>).",
|
|
4
|
+
"adapterId": "@kindgi/adapter-model-gemini",
|
|
5
|
+
"adapterConfig": [
|
|
6
|
+
{
|
|
7
|
+
"key": "project",
|
|
8
|
+
"description": "The Google Cloud project Vertex AI bills and authorises against."
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"pricesCheckedAt": "2026-10-01",
|
|
12
|
+
"metadata": {
|
|
13
|
+
"id": "gemini",
|
|
14
|
+
"region": "global",
|
|
15
|
+
"description": "Gemini on Vertex AI",
|
|
16
|
+
"models": [
|
|
17
|
+
{
|
|
18
|
+
"name": "gemini-2.5-pro",
|
|
19
|
+
"contextWindow": 1048576,
|
|
20
|
+
"maxOutputTokens": 8192,
|
|
21
|
+
"features": ["tool-use"],
|
|
22
|
+
"cost": {
|
|
23
|
+
"promptUsdPer1kTokens": 0.00125,
|
|
24
|
+
"completionUsdPer1kTokens": 0.01,
|
|
25
|
+
"longContext": {
|
|
26
|
+
"thresholdTokens": 200000,
|
|
27
|
+
"promptUsdPer1kTokens": 0.0025,
|
|
28
|
+
"completionUsdPer1kTokens": 0.015
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "gemini-2.5-flash",
|
|
34
|
+
"contextWindow": 1048576,
|
|
35
|
+
"features": ["tool-use"],
|
|
36
|
+
"cost": { "promptUsdPer1kTokens": 0.0003, "completionUsdPer1kTokens": 0.0025 }
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** One flag: `--name` (and `-short`), taking a string or a boolean. */
|
|
2
|
+
export interface FlagReference {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly type: 'string' | 'boolean';
|
|
5
|
+
readonly short?: string;
|
|
6
|
+
/** The flag may be repeated. */
|
|
7
|
+
readonly multiple?: boolean;
|
|
8
|
+
readonly default?: string | boolean;
|
|
9
|
+
/** What the flag does, in one sentence. */
|
|
10
|
+
readonly description?: string;
|
|
11
|
+
}
|
|
12
|
+
/** One command; a group of commands has subcommands and no usage. */
|
|
13
|
+
export interface CommandReference {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
/** The words after `kindgi`, e.g. `['secrets', 'set']`. */
|
|
16
|
+
readonly path: readonly string[];
|
|
17
|
+
readonly description: string;
|
|
18
|
+
/** The usage line (leaf commands only). */
|
|
19
|
+
readonly usage?: string;
|
|
20
|
+
/** The command's own flags, by name (leaf commands only). */
|
|
21
|
+
readonly flags: readonly FlagReference[];
|
|
22
|
+
readonly subcommands: readonly CommandReference[];
|
|
23
|
+
}
|
|
24
|
+
/** Every top-level command, in the order `kindgi --help` lists them. */
|
|
25
|
+
export declare function describeCommands(): readonly CommandReference[];
|
|
26
|
+
/** The flags every command takes (`--url`, `--token`, `--json`, …), by name. */
|
|
27
|
+
export declare function describeGlobalFlags(): readonly FlagReference[];
|
|
28
|
+
//# sourceMappingURL=reference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAeA,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACnD;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,IAAI,SAAS,gBAAgB,EAAE,CAE9D;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,IAAI,SAAS,aAAa,EAAE,CAE9D"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* The CLI described as data: every command with its usage, its flags and
|
|
5
|
+
* its subcommands, and the global flags. No handlers. The CLI reference
|
|
6
|
+
* on docs.kindgi.com is generated from it, so it can't drift from the
|
|
7
|
+
* commands.
|
|
8
|
+
*/
|
|
9
|
+
import { ROOT_COMMANDS } from './commands/index.js';
|
|
10
|
+
import { wiredCommands } from './commands/unwired.js';
|
|
11
|
+
import { GLOBAL_OPTION_SPEC } from './parse.js';
|
|
12
|
+
/** Every top-level command, in the order `kindgi --help` lists them. */
|
|
13
|
+
export function describeCommands() {
|
|
14
|
+
return wiredCommands(ROOT_COMMANDS).map((command) => describe(command, []));
|
|
15
|
+
}
|
|
16
|
+
/** The flags every command takes (`--url`, `--token`, `--json`, …), by name. */
|
|
17
|
+
export function describeGlobalFlags() {
|
|
18
|
+
return flags(GLOBAL_OPTION_SPEC);
|
|
19
|
+
}
|
|
20
|
+
function describe(command, parent) {
|
|
21
|
+
const path = [...parent, command.name];
|
|
22
|
+
if (command.kind === 'group') {
|
|
23
|
+
return {
|
|
24
|
+
name: command.name,
|
|
25
|
+
path,
|
|
26
|
+
description: command.description,
|
|
27
|
+
flags: [],
|
|
28
|
+
subcommands: wiredCommands(command.subcommands, path).map((sub) => describe(sub, path)),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
name: command.name,
|
|
33
|
+
path,
|
|
34
|
+
description: command.description,
|
|
35
|
+
usage: command.usage,
|
|
36
|
+
flags: flags(command.optionSpec ?? {}),
|
|
37
|
+
subcommands: [],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function flags(spec) {
|
|
41
|
+
return Object.entries(spec)
|
|
42
|
+
.map(([name, option]) => ({
|
|
43
|
+
name,
|
|
44
|
+
type: option.type,
|
|
45
|
+
...(option.short !== undefined && { short: option.short }),
|
|
46
|
+
...(option.multiple !== undefined && { multiple: option.multiple }),
|
|
47
|
+
...(option.default !== undefined && { default: option.default }),
|
|
48
|
+
...(option.description !== undefined && { description: option.description }),
|
|
49
|
+
}))
|
|
50
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA2BhD,wEAAwE;AACxE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,mBAAmB;IACjC,OAAO,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,OAAgB,EAAE,MAAyB;IAC3D,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI;YACJ,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACxF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI;QACJ,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QACtC,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,IAA+C;IAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACxB,IAAI;QACJ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1D,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;KAC7E,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root directory of the `@kindgi/sdk` package the CLI depends on,
|
|
3
|
+
* resolved by package name from the CLI's own location. Correct whether
|
|
4
|
+
* the SDK is a workspace sibling, lives in a separate checkout linked into
|
|
5
|
+
* the workspace, or is installed under `node_modules` — no repo-layout
|
|
6
|
+
* assumption. `undefined` when it can't be resolved (broken install).
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveSdkPackageRoot(): string | undefined;
|
|
9
|
+
//# sourceMappingURL=sdk-package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-package.d.ts","sourceRoot":"","sources":["../src/sdk-package.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAM1D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
import { dirname } from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* Root directory of the `@kindgi/sdk` package the CLI depends on,
|
|
7
|
+
* resolved by package name from the CLI's own location. Correct whether
|
|
8
|
+
* the SDK is a workspace sibling, lives in a separate checkout linked into
|
|
9
|
+
* the workspace, or is installed under `node_modules` — no repo-layout
|
|
10
|
+
* assumption. `undefined` when it can't be resolved (broken install).
|
|
11
|
+
*/
|
|
12
|
+
export function resolveSdkPackageRoot() {
|
|
13
|
+
try {
|
|
14
|
+
return dirname(createRequire(import.meta.url).resolve('@kindgi/sdk/package.json'));
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=sdk-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-package.js","sourceRoot":"","sources":["../src/sdk-package.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|