@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,454 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
import { existsSync } from 'node:fs';
|
|
4
|
+
import { mkdir, readFile, readdir, stat, writeFile } from 'node:fs/promises';
|
|
5
|
+
import { dirname, join, relative } from 'node:path';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
7
|
+
import { PACK_UV_REQUIRED_VERSION } from '../build/python-image.js';
|
|
8
|
+
import { runInitAugment } from '../init/augment-scaffolder.js';
|
|
9
|
+
import { kindgiRequirementFor, resolveKindgiDependencySpecs, resolveKindgiPythonSource, } from '../init/dependency-specs.js';
|
|
10
|
+
import { detectInitMode } from '../init/mode-detect.js';
|
|
11
|
+
import { runInitPythonAugment } from '../init/python-augment.js';
|
|
12
|
+
import { collectTemplateFiles, substitute, templateTarget, } from '../init/template-files.js';
|
|
13
|
+
import { renderJson } from '../output.js';
|
|
14
|
+
import { binDisplay, detectPackageManager, installCommand } from '../package-manager.js';
|
|
15
|
+
import { resolveSdkPackageRoot } from '../sdk-package.js';
|
|
16
|
+
import { syncSkills } from './skills.js';
|
|
17
|
+
/**
|
|
18
|
+
* `kindgi init <pack-name>` — scaffolds a fresh pack repo.
|
|
19
|
+
*
|
|
20
|
+
* Writes the pack anatomy (config, the four primitives' folders,
|
|
21
|
+
* agent instructions and skills) that the other commands — `dev`,
|
|
22
|
+
* `build`, `deploy`, `test`, `env`, `key` — work on.
|
|
23
|
+
*
|
|
24
|
+
* Templates live under `src/templates/<name>/`. Files ending in `.tmpl`
|
|
25
|
+
* are treated as templates (suffix stripped on write, placeholders
|
|
26
|
+
* substituted); files without the suffix are copied verbatim. Placeholders
|
|
27
|
+
* are simple string replaces — `{{PACK_NAME}}`, `{{PACK_ID}}`,
|
|
28
|
+
* `{{PACK_VERSION}}`. No template engine: the framework's job isn't to be
|
|
29
|
+
* a template engine.
|
|
30
|
+
*/
|
|
31
|
+
export const initCommand = {
|
|
32
|
+
kind: 'leaf',
|
|
33
|
+
name: 'init',
|
|
34
|
+
description: 'Scaffold a new Kindgi pack repo, or add Kindgi to an existing Node.js project (auto-detected when a `package.json` is present and no pack-name is given).',
|
|
35
|
+
usage: 'kindgi init [<pack-name>] [--template=minimal|sample|python] [--path=<dir>] [--force] [--link-local] [--new-repo]',
|
|
36
|
+
optionSpec: {
|
|
37
|
+
template: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'The starter: `minimal` (default; empty primitive folders), `sample` (tools, a guardrail, an agent and a flow) or `python` (a Python pack).',
|
|
40
|
+
},
|
|
41
|
+
path: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'Where to scaffold. Default: `<pack-name>` (its last dot segment) under the current directory; in an existing app, the current directory.',
|
|
44
|
+
},
|
|
45
|
+
force: {
|
|
46
|
+
type: 'boolean',
|
|
47
|
+
description: 'Write into a non-empty directory; in an existing app, overwrite the Kindgi config and files already there instead of refusing or skipping them.',
|
|
48
|
+
},
|
|
49
|
+
'link-local': {
|
|
50
|
+
type: 'boolean',
|
|
51
|
+
description: 'Node packs: link `@kindgi/*` from the Kindgi checkout the CLI runs from, even inside its workspace. No effect for an installed CLI.',
|
|
52
|
+
},
|
|
53
|
+
// Force fresh mode even when a package.json sits at the target
|
|
54
|
+
// dir. Only relevant to disambiguate: someone in an existing repo
|
|
55
|
+
// who wants a NESTED standalone pack rather than augment mode.
|
|
56
|
+
'new-repo': {
|
|
57
|
+
type: 'boolean',
|
|
58
|
+
description: 'In an existing app, scaffold a separate pack instead of adding Kindgi to the app. Requires `<pack-name>`.',
|
|
59
|
+
},
|
|
60
|
+
// Augment mode only. Override the pack id derived from the
|
|
61
|
+
// surrounding `package.json` `name`. Required if the name can't
|
|
62
|
+
// be normalized to `PACK_ID_REGEX` (underscores, uppercase-only,
|
|
63
|
+
// etc.).
|
|
64
|
+
'pack-id': {
|
|
65
|
+
type: 'string',
|
|
66
|
+
description: "Adding Kindgi to an existing app: the pack id, instead of the one derived from the app's name. Needed when that name makes no valid id.",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
run: async (ctx) => runInit(ctx, defaultTemplatesRoot(), defaultSdkSkillsRoot()),
|
|
70
|
+
};
|
|
71
|
+
/** Pack ids: lowercase dot-separated segments, e.g. `acme.billing`. */
|
|
72
|
+
export const PACK_ID_REGEX = /^[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*$/;
|
|
73
|
+
export const AVAILABLE_TEMPLATES = ['minimal', 'sample', 'python'];
|
|
74
|
+
const DEFAULT_TEMPLATE = 'minimal';
|
|
75
|
+
const DEFAULT_PACK_VERSION = '0.1.0';
|
|
76
|
+
/**
|
|
77
|
+
* Test-friendly entry point — takes an explicit templates root + skills
|
|
78
|
+
* root so tests can point at either the source tree or a temp fixture.
|
|
79
|
+
* `skillsRoot` is optional; when undefined, no skills are copied (the
|
|
80
|
+
* default when the CLI is run from source without a build).
|
|
81
|
+
*/
|
|
82
|
+
export async function runInit(ctx, templatesRoot, skillsRoot) {
|
|
83
|
+
const detected = await detectInitMode({
|
|
84
|
+
cwd: ctx.cwd,
|
|
85
|
+
positionals: ctx.positionals,
|
|
86
|
+
...(typeof ctx.options.path === 'string' &&
|
|
87
|
+
ctx.options.path !== '' && {
|
|
88
|
+
pathFlag: ctx.options.path,
|
|
89
|
+
}),
|
|
90
|
+
newRepoFlag: ctx.options['new-repo'] === true,
|
|
91
|
+
...(typeof ctx.options.template === 'string' && { templateFlag: ctx.options.template }),
|
|
92
|
+
});
|
|
93
|
+
if (detected.kind === 'err') {
|
|
94
|
+
return { kind: 'error', stderr: detected.message, exitCode: 1 };
|
|
95
|
+
}
|
|
96
|
+
if (detected.mode === 'augment' && detected.language === 'python') {
|
|
97
|
+
const packIdRaw = ctx.options['pack-id'];
|
|
98
|
+
const template = ctx.options.template;
|
|
99
|
+
if (typeof template === 'string' && template !== '' && template !== 'python') {
|
|
100
|
+
return {
|
|
101
|
+
kind: 'error',
|
|
102
|
+
stderr: `A Python app gets a Python pack: --template=${template} doesn't apply here (omit it, or --template=python).\n`,
|
|
103
|
+
exitCode: 1,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return runInitPythonAugment({
|
|
107
|
+
targetDir: detected.targetDir,
|
|
108
|
+
...(skillsRoot !== undefined && { skillsRoot }),
|
|
109
|
+
...(typeof packIdRaw === 'string' && packIdRaw !== '' && { packIdOverride: packIdRaw }),
|
|
110
|
+
force: ctx.options.force === true,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (detected.mode === 'augment') {
|
|
114
|
+
const packIdRaw = ctx.options['pack-id'];
|
|
115
|
+
const template = augmentTemplate(ctx.options.template);
|
|
116
|
+
if (template.kind === 'err')
|
|
117
|
+
return { kind: 'error', stderr: template.stderr, exitCode: 1 };
|
|
118
|
+
return runInitAugment({
|
|
119
|
+
targetDir: detected.targetDir,
|
|
120
|
+
template: template.name,
|
|
121
|
+
templatesRoot,
|
|
122
|
+
...(skillsRoot !== undefined && { skillsRoot }),
|
|
123
|
+
...(typeof packIdRaw === 'string' && packIdRaw !== '' && { packIdOverride: packIdRaw }),
|
|
124
|
+
force: ctx.options.force === true,
|
|
125
|
+
linkLocal: ctx.options['link-local'] === true,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return runInitFresh(ctx, templatesRoot, skillsRoot, detected.packName, detected.targetDir);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* The template for augment mode. `sample` adds the sample primitives to
|
|
132
|
+
* the app's `kindgi/` folders; `python` makes a pack of its own, so it
|
|
133
|
+
* doesn't apply to an existing Node app.
|
|
134
|
+
*/
|
|
135
|
+
function augmentTemplate(flag) {
|
|
136
|
+
const name = typeof flag === 'string' && flag !== '' ? flag : DEFAULT_TEMPLATE;
|
|
137
|
+
if (name === 'minimal' || name === 'sample')
|
|
138
|
+
return { kind: 'ok', name };
|
|
139
|
+
if (name === 'python') {
|
|
140
|
+
return {
|
|
141
|
+
kind: 'err',
|
|
142
|
+
stderr: 'The python template makes a Python pack: there is no pyproject.toml here, and in a Node app init adds a TypeScript pack.\nFor a standalone Python pack here: kindgi init <pack-name> --template=python --new-repo\n',
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
kind: 'err',
|
|
147
|
+
stderr: `Unknown template: ${name}. Available: ${AVAILABLE_TEMPLATES.join(', ')}\n`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Fresh-mode scaffold — creates a new pack in a subdirectory. Extracted
|
|
152
|
+
* from `runInit` so the mode-branching entry point stays under the
|
|
153
|
+
* complexity ceiling.
|
|
154
|
+
*/
|
|
155
|
+
async function runInitFresh(ctx, templatesRoot, skillsRoot, packName, targetDir) {
|
|
156
|
+
const parsed = resolveFreshArgs(ctx, packName, targetDir);
|
|
157
|
+
if (parsed.kind === 'error')
|
|
158
|
+
return parsed;
|
|
159
|
+
const args = parsed.args;
|
|
160
|
+
const templateDir = join(templatesRoot, args.template);
|
|
161
|
+
const templateExists = await pathExists(templateDir);
|
|
162
|
+
if (!templateExists) {
|
|
163
|
+
return {
|
|
164
|
+
kind: 'error',
|
|
165
|
+
stderr: `Unknown template: ${args.template}. Available: ${AVAILABLE_TEMPLATES.join(', ')}\n`,
|
|
166
|
+
exitCode: 1,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
const nonEmpty = await isNonEmptyDir(args.targetDir);
|
|
170
|
+
if (nonEmpty && !args.force) {
|
|
171
|
+
return {
|
|
172
|
+
kind: 'error',
|
|
173
|
+
stderr: `Refusing to scaffold into non-empty directory: ${args.targetDir}. Re-run with --force to overwrite.\n`,
|
|
174
|
+
exitCode: 1,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
if (args.template === 'python')
|
|
178
|
+
return runInitPython(ctx, args, templateDir, skillsRoot);
|
|
179
|
+
const substitutions = {
|
|
180
|
+
PACK_NAME: args.packName,
|
|
181
|
+
PACK_ID: args.packName,
|
|
182
|
+
PACK_VERSION: DEFAULT_PACK_VERSION,
|
|
183
|
+
};
|
|
184
|
+
const filesWritten = await scaffoldTemplate({
|
|
185
|
+
templateDir,
|
|
186
|
+
targetDir: args.targetDir,
|
|
187
|
+
substitutions,
|
|
188
|
+
});
|
|
189
|
+
// Copy @kindgi/sdk skills into the scaffolded pack's
|
|
190
|
+
// `.claude/skills/`. Claude Code auto-loads these based on their
|
|
191
|
+
// frontmatter `description` — no user action after init.
|
|
192
|
+
const skillsWritten = await copyClaudeSkills({
|
|
193
|
+
skillsRoot,
|
|
194
|
+
targetDir: args.targetDir,
|
|
195
|
+
language: 'node',
|
|
196
|
+
});
|
|
197
|
+
for (const s of skillsWritten)
|
|
198
|
+
filesWritten.push(s);
|
|
199
|
+
// The template pins `@kindgi/sdk` + `@kindgi/cli` as `workspace:*`.
|
|
200
|
+
// Rewrite both to what resolves from here — see `dependency-specs.ts`
|
|
201
|
+
// (workspace inside the Kindgi checkout, `link:` to the checkout from
|
|
202
|
+
// anywhere else or with --link-local, the running CLI's versions once
|
|
203
|
+
// published). The pack then runs its own pinned `kindgi`.
|
|
204
|
+
const packageManager = await detectPackageManager(args.targetDir);
|
|
205
|
+
const resolvedSpecs = await resolveKindgiDependencySpecs({
|
|
206
|
+
targetDir: args.targetDir,
|
|
207
|
+
packageManager,
|
|
208
|
+
...(args.linkLocal && { forceLocal: true }),
|
|
209
|
+
});
|
|
210
|
+
if (resolvedSpecs.kind === 'error') {
|
|
211
|
+
return { kind: 'error', stderr: `${resolvedSpecs.message}\n`, exitCode: 1 };
|
|
212
|
+
}
|
|
213
|
+
const specs = resolvedSpecs.specs;
|
|
214
|
+
if (specs.source !== 'workspace')
|
|
215
|
+
await rewriteTemplateDependencySpecs(args.targetDir, specs);
|
|
216
|
+
const displayPath = relative(ctx.cwd, args.targetDir) || '.';
|
|
217
|
+
const nextSteps = [
|
|
218
|
+
`cd ${displayPath}`,
|
|
219
|
+
installCommand(packageManager),
|
|
220
|
+
`${binDisplay(packageManager, 'kindgi', ['dev'])} # runs the Kindgi runtime (Docker) + hot-reloads this pack`,
|
|
221
|
+
];
|
|
222
|
+
const stderr = [
|
|
223
|
+
`✓ Pack scaffolded at ${args.targetDir}/`,
|
|
224
|
+
'',
|
|
225
|
+
'Next steps:',
|
|
226
|
+
...nextSteps.map((s) => ` ${s}`),
|
|
227
|
+
'',
|
|
228
|
+
"Read the pack's README.md for details.",
|
|
229
|
+
'',
|
|
230
|
+
].join('\n');
|
|
231
|
+
const payload = {
|
|
232
|
+
template: args.template,
|
|
233
|
+
packId: args.packName,
|
|
234
|
+
packVersion: DEFAULT_PACK_VERSION,
|
|
235
|
+
packageManager,
|
|
236
|
+
dependencies: specs,
|
|
237
|
+
path: args.targetDir,
|
|
238
|
+
filesWritten: filesWritten.length,
|
|
239
|
+
files: filesWritten.map((p) => relative(args.targetDir, p)),
|
|
240
|
+
nextSteps,
|
|
241
|
+
};
|
|
242
|
+
const rendered = renderJson(payload, ctx.globals.format);
|
|
243
|
+
return {
|
|
244
|
+
kind: 'ok',
|
|
245
|
+
rendered: { stdout: rendered.stdout, stderr },
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* The python template: a Python pack (`[tool.kindgi]` in `pyproject.toml`).
|
|
250
|
+
* No Node project — `kindgi` (Python) comes from PyPI within the CLI's
|
|
251
|
+
* minor, or, for a CLI run from a Kindgi checkout, from that checkout's
|
|
252
|
+
* `sdks/python` (an editable uv source). The skills copied are those
|
|
253
|
+
* written for Python packs.
|
|
254
|
+
*/
|
|
255
|
+
async function runInitPython(ctx, args, templateDir, skillsRoot) {
|
|
256
|
+
const source = await resolveKindgiPythonSource();
|
|
257
|
+
if (source.kind === 'error')
|
|
258
|
+
return { kind: 'error', stderr: `${source.message}\n`, exitCode: 1 };
|
|
259
|
+
const block = source.kind === 'local-checkout'
|
|
260
|
+
? [
|
|
261
|
+
'',
|
|
262
|
+
"# From a Kindgi checkout: this pack uses the checkout's Python SDK.",
|
|
263
|
+
'[tool.uv.sources]',
|
|
264
|
+
`kindgi = { path = ${JSON.stringify(source.path)}, editable = true }`,
|
|
265
|
+
'',
|
|
266
|
+
].join('\n')
|
|
267
|
+
: '';
|
|
268
|
+
const filesWritten = await scaffoldTemplate({
|
|
269
|
+
templateDir,
|
|
270
|
+
targetDir: args.targetDir,
|
|
271
|
+
substitutions: {
|
|
272
|
+
PACK_NAME: args.packName,
|
|
273
|
+
PACK_ID: args.packName,
|
|
274
|
+
PACK_VERSION: DEFAULT_PACK_VERSION,
|
|
275
|
+
KINDGI_REQUIREMENT: JSON.stringify(kindgiRequirementFor(source)),
|
|
276
|
+
KINDGI_PYTHON_SOURCE: block,
|
|
277
|
+
UV_REQUIRED_VERSION: PACK_UV_REQUIRED_VERSION,
|
|
278
|
+
},
|
|
279
|
+
});
|
|
280
|
+
const skillsWritten = await copyClaudeSkills({
|
|
281
|
+
skillsRoot,
|
|
282
|
+
targetDir: args.targetDir,
|
|
283
|
+
language: 'python',
|
|
284
|
+
});
|
|
285
|
+
for (const s of skillsWritten)
|
|
286
|
+
filesWritten.push(s);
|
|
287
|
+
const displayPath = relative(ctx.cwd, args.targetDir) || '.';
|
|
288
|
+
const nextSteps = [
|
|
289
|
+
`cd ${displayPath}`,
|
|
290
|
+
'uv sync # .venv with kindgi',
|
|
291
|
+
'uv run pytest',
|
|
292
|
+
`${binDisplay('path', 'kindgi', ['dev'])} # boots Kindgi locally + runs this pack with its .venv, reloading on save`,
|
|
293
|
+
];
|
|
294
|
+
const stderr = [
|
|
295
|
+
`✓ Python pack scaffolded at ${args.targetDir}/`,
|
|
296
|
+
'',
|
|
297
|
+
'Next steps:',
|
|
298
|
+
...nextSteps.map((s) => ` ${s}`),
|
|
299
|
+
'',
|
|
300
|
+
"Read the pack's README.md for details.",
|
|
301
|
+
'',
|
|
302
|
+
].join('\n');
|
|
303
|
+
const rendered = renderJson({
|
|
304
|
+
template: args.template,
|
|
305
|
+
packId: args.packName,
|
|
306
|
+
packVersion: DEFAULT_PACK_VERSION,
|
|
307
|
+
kindgi: source,
|
|
308
|
+
path: args.targetDir,
|
|
309
|
+
filesWritten: filesWritten.length,
|
|
310
|
+
files: filesWritten.map((p) => relative(args.targetDir, p)),
|
|
311
|
+
nextSteps,
|
|
312
|
+
}, ctx.globals.format);
|
|
313
|
+
return { kind: 'ok', rendered: { stdout: rendered.stdout, stderr } };
|
|
314
|
+
}
|
|
315
|
+
function resolveFreshArgs(ctx, packName, targetDir) {
|
|
316
|
+
if (!PACK_ID_REGEX.test(packName)) {
|
|
317
|
+
return {
|
|
318
|
+
kind: 'error',
|
|
319
|
+
stderr: `Invalid pack-name: ${packName}. Pack IDs must match ${PACK_ID_REGEX.source} (lowercase kebab, optionally dot-namespaced — e.g., my-pack or acme.legal-basics).\n`,
|
|
320
|
+
exitCode: 1,
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
const templateFlag = ctx.options.template;
|
|
324
|
+
const templateInput = typeof templateFlag === 'string' && templateFlag !== '' ? templateFlag : DEFAULT_TEMPLATE;
|
|
325
|
+
if (!AVAILABLE_TEMPLATES.includes(templateInput)) {
|
|
326
|
+
return {
|
|
327
|
+
kind: 'error',
|
|
328
|
+
stderr: `Unknown template: ${templateInput}. Available: ${AVAILABLE_TEMPLATES.join(', ')}\n`,
|
|
329
|
+
exitCode: 1,
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
const force = ctx.options.force === true;
|
|
333
|
+
const linkLocal = ctx.options['link-local'] === true;
|
|
334
|
+
return {
|
|
335
|
+
kind: 'ok',
|
|
336
|
+
args: {
|
|
337
|
+
packName,
|
|
338
|
+
template: templateInput,
|
|
339
|
+
targetDir,
|
|
340
|
+
force,
|
|
341
|
+
linkLocal,
|
|
342
|
+
},
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
async function scaffoldTemplate(inputs) {
|
|
346
|
+
const files = await collectTemplateFiles(inputs.templateDir);
|
|
347
|
+
const written = [];
|
|
348
|
+
for (const rel of files) {
|
|
349
|
+
const src = join(inputs.templateDir, rel);
|
|
350
|
+
const dest = join(inputs.targetDir, templateTarget(rel));
|
|
351
|
+
await mkdir(dirname(dest), { recursive: true });
|
|
352
|
+
if (rel.endsWith('.tmpl')) {
|
|
353
|
+
const raw = await readFile(src, 'utf8');
|
|
354
|
+
const rendered = substitute(raw, inputs.substitutions);
|
|
355
|
+
await writeFile(dest, rendered, 'utf8');
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
const bytes = await readFile(src);
|
|
359
|
+
await writeFile(dest, bytes);
|
|
360
|
+
}
|
|
361
|
+
written.push(dest);
|
|
362
|
+
}
|
|
363
|
+
written.sort();
|
|
364
|
+
return written;
|
|
365
|
+
}
|
|
366
|
+
async function isNonEmptyDir(path) {
|
|
367
|
+
try {
|
|
368
|
+
const entries = await readdir(path);
|
|
369
|
+
return entries.length > 0;
|
|
370
|
+
}
|
|
371
|
+
catch (err) {
|
|
372
|
+
if (err.code === 'ENOENT')
|
|
373
|
+
return false;
|
|
374
|
+
throw err;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
async function pathExists(path) {
|
|
378
|
+
try {
|
|
379
|
+
await stat(path);
|
|
380
|
+
return true;
|
|
381
|
+
}
|
|
382
|
+
catch (err) {
|
|
383
|
+
if (err.code === 'ENOENT')
|
|
384
|
+
return false;
|
|
385
|
+
throw err;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Stamp the resolved specs over the template's `workspace:*` entries
|
|
390
|
+
* for `@kindgi/sdk` (dependencies) and `@kindgi/cli` (devDependencies).
|
|
391
|
+
*/
|
|
392
|
+
async function rewriteTemplateDependencySpecs(targetDir, specs) {
|
|
393
|
+
const pkgPath = join(targetDir, 'package.json');
|
|
394
|
+
const pkg = JSON.parse(await readFile(pkgPath, 'utf8'));
|
|
395
|
+
if (pkg.dependencies?.['@kindgi/sdk'] !== undefined)
|
|
396
|
+
pkg.dependencies['@kindgi/sdk'] = specs.sdk;
|
|
397
|
+
if (pkg.devDependencies?.['@kindgi/cli'] !== undefined) {
|
|
398
|
+
pkg.devDependencies['@kindgi/cli'] = specs.cli;
|
|
399
|
+
}
|
|
400
|
+
await writeFile(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`, 'utf8');
|
|
401
|
+
}
|
|
402
|
+
export function defaultTemplatesRoot() {
|
|
403
|
+
return fileURLToPath(new URL('../templates/', import.meta.url));
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Absolute path to the bundled `@kindgi/sdk` skills the CLI copies
|
|
407
|
+
* into the scaffolded pack's `.claude/skills/`. Two candidate
|
|
408
|
+
* locations, checked in order:
|
|
409
|
+
*
|
|
410
|
+
* 1. `../sdk-skills/` relative to this file — the built form, where
|
|
411
|
+
* `scripts/copy-build-assets.mjs` bundled the skills at CLI build.
|
|
412
|
+
* 2. `skills/` inside the resolved `@kindgi/sdk` package — the source
|
|
413
|
+
* form, used when running the CLI from source (tests,
|
|
414
|
+
* `pnpm --filter @kindgi/cli test`). Resolved by package name, so it
|
|
415
|
+
* works in any repo layout.
|
|
416
|
+
*
|
|
417
|
+
* Returns `undefined` when neither exists — a broken install; callers
|
|
418
|
+
* scaffold the pack without skills.
|
|
419
|
+
*/
|
|
420
|
+
export function defaultSdkSkillsRoot() {
|
|
421
|
+
const built = fileURLToPath(new URL('../sdk-skills/', import.meta.url));
|
|
422
|
+
if (existsSync(built))
|
|
423
|
+
return built;
|
|
424
|
+
const sdkRoot = resolveSdkPackageRoot();
|
|
425
|
+
if (sdkRoot !== undefined && existsSync(join(sdkRoot, 'skills')))
|
|
426
|
+
return join(sdkRoot, 'skills');
|
|
427
|
+
return undefined;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Copy every `<skill-name>/SKILL.md` written for packs in `language`
|
|
431
|
+
* from `skillsRoot` into `<targetDir>/.claude/skills/<skill-name>/SKILL.md`. Claude Code
|
|
432
|
+
* auto-loads skills from `.claude/skills/` based on their
|
|
433
|
+
* frontmatter `description` — no user action required after init.
|
|
434
|
+
*
|
|
435
|
+
* Silently no-ops when `skillsRoot` is undefined (source-run CLI
|
|
436
|
+
* without a build).
|
|
437
|
+
*/
|
|
438
|
+
async function copyClaudeSkills(inputs) {
|
|
439
|
+
if (inputs.skillsRoot === undefined)
|
|
440
|
+
return [];
|
|
441
|
+
// Same path as `kindgi skills sync`, so its manifest is written and
|
|
442
|
+
// `kindgi dev` doesn't report freshly installed skills as out of date.
|
|
443
|
+
const report = await syncSkills({
|
|
444
|
+
skillsRoot: inputs.skillsRoot,
|
|
445
|
+
targetDir: inputs.targetDir,
|
|
446
|
+
language: inputs.language,
|
|
447
|
+
force: true,
|
|
448
|
+
dryRun: false,
|
|
449
|
+
});
|
|
450
|
+
return report.outcomes
|
|
451
|
+
.filter((o) => o.status === 'added' || o.status === 'updated')
|
|
452
|
+
.map((o) => join(inputs.targetDir, '.claude', 'skills', o.name, 'SKILL.md'));
|
|
453
|
+
}
|
|
454
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/commands/key.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,OAAO,EAA8B,MAAM,YAAY,CAAC;AA8UtE,eAAO,MAAM,UAAU,EAAE,OAKxB,CAAC"}
|