@tdk-landscape/tdk-cli-core 1.3.53 → 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 (388) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/cli/dist/generator/extension-fetch.js +16 -9
  3. package/cli/package.json +1 -1
  4. package/package.json +16 -1
  5. package/.claude/skills/layer-autoresearch/SKILL.md +0 -48
  6. package/.claude/skills/tdk-troubleshoot/SKILL.md +0 -222
  7. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -40
  8. package/.github/ISSUE_TEMPLATE/config.yml +0 -11
  9. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -18
  10. package/.github/ISSUE_TEMPLATE/premium_license.yml +0 -43
  11. package/.github/dependabot.yml +0 -33
  12. package/.github/pull_request_template.md +0 -5
  13. package/.github/workflows/ci.yml +0 -200
  14. package/.github/workflows/release-binaries.yml +0 -139
  15. package/.github/zizmor.yml +0 -9
  16. package/.pre-commit-config.yaml +0 -57
  17. package/CODE_OF_CONDUCT.md +0 -9
  18. package/CONTRIBUTING.md +0 -42
  19. package/Makefile +0 -92
  20. package/SECURITY.md +0 -17
  21. package/benchmarks/results/container-scale-2026-09-25T20-54-49-736Z.json +0 -45
  22. package/benchmarks/results/container-scale-2026-09-25T21-01-20-540Z.json +0 -150
  23. package/benchmarks/results/container-scale-2026-09-25T21-15-01-441Z.json +0 -73
  24. package/benchmarks/results/container-scale-2026-09-25T22-09-01-630Z.json +0 -77
  25. package/benchmarks/results/container-scale-2026-09-25T22-18-28-371Z.json +0 -202
  26. package/cli/AGENTS.md +0 -390
  27. package/cli/DESIGN.md +0 -735
  28. package/cli/README.md +0 -292
  29. package/cli/biome.json +0 -40
  30. package/cli/dependency-graph.svg +0 -1135
  31. package/cli/dist/cli.d.ts +0 -3
  32. package/cli/dist/cli.d.ts.map +0 -1
  33. package/cli/dist/cli.js.map +0 -1
  34. package/cli/dist/commands/completion.d.ts +0 -3
  35. package/cli/dist/commands/completion.d.ts.map +0 -1
  36. package/cli/dist/commands/completion.js.map +0 -1
  37. package/cli/dist/commands/config.d.ts +0 -3
  38. package/cli/dist/commands/config.d.ts.map +0 -1
  39. package/cli/dist/commands/config.js.map +0 -1
  40. package/cli/dist/commands/doctor.d.ts +0 -19
  41. package/cli/dist/commands/doctor.d.ts.map +0 -1
  42. package/cli/dist/commands/doctor.js.map +0 -1
  43. package/cli/dist/commands/down.d.ts +0 -3
  44. package/cli/dist/commands/down.d.ts.map +0 -1
  45. package/cli/dist/commands/down.js.map +0 -1
  46. package/cli/dist/commands/help.d.ts +0 -2
  47. package/cli/dist/commands/help.d.ts.map +0 -1
  48. package/cli/dist/commands/help.js.map +0 -1
  49. package/cli/dist/commands/networks.d.ts +0 -3
  50. package/cli/dist/commands/networks.d.ts.map +0 -1
  51. package/cli/dist/commands/networks.js.map +0 -1
  52. package/cli/dist/commands/project.d.ts +0 -9
  53. package/cli/dist/commands/project.d.ts.map +0 -1
  54. package/cli/dist/commands/project.js.map +0 -1
  55. package/cli/dist/commands/projects.d.ts +0 -3
  56. package/cli/dist/commands/projects.d.ts.map +0 -1
  57. package/cli/dist/commands/projects.js.map +0 -1
  58. package/cli/dist/commands/resource.d.ts +0 -69
  59. package/cli/dist/commands/resource.d.ts.map +0 -1
  60. package/cli/dist/commands/resource.js.map +0 -1
  61. package/cli/dist/commands/resources.d.ts +0 -3
  62. package/cli/dist/commands/resources.d.ts.map +0 -1
  63. package/cli/dist/commands/resources.js.map +0 -1
  64. package/cli/dist/commands/stack.d.ts +0 -3
  65. package/cli/dist/commands/stack.d.ts.map +0 -1
  66. package/cli/dist/commands/stack.js.map +0 -1
  67. package/cli/dist/commands/stacks.d.ts +0 -3
  68. package/cli/dist/commands/stacks.d.ts.map +0 -1
  69. package/cli/dist/commands/stacks.js.map +0 -1
  70. package/cli/dist/commands/status.d.ts +0 -3
  71. package/cli/dist/commands/status.d.ts.map +0 -1
  72. package/cli/dist/commands/status.js.map +0 -1
  73. package/cli/dist/commands/ui.d.ts +0 -3
  74. package/cli/dist/commands/ui.d.ts.map +0 -1
  75. package/cli/dist/commands/ui.js.map +0 -1
  76. package/cli/dist/commands/up.d.ts +0 -3
  77. package/cli/dist/commands/up.d.ts.map +0 -1
  78. package/cli/dist/commands/up.js.map +0 -1
  79. package/cli/dist/commands/upgrade.d.ts +0 -14
  80. package/cli/dist/commands/upgrade.d.ts.map +0 -1
  81. package/cli/dist/commands/upgrade.js.map +0 -1
  82. package/cli/dist/commands/version.d.ts +0 -3
  83. package/cli/dist/commands/version.d.ts.map +0 -1
  84. package/cli/dist/commands/version.js.map +0 -1
  85. package/cli/dist/components/Accessible.d.ts +0 -8
  86. package/cli/dist/components/Accessible.d.ts.map +0 -1
  87. package/cli/dist/components/Accessible.js.map +0 -1
  88. package/cli/dist/components/BaseTooltip.d.ts +0 -4
  89. package/cli/dist/components/BaseTooltip.d.ts.map +0 -1
  90. package/cli/dist/components/BaseTooltip.js.map +0 -1
  91. package/cli/dist/components/DetailPanel.d.ts +0 -4
  92. package/cli/dist/components/DetailPanel.d.ts.map +0 -1
  93. package/cli/dist/components/DetailPanel.js.map +0 -1
  94. package/cli/dist/components/FileTree.d.ts +0 -4
  95. package/cli/dist/components/FileTree.d.ts.map +0 -1
  96. package/cli/dist/components/FileTree.js.map +0 -1
  97. package/cli/dist/components/ResourceSelectInput.d.ts +0 -4
  98. package/cli/dist/components/ResourceSelectInput.d.ts.map +0 -1
  99. package/cli/dist/components/ResourceSelectInput.js.map +0 -1
  100. package/cli/dist/components/ResourceTable.d.ts +0 -4
  101. package/cli/dist/components/ResourceTable.d.ts.map +0 -1
  102. package/cli/dist/components/ResourceTable.js.map +0 -1
  103. package/cli/dist/components/TabBar.d.ts +0 -4
  104. package/cli/dist/components/TabBar.d.ts.map +0 -1
  105. package/cli/dist/components/TabBar.js.map +0 -1
  106. package/cli/dist/components/Tooltip.d.ts +0 -12
  107. package/cli/dist/components/Tooltip.d.ts.map +0 -1
  108. package/cli/dist/components/Tooltip.js.map +0 -1
  109. package/cli/dist/components/index.d.ts +0 -8
  110. package/cli/dist/components/index.d.ts.map +0 -1
  111. package/cli/dist/components/index.js.map +0 -1
  112. package/cli/dist/config/platform-standards.d.ts +0 -159
  113. package/cli/dist/config/platform-standards.d.ts.map +0 -1
  114. package/cli/dist/config/platform-standards.js.map +0 -1
  115. package/cli/dist/generator/extension-fetch.d.ts +0 -25
  116. package/cli/dist/generator/extension-fetch.d.ts.map +0 -1
  117. package/cli/dist/generator/extension-fetch.js.map +0 -1
  118. package/cli/dist/generator/template-engine.d.ts +0 -62
  119. package/cli/dist/generator/template-engine.d.ts.map +0 -1
  120. package/cli/dist/generator/template-engine.js.map +0 -1
  121. package/cli/dist/index.d.ts +0 -11
  122. package/cli/dist/index.d.ts.map +0 -1
  123. package/cli/dist/index.js.map +0 -1
  124. package/cli/dist/types/index.d.ts +0 -257
  125. package/cli/dist/types/index.d.ts.map +0 -1
  126. package/cli/dist/types/index.js.map +0 -1
  127. package/cli/dist/utils/cache.d.ts +0 -19
  128. package/cli/dist/utils/cache.d.ts.map +0 -1
  129. package/cli/dist/utils/cache.js.map +0 -1
  130. package/cli/dist/utils/command-helpers.d.ts +0 -17
  131. package/cli/dist/utils/command-helpers.d.ts.map +0 -1
  132. package/cli/dist/utils/command-helpers.js.map +0 -1
  133. package/cli/dist/utils/constants.d.ts +0 -53
  134. package/cli/dist/utils/constants.d.ts.map +0 -1
  135. package/cli/dist/utils/constants.js.map +0 -1
  136. package/cli/dist/utils/discovery-context.d.ts +0 -4
  137. package/cli/dist/utils/discovery-context.d.ts.map +0 -1
  138. package/cli/dist/utils/discovery-context.js.map +0 -1
  139. package/cli/dist/utils/docker.d.ts +0 -4
  140. package/cli/dist/utils/docker.d.ts.map +0 -1
  141. package/cli/dist/utils/docker.js.map +0 -1
  142. package/cli/dist/utils/doctor-runtime.d.ts +0 -81
  143. package/cli/dist/utils/doctor-runtime.d.ts.map +0 -1
  144. package/cli/dist/utils/doctor-runtime.js.map +0 -1
  145. package/cli/dist/utils/env-validator.d.ts +0 -15
  146. package/cli/dist/utils/env-validator.d.ts.map +0 -1
  147. package/cli/dist/utils/env-validator.js.map +0 -1
  148. package/cli/dist/utils/errors.d.ts +0 -31
  149. package/cli/dist/utils/errors.d.ts.map +0 -1
  150. package/cli/dist/utils/errors.js.map +0 -1
  151. package/cli/dist/utils/file-helpers.d.ts +0 -14
  152. package/cli/dist/utils/file-helpers.d.ts.map +0 -1
  153. package/cli/dist/utils/file-helpers.js.map +0 -1
  154. package/cli/dist/utils/formatting.d.ts +0 -30
  155. package/cli/dist/utils/formatting.d.ts.map +0 -1
  156. package/cli/dist/utils/formatting.js.map +0 -1
  157. package/cli/dist/utils/paths.d.ts +0 -3
  158. package/cli/dist/utils/paths.d.ts.map +0 -1
  159. package/cli/dist/utils/paths.js.map +0 -1
  160. package/cli/dist/utils/port-assignment.d.ts +0 -6
  161. package/cli/dist/utils/port-assignment.d.ts.map +0 -1
  162. package/cli/dist/utils/port-assignment.js.map +0 -1
  163. package/cli/dist/utils/project-features.d.ts +0 -23
  164. package/cli/dist/utils/project-features.d.ts.map +0 -1
  165. package/cli/dist/utils/project-features.js.map +0 -1
  166. package/cli/dist/utils/project-templates.d.ts +0 -7
  167. package/cli/dist/utils/project-templates.d.ts.map +0 -1
  168. package/cli/dist/utils/project-templates.js.map +0 -1
  169. package/cli/dist/utils/prompt.d.ts +0 -28
  170. package/cli/dist/utils/prompt.d.ts.map +0 -1
  171. package/cli/dist/utils/prompt.js.map +0 -1
  172. package/cli/dist/utils/resource-features.d.ts +0 -29
  173. package/cli/dist/utils/resource-features.d.ts.map +0 -1
  174. package/cli/dist/utils/resource-features.js.map +0 -1
  175. package/cli/dist/utils/service-urls.d.ts +0 -30
  176. package/cli/dist/utils/service-urls.d.ts.map +0 -1
  177. package/cli/dist/utils/service-urls.js.map +0 -1
  178. package/cli/dist/utils/services.d.ts +0 -18
  179. package/cli/dist/utils/services.d.ts.map +0 -1
  180. package/cli/dist/utils/services.js.map +0 -1
  181. package/cli/dist/utils/stack-features.d.ts +0 -22
  182. package/cli/dist/utils/stack-features.d.ts.map +0 -1
  183. package/cli/dist/utils/stack-features.js.map +0 -1
  184. package/cli/dist/utils/tar.d.ts +0 -7
  185. package/cli/dist/utils/tar.d.ts.map +0 -1
  186. package/cli/dist/utils/tar.js.map +0 -1
  187. package/cli/dist/utils/tilt.d.ts +0 -20
  188. package/cli/dist/utils/tilt.d.ts.map +0 -1
  189. package/cli/dist/utils/tilt.js.map +0 -1
  190. package/cli/dist/utils/validation.d.ts +0 -16
  191. package/cli/dist/utils/validation.d.ts.map +0 -1
  192. package/cli/dist/utils/validation.js.map +0 -1
  193. package/cli/knip.json +0 -6
  194. package/cli/pnpm-lock.yaml +0 -2305
  195. package/cli/pnpm-workspace.yaml +0 -2
  196. package/cli/src/cli.ts +0 -72
  197. package/cli/src/commands/__tests__/always-enabled-infra.test.ts +0 -109
  198. package/cli/src/commands/__tests__/config.test.ts +0 -146
  199. package/cli/src/commands/__tests__/doctor.test.ts +0 -730
  200. package/cli/src/commands/__tests__/error-handling.test.ts +0 -78
  201. package/cli/src/commands/__tests__/phases-model.test.ts +0 -161
  202. package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +0 -187
  203. package/cli/src/commands/__tests__/project.test.ts +0 -68
  204. package/cli/src/commands/__tests__/resource.test.ts +0 -226
  205. package/cli/src/commands/__tests__/saas-starter-integration.test.ts +0 -194
  206. package/cli/src/commands/__tests__/stack-features-e2e.test.ts +0 -135
  207. package/cli/src/commands/__tests__/upgrade.test.ts +0 -198
  208. package/cli/src/commands/completion.ts +0 -300
  209. package/cli/src/commands/config.ts +0 -299
  210. package/cli/src/commands/doctor.ts +0 -926
  211. package/cli/src/commands/down.ts +0 -37
  212. package/cli/src/commands/help.ts +0 -143
  213. package/cli/src/commands/networks-design.md +0 -80
  214. package/cli/src/commands/networks.ts +0 -332
  215. package/cli/src/commands/project.ts +0 -456
  216. package/cli/src/commands/projects.ts +0 -82
  217. package/cli/src/commands/resource.ts +0 -652
  218. package/cli/src/commands/resources.ts +0 -95
  219. package/cli/src/commands/stack.ts +0 -128
  220. package/cli/src/commands/stacks.ts +0 -52
  221. package/cli/src/commands/status.ts +0 -88
  222. package/cli/src/commands/ui.tsx +0 -843
  223. package/cli/src/commands/up.ts +0 -169
  224. package/cli/src/commands/upgrade.ts +0 -628
  225. package/cli/src/commands/version.ts +0 -9
  226. package/cli/src/components/Accessible.tsx +0 -21
  227. package/cli/src/components/BaseTooltip.tsx +0 -66
  228. package/cli/src/components/DetailPanel.tsx +0 -146
  229. package/cli/src/components/FileTree.tsx +0 -89
  230. package/cli/src/components/ResourceSelectInput.tsx +0 -30
  231. package/cli/src/components/ResourceTable.tsx +0 -78
  232. package/cli/src/components/TabBar.tsx +0 -53
  233. package/cli/src/components/Tooltip.tsx +0 -11
  234. package/cli/src/components/index.ts +0 -7
  235. package/cli/src/config/platform-standards.test.ts +0 -11
  236. package/cli/src/config/platform-standards.ts +0 -196
  237. package/cli/src/generator/__tests__/extension-fetch.test.ts +0 -242
  238. package/cli/src/generator/__tests__/template-engine.test.ts +0 -70
  239. package/cli/src/generator/extension-fetch.ts +0 -286
  240. package/cli/src/generator/template-engine.ts +0 -752
  241. package/cli/src/index.ts +0 -86
  242. package/cli/src/templates.d.ts +0 -4
  243. package/cli/src/types/index.ts +0 -353
  244. package/cli/src/utils/__tests__/cache.test.ts +0 -98
  245. package/cli/src/utils/__tests__/formatting.test.ts +0 -170
  246. package/cli/src/utils/__tests__/paths.test.ts +0 -180
  247. package/cli/src/utils/__tests__/port-assignment.test.ts +0 -121
  248. package/cli/src/utils/__tests__/service-urls.test.ts +0 -174
  249. package/cli/src/utils/__tests__/services.test.ts +0 -531
  250. package/cli/src/utils/__tests__/tilt.test.ts +0 -172
  251. package/cli/src/utils/__tests__/validation.test.ts +0 -148
  252. package/cli/src/utils/cache.ts +0 -76
  253. package/cli/src/utils/command-helpers.ts +0 -54
  254. package/cli/src/utils/constants.ts +0 -130
  255. package/cli/src/utils/discovery-context.ts +0 -49
  256. package/cli/src/utils/docker.ts +0 -20
  257. package/cli/src/utils/doctor-runtime.ts +0 -644
  258. package/cli/src/utils/env-validator.ts +0 -139
  259. package/cli/src/utils/errors.ts +0 -168
  260. package/cli/src/utils/file-helpers.ts +0 -62
  261. package/cli/src/utils/formatting.ts +0 -215
  262. package/cli/src/utils/paths.ts +0 -53
  263. package/cli/src/utils/port-assignment.ts +0 -106
  264. package/cli/src/utils/project-features.ts +0 -118
  265. package/cli/src/utils/project-templates.ts +0 -29
  266. package/cli/src/utils/prompt.ts +0 -128
  267. package/cli/src/utils/resource-features.ts +0 -215
  268. package/cli/src/utils/service-urls.ts +0 -124
  269. package/cli/src/utils/services.ts +0 -364
  270. package/cli/src/utils/stack-features.ts +0 -30
  271. package/cli/src/utils/tar.ts +0 -24
  272. package/cli/src/utils/tilt.ts +0 -133
  273. package/cli/src/utils/validation.ts +0 -67
  274. package/cli/tsconfig.json +0 -25
  275. package/cli/tsconfig.typecheck.json +0 -8
  276. package/docs/FEATURES.md +0 -281
  277. package/docs/demo.svg +0 -217
  278. package/engine/docs/AUTODISCOVERY_TEST.md +0 -182
  279. package/engine/docs/C4-ARCHITECTURE-operations.md +0 -396
  280. package/engine/docs/C4-ARCHITECTURE-overview.md +0 -284
  281. package/engine/docs/C4-ARCHITECTURE.md +0 -17
  282. package/engine/docs/GOLDEN_IMAGE_INTEGRATION.md +0 -349
  283. package/engine/docs/MANIFEST_DRIVEN_ARCHITECTURE.md +0 -357
  284. package/engine/docs/README.md +0 -284
  285. package/install.sh +0 -19
  286. package/knip.json +0 -10
  287. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +0 -2
  288. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +0 -102
  289. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +0 -31
  290. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +0 -48
  291. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +0 -63
  292. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +0 -56
  293. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +0 -61
  294. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +0 -2
  295. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +0 -114
  296. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +0 -32
  297. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +0 -20
  298. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +0 -20
  299. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +0 -20
  300. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +0 -194
  301. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +0 -2
  302. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +0 -111
  303. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +0 -33
  304. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +0 -12
  305. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +0 -18
  306. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +0 -16
  307. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +0 -12
  308. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +0 -12
  309. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +0 -194
  310. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +0 -2
  311. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +0 -84
  312. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +0 -31
  313. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +0 -27
  314. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +0 -27
  315. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +0 -23
  316. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +0 -27
  317. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +0 -39
  318. package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +0 -2
  319. package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +0 -80
  320. package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +0 -40
  321. package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +0 -52
  322. package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +0 -51
  323. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +0 -2
  324. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +0 -43
  325. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +0 -29
  326. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +0 -67
  327. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +0 -27
  328. package/openspec/changes/optimize-runtime-docker-layers/.openspec.yaml +0 -3
  329. package/openspec/changes/optimize-runtime-docker-layers/design.md +0 -81
  330. package/openspec/changes/optimize-runtime-docker-layers/proposal.md +0 -44
  331. package/openspec/changes/optimize-runtime-docker-layers/specs/runtime-container-footprint/spec.md +0 -79
  332. package/openspec/changes/optimize-runtime-docker-layers/tasks.md +0 -36
  333. package/openspec/changes/prioritized-cold-start/.openspec.yaml +0 -4
  334. package/openspec/changes/prioritized-cold-start/design.md +0 -137
  335. package/openspec/changes/prioritized-cold-start/proposal.md +0 -41
  336. package/openspec/changes/prioritized-cold-start/specs/on-demand-resource-startup/spec.md +0 -98
  337. package/openspec/changes/prioritized-cold-start/tasks.md +0 -69
  338. package/openspec/config.yaml +0 -1
  339. package/openspec/specs/manifest-field-migration/spec.md +0 -24
  340. package/openspec/specs/resource-terminology-standard/spec.md +0 -24
  341. package/openspec/specs/self-contained-generated-projects/spec.md +0 -67
  342. package/openspec/specs/stack-terminology-standard/spec.md +0 -24
  343. package/platform/services/platform/proxy/service.yaml +0 -14
  344. package/scripts/audit-codebase.sh +0 -213
  345. package/scripts/autoresearch/layer-eval.sh +0 -65
  346. package/scripts/benchmark/README.md +0 -25
  347. package/scripts/benchmark/container-scale.ts +0 -503
  348. package/scripts/benchmark/pre-release-gate.sh +0 -9
  349. package/scripts/install-git-hooks.sh +0 -14
  350. package/scripts/measure-idle-footprint.sh +0 -58
  351. package/scripts/record-demo.sh +0 -43
  352. package/scripts/release-binaries.sh +0 -97
  353. package/scripts/setup-pre-commit.sh +0 -33
  354. package/scripts/stage-npm-engine.sh +0 -36
  355. package/tests/tilt-engine/__init__.py +0 -5
  356. package/tests/tilt-engine/conftest.py +0 -182
  357. package/tests/tilt-engine/fixtures/appointment-frontend-service.json +0 -11
  358. package/tests/tilt-engine/fixtures/identity-backend-service.json +0 -12
  359. package/tests/tilt-engine/fixtures/invalid-service.json +0 -4
  360. package/tests/tilt-engine/test_agents_md_generator.py +0 -341
  361. package/tests/tilt-engine/test_agents_md_integration.py +0 -378
  362. package/tests/tilt-engine/test_cache_operations.py +0 -181
  363. package/tests/tilt-engine/test_cache_persistence.py +0 -142
  364. package/tests/tilt-engine/test_code_executor.py +0 -152
  365. package/tests/tilt-engine/test_code_viewer.py +0 -127
  366. package/tests/tilt-engine/test_compose_port_anchors.py +0 -310
  367. package/tests/tilt-engine/test_config_inspector.py +0 -162
  368. package/tests/tilt-engine/test_daemon_focus_mode.py +0 -89
  369. package/tests/tilt-engine/test_daemon_polling.py +0 -122
  370. package/tests/tilt-engine/test_daemon_registration.py +0 -115
  371. package/tests/tilt-engine/test_daemon_validation.py +0 -107
  372. package/tests/tilt-engine/test_docker_generator_bugs.py +0 -493
  373. package/tests/tilt-engine/test_docker_prune.py +0 -119
  374. package/tests/tilt-engine/test_dockerignore_path_bug.py +0 -82
  375. package/tests/tilt-engine/test_file_browser.py +0 -193
  376. package/tests/tilt-engine/test_frontend_basepath_manifest.py +0 -27
  377. package/tests/tilt-engine/test_health_dependencies.py +0 -130
  378. package/tests/tilt-engine/test_health_endpoints.py +0 -118
  379. package/tests/tilt-engine/test_health_tilt_ui.py +0 -85
  380. package/tests/tilt-engine/test_runtime_container_footprint.py +0 -162
  381. package/tests/tilt-engine/test_sablier_defer_start.py +0 -237
  382. package/tests/tilt-engine/test_safety_aliases.py +0 -84
  383. package/tests/tilt-engine/test_snapshot_diff.py +0 -136
  384. package/tests/tilt-engine/test_snapshot_persistence.py +0 -163
  385. package/tests/tilt-engine/test_snapshot_scanning.py +0 -123
  386. package/tests/tilt-engine/test_standalone_project_boot.py +0 -61
  387. package/tests/tilt-engine/test_standalone_traefik.py +0 -160
  388. package/tests/tilt-engine/test_traefik_static_wake_route.py +0 -187
@@ -1,182 +0,0 @@
1
- # 🧪 Tilt Auto-Discovery Verification Test
2
-
3
- ## ✅ Zero-Config Resource Discovery
4
-
5
- This system implements **manifest-driven auto-discovery** - no hardcoded resource lists!
6
-
7
- ---
8
-
9
- ## 🚀 The "New Resource" Test
10
-
11
- Create a new resource and watch Tilt auto-discover it:
12
-
13
- ```bash
14
- # 1️⃣ Create new resource directory
15
- mkdir -p services/product/billing/billing-backend
16
-
17
- # 2️⃣ Add minimal manifest
18
- cat > services/product/billing/billing-backend/service.json << 'EOF'
19
- {
20
- "appName": "billing-backend",
21
- "appType": "backend",
22
- "stack": "billing",
23
- "port": 4010
24
- }
25
- EOF
26
-
27
- # 3️⃣ Add package.json
28
- cat > services/product/billing/billing-backend/package.json << 'EOF'
29
- {
30
- "name": "billing-backend",
31
- "version": "1.0.0",
32
- "scripts": {
33
- "dev": "bun run src/index.ts"
34
- }
35
- }
36
- EOF
37
-
38
- # 4️⃣ Add basic source file
39
- mkdir -p services/product/billing/billing-backend/src
40
- cat > services/product/billing/billing-backend/src/index.ts << 'EOF'
41
- console.log('Billing resource started!');
42
- EOF
43
-
44
- # 5️⃣ Restart Tilt
45
- tilt down
46
- tilt up
47
-
48
- # ✅ RESULT: billing-backend is auto-discovered!
49
- # Check Tilt UI at http://localhost:10350
50
- # You should see "billing-backend" in the resource list
51
- ```
52
-
53
- ---
54
-
55
- ## 🧹 The "Ghost" Test (Cleanup Verification)
56
-
57
- ```bash
58
- # 1️⃣ Remove the test resource
59
- rm -rf services/product/billing
60
-
61
- # 2️⃣ Restart Tilt
62
- tilt down
63
- tilt up
64
-
65
- # ✅ RESULT: billing-backend disappears from Tilt UI
66
- # No stale configurations or errors
67
- ```
68
-
69
- ---
70
-
71
- ## 📋 Manifest Examples
72
-
73
- ### Minimal Backend (Convention over Configuration)
74
- ```json
75
- {
76
- "appName": "my-resource-backend",
77
- "appType": "backend",
78
- "stack": "mystack",
79
- "port": 4020
80
- }
81
- ```
82
-
83
- **Auto-generated defaults:**
84
- - ✅ `databaseName`: `TDK_mystack`
85
- - ✅ `internalPort`: `3000` (container)
86
- - ✅ `traefik.host`: `mystack.backend.{project}.local`
87
- - ✅ `syncs`: `['src', '.npmrc', '.autogenerated/.npmrc.docker.autogenerated', '.autogenerated/bunfig.docker.autogenerated.toml']`
88
-
89
- ### Backend with Prisma
90
- ```json
91
- {
92
- "appName": "order-backend",
93
- "appType": "backend",
94
- "stack": "order",
95
- "port": 4002,
96
- "features": ["nats", "prisma"],
97
- "dependsOn": ["identity", "user"]
98
- }
99
- ```
100
-
101
- **Auto-detects:**
102
- - ✅ Adds `prisma/` to syncs
103
- - ✅ Enables migrator (`order-db-migrator`)
104
- - ✅ Creates dependency graph
105
-
106
- ### Frontend with Backend Proxy
107
- ```json
108
- {
109
- "appName": "user-frontend",
110
- "appType": "frontend",
111
- "stack": "user",
112
- "port": 3001,
113
- "backendName": "user-management-backend"
114
- }
115
- ```
116
-
117
- **Auto-generates:**
118
- - ✅ Vite proxy configuration
119
- - ✅ Frontend → Backend dependency
120
- - ✅ HMR port configuration
121
-
122
- ---
123
-
124
- ## 🔍 Discovery Output
125
-
126
- When Tilt starts, you'll see:
127
-
128
- ```
129
- 🔍 ═══════════════════════════════════════════════════════════════
130
- 🔍 MANIFEST-DRIVEN RESOURCE DISCOVERY
131
- 🔍 ═══════════════════════════════════════════════════════════════
132
- 📂 Working directory: /private/var/www/2025/ollamar1/tdk/.tilt/core
133
- 📂 Resources root check: ../../services/product
134
- 📋 Found 8 manifest files
135
- ✅ user-management-backend | backend | Port: 4000 | Stack: user
136
- ✅ user-management-frontend | frontend | Port: 3001 | Stack: user
137
- ✅ order-management-backend | backend | Port: 4002 | Stack: order
138
- ✅ staff-management-backend | backend | Port: 4004 | Stack: staff
139
- ✅ identity-management-backend | backend | Port: 4006 | Stack: identity
140
- ✅ treatment-management-backend | backend | Port: 4008 | Stack: treatment
141
- ✅ inventory-management-backend | backend | Port: 4012 | Stack: inventory
142
- ✅ order-planner-backend | backend | Port: 4014 | Stack: order-planner
143
- 🔍 ═══════════════════════════════════════════════════════════════
144
- 🎯 Discovered 8 stacks with 8 resources
145
- 🔍 ═══════════════════════════════════════════════════════════════
146
- ```
147
-
148
- ---
149
-
150
- ## 🎯 Key Benefits
151
-
152
- 1. **Zero Manual Registration**: No hardcoded resource lists
153
- 2. **Convention over Configuration**: Minimal manifest = full resource
154
- 3. **Merge Conflict Free**: No central file to edit
155
- 4. **Self-Documenting**: Filesystem = source of truth
156
- 5. **Smart Defaults**: Port ranges, syncs, dependencies auto-computed
157
-
158
- ---
159
-
160
- ## 📚 Related Files
161
-
162
- - **Discovery Engine**: `.tilt/core/registry.star` (lines 212-638)
163
- - **Manifest Loader**: `.tilt/core/manifest.star`
164
- - **Tiltfile Integration**: `Tiltfile` (imports `APP_RESOURCES` from registry)
165
-
166
- ---
167
-
168
- ## 🔧 Advanced: Custom Discovery Paths
169
-
170
- Edit `.tilt/core/registry.star` to scan additional paths:
171
-
172
- ```starlark
173
- GLOBAL_CONFIG = {
174
- 'services_root': '../../services/product', # Current
175
- # Add more roots if needed:
176
- # 'additional_roots': ['../../services/internal', '../../services/external']
177
- }
178
- ```
179
-
180
- ---
181
-
182
- **Status**: ✅ Auto-discovery is ACTIVE and working!
@@ -1,396 +0,0 @@
1
- ## Detailed Architecture Breakdown
2
-
3
- ### **Core Layer** (Foundation)
4
-
5
- ```
6
- core/
7
- ├── utils.star # Shared utilities, I/O, validation
8
- ├── manifest.star # Service manifest loading & Smart Defaults
9
- ├── registry.star # Single Source of Truth for all services
10
- └── dependency-sync.star # Automatic config regeneration
11
- ```
12
-
13
- **Responsibilities**:
14
- - File I/O with change detection
15
- - JSON manifest parsing & validation
16
- - Service discovery (auto-scans `services/product/`)
17
- - Dependency resolution (package names → paths)
18
- - Network repair utilities
19
- - Environment validation
20
-
21
- **Key Pattern**: Pure functions, no mutable global state (Starlark-safe)
22
-
23
- ---
24
-
25
- ### **Provider Layer** (Config Generators)
26
-
27
- ```
28
- providers/
29
- ├── docker/
30
- │ ├── layers/
31
- │ │ ├── l1_base_layers.star # OS base + runtime env
32
- │ │ ├── l2_dependency_layers.star # Package manifest + install
33
- │ │ ├── l3_builder_layers.star # Compilation stage
34
- │ │ └── l4_runtime_layers.star # Final runtime
35
- │ ├── compose.star # docker-compose generation
36
- │ ├── dockerignore.star # .dockerignore generation
37
- │ └── golden-image.star # Golden image workflow
38
- ├── typescript/
39
- │ ├── backend_tsconfig.star # Backend TypeScript config
40
- │ ├── frontend_tsconfig.star # Frontend TypeScript config
41
- │ └── prisma_config.star # Prisma-specific config
42
- ├── vite.star # Vite dev server config
43
- └── npmrc.star # Package registry config
44
- ```
45
-
46
- **Responsibilities**:
47
- - Generate configuration files from manifests
48
- - Multi-stage Dockerfile orchestration (L1→L2→L3→L4)
49
- - TypeScript path mapping automation
50
- - Vite alias synchronization
51
- - Registry configuration (.npmrc, bunfig.toml)
52
-
53
- **Key Innovation**: Layered Docker builds with surgical cache invalidation
54
-
55
- ---
56
-
57
- ### **Lifecycle Layer** (Orchestration)
58
-
59
- ```
60
- lifecycle/
61
- ├── libs.star # Shared library management
62
- ├── databases.star # Database virtualization (per-service DBs)
63
- ├── orchestrator.star # Service coordination & dependencies
64
- ├── infra-loader.star # Infrastructure provisioning
65
- └── watchers.star # File change detection & triggers
66
- ```
67
-
68
- **Responsibilities**:
69
- - Shared library build orchestration
70
- - Per-service database provisioning (`TDK_{domain}`)
71
- - Service startup order (via dependency graph)
72
- - Infrastructure bootstrapping (Postgres, NATS, Traefik)
73
- - Hot-reload triggers on file changes
74
-
75
- **Key Pattern**: Resource dependency graphs ensure correct startup order
76
-
77
- ---
78
-
79
- ### **Configuration Layer**
80
-
81
- ```
82
- config.star # Global config & Focus Mode
83
- focus-mode.star # Service filtering (--focus=user)
84
- ```
85
-
86
- **Responsibilities**:
87
- - CLI argument parsing (`--focus`, `--no-frontend`)
88
- - Service enablement logic
89
- - Environment variable loading
90
- - Context building for all modules
91
-
92
- ---
93
-
94
- ## Data Flow Diagrams
95
-
96
- ### **1. Service Discovery Flow**
97
-
98
- ```mermaid
99
- graph TD
100
- A[Tilt Startup] --> B[Scan services/product/]
101
- B --> C{Find manifests}
102
- C -->|Found| D[Load JSON]
103
- C -->|Not found| E[Skip directory]
104
- D --> F[Apply Smart Defaults]
105
- F --> G[Validate manifest]
106
- G --> H{Valid?}
107
- H -->|Yes| I[Add to APP_RESOURCES]
108
- H -->|No| J[Log error, skip]
109
- I --> K[Generate all configs]
110
- K --> L[Create Tilt resources]
111
-
112
- style A fill:#f9f,stroke:#333,stroke-width:3px
113
- style I fill:#9f9,stroke:#333,stroke-width:2px
114
- style J fill:#f99,stroke:#333,stroke-width:2px
115
- ```
116
-
117
- ### **2. Manifest-Driven Config Generation**
118
-
119
- ```mermaid
120
- graph LR
121
- subgraph "Single Source of Truth"
122
- M[service.manifest.json]
123
- end
124
-
125
- subgraph "Generated Configs"
126
- D1[Dockerfile.app]
127
- D2[Dockerfile.migrator]
128
- DC[docker-compose.yml]
129
- TS[tsconfig.json]
130
- V[vite.config.ts]
131
- N[.npmrc]
132
- B[bunfig.toml]
133
- end
134
-
135
- M -->|Docker Provider| D1
136
- M -->|Docker Provider| D2
137
- M -->|Compose Provider| DC
138
- M -->|TS Provider| TS
139
- M -->|Vite Provider| V
140
- M -->|Package Provider| N
141
- M -->|Package Provider| B
142
-
143
- style M fill:#ff9,stroke:#333,stroke-width:4px
144
- ```
145
-
146
- ### **3. Golden Image Build Strategy**
147
-
148
- ```mermaid
149
- graph TB
150
- subgraph "One-Time Build"
151
- GD[docker/golden.Dockerfile]
152
- GB[Golden Image Build]
153
- GI[TDK Landscape-base:latest]
154
- end
155
-
156
- subgraph "Per-Service Builds (Fast)"
157
- S1[user-backend]
158
- S2[order-backend]
159
- S3[treatment-backend]
160
- end
161
-
162
- subgraph "Service Dockerfiles"
163
- DF1[FROM TDK Landscape-base:latest]
164
- DF2[COPY service code]
165
- DF3[RUN bun build]
166
- end
167
-
168
- GD --> GB
169
- GB --> GI
170
- GI --> S1
171
- GI --> S2
172
- GI --> S3
173
- S1 --> DF1
174
- DF1 --> DF2
175
- DF2 --> DF3
176
-
177
- style GI fill:#f9f,stroke:#333,stroke-width:4px
178
- style DF3 fill:#9f9,stroke:#333,stroke-width:2px
179
- ```
180
-
181
- ---
182
-
183
- ## Key Design Principles
184
-
185
- ### **1. Convention over Configuration**
186
- ```
187
- Package name → Directory path (automatic)
188
-
189
- @tdk-landscape/eventing → platform/packages/eventing/src
190
- @tdk/domain → shared-ddd-layers/domain/src
191
- ```
192
-
193
- ### **2. Single Source of Truth**
194
- ```
195
- service.manifest.json → Everything else
196
-
197
- One file defines:
198
- - Service name, type, domain
199
- - Port mapping
200
- - Database name
201
- - Dependencies
202
- - Feature flags (prisma, nats, etc.)
203
- ```
204
-
205
- ### **3. Fail-Fast Validation**
206
- ```
207
- Checks at tilt up:
208
- ✓ Manifest schema validation
209
- ✓ Circular dependency detection
210
- ✓ Network conflict resolution
211
- ✓ Infisical environment check
212
- ✓ Required secrets present
213
- ```
214
-
215
- ### **4. Self-Healing Systems**
216
- ```
217
- Automatic fixes:
218
- ✓ Docker network conflicts → recreate networks
219
- ✓ Bun install cache corruption → retry without cache
220
- ✓ Missing golden image → build automatically
221
- ✓ Dependency changes → regenerate all configs
222
- ```
223
-
224
- ---
225
-
226
- ## Performance Optimizations
227
-
228
- ### **Build Time Reduction**
229
-
230
- | Strategy | Impact | Implementation |
231
- |----------|--------|----------------|
232
- | **Golden images** | 98% faster | Pre-built base layers |
233
- | **L1-L4 layering** | 5x cache hits | Surgical invalidation |
234
- | **Parallel builds** | 3x faster | Tilt's concurrent resource loading |
235
- | **Bun runtime** | 2x faster | vs Node.js |
236
- | **Multi-stage builds** | 80% smaller images | Production purge layer |
237
-
238
- ### **Developer Productivity**
239
-
240
- | Feature | Time Saved | Comparison |
241
- |---------|-----------|------------|
242
- | **Auto-discovery** | 30 min/service | vs manual Tiltfile edits |
243
- | **Dependency sync** | 10 min/change | vs manual config updates |
244
- | **Focus mode** | 5 min/restart | vs full stack rebuild |
245
- | **Healthchecks** | 2 hours/incident | vs blind debugging |
246
- | **Network auto-repair** | 15 min/conflict | vs manual Docker cleanup |
247
-
248
- ---
249
-
250
- ## System Boundaries
251
-
252
- ### **What Tilt Controls**
253
- ✅ Docker image generation
254
- ✅ Container orchestration
255
- ✅ Configuration file generation
256
- ✅ Dependency graph management
257
- ✅ Local development environment
258
- ✅ Hot reload triggers
259
-
260
- ### **What Tilt Doesn't Control**
261
- ❌ Production deployment
262
- ❌ Cloud infrastructure
263
- ❌ Monitoring/observability
264
- ❌ CI/CD pipelines (that's GitHub Actions)
265
- ❌ Application business logic
266
-
267
- ---
268
-
269
- ## Integration Points
270
-
271
- ```mermaid
272
- graph TB
273
- subgraph "External Systems"
274
- Git[Git Repository]
275
- Docker[Docker Engine]
276
- Bun[Bun Runtime]
277
- Infisical[Infisical Secrets]
278
- end
279
-
280
- subgraph "Tilt Ecosystem"
281
- Tiltfile[Tiltfile]
282
- SDK[Tilt SDK Modules]
283
- Resources[Tilt Resources]
284
- end
285
-
286
- subgraph "Generated Artifacts"
287
- Dockerfiles[Auto-generated Dockerfiles]
288
- Configs[Auto-generated Configs]
289
- Compose[Docker Compose Files]
290
- end
291
-
292
- subgraph "Running System"
293
- Containers[Service Containers]
294
- Databases[Per-Service DBs]
295
- Infrastructure[NATS, Traefik, etc.]
296
- end
297
-
298
- Git -->|watches| Tiltfile
299
- Tiltfile -->|loads| SDK
300
- SDK -->|generates| Dockerfiles
301
- SDK -->|generates| Configs
302
- SDK -->|generates| Compose
303
-
304
- Dockerfiles -->|builds via| Docker
305
- Compose -->|orchestrates| Containers
306
-
307
- Containers -->|connects to| Databases
308
- Containers -->|uses| Infrastructure
309
-
310
- Bun -->|runs in| Containers
311
- Infisical -->|provides secrets to| Containers
312
-
313
- style Tiltfile fill:#f9f,stroke:#333,stroke-width:4px
314
- style SDK fill:#9cf,stroke:#333,stroke-width:3px
315
- style Containers fill:#9f9,stroke:#333,stroke-width:3px
316
- ```
317
-
318
- ---
319
-
320
- ## Deployment View
321
-
322
- ```mermaid
323
- graph TB
324
- subgraph "Developer Machine"
325
- Editor[VS Code / Cursor]
326
- Git[Git]
327
- Tilt[Tilt]
328
- Docker[Docker / OrbStack]
329
- end
330
-
331
- subgraph "Tilt SDK (Starlark)"
332
- Core[Core Modules]
333
- Providers[Config Generators]
334
- Lifecycle[Orchestration]
335
- end
336
-
337
- subgraph "Generated Artifacts (Git-ignored)"
338
- DF[*.autogenerated Dockerfiles]
339
- DC[docker-compose.autogenerated.yml]
340
- TS[tsconfig.docker.autogenerated.json]
341
- end
342
-
343
- subgraph "Running Containers"
344
- Services[30+ Microservices]
345
- DBs[PostgreSQL Instances]
346
- Infra[NATS, Traefik, Verdaccio]
347
- end
348
-
349
- Editor -->|edits code| Git
350
- Git -->|triggers| Tilt
351
- Tilt -->|executes| Core
352
- Core --> Providers
353
- Providers --> Lifecycle
354
- Lifecycle --> DF
355
- Lifecycle --> DC
356
- Lifecycle --> TS
357
-
358
- DF -->|builds| Docker
359
- DC -->|orchestrates| Docker
360
- Docker -->|runs| Services
361
- Docker -->|runs| DBs
362
- Docker -->|runs| Infra
363
-
364
- style Editor fill:#bbf,stroke:#333,stroke-width:2px
365
- style Tilt fill:#f9f,stroke:#333,stroke-width:4px
366
- style Services fill:#9f9,stroke:#333,stroke-width:3px
367
- ```
368
-
369
- ---
370
-
371
- ## Comparison to Production Architecture
372
-
373
- | Aspect | Tilt (Local Dev) | Production |
374
- |--------|------------------|------------|
375
- | **Orchestration** | Tilt + Docker Compose | Kubernetes / Cloud Run |
376
- | **Service Discovery** | Manifest files | Service mesh / DNS |
377
- | **Config Management** | Auto-generated files | ConfigMaps / Secrets |
378
- | **Networking** | Docker networks | Cloud VPC / Load balancers |
379
- | **Databases** | Local Postgres containers | Managed Postgres (Neon/RDS) |
380
- | **Secrets** | Infisical CLI | Infisical API / Vault |
381
- | **Observability** | Docker logs + Tilt UI | Prometheus + Grafana + Sentry |
382
- | **Deployment** | `tilt up` | CI/CD → Cloud deploy |
383
-
384
- ---
385
-
386
- ## Conclusion
387
-
388
- **Tilt SDK Architecture** = 5000+ lines of infrastructure-as-code that:
389
-
390
- 1. **Eliminates manual toil** (19% of files autogenerated)
391
- 2. **Enforces consistency** (one template → 30 services)
392
- 3. **Enables rapid development** (`git clone && tilt up`)
393
- 4. **Scales horizontally** (manifest discovery = no central file edits)
394
- 5. **Provides escape hatches** (can override any generated config)
395
-
396
- **This is enterprise-grade developer tooling** built by one engineer over one year.