@tdk-landscape/tdk-cli-core 1.3.44 → 1.3.48
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/.github/workflows/release-binaries.yml +54 -0
- package/.pre-commit-config.yaml +57 -0
- package/Makefile +92 -0
- package/bun.lock +538 -0
- package/cli/AGENTS.md +390 -0
- package/cli/DESIGN.md +735 -0
- package/cli/biome.json +44 -0
- package/cli/dependency-graph.svg +1135 -0
- package/cli/knip.json +6 -0
- package/cli/package.json +77 -0
- package/cli/pnpm-lock.yaml +2305 -0
- package/cli/pnpm-workspace.yaml +2 -0
- package/cli/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +23 -0
- package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +464 -0
- package/cli/shared-platform-engineering/docker-templates/install-deps.sh +152 -0
- package/cli/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +12 -0
- package/cli/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +56 -0
- package/{dist/cli.js → cli/src/cli.ts} +21 -13
- package/cli/src/commands/__tests__/always-enabled-infra.test.ts +115 -0
- package/cli/src/commands/__tests__/config.test.ts +146 -0
- package/cli/src/commands/__tests__/doctor.test.ts +557 -0
- package/cli/src/commands/__tests__/error-handling.test.ts +78 -0
- package/cli/src/commands/__tests__/phases-model.test.ts +163 -0
- package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +207 -0
- package/cli/src/commands/__tests__/project.test.ts +68 -0
- package/cli/src/commands/__tests__/resource.test.ts +226 -0
- package/cli/src/commands/__tests__/saas-starter-integration.test.ts +196 -0
- package/cli/src/commands/__tests__/stack-features-e2e.test.ts +129 -0
- package/cli/src/commands/__tests__/upgrade.test.ts +101 -0
- package/{dist/commands/completion.js → cli/src/commands/completion.ts} +78 -72
- package/cli/src/commands/config.ts +299 -0
- package/cli/src/commands/doctor.ts +790 -0
- package/cli/src/commands/down.ts +37 -0
- package/cli/src/commands/help.ts +150 -0
- package/cli/src/commands/networks-design.md +80 -0
- package/cli/src/commands/networks.ts +332 -0
- package/cli/src/commands/project.ts +439 -0
- package/cli/src/commands/projects.ts +82 -0
- package/cli/src/commands/resource.ts +652 -0
- package/cli/src/commands/resources.ts +95 -0
- package/cli/src/commands/stack.ts +128 -0
- package/cli/src/commands/stacks.ts +52 -0
- package/cli/src/commands/status.ts +88 -0
- package/cli/src/commands/ui.tsx +843 -0
- package/cli/src/commands/up.ts +150 -0
- package/cli/src/commands/upgrade.ts +570 -0
- package/{dist/commands/version.js → cli/src/commands/version.ts} +5 -5
- package/cli/src/components/Accessible.tsx +21 -0
- package/cli/src/components/BaseTooltip.tsx +66 -0
- package/cli/src/components/DetailPanel.tsx +146 -0
- package/cli/src/components/FileTree.tsx +89 -0
- package/cli/src/components/ResourceSelectInput.tsx +30 -0
- package/cli/src/components/ResourceTable.tsx +78 -0
- package/cli/src/components/TabBar.tsx +53 -0
- package/cli/src/components/Tooltip.tsx +11 -0
- package/{dist/components/index.js → cli/src/components/index.ts} +0 -1
- package/cli/src/config/platform-standards.test.ts +11 -0
- package/cli/src/config/platform-standards.ts +196 -0
- package/cli/src/generator/__tests__/extension-fetch.test.ts +220 -0
- package/cli/src/generator/__tests__/template-engine.test.ts +70 -0
- package/cli/src/generator/extension-fetch.ts +279 -0
- package/cli/src/generator/template-engine.ts +754 -0
- package/cli/src/index.ts +86 -0
- package/cli/src/templates.d.ts +4 -0
- package/cli/src/types/index.ts +351 -0
- package/cli/src/utils/__tests__/cache.test.ts +98 -0
- package/cli/src/utils/__tests__/formatting.test.ts +170 -0
- package/cli/src/utils/__tests__/paths.test.ts +180 -0
- package/cli/src/utils/__tests__/port-assignment.test.ts +121 -0
- package/cli/src/utils/__tests__/service-urls.test.ts +174 -0
- package/cli/src/utils/__tests__/services.test.ts +531 -0
- package/cli/src/utils/__tests__/tilt.test.ts +143 -0
- package/cli/src/utils/__tests__/validation.test.ts +148 -0
- package/cli/src/utils/cache.ts +76 -0
- package/cli/src/utils/command-helpers.ts +54 -0
- package/cli/src/utils/constants.ts +126 -0
- package/cli/src/utils/discovery-context.ts +49 -0
- package/cli/src/utils/docker.ts +20 -0
- package/cli/src/utils/doctor-runtime.ts +604 -0
- package/cli/src/utils/env-validator.ts +139 -0
- package/cli/src/utils/errors.ts +168 -0
- package/cli/src/utils/file-helpers.ts +62 -0
- package/cli/src/utils/formatting.ts +215 -0
- package/cli/src/utils/paths.ts +53 -0
- package/cli/src/utils/port-assignment.ts +106 -0
- package/cli/src/utils/project-features.ts +118 -0
- package/cli/src/utils/project-templates.ts +28 -0
- package/cli/src/utils/prompt.ts +123 -0
- package/cli/src/utils/resource-features.ts +209 -0
- package/cli/src/utils/service-urls.ts +124 -0
- package/cli/src/utils/services.ts +363 -0
- package/cli/src/utils/stack-features.ts +30 -0
- package/cli/src/utils/tar.ts +24 -0
- package/cli/src/utils/tilt.ts +113 -0
- package/cli/src/utils/validation.ts +67 -0
- package/{templates → cli/templates}/Tiltfile.hbs +1 -1
- package/cli/tsconfig.json +25 -0
- package/cli/tsconfig.typecheck.json +8 -0
- package/docs/FEATURES.md +279 -0
- package/engine/topologies/platform/docker/dockerfile/dockerfile.star +3 -3
- package/engine/topologies/platform/docker/generators/golden_docker_generator_v2.star +1 -1
- package/engine/topologies/platform/docker/layers/l2_dependency_layers.star +0 -3
- package/engine/topologies/platform/docker/layers/l3_builder_layers.star +1 -1
- package/engine/topologies/platform/docker/layers/l4_runtime_layers.star +1 -1
- package/engine/topologies/platform/docker/secrets/infisical.star +19 -47
- package/engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +1 -1
- package/install.sh +242 -0
- package/knip.json +10 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +2 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +102 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +31 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +48 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +63 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +56 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +61 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +114 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +32 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +20 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +20 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +20 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +194 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +111 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +33 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +12 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +18 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +16 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +12 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +12 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +194 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/codebase-audit-report.md +62 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +84 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +31 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +27 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +27 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +23 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +27 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +39 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/.openspec.yaml +5 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/design.md +94 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/proposal.md +46 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/ai-slop-cleanup/CLEANUP_REPORT_8.md +174 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/ai-slop-cleanup/CRITICAL_ASSESSMENT_8.md +160 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/circular-deps/CRITICAL_ASSESSMENT_4.md +381 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/dead-code/CRITICAL_ASSESSMENT_3.md +316 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/deduplication/CRITICAL_ASSESSMENT_1.md +290 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/deduplication/IMPLEMENTATION_SUMMARY_1.md +233 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/defensive-cleanup/CRITICAL_ASSESSMENT_6.md +835 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/legacy-cleanup/CRITICAL_ASSESSMENT_7.md +254 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/legacy-cleanup/IMPLEMENTATION_SUMMARY_7.md +187 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/strong-typing/CRITICAL_ASSESSMENT_5.md +269 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/type-consolidation/CRITICAL_ASSESSMENT_2.md +312 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/type-consolidation/IMPLEMENTATION_SUMMARY.md +170 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/tasks.md +137 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +80 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +40 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +52 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +51 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +43 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +29 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +67 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +27 -0
- package/openspec/specs/manifest-field-migration/spec.md +24 -0
- package/openspec/specs/resource-terminology-standard/spec.md +24 -0
- package/openspec/specs/self-contained-generated-projects/spec.md +67 -0
- package/openspec/specs/stack-terminology-standard/spec.md +24 -0
- package/package.json +27 -64
- package/platform/services/platform/proxy/service.yaml +14 -0
- package/scripts/audit-codebase.sh +213 -0
- package/scripts/install-git-hooks.sh +14 -0
- package/scripts/release-binaries.sh +94 -0
- package/scripts/setup-pre-commit.sh +33 -0
- package/scripts/stage-npm-engine.sh +36 -0
- package/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +23 -0
- package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +464 -0
- package/shared-platform-engineering/docker-templates/install-deps.sh +152 -0
- package/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +12 -0
- package/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +56 -0
- package/tests/tilt-engine/__init__.py +5 -0
- package/tests/tilt-engine/conftest.py +182 -0
- package/tests/tilt-engine/fixtures/appointment-frontend-service.json +11 -0
- package/tests/tilt-engine/fixtures/identity-backend-service.json +12 -0
- package/tests/tilt-engine/fixtures/invalid-service.json +4 -0
- package/tests/tilt-engine/test_agents_md_generator.py +341 -0
- package/tests/tilt-engine/test_agents_md_integration.py +378 -0
- package/tests/tilt-engine/test_cache_operations.py +181 -0
- package/tests/tilt-engine/test_cache_persistence.py +142 -0
- package/tests/tilt-engine/test_code_executor.py +152 -0
- package/tests/tilt-engine/test_code_viewer.py +127 -0
- package/tests/tilt-engine/test_compose_port_anchors.py +310 -0
- package/tests/tilt-engine/test_config_inspector.py +162 -0
- package/tests/tilt-engine/test_daemon_focus_mode.py +89 -0
- package/tests/tilt-engine/test_daemon_polling.py +122 -0
- package/tests/tilt-engine/test_daemon_registration.py +115 -0
- package/tests/tilt-engine/test_daemon_validation.py +107 -0
- package/tests/tilt-engine/test_docker_generator_bugs.py +493 -0
- package/tests/tilt-engine/test_docker_prune.py +119 -0
- package/tests/tilt-engine/test_dockerignore_path_bug.py +82 -0
- package/tests/tilt-engine/test_file_browser.py +193 -0
- package/tests/tilt-engine/test_frontend_basepath_manifest.py +27 -0
- package/tests/tilt-engine/test_health_dependencies.py +130 -0
- package/tests/tilt-engine/test_health_endpoints.py +118 -0
- package/tests/tilt-engine/test_health_tilt_ui.py +85 -0
- package/tests/tilt-engine/test_safety_aliases.py +84 -0
- package/tests/tilt-engine/test_snapshot_diff.py +136 -0
- package/tests/tilt-engine/test_snapshot_persistence.py +163 -0
- package/tests/tilt-engine/test_snapshot_scanning.py +123 -0
- package/tests/tilt-engine/test_standalone_project_boot.py +61 -0
- package/tests/tilt-engine/test_standalone_traefik.py +108 -0
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/completion.d.ts +0 -3
- package/dist/commands/completion.d.ts.map +0 -1
- package/dist/commands/completion.js.map +0 -1
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -231
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -7
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -597
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/down.d.ts +0 -3
- package/dist/commands/down.d.ts.map +0 -1
- package/dist/commands/down.js +0 -32
- package/dist/commands/down.js.map +0 -1
- package/dist/commands/help.d.ts +0 -2
- package/dist/commands/help.d.ts.map +0 -1
- package/dist/commands/help.js +0 -130
- package/dist/commands/help.js.map +0 -1
- package/dist/commands/networks.d.ts +0 -3
- package/dist/commands/networks.d.ts.map +0 -1
- package/dist/commands/networks.js +0 -260
- package/dist/commands/networks.js.map +0 -1
- package/dist/commands/project.d.ts +0 -3
- package/dist/commands/project.d.ts.map +0 -1
- package/dist/commands/project.js +0 -373
- package/dist/commands/project.js.map +0 -1
- package/dist/commands/projects.d.ts +0 -3
- package/dist/commands/projects.d.ts.map +0 -1
- package/dist/commands/projects.js +0 -71
- package/dist/commands/projects.js.map +0 -1
- package/dist/commands/resource.d.ts +0 -69
- package/dist/commands/resource.d.ts.map +0 -1
- package/dist/commands/resource.js +0 -579
- package/dist/commands/resource.js.map +0 -1
- package/dist/commands/resources.d.ts +0 -3
- package/dist/commands/resources.d.ts.map +0 -1
- package/dist/commands/resources.js +0 -73
- package/dist/commands/resources.js.map +0 -1
- package/dist/commands/stack.d.ts +0 -3
- package/dist/commands/stack.d.ts.map +0 -1
- package/dist/commands/stack.js +0 -97
- package/dist/commands/stack.js.map +0 -1
- package/dist/commands/stacks.d.ts +0 -3
- package/dist/commands/stacks.d.ts.map +0 -1
- package/dist/commands/stacks.js +0 -43
- package/dist/commands/stacks.js.map +0 -1
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -71
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/ui.d.ts +0 -3
- package/dist/commands/ui.d.ts.map +0 -1
- package/dist/commands/ui.js +0 -445
- package/dist/commands/ui.js.map +0 -1
- package/dist/commands/up.d.ts +0 -3
- package/dist/commands/up.d.ts.map +0 -1
- package/dist/commands/up.js +0 -110
- package/dist/commands/up.js.map +0 -1
- package/dist/commands/upgrade.d.ts +0 -11
- package/dist/commands/upgrade.d.ts.map +0 -1
- package/dist/commands/upgrade.js +0 -496
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/commands/version.d.ts +0 -3
- package/dist/commands/version.d.ts.map +0 -1
- package/dist/commands/version.js.map +0 -1
- package/dist/components/Accessible.d.ts +0 -8
- package/dist/components/Accessible.d.ts.map +0 -1
- package/dist/components/Accessible.js +0 -10
- package/dist/components/Accessible.js.map +0 -1
- package/dist/components/BaseTooltip.d.ts +0 -4
- package/dist/components/BaseTooltip.d.ts.map +0 -1
- package/dist/components/BaseTooltip.js +0 -28
- package/dist/components/BaseTooltip.js.map +0 -1
- package/dist/components/DetailPanel.d.ts +0 -4
- package/dist/components/DetailPanel.d.ts.map +0 -1
- package/dist/components/DetailPanel.js +0 -18
- package/dist/components/DetailPanel.js.map +0 -1
- package/dist/components/FileTree.d.ts +0 -4
- package/dist/components/FileTree.d.ts.map +0 -1
- package/dist/components/FileTree.js +0 -47
- package/dist/components/FileTree.js.map +0 -1
- package/dist/components/ResourceSelectInput.d.ts +0 -4
- package/dist/components/ResourceSelectInput.d.ts.map +0 -1
- package/dist/components/ResourceSelectInput.js +0 -7
- package/dist/components/ResourceSelectInput.js.map +0 -1
- package/dist/components/ResourceTable.d.ts +0 -4
- package/dist/components/ResourceTable.d.ts.map +0 -1
- package/dist/components/ResourceTable.js +0 -18
- package/dist/components/ResourceTable.js.map +0 -1
- package/dist/components/TabBar.d.ts +0 -4
- package/dist/components/TabBar.d.ts.map +0 -1
- package/dist/components/TabBar.js +0 -17
- package/dist/components/TabBar.js.map +0 -1
- package/dist/components/Tooltip.d.ts +0 -12
- package/dist/components/Tooltip.d.ts.map +0 -1
- package/dist/components/Tooltip.js +0 -12
- package/dist/components/Tooltip.js.map +0 -1
- package/dist/components/index.d.ts +0 -8
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/config/platform-standards.d.ts +0 -159
- package/dist/config/platform-standards.d.ts.map +0 -1
- package/dist/config/platform-standards.js +0 -181
- package/dist/config/platform-standards.js.map +0 -1
- package/dist/generator/extension-fetch.d.ts +0 -25
- package/dist/generator/extension-fetch.d.ts.map +0 -1
- package/dist/generator/extension-fetch.js +0 -252
- package/dist/generator/extension-fetch.js.map +0 -1
- package/dist/generator/template-engine.d.ts +0 -61
- package/dist/generator/template-engine.d.ts.map +0 -1
- package/dist/generator/template-engine.js +0 -557
- package/dist/generator/template-engine.js.map +0 -1
- package/dist/index.d.ts +0 -11
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -11
- package/dist/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -255
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -17
- package/dist/types/index.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -19
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js +0 -64
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/command-helpers.d.ts +0 -17
- package/dist/utils/command-helpers.d.ts.map +0 -1
- package/dist/utils/command-helpers.js +0 -41
- package/dist/utils/command-helpers.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -52
- package/dist/utils/constants.d.ts.map +0 -1
- package/dist/utils/constants.js +0 -112
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/discovery-context.d.ts +0 -4
- package/dist/utils/discovery-context.d.ts.map +0 -1
- package/dist/utils/discovery-context.js +0 -39
- package/dist/utils/discovery-context.js.map +0 -1
- package/dist/utils/docker.d.ts +0 -4
- package/dist/utils/docker.d.ts.map +0 -1
- package/dist/utils/docker.js +0 -19
- package/dist/utils/docker.js.map +0 -1
- package/dist/utils/doctor-runtime.d.ts +0 -66
- package/dist/utils/doctor-runtime.d.ts.map +0 -1
- package/dist/utils/doctor-runtime.js +0 -469
- package/dist/utils/doctor-runtime.js.map +0 -1
- package/dist/utils/env-validator.d.ts +0 -15
- package/dist/utils/env-validator.d.ts.map +0 -1
- package/dist/utils/env-validator.js +0 -109
- package/dist/utils/env-validator.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -31
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -140
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/file-helpers.d.ts +0 -14
- package/dist/utils/file-helpers.d.ts.map +0 -1
- package/dist/utils/file-helpers.js +0 -45
- package/dist/utils/file-helpers.js.map +0 -1
- package/dist/utils/formatting.d.ts +0 -30
- package/dist/utils/formatting.d.ts.map +0 -1
- package/dist/utils/formatting.js +0 -164
- package/dist/utils/formatting.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -3
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js +0 -41
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/port-assignment.d.ts +0 -6
- package/dist/utils/port-assignment.d.ts.map +0 -1
- package/dist/utils/port-assignment.js +0 -81
- package/dist/utils/port-assignment.js.map +0 -1
- package/dist/utils/project-features.d.ts +0 -23
- package/dist/utils/project-features.d.ts.map +0 -1
- package/dist/utils/project-features.js +0 -98
- package/dist/utils/project-features.js.map +0 -1
- package/dist/utils/project-templates.d.ts +0 -7
- package/dist/utils/project-templates.d.ts.map +0 -1
- package/dist/utils/project-templates.js +0 -24
- package/dist/utils/project-templates.js.map +0 -1
- package/dist/utils/prompt.d.ts +0 -28
- package/dist/utils/prompt.d.ts.map +0 -1
- package/dist/utils/prompt.js +0 -79
- package/dist/utils/prompt.js.map +0 -1
- package/dist/utils/resource-features.d.ts +0 -29
- package/dist/utils/resource-features.d.ts.map +0 -1
- package/dist/utils/resource-features.js +0 -171
- package/dist/utils/resource-features.js.map +0 -1
- package/dist/utils/service-urls.d.ts +0 -30
- package/dist/utils/service-urls.d.ts.map +0 -1
- package/dist/utils/service-urls.js +0 -93
- package/dist/utils/service-urls.js.map +0 -1
- package/dist/utils/services.d.ts +0 -18
- package/dist/utils/services.d.ts.map +0 -1
- package/dist/utils/services.js +0 -291
- package/dist/utils/services.js.map +0 -1
- package/dist/utils/stack-features.d.ts +0 -22
- package/dist/utils/stack-features.d.ts.map +0 -1
- package/dist/utils/stack-features.js +0 -13
- package/dist/utils/stack-features.js.map +0 -1
- package/dist/utils/tar.d.ts +0 -7
- package/dist/utils/tar.d.ts.map +0 -1
- package/dist/utils/tar.js +0 -21
- package/dist/utils/tar.js.map +0 -1
- package/dist/utils/tilt.d.ts +0 -19
- package/dist/utils/tilt.d.ts.map +0 -1
- package/dist/utils/tilt.js +0 -78
- package/dist/utils/tilt.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -16
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -58
- package/dist/utils/validation.js.map +0 -1
- /package/{README.md → cli/README.md} +0 -0
- /package/{bin → cli/bin}/tdk.js +0 -0
- /package/{templates → cli/templates}/.tiltignore.hbs +0 -0
- /package/{templates → cli/templates}/TILT_RESOURCE_DEFAULTS.star.hbs +0 -0
- /package/{templates → cli/templates}/TILT_TECH_STACK.star.hbs +0 -0
- /package/{templates → cli/templates}/spec.master.hbs +0 -0
package/cli/AGENTS.md
ADDED
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
# TDK CLI Agent Guidelines
|
|
2
|
+
|
|
3
|
+
## API Conventions & Standards
|
|
4
|
+
|
|
5
|
+
This document defines the coding standards and API conventions for the TDK CLI package. All contributions should follow these guidelines to maintain consistency.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Naming Conventions
|
|
10
|
+
|
|
11
|
+
### Functions and Variables
|
|
12
|
+
| Category | Convention | Example |
|
|
13
|
+
|----------|------------|---------|
|
|
14
|
+
| Functions | camelCase | `discoverResources()`, `isPortAvailable()` |
|
|
15
|
+
| Variables | camelCase | `const resourceCount`, `let projectRoot` |
|
|
16
|
+
| Constants | UPPER_SNAKE_CASE | `const CACHE_TTL = 5000` |
|
|
17
|
+
| Private functions | camelCase with underscore prefix | `_internalHelper()` (if needed) |
|
|
18
|
+
|
|
19
|
+
### Types and Classes
|
|
20
|
+
| Category | Convention | Example |
|
|
21
|
+
|----------|------------|---------|
|
|
22
|
+
| Classes | PascalCase | `TdkError`, `TemplateEngine` |
|
|
23
|
+
| Interfaces | PascalCase, descriptive | `DiscoveredResource`, `ResourceMetadata` |
|
|
24
|
+
| Type aliases | PascalCase | `ResourceStatus`, `FileType` |
|
|
25
|
+
| Factory objects | camelCase | `errorFactories` (not `Errors`) |
|
|
26
|
+
|
|
27
|
+
### Boolean Properties
|
|
28
|
+
Use prefixes for clarity:
|
|
29
|
+
- `is-*` for state: `isEnabled`, `isAvailable`
|
|
30
|
+
- `has-*` for possession: `hasDockerfile`, `hasTiltfile`
|
|
31
|
+
- `can-*` for capability: `canReload`
|
|
32
|
+
- `did-*` for past actions: `didPass`, `didComplete`
|
|
33
|
+
|
|
34
|
+
**Examples:**
|
|
35
|
+
```typescript
|
|
36
|
+
// ✅ Good
|
|
37
|
+
interface CheckResult {
|
|
38
|
+
didPass: boolean;
|
|
39
|
+
hasFix: boolean;
|
|
40
|
+
isCritical: boolean;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// ❌ Avoid - These naming patterns create ambiguity
|
|
44
|
+
// Use the patterns shown in the "Good" example above
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Export Patterns
|
|
50
|
+
|
|
51
|
+
### Public API Surface
|
|
52
|
+
Use **explicit named exports** instead of wildcards:
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
// ✅ Good - Explicit exports
|
|
56
|
+
export type {
|
|
57
|
+
DiscoveredResource,
|
|
58
|
+
DiscoveredStack,
|
|
59
|
+
ResourceMetadata,
|
|
60
|
+
} from './types/index.js';
|
|
61
|
+
|
|
62
|
+
export {
|
|
63
|
+
discoverResources,
|
|
64
|
+
discoverStacks,
|
|
65
|
+
findProjectRoot,
|
|
66
|
+
} from './utils/services.js';
|
|
67
|
+
|
|
68
|
+
// ❌ Avoid - Wildcard exports
|
|
69
|
+
export * from './types/index.js';
|
|
70
|
+
export * from './utils/services.js';
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Export Organization
|
|
74
|
+
Group exports by category with comments:
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
/**
|
|
78
|
+
* Component exports for TDK CLI UI
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
// Main UI components
|
|
82
|
+
export { TabBar } from './TabBar.js';
|
|
83
|
+
export { ResourceTable } from './ResourceTable.js';
|
|
84
|
+
|
|
85
|
+
// Type definitions
|
|
86
|
+
export type { TabId } from './TabBar.js';
|
|
87
|
+
export type { FileNode } from './FileTree.js';
|
|
88
|
+
|
|
89
|
+
// Utility constants
|
|
90
|
+
export { TOOLTIPS } from './Tooltip.js';
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Function Signatures
|
|
96
|
+
|
|
97
|
+
### Parameter Ordering
|
|
98
|
+
1. **Required data parameters** first
|
|
99
|
+
2. **Optional data parameters** next
|
|
100
|
+
3. **Options object** last
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
// ✅ Good
|
|
104
|
+
function processResource(
|
|
105
|
+
name: string, // Required data
|
|
106
|
+
config: ResourceConfig, // Required data
|
|
107
|
+
options: { verbose?: boolean } = {} // Options last
|
|
108
|
+
): ProcessResult
|
|
109
|
+
|
|
110
|
+
// ❌ Avoid - Mixed ordering
|
|
111
|
+
function processResource(
|
|
112
|
+
options: { verbose?: boolean },
|
|
113
|
+
name: string,
|
|
114
|
+
config: ResourceConfig
|
|
115
|
+
)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Options Object Pattern
|
|
119
|
+
For functions with 3+ parameters or multiple optional parameters:
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
// ✅ Good - Options object
|
|
123
|
+
function runTilt(
|
|
124
|
+
command: string,
|
|
125
|
+
args: string[] = [],
|
|
126
|
+
options: {
|
|
127
|
+
verbose?: boolean;
|
|
128
|
+
inheritStdio?: boolean;
|
|
129
|
+
timeout?: number;
|
|
130
|
+
} = {}
|
|
131
|
+
): Promise<TiltCommandResult>
|
|
132
|
+
|
|
133
|
+
// ❌ Avoid - Too many positional parameters
|
|
134
|
+
function runTilt(
|
|
135
|
+
command: string,
|
|
136
|
+
args: string[],
|
|
137
|
+
verbose: boolean,
|
|
138
|
+
inheritStdio: boolean,
|
|
139
|
+
timeout: number
|
|
140
|
+
): Promise<TiltCommandResult>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Return Types
|
|
144
|
+
Always provide explicit return types:
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
// ✅ Good
|
|
148
|
+
export function findProjectRoot(startDir: string = cwd()): string | null {
|
|
149
|
+
// implementation
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// ❌ Avoid - Implicit return type
|
|
153
|
+
export function findProjectRoot(startDir: string = cwd()) {
|
|
154
|
+
// implementation
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Error Handling
|
|
161
|
+
|
|
162
|
+
### Use TdkError for CLI Errors
|
|
163
|
+
All user-facing errors should use the `TdkError` class:
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
import { TdkError } from '../utils/errors.js';
|
|
167
|
+
|
|
168
|
+
// ✅ Good
|
|
169
|
+
throw new TdkError(
|
|
170
|
+
'Resource not found',
|
|
171
|
+
['Check the resource name', 'Run tdk resources to list all'],
|
|
172
|
+
1 // exit code
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
// ❌ Avoid - Generic errors for user-facing issues
|
|
176
|
+
throw new Error('Resource not found');
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Error Factories
|
|
180
|
+
Use the `errorFactories` object for common errors:
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
// ✅ Good - Using factory
|
|
184
|
+
errorFactories.resourceNotFound(name).display();
|
|
185
|
+
errorFactories.notInProject().display();
|
|
186
|
+
|
|
187
|
+
// ❌ Avoid - Creating TdkError manually for common cases
|
|
188
|
+
new TdkError(`Resource "${name}" not found`, [...]).display();
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Validation Results
|
|
192
|
+
Use consistent validation result pattern:
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
// ✅ Good
|
|
196
|
+
interface ValidationResult {
|
|
197
|
+
valid: boolean;
|
|
198
|
+
error?: string;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function validateResourceName(name: string): ValidationResult {
|
|
202
|
+
if (!name.trim()) {
|
|
203
|
+
return { valid: false, error: 'Name is required' };
|
|
204
|
+
}
|
|
205
|
+
return { valid: true };
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Type Definitions
|
|
212
|
+
|
|
213
|
+
### Interface Naming
|
|
214
|
+
Use descriptive names without redundant suffixes:
|
|
215
|
+
|
|
216
|
+
```typescript
|
|
217
|
+
// ✅ Good
|
|
218
|
+
interface DiscoveredResource { ... }
|
|
219
|
+
interface ResourceMetadata { ... }
|
|
220
|
+
|
|
221
|
+
// ❌ Avoid - Redundant suffixes
|
|
222
|
+
interface DiscoveredResourceInterface { ... }
|
|
223
|
+
interface ResourceMetadataType { ... }
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Type Placement
|
|
227
|
+
- Place shared types in `src/types/index.ts`
|
|
228
|
+
- Place component-specific types in the component file
|
|
229
|
+
- Export types explicitly using `export type`
|
|
230
|
+
|
|
231
|
+
### Optional Properties
|
|
232
|
+
Use `?` for optional properties and provide defaults where sensible:
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
interface CLIOptions {
|
|
236
|
+
verbose?: boolean; // Optional, defaults to false
|
|
237
|
+
timeout?: number; // Optional, has default
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
function runCommand(options: CLIOptions = {}) {
|
|
241
|
+
const verbose = options.verbose ?? false;
|
|
242
|
+
const timeout = options.timeout ?? 5000;
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## File Organization
|
|
249
|
+
|
|
250
|
+
### Directory Structure
|
|
251
|
+
```
|
|
252
|
+
src/
|
|
253
|
+
├── types/
|
|
254
|
+
│ └── index.ts # Shared type definitions
|
|
255
|
+
├── utils/
|
|
256
|
+
│ ├── services.ts # Resource discovery utilities
|
|
257
|
+
│ ├── tilt.ts # Tilt command utilities
|
|
258
|
+
│ ├── errors.ts # Error handling
|
|
259
|
+
│ ├── validation.ts # Validation utilities
|
|
260
|
+
│ └── formatting.ts # Formatting utilities
|
|
261
|
+
├── commands/
|
|
262
|
+
│ ├── resource.ts # tdk resource command
|
|
263
|
+
│ ├── stack.ts # tdk stack command
|
|
264
|
+
│ └── ...
|
|
265
|
+
└── components/
|
|
266
|
+
├── TabBar.tsx # UI components
|
|
267
|
+
└── ...
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### File Naming
|
|
271
|
+
- Commands: `[command-name].ts` (e.g., `resource.ts`)
|
|
272
|
+
- Utilities: `[category].ts` (e.g., `services.ts`, `tilt.ts`)
|
|
273
|
+
- Components: `[ComponentName].tsx` (PascalCase)
|
|
274
|
+
- Tests: `[filename].test.ts` alongside source files
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Testing
|
|
279
|
+
|
|
280
|
+
### Test Location
|
|
281
|
+
Place tests alongside source files:
|
|
282
|
+
|
|
283
|
+
```
|
|
284
|
+
commands/
|
|
285
|
+
├── resource.ts
|
|
286
|
+
├── resource.test.ts
|
|
287
|
+
├── stack.ts
|
|
288
|
+
└── stack.test.ts
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Test Naming
|
|
292
|
+
Use descriptive test names:
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
// ✅ Good
|
|
296
|
+
describe('resource name validation', () => {
|
|
297
|
+
it('should accept valid kebab-case names', () => { ... });
|
|
298
|
+
it('should reject names with underscores', () => { ... });
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
// ❌ Avoid - Vague names
|
|
302
|
+
it('works', () => { ... });
|
|
303
|
+
it('test 1', () => { ... });
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Documentation
|
|
309
|
+
|
|
310
|
+
### JSDoc Comments
|
|
311
|
+
Use JSDoc for public functions:
|
|
312
|
+
|
|
313
|
+
```typescript
|
|
314
|
+
/**
|
|
315
|
+
* Discover all resources from the project
|
|
316
|
+
*
|
|
317
|
+
* Scans the filesystem for service.json files and parses them.
|
|
318
|
+
*
|
|
319
|
+
* @returns Array of discovered resources sorted by name
|
|
320
|
+
*/
|
|
321
|
+
export function discoverResources(): DiscoveredResource[] {
|
|
322
|
+
// implementation
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### Inline Comments
|
|
327
|
+
Use inline comments sparingly, only for complex logic:
|
|
328
|
+
|
|
329
|
+
```typescript
|
|
330
|
+
// Calculate next available port from the configured range
|
|
331
|
+
const portRange = PORT_RANGES[resourceType];
|
|
332
|
+
const assignedPort = findNextPort(existingPorts, portRange);
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Common Patterns
|
|
338
|
+
|
|
339
|
+
### Resource Discovery
|
|
340
|
+
```typescript
|
|
341
|
+
export function discoverResources(): DiscoveredResource[] {
|
|
342
|
+
const projectRoot = findProjectRoot();
|
|
343
|
+
if (!projectRoot) {
|
|
344
|
+
throw errorFactories.notInProject();
|
|
345
|
+
}
|
|
346
|
+
// ... implementation
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### Command Action Wrapper
|
|
351
|
+
```typescript
|
|
352
|
+
export const commandName = new Command('command')
|
|
353
|
+
.description('Description')
|
|
354
|
+
.option('-v, --verbose', 'Enable verbose output', false)
|
|
355
|
+
.action(async (options) => {
|
|
356
|
+
await runCommand(async () => {
|
|
357
|
+
// Command implementation
|
|
358
|
+
});
|
|
359
|
+
});
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### Result Type
|
|
363
|
+
```typescript
|
|
364
|
+
interface Result<T, E = string> {
|
|
365
|
+
success: boolean;
|
|
366
|
+
data?: T;
|
|
367
|
+
error?: E;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
function doSomething(): Result<Resource, string> {
|
|
371
|
+
try {
|
|
372
|
+
const data = process();
|
|
373
|
+
return { success: true, data };
|
|
374
|
+
} catch (err) {
|
|
375
|
+
return { success: false, error: err.message };
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Resources
|
|
383
|
+
|
|
384
|
+
- Full assessment: `API_HARMONIZATION_ASSESSMENT.md`
|
|
385
|
+
- Implementation report: `API_HARMONIZATION_REPORT.md`
|
|
386
|
+
- Type definitions: `cli/src/types/index.ts`
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
**Last Updated:** 2025-01-30 by Agent #11 (The API Harmonizer)
|