@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.
Files changed (392) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +1 -1
  3. package/cli/dist/commands/doctor.js +21 -3
  4. package/cli/dist/commands/upgrade.js +7 -7
  5. package/cli/dist/generator/extension-fetch.js +16 -9
  6. package/cli/dist/utils/spinner.js +39 -0
  7. package/cli/package.json +1 -2
  8. package/package.json +16 -2
  9. package/.claude/skills/layer-autoresearch/SKILL.md +0 -48
  10. package/.claude/skills/tdk-troubleshoot/SKILL.md +0 -222
  11. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -40
  12. package/.github/ISSUE_TEMPLATE/config.yml +0 -11
  13. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -18
  14. package/.github/ISSUE_TEMPLATE/premium_license.yml +0 -43
  15. package/.github/dependabot.yml +0 -33
  16. package/.github/pull_request_template.md +0 -5
  17. package/.github/workflows/ci.yml +0 -200
  18. package/.github/workflows/release-binaries.yml +0 -139
  19. package/.github/zizmor.yml +0 -9
  20. package/.pre-commit-config.yaml +0 -57
  21. package/CODE_OF_CONDUCT.md +0 -9
  22. package/CONTRIBUTING.md +0 -42
  23. package/Makefile +0 -92
  24. package/SECURITY.md +0 -17
  25. package/benchmarks/results/container-scale-2026-09-25T20-54-49-736Z.json +0 -45
  26. package/benchmarks/results/container-scale-2026-09-25T21-01-20-540Z.json +0 -150
  27. package/benchmarks/results/container-scale-2026-09-25T21-15-01-441Z.json +0 -73
  28. package/benchmarks/results/container-scale-2026-09-25T22-09-01-630Z.json +0 -77
  29. package/benchmarks/results/container-scale-2026-09-25T22-18-28-371Z.json +0 -202
  30. package/cli/AGENTS.md +0 -390
  31. package/cli/DESIGN.md +0 -735
  32. package/cli/README.md +0 -292
  33. package/cli/biome.json +0 -40
  34. package/cli/dependency-graph.svg +0 -1135
  35. package/cli/dist/cli.d.ts +0 -3
  36. package/cli/dist/cli.d.ts.map +0 -1
  37. package/cli/dist/cli.js.map +0 -1
  38. package/cli/dist/commands/completion.d.ts +0 -3
  39. package/cli/dist/commands/completion.d.ts.map +0 -1
  40. package/cli/dist/commands/completion.js.map +0 -1
  41. package/cli/dist/commands/config.d.ts +0 -3
  42. package/cli/dist/commands/config.d.ts.map +0 -1
  43. package/cli/dist/commands/config.js.map +0 -1
  44. package/cli/dist/commands/doctor.d.ts +0 -19
  45. package/cli/dist/commands/doctor.d.ts.map +0 -1
  46. package/cli/dist/commands/doctor.js.map +0 -1
  47. package/cli/dist/commands/down.d.ts +0 -3
  48. package/cli/dist/commands/down.d.ts.map +0 -1
  49. package/cli/dist/commands/down.js.map +0 -1
  50. package/cli/dist/commands/help.d.ts +0 -2
  51. package/cli/dist/commands/help.d.ts.map +0 -1
  52. package/cli/dist/commands/help.js.map +0 -1
  53. package/cli/dist/commands/networks.d.ts +0 -3
  54. package/cli/dist/commands/networks.d.ts.map +0 -1
  55. package/cli/dist/commands/networks.js.map +0 -1
  56. package/cli/dist/commands/project.d.ts +0 -9
  57. package/cli/dist/commands/project.d.ts.map +0 -1
  58. package/cli/dist/commands/project.js.map +0 -1
  59. package/cli/dist/commands/projects.d.ts +0 -3
  60. package/cli/dist/commands/projects.d.ts.map +0 -1
  61. package/cli/dist/commands/projects.js.map +0 -1
  62. package/cli/dist/commands/resource.d.ts +0 -69
  63. package/cli/dist/commands/resource.d.ts.map +0 -1
  64. package/cli/dist/commands/resource.js.map +0 -1
  65. package/cli/dist/commands/resources.d.ts +0 -3
  66. package/cli/dist/commands/resources.d.ts.map +0 -1
  67. package/cli/dist/commands/resources.js.map +0 -1
  68. package/cli/dist/commands/stack.d.ts +0 -3
  69. package/cli/dist/commands/stack.d.ts.map +0 -1
  70. package/cli/dist/commands/stack.js.map +0 -1
  71. package/cli/dist/commands/stacks.d.ts +0 -3
  72. package/cli/dist/commands/stacks.d.ts.map +0 -1
  73. package/cli/dist/commands/stacks.js.map +0 -1
  74. package/cli/dist/commands/status.d.ts +0 -3
  75. package/cli/dist/commands/status.d.ts.map +0 -1
  76. package/cli/dist/commands/status.js.map +0 -1
  77. package/cli/dist/commands/ui.d.ts +0 -3
  78. package/cli/dist/commands/ui.d.ts.map +0 -1
  79. package/cli/dist/commands/ui.js.map +0 -1
  80. package/cli/dist/commands/up.d.ts +0 -3
  81. package/cli/dist/commands/up.d.ts.map +0 -1
  82. package/cli/dist/commands/up.js.map +0 -1
  83. package/cli/dist/commands/upgrade.d.ts +0 -14
  84. package/cli/dist/commands/upgrade.d.ts.map +0 -1
  85. package/cli/dist/commands/upgrade.js.map +0 -1
  86. package/cli/dist/commands/version.d.ts +0 -3
  87. package/cli/dist/commands/version.d.ts.map +0 -1
  88. package/cli/dist/commands/version.js.map +0 -1
  89. package/cli/dist/components/Accessible.d.ts +0 -8
  90. package/cli/dist/components/Accessible.d.ts.map +0 -1
  91. package/cli/dist/components/Accessible.js.map +0 -1
  92. package/cli/dist/components/BaseTooltip.d.ts +0 -4
  93. package/cli/dist/components/BaseTooltip.d.ts.map +0 -1
  94. package/cli/dist/components/BaseTooltip.js.map +0 -1
  95. package/cli/dist/components/DetailPanel.d.ts +0 -4
  96. package/cli/dist/components/DetailPanel.d.ts.map +0 -1
  97. package/cli/dist/components/DetailPanel.js.map +0 -1
  98. package/cli/dist/components/FileTree.d.ts +0 -4
  99. package/cli/dist/components/FileTree.d.ts.map +0 -1
  100. package/cli/dist/components/FileTree.js.map +0 -1
  101. package/cli/dist/components/ResourceSelectInput.d.ts +0 -4
  102. package/cli/dist/components/ResourceSelectInput.d.ts.map +0 -1
  103. package/cli/dist/components/ResourceSelectInput.js.map +0 -1
  104. package/cli/dist/components/ResourceTable.d.ts +0 -4
  105. package/cli/dist/components/ResourceTable.d.ts.map +0 -1
  106. package/cli/dist/components/ResourceTable.js.map +0 -1
  107. package/cli/dist/components/TabBar.d.ts +0 -4
  108. package/cli/dist/components/TabBar.d.ts.map +0 -1
  109. package/cli/dist/components/TabBar.js.map +0 -1
  110. package/cli/dist/components/Tooltip.d.ts +0 -12
  111. package/cli/dist/components/Tooltip.d.ts.map +0 -1
  112. package/cli/dist/components/Tooltip.js.map +0 -1
  113. package/cli/dist/components/index.d.ts +0 -8
  114. package/cli/dist/components/index.d.ts.map +0 -1
  115. package/cli/dist/components/index.js.map +0 -1
  116. package/cli/dist/config/platform-standards.d.ts +0 -159
  117. package/cli/dist/config/platform-standards.d.ts.map +0 -1
  118. package/cli/dist/config/platform-standards.js.map +0 -1
  119. package/cli/dist/generator/extension-fetch.d.ts +0 -25
  120. package/cli/dist/generator/extension-fetch.d.ts.map +0 -1
  121. package/cli/dist/generator/extension-fetch.js.map +0 -1
  122. package/cli/dist/generator/template-engine.d.ts +0 -62
  123. package/cli/dist/generator/template-engine.d.ts.map +0 -1
  124. package/cli/dist/generator/template-engine.js.map +0 -1
  125. package/cli/dist/index.d.ts +0 -11
  126. package/cli/dist/index.d.ts.map +0 -1
  127. package/cli/dist/index.js.map +0 -1
  128. package/cli/dist/types/index.d.ts +0 -257
  129. package/cli/dist/types/index.d.ts.map +0 -1
  130. package/cli/dist/types/index.js.map +0 -1
  131. package/cli/dist/utils/cache.d.ts +0 -19
  132. package/cli/dist/utils/cache.d.ts.map +0 -1
  133. package/cli/dist/utils/cache.js.map +0 -1
  134. package/cli/dist/utils/command-helpers.d.ts +0 -17
  135. package/cli/dist/utils/command-helpers.d.ts.map +0 -1
  136. package/cli/dist/utils/command-helpers.js.map +0 -1
  137. package/cli/dist/utils/constants.d.ts +0 -53
  138. package/cli/dist/utils/constants.d.ts.map +0 -1
  139. package/cli/dist/utils/constants.js.map +0 -1
  140. package/cli/dist/utils/discovery-context.d.ts +0 -4
  141. package/cli/dist/utils/discovery-context.d.ts.map +0 -1
  142. package/cli/dist/utils/discovery-context.js.map +0 -1
  143. package/cli/dist/utils/docker.d.ts +0 -4
  144. package/cli/dist/utils/docker.d.ts.map +0 -1
  145. package/cli/dist/utils/docker.js.map +0 -1
  146. package/cli/dist/utils/doctor-runtime.d.ts +0 -81
  147. package/cli/dist/utils/doctor-runtime.d.ts.map +0 -1
  148. package/cli/dist/utils/doctor-runtime.js.map +0 -1
  149. package/cli/dist/utils/env-validator.d.ts +0 -15
  150. package/cli/dist/utils/env-validator.d.ts.map +0 -1
  151. package/cli/dist/utils/env-validator.js.map +0 -1
  152. package/cli/dist/utils/errors.d.ts +0 -31
  153. package/cli/dist/utils/errors.d.ts.map +0 -1
  154. package/cli/dist/utils/errors.js.map +0 -1
  155. package/cli/dist/utils/file-helpers.d.ts +0 -14
  156. package/cli/dist/utils/file-helpers.d.ts.map +0 -1
  157. package/cli/dist/utils/file-helpers.js.map +0 -1
  158. package/cli/dist/utils/formatting.d.ts +0 -30
  159. package/cli/dist/utils/formatting.d.ts.map +0 -1
  160. package/cli/dist/utils/formatting.js.map +0 -1
  161. package/cli/dist/utils/paths.d.ts +0 -3
  162. package/cli/dist/utils/paths.d.ts.map +0 -1
  163. package/cli/dist/utils/paths.js.map +0 -1
  164. package/cli/dist/utils/port-assignment.d.ts +0 -6
  165. package/cli/dist/utils/port-assignment.d.ts.map +0 -1
  166. package/cli/dist/utils/port-assignment.js.map +0 -1
  167. package/cli/dist/utils/project-features.d.ts +0 -23
  168. package/cli/dist/utils/project-features.d.ts.map +0 -1
  169. package/cli/dist/utils/project-features.js.map +0 -1
  170. package/cli/dist/utils/project-templates.d.ts +0 -7
  171. package/cli/dist/utils/project-templates.d.ts.map +0 -1
  172. package/cli/dist/utils/project-templates.js.map +0 -1
  173. package/cli/dist/utils/prompt.d.ts +0 -28
  174. package/cli/dist/utils/prompt.d.ts.map +0 -1
  175. package/cli/dist/utils/prompt.js.map +0 -1
  176. package/cli/dist/utils/resource-features.d.ts +0 -29
  177. package/cli/dist/utils/resource-features.d.ts.map +0 -1
  178. package/cli/dist/utils/resource-features.js.map +0 -1
  179. package/cli/dist/utils/service-urls.d.ts +0 -30
  180. package/cli/dist/utils/service-urls.d.ts.map +0 -1
  181. package/cli/dist/utils/service-urls.js.map +0 -1
  182. package/cli/dist/utils/services.d.ts +0 -18
  183. package/cli/dist/utils/services.d.ts.map +0 -1
  184. package/cli/dist/utils/services.js.map +0 -1
  185. package/cli/dist/utils/stack-features.d.ts +0 -22
  186. package/cli/dist/utils/stack-features.d.ts.map +0 -1
  187. package/cli/dist/utils/stack-features.js.map +0 -1
  188. package/cli/dist/utils/tar.d.ts +0 -7
  189. package/cli/dist/utils/tar.d.ts.map +0 -1
  190. package/cli/dist/utils/tar.js.map +0 -1
  191. package/cli/dist/utils/tilt.d.ts +0 -20
  192. package/cli/dist/utils/tilt.d.ts.map +0 -1
  193. package/cli/dist/utils/tilt.js.map +0 -1
  194. package/cli/dist/utils/validation.d.ts +0 -16
  195. package/cli/dist/utils/validation.d.ts.map +0 -1
  196. package/cli/dist/utils/validation.js.map +0 -1
  197. package/cli/knip.json +0 -6
  198. package/cli/pnpm-lock.yaml +0 -2305
  199. package/cli/pnpm-workspace.yaml +0 -2
  200. package/cli/src/cli.ts +0 -72
  201. package/cli/src/commands/__tests__/always-enabled-infra.test.ts +0 -109
  202. package/cli/src/commands/__tests__/config.test.ts +0 -146
  203. package/cli/src/commands/__tests__/doctor.test.ts +0 -730
  204. package/cli/src/commands/__tests__/error-handling.test.ts +0 -78
  205. package/cli/src/commands/__tests__/phases-model.test.ts +0 -161
  206. package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +0 -187
  207. package/cli/src/commands/__tests__/project.test.ts +0 -68
  208. package/cli/src/commands/__tests__/resource.test.ts +0 -226
  209. package/cli/src/commands/__tests__/saas-starter-integration.test.ts +0 -194
  210. package/cli/src/commands/__tests__/stack-features-e2e.test.ts +0 -135
  211. package/cli/src/commands/__tests__/upgrade.test.ts +0 -198
  212. package/cli/src/commands/completion.ts +0 -300
  213. package/cli/src/commands/config.ts +0 -299
  214. package/cli/src/commands/doctor.ts +0 -926
  215. package/cli/src/commands/down.ts +0 -37
  216. package/cli/src/commands/help.ts +0 -143
  217. package/cli/src/commands/networks-design.md +0 -80
  218. package/cli/src/commands/networks.ts +0 -332
  219. package/cli/src/commands/project.ts +0 -456
  220. package/cli/src/commands/projects.ts +0 -82
  221. package/cli/src/commands/resource.ts +0 -652
  222. package/cli/src/commands/resources.ts +0 -95
  223. package/cli/src/commands/stack.ts +0 -128
  224. package/cli/src/commands/stacks.ts +0 -52
  225. package/cli/src/commands/status.ts +0 -88
  226. package/cli/src/commands/ui.tsx +0 -843
  227. package/cli/src/commands/up.ts +0 -169
  228. package/cli/src/commands/upgrade.ts +0 -628
  229. package/cli/src/commands/version.ts +0 -9
  230. package/cli/src/components/Accessible.tsx +0 -21
  231. package/cli/src/components/BaseTooltip.tsx +0 -66
  232. package/cli/src/components/DetailPanel.tsx +0 -146
  233. package/cli/src/components/FileTree.tsx +0 -89
  234. package/cli/src/components/ResourceSelectInput.tsx +0 -30
  235. package/cli/src/components/ResourceTable.tsx +0 -78
  236. package/cli/src/components/TabBar.tsx +0 -53
  237. package/cli/src/components/Tooltip.tsx +0 -11
  238. package/cli/src/components/index.ts +0 -7
  239. package/cli/src/config/platform-standards.test.ts +0 -11
  240. package/cli/src/config/platform-standards.ts +0 -196
  241. package/cli/src/generator/__tests__/extension-fetch.test.ts +0 -242
  242. package/cli/src/generator/__tests__/template-engine.test.ts +0 -70
  243. package/cli/src/generator/extension-fetch.ts +0 -286
  244. package/cli/src/generator/template-engine.ts +0 -752
  245. package/cli/src/index.ts +0 -86
  246. package/cli/src/templates.d.ts +0 -4
  247. package/cli/src/types/index.ts +0 -353
  248. package/cli/src/utils/__tests__/cache.test.ts +0 -98
  249. package/cli/src/utils/__tests__/formatting.test.ts +0 -170
  250. package/cli/src/utils/__tests__/paths.test.ts +0 -180
  251. package/cli/src/utils/__tests__/port-assignment.test.ts +0 -121
  252. package/cli/src/utils/__tests__/service-urls.test.ts +0 -174
  253. package/cli/src/utils/__tests__/services.test.ts +0 -531
  254. package/cli/src/utils/__tests__/tilt.test.ts +0 -172
  255. package/cli/src/utils/__tests__/validation.test.ts +0 -148
  256. package/cli/src/utils/cache.ts +0 -76
  257. package/cli/src/utils/command-helpers.ts +0 -54
  258. package/cli/src/utils/constants.ts +0 -130
  259. package/cli/src/utils/discovery-context.ts +0 -49
  260. package/cli/src/utils/docker.ts +0 -20
  261. package/cli/src/utils/doctor-runtime.ts +0 -644
  262. package/cli/src/utils/env-validator.ts +0 -139
  263. package/cli/src/utils/errors.ts +0 -168
  264. package/cli/src/utils/file-helpers.ts +0 -62
  265. package/cli/src/utils/formatting.ts +0 -215
  266. package/cli/src/utils/paths.ts +0 -53
  267. package/cli/src/utils/port-assignment.ts +0 -106
  268. package/cli/src/utils/project-features.ts +0 -118
  269. package/cli/src/utils/project-templates.ts +0 -29
  270. package/cli/src/utils/prompt.ts +0 -128
  271. package/cli/src/utils/resource-features.ts +0 -215
  272. package/cli/src/utils/service-urls.ts +0 -124
  273. package/cli/src/utils/services.ts +0 -364
  274. package/cli/src/utils/stack-features.ts +0 -30
  275. package/cli/src/utils/tar.ts +0 -24
  276. package/cli/src/utils/tilt.ts +0 -133
  277. package/cli/src/utils/validation.ts +0 -67
  278. package/cli/tsconfig.json +0 -25
  279. package/cli/tsconfig.typecheck.json +0 -8
  280. package/docs/FEATURES.md +0 -281
  281. package/docs/demo.svg +0 -217
  282. package/engine/docs/AUTODISCOVERY_TEST.md +0 -182
  283. package/engine/docs/C4-ARCHITECTURE-operations.md +0 -396
  284. package/engine/docs/C4-ARCHITECTURE-overview.md +0 -284
  285. package/engine/docs/C4-ARCHITECTURE.md +0 -17
  286. package/engine/docs/GOLDEN_IMAGE_INTEGRATION.md +0 -349
  287. package/engine/docs/MANIFEST_DRIVEN_ARCHITECTURE.md +0 -357
  288. package/engine/docs/README.md +0 -284
  289. package/install.sh +0 -19
  290. package/knip.json +0 -10
  291. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +0 -2
  292. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +0 -102
  293. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +0 -31
  294. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +0 -48
  295. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +0 -63
  296. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +0 -56
  297. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +0 -61
  298. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +0 -2
  299. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +0 -114
  300. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +0 -32
  301. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +0 -20
  302. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +0 -20
  303. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +0 -20
  304. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +0 -194
  305. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +0 -2
  306. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +0 -111
  307. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +0 -33
  308. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +0 -12
  309. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +0 -18
  310. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +0 -16
  311. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +0 -12
  312. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +0 -12
  313. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +0 -194
  314. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +0 -2
  315. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +0 -84
  316. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +0 -31
  317. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +0 -27
  318. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +0 -27
  319. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +0 -23
  320. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +0 -27
  321. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +0 -39
  322. package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +0 -2
  323. package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +0 -80
  324. package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +0 -40
  325. package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +0 -52
  326. package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +0 -51
  327. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +0 -2
  328. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +0 -43
  329. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +0 -29
  330. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +0 -67
  331. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +0 -27
  332. package/openspec/changes/optimize-runtime-docker-layers/.openspec.yaml +0 -3
  333. package/openspec/changes/optimize-runtime-docker-layers/design.md +0 -81
  334. package/openspec/changes/optimize-runtime-docker-layers/proposal.md +0 -44
  335. package/openspec/changes/optimize-runtime-docker-layers/specs/runtime-container-footprint/spec.md +0 -79
  336. package/openspec/changes/optimize-runtime-docker-layers/tasks.md +0 -36
  337. package/openspec/changes/prioritized-cold-start/.openspec.yaml +0 -4
  338. package/openspec/changes/prioritized-cold-start/design.md +0 -137
  339. package/openspec/changes/prioritized-cold-start/proposal.md +0 -41
  340. package/openspec/changes/prioritized-cold-start/specs/on-demand-resource-startup/spec.md +0 -98
  341. package/openspec/changes/prioritized-cold-start/tasks.md +0 -69
  342. package/openspec/config.yaml +0 -1
  343. package/openspec/specs/manifest-field-migration/spec.md +0 -24
  344. package/openspec/specs/resource-terminology-standard/spec.md +0 -24
  345. package/openspec/specs/self-contained-generated-projects/spec.md +0 -67
  346. package/openspec/specs/stack-terminology-standard/spec.md +0 -24
  347. package/platform/services/platform/proxy/service.yaml +0 -14
  348. package/scripts/audit-codebase.sh +0 -213
  349. package/scripts/autoresearch/layer-eval.sh +0 -65
  350. package/scripts/benchmark/README.md +0 -25
  351. package/scripts/benchmark/container-scale.ts +0 -503
  352. package/scripts/benchmark/pre-release-gate.sh +0 -9
  353. package/scripts/install-git-hooks.sh +0 -14
  354. package/scripts/measure-idle-footprint.sh +0 -58
  355. package/scripts/record-demo.sh +0 -43
  356. package/scripts/release-binaries.sh +0 -97
  357. package/scripts/setup-pre-commit.sh +0 -33
  358. package/scripts/stage-npm-engine.sh +0 -36
  359. package/tests/tilt-engine/__init__.py +0 -5
  360. package/tests/tilt-engine/conftest.py +0 -182
  361. package/tests/tilt-engine/fixtures/appointment-frontend-service.json +0 -11
  362. package/tests/tilt-engine/fixtures/identity-backend-service.json +0 -12
  363. package/tests/tilt-engine/fixtures/invalid-service.json +0 -4
  364. package/tests/tilt-engine/test_agents_md_generator.py +0 -341
  365. package/tests/tilt-engine/test_agents_md_integration.py +0 -378
  366. package/tests/tilt-engine/test_cache_operations.py +0 -181
  367. package/tests/tilt-engine/test_cache_persistence.py +0 -142
  368. package/tests/tilt-engine/test_code_executor.py +0 -152
  369. package/tests/tilt-engine/test_code_viewer.py +0 -127
  370. package/tests/tilt-engine/test_compose_port_anchors.py +0 -310
  371. package/tests/tilt-engine/test_config_inspector.py +0 -162
  372. package/tests/tilt-engine/test_daemon_focus_mode.py +0 -89
  373. package/tests/tilt-engine/test_daemon_polling.py +0 -122
  374. package/tests/tilt-engine/test_daemon_registration.py +0 -115
  375. package/tests/tilt-engine/test_daemon_validation.py +0 -107
  376. package/tests/tilt-engine/test_docker_generator_bugs.py +0 -493
  377. package/tests/tilt-engine/test_docker_prune.py +0 -119
  378. package/tests/tilt-engine/test_dockerignore_path_bug.py +0 -82
  379. package/tests/tilt-engine/test_file_browser.py +0 -193
  380. package/tests/tilt-engine/test_frontend_basepath_manifest.py +0 -27
  381. package/tests/tilt-engine/test_health_dependencies.py +0 -130
  382. package/tests/tilt-engine/test_health_endpoints.py +0 -118
  383. package/tests/tilt-engine/test_health_tilt_ui.py +0 -85
  384. package/tests/tilt-engine/test_runtime_container_footprint.py +0 -162
  385. package/tests/tilt-engine/test_sablier_defer_start.py +0 -237
  386. package/tests/tilt-engine/test_safety_aliases.py +0 -84
  387. package/tests/tilt-engine/test_snapshot_diff.py +0 -136
  388. package/tests/tilt-engine/test_snapshot_persistence.py +0 -163
  389. package/tests/tilt-engine/test_snapshot_scanning.py +0 -123
  390. package/tests/tilt-engine/test_standalone_project_boot.py +0 -61
  391. package/tests/tilt-engine/test_standalone_traefik.py +0 -160
  392. 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.
@@ -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
@@ -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.
@@ -1,2 +0,0 @@
1
- schema: spec-driven
2
- created: 2026-04-27
@@ -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)
@@ -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`