@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
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**