@kindgi/cli 0.0.0-bootstrap.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +690 -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 +45 -0
- package/dist/build/bundle.d.ts.map +1 -0
- package/dist/build/bundle.js +121 -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 +196 -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 +586 -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 +48 -0
- package/dist/build/host-install.d.ts.map +1 -0
- package/dist/build/host-install.js +375 -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 +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +88 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/build.d.ts +39 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +872 -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 +44 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +1032 -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 +37 -0
- package/dist/commands/helpers.d.ts.map +1 -0
- package/dist/commands/helpers.js +93 -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 +455 -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 +202 -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 +221 -0
- package/dist/commands/runs.js.map +1 -0
- package/dist/commands/secrets.d.ts +21 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +750 -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 +153 -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 +17 -0
- package/dist/commands/unwired.d.ts.map +1 -0
- package/dist/commands/unwired.js +41 -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 +153 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +44 -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 +8 -0
- package/dist/dev/bundler.d.ts.map +1 -0
- package/dist/dev/bundler.js +154 -0
- package/dist/dev/bundler.js.map +1 -0
- package/dist/dev/defaults.d.ts +138 -0
- package/dist/dev/defaults.d.ts.map +1 -0
- package/dist/dev/defaults.js +691 -0
- package/dist/dev/defaults.js.map +1 -0
- package/dist/dev/docker-compose.dev.yml +56 -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 +32 -0
- package/dist/dev/pack-service.d.ts.map +1 -0
- package/dist/dev/pack-service.js +188 -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/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 +287 -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 +62 -0
- package/dist/dev/runtime-container.d.ts.map +1 -0
- package/dist/dev/runtime-container.js +164 -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 +13 -0
- package/dist/dev/runtime-image.d.ts.map +1 -0
- package/dist/dev/runtime-image.js +15 -0
- package/dist/dev/runtime-image.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 +107 -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 +74 -0
- package/dist/init/augment-scaffolder.d.ts.map +1 -0
- package/dist/init/augment-scaffolder.js +459 -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/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 +16 -0
- package/dist/init/template-files.d.ts.map +1 -0
- package/dist/init/template-files.js +38 -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 +106 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +198 -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 +82 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +99 -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 +253 -0
- package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +299 -0
- package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +291 -0
- package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +289 -0
- package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +704 -0
- package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +288 -0
- package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +211 -0
- package/dist/sdk-skills/kindgi-getting-started/SKILL.md +181 -0
- package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +205 -0
- package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +322 -0
- package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +173 -0
- package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +299 -0
- package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +240 -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/.gitignore +8 -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/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 +6 -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/.gitignore +9 -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/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/.gitignore +8 -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/guardrails/response-not-empty/index.ts.tmpl +50 -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 +6 -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/test/defaults.d.ts +3 -0
- package/dist/test/defaults.d.ts.map +1 -0
- package/dist/test/defaults.js +104 -0
- package/dist/test/defaults.js.map +1 -0
- package/dist/test/runners.d.ts +60 -0
- package/dist/test/runners.d.ts.map +1 -0
- package/dist/test/runners.js +4 -0
- package/dist/test/runners.js.map +1 -0
- package/dist/version-info.d.ts +9 -0
- package/dist/version-info.d.ts.map +1 -0
- package/dist/version-info.js +27 -0
- package/dist/version-info.js.map +1 -0
- package/dist/write-fully.d.ts +13 -0
- package/dist/write-fully.d.ts.map +1 -0
- package/dist/write-fully.js +17 -0
- package/dist/write-fully.js.map +1 -0
- package/package.json +63 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/dev/defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# kindgi dev — bundled composition for auto-started local services.
|
|
2
|
+
# Started by `kindgi dev` with `docker compose -p kindgi-dev` (see `startServicesReal`)
|
|
3
|
+
# when docker-compose is detected AND no KINDGI_DATABASE_URL is set.
|
|
4
|
+
#
|
|
5
|
+
# Every container is namespaced under kindgi-dev-* so nothing collides with
|
|
6
|
+
# other local docker-compose stacks. Only Postgres:
|
|
7
|
+
# OpenFGA and MinIO were started and never wired (authz is off in dev), so
|
|
8
|
+
# they're not started until dev wires them. The Kindgi runtime itself runs
|
|
9
|
+
# as its own container, one per pack (`runtime-container.ts`).
|
|
10
|
+
#
|
|
11
|
+
# ## State persistence (2026-09-25)
|
|
12
|
+
#
|
|
13
|
+
# A named volume carries the Postgres data across `kindgi dev` restarts —
|
|
14
|
+
# providers a user registers via `kindgi providers register` survive
|
|
15
|
+
# reboots. `kindgi dev --reset` (which runs `docker compose down -v`)
|
|
16
|
+
# removes it for a true clean slate.
|
|
17
|
+
#
|
|
18
|
+
# Trade-off: migrations no longer re-run from scratch on every boot
|
|
19
|
+
# (drizzle is idempotent — only new migrations apply), so migration-path
|
|
20
|
+
# regressions are caught less continuously. Mitigation: run `kindgi dev
|
|
21
|
+
# --reset` before pushing schema changes, and CI runs against a fresh DB.
|
|
22
|
+
|
|
23
|
+
services:
|
|
24
|
+
postgres:
|
|
25
|
+
image: pgvector/pgvector:pg16
|
|
26
|
+
container_name: kindgi-dev_postgres
|
|
27
|
+
environment:
|
|
28
|
+
POSTGRES_USER: kindgi
|
|
29
|
+
POSTGRES_PASSWORD: kindgi_dev_only
|
|
30
|
+
POSTGRES_DB: kindgi
|
|
31
|
+
POSTGRES_INITDB_ARGS: "--data-checksums"
|
|
32
|
+
command:
|
|
33
|
+
- "postgres"
|
|
34
|
+
- "-c"
|
|
35
|
+
- "max_connections=200"
|
|
36
|
+
- "-c"
|
|
37
|
+
- "shared_buffers=256MB"
|
|
38
|
+
- "-c"
|
|
39
|
+
- "wal_level=logical"
|
|
40
|
+
volumes:
|
|
41
|
+
- kindgi-dev-postgres-data:/var/lib/postgresql/data
|
|
42
|
+
ports:
|
|
43
|
+
- "5432"
|
|
44
|
+
healthcheck:
|
|
45
|
+
test: ["CMD-SHELL", "pg_isready -U kindgi -d kindgi"]
|
|
46
|
+
interval: 5s
|
|
47
|
+
timeout: 5s
|
|
48
|
+
retries: 10
|
|
49
|
+
|
|
50
|
+
networks:
|
|
51
|
+
default:
|
|
52
|
+
name: kindgi-dev
|
|
53
|
+
|
|
54
|
+
volumes:
|
|
55
|
+
kindgi-dev-postgres-data:
|
|
56
|
+
name: kindgi-dev_postgres-data
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-child.d.ts","sourceRoot":"","sources":["../../src/dev/index-child.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* The indexer, as a child process of `kindgi dev`:
|
|
5
|
+
*
|
|
6
|
+
* node index-child.js --pack <dir> --out <index.json> --bundle-map <map.json>
|
|
7
|
+
*
|
|
8
|
+
* It runs with the pack's environment (not the CLI's), so modules that
|
|
9
|
+
* read env when imported behave as they will in the pack service, and
|
|
10
|
+
* each run is a fresh process — no module cache carried between
|
|
11
|
+
* generations. Each primitive's source file is imported as its bundle
|
|
12
|
+
* (the map: source path → bundle path, relative to the pack root), while
|
|
13
|
+
* the index records the source path.
|
|
14
|
+
*
|
|
15
|
+
* Prints one JSON line: the indexer's outcome. Self-contained (no
|
|
16
|
+
* relative imports) so it also runs from source under Node's type
|
|
17
|
+
* stripping.
|
|
18
|
+
*/
|
|
19
|
+
import { readFile } from 'node:fs/promises';
|
|
20
|
+
import { isAbsolute, relative, resolve, sep } from 'node:path';
|
|
21
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
22
|
+
import { runIndexer } from '@kindgi/handler-runtime';
|
|
23
|
+
function arg(name) {
|
|
24
|
+
const at = process.argv.indexOf(name);
|
|
25
|
+
const value = at >= 0 ? process.argv[at + 1] : undefined;
|
|
26
|
+
if (value === undefined)
|
|
27
|
+
throw new Error(`index-child: ${name} is required`);
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
async function main() {
|
|
31
|
+
const packDir = resolve(arg('--pack'));
|
|
32
|
+
const outputPath = resolve(arg('--out'));
|
|
33
|
+
const bundleMap = JSON.parse(await readFile(arg('--bundle-map'), 'utf8'));
|
|
34
|
+
const outcome = await runIndexer({
|
|
35
|
+
packDir,
|
|
36
|
+
outputPath,
|
|
37
|
+
importModule: (fileUrl) => {
|
|
38
|
+
const source = relative(packDir, fileURLToPath(fileUrl)).split(sep).join('/');
|
|
39
|
+
const bundle = bundleMap[source];
|
|
40
|
+
if (bundle === undefined)
|
|
41
|
+
return import(fileUrl);
|
|
42
|
+
const abs = isAbsolute(bundle) ? bundle : resolve(packDir, bundle);
|
|
43
|
+
return import(pathToFileURL(abs).href);
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
process.stdout.write(`${JSON.stringify(outcome)}\n`);
|
|
47
|
+
}
|
|
48
|
+
main().catch((cause) => {
|
|
49
|
+
const message = cause instanceof Error ? (cause.stack ?? cause.message) : String(cause);
|
|
50
|
+
process.stdout.write(`${JSON.stringify({ kind: 'err', error: { code: 'index-child-failed', message } })}\n`);
|
|
51
|
+
process.exitCode = 1;
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=index-child.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-child.js","sourceRoot":"","sources":["../../src/dev/index-child.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAGvE,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC;QAC/B,OAAO;QACP,UAAU;QACV,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CACvF,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { PackLanguage } from '@kindgi/handler-runtime';
|
|
2
|
+
/** The pack's code: its language, and for Python the interpreter (an argv prefix). */
|
|
3
|
+
export type PackCode = {
|
|
4
|
+
readonly language: 'node';
|
|
5
|
+
} | {
|
|
6
|
+
readonly language: 'python';
|
|
7
|
+
readonly python: readonly [string, ...string[]];
|
|
8
|
+
};
|
|
9
|
+
export declare const NODE_PACK_CODE: PackCode;
|
|
10
|
+
type Outcome<T> = {
|
|
11
|
+
readonly kind: 'ok';
|
|
12
|
+
readonly value: T;
|
|
13
|
+
} | {
|
|
14
|
+
readonly kind: 'err';
|
|
15
|
+
readonly message: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* The interpreter that runs a Python pack:
|
|
19
|
+
*
|
|
20
|
+
* 1. `dev.python` in the config — a path, or an argv such as
|
|
21
|
+
* `["uv", "run", "python"]`;
|
|
22
|
+
* 2. the pack's own virtualenv, `.venv/bin/python`;
|
|
23
|
+
* 3. `python3` on `PATH`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolvePackPython(packDir: string, config: Readonly<Record<string, unknown>> | undefined): Promise<Outcome<readonly [string, ...string[]]>>;
|
|
26
|
+
/** The pack code for a language, with the interpreter resolved for Python. */
|
|
27
|
+
export declare function resolvePackCode(language: PackLanguage, packDir: string, config: Readonly<Record<string, unknown>> | undefined): Promise<Outcome<PackCode>>;
|
|
28
|
+
/**
|
|
29
|
+
* Check the pack's Python can run pack code (`import kindgi.pack`), with the
|
|
30
|
+
* pack's environment and from the pack's directory — so a missing
|
|
31
|
+
* virtualenv or package is one clear line at boot instead of an indexer
|
|
32
|
+
* failure.
|
|
33
|
+
*/
|
|
34
|
+
export declare function checkPackPython(python: readonly [string, ...string[]], env: Readonly<Record<string, string>>, packDir?: string): Promise<Outcome<string>>;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=pack-code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-code.d.ts","sourceRoot":"","sources":["../../src/dev/pack-code.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,sFAAsF;AACtF,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC;AAErF,eAAO,MAAM,cAAc,EAAE,QAA+B,CAAC;AAE7D,KAAK,OAAO,CAAC,CAAC,IACV;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC1C;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GACpD,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CA+BlD;AAED,8EAA8E;AAC9E,wBAAsB,eAAe,CACnC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GACpD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAK5B;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EACtC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACrC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAyD1B"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* How `kindgi dev` builds, indexes and runs a pack's code — by its
|
|
5
|
+
* language (`packLanguage` of the pack's config).
|
|
6
|
+
*
|
|
7
|
+
* - node: esbuild bundles, the TypeScript indexer in a Node child, the
|
|
8
|
+
* Node pack service (`@kindgi/handler-runtime`).
|
|
9
|
+
* - python: no bundling, `python -m kindgi.pack index` and
|
|
10
|
+
* `python -m kindgi.pack serve` with the pack's own interpreter.
|
|
11
|
+
*
|
|
12
|
+
* Both run under the pack's environment (`devPackEnv`) and behind the same
|
|
13
|
+
* supervisor and front, so the api-server never knows which it is.
|
|
14
|
+
*/
|
|
15
|
+
import { spawn } from 'node:child_process';
|
|
16
|
+
import { access, stat } from 'node:fs/promises';
|
|
17
|
+
import { join } from 'node:path';
|
|
18
|
+
export const NODE_PACK_CODE = { language: 'node' };
|
|
19
|
+
/**
|
|
20
|
+
* The interpreter that runs a Python pack:
|
|
21
|
+
*
|
|
22
|
+
* 1. `dev.python` in the config — a path, or an argv such as
|
|
23
|
+
* `["uv", "run", "python"]`;
|
|
24
|
+
* 2. the pack's own virtualenv, `.venv/bin/python`;
|
|
25
|
+
* 3. `python3` on `PATH`.
|
|
26
|
+
*/
|
|
27
|
+
export async function resolvePackPython(packDir, config) {
|
|
28
|
+
const dev = config?.dev;
|
|
29
|
+
const configured = dev !== null && typeof dev === 'object' ? dev.python : undefined;
|
|
30
|
+
if (configured !== undefined) {
|
|
31
|
+
const argv = typeof configured === 'string' ? [configured] : configured;
|
|
32
|
+
if (!Array.isArray(argv) ||
|
|
33
|
+
argv.length === 0 ||
|
|
34
|
+
!argv.every((part) => typeof part === 'string' && part !== '')) {
|
|
35
|
+
return {
|
|
36
|
+
kind: 'err',
|
|
37
|
+
message: '`dev.python` must be an interpreter path or a non-empty command list (e.g. ["uv", "run", "python"]).',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return { kind: 'ok', value: argv };
|
|
41
|
+
}
|
|
42
|
+
for (const candidate of [
|
|
43
|
+
join(packDir, '.venv', 'bin', 'python'),
|
|
44
|
+
join(packDir, '.venv', 'Scripts', 'python.exe'),
|
|
45
|
+
]) {
|
|
46
|
+
try {
|
|
47
|
+
await access(candidate);
|
|
48
|
+
return { kind: 'ok', value: [candidate] };
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// next
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return { kind: 'ok', value: ['python3'] };
|
|
55
|
+
}
|
|
56
|
+
/** The pack code for a language, with the interpreter resolved for Python. */
|
|
57
|
+
export async function resolvePackCode(language, packDir, config) {
|
|
58
|
+
if (language === 'node')
|
|
59
|
+
return { kind: 'ok', value: NODE_PACK_CODE };
|
|
60
|
+
const python = await resolvePackPython(packDir, config);
|
|
61
|
+
if (python.kind === 'err')
|
|
62
|
+
return python;
|
|
63
|
+
return { kind: 'ok', value: { language: 'python', python: python.value } };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check the pack's Python can run pack code (`import kindgi.pack`), with the
|
|
67
|
+
* pack's environment and from the pack's directory — so a missing
|
|
68
|
+
* virtualenv or package is one clear line at boot instead of an indexer
|
|
69
|
+
* failure.
|
|
70
|
+
*/
|
|
71
|
+
export async function checkPackPython(python, env, packDir) {
|
|
72
|
+
const [program, ...prefix] = python;
|
|
73
|
+
const script = 'import sys, kindgi.pack, kindgi; print(sys.version.split()[0], kindgi.__version__)';
|
|
74
|
+
const { code, stdout, stderr, spawnError } = await new Promise((resolve) => {
|
|
75
|
+
const child = spawn(program, [...prefix, '-c', script], {
|
|
76
|
+
env,
|
|
77
|
+
...(packDir !== undefined && { cwd: packDir }),
|
|
78
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
79
|
+
});
|
|
80
|
+
let out = '';
|
|
81
|
+
let err = '';
|
|
82
|
+
child.stdout.on('data', (chunk) => {
|
|
83
|
+
out += chunk.toString('utf8');
|
|
84
|
+
});
|
|
85
|
+
child.stderr.on('data', (chunk) => {
|
|
86
|
+
err += chunk.toString('utf8');
|
|
87
|
+
});
|
|
88
|
+
child.once('error', (cause) => resolve({ code: null, stdout: out, stderr: err, spawnError: cause.message }));
|
|
89
|
+
child.once('close', (exit) => resolve({ code: exit, stdout: out, stderr: err }));
|
|
90
|
+
});
|
|
91
|
+
const shown = python.join(' ');
|
|
92
|
+
if (spawnError !== undefined) {
|
|
93
|
+
return { kind: 'err', message: `the pack's Python (${shown}) did not start: ${spawnError}` };
|
|
94
|
+
}
|
|
95
|
+
if (code !== 0) {
|
|
96
|
+
const last = stderr.trim().split('\n').pop() ?? '';
|
|
97
|
+
const shadow = packDir === undefined ? undefined : join(packDir, 'kindgi', '__init__.py');
|
|
98
|
+
if (shadow !== undefined && (await isFile(shadow))) {
|
|
99
|
+
return {
|
|
100
|
+
kind: 'err',
|
|
101
|
+
message: [
|
|
102
|
+
`the pack's Python (${shown}) cannot import kindgi: ${last}`,
|
|
103
|
+
` ${shadow} makes the pack's kindgi/ folder a Python package named kindgi, which hides the kindgi SDK.`,
|
|
104
|
+
" Delete that __init__.py — kindgi/ only holds the pack's files; Kindgi imports them itself.",
|
|
105
|
+
].join('\n'),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const lines = [
|
|
109
|
+
`the pack's Python (${shown}) cannot import kindgi: ${last}`,
|
|
110
|
+
" Install the Kindgi Python SDK into the pack's environment (e.g. `uv add kindgi`, or `pip install kindgi`),",
|
|
111
|
+
' or point `dev.python` in [tool.kindgi] at an interpreter that has it.',
|
|
112
|
+
];
|
|
113
|
+
return { kind: 'err', message: lines.join('\n') };
|
|
114
|
+
}
|
|
115
|
+
const [pythonVersion, kindgiVersion] = stdout.trim().split(/\s+/);
|
|
116
|
+
return {
|
|
117
|
+
kind: 'ok',
|
|
118
|
+
value: `Python ${pythonVersion ?? '?'} · kindgi ${kindgiVersion ?? '?'} (${shown})`,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
async function isFile(path) {
|
|
122
|
+
try {
|
|
123
|
+
return (await stat(path)).isFile();
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=pack-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-code.js","sourceRoot":"","sources":["../../src/dev/pack-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** The host variables a pack service inherits from the shell. */
|
|
2
|
+
export declare const PACK_HOST_ENV: readonly string[];
|
|
3
|
+
export interface DevPackEnvInput {
|
|
4
|
+
readonly packDir: string;
|
|
5
|
+
/** `dev.envFiles` from `kindgi.config.ts`; default `.env`, `.env.local`. */
|
|
6
|
+
readonly localEnvFiles?: readonly string[];
|
|
7
|
+
/** The CLI's own environment. */
|
|
8
|
+
readonly hostEnv: Readonly<Record<string, string | undefined>>;
|
|
9
|
+
}
|
|
10
|
+
export declare function devPackEnv(input: DevPackEnvInput): Promise<Record<string, string>>;
|
|
11
|
+
/** The env files whose edits should restart the pack service (absolute paths). */
|
|
12
|
+
export declare function devPackEnvFiles(packDir: string, localEnvFiles?: readonly string[]): readonly string[];
|
|
13
|
+
//# sourceMappingURL=pack-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-env.d.ts","sourceRoot":"","sources":["../../src/dev/pack-env.ts"],"names":[],"mappings":"AAmBA,iEAAiE;AACjE,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAA+B,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CAChE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAYxF;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAChC,SAAS,MAAM,EAAE,CAMnB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* The environment `kindgi dev` gives the pack service — the process
|
|
5
|
+
* that runs the pack's own code. It is what a deployment would give it:
|
|
6
|
+
* the pack's env files (`.env`, `.env.local`, or `dev.envFiles`) without
|
|
7
|
+
* Kindgi's own `KINDGI_*` settings, plus the few host variables a Node
|
|
8
|
+
* process and its tools need to work (`PATH`, `HOME` for cloud CLI
|
|
9
|
+
* credentials, `TMPDIR`). Nothing else from the shell reaches pack code.
|
|
10
|
+
*/
|
|
11
|
+
import { LOCAL_ENV_NAME, packValues, readPackEnv, resolvePackEnvFiles, } from '@kindgi/secrets-dotenv';
|
|
12
|
+
/** The host variables a pack service inherits from the shell. */
|
|
13
|
+
export const PACK_HOST_ENV = ['PATH', 'HOME', 'TMPDIR'];
|
|
14
|
+
export async function devPackEnv(input) {
|
|
15
|
+
const host = {};
|
|
16
|
+
for (const name of PACK_HOST_ENV) {
|
|
17
|
+
const value = input.hostEnv[name];
|
|
18
|
+
if (value !== undefined)
|
|
19
|
+
host[name] = value;
|
|
20
|
+
}
|
|
21
|
+
const files = await readPackEnv({
|
|
22
|
+
packDir: input.packDir,
|
|
23
|
+
envName: LOCAL_ENV_NAME,
|
|
24
|
+
...(input.localEnvFiles !== undefined && { localEnvFiles: input.localEnvFiles }),
|
|
25
|
+
});
|
|
26
|
+
return { ...host, ...packValues(files.values), NODE_ENV: 'development' };
|
|
27
|
+
}
|
|
28
|
+
/** The env files whose edits should restart the pack service (absolute paths). */
|
|
29
|
+
export function devPackEnvFiles(packDir, localEnvFiles) {
|
|
30
|
+
return resolvePackEnvFiles({
|
|
31
|
+
packDir,
|
|
32
|
+
envName: LOCAL_ENV_NAME,
|
|
33
|
+
...(localEnvFiles !== undefined && { localEnvFiles }),
|
|
34
|
+
}).read;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=pack-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-env.js","sourceRoot":"","sources":["../../src/dev/pack-env.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;GAOG;AAEH,OAAO,EACL,cAAc,EACd,UAAU,EACV,WAAW,EACX,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,iEAAiE;AACjE,MAAM,CAAC,MAAM,aAAa,GAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAU3E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB;IACrD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9C,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,cAAc;QACvB,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;KACjF,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAC3E,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,aAAiC;IAEjC,OAAO,mBAAmB,CAAC;QACzB,OAAO;QACP,OAAO,EAAE,cAAc;QACvB,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;KACtD,CAAC,CAAC,IAAI,CAAC;AACV,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { PackServiceSupervisor, PackServiceSupervisorEvent } from '@kindgi/handler-runtime/pack-service';
|
|
2
|
+
import type { PackCode } from './pack-code.js';
|
|
3
|
+
import type { DevRunners, IndexResult, PackBuild, PackBuilder } from './runners.js';
|
|
4
|
+
export interface PackRefresherDeps {
|
|
5
|
+
readonly dev: DevRunners;
|
|
6
|
+
readonly pack: PackServiceSupervisor;
|
|
7
|
+
readonly builder: PackBuilder;
|
|
8
|
+
readonly packDir: string;
|
|
9
|
+
/** The pack's environment (the indexer child runs with it). */
|
|
10
|
+
readonly env: () => Promise<Readonly<Record<string, string>>>;
|
|
11
|
+
/** The pack's code: which indexer reads it. */
|
|
12
|
+
readonly code: PackCode;
|
|
13
|
+
}
|
|
14
|
+
export interface PackRefresher {
|
|
15
|
+
/**
|
|
16
|
+
* Bundle (or use `build`, a watch rebuild's result), index, load and
|
|
17
|
+
* publish. Without `build`, reuses the last good bundle when there is
|
|
18
|
+
* one (an env-file change) and bundles otherwise.
|
|
19
|
+
*/
|
|
20
|
+
refresh(build?: PackBuild): Promise<IndexResult>;
|
|
21
|
+
/** Resolves once no refresh is running or waiting. */
|
|
22
|
+
idle(): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
export declare function createPackRefresher(deps: PackRefresherDeps): PackRefresher;
|
|
25
|
+
/**
|
|
26
|
+
* The index as the pack service reads it: each tool's module and each
|
|
27
|
+
* guardrail's check module point at their bundles (paths relative to
|
|
28
|
+
* the pack root, which is the pack service's module root).
|
|
29
|
+
*/
|
|
30
|
+
export declare function packServiceIndex(index: unknown, bundleMap: Readonly<Record<string, string>>): unknown;
|
|
31
|
+
export declare function describePackEvent(event: PackServiceSupervisorEvent): string | undefined;
|
|
32
|
+
//# sourceMappingURL=pack-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-service.d.ts","sourceRoot":"","sources":["../../src/dev/pack-service.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,sDAAsD;IACtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAOD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAmH1E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,OAAO,CAmBT;AAoBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,GAAG,SAAS,CAWvF"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* How `kindgi dev` keeps the pack's code and its index in step. The
|
|
5
|
+
* pack service loads an index once, when it boots, so a change is
|
|
6
|
+
* picked up in this order:
|
|
7
|
+
*
|
|
8
|
+
* 1. bundle the pack's code (esbuild; a watch rebuild hands its result in) —
|
|
9
|
+
* for a Python pack, the sources are the build;
|
|
10
|
+
* 2. index the bundles (or sources) in a child process with the pack's
|
|
11
|
+
* environment, into a staging file — the TypeScript indexer, or
|
|
12
|
+
* `python -m kindgi.pack index`;
|
|
13
|
+
* 3. boot a pack service on it — once it listens (every module
|
|
14
|
+
* imported), calls go to it and the previous one stops;
|
|
15
|
+
* 4. publish the staged index as the one the api-server reads.
|
|
16
|
+
*
|
|
17
|
+
* So the api-server never lists a tool whose code isn't running. Code
|
|
18
|
+
* that fails to bundle or to load leaves the previous pack service and
|
|
19
|
+
* index in place. A pack whose last primitives were deleted publishes an
|
|
20
|
+
* empty index, so what was deleted stops being listed.
|
|
21
|
+
*
|
|
22
|
+
* Refreshes run one at a time. A refresh asked for while one runs waits
|
|
23
|
+
* for it, and several such requests collapse into one, with the latest
|
|
24
|
+
* build — so two pack services never start at once.
|
|
25
|
+
*/
|
|
26
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
27
|
+
import { dirname } from 'node:path';
|
|
28
|
+
import { devIndexPath, devStagedIndexPath, devStagedPackIndexPath } from './paths.js';
|
|
29
|
+
export function createPackRefresher(deps) {
|
|
30
|
+
let tail = Promise.resolve();
|
|
31
|
+
let waiting;
|
|
32
|
+
let lastGood;
|
|
33
|
+
async function refreshOnce(given) {
|
|
34
|
+
const build = given ?? lastGood ?? (await deps.builder.build());
|
|
35
|
+
if (build.kind === 'err') {
|
|
36
|
+
return {
|
|
37
|
+
kind: 'err',
|
|
38
|
+
code: 'bundle-failed',
|
|
39
|
+
message: `The pack's code did not build:\n ${build.errors.join('\n ')}`,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
lastGood = build;
|
|
43
|
+
const staged = devStagedIndexPath(deps.packDir);
|
|
44
|
+
const indexed = await deps.dev.runIndexer(deps.packDir, staged, {
|
|
45
|
+
bundleMap: build.bundleMap,
|
|
46
|
+
env: deps.env,
|
|
47
|
+
code: deps.code,
|
|
48
|
+
});
|
|
49
|
+
if (indexed.kind !== 'ok') {
|
|
50
|
+
if (indexed.code === 'discovery-empty')
|
|
51
|
+
await publishEmpty();
|
|
52
|
+
return indexed;
|
|
53
|
+
}
|
|
54
|
+
const packIndex = devStagedPackIndexPath(deps.packDir);
|
|
55
|
+
await mkdir(dirname(packIndex), { recursive: true });
|
|
56
|
+
await writeFile(packIndex, JSON.stringify(packServiceIndex(indexed.index, build.bundleMap)), 'utf8');
|
|
57
|
+
const started = await deps.pack.start(packIndex);
|
|
58
|
+
if (started.kind === 'err') {
|
|
59
|
+
return {
|
|
60
|
+
kind: 'err',
|
|
61
|
+
code: 'pack-service-boot-failed',
|
|
62
|
+
message: `The pack's code did not load: ${started.error.problems.join('; ')}`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
await deps.dev.publishIndex(staged, devIndexPath(deps.packDir));
|
|
66
|
+
return indexed;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The pack has no primitives left (the last ones were deleted): publish
|
|
70
|
+
* the previous index's header with nothing in it, so the api-server
|
|
71
|
+
* stops listing them. Nothing to do before any index was published, or
|
|
72
|
+
* when the published one is already empty. The pack service keeps its
|
|
73
|
+
* old code until the next refresh with primitives; nothing calls it.
|
|
74
|
+
*/
|
|
75
|
+
async function publishEmpty() {
|
|
76
|
+
const published = devIndexPath(deps.packDir);
|
|
77
|
+
let previous;
|
|
78
|
+
try {
|
|
79
|
+
previous = JSON.parse(await readFile(published, 'utf8'));
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const kinds = ['tools', 'guardrails', 'agents', 'flows'];
|
|
85
|
+
const listed = (kind) => {
|
|
86
|
+
const entries = previous[kind];
|
|
87
|
+
return Array.isArray(entries) && entries.length > 0;
|
|
88
|
+
};
|
|
89
|
+
if (!kinds.some(listed))
|
|
90
|
+
return;
|
|
91
|
+
const staged = devStagedIndexPath(deps.packDir);
|
|
92
|
+
await mkdir(dirname(staged), { recursive: true });
|
|
93
|
+
await writeFile(staged, JSON.stringify({
|
|
94
|
+
...previous,
|
|
95
|
+
publishedAt: new Date().toISOString(),
|
|
96
|
+
tools: [],
|
|
97
|
+
guardrails: [],
|
|
98
|
+
agents: [],
|
|
99
|
+
flows: [],
|
|
100
|
+
}), 'utf8');
|
|
101
|
+
await deps.dev.publishIndex(staged, published);
|
|
102
|
+
}
|
|
103
|
+
async function guarded(build) {
|
|
104
|
+
try {
|
|
105
|
+
return await refreshOnce(build);
|
|
106
|
+
}
|
|
107
|
+
catch (cause) {
|
|
108
|
+
return {
|
|
109
|
+
kind: 'err',
|
|
110
|
+
code: 'refresh-failed',
|
|
111
|
+
message: cause instanceof Error ? cause.message : String(cause),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
refresh(build) {
|
|
117
|
+
if (waiting !== undefined) {
|
|
118
|
+
// Collapse into the waiting refresh; the latest build wins.
|
|
119
|
+
if (build !== undefined)
|
|
120
|
+
waiting.build = build;
|
|
121
|
+
return waiting.result;
|
|
122
|
+
}
|
|
123
|
+
const request = { build, result: Promise.resolve(undefined) };
|
|
124
|
+
request.result = tail.then(() => {
|
|
125
|
+
if (waiting === request)
|
|
126
|
+
waiting = undefined;
|
|
127
|
+
return guarded(request.build);
|
|
128
|
+
});
|
|
129
|
+
waiting = request;
|
|
130
|
+
tail = request.result;
|
|
131
|
+
return request.result;
|
|
132
|
+
},
|
|
133
|
+
async idle() {
|
|
134
|
+
await tail;
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The index as the pack service reads it: each tool's module and each
|
|
140
|
+
* guardrail's check module point at their bundles (paths relative to
|
|
141
|
+
* the pack root, which is the pack service's module root).
|
|
142
|
+
*/
|
|
143
|
+
export function packServiceIndex(index, bundleMap) {
|
|
144
|
+
const doc = index;
|
|
145
|
+
const bundled = (path) => typeof path === 'string' ? (bundleMap[path] ?? path) : path;
|
|
146
|
+
return {
|
|
147
|
+
...doc,
|
|
148
|
+
...(doc.tools !== undefined && {
|
|
149
|
+
tools: doc.tools.map((t) => ({ ...t, modulePath: bundled(t.modulePath) })),
|
|
150
|
+
}),
|
|
151
|
+
...(doc.guardrails !== undefined && {
|
|
152
|
+
guardrails: doc.guardrails.map((g) => ({
|
|
153
|
+
...g,
|
|
154
|
+
checkModulePath: bundled(g.checkModulePath),
|
|
155
|
+
})),
|
|
156
|
+
}),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* The dev console's view of the pack service: what pack code prints,
|
|
161
|
+
* failed calls, and crashes. Successful calls and restarts that work
|
|
162
|
+
* stay quiet.
|
|
163
|
+
*/
|
|
164
|
+
/** A pack service log line worth a line of `kindgi dev` output: a failed call, missing env. */
|
|
165
|
+
function describePackLog(event) {
|
|
166
|
+
const e = event;
|
|
167
|
+
if (e.kind === 'missing-env' && Array.isArray(e.names)) {
|
|
168
|
+
const names = e.names.map(String);
|
|
169
|
+
const one = names.length === 1;
|
|
170
|
+
return ` ⚠ the pack's env.required ${one ? 'name' : 'names'} ${names.join(', ')} ${one ? 'has' : 'have'} no value: add ${one ? 'it' : 'them'} to the pack's env files (a deployment won't be ready without ${one ? 'it' : 'them'})`;
|
|
171
|
+
}
|
|
172
|
+
return e.kind === 'call' && e.outcome !== 'ok'
|
|
173
|
+
? ` [pack] ✗ ${String(e.id)}: ${String(e.outcome)}`
|
|
174
|
+
: undefined;
|
|
175
|
+
}
|
|
176
|
+
export function describePackEvent(event) {
|
|
177
|
+
switch (event.kind) {
|
|
178
|
+
case 'exited':
|
|
179
|
+
return ` ⚠ pack service exited (${event.signal ?? event.code}) — restarting`;
|
|
180
|
+
case 'gave-up':
|
|
181
|
+
return ` ✗ pack service kept exiting (${event.attempts} restarts) — fix the code and save to retry`;
|
|
182
|
+
case 'log':
|
|
183
|
+
return describePackLog(event.event);
|
|
184
|
+
default:
|
|
185
|
+
return undefined;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=pack-service.js.map
|