@tdk-landscape/tdk-cli-core 1.3.52 → 1.3.54

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 (390) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +1 -1
  3. package/cli/dist/commands/config.js +1 -1
  4. package/cli/dist/commands/resource.js +1 -1
  5. package/cli/dist/generator/extension-fetch.js +16 -9
  6. package/cli/package.json +1 -1
  7. package/package.json +16 -1
  8. package/.claude/skills/layer-autoresearch/SKILL.md +0 -48
  9. package/.claude/skills/tdk-troubleshoot/SKILL.md +0 -222
  10. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -40
  11. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  12. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -18
  13. package/.github/dependabot.yml +0 -33
  14. package/.github/pull_request_template.md +0 -5
  15. package/.github/workflows/ci.yml +0 -200
  16. package/.github/workflows/release-binaries.yml +0 -139
  17. package/.github/zizmor.yml +0 -9
  18. package/.pre-commit-config.yaml +0 -57
  19. package/CODE_OF_CONDUCT.md +0 -9
  20. package/CONTRIBUTING.md +0 -42
  21. package/Makefile +0 -92
  22. package/SECURITY.md +0 -17
  23. package/benchmarks/results/container-scale-2026-09-25T20-54-49-736Z.json +0 -45
  24. package/benchmarks/results/container-scale-2026-09-25T21-01-20-540Z.json +0 -150
  25. package/benchmarks/results/container-scale-2026-09-25T21-15-01-441Z.json +0 -73
  26. package/benchmarks/results/container-scale-2026-09-25T22-09-01-630Z.json +0 -77
  27. package/benchmarks/results/container-scale-2026-09-25T22-18-28-371Z.json +0 -202
  28. package/cli/AGENTS.md +0 -390
  29. package/cli/DESIGN.md +0 -735
  30. package/cli/README.md +0 -292
  31. package/cli/biome.json +0 -40
  32. package/cli/dependency-graph.svg +0 -1135
  33. package/cli/dist/cli.d.ts +0 -3
  34. package/cli/dist/cli.d.ts.map +0 -1
  35. package/cli/dist/cli.js.map +0 -1
  36. package/cli/dist/commands/completion.d.ts +0 -3
  37. package/cli/dist/commands/completion.d.ts.map +0 -1
  38. package/cli/dist/commands/completion.js.map +0 -1
  39. package/cli/dist/commands/config.d.ts +0 -3
  40. package/cli/dist/commands/config.d.ts.map +0 -1
  41. package/cli/dist/commands/config.js.map +0 -1
  42. package/cli/dist/commands/doctor.d.ts +0 -19
  43. package/cli/dist/commands/doctor.d.ts.map +0 -1
  44. package/cli/dist/commands/doctor.js.map +0 -1
  45. package/cli/dist/commands/down.d.ts +0 -3
  46. package/cli/dist/commands/down.d.ts.map +0 -1
  47. package/cli/dist/commands/down.js.map +0 -1
  48. package/cli/dist/commands/help.d.ts +0 -2
  49. package/cli/dist/commands/help.d.ts.map +0 -1
  50. package/cli/dist/commands/help.js.map +0 -1
  51. package/cli/dist/commands/networks.d.ts +0 -3
  52. package/cli/dist/commands/networks.d.ts.map +0 -1
  53. package/cli/dist/commands/networks.js.map +0 -1
  54. package/cli/dist/commands/project.d.ts +0 -9
  55. package/cli/dist/commands/project.d.ts.map +0 -1
  56. package/cli/dist/commands/project.js.map +0 -1
  57. package/cli/dist/commands/projects.d.ts +0 -3
  58. package/cli/dist/commands/projects.d.ts.map +0 -1
  59. package/cli/dist/commands/projects.js.map +0 -1
  60. package/cli/dist/commands/resource.d.ts +0 -69
  61. package/cli/dist/commands/resource.d.ts.map +0 -1
  62. package/cli/dist/commands/resource.js.map +0 -1
  63. package/cli/dist/commands/resources.d.ts +0 -3
  64. package/cli/dist/commands/resources.d.ts.map +0 -1
  65. package/cli/dist/commands/resources.js.map +0 -1
  66. package/cli/dist/commands/stack.d.ts +0 -3
  67. package/cli/dist/commands/stack.d.ts.map +0 -1
  68. package/cli/dist/commands/stack.js.map +0 -1
  69. package/cli/dist/commands/stacks.d.ts +0 -3
  70. package/cli/dist/commands/stacks.d.ts.map +0 -1
  71. package/cli/dist/commands/stacks.js.map +0 -1
  72. package/cli/dist/commands/status.d.ts +0 -3
  73. package/cli/dist/commands/status.d.ts.map +0 -1
  74. package/cli/dist/commands/status.js.map +0 -1
  75. package/cli/dist/commands/ui.d.ts +0 -3
  76. package/cli/dist/commands/ui.d.ts.map +0 -1
  77. package/cli/dist/commands/ui.js.map +0 -1
  78. package/cli/dist/commands/up.d.ts +0 -3
  79. package/cli/dist/commands/up.d.ts.map +0 -1
  80. package/cli/dist/commands/up.js.map +0 -1
  81. package/cli/dist/commands/upgrade.d.ts +0 -14
  82. package/cli/dist/commands/upgrade.d.ts.map +0 -1
  83. package/cli/dist/commands/upgrade.js.map +0 -1
  84. package/cli/dist/commands/version.d.ts +0 -3
  85. package/cli/dist/commands/version.d.ts.map +0 -1
  86. package/cli/dist/commands/version.js.map +0 -1
  87. package/cli/dist/components/Accessible.d.ts +0 -8
  88. package/cli/dist/components/Accessible.d.ts.map +0 -1
  89. package/cli/dist/components/Accessible.js.map +0 -1
  90. package/cli/dist/components/BaseTooltip.d.ts +0 -4
  91. package/cli/dist/components/BaseTooltip.d.ts.map +0 -1
  92. package/cli/dist/components/BaseTooltip.js.map +0 -1
  93. package/cli/dist/components/DetailPanel.d.ts +0 -4
  94. package/cli/dist/components/DetailPanel.d.ts.map +0 -1
  95. package/cli/dist/components/DetailPanel.js.map +0 -1
  96. package/cli/dist/components/FileTree.d.ts +0 -4
  97. package/cli/dist/components/FileTree.d.ts.map +0 -1
  98. package/cli/dist/components/FileTree.js.map +0 -1
  99. package/cli/dist/components/ResourceSelectInput.d.ts +0 -4
  100. package/cli/dist/components/ResourceSelectInput.d.ts.map +0 -1
  101. package/cli/dist/components/ResourceSelectInput.js.map +0 -1
  102. package/cli/dist/components/ResourceTable.d.ts +0 -4
  103. package/cli/dist/components/ResourceTable.d.ts.map +0 -1
  104. package/cli/dist/components/ResourceTable.js.map +0 -1
  105. package/cli/dist/components/TabBar.d.ts +0 -4
  106. package/cli/dist/components/TabBar.d.ts.map +0 -1
  107. package/cli/dist/components/TabBar.js.map +0 -1
  108. package/cli/dist/components/Tooltip.d.ts +0 -12
  109. package/cli/dist/components/Tooltip.d.ts.map +0 -1
  110. package/cli/dist/components/Tooltip.js.map +0 -1
  111. package/cli/dist/components/index.d.ts +0 -8
  112. package/cli/dist/components/index.d.ts.map +0 -1
  113. package/cli/dist/components/index.js.map +0 -1
  114. package/cli/dist/config/platform-standards.d.ts +0 -159
  115. package/cli/dist/config/platform-standards.d.ts.map +0 -1
  116. package/cli/dist/config/platform-standards.js.map +0 -1
  117. package/cli/dist/generator/extension-fetch.d.ts +0 -25
  118. package/cli/dist/generator/extension-fetch.d.ts.map +0 -1
  119. package/cli/dist/generator/extension-fetch.js.map +0 -1
  120. package/cli/dist/generator/template-engine.d.ts +0 -62
  121. package/cli/dist/generator/template-engine.d.ts.map +0 -1
  122. package/cli/dist/generator/template-engine.js.map +0 -1
  123. package/cli/dist/index.d.ts +0 -11
  124. package/cli/dist/index.d.ts.map +0 -1
  125. package/cli/dist/index.js.map +0 -1
  126. package/cli/dist/types/index.d.ts +0 -257
  127. package/cli/dist/types/index.d.ts.map +0 -1
  128. package/cli/dist/types/index.js.map +0 -1
  129. package/cli/dist/utils/cache.d.ts +0 -19
  130. package/cli/dist/utils/cache.d.ts.map +0 -1
  131. package/cli/dist/utils/cache.js.map +0 -1
  132. package/cli/dist/utils/command-helpers.d.ts +0 -17
  133. package/cli/dist/utils/command-helpers.d.ts.map +0 -1
  134. package/cli/dist/utils/command-helpers.js.map +0 -1
  135. package/cli/dist/utils/constants.d.ts +0 -53
  136. package/cli/dist/utils/constants.d.ts.map +0 -1
  137. package/cli/dist/utils/constants.js.map +0 -1
  138. package/cli/dist/utils/discovery-context.d.ts +0 -4
  139. package/cli/dist/utils/discovery-context.d.ts.map +0 -1
  140. package/cli/dist/utils/discovery-context.js.map +0 -1
  141. package/cli/dist/utils/docker.d.ts +0 -4
  142. package/cli/dist/utils/docker.d.ts.map +0 -1
  143. package/cli/dist/utils/docker.js.map +0 -1
  144. package/cli/dist/utils/doctor-runtime.d.ts +0 -81
  145. package/cli/dist/utils/doctor-runtime.d.ts.map +0 -1
  146. package/cli/dist/utils/doctor-runtime.js.map +0 -1
  147. package/cli/dist/utils/env-validator.d.ts +0 -15
  148. package/cli/dist/utils/env-validator.d.ts.map +0 -1
  149. package/cli/dist/utils/env-validator.js.map +0 -1
  150. package/cli/dist/utils/errors.d.ts +0 -31
  151. package/cli/dist/utils/errors.d.ts.map +0 -1
  152. package/cli/dist/utils/errors.js.map +0 -1
  153. package/cli/dist/utils/file-helpers.d.ts +0 -14
  154. package/cli/dist/utils/file-helpers.d.ts.map +0 -1
  155. package/cli/dist/utils/file-helpers.js.map +0 -1
  156. package/cli/dist/utils/formatting.d.ts +0 -30
  157. package/cli/dist/utils/formatting.d.ts.map +0 -1
  158. package/cli/dist/utils/formatting.js.map +0 -1
  159. package/cli/dist/utils/paths.d.ts +0 -3
  160. package/cli/dist/utils/paths.d.ts.map +0 -1
  161. package/cli/dist/utils/paths.js.map +0 -1
  162. package/cli/dist/utils/port-assignment.d.ts +0 -6
  163. package/cli/dist/utils/port-assignment.d.ts.map +0 -1
  164. package/cli/dist/utils/port-assignment.js.map +0 -1
  165. package/cli/dist/utils/project-features.d.ts +0 -23
  166. package/cli/dist/utils/project-features.d.ts.map +0 -1
  167. package/cli/dist/utils/project-features.js.map +0 -1
  168. package/cli/dist/utils/project-templates.d.ts +0 -7
  169. package/cli/dist/utils/project-templates.d.ts.map +0 -1
  170. package/cli/dist/utils/project-templates.js.map +0 -1
  171. package/cli/dist/utils/prompt.d.ts +0 -28
  172. package/cli/dist/utils/prompt.d.ts.map +0 -1
  173. package/cli/dist/utils/prompt.js.map +0 -1
  174. package/cli/dist/utils/resource-features.d.ts +0 -29
  175. package/cli/dist/utils/resource-features.d.ts.map +0 -1
  176. package/cli/dist/utils/resource-features.js.map +0 -1
  177. package/cli/dist/utils/service-urls.d.ts +0 -30
  178. package/cli/dist/utils/service-urls.d.ts.map +0 -1
  179. package/cli/dist/utils/service-urls.js.map +0 -1
  180. package/cli/dist/utils/services.d.ts +0 -18
  181. package/cli/dist/utils/services.d.ts.map +0 -1
  182. package/cli/dist/utils/services.js.map +0 -1
  183. package/cli/dist/utils/stack-features.d.ts +0 -22
  184. package/cli/dist/utils/stack-features.d.ts.map +0 -1
  185. package/cli/dist/utils/stack-features.js.map +0 -1
  186. package/cli/dist/utils/tar.d.ts +0 -7
  187. package/cli/dist/utils/tar.d.ts.map +0 -1
  188. package/cli/dist/utils/tar.js.map +0 -1
  189. package/cli/dist/utils/tilt.d.ts +0 -20
  190. package/cli/dist/utils/tilt.d.ts.map +0 -1
  191. package/cli/dist/utils/tilt.js.map +0 -1
  192. package/cli/dist/utils/validation.d.ts +0 -16
  193. package/cli/dist/utils/validation.d.ts.map +0 -1
  194. package/cli/dist/utils/validation.js.map +0 -1
  195. package/cli/knip.json +0 -6
  196. package/cli/pnpm-lock.yaml +0 -2305
  197. package/cli/pnpm-workspace.yaml +0 -2
  198. package/cli/src/cli.ts +0 -72
  199. package/cli/src/commands/__tests__/always-enabled-infra.test.ts +0 -109
  200. package/cli/src/commands/__tests__/config.test.ts +0 -146
  201. package/cli/src/commands/__tests__/doctor.test.ts +0 -730
  202. package/cli/src/commands/__tests__/error-handling.test.ts +0 -78
  203. package/cli/src/commands/__tests__/phases-model.test.ts +0 -161
  204. package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +0 -187
  205. package/cli/src/commands/__tests__/project.test.ts +0 -68
  206. package/cli/src/commands/__tests__/resource.test.ts +0 -226
  207. package/cli/src/commands/__tests__/saas-starter-integration.test.ts +0 -194
  208. package/cli/src/commands/__tests__/stack-features-e2e.test.ts +0 -135
  209. package/cli/src/commands/__tests__/upgrade.test.ts +0 -198
  210. package/cli/src/commands/completion.ts +0 -300
  211. package/cli/src/commands/config.ts +0 -299
  212. package/cli/src/commands/doctor.ts +0 -926
  213. package/cli/src/commands/down.ts +0 -37
  214. package/cli/src/commands/help.ts +0 -143
  215. package/cli/src/commands/networks-design.md +0 -80
  216. package/cli/src/commands/networks.ts +0 -332
  217. package/cli/src/commands/project.ts +0 -456
  218. package/cli/src/commands/projects.ts +0 -82
  219. package/cli/src/commands/resource.ts +0 -652
  220. package/cli/src/commands/resources.ts +0 -95
  221. package/cli/src/commands/stack.ts +0 -128
  222. package/cli/src/commands/stacks.ts +0 -52
  223. package/cli/src/commands/status.ts +0 -88
  224. package/cli/src/commands/ui.tsx +0 -843
  225. package/cli/src/commands/up.ts +0 -169
  226. package/cli/src/commands/upgrade.ts +0 -628
  227. package/cli/src/commands/version.ts +0 -9
  228. package/cli/src/components/Accessible.tsx +0 -21
  229. package/cli/src/components/BaseTooltip.tsx +0 -66
  230. package/cli/src/components/DetailPanel.tsx +0 -146
  231. package/cli/src/components/FileTree.tsx +0 -89
  232. package/cli/src/components/ResourceSelectInput.tsx +0 -30
  233. package/cli/src/components/ResourceTable.tsx +0 -78
  234. package/cli/src/components/TabBar.tsx +0 -53
  235. package/cli/src/components/Tooltip.tsx +0 -11
  236. package/cli/src/components/index.ts +0 -7
  237. package/cli/src/config/platform-standards.test.ts +0 -11
  238. package/cli/src/config/platform-standards.ts +0 -196
  239. package/cli/src/generator/__tests__/extension-fetch.test.ts +0 -242
  240. package/cli/src/generator/__tests__/template-engine.test.ts +0 -70
  241. package/cli/src/generator/extension-fetch.ts +0 -286
  242. package/cli/src/generator/template-engine.ts +0 -752
  243. package/cli/src/index.ts +0 -86
  244. package/cli/src/templates.d.ts +0 -4
  245. package/cli/src/types/index.ts +0 -353
  246. package/cli/src/utils/__tests__/cache.test.ts +0 -98
  247. package/cli/src/utils/__tests__/formatting.test.ts +0 -170
  248. package/cli/src/utils/__tests__/paths.test.ts +0 -180
  249. package/cli/src/utils/__tests__/port-assignment.test.ts +0 -121
  250. package/cli/src/utils/__tests__/service-urls.test.ts +0 -174
  251. package/cli/src/utils/__tests__/services.test.ts +0 -531
  252. package/cli/src/utils/__tests__/tilt.test.ts +0 -172
  253. package/cli/src/utils/__tests__/validation.test.ts +0 -148
  254. package/cli/src/utils/cache.ts +0 -76
  255. package/cli/src/utils/command-helpers.ts +0 -54
  256. package/cli/src/utils/constants.ts +0 -130
  257. package/cli/src/utils/discovery-context.ts +0 -49
  258. package/cli/src/utils/docker.ts +0 -20
  259. package/cli/src/utils/doctor-runtime.ts +0 -644
  260. package/cli/src/utils/env-validator.ts +0 -139
  261. package/cli/src/utils/errors.ts +0 -168
  262. package/cli/src/utils/file-helpers.ts +0 -62
  263. package/cli/src/utils/formatting.ts +0 -215
  264. package/cli/src/utils/paths.ts +0 -53
  265. package/cli/src/utils/port-assignment.ts +0 -106
  266. package/cli/src/utils/project-features.ts +0 -118
  267. package/cli/src/utils/project-templates.ts +0 -29
  268. package/cli/src/utils/prompt.ts +0 -128
  269. package/cli/src/utils/resource-features.ts +0 -215
  270. package/cli/src/utils/service-urls.ts +0 -124
  271. package/cli/src/utils/services.ts +0 -364
  272. package/cli/src/utils/stack-features.ts +0 -30
  273. package/cli/src/utils/tar.ts +0 -24
  274. package/cli/src/utils/tilt.ts +0 -133
  275. package/cli/src/utils/validation.ts +0 -67
  276. package/cli/tsconfig.json +0 -25
  277. package/cli/tsconfig.typecheck.json +0 -8
  278. package/docs/FEATURES.md +0 -279
  279. package/docs/demo.svg +0 -217
  280. package/engine/docs/AUTODISCOVERY_TEST.md +0 -182
  281. package/engine/docs/C4-ARCHITECTURE-operations.md +0 -396
  282. package/engine/docs/C4-ARCHITECTURE-overview.md +0 -284
  283. package/engine/docs/C4-ARCHITECTURE.md +0 -17
  284. package/engine/docs/GOLDEN_IMAGE_INTEGRATION.md +0 -349
  285. package/engine/docs/MANIFEST_DRIVEN_ARCHITECTURE.md +0 -357
  286. package/engine/docs/README.md +0 -284
  287. package/install.sh +0 -19
  288. package/knip.json +0 -10
  289. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +0 -2
  290. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +0 -102
  291. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +0 -31
  292. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +0 -48
  293. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +0 -63
  294. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +0 -56
  295. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +0 -61
  296. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +0 -2
  297. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +0 -114
  298. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +0 -32
  299. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +0 -20
  300. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +0 -20
  301. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +0 -20
  302. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +0 -194
  303. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +0 -2
  304. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +0 -111
  305. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +0 -33
  306. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +0 -12
  307. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +0 -18
  308. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +0 -16
  309. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +0 -12
  310. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +0 -12
  311. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +0 -194
  312. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +0 -2
  313. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +0 -84
  314. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +0 -31
  315. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +0 -27
  316. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +0 -27
  317. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +0 -23
  318. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +0 -27
  319. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +0 -39
  320. package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +0 -2
  321. package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +0 -80
  322. package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +0 -40
  323. package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +0 -52
  324. package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +0 -51
  325. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +0 -2
  326. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +0 -43
  327. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +0 -29
  328. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +0 -67
  329. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +0 -27
  330. package/openspec/changes/optimize-runtime-docker-layers/.openspec.yaml +0 -3
  331. package/openspec/changes/optimize-runtime-docker-layers/design.md +0 -81
  332. package/openspec/changes/optimize-runtime-docker-layers/proposal.md +0 -44
  333. package/openspec/changes/optimize-runtime-docker-layers/specs/runtime-container-footprint/spec.md +0 -79
  334. package/openspec/changes/optimize-runtime-docker-layers/tasks.md +0 -36
  335. package/openspec/changes/prioritized-cold-start/.openspec.yaml +0 -4
  336. package/openspec/changes/prioritized-cold-start/design.md +0 -137
  337. package/openspec/changes/prioritized-cold-start/proposal.md +0 -41
  338. package/openspec/changes/prioritized-cold-start/specs/on-demand-resource-startup/spec.md +0 -98
  339. package/openspec/changes/prioritized-cold-start/tasks.md +0 -69
  340. package/openspec/config.yaml +0 -1
  341. package/openspec/specs/manifest-field-migration/spec.md +0 -24
  342. package/openspec/specs/resource-terminology-standard/spec.md +0 -24
  343. package/openspec/specs/self-contained-generated-projects/spec.md +0 -67
  344. package/openspec/specs/stack-terminology-standard/spec.md +0 -24
  345. package/platform/services/platform/proxy/service.yaml +0 -14
  346. package/scripts/audit-codebase.sh +0 -213
  347. package/scripts/autoresearch/layer-eval.sh +0 -65
  348. package/scripts/benchmark/README.md +0 -25
  349. package/scripts/benchmark/container-scale.ts +0 -503
  350. package/scripts/benchmark/pre-release-gate.sh +0 -9
  351. package/scripts/install-git-hooks.sh +0 -14
  352. package/scripts/measure-idle-footprint.sh +0 -58
  353. package/scripts/record-demo.sh +0 -43
  354. package/scripts/release-binaries.sh +0 -97
  355. package/scripts/setup-pre-commit.sh +0 -33
  356. package/scripts/stage-npm-engine.sh +0 -36
  357. package/tests/tilt-engine/__init__.py +0 -5
  358. package/tests/tilt-engine/conftest.py +0 -182
  359. package/tests/tilt-engine/fixtures/appointment-frontend-service.json +0 -11
  360. package/tests/tilt-engine/fixtures/identity-backend-service.json +0 -12
  361. package/tests/tilt-engine/fixtures/invalid-service.json +0 -4
  362. package/tests/tilt-engine/test_agents_md_generator.py +0 -341
  363. package/tests/tilt-engine/test_agents_md_integration.py +0 -378
  364. package/tests/tilt-engine/test_cache_operations.py +0 -181
  365. package/tests/tilt-engine/test_cache_persistence.py +0 -142
  366. package/tests/tilt-engine/test_code_executor.py +0 -152
  367. package/tests/tilt-engine/test_code_viewer.py +0 -127
  368. package/tests/tilt-engine/test_compose_port_anchors.py +0 -310
  369. package/tests/tilt-engine/test_config_inspector.py +0 -162
  370. package/tests/tilt-engine/test_daemon_focus_mode.py +0 -89
  371. package/tests/tilt-engine/test_daemon_polling.py +0 -122
  372. package/tests/tilt-engine/test_daemon_registration.py +0 -115
  373. package/tests/tilt-engine/test_daemon_validation.py +0 -107
  374. package/tests/tilt-engine/test_docker_generator_bugs.py +0 -493
  375. package/tests/tilt-engine/test_docker_prune.py +0 -119
  376. package/tests/tilt-engine/test_dockerignore_path_bug.py +0 -82
  377. package/tests/tilt-engine/test_file_browser.py +0 -193
  378. package/tests/tilt-engine/test_frontend_basepath_manifest.py +0 -27
  379. package/tests/tilt-engine/test_health_dependencies.py +0 -130
  380. package/tests/tilt-engine/test_health_endpoints.py +0 -118
  381. package/tests/tilt-engine/test_health_tilt_ui.py +0 -85
  382. package/tests/tilt-engine/test_runtime_container_footprint.py +0 -162
  383. package/tests/tilt-engine/test_sablier_defer_start.py +0 -237
  384. package/tests/tilt-engine/test_safety_aliases.py +0 -84
  385. package/tests/tilt-engine/test_snapshot_diff.py +0 -136
  386. package/tests/tilt-engine/test_snapshot_persistence.py +0 -163
  387. package/tests/tilt-engine/test_snapshot_scanning.py +0 -123
  388. package/tests/tilt-engine/test_standalone_project_boot.py +0 -61
  389. package/tests/tilt-engine/test_standalone_traefik.py +0 -160
  390. package/tests/tilt-engine/test_traefik_static_wake_route.py +0 -187
package/cli/DESIGN.md DELETED
@@ -1,735 +0,0 @@
1
- # TDK CLI Neon Design System v3.0
2
- ## Cyberpunk Terminal UI - Practical & Beautiful
3
-
4
- ```
5
- ╔══════════════════════════════════════════════════════════════════════╗
6
- ║ ▓▒░ TDK NEON EDITION ░▒▓ │ /path/to/project │ [ 36 services ] ║
7
- ╠══════════════════════════════════════════════════════════════════════╣
8
- ║ ║
9
- ║ [1] OVERVIEW [2] RESOURCES [3] EVENTS [4] FILES [5] CONFIG ║
10
- ║ ║
11
- ║ ┌─ Stacks ───────────────────────────┐ ┌─ Stack Details ───────┐ ║
12
- ║ │ │ │ │ ║
13
- ║ │ ▸ order-planner (4 svcs) │ │ api │ ║
14
- ║ │ order (3 svcs) │ │ 5 services • Ready │ ║
15
- ║ │ ▓▒░ api (5 svcs) ░▒▓ │ │ │ ║
16
- ║ │ billing (1 svc) │ │ ├─ id-mgmt-backend │ ║
17
- ║ │ platform (7 svcs) │ │ ├─ id-mgmt-frontend │ ║
18
- ║ │ │ │ ├─ id-sdk │ ║
19
- ║ └──────────────────────────────────────┘ └────────────────────────┘ ║
20
- ║ ║
21
- ╚══════════════════════════════════════════════════════════════════════╝
22
- ```
23
-
24
- ---
25
-
26
- ## DESIGN PHILOSOPHY
27
-
28
- ### Core Principle: "Neon Spotlight, Not Neon Flood"
29
-
30
- **Wrong:** Everything glows = visual noise, user fatigue
31
- **Right:** Only important elements glow = clear hierarchy, comfortable use
32
-
33
- **The 80/20 Rule:**
34
- - 80% of UI: Clean, readable, neutral
35
- - 20% of UI: Neon accents for focus points
36
-
37
- ### Three Principles
38
-
39
- 1. **Clarity First** — Information must be readable at a glance
40
- 2. **Restraint** — Neon effects are precious, use sparingly
41
- 3. **Graceful Degradation** — Works everywhere, shines where supported
42
-
43
- ---
44
-
45
- ## COLOR SYSTEM
46
-
47
- ### Primary Palette (Neon Accents - Used Sparingly)
48
-
49
- | Color | Hex | Usage | ANSI Fallback |
50
- |-------|-----|-------|---------------|
51
- | **Neon Cyan** | `#00FFFF` | Selected items, active tab, headers | Cyan (`\x1b[36m`) |
52
- | **Acid Green** | `#39FF14` | Healthy/ready status | Green (`\x1b[32m`) |
53
- | **Neon Yellow** | `#FFFF00` | Warnings, pending | Yellow (`\x1b[33m`) |
54
- | **Neon Red** | `#FF073A` | Errors, failed | Red (`\x1b[31m`) |
55
- | **Hot Pink** | `#FF0080` | Highlights, emphasis | Magenta (`\x1b[35m`) |
56
-
57
- ### Neutral Palette (Workhorse Colors)
58
-
59
- | Color | Hex | Usage | ANSI Fallback |
60
- |-------|-----|-------|---------------|
61
- | **Void Black** | `#0A0A0F` | Background | Default bg |
62
- | **Panel Gray** | `#14141F` | Panels, cards | Black (`\x1b[40m`) |
63
- | **Text White** | `#E0E0E0` | Primary text | White (`\x1b[37m`) |
64
- | **Dim Gray** | `#6B7280` | Secondary text | Dark gray |
65
- | **Border Gray** | `#374151` | Borders, dividers | Gray (`\x1b[90m`) |
66
-
67
- ### Where to Apply Neon (And Where NOT To)
68
-
69
- ✅ **USE Neon For:**
70
- - Currently selected item (single element)
71
- - Active tab only (not all tabs)
72
- - Status indicators (ready/error/pending)
73
- - Main header title
74
- - Keyboard shortcut hints
75
-
76
- ❌ **NEVER Use Neon For:**
77
- - Every border (creates visual noise)
78
- - Inactive/unselected items
79
- - Body text
80
- - Background fills
81
- - Decorative elements
82
-
83
- ---
84
-
85
- ## RESPONSIVE LAYOUT
86
-
87
- ### Breakpoints
88
-
89
- | Width | Layout | Behavior |
90
- |-------|--------|----------|
91
- | **≥120 cols** | Full | Sidebar visible, full neon borders |
92
- | **80-119 cols** | Compact | Sidebar visible, simplified borders |
93
- | **60-79 cols** | Minimal | No sidebar, stacked tabs |
94
- | **<60 cols** | Mobile | Single column, minimal chrome |
95
-
96
- ### Content Density by Size
97
-
98
- ```
99
- Full (120+ cols):
100
- ┌────────────────────────────────────────────────────────────────────────────┐
101
- │ ▓▒░ TDK NEON ░▒▓ │ /path/to/project │ 36 services ready │
102
- │ [1] Overview [2] Resources [3] Events [4] Files [5] Config │
103
- │ ┌─ Stacks ──────────────────────┐ ┌─ Details ──────────────────────┐ │
104
- │ │ api (5 services) │ │ Name: api │ │
105
- │ │ order (3 services) │ │ Status: ✓ Ready │ │
106
- │ │ platform (7 services) │ │ Services: 5 │ │
107
- │ └───────────────────────────────┘ └──────────────────────────────────┘ │
108
- └────────────────────────────────────────────────────────────────────────────┘
109
-
110
- Compact (80-119 cols):
111
- ┌────────────────────────────────────────────────────────┐
112
- │ ▓▒░ TDK ░▒▓ │ /path/to/project │ 36 svcs ready │
113
- │ [1]Overview [2]Resources [3]Events [4]Files [5]Config │
114
- │ ┌─ Stacks ───────────────────┐ ┌─ Details ───────┐ │
115
- │ │ api (5 svcs) │ │ api │ │
116
- │ │ order (3 svcs) │ │ ✓ Ready │ │
117
- │ └─────────────────────────────┘ └─────────────────┘ │
118
- └────────────────────────────────────────────────────────┘
119
-
120
- Mobile (<80 cols):
121
- ┌─────────────────────────────────┐
122
- │ ▓▒░ TDK ░▒▓ │ 36 svcs ready │
123
- │ [1][2][3][4][5] │
124
- │ ┌─ Stacks ───────────────────┐
125
- │ │ api (5 svcs) │
126
- │ │ ▸ order (3 svcs) │
127
- │ │ platform (7 svcs) │
128
- │ └───────────────────────────────┘
129
- │ ┌─ Details ───────────────────┐
130
- │ │ api │
131
- │ │ ✓ Ready │
132
- │ │ 5 services │
133
- │ └───────────────────────────────┘
134
- └─────────────────────────────────┘
135
- ```
136
-
137
- ---
138
-
139
- ## COMPONENTS
140
-
141
- ### 1. Header
142
-
143
- ```
144
- Minimal (Best):
145
- ╔══════════════════════════════════════════════════════════════════════╗
146
- ║ ▓▒░ TDK NEON EDITION ░▒▓ │ /path/to/project │ [ 36 services ] ║
147
- ╚══════════════════════════════════════════════════════════════════════╝
148
-
149
- Rules:
150
- - One neon accent: the title "▓▒░ TDK NEON EDITION ░▒▓"
151
- - Everything else: neutral colors
152
- - Height: 1 row
153
- - Separator: Single line (not double, not neon border)
154
- ```
155
-
156
- ### 2. Tab Bar
157
-
158
- ```
159
- Correct (Restrained):
160
- ╔══════════════════════════════════════════════════════════════════════╗
161
- ║ [1] ▓▒░OVERVIEW░▒▓ [2] Resources [3] Events [4] Files [5] Config ║
162
- ╚══════════════════════════════════════════════════════════════════════╝
163
-
164
- Wrong (Too Much):
165
- ▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░
166
- ▒▓ [1] ▓▒░ OVERVIEW ░▒▓ [2] RESOURCES [3] EVENTS ... ▓▒
167
- ▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░
168
-
169
- Rules:
170
- - Only the ACTIVE tab gets neon treatment
171
- - Inactive tabs: plain text with bracket hints
172
- - No outer borders (wastes space, adds noise)
173
- - Compact: abbreviate labels if needed ("Overview" → "Overvw")
174
- ```
175
-
176
- ### 3. Stack List
177
-
178
- ```
179
- Correct:
180
- ┌─ Stacks ───────────────────────────┐
181
- │ │
182
- │ order-planner (4 svcs) │
183
- │ order (3 svcs) │
184
- │ ▓▒░ api (5 svcs) ░▒▓ │ ← Only selected has neon
185
- │ billing (1 svc) │
186
- │ platform (7 svcs) │
187
- │ │
188
- └──────────────────────────────────────┘
189
-
190
- Wrong:
191
- ┌▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░┐
192
- │▒▓ ▓▒│
193
- │▓▒ order-planner (4 svcs) ▒▓│
194
- │▒▓ order (3 svcs) ▓▒│
195
- │▓▒ ▓▒░ api (5 svcs) ░▒▓ ▒▓│
196
- │▒▓ billing (1 svc) ▓▒│
197
- │▓▒ ▒▓│
198
- │▒▓ order-planner (4 svcs) ▓▒│
199
- └▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒┘
200
-
201
- Rules:
202
- - Simple box border (┌─┐│└┘)
203
- - Only the selected item gets neon background/text
204
- - Others: plain white on panel gray
205
- - Selected indicator: ► or ▸, not full border
206
- ```
207
-
208
- ### 4. Status Indicators
209
-
210
- ```
211
- Ready: ✓ acid green (not neon, just green)
212
- Pending: ◐ yellow (spinning if animated)
213
- Error: ✗ red (subtle pulse)
214
- Building: ◉ orange/yellow (rotating)
215
- Unknown: ? gray (dim, not attention-grabbing)
216
-
217
- Correct:
218
- api-backend backend ✓ ready (green, simple)
219
- api-frontend frontend ◐ pending (yellow, spinning)
220
- api-sdk sdk ✗ error (red, subtle)
221
-
222
- Wrong:
223
- api-backend backend ▓▒░✓▓▒░ READY ▓▒░ (overdone)
224
- api-frontend frontend ▓▒░◐▓▒░ PENDING ▓▒░ (overdone)
225
- ```
226
-
227
- ### 5. Detail Panel (Sidebar)
228
-
229
- ```
230
- Correct:
231
- ┌─ api ─────────────────────┐
232
- │ │
233
- │ Name: api │
234
- │ Services: 5 │
235
- │ Status: ✓ Ready │
236
- │ │
237
- │ Services: │
238
- │ ├─ id-mgmt-backend │
239
- │ ├─ id-mgmt-frontend │
240
- │ ├─ id-sdk │
241
- │ ├─ introvertic-infra │
242
- │ └─ product-introvertic-ui │
243
- │ │
244
- │ [Esc] Close │
245
- └────────────────────────────────┘
246
-
247
- Wrong:
248
- ┌▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░┐
249
- │▒▓ ▓▒│
250
- │▓▒ [ STACK : api ] ▒▓│
251
- │▒▓ ▓▒│
252
- │▓▒ Name: api ▒▓│
253
- │▒▓ Status: ▓▒░✓▓▒░▓▒░ ▓▒│
254
- │▓▒ ▒▓│
255
- └▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒┘
256
-
257
- Rules:
258
- - Simple box border
259
- - Status indicator gets color, nothing else
260
- - Text: white/gray, not neon
261
- - Close hint: subtle, bottom-aligned
262
- ```
263
-
264
- ---
265
-
266
- ## ANIMATION SYSTEM
267
-
268
- ### Animation Principles
269
-
270
- 1. **Purposeful** — Every animation guides attention
271
- 2. **Fast** — <200ms for feedback, <500ms for transitions
272
- 3. **Optional** — Respect `NO_ANIMATIONS` preference
273
-
274
- ### Animation Types
275
-
276
- #### 1. Selection Pulse (150ms)
277
-
278
- ```
279
- Selected item gets a quick cyan flash:
280
-
281
- Frame 1 (0ms): api (5 svcs) ← normal
282
- Frame 2 (50ms): ▓▒░api▓▒░ ← flash bright
283
- Frame 3 (100ms): ▓▒░api▓▒░ ← hold
284
- Frame 4 (150ms): ▓▒░api (5 svcs) ← back to normal with neon bg
285
- ```
286
-
287
- Timing:
288
- - **Easing**: Ease-out (fast start, slow end)
289
- - **Duration**: 150ms total
290
- - **Trigger**: User selects item (click or Enter)
291
-
292
- #### 2. Status Spinners (800ms loop)
293
-
294
- ```
295
- Pending indicator ◐ rotates:
296
-
297
- Frame 1: ◐ (0ms)
298
- Frame 2: ◓ (100ms)
299
- Frame 3: ◑ (200ms)
300
- Frame 4: ◒ (300ms)
301
- Frame 5: ◐ (400ms) ← back to start
302
- ```
303
-
304
- Timing:
305
- - **Duration**: 800ms loop
306
- - **Easing**: Linear (smooth continuous)
307
- - **Trigger**: Service status is "pending" or "building"
308
-
309
- #### 3. Error Pulse (1000ms loop)
310
-
311
- ```
312
- Error status ✗ pulses subtly:
313
-
314
- Frame 1 (0ms): ✗ error (red, normal)
315
- Frame 2 (250ms): ✗ error (red, 20% brighter)
316
- Frame 3 (500ms): ✗ error (red, normal)
317
- Frame 4 (750ms): ✗ error (red, 20% brighter)
318
- ```
319
-
320
- Timing:
321
- - **Duration**: 1000ms loop
322
- - **Easing**: Sine wave (smooth pulse)
323
- - **Trigger**: Service status is "error"
324
-
325
- #### 4. Tab Switch (100ms)
326
-
327
- ```
328
- Tab switches with quick fade:
329
-
330
- Frame 1 (0ms): [1] ▓▒░OVERVIEW░▒▓ [2] Resources ← old active
331
- Frame 2 (50ms): [1] Overview [2] ▓▒░RESOURCES▓▒░ ← transition
332
- Frame 3 (100ms): [1] Overview [2] ▓▒░RESOURCES▓▒░ ← new active
333
- ```
334
-
335
- Timing:
336
- - **Duration**: 100ms
337
- - **Easing**: Instant (no tweening needed)
338
- - **Trigger**: User switches tabs
339
-
340
- ### Animation Disable Option
341
-
342
- ```bash
343
- # Disable for slow connections or user preference
344
- tdk ui --no-animations
345
- # or
346
- NO_ANIMATIONS=1 tdk ui
347
- ```
348
-
349
- When disabled:
350
- - Spinners show static icon
351
- - Pulses are instant (no fade)
352
- - All timing becomes 0ms (immediate)
353
-
354
- ---
355
-
356
- ## ACCESSIBILITY
357
-
358
- ### Color Blindness Support
359
-
360
- **Problem:** Red/green status indicators are invisible to 8% of males
361
-
362
- **Solution:** Use BOTH color AND symbol
363
-
364
- ```
365
- Correct (Color + Shape):
366
- ✓ ready (green + checkmark)
367
- ✗ error (red + X)
368
- ◐ pending (yellow + spinning circle)
369
-
370
- Wrong (Color Only):
371
- ● ready (just green dot)
372
- ● error (just red dot)
373
- ```
374
-
375
- ### High Contrast Mode
376
-
377
- ```bash
378
- # For visually impaired users
379
- tdk ui --high-contrast
380
- # or
381
- HIGH_CONTRAST=1 tdk ui
382
- ```
383
-
384
- Changes in high contrast:
385
- - Neon → Pure primary colors (bright cyan, not subtle)
386
- - Background → Pure black (#000000)
387
- - Text → Pure white (#FFFFFF)
388
- - No gradients, no dim colors
389
-
390
- ### Keyboard Navigation (Always Supported)
391
-
392
- ```
393
- Tab Order:
394
- 1. Tab bar (arrow keys to switch tabs)
395
- 2. List items (↑/↓ to navigate, Enter to select)
396
- 3. Detail panel (if visible)
397
- 4. Status bar (shortcuts)
398
-
399
- Focus Indicators:
400
- - Focused element: Cyan border + underline
401
- - Unfocused: No special styling
402
- ```
403
-
404
- ### Screen Reader Support
405
-
406
- ```
407
- ARIA Labels for terminal (via text hints):
408
-
409
- Before:
410
- ▸ api (5 services)
411
-
412
- After:
413
- [SELECTED] api, 5 services, stack, press Enter to view details
414
-
415
- Implementation:
416
- - Prefix selected items with [SELECTED]
417
- - Add context hints in brackets
418
- - Keep main text clean
419
- ```
420
-
421
- ---
422
-
423
- ## ERROR & EDGE STATES
424
-
425
- ### 1. No Services Found
426
-
427
- ```
428
- ╔══════════════════════════════════════════════════════════════════════╗
429
- ║ ▓▒░ TDK NEON EDITION ░▒▓ ║
430
- ╠══════════════════════════════════════════════════════════════════════╣
431
- ║ ║
432
- ║ ┌─ No Services Found ──────────────────────────────────────────────┐
433
- ║ │ │
434
- ║ │ ◉ No service.json files found in this directory │
435
- ║ │ │
436
- ║ │ To get started: │
437
- ║ │ 1. Run: tdk init │
438
- ║ │ 2. Or create services manually │
439
- ║ │ │
440
- ║ │ [Press 'q' to quit] │
441
- ║ │ │
442
- ║ └───────────────────────────────────────────────────────────────────┘
443
- ║ ║
444
- ╚══════════════════════════════════════════════════════════════════════╝
445
- ```
446
-
447
- **Design Notes:**
448
- - Icon: ◉ (warning circle, not neon)
449
- - Color: Yellow (attention, not alarm)
450
- - CTA: Clear next steps
451
-
452
- ### 2. Connection Error
453
-
454
- ```
455
- ╔══════════════════════════════════════════════════════════════════════╗
456
- ║ ▓▒░ TDK NEON EDITION ░▒▓ ║
457
- ╠══════════════════════════════════════════════════════════════════════╣
458
- ║ ║
459
- ║ ┌─ Connection Error ────────────────────────────────────────────────┐
460
- ║ │ │
461
- ║ │ ✗ Cannot connect to Tilt daemon │
462
- ║ │ │
463
- ║ │ Troubleshooting: │
464
- ║ │ 1. Is Tilt running? Run: tilt up │
465
- ║ │ 2. Check Tiltfile exists in current directory │
466
- ║ │ 3. Try: tdk status --verbose │
467
- ║ │ │
468
- ║ │ [Press any key to retry] │
469
- ║ │ │
470
- ║ └───────────────────────────────────────────────────────────────────┘
471
- ║ ║
472
- ╚══════════════════════════════════════════════════════════════════════╝
473
- ```
474
-
475
- **Design Notes:**
476
- - Icon: ✗ (error X, red)
477
- - Color: Red for error state
478
- - CTA: Multiple troubleshooting options
479
-
480
- ### 3. Loading State
481
-
482
- ```
483
- ╔══════════════════════════════════════════════════════════════════════╗
484
- ║ ▓▒░ TDK NEON EDITION ░▒▓ ║
485
- ╠══════════════════════════════════════════════════════════════════════╣
486
- ║ ║
487
- ║ ┌─ Loading System ──────────────────────────────────────────────────┐
488
- ║ │ │
489
- ║ │ [ ◐ ] Discovering services... │
490
- ║ │ ████████████████████░░░░░░░ 67% │
491
- ║ │ │
492
- ║ │ [ ◉ ] Found: 14 stacks, 36 services │
493
- ║ │ │
494
- ║ │ [ ] Initializing UI... │
495
- ║ │ │
496
- ║ └───────────────────────────────────────────────────────────────────┘
497
- ║ ║
498
- ║ [Press 'q' to cancel] ║
499
- ╚══════════════════════════════════════════════════════════════════════╝
500
- ```
501
-
502
- **Design Notes:**
503
- - Spinner: ◐ (rotating)
504
- - Progress bar: Cyan fill on gray bg
505
- - Steps: Show completed, current, pending
506
- - Cancel option: Always available
507
-
508
- ### 4. Empty Stack (No Services in Stack)
509
-
510
- ```
511
- ┌─ ghost-stack ──────────────────────┐
512
- │ │
513
- │ ◉ No services assigned to this │
514
- │ stack yet │
515
- │ │
516
- │ To add services: │
517
- │ 1. Edit service.json │
518
- │ 2. Add: "stack": "ghost-stack" │
519
- │ │
520
- └─────────────────────────────────────┘
521
- ```
522
-
523
- ### 5. Timeout Error
524
-
525
- ```
526
- ┌─ Request Timeout ───────────────────┐
527
- │ │
528
- │ ✗ No response from Tilt (30s) │
529
- │ │
530
- │ Possible causes: │
531
- │ • Tilt is overloaded │
532
- │ • Network latency │
533
- │ • Resource is stuck │
534
- │ │
535
- │ [r] Retry [s] Skip [q] Quit │
536
- │ │
537
- └─────────────────────────────────────┘
538
- ```
539
-
540
- ---
541
-
542
- ## TERMINAL COMPATIBILITY
543
-
544
- ### Feature Detection
545
-
546
- ```typescript
547
- // Detect terminal capabilities
548
- const capabilities = {
549
- // True color (24-bit) support
550
- trueColor: process.env.COLORTERM === 'truecolor' ||
551
- process.env.TERM === 'xterm-256color',
552
-
553
- // Unicode support
554
- unicode: process.env.LANG?.includes('UTF-8') !== false,
555
-
556
- // Animation support (not in CI, not in dumb terminal)
557
- animations: !process.env.CI &&
558
- process.env.TERM !== 'dumb' &&
559
- !process.env.NO_ANIMATIONS,
560
-
561
- // Mouse support
562
- mouse: process.stdout.isTTY &&
563
- !process.env.NO_MOUSE,
564
- };
565
- ```
566
-
567
- ### Fallback Strategy
568
-
569
- | Feature | Full Support | Fallback |
570
- |---------|--------------|----------|
571
- | **True Color** | 24-bit neon | 256-color approx |
572
- | **Unicode** | ▓▒░ borders | ASCII +-\| |
573
- | **Animations** | 150ms fades | Instant |
574
- | **Mouse** | Click support | Keyboard only |
575
- | **Bold** | Bold + bright | Bright only |
576
-
577
- ### 256-Color Fallback Palette
578
-
579
- ```typescript
580
- // When true color isn't available
581
- const FALLBACK_256 = {
582
- cyan: '\x1b[38;5;51m', // Closest to #00FFFF
583
- green: '\x1b[38;5;82m', // Closest to #39FF14
584
- yellow: '\x1b[38;5;226m', // Closest to #FFFF00
585
- red: '\x1b[38;5;196m', // Closest to #FF073A
586
- pink: '\x1b[38;5;198m', // Closest to #FF0080
587
- purple: '\x1b[38;5;129m', // Closest to #BF00FF
588
- };
589
- ```
590
-
591
- ### 16-Color Fallback (Basic Terminals)
592
-
593
- ```typescript
594
- // For basic terminals (like Windows CMD without ANSI)
595
- const FALLBACK_16 = {
596
- cyan: '\x1b[36m', // ANSI cyan
597
- green: '\x1b[32m', // ANSI green
598
- yellow: '\x1b[33m', // ANSI yellow
599
- red: '\x1b[31m', // ANSI red
600
- pink: '\x1b[35m', // ANSI magenta (closest)
601
- purple: '\x1b[35m', // ANSI magenta
602
- white: '\x1b[37m', // ANSI white
603
- gray: '\x1b[90m', // ANSI bright black
604
- };
605
- ```
606
-
607
- ### ASCII Fallback (No Unicode)
608
-
609
- ```
610
- Full Unicode:
611
- ▓▒░ TDK ░▒▓ │ api (5 svcs) │ ✓ ready
612
-
613
- ASCII Fallback:
614
- [ TDK ] | api (5 svcs) | [OK] ready
615
-
616
- Border Unicode:
617
- ┌─ Stacks ─┐
618
- │ api │
619
- └──────────┘
620
-
621
- Border ASCII:
622
- +- Stacks --+
623
- | api |
624
- +----------+
625
- ```
626
-
627
- ---
628
-
629
- ## PERFORMANCE GUIDELINES
630
-
631
- ### Rendering Rules
632
-
633
- 1. **Max 60 FPS** — Don't exceed terminal capabilities
634
- 2. **Throttle Resize** — Debounce resize events (100ms)
635
- 3. **Limit Re-renders** — Use memoization for static content
636
- 4. **Lazy Load** — Only render visible items
637
-
638
- ### Memory Budget
639
-
640
- - **Max 50MB** — For full UI with 100+ services
641
- - **Clean up on exit** — Always restore terminal state
642
- - **No memory leaks** — Remove all listeners on unmount
643
-
644
- ### Network/IO
645
-
646
- - **Debounce file watchers** — 100ms minimum
647
- - **Cache metadata** — 5 second TTL
648
- - **Background refresh** — Don't block UI
649
-
650
- ---
651
-
652
- ## IMPLEMENTATION CHECKLIST
653
-
654
- ### Visual Design
655
- - [ ] Header uses single neon accent
656
- - [ ] Only active tab has neon
657
- - [ ] Only selected item has neon background
658
- - [ ] Status icons use color + symbol
659
- - [ ] Simple borders (not neon borders everywhere)
660
- - [ ] Responsive layout works at 80+ cols
661
-
662
- ### Animations
663
- - [ ] Selection pulse: 150ms
664
- - [ ] Tab switch: 100ms
665
- - [ ] Spinner: 800ms loop
666
- - [ ] Error pulse: 1000ms loop
667
- - [ ] All animations can be disabled
668
-
669
- ### Accessibility
670
- - [ ] Keyboard navigation works
671
- - [ ] Color blind safe (symbols + colors)
672
- - [ ] High contrast mode available
673
- - [ ] Screen reader hints included
674
-
675
- ### Compatibility
676
- - [ ] True color detection
677
- - [ ] 256-color fallback
678
- - [ ] 16-color fallback
679
- - [ ] ASCII fallback for borders
680
- - [ ] Mouse optional (keyboard always works)
681
-
682
- ### Error States
683
- - [ ] No services found state
684
- - [ ] Connection error state
685
- - [ ] Loading state with progress
686
- - [ ] Empty stack state
687
- - [ ] Timeout state
688
-
689
- ---
690
-
691
- ## DESIGN DECISIONS LOG
692
-
693
- | Decision | Alternatives | Rationale |
694
- |----------|--------------|-----------|
695
- | ▓▒░ for selected only | Border every item | Reduces visual noise |
696
- | Simple borders | Neon borders everywhere | Cleaner, more professional |
697
- | Single header row | Ornate multi-row header | Saves space for content |
698
- | 5 tabs max | More tabs with scrolling | 80-col minimum support |
699
- | Cyan primary | Pink or green | Cyan is most visible on dark bg |
700
- | Spinners on status only | Spinners everywhere | Focuses attention |
701
-
702
- ---
703
-
704
- ## SUMMARY
705
-
706
- **The Golden Rules:**
707
-
708
- 1. **Neon is a spotlight, not a floodlight**
709
- 2. **Clarity beats decoration**
710
- 3. **Works everywhere, shines where supported**
711
- 4. **Accessibility is not optional**
712
- 5. **Performance is a feature**
713
-
714
- **Before/After Comparison:**
715
-
716
- ```
717
- BEFORE (Visual Overload):
718
- ▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░
719
- ▒▓ EVERYTHING GLOWS ▓▒
720
- ▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░▓▒░
721
-
722
- AFTER (Restrained & Clear):
723
- ┌─ Stacks ───────────────────┐
724
- │ api (5 svcs) │
725
- │ ▓▒░ billing (1 svc) ░▒▓ │ ← Only selected glows
726
- │ platform (7 svcs) │
727
- └────────────────────────────┘
728
- ```
729
-
730
- **This is the TDK Neon Edition: Beautiful, Practical, Accessible.**
731
-
732
- ---
733
-
734
- **DESIGN SYSTEM v3.0**
735
- **Practical Cyberpunk for Real Terminals**