@tdk-landscape/tdk-cli-core 1.3.53 → 1.3.55
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/CHANGELOG.md +9 -0
- package/README.md +1 -1
- package/cli/dist/commands/doctor.js +21 -3
- package/cli/dist/commands/upgrade.js +7 -7
- package/cli/dist/generator/extension-fetch.js +16 -9
- package/cli/dist/utils/spinner.js +39 -0
- package/cli/package.json +1 -2
- package/package.json +16 -2
- package/.claude/skills/layer-autoresearch/SKILL.md +0 -48
- package/.claude/skills/tdk-troubleshoot/SKILL.md +0 -222
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -40
- package/.github/ISSUE_TEMPLATE/config.yml +0 -11
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -18
- package/.github/ISSUE_TEMPLATE/premium_license.yml +0 -43
- package/.github/dependabot.yml +0 -33
- package/.github/pull_request_template.md +0 -5
- package/.github/workflows/ci.yml +0 -200
- package/.github/workflows/release-binaries.yml +0 -139
- package/.github/zizmor.yml +0 -9
- package/.pre-commit-config.yaml +0 -57
- package/CODE_OF_CONDUCT.md +0 -9
- package/CONTRIBUTING.md +0 -42
- package/Makefile +0 -92
- package/SECURITY.md +0 -17
- package/benchmarks/results/container-scale-2026-09-25T20-54-49-736Z.json +0 -45
- package/benchmarks/results/container-scale-2026-09-25T21-01-20-540Z.json +0 -150
- package/benchmarks/results/container-scale-2026-09-25T21-15-01-441Z.json +0 -73
- package/benchmarks/results/container-scale-2026-09-25T22-09-01-630Z.json +0 -77
- package/benchmarks/results/container-scale-2026-09-25T22-18-28-371Z.json +0 -202
- package/cli/AGENTS.md +0 -390
- package/cli/DESIGN.md +0 -735
- package/cli/README.md +0 -292
- package/cli/biome.json +0 -40
- package/cli/dependency-graph.svg +0 -1135
- package/cli/dist/cli.d.ts +0 -3
- package/cli/dist/cli.d.ts.map +0 -1
- package/cli/dist/cli.js.map +0 -1
- package/cli/dist/commands/completion.d.ts +0 -3
- package/cli/dist/commands/completion.d.ts.map +0 -1
- package/cli/dist/commands/completion.js.map +0 -1
- package/cli/dist/commands/config.d.ts +0 -3
- package/cli/dist/commands/config.d.ts.map +0 -1
- package/cli/dist/commands/config.js.map +0 -1
- package/cli/dist/commands/doctor.d.ts +0 -19
- package/cli/dist/commands/doctor.d.ts.map +0 -1
- package/cli/dist/commands/doctor.js.map +0 -1
- package/cli/dist/commands/down.d.ts +0 -3
- package/cli/dist/commands/down.d.ts.map +0 -1
- package/cli/dist/commands/down.js.map +0 -1
- package/cli/dist/commands/help.d.ts +0 -2
- package/cli/dist/commands/help.d.ts.map +0 -1
- package/cli/dist/commands/help.js.map +0 -1
- package/cli/dist/commands/networks.d.ts +0 -3
- package/cli/dist/commands/networks.d.ts.map +0 -1
- package/cli/dist/commands/networks.js.map +0 -1
- package/cli/dist/commands/project.d.ts +0 -9
- package/cli/dist/commands/project.d.ts.map +0 -1
- package/cli/dist/commands/project.js.map +0 -1
- package/cli/dist/commands/projects.d.ts +0 -3
- package/cli/dist/commands/projects.d.ts.map +0 -1
- package/cli/dist/commands/projects.js.map +0 -1
- package/cli/dist/commands/resource.d.ts +0 -69
- package/cli/dist/commands/resource.d.ts.map +0 -1
- package/cli/dist/commands/resource.js.map +0 -1
- package/cli/dist/commands/resources.d.ts +0 -3
- package/cli/dist/commands/resources.d.ts.map +0 -1
- package/cli/dist/commands/resources.js.map +0 -1
- package/cli/dist/commands/stack.d.ts +0 -3
- package/cli/dist/commands/stack.d.ts.map +0 -1
- package/cli/dist/commands/stack.js.map +0 -1
- package/cli/dist/commands/stacks.d.ts +0 -3
- package/cli/dist/commands/stacks.d.ts.map +0 -1
- package/cli/dist/commands/stacks.js.map +0 -1
- package/cli/dist/commands/status.d.ts +0 -3
- package/cli/dist/commands/status.d.ts.map +0 -1
- package/cli/dist/commands/status.js.map +0 -1
- package/cli/dist/commands/ui.d.ts +0 -3
- package/cli/dist/commands/ui.d.ts.map +0 -1
- package/cli/dist/commands/ui.js.map +0 -1
- package/cli/dist/commands/up.d.ts +0 -3
- package/cli/dist/commands/up.d.ts.map +0 -1
- package/cli/dist/commands/up.js.map +0 -1
- package/cli/dist/commands/upgrade.d.ts +0 -14
- package/cli/dist/commands/upgrade.d.ts.map +0 -1
- package/cli/dist/commands/upgrade.js.map +0 -1
- package/cli/dist/commands/version.d.ts +0 -3
- package/cli/dist/commands/version.d.ts.map +0 -1
- package/cli/dist/commands/version.js.map +0 -1
- package/cli/dist/components/Accessible.d.ts +0 -8
- package/cli/dist/components/Accessible.d.ts.map +0 -1
- package/cli/dist/components/Accessible.js.map +0 -1
- package/cli/dist/components/BaseTooltip.d.ts +0 -4
- package/cli/dist/components/BaseTooltip.d.ts.map +0 -1
- package/cli/dist/components/BaseTooltip.js.map +0 -1
- package/cli/dist/components/DetailPanel.d.ts +0 -4
- package/cli/dist/components/DetailPanel.d.ts.map +0 -1
- package/cli/dist/components/DetailPanel.js.map +0 -1
- package/cli/dist/components/FileTree.d.ts +0 -4
- package/cli/dist/components/FileTree.d.ts.map +0 -1
- package/cli/dist/components/FileTree.js.map +0 -1
- package/cli/dist/components/ResourceSelectInput.d.ts +0 -4
- package/cli/dist/components/ResourceSelectInput.d.ts.map +0 -1
- package/cli/dist/components/ResourceSelectInput.js.map +0 -1
- package/cli/dist/components/ResourceTable.d.ts +0 -4
- package/cli/dist/components/ResourceTable.d.ts.map +0 -1
- package/cli/dist/components/ResourceTable.js.map +0 -1
- package/cli/dist/components/TabBar.d.ts +0 -4
- package/cli/dist/components/TabBar.d.ts.map +0 -1
- package/cli/dist/components/TabBar.js.map +0 -1
- package/cli/dist/components/Tooltip.d.ts +0 -12
- package/cli/dist/components/Tooltip.d.ts.map +0 -1
- package/cli/dist/components/Tooltip.js.map +0 -1
- package/cli/dist/components/index.d.ts +0 -8
- package/cli/dist/components/index.d.ts.map +0 -1
- package/cli/dist/components/index.js.map +0 -1
- package/cli/dist/config/platform-standards.d.ts +0 -159
- package/cli/dist/config/platform-standards.d.ts.map +0 -1
- package/cli/dist/config/platform-standards.js.map +0 -1
- package/cli/dist/generator/extension-fetch.d.ts +0 -25
- package/cli/dist/generator/extension-fetch.d.ts.map +0 -1
- package/cli/dist/generator/extension-fetch.js.map +0 -1
- package/cli/dist/generator/template-engine.d.ts +0 -62
- package/cli/dist/generator/template-engine.d.ts.map +0 -1
- package/cli/dist/generator/template-engine.js.map +0 -1
- package/cli/dist/index.d.ts +0 -11
- package/cli/dist/index.d.ts.map +0 -1
- package/cli/dist/index.js.map +0 -1
- package/cli/dist/types/index.d.ts +0 -257
- package/cli/dist/types/index.d.ts.map +0 -1
- package/cli/dist/types/index.js.map +0 -1
- package/cli/dist/utils/cache.d.ts +0 -19
- package/cli/dist/utils/cache.d.ts.map +0 -1
- package/cli/dist/utils/cache.js.map +0 -1
- package/cli/dist/utils/command-helpers.d.ts +0 -17
- package/cli/dist/utils/command-helpers.d.ts.map +0 -1
- package/cli/dist/utils/command-helpers.js.map +0 -1
- package/cli/dist/utils/constants.d.ts +0 -53
- package/cli/dist/utils/constants.d.ts.map +0 -1
- package/cli/dist/utils/constants.js.map +0 -1
- package/cli/dist/utils/discovery-context.d.ts +0 -4
- package/cli/dist/utils/discovery-context.d.ts.map +0 -1
- package/cli/dist/utils/discovery-context.js.map +0 -1
- package/cli/dist/utils/docker.d.ts +0 -4
- package/cli/dist/utils/docker.d.ts.map +0 -1
- package/cli/dist/utils/docker.js.map +0 -1
- package/cli/dist/utils/doctor-runtime.d.ts +0 -81
- package/cli/dist/utils/doctor-runtime.d.ts.map +0 -1
- package/cli/dist/utils/doctor-runtime.js.map +0 -1
- package/cli/dist/utils/env-validator.d.ts +0 -15
- package/cli/dist/utils/env-validator.d.ts.map +0 -1
- package/cli/dist/utils/env-validator.js.map +0 -1
- package/cli/dist/utils/errors.d.ts +0 -31
- package/cli/dist/utils/errors.d.ts.map +0 -1
- package/cli/dist/utils/errors.js.map +0 -1
- package/cli/dist/utils/file-helpers.d.ts +0 -14
- package/cli/dist/utils/file-helpers.d.ts.map +0 -1
- package/cli/dist/utils/file-helpers.js.map +0 -1
- package/cli/dist/utils/formatting.d.ts +0 -30
- package/cli/dist/utils/formatting.d.ts.map +0 -1
- package/cli/dist/utils/formatting.js.map +0 -1
- package/cli/dist/utils/paths.d.ts +0 -3
- package/cli/dist/utils/paths.d.ts.map +0 -1
- package/cli/dist/utils/paths.js.map +0 -1
- package/cli/dist/utils/port-assignment.d.ts +0 -6
- package/cli/dist/utils/port-assignment.d.ts.map +0 -1
- package/cli/dist/utils/port-assignment.js.map +0 -1
- package/cli/dist/utils/project-features.d.ts +0 -23
- package/cli/dist/utils/project-features.d.ts.map +0 -1
- package/cli/dist/utils/project-features.js.map +0 -1
- package/cli/dist/utils/project-templates.d.ts +0 -7
- package/cli/dist/utils/project-templates.d.ts.map +0 -1
- package/cli/dist/utils/project-templates.js.map +0 -1
- package/cli/dist/utils/prompt.d.ts +0 -28
- package/cli/dist/utils/prompt.d.ts.map +0 -1
- package/cli/dist/utils/prompt.js.map +0 -1
- package/cli/dist/utils/resource-features.d.ts +0 -29
- package/cli/dist/utils/resource-features.d.ts.map +0 -1
- package/cli/dist/utils/resource-features.js.map +0 -1
- package/cli/dist/utils/service-urls.d.ts +0 -30
- package/cli/dist/utils/service-urls.d.ts.map +0 -1
- package/cli/dist/utils/service-urls.js.map +0 -1
- package/cli/dist/utils/services.d.ts +0 -18
- package/cli/dist/utils/services.d.ts.map +0 -1
- package/cli/dist/utils/services.js.map +0 -1
- package/cli/dist/utils/stack-features.d.ts +0 -22
- package/cli/dist/utils/stack-features.d.ts.map +0 -1
- package/cli/dist/utils/stack-features.js.map +0 -1
- package/cli/dist/utils/tar.d.ts +0 -7
- package/cli/dist/utils/tar.d.ts.map +0 -1
- package/cli/dist/utils/tar.js.map +0 -1
- package/cli/dist/utils/tilt.d.ts +0 -20
- package/cli/dist/utils/tilt.d.ts.map +0 -1
- package/cli/dist/utils/tilt.js.map +0 -1
- package/cli/dist/utils/validation.d.ts +0 -16
- package/cli/dist/utils/validation.d.ts.map +0 -1
- package/cli/dist/utils/validation.js.map +0 -1
- package/cli/knip.json +0 -6
- package/cli/pnpm-lock.yaml +0 -2305
- package/cli/pnpm-workspace.yaml +0 -2
- package/cli/src/cli.ts +0 -72
- package/cli/src/commands/__tests__/always-enabled-infra.test.ts +0 -109
- package/cli/src/commands/__tests__/config.test.ts +0 -146
- package/cli/src/commands/__tests__/doctor.test.ts +0 -730
- package/cli/src/commands/__tests__/error-handling.test.ts +0 -78
- package/cli/src/commands/__tests__/phases-model.test.ts +0 -161
- package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +0 -187
- package/cli/src/commands/__tests__/project.test.ts +0 -68
- package/cli/src/commands/__tests__/resource.test.ts +0 -226
- package/cli/src/commands/__tests__/saas-starter-integration.test.ts +0 -194
- package/cli/src/commands/__tests__/stack-features-e2e.test.ts +0 -135
- package/cli/src/commands/__tests__/upgrade.test.ts +0 -198
- package/cli/src/commands/completion.ts +0 -300
- package/cli/src/commands/config.ts +0 -299
- package/cli/src/commands/doctor.ts +0 -926
- package/cli/src/commands/down.ts +0 -37
- package/cli/src/commands/help.ts +0 -143
- package/cli/src/commands/networks-design.md +0 -80
- package/cli/src/commands/networks.ts +0 -332
- package/cli/src/commands/project.ts +0 -456
- package/cli/src/commands/projects.ts +0 -82
- package/cli/src/commands/resource.ts +0 -652
- package/cli/src/commands/resources.ts +0 -95
- package/cli/src/commands/stack.ts +0 -128
- package/cli/src/commands/stacks.ts +0 -52
- package/cli/src/commands/status.ts +0 -88
- package/cli/src/commands/ui.tsx +0 -843
- package/cli/src/commands/up.ts +0 -169
- package/cli/src/commands/upgrade.ts +0 -628
- package/cli/src/commands/version.ts +0 -9
- package/cli/src/components/Accessible.tsx +0 -21
- package/cli/src/components/BaseTooltip.tsx +0 -66
- package/cli/src/components/DetailPanel.tsx +0 -146
- package/cli/src/components/FileTree.tsx +0 -89
- package/cli/src/components/ResourceSelectInput.tsx +0 -30
- package/cli/src/components/ResourceTable.tsx +0 -78
- package/cli/src/components/TabBar.tsx +0 -53
- package/cli/src/components/Tooltip.tsx +0 -11
- package/cli/src/components/index.ts +0 -7
- package/cli/src/config/platform-standards.test.ts +0 -11
- package/cli/src/config/platform-standards.ts +0 -196
- package/cli/src/generator/__tests__/extension-fetch.test.ts +0 -242
- package/cli/src/generator/__tests__/template-engine.test.ts +0 -70
- package/cli/src/generator/extension-fetch.ts +0 -286
- package/cli/src/generator/template-engine.ts +0 -752
- package/cli/src/index.ts +0 -86
- package/cli/src/templates.d.ts +0 -4
- package/cli/src/types/index.ts +0 -353
- package/cli/src/utils/__tests__/cache.test.ts +0 -98
- package/cli/src/utils/__tests__/formatting.test.ts +0 -170
- package/cli/src/utils/__tests__/paths.test.ts +0 -180
- package/cli/src/utils/__tests__/port-assignment.test.ts +0 -121
- package/cli/src/utils/__tests__/service-urls.test.ts +0 -174
- package/cli/src/utils/__tests__/services.test.ts +0 -531
- package/cli/src/utils/__tests__/tilt.test.ts +0 -172
- package/cli/src/utils/__tests__/validation.test.ts +0 -148
- package/cli/src/utils/cache.ts +0 -76
- package/cli/src/utils/command-helpers.ts +0 -54
- package/cli/src/utils/constants.ts +0 -130
- package/cli/src/utils/discovery-context.ts +0 -49
- package/cli/src/utils/docker.ts +0 -20
- package/cli/src/utils/doctor-runtime.ts +0 -644
- package/cli/src/utils/env-validator.ts +0 -139
- package/cli/src/utils/errors.ts +0 -168
- package/cli/src/utils/file-helpers.ts +0 -62
- package/cli/src/utils/formatting.ts +0 -215
- package/cli/src/utils/paths.ts +0 -53
- package/cli/src/utils/port-assignment.ts +0 -106
- package/cli/src/utils/project-features.ts +0 -118
- package/cli/src/utils/project-templates.ts +0 -29
- package/cli/src/utils/prompt.ts +0 -128
- package/cli/src/utils/resource-features.ts +0 -215
- package/cli/src/utils/service-urls.ts +0 -124
- package/cli/src/utils/services.ts +0 -364
- package/cli/src/utils/stack-features.ts +0 -30
- package/cli/src/utils/tar.ts +0 -24
- package/cli/src/utils/tilt.ts +0 -133
- package/cli/src/utils/validation.ts +0 -67
- package/cli/tsconfig.json +0 -25
- package/cli/tsconfig.typecheck.json +0 -8
- package/docs/FEATURES.md +0 -281
- package/docs/demo.svg +0 -217
- package/engine/docs/AUTODISCOVERY_TEST.md +0 -182
- package/engine/docs/C4-ARCHITECTURE-operations.md +0 -396
- package/engine/docs/C4-ARCHITECTURE-overview.md +0 -284
- package/engine/docs/C4-ARCHITECTURE.md +0 -17
- package/engine/docs/GOLDEN_IMAGE_INTEGRATION.md +0 -349
- package/engine/docs/MANIFEST_DRIVEN_ARCHITECTURE.md +0 -357
- package/engine/docs/README.md +0 -284
- package/install.sh +0 -19
- package/knip.json +0 -10
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +0 -2
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +0 -102
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +0 -31
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +0 -48
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +0 -63
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +0 -56
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +0 -61
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +0 -2
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +0 -114
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +0 -32
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +0 -20
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +0 -20
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +0 -20
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +0 -194
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +0 -2
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +0 -111
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +0 -33
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +0 -12
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +0 -18
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +0 -16
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +0 -12
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +0 -12
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +0 -194
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +0 -2
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +0 -84
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +0 -31
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +0 -27
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +0 -27
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +0 -23
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +0 -27
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +0 -39
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +0 -2
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +0 -80
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +0 -40
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +0 -52
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +0 -51
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +0 -2
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +0 -43
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +0 -29
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +0 -67
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +0 -27
- package/openspec/changes/optimize-runtime-docker-layers/.openspec.yaml +0 -3
- package/openspec/changes/optimize-runtime-docker-layers/design.md +0 -81
- package/openspec/changes/optimize-runtime-docker-layers/proposal.md +0 -44
- package/openspec/changes/optimize-runtime-docker-layers/specs/runtime-container-footprint/spec.md +0 -79
- package/openspec/changes/optimize-runtime-docker-layers/tasks.md +0 -36
- package/openspec/changes/prioritized-cold-start/.openspec.yaml +0 -4
- package/openspec/changes/prioritized-cold-start/design.md +0 -137
- package/openspec/changes/prioritized-cold-start/proposal.md +0 -41
- package/openspec/changes/prioritized-cold-start/specs/on-demand-resource-startup/spec.md +0 -98
- package/openspec/changes/prioritized-cold-start/tasks.md +0 -69
- package/openspec/config.yaml +0 -1
- package/openspec/specs/manifest-field-migration/spec.md +0 -24
- package/openspec/specs/resource-terminology-standard/spec.md +0 -24
- package/openspec/specs/self-contained-generated-projects/spec.md +0 -67
- package/openspec/specs/stack-terminology-standard/spec.md +0 -24
- package/platform/services/platform/proxy/service.yaml +0 -14
- package/scripts/audit-codebase.sh +0 -213
- package/scripts/autoresearch/layer-eval.sh +0 -65
- package/scripts/benchmark/README.md +0 -25
- package/scripts/benchmark/container-scale.ts +0 -503
- package/scripts/benchmark/pre-release-gate.sh +0 -9
- package/scripts/install-git-hooks.sh +0 -14
- package/scripts/measure-idle-footprint.sh +0 -58
- package/scripts/record-demo.sh +0 -43
- package/scripts/release-binaries.sh +0 -97
- package/scripts/setup-pre-commit.sh +0 -33
- package/scripts/stage-npm-engine.sh +0 -36
- package/tests/tilt-engine/__init__.py +0 -5
- package/tests/tilt-engine/conftest.py +0 -182
- package/tests/tilt-engine/fixtures/appointment-frontend-service.json +0 -11
- package/tests/tilt-engine/fixtures/identity-backend-service.json +0 -12
- package/tests/tilt-engine/fixtures/invalid-service.json +0 -4
- package/tests/tilt-engine/test_agents_md_generator.py +0 -341
- package/tests/tilt-engine/test_agents_md_integration.py +0 -378
- package/tests/tilt-engine/test_cache_operations.py +0 -181
- package/tests/tilt-engine/test_cache_persistence.py +0 -142
- package/tests/tilt-engine/test_code_executor.py +0 -152
- package/tests/tilt-engine/test_code_viewer.py +0 -127
- package/tests/tilt-engine/test_compose_port_anchors.py +0 -310
- package/tests/tilt-engine/test_config_inspector.py +0 -162
- package/tests/tilt-engine/test_daemon_focus_mode.py +0 -89
- package/tests/tilt-engine/test_daemon_polling.py +0 -122
- package/tests/tilt-engine/test_daemon_registration.py +0 -115
- package/tests/tilt-engine/test_daemon_validation.py +0 -107
- package/tests/tilt-engine/test_docker_generator_bugs.py +0 -493
- package/tests/tilt-engine/test_docker_prune.py +0 -119
- package/tests/tilt-engine/test_dockerignore_path_bug.py +0 -82
- package/tests/tilt-engine/test_file_browser.py +0 -193
- package/tests/tilt-engine/test_frontend_basepath_manifest.py +0 -27
- package/tests/tilt-engine/test_health_dependencies.py +0 -130
- package/tests/tilt-engine/test_health_endpoints.py +0 -118
- package/tests/tilt-engine/test_health_tilt_ui.py +0 -85
- package/tests/tilt-engine/test_runtime_container_footprint.py +0 -162
- package/tests/tilt-engine/test_sablier_defer_start.py +0 -237
- package/tests/tilt-engine/test_safety_aliases.py +0 -84
- package/tests/tilt-engine/test_snapshot_diff.py +0 -136
- package/tests/tilt-engine/test_snapshot_persistence.py +0 -163
- package/tests/tilt-engine/test_snapshot_scanning.py +0 -123
- package/tests/tilt-engine/test_standalone_project_boot.py +0 -61
- package/tests/tilt-engine/test_standalone_traefik.py +0 -160
- package/tests/tilt-engine/test_traefik_static_wake_route.py +0 -187
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
## Context
|
|
2
|
-
|
|
3
|
-
TDK CLI manages local microservice development through project, stack, resource, doctor, status, and Tilt-oriented commands. The current developer workflow is terminal-heavy: developers run commands manually, inspect logs across tools, and infer root causes from mixed CLI, Docker, Bun, Tilt, port, and config output.
|
|
4
|
-
|
|
5
|
-
The MVP introduces a VS Code-only extension in a new repository/package at `/private/var/www/2025/ollamar1/tdk-vscode-extension` that treats the TDK CLI as the operational backend. The extension should not fork orchestration logic from the CLI. It should call the CLI, parse structured output where available, preserve raw output for debugging, and present a focused editor-native workflow for orchestration and troubleshooting.
|
|
6
|
-
|
|
7
|
-
Stakeholders are TDK CLI maintainers, developers using TDK-managed repositories, and maintainers who need failure reports with enough context to debug quickly.
|
|
8
|
-
|
|
9
|
-
## Goals / Non-Goals
|
|
10
|
-
|
|
11
|
-
**Goals:**
|
|
12
|
-
|
|
13
|
-
- Provide a VS Code extension MVP that can be developed and versioned separately from the CLI.
|
|
14
|
-
- Deliver a runnable one-shot implementation with scaffold, source code, tests, documentation, and a verification record.
|
|
15
|
-
- Detect TDK projects and expose project, stack, resource, doctor, status, and lifecycle actions from VS Code.
|
|
16
|
-
- Provide a real troubleshooting flow that classifies failures, shows likely causes, links evidence, and offers safe next actions.
|
|
17
|
-
- Manage notifications so background monitoring is useful without becoming noisy.
|
|
18
|
-
- Document CLI JSON/status output gaps as follow-up work without changing the TDK CLI during this MVP.
|
|
19
|
-
- Include a spec critique and final requirement trace before implementation is considered complete.
|
|
20
|
-
|
|
21
|
-
**Non-Goals:**
|
|
22
|
-
|
|
23
|
-
- Support JetBrains, Vim, browser IDEs, or a standalone Electron IDE in the MVP.
|
|
24
|
-
- Replace the Tilt UI or reimplement Tilt orchestration.
|
|
25
|
-
- Automatically run destructive or state-changing repairs without explicit user confirmation.
|
|
26
|
-
- Build a full AI assistant or free-form chat interface in the first release.
|
|
27
|
-
- Add remote/team dashboard features, cloud sync, or marketplace publishing automation in the MVP.
|
|
28
|
-
- Modify the TDK CLI command contract in the MVP.
|
|
29
|
-
|
|
30
|
-
## Decisions
|
|
31
|
-
|
|
32
|
-
1. Create a new extension repo/package at `/private/var/www/2025/ollamar1/tdk-vscode-extension`.
|
|
33
|
-
|
|
34
|
-
Rationale: VS Code extension packaging, activation lifecycle, tests, and release cadence differ from the CLI. A separate package keeps the CLI focused and allows extension-specific dependencies such as `@types/vscode`, `vsce`, and VS Code test harnesses.
|
|
35
|
-
|
|
36
|
-
Alternative considered: place the extension under `tdk-cli-core/ext`. That is quicker initially, but it risks coupling extension release mechanics to CLI internals and makes it harder to ship independently. For one-shot implementation, the location is fixed to avoid blocking on repository placement.
|
|
37
|
-
|
|
38
|
-
2. Use the TDK CLI as the source of truth.
|
|
39
|
-
|
|
40
|
-
Rationale: The extension should orchestrate and troubleshoot through commands such as `tdk doctor`, `tdk status`, `tdk stacks`, `tdk resources`, `tdk up`, and `tdk down`. This avoids two implementations of project discovery, stack/resource state, and health logic.
|
|
41
|
-
|
|
42
|
-
Alternative considered: read config files and Tilt state directly from the extension. That may be needed for display hints, but it must not become the primary orchestration model.
|
|
43
|
-
|
|
44
|
-
One-shot constraint: do not modify the CLI during the MVP. If structured output is incomplete, implement resilient adapters that keep raw output available and document the missing CLI contract in `docs/cli-contract-gaps.md`.
|
|
45
|
-
|
|
46
|
-
3. Introduce a command runner boundary.
|
|
47
|
-
|
|
48
|
-
Rationale: A typed command runner can capture command, cwd, stdout, stderr, exit code, duration, cancellation, and parsed JSON payloads. This gives orchestration, troubleshooting, tests, and notifications a shared event model.
|
|
49
|
-
|
|
50
|
-
Alternative considered: run commands ad hoc from each UI command. That would make troubleshooting weaker because failures would lack consistent metadata.
|
|
51
|
-
|
|
52
|
-
4. Build troubleshooting as deterministic rules first.
|
|
53
|
-
|
|
54
|
-
Rationale: The MVP needs reliable, reviewable classification for common failures: missing TDK CLI, unsupported CLI version, non-TDK workspace, Docker daemon unavailable, Tilt unavailable, Bun unavailable, occupied ports, invalid or missing master config, invalid service manifest, failed health endpoint, duplicate daemon, and Tilt startup failures.
|
|
55
|
-
|
|
56
|
-
Alternative considered: use an LLM-based troubleshooter first. That would be flashy but harder to test and risky for repair suggestions. LLM assistance can be considered later once deterministic evidence capture is solid.
|
|
57
|
-
|
|
58
|
-
5. Use quiet-by-default notification policy.
|
|
59
|
-
|
|
60
|
-
Rationale: Background status checks can easily become spam. The extension should deduplicate repeated failures, escalate only when state changes or user action is required, and let users tune categories such as doctor failures, stack failures, and repair completion.
|
|
61
|
-
|
|
62
|
-
Alternative considered: notify on every failed poll. That is easier, but it teaches users to ignore the extension.
|
|
63
|
-
|
|
64
|
-
6. Keep repair actions explicit and safe.
|
|
65
|
-
|
|
66
|
-
Rationale: Troubleshooting can recommend actions such as opening logs, rerunning doctor, starting Docker docs, freeing a port guide, regenerating configs, or running a specific TDK command. Any command that changes project files, starts/stops services, prunes Docker, or modifies config must require explicit confirmation and show the exact command.
|
|
67
|
-
|
|
68
|
-
Alternative considered: one-click auto-fix for every known issue. That is too risky for an MVP in developer workspaces.
|
|
69
|
-
|
|
70
|
-
7. Ship three concrete VS Code surfaces.
|
|
71
|
-
|
|
72
|
-
Rationale: A one-shot MVP needs enough UI to prove value without becoming a full IDE. The required surfaces are a TDK Explorer tree, a Troubleshooter view, and a TDK output channel. Commands can be exposed through command palette and tree actions.
|
|
73
|
-
|
|
74
|
-
Alternative considered: command palette only. That is faster, but too weak to satisfy the orchestration and notification requirements.
|
|
75
|
-
|
|
76
|
-
## Risks / Trade-offs
|
|
77
|
-
|
|
78
|
-
- CLI output is not structured enough for robust parsing -> Use conservative parsing and mocked adapters for tests, preserve raw output, and document gaps for a later CLI change.
|
|
79
|
-
- Extension becomes a thin command palette wrapper -> Require project tree views, status surfaces, troubleshooter evidence, and notification policy as MVP acceptance criteria.
|
|
80
|
-
- Troubleshooter over-promises root cause accuracy -> Display confidence, evidence, and next safe step rather than pretending every issue has a single guaranteed cause.
|
|
81
|
-
- Notifications become noisy -> Deduplicate by issue fingerprint, workspace, resource, severity, and state transition.
|
|
82
|
-
- New repo setup slows the first implementation -> Generate a minimal VS Code TypeScript extension scaffold with focused tests before expanding UI.
|
|
83
|
-
- Repair actions could damage local state -> Require confirmation for all state-changing actions and block destructive commands from automatic execution.
|
|
84
|
-
|
|
85
|
-
## Migration Plan
|
|
86
|
-
|
|
87
|
-
1. Scaffold `/private/var/www/2025/ollamar1/tdk-vscode-extension` with TypeScript, VS Code engine constraints, test harness, linting, and basic activation.
|
|
88
|
-
2. Implement the command runner and workspace detector against the installed or workspace-local TDK CLI.
|
|
89
|
-
3. Add orchestration commands and tree/status views for projects, stacks, and resources.
|
|
90
|
-
4. Add deterministic diagnostic rules and the troubleshooter webview/tree/detail UI.
|
|
91
|
-
5. Add notification policy, deduplication, and user settings.
|
|
92
|
-
6. Document missing CLI structured-output gaps without changing the CLI.
|
|
93
|
-
7. Run spec critique, implementation review, automated tests, and manual VS Code smoke tests.
|
|
94
|
-
|
|
95
|
-
Rollback is simple for the MVP: disable or uninstall the VS Code extension. Follow-up CLI structured-output improvements, if implemented after this MVP, must be additive and preserve existing command behavior.
|
|
96
|
-
|
|
97
|
-
## Fixed MVP Answers
|
|
98
|
-
|
|
99
|
-
- Repository path: `/private/var/www/2025/ollamar1/tdk-vscode-extension`.
|
|
100
|
-
- Minimum CLI version: detect and display the installed CLI version when available; do not enforce a minimum version in the MVP unless the CLI command is missing.
|
|
101
|
-
- Repair actions: support command suggestions and confirmed command execution for safe, explicit commands only.
|
|
102
|
-
- Notification history: use VS Code native notifications plus the Troubleshooter view as the persistent issue history.
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
## Why
|
|
2
|
-
|
|
3
|
-
TDK CLI already provides project, stack, resource, health, and Tilt orchestration commands, but developers still have to leave the editor to understand what is running, why something failed, and what to do next. A VS Code-only plugin can turn the CLI into an operational cockpit with guided troubleshooting, clearer failure notifications, and one-click orchestration for the common local development loop.
|
|
4
|
-
|
|
5
|
-
## What Changes
|
|
6
|
-
|
|
7
|
-
- Create a new VS Code extension repository/package at `/private/var/www/2025/ollamar1/tdk-vscode-extension` for a TDK IDE plugin instead of embedding extension code in the CLI package.
|
|
8
|
-
- Add VS Code commands and panels for TDK project detection, stack/resource orchestration, status inspection, logs, and doctor checks.
|
|
9
|
-
- Add a real troubleshooter that classifies common TDK/Tilt/Docker/Bun/port/config failures, explains likely causes, and offers safe, explicit repair actions.
|
|
10
|
-
- Add notification management so normal background polling remains quiet, while actionable failures surface with deduplicated severity, context, and next steps.
|
|
11
|
-
- Add an implementation review workflow that validates the shipped extension against every requirement and records critique findings before the one-shot MVP is considered done.
|
|
12
|
-
|
|
13
|
-
## Capabilities
|
|
14
|
-
|
|
15
|
-
### New Capabilities
|
|
16
|
-
|
|
17
|
-
- `vscode-tdk-orchestration`: VS Code extension behavior for detecting TDK projects and orchestrating project, stack, and resource actions through the TDK CLI.
|
|
18
|
-
- `vscode-tdk-troubleshooting`: Diagnostic and remediation behavior for identifying common local development failures and presenting safe recovery actions.
|
|
19
|
-
- `vscode-tdk-notifications`: Notification policy behavior for quiet background monitoring, actionable alerts, deduplication, and user-controlled notification preferences.
|
|
20
|
-
|
|
21
|
-
### Modified Capabilities
|
|
22
|
-
|
|
23
|
-
- None.
|
|
24
|
-
|
|
25
|
-
## Impact
|
|
26
|
-
|
|
27
|
-
- Adds a new VS Code extension repo/package at `/private/var/www/2025/ollamar1/tdk-vscode-extension`.
|
|
28
|
-
- Uses the existing TDK CLI as the source of truth for project status, orchestration, health checks, and remediation commands.
|
|
29
|
-
- The one-shot MVP MUST NOT require changing the TDK CLI. If structured CLI output is missing, the extension must use mocked adapters in tests and conservative raw-output parsing at runtime, then document follow-up CLI improvements.
|
|
30
|
-
- Adds extension tests, command-runner tests, diagnostic classifier tests, and manual VS Code extension smoke testing.
|
|
31
|
-
- Does not change the CLI command contract for existing users in the MVP.
|
package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
## ADDED Requirements
|
|
2
|
-
|
|
3
|
-
### Requirement: Notifications are quiet by default
|
|
4
|
-
The extension SHALL avoid user-visible notifications for successful background polling and unchanged non-actionable states.
|
|
5
|
-
|
|
6
|
-
#### Scenario: Background poll succeeds
|
|
7
|
-
- **WHEN** a background status or health poll succeeds
|
|
8
|
-
- **THEN** the extension updates internal state without showing a user-visible notification
|
|
9
|
-
|
|
10
|
-
#### Scenario: Existing issue remains unchanged
|
|
11
|
-
- **WHEN** a background poll observes an already-reported issue with the same fingerprint and severity
|
|
12
|
-
- **THEN** the extension suppresses duplicate user-visible notifications
|
|
13
|
-
|
|
14
|
-
### Requirement: Actionable failures notify the user
|
|
15
|
-
The extension SHALL notify the user when a new or escalated issue requires attention.
|
|
16
|
-
|
|
17
|
-
#### Scenario: New critical issue
|
|
18
|
-
- **WHEN** a new critical TDK, Tilt, Docker, Bun, port, or configuration issue is detected
|
|
19
|
-
- **THEN** the extension shows a notification with a concise summary and an action to open troubleshooting details
|
|
20
|
-
|
|
21
|
-
#### Scenario: Issue severity escalates
|
|
22
|
-
- **WHEN** a known issue changes to a higher severity
|
|
23
|
-
- **THEN** the extension shows a new notification for the escalation
|
|
24
|
-
|
|
25
|
-
### Requirement: Notifications are user configurable
|
|
26
|
-
The extension SHALL provide settings that allow users to control notification categories and quiet behavior.
|
|
27
|
-
|
|
28
|
-
#### Scenario: User disables stack failure notifications
|
|
29
|
-
- **WHEN** stack failure notifications are disabled in settings
|
|
30
|
-
- **THEN** the extension records stack failures in the troubleshooting view without showing user-visible stack failure notifications
|
|
31
|
-
|
|
32
|
-
#### Scenario: User keeps critical notifications enabled
|
|
33
|
-
- **WHEN** critical notifications are enabled
|
|
34
|
-
- **THEN** the extension continues to notify for critical new or escalated issues
|
|
35
|
-
|
|
36
|
-
### Requirement: Notification actions route to context
|
|
37
|
-
The extension SHALL route notification actions to the relevant stack, resource, command output, or troubleshooting issue.
|
|
38
|
-
|
|
39
|
-
#### Scenario: User opens issue from notification
|
|
40
|
-
- **WHEN** the user selects the notification action to inspect an issue
|
|
41
|
-
- **THEN** the extension opens the troubleshooting detail for the issue that triggered the notification
|
|
42
|
-
|
|
43
|
-
### Requirement: Troubleshooter acts as notification history
|
|
44
|
-
The extension SHALL retain actionable notification issues in the Troubleshooter view so users can revisit them after dismissing native VS Code notifications.
|
|
45
|
-
|
|
46
|
-
#### Scenario: User dismisses notification
|
|
47
|
-
- **WHEN** the user dismisses a native VS Code notification for an actionable issue
|
|
48
|
-
- **THEN** the issue remains available in the Troubleshooter view until resolved or superseded
|
package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
## ADDED Requirements
|
|
2
|
-
|
|
3
|
-
### Requirement: VS Code extension detects TDK workspaces
|
|
4
|
-
The extension SHALL detect whether the active VS Code workspace contains a TDK project before enabling orchestration actions.
|
|
5
|
-
|
|
6
|
-
#### Scenario: TDK project detected
|
|
7
|
-
- **WHEN** a workspace contains TDK project configuration or a valid TDK CLI project root
|
|
8
|
-
- **THEN** the extension enables TDK views and commands for that workspace
|
|
9
|
-
|
|
10
|
-
#### Scenario: Non-TDK workspace
|
|
11
|
-
- **WHEN** a workspace does not contain a TDK project
|
|
12
|
-
- **THEN** the extension shows a non-blocking empty state and keeps orchestration actions disabled
|
|
13
|
-
|
|
14
|
-
### Requirement: Extension is delivered as a new package
|
|
15
|
-
The extension SHALL be implemented as a new VS Code extension package at `/private/var/www/2025/ollamar1/tdk-vscode-extension`.
|
|
16
|
-
|
|
17
|
-
#### Scenario: One-shot implementation starts
|
|
18
|
-
- **WHEN** implementation begins
|
|
19
|
-
- **THEN** the extension package is scaffolded outside `tdk-cli-core` at `/private/var/www/2025/ollamar1/tdk-vscode-extension`
|
|
20
|
-
|
|
21
|
-
#### Scenario: Extension package is verified
|
|
22
|
-
- **WHEN** the MVP is complete
|
|
23
|
-
- **THEN** the package contains source code, package metadata, tests, documentation, and verification notes
|
|
24
|
-
|
|
25
|
-
### Requirement: Extension runs orchestration through TDK CLI
|
|
26
|
-
The extension SHALL execute project, stack, resource, doctor, status, up, and down actions through the TDK CLI instead of duplicating orchestration logic.
|
|
27
|
-
|
|
28
|
-
#### Scenario: User starts a stack
|
|
29
|
-
- **WHEN** the user starts a stack from VS Code
|
|
30
|
-
- **THEN** the extension runs the corresponding TDK CLI stack lifecycle command in the workspace root and captures the command result
|
|
31
|
-
|
|
32
|
-
#### Scenario: CLI command fails
|
|
33
|
-
- **WHEN** a TDK CLI orchestration command exits with a non-zero status
|
|
34
|
-
- **THEN** the extension preserves stdout, stderr, exit code, command, workspace, and duration for troubleshooting
|
|
35
|
-
|
|
36
|
-
### Requirement: Extension exposes project, stack, and resource status
|
|
37
|
-
The extension SHALL show project, stack, and resource status inside VS Code using TDK CLI status data.
|
|
38
|
-
|
|
39
|
-
#### Scenario: Status refresh succeeds
|
|
40
|
-
- **WHEN** the user refreshes TDK status
|
|
41
|
-
- **THEN** the extension updates the visible project, stack, and resource state from the latest CLI result
|
|
42
|
-
|
|
43
|
-
#### Scenario: Status refresh is cancelled
|
|
44
|
-
- **WHEN** the user cancels an in-progress status refresh
|
|
45
|
-
- **THEN** the extension stops the command and leaves the previous known status visible with a cancellation indication
|
|
46
|
-
|
|
47
|
-
### Requirement: Extension provides required MVP surfaces
|
|
48
|
-
The extension SHALL provide a TDK Explorer view, a Troubleshooter view, and a TDK output channel.
|
|
49
|
-
|
|
50
|
-
#### Scenario: Extension activates in a TDK workspace
|
|
51
|
-
- **WHEN** the extension activates in a detected TDK workspace
|
|
52
|
-
- **THEN** the TDK Explorer, Troubleshooter view, and TDK output channel are available
|
|
53
|
-
|
|
54
|
-
#### Scenario: Command output is produced
|
|
55
|
-
- **WHEN** a TDK command runs through the extension
|
|
56
|
-
- **THEN** the raw command output is appended to the TDK output channel
|
|
57
|
-
|
|
58
|
-
### Requirement: MVP is VS Code only
|
|
59
|
-
The IDE plugin SHALL support VS Code only for the MVP.
|
|
60
|
-
|
|
61
|
-
#### Scenario: Non-VS Code IDE support requested
|
|
62
|
-
- **WHEN** implementation scope is reviewed for the MVP
|
|
63
|
-
- **THEN** JetBrains, Vim, browser IDE, and standalone Electron support are excluded from required delivery
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
## ADDED Requirements
|
|
2
|
-
|
|
3
|
-
### Requirement: Troubleshooter classifies common TDK failures
|
|
4
|
-
The extension SHALL classify common local development failures using deterministic diagnostic rules based on CLI results, environment checks, and captured command evidence.
|
|
5
|
-
|
|
6
|
-
#### Scenario: Missing prerequisite
|
|
7
|
-
- **WHEN** Docker, Tilt, Bun, or the TDK CLI is missing or unavailable
|
|
8
|
-
- **THEN** the troubleshooter identifies the missing prerequisite and presents the evidence that caused the classification
|
|
9
|
-
|
|
10
|
-
#### Scenario: Port conflict
|
|
11
|
-
- **WHEN** a TDK command or doctor result indicates that a required port is occupied
|
|
12
|
-
- **THEN** the troubleshooter identifies the affected port and resource when that information is available
|
|
13
|
-
|
|
14
|
-
#### Scenario: Invalid project configuration
|
|
15
|
-
- **WHEN** TDK project defaults, tech stack config, Tiltfile, or service manifests are missing or invalid
|
|
16
|
-
- **THEN** the troubleshooter identifies the invalid configuration area and links to the relevant file or command output when available
|
|
17
|
-
|
|
18
|
-
#### Scenario: Tilt startup failure
|
|
19
|
-
- **WHEN** a TDK lifecycle command reports a Tilt startup failure
|
|
20
|
-
- **THEN** the troubleshooter identifies the failure as Tilt-related and preserves the relevant command output as evidence
|
|
21
|
-
|
|
22
|
-
### Requirement: Troubleshooter presents likely cause and next action
|
|
23
|
-
The extension SHALL show likely cause, confidence, evidence, and recommended next action for each classified issue.
|
|
24
|
-
|
|
25
|
-
#### Scenario: Classified issue displayed
|
|
26
|
-
- **WHEN** the troubleshooter opens a classified issue
|
|
27
|
-
- **THEN** the issue detail includes severity, likely cause, confidence, evidence, and at least one next action
|
|
28
|
-
|
|
29
|
-
#### Scenario: Unknown issue displayed
|
|
30
|
-
- **WHEN** the troubleshooter cannot classify a failure
|
|
31
|
-
- **THEN** the issue detail shows the raw command evidence and recommends a safe next diagnostic step
|
|
32
|
-
|
|
33
|
-
### Requirement: Repair actions require explicit confirmation
|
|
34
|
-
The extension SHALL require explicit user confirmation before running any repair action that changes files, starts or stops services, prunes resources, or modifies local environment state.
|
|
35
|
-
|
|
36
|
-
#### Scenario: User selects state-changing repair
|
|
37
|
-
- **WHEN** the user selects a repair action that changes local state
|
|
38
|
-
- **THEN** the extension displays the exact command or operation and waits for confirmation before execution
|
|
39
|
-
|
|
40
|
-
#### Scenario: User declines repair
|
|
41
|
-
- **WHEN** the user declines a repair confirmation
|
|
42
|
-
- **THEN** the extension does not run the repair and keeps the troubleshooting issue available
|
|
43
|
-
|
|
44
|
-
### Requirement: Troubleshooter preserves diagnostic context
|
|
45
|
-
The extension SHALL retain recent diagnostic context for failed commands so users can review evidence without rerunning the command immediately.
|
|
46
|
-
|
|
47
|
-
#### Scenario: Failed orchestration command
|
|
48
|
-
- **WHEN** an orchestration command fails
|
|
49
|
-
- **THEN** the troubleshooter records the command metadata, raw output, parsed issue fingerprints, and timestamp
|
|
50
|
-
|
|
51
|
-
### Requirement: CLI contract gaps are documented
|
|
52
|
-
The extension SHALL document any missing or unstable TDK CLI output contract encountered during implementation instead of requiring CLI changes for the MVP.
|
|
53
|
-
|
|
54
|
-
#### Scenario: CLI output cannot be parsed robustly
|
|
55
|
-
- **WHEN** an adapter cannot reliably parse a TDK CLI command output
|
|
56
|
-
- **THEN** the extension keeps raw output available and records the missing structured-output need in CLI contract gap documentation
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
## 1. Scope Review and Repository Setup
|
|
2
|
-
|
|
3
|
-
- [x] 1.1 Create `/private/var/www/2025/ollamar1/tdk-vscode-extension` as the new VS Code-only extension package location.
|
|
4
|
-
- [x] 1.2 Add `docs/spec-critique.md` documenting MVP creep risks, unsafe repair risks, missing CLI contract risks, and how this implementation constrains each one.
|
|
5
|
-
- [x] 1.3 Scaffold a TypeScript VS Code extension package with activation, command registration, test harness, lint/typecheck scripts, packaging metadata, and README.
|
|
6
|
-
- [x] 1.4 Add extension configuration settings for TDK CLI path, polling behavior, notification categories, and safe repair confirmation behavior.
|
|
7
|
-
- [x] 1.5 Add a verification checklist document that maps each spec requirement to implementation and test evidence.
|
|
8
|
-
|
|
9
|
-
## 2. TDK CLI Integration Layer
|
|
10
|
-
|
|
11
|
-
- [x] 2.1 Implement a command runner that captures command, cwd, stdout, stderr, exit code, duration, cancellation, and timestamp.
|
|
12
|
-
- [x] 2.2 Implement TDK CLI discovery with support for configured binary path, workspace-local binary, and PATH fallback.
|
|
13
|
-
- [x] 2.3 Implement workspace detection for TDK project roots and disabled empty-state behavior for non-TDK workspaces.
|
|
14
|
-
- [x] 2.4 Implement typed adapters for `tdk doctor`, `tdk status`, `tdk stacks`, `tdk resources`, `tdk up`, and `tdk down`.
|
|
15
|
-
- [x] 2.5 Add conservative raw-output parsing for adapters where structured JSON is unavailable.
|
|
16
|
-
- [x] 2.6 Document missing structured-output needs in `docs/cli-contract-gaps.md` without modifying the TDK CLI.
|
|
17
|
-
|
|
18
|
-
## 3. VS Code Orchestration UI
|
|
19
|
-
|
|
20
|
-
- [x] 3.1 Add a TDK Explorer tree view for detected project, stacks, resources, and last known status.
|
|
21
|
-
- [x] 3.2 Add commands for refresh status, run doctor, start stack/resource, stop stack/resource, and stop all services.
|
|
22
|
-
- [x] 3.3 Add cancellation support for long-running refresh/doctor/orchestration commands.
|
|
23
|
-
- [x] 3.4 Add a TDK output channel and append every executed command plus raw stdout/stderr.
|
|
24
|
-
- [x] 3.5 Preserve raw command output and surface it from the relevant project, stack, resource, or command result.
|
|
25
|
-
|
|
26
|
-
## 4. Troubleshooter
|
|
27
|
-
|
|
28
|
-
- [x] 4.1 Define diagnostic issue types, severity levels, confidence levels, fingerprints, evidence records, and recommended next-action models.
|
|
29
|
-
- [x] 4.2 Implement deterministic classifiers for missing TDK CLI, unsupported CLI version, non-TDK workspace, Docker unavailable, Tilt unavailable, Bun unavailable, occupied ports, missing/invalid master config, invalid service manifest, failed health endpoint, duplicate daemon, and Tilt startup failure.
|
|
30
|
-
- [x] 4.3 Add a Troubleshooter view that shows issue list, severity, likely cause, confidence, evidence, raw output, and next actions.
|
|
31
|
-
- [x] 4.4 Implement safe repair actions with explicit confirmation and exact command/operation preview for any state-changing action.
|
|
32
|
-
- [x] 4.5 Ensure unknown failures retain raw command evidence and recommend a safe diagnostic next step.
|
|
33
|
-
- [x] 4.6 Keep actionable issues available in the Troubleshooter view after native VS Code notifications are dismissed.
|
|
34
|
-
|
|
35
|
-
## 5. Notification Management
|
|
36
|
-
|
|
37
|
-
- [x] 5.1 Implement quiet-by-default background polling with no notifications for successful checks or unchanged non-actionable states.
|
|
38
|
-
- [x] 5.2 Implement notification deduplication by issue fingerprint, workspace, resource, severity, and state transition.
|
|
39
|
-
- [x] 5.3 Implement notifications for new critical issues, escalations, and completed user-triggered repair actions.
|
|
40
|
-
- [x] 5.4 Route notification actions to the relevant troubleshooting detail, command output, stack, or resource.
|
|
41
|
-
- [x] 5.5 Honor user settings for notification categories and quiet behavior.
|
|
42
|
-
- [x] 5.6 Add tests proving dismissed native notifications do not remove issues from Troubleshooter history.
|
|
43
|
-
|
|
44
|
-
## 6. Tests and Manual Validation
|
|
45
|
-
|
|
46
|
-
- [x] 6.1 Add unit tests for command runner success, failure, cancellation, and output capture.
|
|
47
|
-
- [x] 6.2 Add unit tests for TDK workspace detection and CLI discovery fallbacks.
|
|
48
|
-
- [x] 6.3 Add unit tests for every deterministic diagnostic classifier and unknown-failure fallback.
|
|
49
|
-
- [x] 6.4 Add tests for notification deduplication, escalation, and category suppression.
|
|
50
|
-
- [x] 6.5 Add VS Code extension integration tests for activation, command registration, disabled non-TDK workspace state, and at least one orchestration command using a mocked CLI.
|
|
51
|
-
- [x] 6.6 Add mocked CLI fixtures for success, failure, missing prerequisites, port conflict, invalid config, Tilt startup failure, and unknown failure.
|
|
52
|
-
- [x] 6.7 Run lint, typecheck, unit tests, and VS Code extension tests.
|
|
53
|
-
- [x] 6.8 Package or dry-run package the extension to prove the MVP can be installed locally.
|
|
54
|
-
|
|
55
|
-
## 7. Documentation and Final Review
|
|
56
|
-
|
|
57
|
-
- [x] 7.1 Document MVP usage, settings, supported commands, troubleshooting behavior, notification policy, and safe repair guarantees.
|
|
58
|
-
- [x] 7.2 Document known limitations and follow-up candidates such as richer Tilt links, marketplace publishing, and optional AI-assisted troubleshooting.
|
|
59
|
-
- [x] 7.3 Complete the verification checklist mapping every scenario in the three spec files to source code and test evidence.
|
|
60
|
-
- [x] 7.4 Perform a final critical review of the specs and implementation for overreach, missed failure modes, notification noise, unsafe repair actions, and any gap that blocks one-shot MVP acceptance.
|
|
61
|
-
- [x] 7.5 Record final commands run and results in the verification notes.
|
package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
## Context
|
|
2
|
-
|
|
3
|
-
The codebase currently has terminology inconsistencies that have evolved over time:
|
|
4
|
-
|
|
5
|
-
1. **"domain" vs "stack"**: The manifest schema originally used `domain` to group related services, but this has been migrated to `stack`. Currently, code uses fallback patterns like `manifest.get('stack') or manifest.get('domain')` to support both, creating confusion about which is canonical.
|
|
6
|
-
|
|
7
|
-
2. **"service" vs "resource"**: The architecture has shifted from thinking in terms of "services" (business-oriented) to "resources" (deployment-oriented Tilt resources). Function names like `get_app_resources()` exist alongside variable names like `svc` and `service`, and docstrings refer to "services" while the code handles "resources".
|
|
8
|
-
|
|
9
|
-
3. **Cache keys**: The discovery cache uses `domain_configs` which doesn't align with the `stack` terminology.
|
|
10
|
-
|
|
11
|
-
4. **Autogenerated files**: Files like `product_autogenerated_domains_index.star` use old terminology.
|
|
12
|
-
|
|
13
|
-
These inconsistencies make the codebase harder to understand, especially for new developers. Standardizing on "stack" (for logical grouping) and "resource" (for deployable units) will provide clarity.
|
|
14
|
-
|
|
15
|
-
## Goals / Non-Goals
|
|
16
|
-
|
|
17
|
-
**Goals:**
|
|
18
|
-
- Replace all `domain` manifest field access with `stack` (remove fallbacks)
|
|
19
|
-
- Rename `domain_configs` cache key to `stack_configs`
|
|
20
|
-
- Update all docstrings and comments from "service" to "resource"
|
|
21
|
-
- Rename variables from `svc`, `service` to `resource`
|
|
22
|
-
- Rename functions like `_render_product_domains_index()` to `_render_product_stacks_index()`
|
|
23
|
-
- Update autogenerated file naming from `domains` to `stacks`
|
|
24
|
-
- Ensure no functional changes - purely terminology refactoring
|
|
25
|
-
|
|
26
|
-
**Non-Goals:**
|
|
27
|
-
- Changing manifest file structure (the JSON schema)
|
|
28
|
-
- Changing the actual behavior of any function
|
|
29
|
-
- Adding new features or capabilities
|
|
30
|
-
- Removing support for legacy manifest formats in the loader/parser
|
|
31
|
-
- Renaming the `app_resources` cache key (widely used, high risk)
|
|
32
|
-
|
|
33
|
-
## Decisions
|
|
34
|
-
|
|
35
|
-
### Decision 1: Keep `app_resources` Cache Key
|
|
36
|
-
**Rationale**: The `app_resources` key is used extensively across the codebase (50+ references). Changing it would touch too many files and create high risk of merge conflicts. The term "app resources" is acceptable since it describes the collection of resources for an app.
|
|
37
|
-
|
|
38
|
-
**Alternatives considered**:
|
|
39
|
-
- Rename to `resources` - Rejected due to high touchpoint count and risk
|
|
40
|
-
- Keep as-is - Accepted as "app resources" is descriptive enough
|
|
41
|
-
|
|
42
|
-
### Decision 2: Remove `domain` Fallback Patterns
|
|
43
|
-
**Rationale**: Patterns like `manifest.get('stack') or manifest.get('domain')` exist to support legacy manifests. However, all current manifests should have migrated to `stack`. Removing the fallback simplifies code and establishes `stack` as the canonical field.
|
|
44
|
-
|
|
45
|
-
**Migration approach**:
|
|
46
|
-
```starlark
|
|
47
|
-
# Before:
|
|
48
|
-
stack = manifest.get('stack') or manifest.get('domain') or extract_stack_from_path(path)
|
|
49
|
-
|
|
50
|
-
# After:
|
|
51
|
-
stack = manifest.get('stack', extract_stack_from_path(path))
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Decision 3: Update Variable Names Incrementally
|
|
55
|
-
**Rationale**: Variables like `svc`, `service` should become `resource`. However, in loops where context is clear (e.g., `for svc in resources`), shorter names are acceptable. Focus on function parameters and docstrings first.
|
|
56
|
-
|
|
57
|
-
**Priority order**:
|
|
58
|
-
1. Function parameter names
|
|
59
|
-
2. Docstrings and comments
|
|
60
|
-
3. Variable names in outer scope
|
|
61
|
-
4. Loop variables (lower priority)
|
|
62
|
-
|
|
63
|
-
### Decision 4: File Renaming for Autogenerated Files
|
|
64
|
-
**Rationale**: Autogenerated files like `product_autogenerated_domains_index.star` should be renamed to use `stacks`. This requires updating both the file generation code and any `load()` statements that reference these files.
|
|
65
|
-
|
|
66
|
-
## Risks / Trade-offs
|
|
67
|
-
|
|
68
|
-
**Risk**: Breaking external code that reads `domain` from manifests
|
|
69
|
-
- **Mitigation**: This is a **BREAKING** change as noted. External code must migrate to `stack` field.
|
|
70
|
-
|
|
71
|
-
**Risk**: Inadvertent functional changes during bulk renaming
|
|
72
|
-
- **Mitigation**: Each task will be focused on a specific file or small group. Tests must pass after each batch.
|
|
73
|
-
|
|
74
|
-
**Risk**: Merge conflicts with ongoing development
|
|
75
|
-
- **Mitigation**: Tasks are organized by directory to minimize conflict surface area. Complete quickly.
|
|
76
|
-
|
|
77
|
-
**Risk**: Missing some instances of old terminology
|
|
78
|
-
- **Mitigation**: Final verification task will grep for remaining `domain`, `svc`, `service` patterns.
|
|
79
|
-
|
|
80
|
-
**Risk**: Variable name collisions after renaming
|
|
81
|
-
- **Mitigation**: Use `resource` not `res` (too short). In nested contexts, use descriptive names like `app_resource`.
|
|
82
|
-
|
|
83
|
-
## Migration Plan
|
|
84
|
-
|
|
85
|
-
1. **Phase 1: Discovery System** (Tasks 1-40)
|
|
86
|
-
- Update `/discovery/` directory files
|
|
87
|
-
- Rename `domain_configs` to `stack_configs`
|
|
88
|
-
- Update manifest access patterns
|
|
89
|
-
- Update docstrings
|
|
90
|
-
|
|
91
|
-
2. **Phase 2: Engine Topologies Tilt** (Tasks 41-100)
|
|
92
|
-
- Update deprecated system files
|
|
93
|
-
- Update generator files
|
|
94
|
-
- Update resource orchestration
|
|
95
|
-
|
|
96
|
-
3. **Phase 3: Engine Topologies Platform** (Tasks 101-130)
|
|
97
|
-
- Update platform-level files
|
|
98
|
-
- Update Docker, networking, compose files
|
|
99
|
-
|
|
100
|
-
4. **Phase 4: Autogenerated File Naming** (Tasks 131-140)
|
|
101
|
-
- Rename autogenerated file references
|
|
102
|
-
- Update file generation code
|
|
103
|
-
|
|
104
|
-
5. **Phase 5: Verification** (Tasks 141-150)
|
|
105
|
-
- Run full test suite
|
|
106
|
-
- Grep for remaining `domain` references
|
|
107
|
-
- Grep for remaining `service` vs `resource` inconsistencies
|
|
108
|
-
- Verify no `manifest.get('domain')` patterns remain
|
|
109
|
-
|
|
110
|
-
## Open Questions
|
|
111
|
-
|
|
112
|
-
- Should we keep `app_resources` as-is or rename to `resources`? (Decision: keep as-is for now)
|
|
113
|
-
- Should we update function names like `get_app_resources()`? (Decision: lower priority, focus on internals first)
|
|
114
|
-
- How to handle `svc` in tight loops where context is clear? (Decision: focus on function params and docstrings first)
|
package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
## Why
|
|
2
|
-
|
|
3
|
-
The codebase currently uses inconsistent terminology: "domain" vs "stack" and "service" vs "resource" are used interchangeably, causing confusion. The manifest schema has migrated from `domain` to `stack` as the preferred field, and the architecture has shifted from "services" to "resources" as the core abstraction. Standardizing on "stack" (for grouping/organizing) and "resource" (for individual deployable units) will clarify the mental model and reduce cognitive overhead for developers working across 174+ .star files.
|
|
4
|
-
|
|
5
|
-
## What Changes
|
|
6
|
-
|
|
7
|
-
- **BREAKING** Rename all `domain` references to `stack` in manifest field access patterns (`manifest.get('domain')` → `manifest.get('stack')`)
|
|
8
|
-
- **BREAKING** Rename `domain_configs` cache key to `stack_configs`
|
|
9
|
-
- **BREAKING** Rename `_render_product_domains_index()` function to `_render_product_stacks_index()`
|
|
10
|
-
- **BREAKING** Update all function docstrings and comments from "service" to "resource" terminology
|
|
11
|
-
- **BREAKING** Rename variables like `svc` to `resource`, `service` to `resource` throughout
|
|
12
|
-
- Remove fallback patterns like `manifest.get('stack') or manifest.get('domain')` and use only `stack`
|
|
13
|
-
- Update autogenerated file names from `domains` to `stacks`
|
|
14
|
-
|
|
15
|
-
## Capabilities
|
|
16
|
-
|
|
17
|
-
### New Capabilities
|
|
18
|
-
- `stack-terminology-standard`: Standardize all grouping/organization terminology to "stack"
|
|
19
|
-
- `resource-terminology-standard`: Standardize all deployable unit terminology to "resource"
|
|
20
|
-
- `manifest-field-migration`: Remove deprecated `domain` field support from manifest access patterns
|
|
21
|
-
|
|
22
|
-
### Modified Capabilities
|
|
23
|
-
<!-- No existing spec requirements are changing - this is terminology refactoring -->
|
|
24
|
-
|
|
25
|
-
## Impact
|
|
26
|
-
|
|
27
|
-
- **Affected Files**: 50+ .star files across `/discovery/`, `/engine/topologies/tilt/`, `/engine/topologies/platform/`
|
|
28
|
-
- **Function Count**: 200+ function names, variables, and docstrings will be updated
|
|
29
|
-
- **Dependencies**: Any external code accessing `domain` field in manifests will need to use `stack`
|
|
30
|
-
- **Breaking Changes**: **BREAKING** - Manifest field access changes, function renames, cache key renames
|
|
31
|
-
- **Risk Level**: High - extensive terminology changes across many files
|
|
32
|
-
- **Testing Required**: Full test suite to verify no functional regressions
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
## ADDED Requirements
|
|
2
|
-
|
|
3
|
-
### Requirement: Manifest field migration from domain to stack
|
|
4
|
-
All manifest field access patterns SHALL remove fallback support for the deprecated `domain` field.
|
|
5
|
-
|
|
6
|
-
#### Scenario: No domain field fallback
|
|
7
|
-
- **WHEN** code retrieves the stack field from a manifest
|
|
8
|
-
- **THEN** it SHALL NOT use fallback patterns like `manifest.get('stack') or manifest.get('domain')`
|
|
9
|
-
|
|
10
|
-
#### Scenario: Stack field with default only
|
|
11
|
-
- **WHEN** a default value is needed for the stack field
|
|
12
|
-
- **THEN** code SHALL use `manifest.get('stack', default_value)` and NOT check for domain
|
|
13
|
-
|
|
14
|
-
#### Scenario: Domain field references removed
|
|
15
|
-
- **WHEN** searching the codebase for domain field access
|
|
16
|
-
- **THEN** no `manifest.get('domain')` patterns SHALL exist except in legacy parser code
|
|
17
|
-
|
|
18
|
-
#### Scenario: Filtering uses stack field only
|
|
19
|
-
- **WHEN** filtering manifests by logical group
|
|
20
|
-
- **THEN** code SHALL filter by `stack` field only and NOT check `domain` as fallback
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
## ADDED Requirements
|
|
2
|
-
|
|
3
|
-
### Requirement: Resource terminology standardization
|
|
4
|
-
All references to deployable units SHALL use the term "resource" instead of "service".
|
|
5
|
-
|
|
6
|
-
#### Scenario: Function parameters use resource terminology
|
|
7
|
-
- **WHEN** a function accepts a deployable unit as a parameter
|
|
8
|
-
- **THEN** the parameter name SHALL be `resource` or `resource_dict` and NOT `service` or `svc`
|
|
9
|
-
|
|
10
|
-
#### Scenario: Docstrings use resource terminology
|
|
11
|
-
- **WHEN** a function docstring describes a deployable unit
|
|
12
|
-
- **THEN** it SHALL use the term "resource" and NOT "service"
|
|
13
|
-
|
|
14
|
-
#### Scenario: Variable names use resource terminology
|
|
15
|
-
- **WHEN** a variable holds a deployable unit
|
|
16
|
-
- **THEN** the variable name SHALL be `resource` and NOT `svc` or `service`
|
|
17
|
-
|
|
18
|
-
#### Scenario: Comments use resource terminology
|
|
19
|
-
- **WHEN** code comments describe deployable units
|
|
20
|
-
- **THEN** they SHALL use the term "resource" and NOT "service"
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
## ADDED Requirements
|
|
2
|
-
|
|
3
|
-
### Requirement: Stack terminology standardization
|
|
4
|
-
All references to logical grouping of resources SHALL use the term "stack" instead of "domain".
|
|
5
|
-
|
|
6
|
-
#### Scenario: Manifest field access uses stack
|
|
7
|
-
- **WHEN** code accesses the grouping field from a manifest
|
|
8
|
-
- **THEN** it SHALL use `manifest.get('stack')` and NOT `manifest.get('domain')`
|
|
9
|
-
|
|
10
|
-
#### Scenario: Cache keys use stack terminology
|
|
11
|
-
- **WHEN** the discovery cache stores configuration for logical groups
|
|
12
|
-
- **THEN** the cache key SHALL be named `stack_configs` and NOT `domain_configs`
|
|
13
|
-
|
|
14
|
-
#### Scenario: Autogenerated files use stack naming
|
|
15
|
-
- **WHEN** autogenerated index files are created for logical groups
|
|
16
|
-
- **THEN** the filenames SHALL contain `stacks` and NOT `domains`
|
|
17
|
-
|
|
18
|
-
#### Scenario: Function names use stack terminology
|
|
19
|
-
- **WHEN** a function generates an index of logical groups
|
|
20
|
-
- **THEN** the function name SHALL include `stacks` and NOT `domains`
|