@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
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolved configuration used by every command. Precedence at load
|
|
3
|
+
* time is: CLI flag (`--url`, `--token`) > env var
|
|
4
|
+
* (`KINDGI_API_URL`, `KINDGI_API_TOKEN`) > file
|
|
5
|
+
* (`.kindgirc.json` in cwd, then `~/.kindgi/config.json`).
|
|
6
|
+
*/
|
|
7
|
+
export interface ResolvedConfig {
|
|
8
|
+
readonly apiUrl: string | undefined;
|
|
9
|
+
readonly token: string | undefined;
|
|
10
|
+
readonly source: {
|
|
11
|
+
readonly apiUrl: ConfigSource;
|
|
12
|
+
readonly token: ConfigSource;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export type ConfigSource = 'flag' | 'env' | 'file' | 'unset';
|
|
16
|
+
export interface ConfigInputs {
|
|
17
|
+
readonly flagUrl?: string | undefined;
|
|
18
|
+
readonly flagToken?: string | undefined;
|
|
19
|
+
readonly env?: Readonly<Record<string, string | undefined>>;
|
|
20
|
+
/** Directory used as cwd when looking for `.kindgirc.json`. */
|
|
21
|
+
readonly cwd?: string;
|
|
22
|
+
/** Directory used as `$HOME` when looking for `~/.kindgi/config.json`. */
|
|
23
|
+
readonly home?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Optional file loader override for tests. Returns `null` when the
|
|
26
|
+
* file does not exist; throws for any other IO error.
|
|
27
|
+
*/
|
|
28
|
+
readonly readFile?: (path: string) => Promise<string | null>;
|
|
29
|
+
}
|
|
30
|
+
interface FileConfig {
|
|
31
|
+
readonly apiUrl?: string;
|
|
32
|
+
readonly token?: string;
|
|
33
|
+
}
|
|
34
|
+
export declare function loadConfig(inputs?: ConfigInputs): Promise<ResolvedConfig>;
|
|
35
|
+
/**
|
|
36
|
+
* Persist a config file at `~/.kindgi/config.json`. Called by
|
|
37
|
+
* `kindgi auth login`. Merges with any existing file so a partial
|
|
38
|
+
* write does not clobber other keys.
|
|
39
|
+
*/
|
|
40
|
+
export declare function saveHomeConfig(patch: FileConfig, home?: string | undefined): Promise<string>;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;QAC9B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC5D,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9D;AAED,UAAU,UAAU;IAClB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAWD,wBAAsB,UAAU,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBnF;AA2CD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE,MAAM,GAAG,SAAqB,GACnC,OAAO,CAAC,MAAM,CAAC,CASjB"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
4
|
+
import { homedir } from 'node:os';
|
|
5
|
+
import { dirname, join } from 'node:path';
|
|
6
|
+
async function defaultReadFile(path) {
|
|
7
|
+
try {
|
|
8
|
+
return await readFile(path, 'utf8');
|
|
9
|
+
}
|
|
10
|
+
catch (err) {
|
|
11
|
+
if (err.code === 'ENOENT')
|
|
12
|
+
return null;
|
|
13
|
+
throw err;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export async function loadConfig(inputs = {}) {
|
|
17
|
+
const env = inputs.env ?? process.env;
|
|
18
|
+
const cwd = inputs.cwd ?? process.cwd();
|
|
19
|
+
const home = inputs.home ?? homedir();
|
|
20
|
+
const read = inputs.readFile ?? defaultReadFile;
|
|
21
|
+
const fileConfig = await loadFileConfig(cwd, home, read);
|
|
22
|
+
const envUrl = env.KINDGI_API_URL;
|
|
23
|
+
const envToken = env.KINDGI_API_TOKEN;
|
|
24
|
+
const apiUrl = pickWithSource(inputs.flagUrl, envUrl, fileConfig.apiUrl);
|
|
25
|
+
const token = pickWithSource(inputs.flagToken, envToken, fileConfig.token);
|
|
26
|
+
return {
|
|
27
|
+
apiUrl: apiUrl.value,
|
|
28
|
+
token: token.value,
|
|
29
|
+
source: { apiUrl: apiUrl.source, token: token.source },
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function pickWithSource(flag, env, file) {
|
|
33
|
+
if (typeof flag === 'string' && flag !== '')
|
|
34
|
+
return { value: flag, source: 'flag' };
|
|
35
|
+
if (typeof env === 'string' && env !== '')
|
|
36
|
+
return { value: env, source: 'env' };
|
|
37
|
+
if (typeof file === 'string' && file !== '')
|
|
38
|
+
return { value: file, source: 'file' };
|
|
39
|
+
return { value: undefined, source: 'unset' };
|
|
40
|
+
}
|
|
41
|
+
async function loadFileConfig(cwd, home, read) {
|
|
42
|
+
const cwdPath = join(cwd, '.kindgirc.json');
|
|
43
|
+
const homePath = join(home, '.kindgi', 'config.json');
|
|
44
|
+
const merged = {};
|
|
45
|
+
for (const path of [homePath, cwdPath]) {
|
|
46
|
+
const raw = await read(path);
|
|
47
|
+
if (raw === null)
|
|
48
|
+
continue;
|
|
49
|
+
const parsed = parseJson(raw, path);
|
|
50
|
+
if (typeof parsed.apiUrl === 'string')
|
|
51
|
+
merged.apiUrl = parsed.apiUrl;
|
|
52
|
+
if (typeof parsed.token === 'string')
|
|
53
|
+
merged.token = parsed.token;
|
|
54
|
+
}
|
|
55
|
+
return merged;
|
|
56
|
+
}
|
|
57
|
+
function parseJson(raw, path) {
|
|
58
|
+
try {
|
|
59
|
+
const obj = JSON.parse(raw);
|
|
60
|
+
if (obj === null || typeof obj !== 'object')
|
|
61
|
+
return {};
|
|
62
|
+
return obj;
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
throw new Error(`Malformed JSON in ${path}: ${err.message}. Delete or repair the file.`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Persist a config file at `~/.kindgi/config.json`. Called by
|
|
70
|
+
* `kindgi auth login`. Merges with any existing file so a partial
|
|
71
|
+
* write does not clobber other keys.
|
|
72
|
+
*/
|
|
73
|
+
export async function saveHomeConfig(patch, home = homedir()) {
|
|
74
|
+
const resolvedHome = home ?? homedir();
|
|
75
|
+
const path = join(resolvedHome, '.kindgi', 'config.json');
|
|
76
|
+
const existing = await defaultReadFile(path);
|
|
77
|
+
const base = existing === null ? {} : JSON.parse(existing);
|
|
78
|
+
const next = { ...base, ...patch };
|
|
79
|
+
await mkdir(dirname(path), { recursive: true });
|
|
80
|
+
await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, 'utf8');
|
|
81
|
+
return path;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { type KindgiClient } from '@kindgi/client';
|
|
2
|
+
import type { BuildRunners } from './build/runners.js';
|
|
3
|
+
import type { RegistryAuthSeam } from './commands/auth.js';
|
|
4
|
+
import type { EnvInitInputSeam } from './commands/env.js';
|
|
5
|
+
import type { SecretsValueInputSeam } from './commands/secrets.js';
|
|
6
|
+
import type { ResolvedConfig } from './config.js';
|
|
7
|
+
import type { DeployRunners } from './deploy/runners.js';
|
|
8
|
+
import type { DevRunners } from './dev/runners.js';
|
|
9
|
+
import type { EnvRunners } from './env/runners.js';
|
|
10
|
+
import type { KeyRunners } from './key/runners.js';
|
|
11
|
+
import type { GlobalFlags } from './parse.js';
|
|
12
|
+
import type { TestRunners } from './test/runners.js';
|
|
13
|
+
/**
|
|
14
|
+
* Loader hook the `kindgi build` command consumes when reading
|
|
15
|
+
* `kindgi.config.ts`. Production leaves this undefined; the command
|
|
16
|
+
* falls back to a plain dynamic `import()` (Node 22
|
|
17
|
+
* `--experimental-strip-types` handles the `.ts` variant natively).
|
|
18
|
+
* Tests inject an in-memory function to bypass the filesystem.
|
|
19
|
+
*/
|
|
20
|
+
export type BuildConfigLoader = (packDir: string) => Promise<unknown>;
|
|
21
|
+
/**
|
|
22
|
+
* Runtime context passed to every command handler. Holds the resolved
|
|
23
|
+
* config, the SDK client (lazily created), and the effective output
|
|
24
|
+
* format.
|
|
25
|
+
*/
|
|
26
|
+
export interface CommandContext {
|
|
27
|
+
readonly globals: GlobalFlags;
|
|
28
|
+
readonly positionals: readonly string[];
|
|
29
|
+
readonly options: Readonly<Record<string, string | boolean | undefined>>;
|
|
30
|
+
readonly config: ResolvedConfig;
|
|
31
|
+
/** Create an SDK client using the resolved config. Throws if apiUrl / token are missing. */
|
|
32
|
+
readonly client: () => KindgiClient;
|
|
33
|
+
/** Create an SDK client bound to arbitrary apiUrl + token (used by `kindgi dev`). */
|
|
34
|
+
readonly clientFor: (apiUrl: string, token: string) => KindgiClient;
|
|
35
|
+
/** Base URL, if resolved — used by non-SDK direct fetch (health, whoami). */
|
|
36
|
+
readonly apiUrl: () => string;
|
|
37
|
+
/** Bearer token, if resolved — used by non-SDK direct fetch. */
|
|
38
|
+
readonly token: () => string;
|
|
39
|
+
/** fetch impl (injectable for tests). */
|
|
40
|
+
readonly fetch: typeof fetch;
|
|
41
|
+
/** Home directory used by `auth login` when persisting `~/.kindgi/config.json`. */
|
|
42
|
+
readonly home: string | undefined;
|
|
43
|
+
/** Working directory (injectable for tests; defaults to process.cwd()). */
|
|
44
|
+
readonly cwd: string;
|
|
45
|
+
/**
|
|
46
|
+
* Environment variables the CLI was booted with. Populated verbatim
|
|
47
|
+
* from `runCli({ env })`; production callers pass `process.env`.
|
|
48
|
+
* Consumed by commands (e.g. `kindgi dev`'s `KINDGI_DATABASE_URL`
|
|
49
|
+
* fallback) so tests can drive the resolution deterministically.
|
|
50
|
+
*/
|
|
51
|
+
readonly env: Readonly<Record<string, string | undefined>>;
|
|
52
|
+
/**
|
|
53
|
+
* Injectable dev-mode runners (api-server factory + indexer + watcher).
|
|
54
|
+
* Present iff the CLI was booted via `runCli({ devRunners })` — used
|
|
55
|
+
* exclusively by `kindgi dev` so tests can hand in mock server /
|
|
56
|
+
* indexer / watcher without touching Postgres or the filesystem.
|
|
57
|
+
* Production callers leave this undefined; `kindgi dev` then wires
|
|
58
|
+
* the real runtime container / `runIndexer` / `fs.watch` from
|
|
59
|
+
* `dev/defaults.ts`.
|
|
60
|
+
*/
|
|
61
|
+
readonly devRunners: DevRunners | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Optional signal that terminates long-lived commands (currently just
|
|
64
|
+
* `kindgi dev` — the watch loop). Tests pass an
|
|
65
|
+
* `AbortController.signal` so a graceful shutdown path can be
|
|
66
|
+
* exercised without process signals. Production callers wire this to
|
|
67
|
+
* SIGINT/SIGTERM in `main.ts`.
|
|
68
|
+
*/
|
|
69
|
+
readonly stopSignal: AbortSignal | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Injectable build-pipeline seams used exclusively by `kindgi
|
|
72
|
+
* build`. Absent for every other command. Tests hand
|
|
73
|
+
* in fixture implementations so the pipeline exercises without
|
|
74
|
+
* spawning real esbuild, real tar, real fetch, or docker; production
|
|
75
|
+
* lazy-loads `build/defaults.ts` on dispatch.
|
|
76
|
+
*/
|
|
77
|
+
readonly buildRunners: BuildRunners | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Optional loader hook for `kindgi.config.ts`. Tests inject an
|
|
80
|
+
* in-memory function; production leaves this undefined and the
|
|
81
|
+
* command falls back to a plain dynamic `import()`.
|
|
82
|
+
*/
|
|
83
|
+
readonly buildConfigLoader: ((packDir: string) => Promise<{
|
|
84
|
+
readonly [k: string]: unknown;
|
|
85
|
+
}>) | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Injectable deploy-pipeline seams used exclusively by `kindgi
|
|
88
|
+
* deploy`. Absent for every other command. Tests hand
|
|
89
|
+
* in fixture implementations so the pipeline exercises without
|
|
90
|
+
* reading a real envelope file or hitting a live api-server;
|
|
91
|
+
* production lazy-loads `deploy/defaults.ts` on dispatch.
|
|
92
|
+
*/
|
|
93
|
+
readonly deployRunners: DeployRunners | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Injectable seams for `kindgi test`. Absent for
|
|
96
|
+
* every other command. Tests hand in fixture implementations so the
|
|
97
|
+
* command flow exercises without spawning real vitest; production
|
|
98
|
+
* lazy-loads `test/defaults.ts` on dispatch.
|
|
99
|
+
*/
|
|
100
|
+
readonly testRunners: TestRunners | undefined;
|
|
101
|
+
/**
|
|
102
|
+
* Injectable filesystem seams for `kindgi env`.
|
|
103
|
+
* Absent for every other command. Tests substitute in-memory stubs
|
|
104
|
+
* so `.env.<envName>` reads/writes never touch disk; production
|
|
105
|
+
* lazy-loads `env/defaults.ts` on dispatch.
|
|
106
|
+
*/
|
|
107
|
+
readonly envRunners: EnvRunners | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Injectable seams for `kindgi key`. Absent for
|
|
110
|
+
* every other command. Tests substitute stubs so the crypto +
|
|
111
|
+
* filesystem paths under `~/.kindgi/keys/` never touch disk; production
|
|
112
|
+
* lazy-loads `key/defaults.ts` on dispatch.
|
|
113
|
+
*/
|
|
114
|
+
readonly keyRunners: KeyRunners | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* Injectable value-input seams for `kindgi secrets set` /
|
|
117
|
+
* `rotate`. Tests pass fixtures so the TTY prompt / stdin reader /
|
|
118
|
+
* file reader / fs.stat mode check exercise without a real terminal
|
|
119
|
+
* or disk. Production leaves this undefined; the command falls back
|
|
120
|
+
* to real `readline` / `process.stdin` / `node:fs`.
|
|
121
|
+
*/
|
|
122
|
+
readonly secretsInputSeam: SecretsValueInputSeam | undefined;
|
|
123
|
+
/**
|
|
124
|
+
* Injectable prompt / TTY-check seam for `kindgi env init`. Tests
|
|
125
|
+
* inject a fixture `promptChoice`; production leaves undefined and
|
|
126
|
+
* `env init` spins up a real `readline.Interface`.
|
|
127
|
+
*/
|
|
128
|
+
readonly envInitInputSeam: EnvInitInputSeam | undefined;
|
|
129
|
+
/**
|
|
130
|
+
* Injectable seams for `kindgi auth registry`: the `docker` runner, the
|
|
131
|
+
* stdin reader, the hidden prompt and the image checked. Tests pass
|
|
132
|
+
* fixtures so the login and the check run without Docker or a
|
|
133
|
+
* terminal; production leaves this undefined (the real ones).
|
|
134
|
+
*/
|
|
135
|
+
readonly registryAuthSeam: RegistryAuthSeam | undefined;
|
|
136
|
+
}
|
|
137
|
+
export interface BuildContextInputs {
|
|
138
|
+
readonly globals: GlobalFlags;
|
|
139
|
+
readonly positionals: readonly string[];
|
|
140
|
+
readonly options: Readonly<Record<string, string | boolean | undefined>>;
|
|
141
|
+
readonly config: ResolvedConfig;
|
|
142
|
+
readonly fetchImpl?: typeof fetch;
|
|
143
|
+
readonly clientFactory?: (apiUrl: string, token: string) => KindgiClient;
|
|
144
|
+
readonly home?: string;
|
|
145
|
+
readonly cwd?: string;
|
|
146
|
+
readonly env?: Readonly<Record<string, string | undefined>>;
|
|
147
|
+
readonly devRunners?: DevRunners;
|
|
148
|
+
readonly stopSignal?: AbortSignal;
|
|
149
|
+
readonly buildRunners?: BuildRunners;
|
|
150
|
+
readonly buildConfigLoader?: (packDir: string) => Promise<{
|
|
151
|
+
readonly [k: string]: unknown;
|
|
152
|
+
}>;
|
|
153
|
+
readonly deployRunners?: DeployRunners;
|
|
154
|
+
readonly testRunners?: TestRunners;
|
|
155
|
+
readonly envRunners?: EnvRunners;
|
|
156
|
+
readonly keyRunners?: KeyRunners;
|
|
157
|
+
readonly secretsInputSeam?: SecretsValueInputSeam;
|
|
158
|
+
readonly envInitInputSeam?: EnvInitInputSeam;
|
|
159
|
+
readonly registryAuthSeam?: RegistryAuthSeam;
|
|
160
|
+
}
|
|
161
|
+
export declare function buildContext(inputs: BuildContextInputs): CommandContext;
|
|
162
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/context.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
import { createClient } from '@kindgi/client';
|
|
4
|
+
export function buildContext(inputs) {
|
|
5
|
+
const apiUrl = () => {
|
|
6
|
+
if (inputs.config.apiUrl === undefined) {
|
|
7
|
+
throw new Error('API URL not configured. Set KINDGI_API_URL, pass --url=..., or run `kindgi auth login`.');
|
|
8
|
+
}
|
|
9
|
+
return inputs.config.apiUrl;
|
|
10
|
+
};
|
|
11
|
+
const token = () => {
|
|
12
|
+
if (inputs.config.token === undefined) {
|
|
13
|
+
throw new Error('API token not configured. Set KINDGI_API_TOKEN, pass --token=..., or run `kindgi auth login`.');
|
|
14
|
+
}
|
|
15
|
+
return inputs.config.token;
|
|
16
|
+
};
|
|
17
|
+
const factory = inputs.clientFactory ??
|
|
18
|
+
((url, tok) => createClient({ apiUrl: url, auth: { kind: 'apiToken', token: tok } }));
|
|
19
|
+
return {
|
|
20
|
+
globals: inputs.globals,
|
|
21
|
+
positionals: inputs.positionals,
|
|
22
|
+
options: inputs.options,
|
|
23
|
+
config: inputs.config,
|
|
24
|
+
client: () => factory(apiUrl(), token()),
|
|
25
|
+
clientFor: (url, tok) => factory(url, tok),
|
|
26
|
+
apiUrl,
|
|
27
|
+
token,
|
|
28
|
+
fetch: inputs.fetchImpl ?? fetch,
|
|
29
|
+
home: inputs.home,
|
|
30
|
+
cwd: inputs.cwd ?? process.cwd(),
|
|
31
|
+
env: inputs.env ?? {},
|
|
32
|
+
devRunners: inputs.devRunners,
|
|
33
|
+
stopSignal: inputs.stopSignal,
|
|
34
|
+
buildRunners: inputs.buildRunners,
|
|
35
|
+
buildConfigLoader: inputs.buildConfigLoader,
|
|
36
|
+
deployRunners: inputs.deployRunners,
|
|
37
|
+
testRunners: inputs.testRunners,
|
|
38
|
+
envRunners: inputs.envRunners,
|
|
39
|
+
keyRunners: inputs.keyRunners,
|
|
40
|
+
secretsInputSeam: inputs.secretsInputSeam,
|
|
41
|
+
envInitInputSeam: inputs.envInitInputSeam,
|
|
42
|
+
registryAuthSeam: inputs.registryAuthSeam,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAmKjE,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,MAAM,MAAM,GAAG,GAAW,EAAE;QAC1B,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,GAAW,EAAE;QACzB,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,OAAO,GACX,MAAM,CAAC,aAAa;QACpB,CAAC,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;QACxC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QAC1C,MAAM;QACN,KAAK;QACL,KAAK,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;QAChC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;QAChC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DeployRunners } from './runners.js';
|
|
2
|
+
/**
|
|
3
|
+
* Production `DeployRunners`. `runBuild` is intentionally OMITTED here
|
|
4
|
+
* — the deploy command re-uses its own already-parsed
|
|
5
|
+
* `ctx.buildRunners` + calls into `runBuild` from `commands/build.ts`
|
|
6
|
+
* directly (importing the runner would create a cycle). Instead the
|
|
7
|
+
* command reaches for `ctx.buildRunners`; production wires
|
|
8
|
+
* `buildRunners` via `main.ts`'s existing lazy loader.
|
|
9
|
+
*
|
|
10
|
+
* This keeps the deploy path production-wired end-to-end without
|
|
11
|
+
* duplicating the build-runners production loader here.
|
|
12
|
+
*/
|
|
13
|
+
export declare const REAL_DEPLOY_RUNNERS: DeployRunners;
|
|
14
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/deploy/defaults.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,aASjC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* Production wiring for the deploy runners. Lazy-loaded from
|
|
5
|
+
* `main.ts` ONLY when the dispatched command is `deploy` — the
|
|
6
|
+
* `runBuild` runner pulls in the full build defaults tree (esbuild
|
|
7
|
+
* / tar / docker / crypto). Commands that never invoke deploy don't
|
|
8
|
+
* pay that transitive load.
|
|
9
|
+
*
|
|
10
|
+
* The `runBuild` inline-build path is best-effort: if it fails, the
|
|
11
|
+
* error is surfaced via `RunBuildResult.kind = 'err'` — the deploy
|
|
12
|
+
* command translates that into an actionable stderr message.
|
|
13
|
+
*/
|
|
14
|
+
import { loadEnvelopeReal } from './envelope-loader.js';
|
|
15
|
+
import { postDeploymentReal, syncSecretsReal } from './post.js';
|
|
16
|
+
/**
|
|
17
|
+
* Production `DeployRunners`. `runBuild` is intentionally OMITTED here
|
|
18
|
+
* — the deploy command re-uses its own already-parsed
|
|
19
|
+
* `ctx.buildRunners` + calls into `runBuild` from `commands/build.ts`
|
|
20
|
+
* directly (importing the runner would create a cycle). Instead the
|
|
21
|
+
* command reaches for `ctx.buildRunners`; production wires
|
|
22
|
+
* `buildRunners` via `main.ts`'s existing lazy loader.
|
|
23
|
+
*
|
|
24
|
+
* This keeps the deploy path production-wired end-to-end without
|
|
25
|
+
* duplicating the build-runners production loader here.
|
|
26
|
+
*/
|
|
27
|
+
export const REAL_DEPLOY_RUNNERS = {
|
|
28
|
+
loadEnvelope: loadEnvelopeReal,
|
|
29
|
+
postDeployment: postDeploymentReal,
|
|
30
|
+
// Production sync runner. Only invoked when
|
|
31
|
+
// `--sync-secrets` is passed AND `.env.<envName>` carries entries.
|
|
32
|
+
syncSecrets: syncSecretsReal,
|
|
33
|
+
// runBuild deliberately omitted — the command composes it from
|
|
34
|
+
// `ctx.buildRunners` + the exported `runBuild` from
|
|
35
|
+
// `commands/build.ts`.
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/deploy/defaults.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGhE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,kBAAkB;IAClC,4CAA4C;IAC5C,mEAAmE;IACnE,WAAW,EAAE,eAAe;IAC5B,+DAA+D;IAC/D,oDAAoD;IACpD,uBAAuB;CACxB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type DeployEnvelope } from '../build/envelope.js';
|
|
2
|
+
import type { LoadEnvelopeResult } from './runners.js';
|
|
3
|
+
/**
|
|
4
|
+
* Structural check + schema pin. On success returns the parsed
|
|
5
|
+
* envelope; on failure returns a typed error the command surfaces to
|
|
6
|
+
* the developer as an actionable message.
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateEnvelopeStructure(raw: unknown, path: string): LoadEnvelopeResult;
|
|
9
|
+
/**
|
|
10
|
+
* Read the envelope from disk + validate. Returns typed errors for
|
|
11
|
+
* missing-file / bad-JSON / schema-mismatch cases — the command
|
|
12
|
+
* translates each to an actionable stderr message.
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadEnvelopeReal(opts: {
|
|
15
|
+
readonly path: string;
|
|
16
|
+
}): Promise<LoadEnvelopeResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Check whether an envelope is signed. `kindgi deploy` refuses to
|
|
19
|
+
* POST an unsigned envelope unless `--dry-run` is set — the server
|
|
20
|
+
* would reject anyway (400 signature-invalid), so we fail fast with a
|
|
21
|
+
* clearer message.
|
|
22
|
+
*/
|
|
23
|
+
export declare function isEnvelopeSigned(envelope: DeployEnvelope): boolean;
|
|
24
|
+
//# sourceMappingURL=envelope-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope-loader.d.ts","sourceRoot":"","sources":["../../src/deploy/envelope-loader.ts"],"names":[],"mappings":"AAkBA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAwExF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgC9B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CASlE"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* Deploy envelope loader — reads `deploy-envelope.json` (emitted by
|
|
5
|
+
* `kindgi build`) from disk and structurally
|
|
6
|
+
* validates it. The signature itself was computed at build time; we do
|
|
7
|
+
* NOT re-sign here. This loader's job is to catch corruption + partial
|
|
8
|
+
* writes + the "someone hand-edited the file" class of bugs before we
|
|
9
|
+
* put anything on the wire.
|
|
10
|
+
*
|
|
11
|
+
* The result feeds directly into `packages/cli/src/deploy/post.ts`
|
|
12
|
+
* (which strips `tenantId` for the wire body) + into the summary/
|
|
13
|
+
* banner code paths.
|
|
14
|
+
*/
|
|
15
|
+
import { readFile } from 'node:fs/promises';
|
|
16
|
+
import { DEPLOY_ENVELOPE_SCHEMA } from '../build/envelope.js';
|
|
17
|
+
/**
|
|
18
|
+
* Structural check + schema pin. On success returns the parsed
|
|
19
|
+
* envelope; on failure returns a typed error the command surfaces to
|
|
20
|
+
* the developer as an actionable message.
|
|
21
|
+
*/
|
|
22
|
+
export function validateEnvelopeStructure(raw, path) {
|
|
23
|
+
if (raw === null || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
24
|
+
return {
|
|
25
|
+
kind: 'err',
|
|
26
|
+
code: 'envelope-schema-mismatch',
|
|
27
|
+
message: 'deploy-envelope.json must be a JSON object.',
|
|
28
|
+
path,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const obj = raw;
|
|
32
|
+
if (obj.$schema !== DEPLOY_ENVELOPE_SCHEMA) {
|
|
33
|
+
return {
|
|
34
|
+
kind: 'err',
|
|
35
|
+
code: 'envelope-schema-mismatch',
|
|
36
|
+
message: `deploy-envelope.json $schema mismatch: expected "${DEPLOY_ENVELOPE_SCHEMA}", got ` +
|
|
37
|
+
`"${String(obj.$schema)}". Re-run \`kindgi build\` to regenerate.`,
|
|
38
|
+
path,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const requiredStrings = [
|
|
42
|
+
'imageRef',
|
|
43
|
+
'imageDigest',
|
|
44
|
+
'artifactVersion',
|
|
45
|
+
'indexHash',
|
|
46
|
+
'tenantId',
|
|
47
|
+
'publishedAt',
|
|
48
|
+
];
|
|
49
|
+
for (const field of requiredStrings) {
|
|
50
|
+
const value = obj[field];
|
|
51
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
52
|
+
return {
|
|
53
|
+
kind: 'err',
|
|
54
|
+
code: 'envelope-schema-mismatch',
|
|
55
|
+
message: `deploy-envelope.json is missing required field "${String(field)}" (or the value is empty). Re-run \`kindgi build\` to regenerate.`,
|
|
56
|
+
path,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const index = obj.index;
|
|
61
|
+
if (index === null || typeof index !== 'object' || Array.isArray(index)) {
|
|
62
|
+
return {
|
|
63
|
+
kind: 'err',
|
|
64
|
+
code: 'envelope-schema-mismatch',
|
|
65
|
+
message: 'deploy-envelope.json `index` must be an object (verbatim /app/index.json).',
|
|
66
|
+
path,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// Optional signature triplet: either all three are present, or all
|
|
70
|
+
// three are absent. Half-signed envelopes are corruption.
|
|
71
|
+
const hasSig = typeof obj.signature === 'string' && obj.signature.length > 0;
|
|
72
|
+
const hasKeyId = typeof obj.signerKeyId === 'string' && obj.signerKeyId.length > 0;
|
|
73
|
+
const hasPubKey = typeof obj.signerPublicKey === 'string' && obj.signerPublicKey.length > 0;
|
|
74
|
+
const sigCount = Number(hasSig) + Number(hasKeyId) + Number(hasPubKey);
|
|
75
|
+
if (sigCount !== 0 && sigCount !== 3) {
|
|
76
|
+
return {
|
|
77
|
+
kind: 'err',
|
|
78
|
+
code: 'envelope-schema-mismatch',
|
|
79
|
+
message: 'deploy-envelope.json has a partial signature triplet — expected all ' +
|
|
80
|
+
'three of `signature` / `signerKeyId` / `signerPublicKey`, or none of ' +
|
|
81
|
+
'them. Re-run `kindgi build` (drop `--skip-sign` if you intended to sign).',
|
|
82
|
+
path,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return { kind: 'ok', envelope: obj };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Read the envelope from disk + validate. Returns typed errors for
|
|
89
|
+
* missing-file / bad-JSON / schema-mismatch cases — the command
|
|
90
|
+
* translates each to an actionable stderr message.
|
|
91
|
+
*/
|
|
92
|
+
export async function loadEnvelopeReal(opts) {
|
|
93
|
+
let raw;
|
|
94
|
+
try {
|
|
95
|
+
raw = await readFile(opts.path, 'utf8');
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
if (err.code === 'ENOENT') {
|
|
99
|
+
return {
|
|
100
|
+
kind: 'err',
|
|
101
|
+
code: 'envelope-not-found',
|
|
102
|
+
message: `deploy-envelope.json not found at ${opts.path}.`,
|
|
103
|
+
path: opts.path,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
kind: 'err',
|
|
108
|
+
code: 'envelope-not-found',
|
|
109
|
+
message: `Failed to read ${opts.path}: ${err.message}`,
|
|
110
|
+
path: opts.path,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
let parsed;
|
|
114
|
+
try {
|
|
115
|
+
parsed = JSON.parse(raw);
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
return {
|
|
119
|
+
kind: 'err',
|
|
120
|
+
code: 'envelope-invalid-json',
|
|
121
|
+
message: `deploy-envelope.json is not valid JSON: ${err.message}`,
|
|
122
|
+
path: opts.path,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
return validateEnvelopeStructure(parsed, opts.path);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Check whether an envelope is signed. `kindgi deploy` refuses to
|
|
129
|
+
* POST an unsigned envelope unless `--dry-run` is set — the server
|
|
130
|
+
* would reject anyway (400 signature-invalid), so we fail fast with a
|
|
131
|
+
* clearer message.
|
|
132
|
+
*/
|
|
133
|
+
export function isEnvelopeSigned(envelope) {
|
|
134
|
+
return (typeof envelope.signature === 'string' &&
|
|
135
|
+
envelope.signature.length > 0 &&
|
|
136
|
+
typeof envelope.signerKeyId === 'string' &&
|
|
137
|
+
envelope.signerKeyId.length > 0 &&
|
|
138
|
+
typeof envelope.signerPublicKey === 'string' &&
|
|
139
|
+
envelope.signerPublicKey.length > 0);
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=envelope-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope-loader.js","sourceRoot":"","sources":["../../src/deploy/envelope-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { DeployEnvelope } from '../build/envelope.js';
|
|
2
|
+
import type { PostDeploymentBody, PostDeploymentOptions, PostDeploymentResult, SyncSecretsBody, SyncSecretsOptions, SyncSecretsResult } from './runners.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build the exact wire body per
|
|
5
|
+
* `packages/api/src/openapi/schemas.ts:3141` — the
|
|
6
|
+
* `DeploymentRegistrationBodySchema`. `tenantId` is deliberately
|
|
7
|
+
* absent (server-derived from the token); the envelope's signature
|
|
8
|
+
* covers it via re-canonicalisation on the server.
|
|
9
|
+
*
|
|
10
|
+
* `$schema` (envelope-side namespace pin) and `buildLogsUrl` (build-
|
|
11
|
+
* server URL, only useful for humans debugging failed builds) are
|
|
12
|
+
* client-side metadata — not part of the deployment wire contract.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildPostBody(envelope: DeployEnvelope): PostDeploymentBody;
|
|
15
|
+
/**
|
|
16
|
+
* `sha256:<hex>` over the canonical (sorted-key, no-whitespace) JSON
|
|
17
|
+
* representation of the wire body. Matches the sha256 shape every other hash in the framework uses.
|
|
18
|
+
*
|
|
19
|
+
* The idempotency middleware on `packages/api` caches the full HTTP
|
|
20
|
+
* response by `(tenantId, Idempotency-Key)`. Same body → same key →
|
|
21
|
+
* same cached response (201 or 200-replay). Different body + same
|
|
22
|
+
* key → server returns `idempotency-key-conflict`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function deriveIdempotencyKey(body: PostDeploymentBody): string;
|
|
25
|
+
/**
|
|
26
|
+
* Production `postDeployment` runner. Executes the HTTP POST, parses
|
|
27
|
+
* the response, discriminates the outcome. Tests substitute this whole
|
|
28
|
+
* function via `DeployRunners.postDeployment` to keep the wire
|
|
29
|
+
* synthetic.
|
|
30
|
+
*/
|
|
31
|
+
export declare function postDeploymentReal(opts: PostDeploymentOptions): Promise<PostDeploymentResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Derive the Idempotency-Key for a sync-secrets POST. Same shape as
|
|
34
|
+
* `deriveIdempotencyKey` for deployments (sha256 of canonical body) —
|
|
35
|
+
* so a re-run of the same deploy with the same `.env.<envName>` sends
|
|
36
|
+
* the same key and the server middleware caches the response.
|
|
37
|
+
*/
|
|
38
|
+
export declare function deriveSyncSecretsIdempotencyKey(deploymentId: string, body: SyncSecretsBody): string;
|
|
39
|
+
/**
|
|
40
|
+
* Production `syncSecrets` runner. Executes
|
|
41
|
+
* `POST /v1/deployments/:deploymentId/secrets` — the wire body carries
|
|
42
|
+
* plaintext `value` entries at the developer boundary; the server
|
|
43
|
+
* responds with references only. Errors surface as `wire-error` (with
|
|
44
|
+
* the server's error code preserved for the CLI banner) or
|
|
45
|
+
* `transport-error`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function syncSecretsReal(opts: SyncSecretsOptions): Promise<SyncSecretsResult>;
|
|
48
|
+
//# sourceMappingURL=post.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../src/deploy/post.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAEV,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,kBAAkB,CAuB1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAIrE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CA2D/B;AAaD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,eAAe,GACpB,MAAM,CAIR;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgD1F"}
|