@tdk-landscape/tdk-cli-core 1.3.53 → 1.3.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +1 -1
  3. package/cli/dist/commands/doctor.js +21 -3
  4. package/cli/dist/commands/upgrade.js +7 -7
  5. package/cli/dist/generator/extension-fetch.js +16 -9
  6. package/cli/dist/utils/spinner.js +39 -0
  7. package/cli/package.json +1 -2
  8. package/package.json +16 -2
  9. package/.claude/skills/layer-autoresearch/SKILL.md +0 -48
  10. package/.claude/skills/tdk-troubleshoot/SKILL.md +0 -222
  11. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -40
  12. package/.github/ISSUE_TEMPLATE/config.yml +0 -11
  13. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -18
  14. package/.github/ISSUE_TEMPLATE/premium_license.yml +0 -43
  15. package/.github/dependabot.yml +0 -33
  16. package/.github/pull_request_template.md +0 -5
  17. package/.github/workflows/ci.yml +0 -200
  18. package/.github/workflows/release-binaries.yml +0 -139
  19. package/.github/zizmor.yml +0 -9
  20. package/.pre-commit-config.yaml +0 -57
  21. package/CODE_OF_CONDUCT.md +0 -9
  22. package/CONTRIBUTING.md +0 -42
  23. package/Makefile +0 -92
  24. package/SECURITY.md +0 -17
  25. package/benchmarks/results/container-scale-2026-09-25T20-54-49-736Z.json +0 -45
  26. package/benchmarks/results/container-scale-2026-09-25T21-01-20-540Z.json +0 -150
  27. package/benchmarks/results/container-scale-2026-09-25T21-15-01-441Z.json +0 -73
  28. package/benchmarks/results/container-scale-2026-09-25T22-09-01-630Z.json +0 -77
  29. package/benchmarks/results/container-scale-2026-09-25T22-18-28-371Z.json +0 -202
  30. package/cli/AGENTS.md +0 -390
  31. package/cli/DESIGN.md +0 -735
  32. package/cli/README.md +0 -292
  33. package/cli/biome.json +0 -40
  34. package/cli/dependency-graph.svg +0 -1135
  35. package/cli/dist/cli.d.ts +0 -3
  36. package/cli/dist/cli.d.ts.map +0 -1
  37. package/cli/dist/cli.js.map +0 -1
  38. package/cli/dist/commands/completion.d.ts +0 -3
  39. package/cli/dist/commands/completion.d.ts.map +0 -1
  40. package/cli/dist/commands/completion.js.map +0 -1
  41. package/cli/dist/commands/config.d.ts +0 -3
  42. package/cli/dist/commands/config.d.ts.map +0 -1
  43. package/cli/dist/commands/config.js.map +0 -1
  44. package/cli/dist/commands/doctor.d.ts +0 -19
  45. package/cli/dist/commands/doctor.d.ts.map +0 -1
  46. package/cli/dist/commands/doctor.js.map +0 -1
  47. package/cli/dist/commands/down.d.ts +0 -3
  48. package/cli/dist/commands/down.d.ts.map +0 -1
  49. package/cli/dist/commands/down.js.map +0 -1
  50. package/cli/dist/commands/help.d.ts +0 -2
  51. package/cli/dist/commands/help.d.ts.map +0 -1
  52. package/cli/dist/commands/help.js.map +0 -1
  53. package/cli/dist/commands/networks.d.ts +0 -3
  54. package/cli/dist/commands/networks.d.ts.map +0 -1
  55. package/cli/dist/commands/networks.js.map +0 -1
  56. package/cli/dist/commands/project.d.ts +0 -9
  57. package/cli/dist/commands/project.d.ts.map +0 -1
  58. package/cli/dist/commands/project.js.map +0 -1
  59. package/cli/dist/commands/projects.d.ts +0 -3
  60. package/cli/dist/commands/projects.d.ts.map +0 -1
  61. package/cli/dist/commands/projects.js.map +0 -1
  62. package/cli/dist/commands/resource.d.ts +0 -69
  63. package/cli/dist/commands/resource.d.ts.map +0 -1
  64. package/cli/dist/commands/resource.js.map +0 -1
  65. package/cli/dist/commands/resources.d.ts +0 -3
  66. package/cli/dist/commands/resources.d.ts.map +0 -1
  67. package/cli/dist/commands/resources.js.map +0 -1
  68. package/cli/dist/commands/stack.d.ts +0 -3
  69. package/cli/dist/commands/stack.d.ts.map +0 -1
  70. package/cli/dist/commands/stack.js.map +0 -1
  71. package/cli/dist/commands/stacks.d.ts +0 -3
  72. package/cli/dist/commands/stacks.d.ts.map +0 -1
  73. package/cli/dist/commands/stacks.js.map +0 -1
  74. package/cli/dist/commands/status.d.ts +0 -3
  75. package/cli/dist/commands/status.d.ts.map +0 -1
  76. package/cli/dist/commands/status.js.map +0 -1
  77. package/cli/dist/commands/ui.d.ts +0 -3
  78. package/cli/dist/commands/ui.d.ts.map +0 -1
  79. package/cli/dist/commands/ui.js.map +0 -1
  80. package/cli/dist/commands/up.d.ts +0 -3
  81. package/cli/dist/commands/up.d.ts.map +0 -1
  82. package/cli/dist/commands/up.js.map +0 -1
  83. package/cli/dist/commands/upgrade.d.ts +0 -14
  84. package/cli/dist/commands/upgrade.d.ts.map +0 -1
  85. package/cli/dist/commands/upgrade.js.map +0 -1
  86. package/cli/dist/commands/version.d.ts +0 -3
  87. package/cli/dist/commands/version.d.ts.map +0 -1
  88. package/cli/dist/commands/version.js.map +0 -1
  89. package/cli/dist/components/Accessible.d.ts +0 -8
  90. package/cli/dist/components/Accessible.d.ts.map +0 -1
  91. package/cli/dist/components/Accessible.js.map +0 -1
  92. package/cli/dist/components/BaseTooltip.d.ts +0 -4
  93. package/cli/dist/components/BaseTooltip.d.ts.map +0 -1
  94. package/cli/dist/components/BaseTooltip.js.map +0 -1
  95. package/cli/dist/components/DetailPanel.d.ts +0 -4
  96. package/cli/dist/components/DetailPanel.d.ts.map +0 -1
  97. package/cli/dist/components/DetailPanel.js.map +0 -1
  98. package/cli/dist/components/FileTree.d.ts +0 -4
  99. package/cli/dist/components/FileTree.d.ts.map +0 -1
  100. package/cli/dist/components/FileTree.js.map +0 -1
  101. package/cli/dist/components/ResourceSelectInput.d.ts +0 -4
  102. package/cli/dist/components/ResourceSelectInput.d.ts.map +0 -1
  103. package/cli/dist/components/ResourceSelectInput.js.map +0 -1
  104. package/cli/dist/components/ResourceTable.d.ts +0 -4
  105. package/cli/dist/components/ResourceTable.d.ts.map +0 -1
  106. package/cli/dist/components/ResourceTable.js.map +0 -1
  107. package/cli/dist/components/TabBar.d.ts +0 -4
  108. package/cli/dist/components/TabBar.d.ts.map +0 -1
  109. package/cli/dist/components/TabBar.js.map +0 -1
  110. package/cli/dist/components/Tooltip.d.ts +0 -12
  111. package/cli/dist/components/Tooltip.d.ts.map +0 -1
  112. package/cli/dist/components/Tooltip.js.map +0 -1
  113. package/cli/dist/components/index.d.ts +0 -8
  114. package/cli/dist/components/index.d.ts.map +0 -1
  115. package/cli/dist/components/index.js.map +0 -1
  116. package/cli/dist/config/platform-standards.d.ts +0 -159
  117. package/cli/dist/config/platform-standards.d.ts.map +0 -1
  118. package/cli/dist/config/platform-standards.js.map +0 -1
  119. package/cli/dist/generator/extension-fetch.d.ts +0 -25
  120. package/cli/dist/generator/extension-fetch.d.ts.map +0 -1
  121. package/cli/dist/generator/extension-fetch.js.map +0 -1
  122. package/cli/dist/generator/template-engine.d.ts +0 -62
  123. package/cli/dist/generator/template-engine.d.ts.map +0 -1
  124. package/cli/dist/generator/template-engine.js.map +0 -1
  125. package/cli/dist/index.d.ts +0 -11
  126. package/cli/dist/index.d.ts.map +0 -1
  127. package/cli/dist/index.js.map +0 -1
  128. package/cli/dist/types/index.d.ts +0 -257
  129. package/cli/dist/types/index.d.ts.map +0 -1
  130. package/cli/dist/types/index.js.map +0 -1
  131. package/cli/dist/utils/cache.d.ts +0 -19
  132. package/cli/dist/utils/cache.d.ts.map +0 -1
  133. package/cli/dist/utils/cache.js.map +0 -1
  134. package/cli/dist/utils/command-helpers.d.ts +0 -17
  135. package/cli/dist/utils/command-helpers.d.ts.map +0 -1
  136. package/cli/dist/utils/command-helpers.js.map +0 -1
  137. package/cli/dist/utils/constants.d.ts +0 -53
  138. package/cli/dist/utils/constants.d.ts.map +0 -1
  139. package/cli/dist/utils/constants.js.map +0 -1
  140. package/cli/dist/utils/discovery-context.d.ts +0 -4
  141. package/cli/dist/utils/discovery-context.d.ts.map +0 -1
  142. package/cli/dist/utils/discovery-context.js.map +0 -1
  143. package/cli/dist/utils/docker.d.ts +0 -4
  144. package/cli/dist/utils/docker.d.ts.map +0 -1
  145. package/cli/dist/utils/docker.js.map +0 -1
  146. package/cli/dist/utils/doctor-runtime.d.ts +0 -81
  147. package/cli/dist/utils/doctor-runtime.d.ts.map +0 -1
  148. package/cli/dist/utils/doctor-runtime.js.map +0 -1
  149. package/cli/dist/utils/env-validator.d.ts +0 -15
  150. package/cli/dist/utils/env-validator.d.ts.map +0 -1
  151. package/cli/dist/utils/env-validator.js.map +0 -1
  152. package/cli/dist/utils/errors.d.ts +0 -31
  153. package/cli/dist/utils/errors.d.ts.map +0 -1
  154. package/cli/dist/utils/errors.js.map +0 -1
  155. package/cli/dist/utils/file-helpers.d.ts +0 -14
  156. package/cli/dist/utils/file-helpers.d.ts.map +0 -1
  157. package/cli/dist/utils/file-helpers.js.map +0 -1
  158. package/cli/dist/utils/formatting.d.ts +0 -30
  159. package/cli/dist/utils/formatting.d.ts.map +0 -1
  160. package/cli/dist/utils/formatting.js.map +0 -1
  161. package/cli/dist/utils/paths.d.ts +0 -3
  162. package/cli/dist/utils/paths.d.ts.map +0 -1
  163. package/cli/dist/utils/paths.js.map +0 -1
  164. package/cli/dist/utils/port-assignment.d.ts +0 -6
  165. package/cli/dist/utils/port-assignment.d.ts.map +0 -1
  166. package/cli/dist/utils/port-assignment.js.map +0 -1
  167. package/cli/dist/utils/project-features.d.ts +0 -23
  168. package/cli/dist/utils/project-features.d.ts.map +0 -1
  169. package/cli/dist/utils/project-features.js.map +0 -1
  170. package/cli/dist/utils/project-templates.d.ts +0 -7
  171. package/cli/dist/utils/project-templates.d.ts.map +0 -1
  172. package/cli/dist/utils/project-templates.js.map +0 -1
  173. package/cli/dist/utils/prompt.d.ts +0 -28
  174. package/cli/dist/utils/prompt.d.ts.map +0 -1
  175. package/cli/dist/utils/prompt.js.map +0 -1
  176. package/cli/dist/utils/resource-features.d.ts +0 -29
  177. package/cli/dist/utils/resource-features.d.ts.map +0 -1
  178. package/cli/dist/utils/resource-features.js.map +0 -1
  179. package/cli/dist/utils/service-urls.d.ts +0 -30
  180. package/cli/dist/utils/service-urls.d.ts.map +0 -1
  181. package/cli/dist/utils/service-urls.js.map +0 -1
  182. package/cli/dist/utils/services.d.ts +0 -18
  183. package/cli/dist/utils/services.d.ts.map +0 -1
  184. package/cli/dist/utils/services.js.map +0 -1
  185. package/cli/dist/utils/stack-features.d.ts +0 -22
  186. package/cli/dist/utils/stack-features.d.ts.map +0 -1
  187. package/cli/dist/utils/stack-features.js.map +0 -1
  188. package/cli/dist/utils/tar.d.ts +0 -7
  189. package/cli/dist/utils/tar.d.ts.map +0 -1
  190. package/cli/dist/utils/tar.js.map +0 -1
  191. package/cli/dist/utils/tilt.d.ts +0 -20
  192. package/cli/dist/utils/tilt.d.ts.map +0 -1
  193. package/cli/dist/utils/tilt.js.map +0 -1
  194. package/cli/dist/utils/validation.d.ts +0 -16
  195. package/cli/dist/utils/validation.d.ts.map +0 -1
  196. package/cli/dist/utils/validation.js.map +0 -1
  197. package/cli/knip.json +0 -6
  198. package/cli/pnpm-lock.yaml +0 -2305
  199. package/cli/pnpm-workspace.yaml +0 -2
  200. package/cli/src/cli.ts +0 -72
  201. package/cli/src/commands/__tests__/always-enabled-infra.test.ts +0 -109
  202. package/cli/src/commands/__tests__/config.test.ts +0 -146
  203. package/cli/src/commands/__tests__/doctor.test.ts +0 -730
  204. package/cli/src/commands/__tests__/error-handling.test.ts +0 -78
  205. package/cli/src/commands/__tests__/phases-model.test.ts +0 -161
  206. package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +0 -187
  207. package/cli/src/commands/__tests__/project.test.ts +0 -68
  208. package/cli/src/commands/__tests__/resource.test.ts +0 -226
  209. package/cli/src/commands/__tests__/saas-starter-integration.test.ts +0 -194
  210. package/cli/src/commands/__tests__/stack-features-e2e.test.ts +0 -135
  211. package/cli/src/commands/__tests__/upgrade.test.ts +0 -198
  212. package/cli/src/commands/completion.ts +0 -300
  213. package/cli/src/commands/config.ts +0 -299
  214. package/cli/src/commands/doctor.ts +0 -926
  215. package/cli/src/commands/down.ts +0 -37
  216. package/cli/src/commands/help.ts +0 -143
  217. package/cli/src/commands/networks-design.md +0 -80
  218. package/cli/src/commands/networks.ts +0 -332
  219. package/cli/src/commands/project.ts +0 -456
  220. package/cli/src/commands/projects.ts +0 -82
  221. package/cli/src/commands/resource.ts +0 -652
  222. package/cli/src/commands/resources.ts +0 -95
  223. package/cli/src/commands/stack.ts +0 -128
  224. package/cli/src/commands/stacks.ts +0 -52
  225. package/cli/src/commands/status.ts +0 -88
  226. package/cli/src/commands/ui.tsx +0 -843
  227. package/cli/src/commands/up.ts +0 -169
  228. package/cli/src/commands/upgrade.ts +0 -628
  229. package/cli/src/commands/version.ts +0 -9
  230. package/cli/src/components/Accessible.tsx +0 -21
  231. package/cli/src/components/BaseTooltip.tsx +0 -66
  232. package/cli/src/components/DetailPanel.tsx +0 -146
  233. package/cli/src/components/FileTree.tsx +0 -89
  234. package/cli/src/components/ResourceSelectInput.tsx +0 -30
  235. package/cli/src/components/ResourceTable.tsx +0 -78
  236. package/cli/src/components/TabBar.tsx +0 -53
  237. package/cli/src/components/Tooltip.tsx +0 -11
  238. package/cli/src/components/index.ts +0 -7
  239. package/cli/src/config/platform-standards.test.ts +0 -11
  240. package/cli/src/config/platform-standards.ts +0 -196
  241. package/cli/src/generator/__tests__/extension-fetch.test.ts +0 -242
  242. package/cli/src/generator/__tests__/template-engine.test.ts +0 -70
  243. package/cli/src/generator/extension-fetch.ts +0 -286
  244. package/cli/src/generator/template-engine.ts +0 -752
  245. package/cli/src/index.ts +0 -86
  246. package/cli/src/templates.d.ts +0 -4
  247. package/cli/src/types/index.ts +0 -353
  248. package/cli/src/utils/__tests__/cache.test.ts +0 -98
  249. package/cli/src/utils/__tests__/formatting.test.ts +0 -170
  250. package/cli/src/utils/__tests__/paths.test.ts +0 -180
  251. package/cli/src/utils/__tests__/port-assignment.test.ts +0 -121
  252. package/cli/src/utils/__tests__/service-urls.test.ts +0 -174
  253. package/cli/src/utils/__tests__/services.test.ts +0 -531
  254. package/cli/src/utils/__tests__/tilt.test.ts +0 -172
  255. package/cli/src/utils/__tests__/validation.test.ts +0 -148
  256. package/cli/src/utils/cache.ts +0 -76
  257. package/cli/src/utils/command-helpers.ts +0 -54
  258. package/cli/src/utils/constants.ts +0 -130
  259. package/cli/src/utils/discovery-context.ts +0 -49
  260. package/cli/src/utils/docker.ts +0 -20
  261. package/cli/src/utils/doctor-runtime.ts +0 -644
  262. package/cli/src/utils/env-validator.ts +0 -139
  263. package/cli/src/utils/errors.ts +0 -168
  264. package/cli/src/utils/file-helpers.ts +0 -62
  265. package/cli/src/utils/formatting.ts +0 -215
  266. package/cli/src/utils/paths.ts +0 -53
  267. package/cli/src/utils/port-assignment.ts +0 -106
  268. package/cli/src/utils/project-features.ts +0 -118
  269. package/cli/src/utils/project-templates.ts +0 -29
  270. package/cli/src/utils/prompt.ts +0 -128
  271. package/cli/src/utils/resource-features.ts +0 -215
  272. package/cli/src/utils/service-urls.ts +0 -124
  273. package/cli/src/utils/services.ts +0 -364
  274. package/cli/src/utils/stack-features.ts +0 -30
  275. package/cli/src/utils/tar.ts +0 -24
  276. package/cli/src/utils/tilt.ts +0 -133
  277. package/cli/src/utils/validation.ts +0 -67
  278. package/cli/tsconfig.json +0 -25
  279. package/cli/tsconfig.typecheck.json +0 -8
  280. package/docs/FEATURES.md +0 -281
  281. package/docs/demo.svg +0 -217
  282. package/engine/docs/AUTODISCOVERY_TEST.md +0 -182
  283. package/engine/docs/C4-ARCHITECTURE-operations.md +0 -396
  284. package/engine/docs/C4-ARCHITECTURE-overview.md +0 -284
  285. package/engine/docs/C4-ARCHITECTURE.md +0 -17
  286. package/engine/docs/GOLDEN_IMAGE_INTEGRATION.md +0 -349
  287. package/engine/docs/MANIFEST_DRIVEN_ARCHITECTURE.md +0 -357
  288. package/engine/docs/README.md +0 -284
  289. package/install.sh +0 -19
  290. package/knip.json +0 -10
  291. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +0 -2
  292. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +0 -102
  293. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +0 -31
  294. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +0 -48
  295. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +0 -63
  296. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +0 -56
  297. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +0 -61
  298. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +0 -2
  299. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +0 -114
  300. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +0 -32
  301. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +0 -20
  302. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +0 -20
  303. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +0 -20
  304. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +0 -194
  305. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +0 -2
  306. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +0 -111
  307. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +0 -33
  308. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +0 -12
  309. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +0 -18
  310. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +0 -16
  311. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +0 -12
  312. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +0 -12
  313. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +0 -194
  314. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +0 -2
  315. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +0 -84
  316. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +0 -31
  317. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +0 -27
  318. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +0 -27
  319. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +0 -23
  320. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +0 -27
  321. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +0 -39
  322. package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +0 -2
  323. package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +0 -80
  324. package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +0 -40
  325. package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +0 -52
  326. package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +0 -51
  327. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +0 -2
  328. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +0 -43
  329. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +0 -29
  330. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +0 -67
  331. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +0 -27
  332. package/openspec/changes/optimize-runtime-docker-layers/.openspec.yaml +0 -3
  333. package/openspec/changes/optimize-runtime-docker-layers/design.md +0 -81
  334. package/openspec/changes/optimize-runtime-docker-layers/proposal.md +0 -44
  335. package/openspec/changes/optimize-runtime-docker-layers/specs/runtime-container-footprint/spec.md +0 -79
  336. package/openspec/changes/optimize-runtime-docker-layers/tasks.md +0 -36
  337. package/openspec/changes/prioritized-cold-start/.openspec.yaml +0 -4
  338. package/openspec/changes/prioritized-cold-start/design.md +0 -137
  339. package/openspec/changes/prioritized-cold-start/proposal.md +0 -41
  340. package/openspec/changes/prioritized-cold-start/specs/on-demand-resource-startup/spec.md +0 -98
  341. package/openspec/changes/prioritized-cold-start/tasks.md +0 -69
  342. package/openspec/config.yaml +0 -1
  343. package/openspec/specs/manifest-field-migration/spec.md +0 -24
  344. package/openspec/specs/resource-terminology-standard/spec.md +0 -24
  345. package/openspec/specs/self-contained-generated-projects/spec.md +0 -67
  346. package/openspec/specs/stack-terminology-standard/spec.md +0 -24
  347. package/platform/services/platform/proxy/service.yaml +0 -14
  348. package/scripts/audit-codebase.sh +0 -213
  349. package/scripts/autoresearch/layer-eval.sh +0 -65
  350. package/scripts/benchmark/README.md +0 -25
  351. package/scripts/benchmark/container-scale.ts +0 -503
  352. package/scripts/benchmark/pre-release-gate.sh +0 -9
  353. package/scripts/install-git-hooks.sh +0 -14
  354. package/scripts/measure-idle-footprint.sh +0 -58
  355. package/scripts/record-demo.sh +0 -43
  356. package/scripts/release-binaries.sh +0 -97
  357. package/scripts/setup-pre-commit.sh +0 -33
  358. package/scripts/stage-npm-engine.sh +0 -36
  359. package/tests/tilt-engine/__init__.py +0 -5
  360. package/tests/tilt-engine/conftest.py +0 -182
  361. package/tests/tilt-engine/fixtures/appointment-frontend-service.json +0 -11
  362. package/tests/tilt-engine/fixtures/identity-backend-service.json +0 -12
  363. package/tests/tilt-engine/fixtures/invalid-service.json +0 -4
  364. package/tests/tilt-engine/test_agents_md_generator.py +0 -341
  365. package/tests/tilt-engine/test_agents_md_integration.py +0 -378
  366. package/tests/tilt-engine/test_cache_operations.py +0 -181
  367. package/tests/tilt-engine/test_cache_persistence.py +0 -142
  368. package/tests/tilt-engine/test_code_executor.py +0 -152
  369. package/tests/tilt-engine/test_code_viewer.py +0 -127
  370. package/tests/tilt-engine/test_compose_port_anchors.py +0 -310
  371. package/tests/tilt-engine/test_config_inspector.py +0 -162
  372. package/tests/tilt-engine/test_daemon_focus_mode.py +0 -89
  373. package/tests/tilt-engine/test_daemon_polling.py +0 -122
  374. package/tests/tilt-engine/test_daemon_registration.py +0 -115
  375. package/tests/tilt-engine/test_daemon_validation.py +0 -107
  376. package/tests/tilt-engine/test_docker_generator_bugs.py +0 -493
  377. package/tests/tilt-engine/test_docker_prune.py +0 -119
  378. package/tests/tilt-engine/test_dockerignore_path_bug.py +0 -82
  379. package/tests/tilt-engine/test_file_browser.py +0 -193
  380. package/tests/tilt-engine/test_frontend_basepath_manifest.py +0 -27
  381. package/tests/tilt-engine/test_health_dependencies.py +0 -130
  382. package/tests/tilt-engine/test_health_endpoints.py +0 -118
  383. package/tests/tilt-engine/test_health_tilt_ui.py +0 -85
  384. package/tests/tilt-engine/test_runtime_container_footprint.py +0 -162
  385. package/tests/tilt-engine/test_sablier_defer_start.py +0 -237
  386. package/tests/tilt-engine/test_safety_aliases.py +0 -84
  387. package/tests/tilt-engine/test_snapshot_diff.py +0 -136
  388. package/tests/tilt-engine/test_snapshot_persistence.py +0 -163
  389. package/tests/tilt-engine/test_snapshot_scanning.py +0 -123
  390. package/tests/tilt-engine/test_standalone_project_boot.py +0 -61
  391. package/tests/tilt-engine/test_standalone_traefik.py +0 -160
  392. package/tests/tilt-engine/test_traefik_static_wake_route.py +0 -187
@@ -1,66 +0,0 @@
1
- import { Box, Text } from "ink";
2
- import type React from "react";
3
- import type { BaseTooltipProps } from "../types/index.js";
4
-
5
- export const BaseTooltip: React.FC<BaseTooltipProps> = ({
6
- content,
7
- shortcut,
8
- visible,
9
- maxWidth = 40,
10
- wrapText = false,
11
- prefix = "",
12
- marginTop = 0,
13
- }) => {
14
- if (!visible) return null;
15
-
16
- // Wrap text to maxWidth if requested
17
- const lines: string[] = wrapText ? wrapContent(content, maxWidth) : [content];
18
-
19
- return (
20
- <Box
21
- flexDirection="column"
22
- borderStyle="single"
23
- borderColor="yellow"
24
- paddingX={1}
25
- paddingY={1}
26
- backgroundColor="black"
27
- marginTop={marginTop}
28
- >
29
- {lines.map((line, i) => (
30
- // biome-ignore lint/suspicious/noArrayIndexKey: static color-chip list, stable order
31
- <Text key={i} color="yellow">
32
- {prefix}
33
- {line}
34
- </Text>
35
- ))}
36
- {shortcut && (
37
- <Box marginTop={1}>
38
- <Text color="gray">Press </Text>
39
- <Text color="cyan" bold>
40
- {shortcut.startsWith("[") ? shortcut : `[${shortcut}]`}
41
- </Text>
42
- <Text color="gray"> to use</Text>
43
- </Box>
44
- )}
45
- </Box>
46
- );
47
- };
48
-
49
- function wrapContent(content: string, maxWidth: number): string[] {
50
- const words = content.split(" ");
51
- const lines: string[] = [];
52
- let currentLine = "";
53
-
54
- for (const word of words) {
55
- if ((currentLine + word).length > maxWidth - 2) {
56
- lines.push(currentLine.trim());
57
- currentLine = `${word} `;
58
- } else {
59
- currentLine += `${word} `;
60
- }
61
- }
62
- if (currentLine) {
63
- lines.push(currentLine.trim());
64
- }
65
- return lines;
66
- }
@@ -1,146 +0,0 @@
1
- import { Box, Text } from "ink";
2
- import type React from "react";
3
- import type { DetailPanelProps } from "../types/index.js";
4
- import { formatDate, getStatusColor, getStatusIcon } from "../utils/formatting.js";
5
-
6
- export const DetailPanel: React.FC<DetailPanelProps> = ({
7
- stack,
8
- service,
9
- stackMetadata,
10
- visible,
11
- }) => {
12
- if (!visible) {
13
- return <Box width={0} />;
14
- }
15
-
16
- if (service) {
17
- return (
18
- <Box
19
- width={40}
20
- flexDirection="column"
21
- borderStyle="single"
22
- borderColor="gray"
23
- paddingX={1}
24
- paddingY={1}
25
- >
26
- <Box marginBottom={1} justifyContent="center">
27
- <Text color="cyan" bold>
28
- ┌─ {service.name.toUpperCase()} ─┐
29
- </Text>
30
- </Box>
31
-
32
- <Box flexDirection="column" marginY={1}>
33
- <Box>
34
- <Text color="gray">Name: </Text>
35
- <Text color="white">{service.name}</Text>
36
- </Box>
37
- <Box>
38
- <Text color="gray">Stack: </Text>
39
- <Text color="white">{service.stack || "unknown"}</Text>
40
- </Box>
41
- <Box>
42
- <Text color="gray">Type: </Text>
43
- <Text color="yellow">
44
- {(service.stack || "") === "platform" ? "PLATFORM" : "PRODUCT"}
45
- </Text>
46
- </Box>
47
- </Box>
48
-
49
- <Box marginTop={2}>
50
- <Text color="gray" dimColor>
51
- Press <Text color="cyan">[Esc]</Text> to close
52
- </Text>
53
- </Box>
54
- </Box>
55
- );
56
- }
57
-
58
- if (stack && stackMetadata) {
59
- const statusColor = getStatusColor(stackMetadata.overallStatus);
60
- const statusIcon = getStatusIcon(stackMetadata.overallStatus);
61
-
62
- return (
63
- <Box
64
- width={40}
65
- flexDirection="column"
66
- borderStyle="single"
67
- borderColor="gray"
68
- paddingX={1}
69
- paddingY={1}
70
- >
71
- <Box marginBottom={1} justifyContent="center">
72
- <Text color="cyan" bold>
73
- ┌─ {stack.name.toUpperCase()} ─┐
74
- </Text>
75
- </Box>
76
-
77
- <Box
78
- borderStyle="single"
79
- borderColor={statusColor}
80
- paddingX={1}
81
- paddingY={1}
82
- marginY={1}
83
- justifyContent="center"
84
- >
85
- <Text color={statusColor} bold>
86
- {statusIcon} {stackMetadata.overallStatus.toUpperCase()}
87
- </Text>
88
- </Box>
89
-
90
- <Box flexDirection="column" marginY={1}>
91
- <Box>
92
- <Text color="gray">Created: </Text>
93
- <Text color="white">{formatDate(stackMetadata.createdAt)}</Text>
94
- </Box>
95
- <Box>
96
- <Text color="gray">Resources: </Text>
97
- <Text color="cyan">{stackMetadata.resourceCount}</Text>
98
- </Box>
99
- </Box>
100
-
101
- <Box marginTop={1} marginBottom={1}>
102
- <Text color="gray" underline>
103
- Resources
104
- </Text>
105
- </Box>
106
-
107
- <Box flexDirection="column">
108
- {stack.resources.map((svc: { name: string }, index: number) => (
109
- <Box key={svc.name}>
110
- <Text color="gray">{index === stack.resources.length - 1 ? "└─ " : "├─ "}</Text>
111
- <Text color="white">{svc.name}</Text>
112
- </Box>
113
- ))}
114
- </Box>
115
-
116
- <Box marginTop={2}>
117
- <Text color="gray" dimColor>
118
- Press <Text color="cyan">[Esc]</Text> to close
119
- </Text>
120
- </Box>
121
- </Box>
122
- );
123
- }
124
-
125
- return (
126
- <Box
127
- width={40}
128
- borderStyle="single"
129
- borderColor="gray"
130
- paddingX={2}
131
- paddingY={2}
132
- flexDirection="column"
133
- >
134
- <Box marginBottom={1} justifyContent="center">
135
- <Text color="gray" dimColor>
136
- Select a stack or service
137
- </Text>
138
- </Box>
139
- <Box justifyContent="center">
140
- <Text color="gray" dimColor>
141
- to view details
142
- </Text>
143
- </Box>
144
- </Box>
145
- );
146
- };
@@ -1,89 +0,0 @@
1
- import { Box, Text } from "ink";
2
- import type React from "react";
3
- import { useState } from "react";
4
- import type { FileNode, FileTreeProps, FileType } from "../types/index.js";
5
- import { formatBytes } from "../utils/formatting.js";
6
-
7
- const FILE_ICONS: Record<FileType, string> = {
8
- docker: "🐳",
9
- tilt: "⚙️",
10
- config: "🔧",
11
- prisma: "🗄️",
12
- generated: "📄",
13
- unknown: "📃",
14
- };
15
-
16
- const FILE_COLORS: Record<FileType, string> = {
17
- docker: "blue",
18
- tilt: "cyan",
19
- config: "yellow",
20
- prisma: "magenta",
21
- generated: "gray",
22
- unknown: "white",
23
- };
24
-
25
- // biome-ignore lint/correctness/noUnusedFunctionParameters: reserved callback prop kept in the component API
26
- export const FileTree: React.FC<FileTreeProps> = ({ nodes, onSelect, selectedPath }) => {
27
- const [expandedNodes, setExpandedNodes] = useState<Set<string>>(new Set());
28
-
29
- const _toggleNode = (path: string) => {
30
- const newExpanded = new Set(expandedNodes);
31
- if (newExpanded.has(path)) {
32
- newExpanded.delete(path);
33
- } else {
34
- newExpanded.add(path);
35
- }
36
- setExpandedNodes(newExpanded);
37
- };
38
-
39
- const renderNode = (node: FileNode, depth: number = 0): React.ReactElement => {
40
- const isExpanded = expandedNodes.has(node.path);
41
- const isSelected = selectedPath === node.path;
42
- const indent = " ".repeat(depth);
43
-
44
- if (node.type === "directory") {
45
- return (
46
- <Box key={node.path} flexDirection="column">
47
- <Box>
48
- <Text
49
- color={isSelected ? "cyan" : "white"}
50
- bold={isSelected}
51
- backgroundColor={isSelected ? "blue" : undefined}
52
- >
53
- {indent}
54
- {isExpanded ? "▼" : "▶"} {node.name}
55
- </Text>
56
- </Box>
57
- {isExpanded && node.children?.map((child) => renderNode(child, depth + 1))}
58
- </Box>
59
- );
60
- }
61
-
62
- const icon = node.fileType ? FILE_ICONS[node.fileType] : FILE_ICONS.unknown;
63
- const color = node.fileType ? FILE_COLORS[node.fileType] : FILE_COLORS.unknown;
64
-
65
- return (
66
- <Box key={node.path}>
67
- <Text
68
- color={isSelected ? "cyan" : color}
69
- bold={isSelected}
70
- backgroundColor={isSelected ? "blue" : undefined}
71
- >
72
- {indent} {icon} {node.name}
73
- </Text>
74
- {node.size && (
75
- <Text color="gray" dimColor>
76
- {" "}
77
- ({formatBytes(node.size)})
78
- </Text>
79
- )}
80
- </Box>
81
- );
82
- };
83
-
84
- return (
85
- <Box flexDirection="column" paddingX={1}>
86
- {nodes.map((node) => renderNode(node, 0))}
87
- </Box>
88
- );
89
- };
@@ -1,30 +0,0 @@
1
- import { Text } from "ink";
2
- import SelectInput from "ink-select-input";
3
- import type React from "react";
4
- import type { ResourceSelectInputProps } from "../types/index.js";
5
-
6
- export const ResourceSelectInput: React.FC<ResourceSelectInputProps> = ({
7
- items,
8
- onSelect,
9
- highlightedIndex,
10
- }) => {
11
- return (
12
- <SelectInput
13
- items={items}
14
- onSelect={onSelect}
15
- initialIndex={highlightedIndex}
16
- indicatorComponent={({ isSelected }) => (
17
- <Text color={isSelected ? "cyan" : undefined}>{isSelected ? "▓▒░ " : " "}</Text>
18
- )}
19
- itemComponent={({ isSelected, label }) => (
20
- <Text
21
- color={isSelected ? "cyan" : "white"}
22
- bold={isSelected}
23
- backgroundColor={isSelected ? "black" : undefined}
24
- >
25
- {label}
26
- </Text>
27
- )}
28
- />
29
- );
30
- };
@@ -1,78 +0,0 @@
1
- import { Box, Text } from "ink";
2
- import type React from "react";
3
- import type { ResourceTableProps } from "../types/index.js";
4
- import { formatShortDate, getStatusColor, getStatusIcon, truncate } from "../utils/formatting.js";
5
-
6
- export const ResourceTable: React.FC<ResourceTableProps> = ({ resources, maxWidth = 100 }) => {
7
- if (resources.length === 0) {
8
- return (
9
- <Box paddingY={1}>
10
- <Text color="gray">No resources found</Text>
11
- </Box>
12
- );
13
- }
14
-
15
- const narrowMode = maxWidth < 80;
16
-
17
- return (
18
- <Box flexDirection="column">
19
- <Box flexDirection="row" borderStyle="single" borderColor="gray" paddingX={1}>
20
- <Box width={narrowMode ? 20 : 25}>
21
- <Text bold>Logical ID</Text>
22
- </Box>
23
- {!narrowMode && (
24
- <Box width={20}>
25
- <Text bold>Physical ID</Text>
26
- </Box>
27
- )}
28
- <Box width={12}>
29
- <Text bold>Type</Text>
30
- </Box>
31
- <Box width={15}>
32
- <Text bold>Status</Text>
33
- </Box>
34
- {!narrowMode && (
35
- <Box width={20}>
36
- <Text bold>Created</Text>
37
- </Box>
38
- )}
39
- </Box>
40
-
41
- {resources.map((resource, index) => {
42
- const statusColor = getStatusColor(resource.status);
43
- const statusIcon = getStatusIcon(resource.status);
44
- const _isEven = index % 2 === 0;
45
-
46
- return (
47
- <Box key={resource.name} flexDirection="row" paddingX={1}>
48
- <Box width={narrowMode ? 20 : 25}>
49
- <Text>{truncate(resource.name, narrowMode ? 18 : 23)}</Text>
50
- </Box>
51
- {!narrowMode && (
52
- <Box width={20}>
53
- <Text color="gray">
54
- {resource.stack && resource.stack !== "unknown"
55
- ? truncate(`${resource.stack}/${resource.name}`, 18)
56
- : truncate(resource.name, 18)}
57
- </Text>
58
- </Box>
59
- )}
60
- <Box width={12}>
61
- <Text color="cyan">{resource.type}</Text>
62
- </Box>
63
- <Box width={15}>
64
- <Text color={statusColor}>
65
- {statusIcon} {resource.status}
66
- </Text>
67
- </Box>
68
- {!narrowMode && (
69
- <Box width={20}>
70
- <Text color="gray">{formatShortDate(resource.createdAt)}</Text>
71
- </Box>
72
- )}
73
- </Box>
74
- );
75
- })}
76
- </Box>
77
- );
78
- };
@@ -1,53 +0,0 @@
1
- import { Box, Text } from "ink";
2
- import type React from "react";
3
- import type { Tab, TabBarProps } from "../types/index.js";
4
-
5
- const TABS: Tab[] = [
6
- { id: "overview", label: "OVERVIEW", shortcut: "1" },
7
- { id: "resources", label: "RESOURCES", shortcut: "2" },
8
- { id: "events", label: "EVENTS", shortcut: "3" },
9
- { id: "files", label: "FILES", shortcut: "4" },
10
- { id: "config", label: "CONFIG", shortcut: "5" },
11
- ];
12
-
13
- // biome-ignore lint/correctness/noUnusedFunctionParameters: reserved callback prop kept in the component API
14
- export const TabBar: React.FC<TabBarProps> = ({ activeTab, onTabChange, compact = false }) => {
15
- return (
16
- <Box flexDirection="column" paddingX={1}>
17
- <Box marginBottom={1}>
18
- <Text color="gray">{"─".repeat(compact ? 60 : 80)}</Text>
19
- </Box>
20
- <Box flexDirection="row" justifyContent="space-between" paddingX={1}>
21
- {TABS.map((tab) => {
22
- const isActive = activeTab === tab.id;
23
-
24
- return (
25
- <Box key={tab.id}>
26
- {isActive ? (
27
- <Box borderStyle="single" borderColor="cyan" paddingX={1} backgroundColor="black">
28
- <Text>
29
- <Text color="cyan">▓▒░</Text>
30
- <Text color="cyan" bold>
31
- {" "}
32
- [{tab.shortcut}] {tab.label}{" "}
33
- </Text>
34
- <Text color="cyan">░▒▓</Text>
35
- </Text>
36
- </Box>
37
- ) : (
38
- <Box paddingX={1}>
39
- <Text color="gray" dimColor>
40
- [{tab.shortcut}] {compact ? tab.label.slice(0, 4) : tab.label}
41
- </Text>
42
- </Box>
43
- )}
44
- </Box>
45
- );
46
- })}
47
- </Box>
48
- <Box marginTop={1}>
49
- <Text color="gray">{"─".repeat(compact ? 60 : 80)}</Text>
50
- </Box>
51
- </Box>
52
- );
53
- };
@@ -1,11 +0,0 @@
1
- export const TOOLTIPS = {
2
- overviewTab: "View all stacks and their resources",
3
- resourcesTab: "Detailed resource list with metadata",
4
- eventsTab: "Service lifecycle events timeline",
5
- filesTab: "Browse autogenerated configuration files",
6
- configTab: "View and edit service configurations",
7
- search: "Filter services by name, stack, or type",
8
- refresh: "Reload data from Tilt API",
9
- help: "Show keyboard shortcuts and help",
10
- quit: "Exit the TUI",
11
- };
@@ -1,7 +0,0 @@
1
- export { AccessibleTooltip } from "./Accessible.js";
2
- export { DetailPanel } from "./DetailPanel.js";
3
- export { FileTree } from "./FileTree.js";
4
- export { ResourceSelectInput } from "./ResourceSelectInput.js";
5
- export { ResourceTable } from "./ResourceTable.js";
6
- export { TabBar } from "./TabBar.js";
7
- export { TOOLTIPS } from "./Tooltip.js";
@@ -1,11 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { PLATFORM_STANDARDS } from "./platform-standards.js";
3
-
4
- describe("platform standards", () => {
5
- it("keeps the low-level Traefik host generic and uses a non-privileged port", () => {
6
- expect(PLATFORM_STANDARDS.traefik.defaultHost).toBe("localhost");
7
- expect(PLATFORM_STANDARDS.traefik.appHost).toBe("app.localhost");
8
- expect(PLATFORM_STANDARDS.traefik.apiHost).toBe("api.localhost");
9
- expect(PLATFORM_STANDARDS.traefik.defaultPort).toBe(8080);
10
- });
11
- });
@@ -1,196 +0,0 @@
1
- import { PORT_RANGES, STANDARD_PORTS } from "../utils/constants.js";
2
-
3
- const PLATFORM_VERSION = "1.0.0";
4
-
5
- const TECH_STACK = {
6
- runtime: "bun",
7
- bundler: "vite",
8
- language: "typescript",
9
- framework: "hono",
10
- database: "postgresql",
11
- orm: "prisma",
12
- messaging: "nats",
13
- linting: "biome",
14
- testing: "vitest",
15
- } as const;
16
-
17
- const PORTS = {
18
- frontend: {
19
- base: PORT_RANGES.frontend.base,
20
- range: PORT_RANGES.frontend.range,
21
- start: PORT_RANGES.frontend.min,
22
- end: PORT_RANGES.frontend.max,
23
- },
24
- backend: {
25
- base: PORT_RANGES.backend.base,
26
- range: PORT_RANGES.backend.range,
27
- start: PORT_RANGES.backend.min,
28
- end: PORT_RANGES.backend.max,
29
- },
30
- health: {
31
- base: PORT_RANGES.health.base,
32
- range: PORT_RANGES.health.range,
33
- start: PORT_RANGES.health.min,
34
- end: PORT_RANGES.health.max,
35
- },
36
- worker: {
37
- base: PORT_RANGES.worker.base,
38
- range: PORT_RANGES.worker.range,
39
- start: PORT_RANGES.worker.min,
40
- end: PORT_RANGES.worker.max,
41
- },
42
- migrator: {
43
- base: PORT_RANGES.migrator.base,
44
- range: PORT_RANGES.migrator.range,
45
- start: PORT_RANGES.migrator.min,
46
- end: PORT_RANGES.migrator.max,
47
- },
48
- tiltUi: STANDARD_PORTS.tiltUi,
49
- traefik: STANDARD_PORTS.traefik,
50
- } as const;
51
-
52
- const HEALTH_CHECKS = {
53
- path: "/health",
54
- live: "/health/live",
55
- ready: "/health/ready",
56
- timeout: 30,
57
- interval: 5,
58
- } as const;
59
-
60
- const NAMING = {
61
- frontend: "-frontend",
62
- backend: "-backend",
63
- worker: "-worker",
64
- migrator: "-migrator",
65
- library: "-lib",
66
- sdk: "-sdk",
67
- validSeparators: ["-", "_"],
68
- maxLength: 63,
69
- minLength: 3,
70
- } as const;
71
-
72
- const TRAEFIK = {
73
- entrypoint: "web",
74
- network: "traefik-public",
75
- defaultHost: "localhost",
76
- appHost: "app.localhost",
77
- apiHost: "api.localhost",
78
- appSubdomainPrefix: "app",
79
- apiSubdomainPrefix: "api",
80
- defaultPort: 8080,
81
- tlsEnabled: false,
82
- entrypoints: ["web"],
83
- middlewares: [],
84
- tls: { enabled: false },
85
- healthcheckPath: "/health",
86
- healthcheckInterval: "10s",
87
- healthcheckTimeout: "5s",
88
- frontendPriorityBase: 100,
89
- } as const;
90
-
91
- const FILEWATCH_IGNORES = [
92
- "node_modules",
93
- "dist",
94
- "build",
95
- ".git",
96
- ".prisma",
97
- ".turbo",
98
- "coverage",
99
- "tmp",
100
- "temp",
101
- "__tests__",
102
- "test",
103
- "tests",
104
- ] as const;
105
-
106
- const RESOURCE_TYPES = {
107
- frontend: {
108
- suffix: "-frontend",
109
- portRange: "3000-3999",
110
- },
111
- backend: {
112
- suffix: "-backend",
113
- portRange: "4000-4999",
114
- },
115
- library: {
116
- suffix: "-library",
117
- portRange: null,
118
- },
119
- sdk: {
120
- suffix: "-sdk",
121
- portRange: "3000-9999",
122
- },
123
- migrator: {
124
- suffix: "-migrator",
125
- portRange: "7000-7999",
126
- },
127
- worker: {
128
- suffix: "-worker",
129
- portRange: "6000-6999",
130
- },
131
- } as const;
132
-
133
- const FEATURES = {
134
- prisma: "Database ORM with migrations",
135
- nats: "Event streaming via NATS",
136
- redis: "Caching layer",
137
- infisical: "Secrets management",
138
- vitest: "Testing framework",
139
- traefik: "HTTP routing",
140
- websocket: "Real-time connections",
141
- graphql: "GraphQL support",
142
- grpc: "gRPC support",
143
- viteNode: "Vite Node runtime",
144
- maintenance: "Maintenance mode",
145
- } as const;
146
-
147
- const PATHS = {
148
- services: "services/product",
149
- sharedPlatform: "shared-platform-engineering",
150
- sharedProduct: "shared-product-engineering",
151
- sharedDdd: "shared-ddd-layers",
152
- } as const;
153
-
154
- const DISCOVERY = {
155
- scanIntervalSeconds: 5,
156
- maxManifestsPerRoot: 50,
157
- servicePatterns: ["services/product/*", "services/platform/*"],
158
- } as const;
159
-
160
- const DOCKER = {
161
- dockerfile: "Dockerfile",
162
- context: ".",
163
- // Auto-detect native arch (arm64 on Apple Silicon, amd64 elsewhere)
164
- // platform: "linux/amd64",
165
- } as const;
166
-
167
- const RUNTIME = {
168
- backend: {
169
- command: "bun",
170
- args: ["run", "dev"],
171
- env: { NODE_ENV: "development" },
172
- },
173
- frontend: {
174
- command: "bun",
175
- args: ["run", "dev"],
176
- env: { NODE_ENV: "development" },
177
- },
178
- } as const;
179
-
180
- export const PLATFORM_STANDARDS = {
181
- version: PLATFORM_VERSION,
182
- tech: TECH_STACK,
183
- ports: PORTS,
184
- health: HEALTH_CHECKS,
185
- naming: NAMING,
186
- traefik: TRAEFIK,
187
- filewatchIgnores: FILEWATCH_IGNORES,
188
- serviceTypes: RESOURCE_TYPES,
189
- features: FEATURES,
190
- paths: PATHS,
191
- discovery: DISCOVERY,
192
- docker: DOCKER,
193
- runtime: RUNTIME,
194
- } as const;
195
-
196
- export type PlatformStandards = typeof PLATFORM_STANDARDS;