@flisk-sh/flisk 0.0.0-stage → 1.3.189

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 (440) hide show
  1. package/CHANGELOG.md +492 -0
  2. package/LICENSE +21 -0
  3. package/README.md +479 -2
  4. package/Tiltfile +151 -0
  5. package/cli/bin/flisk.js +42 -0
  6. package/cli/dist/agent-runtimes/custom.js +335 -0
  7. package/cli/dist/agent-runtimes/registry.js +34 -0
  8. package/cli/dist/backend-frameworks/elysia.js +38 -0
  9. package/cli/dist/backend-frameworks/express.js +49 -0
  10. package/cli/dist/backend-frameworks/fastify.js +43 -0
  11. package/cli/dist/backend-frameworks/h3.js +37 -0
  12. package/cli/dist/backend-frameworks/koa.js +47 -0
  13. package/cli/dist/backend-frameworks/mcp.js +86 -0
  14. package/cli/dist/backend-frameworks/nestjs.js +55 -0
  15. package/cli/dist/backend-frameworks/registry.js +134 -0
  16. package/cli/dist/backend-frameworks/types.js +1 -0
  17. package/cli/dist/backend-languages/bun.js +76 -0
  18. package/cli/dist/backend-languages/go.js +125 -0
  19. package/cli/dist/backend-languages/node.js +122 -0
  20. package/cli/dist/backend-languages/python.js +94 -0
  21. package/cli/dist/backend-languages/registry.js +37 -0
  22. package/cli/dist/backend-languages/rust.js +82 -0
  23. package/cli/dist/backend-languages/types.js +1 -0
  24. package/cli/dist/cli.js +29 -0
  25. package/cli/dist/commands/__tests__/project-e2e-helpers.js +49 -0
  26. package/cli/dist/commands/__tests__/ui-loading-screen.test.js +16 -0
  27. package/cli/dist/commands/agent.js +182 -0
  28. package/cli/dist/commands/completion-candidates.js +116 -0
  29. package/cli/dist/commands/completion.js +843 -0
  30. package/cli/dist/commands/config.js +362 -0
  31. package/cli/dist/commands/doctor.js +1504 -0
  32. package/cli/dist/commands/down.js +114 -0
  33. package/cli/dist/commands/eject.js +108 -0
  34. package/cli/dist/commands/help.js +152 -0
  35. package/cli/dist/commands/import.js +164 -0
  36. package/cli/dist/commands/logs.js +119 -0
  37. package/cli/dist/commands/maintainers.js +102 -0
  38. package/cli/dist/commands/mcp.js +28 -0
  39. package/cli/dist/commands/networks.js +306 -0
  40. package/cli/dist/commands/project.js +447 -0
  41. package/cli/dist/commands/projects.js +103 -0
  42. package/cli/dist/commands/registry.js +53 -0
  43. package/cli/dist/commands/resource.js +992 -0
  44. package/cli/dist/commands/resources.js +127 -0
  45. package/cli/dist/commands/restart.js +89 -0
  46. package/cli/dist/commands/runtime.js +75 -0
  47. package/cli/dist/commands/stack.js +171 -0
  48. package/cli/dist/commands/stacks.js +71 -0
  49. package/cli/dist/commands/status.js +211 -0
  50. package/cli/dist/commands/ui.js +725 -0
  51. package/cli/dist/commands/up.js +609 -0
  52. package/cli/dist/commands/upgrade.js +840 -0
  53. package/cli/dist/commands/version.js +10 -0
  54. package/cli/dist/components/Accessible.js +11 -0
  55. package/cli/dist/components/BaseTooltip.js +30 -0
  56. package/cli/dist/components/DetailPanel.js +33 -0
  57. package/cli/dist/components/FileTree.js +51 -0
  58. package/cli/dist/components/ResourceSelectInput.js +42 -0
  59. package/cli/dist/components/ResourceTable.js +35 -0
  60. package/cli/dist/components/ServiceIssues.js +13 -0
  61. package/cli/dist/components/TUIHeader.js +27 -0
  62. package/cli/dist/components/TabBar.js +27 -0
  63. package/cli/dist/components/Tooltip.js +13 -0
  64. package/cli/dist/components/index.js +11 -0
  65. package/cli/dist/components/ui-theme.js +120 -0
  66. package/cli/dist/config/platform-standards.js +182 -0
  67. package/cli/dist/frontend-frameworks/lit.js +64 -0
  68. package/cli/dist/frontend-frameworks/preact.js +62 -0
  69. package/cli/dist/frontend-frameworks/qwik.js +61 -0
  70. package/cli/dist/frontend-frameworks/react.js +69 -0
  71. package/cli/dist/frontend-frameworks/registry.js +83 -0
  72. package/cli/dist/frontend-frameworks/solid.js +62 -0
  73. package/cli/dist/frontend-frameworks/svelte.js +67 -0
  74. package/cli/dist/frontend-frameworks/tanstack-router.js +101 -0
  75. package/cli/dist/frontend-frameworks/types.js +1 -0
  76. package/cli/dist/frontend-frameworks/vanilla.js +59 -0
  77. package/cli/dist/frontend-frameworks/vue.js +72 -0
  78. package/cli/dist/generator/__tests__/golden-helpers.js +43 -0
  79. package/cli/dist/generator/extension-fetch.js +291 -0
  80. package/cli/dist/generator/resource-templates.js +133 -0
  81. package/cli/dist/generator/template-engine.js +801 -0
  82. package/cli/dist/index.js +10 -0
  83. package/cli/dist/mcp/server.js +101 -0
  84. package/cli/dist/mcp/tools.js +351 -0
  85. package/cli/dist/program.js +37 -0
  86. package/cli/dist/types/index.js +38 -0
  87. package/cli/dist/utils/agent-host.js +36 -0
  88. package/cli/dist/utils/atomic-write.js +36 -0
  89. package/cli/dist/utils/bun-floor.js +9 -0
  90. package/cli/dist/utils/bun-requirement.js +10 -0
  91. package/cli/dist/utils/cache.js +63 -0
  92. package/cli/dist/utils/cold-preflight.js +257 -0
  93. package/cli/dist/utils/command-helpers.js +57 -0
  94. package/cli/dist/utils/constants.js +160 -0
  95. package/cli/dist/utils/discovery-context.js +71 -0
  96. package/cli/dist/utils/discovery-paths.js +93 -0
  97. package/cli/dist/utils/docker.js +34 -0
  98. package/cli/dist/utils/doctor-crashloop.js +161 -0
  99. package/cli/dist/utils/doctor-fix.js +391 -0
  100. package/cli/dist/utils/doctor-host.js +66 -0
  101. package/cli/dist/utils/doctor-report.js +78 -0
  102. package/cli/dist/utils/doctor-runtime.js +880 -0
  103. package/cli/dist/utils/doctor-starlark.js +132 -0
  104. package/cli/dist/utils/doctor-wiring.js +698 -0
  105. package/cli/dist/utils/down-cleanup.js +125 -0
  106. package/cli/dist/utils/env-validator.js +266 -0
  107. package/cli/dist/utils/errors.js +175 -0
  108. package/cli/dist/utils/exec-async.js +31 -0
  109. package/cli/dist/utils/file-helpers.js +104 -0
  110. package/cli/dist/utils/formatting.js +165 -0
  111. package/cli/dist/utils/generated-paths.js +51 -0
  112. package/cli/dist/utils/help-command.js +11 -0
  113. package/cli/dist/utils/host-port-config.js +140 -0
  114. package/cli/dist/utils/host-port-plan.js +100 -0
  115. package/cli/dist/utils/json-output.js +29 -0
  116. package/cli/dist/utils/machine-output.js +33 -0
  117. package/cli/dist/utils/paths.js +43 -0
  118. package/cli/dist/utils/platform.js +58 -0
  119. package/cli/dist/utils/port-assignment.js +75 -0
  120. package/cli/dist/utils/port-conflict-fix.js +25 -0
  121. package/cli/dist/utils/port-fallback-notice.js +17 -0
  122. package/cli/dist/utils/port-listener-probe.js +20 -0
  123. package/cli/dist/utils/project-config-defaults.js +17 -0
  124. package/cli/dist/utils/project-features.js +91 -0
  125. package/cli/dist/utils/project-templates.js +32 -0
  126. package/cli/dist/utils/prompt.js +97 -0
  127. package/cli/dist/utils/resource-features.js +184 -0
  128. package/cli/dist/utils/resource-kind.js +9 -0
  129. package/cli/dist/utils/schema-version-gate.js +45 -0
  130. package/cli/dist/utils/search-status.js +12 -0
  131. package/cli/dist/utils/secret-redaction.js +73 -0
  132. package/cli/dist/utils/service-config-checks.js +189 -0
  133. package/cli/dist/utils/service-manifest.js +254 -0
  134. package/cli/dist/utils/service-runtime-state.js +66 -0
  135. package/cli/dist/utils/service-urls.js +112 -0
  136. package/cli/dist/utils/services.js +360 -0
  137. package/cli/dist/utils/shared-infra.js +45 -0
  138. package/cli/dist/utils/shared-platform-postgres.js +232 -0
  139. package/cli/dist/utils/single-flight.js +21 -0
  140. package/cli/dist/utils/smoke.js +401 -0
  141. package/cli/dist/utils/spinner.js +40 -0
  142. package/cli/dist/utils/stack-features.js +15 -0
  143. package/cli/dist/utils/stack-status.js +14 -0
  144. package/cli/dist/utils/startup-report.js +78 -0
  145. package/cli/dist/utils/status-message.js +21 -0
  146. package/cli/dist/utils/status-ports.js +33 -0
  147. package/cli/dist/utils/suggestions.js +63 -0
  148. package/cli/dist/utils/tar.js +46 -0
  149. package/cli/dist/utils/tdk-version.js +51 -0
  150. package/cli/dist/utils/terminal-layout.js +19 -0
  151. package/cli/dist/utils/tilt-events.js +194 -0
  152. package/cli/dist/utils/tilt-logs.js +61 -0
  153. package/cli/dist/utils/tilt-port-owner.js +63 -0
  154. package/cli/dist/utils/tilt-process.js +54 -0
  155. package/cli/dist/utils/tilt-resource-state.js +32 -0
  156. package/cli/dist/utils/tilt-startup.js +49 -0
  157. package/cli/dist/utils/tilt-unreachable-message.js +9 -0
  158. package/cli/dist/utils/tilt.js +104 -0
  159. package/cli/dist/utils/ui-keymap.js +129 -0
  160. package/cli/dist/utils/ui-service-state.js +34 -0
  161. package/cli/dist/utils/up-only.js +28 -0
  162. package/cli/dist/utils/up-readiness.js +118 -0
  163. package/cli/dist/utils/url-actions.js +103 -0
  164. package/cli/dist/utils/validation.js +62 -0
  165. package/cli/dist/utils/which.js +56 -0
  166. package/cli/dist/utils/windows-doctor.js +176 -0
  167. package/cli/dist-bundle/chunk-6EA4DGCY.js +2 -0
  168. package/cli/dist-bundle/chunk-BZ4H7MM4.js +3 -0
  169. package/cli/dist-bundle/chunk-QWYXYAX6.js +510 -0
  170. package/cli/dist-bundle/cli.js +2017 -0
  171. package/cli/dist-bundle/cold-preflight-MM46GFQA.js +2 -0
  172. package/cli/dist-bundle/devtools-ZUHXW33W.js +5 -0
  173. package/cli/dist-bundle/extension-fetch-J4FFH7TJ.js +2 -0
  174. package/cli/package.json +83 -0
  175. package/cli/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +25 -0
  176. package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +466 -0
  177. package/cli/shared-platform-engineering/docker-templates/install-deps.sh +154 -0
  178. package/cli/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +14 -0
  179. package/cli/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +58 -0
  180. package/cli/templates/.tiltignore.hbs +72 -0
  181. package/cli/templates/TILT_RESOURCE_DEFAULTS.star.hbs +220 -0
  182. package/cli/templates/TILT_TECH_STACK.star.hbs +149 -0
  183. package/cli/templates/Tiltfile.hbs +381 -0
  184. package/cli/templates/spec.master.hbs +192 -0
  185. package/discovery/AGENTS.md +362 -0
  186. package/discovery/TILT_DISCOVERY.star +429 -0
  187. package/discovery/Tiltfile +58 -0
  188. package/discovery/config.star +265 -0
  189. package/discovery/constants.star +167 -0
  190. package/discovery/deterministic.star +213 -0
  191. package/discovery/discovery_daemon.star +193 -0
  192. package/discovery/discovery_orchestrator.star +492 -0
  193. package/discovery/filtering.star +7 -0
  194. package/discovery/identity-management-backend/service.yaml +26 -0
  195. package/discovery/identity-management-frontend/service.yaml +29 -0
  196. package/discovery/identity-sdk/service.yaml +9 -0
  197. package/discovery/incremental_discovery.star +215 -0
  198. package/discovery/indexing.star +9 -0
  199. package/discovery/json_manifest_scanner.star +57 -0
  200. package/discovery/libraries.star +48 -0
  201. package/discovery/loading.star +25 -0
  202. package/discovery/manifest/constants.star +106 -0
  203. package/discovery/manifest/loading.star +418 -0
  204. package/discovery/manifest/normalize.star +289 -0
  205. package/discovery/manifest/validation.star +110 -0
  206. package/discovery/normalization.star +13 -0
  207. package/discovery/registry.star +562 -0
  208. package/discovery/resource_snapshot.py +384 -0
  209. package/discovery/resource_snapshot.star +145 -0
  210. package/discovery/schemas.star +3 -0
  211. package/discovery/services/platform/cdc/debezium/nats-connector/service.yaml +9 -0
  212. package/discovery/services/platform/cdc/nats-http-bridge/service.yaml +9 -0
  213. package/discovery/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +26 -0
  214. package/discovery/services/platform/synthetic-monitor/service.yaml +9 -0
  215. package/discovery/test_resource_snapshot.py +253 -0
  216. package/discovery/validation.star +80 -0
  217. package/discovery/versioning.star +3 -0
  218. package/engine/AGENTS.md +706 -0
  219. package/engine/README.md +31 -0
  220. package/engine/REFACTORING_MANIFEST_SYSTEM.md +974 -0
  221. package/engine/Tiltfile +86 -0
  222. package/engine/assets/docker/golden-layers.Dockerfile +204 -0
  223. package/engine/assets/docker/wake-gateway/Dockerfile +28 -0
  224. package/engine/assets/docker/wake-gateway/decide.test.ts +177 -0
  225. package/engine/assets/docker/wake-gateway/decide.ts +135 -0
  226. package/engine/assets/docker/wake-gateway/server.ts +363 -0
  227. package/engine/assets/scripts/cleanup-completed-migrator-images.sh +39 -0
  228. package/engine/assets/scripts/cleanup-tilt-images.sh +122 -0
  229. package/engine/assets/scripts/mac-m1-resource-monitor.sh +123 -0
  230. package/engine/config.star +5 -0
  231. package/engine/entrypoint.star +101 -0
  232. package/engine/lifecycle/orchestrator.star +263 -0
  233. package/engine/paths.star +719 -0
  234. package/engine/schemas/project-schema.json +147 -0
  235. package/engine/schemas/service-schema.json +537 -0
  236. package/engine/scripts/README.md +89 -0
  237. package/engine/scripts/build-and-publish-lib.sh +207 -0
  238. package/engine/scripts/check-lib-publish.sh +87 -0
  239. package/engine/scripts/debug-container.sh +265 -0
  240. package/engine/scripts/generate-manifest.sh +200 -0
  241. package/engine/spec.master +702 -0
  242. package/engine/spec.master.example +341 -0
  243. package/engine/topologies/README.md +33 -0
  244. package/engine/topologies/platform/docker/AGENTS.md +59 -0
  245. package/engine/topologies/platform/docker/auth/auth.star +207 -0
  246. package/engine/topologies/platform/docker/build/frontend_build_plan.star +65 -0
  247. package/engine/topologies/platform/docker/build/golden_image.star +37 -0
  248. package/engine/topologies/platform/docker/build/golden_image_build.star +144 -0
  249. package/engine/topologies/platform/docker/build/golden_image_constants.star +100 -0
  250. package/engine/topologies/platform/docker/build/golden_image_dockerfile.star +263 -0
  251. package/engine/topologies/platform/docker/compose/compose.star +637 -0
  252. package/engine/topologies/platform/docker/compose/compose_helpers.star +54 -0
  253. package/engine/topologies/platform/docker/compose/traefik_standalone.star +171 -0
  254. package/engine/topologies/platform/docker/config/bunignore.star +144 -0
  255. package/engine/topologies/platform/docker/config/dockerignore.star +152 -0
  256. package/engine/topologies/platform/docker/config/healthcheck.star +58 -0
  257. package/engine/topologies/platform/docker/constants.star +211 -0
  258. package/engine/topologies/platform/docker/dockerfile/dockerfile.star +56 -0
  259. package/engine/topologies/platform/docker/dockerfile/language_dockerfile.star +264 -0
  260. package/engine/topologies/platform/docker/generators/golden_docker_generator_v2.star +76 -0
  261. package/engine/topologies/platform/docker/index.star +40 -0
  262. package/engine/topologies/platform/docker/layers/bun_helpers.star +25 -0
  263. package/engine/topologies/platform/docker/layers/infisical/index.star +42 -0
  264. package/engine/topologies/platform/docker/layers/infisical/infisical_docker.star +264 -0
  265. package/engine/topologies/platform/docker/layers/l1_base_layers.star +89 -0
  266. package/engine/topologies/platform/docker/layers/l2_dependency_layers.star +147 -0
  267. package/engine/topologies/platform/docker/layers/l3_builder_layers.star +229 -0
  268. package/engine/topologies/platform/docker/layers/l4_runtime_layers.star +282 -0
  269. package/engine/topologies/platform/docker/layers/prisma/constants.star +138 -0
  270. package/engine/topologies/platform/docker/layers/prisma/db_readiness.star +98 -0
  271. package/engine/topologies/platform/docker/layers/prisma/filesystem_setup.star +131 -0
  272. package/engine/topologies/platform/docker/layers/prisma/migrate_script.star +100 -0
  273. package/engine/topologies/platform/docker/layers/prisma/prisma_build.star +128 -0
  274. package/engine/topologies/platform/docker/layers/prisma/prisma_runtime.star +205 -0
  275. package/engine/topologies/platform/docker/layers/prisma/secret_resolution.star +121 -0
  276. package/engine/topologies/platform/docker/networking/api_path_constants.star +206 -0
  277. package/engine/topologies/platform/docker/networking/sablier_container_cycle.star +31 -0
  278. package/engine/topologies/platform/docker/networking/traefik.star +266 -0
  279. package/engine/topologies/platform/docker/networking/traefik_constants.star +148 -0
  280. package/engine/topologies/platform/docker/networking/traefik_helpers.star +162 -0
  281. package/engine/topologies/platform/docker/networking/traefik_static_routes.star +165 -0
  282. package/engine/topologies/platform/docker/secrets/env_secrets.star +74 -0
  283. package/engine/topologies/platform/docker/secrets/infisical.star +109 -0
  284. package/engine/topologies/platform/net/AGENTS.md +64 -0
  285. package/engine/topologies/platform/net/proxy.star +6 -0
  286. package/engine/topologies/platform/registries/local.star +6 -0
  287. package/engine/topologies/platform/registries/verdaccio_loader.star +20 -0
  288. package/engine/topologies/platform/security/AGENTS.md +49 -0
  289. package/engine/topologies/platform/security/secrets.star +241 -0
  290. package/engine/topologies/platform/state/AGENTS.md +64 -0
  291. package/engine/topologies/platform/state/relational.star +6 -0
  292. package/engine/topologies/tilt/common/AGENTS.md +59 -0
  293. package/engine/topologies/tilt/common/utils.star +409 -0
  294. package/engine/topologies/tilt/common/utils_debug.star +71 -0
  295. package/engine/topologies/tilt/common/utils_deterministic.star +170 -0
  296. package/engine/topologies/tilt/common/utils_docker_networks.star +54 -0
  297. package/engine/topologies/tilt/common/utils_env.star +92 -0
  298. package/engine/topologies/tilt/common/utils_output.star +99 -0
  299. package/engine/topologies/tilt/config/AGENTS.md +68 -0
  300. package/engine/topologies/tilt/config/defaults.star +5 -0
  301. package/engine/topologies/tilt/config/feature_flags.star +12 -0
  302. package/engine/topologies/tilt/config/global.star +57 -0
  303. package/engine/topologies/tilt/config/profiles.star +398 -0
  304. package/engine/topologies/tilt/generators/agents_md.star +64 -0
  305. package/engine/topologies/tilt/generators/api_gateway.star +147 -0
  306. package/engine/topologies/tilt/generators/index.star +126 -0
  307. package/engine/topologies/tilt/generators/infisical/README.md +424 -0
  308. package/engine/topologies/tilt/generators/infisical/examples.star +314 -0
  309. package/engine/topologies/tilt/generators/infisical/index.star +59 -0
  310. package/engine/topologies/tilt/generators/infisical/machine_identity.star +422 -0
  311. package/engine/topologies/tilt/generators/infisical/organization.star +536 -0
  312. package/engine/topologies/tilt/generators/infisical/path_manager.star +478 -0
  313. package/engine/topologies/tilt/generators/infisical/secrets_generator.star +422 -0
  314. package/engine/topologies/tilt/generators/nginx_conf.star +145 -0
  315. package/engine/topologies/tilt/generators/npmrc.star +132 -0
  316. package/engine/topologies/tilt/generators/tsconfig.star +25 -0
  317. package/engine/topologies/tilt/generators/typescript/backend_library_tsconfig.star +73 -0
  318. package/engine/topologies/tilt/generators/typescript/backend_tsconfig.star +137 -0
  319. package/engine/topologies/tilt/generators/typescript/common.star +9 -0
  320. package/engine/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +78 -0
  321. package/engine/topologies/tilt/generators/typescript/frontend_tsconfig.star +140 -0
  322. package/engine/topologies/tilt/generators/typescript/include.star +25 -0
  323. package/engine/topologies/tilt/generators/typescript/playwright_config.star +42 -0
  324. package/engine/topologies/tilt/generators/typescript/prisma_config.star +51 -0
  325. package/engine/topologies/tilt/generators/validators.star +868 -0
  326. package/engine/topologies/tilt/generators/vite/backend.star +80 -0
  327. package/engine/topologies/tilt/generators/vite/frameworks/lit.star +92 -0
  328. package/engine/topologies/tilt/generators/vite/frameworks/preact.star +94 -0
  329. package/engine/topologies/tilt/generators/vite/frameworks/qwik.star +94 -0
  330. package/engine/topologies/tilt/generators/vite/frameworks/react.star +128 -0
  331. package/engine/topologies/tilt/generators/vite/frameworks/solid.star +94 -0
  332. package/engine/topologies/tilt/generators/vite/frameworks/svelte.star +94 -0
  333. package/engine/topologies/tilt/generators/vite/frameworks/vanilla.star +92 -0
  334. package/engine/topologies/tilt/generators/vite/frameworks/vue.star +94 -0
  335. package/engine/topologies/tilt/generators/vite/frontend.star +153 -0
  336. package/engine/topologies/tilt/generators/vite/generators.star +45 -0
  337. package/engine/topologies/tilt/generators/vite/helpers.star +256 -0
  338. package/engine/topologies/tilt/generators/vite/library.star +67 -0
  339. package/engine/topologies/tilt/generators/vite/sdk.star +75 -0
  340. package/engine/topologies/tilt/generators/vite/templates.star +460 -0
  341. package/engine/topologies/tilt/generators/vite_config.star +24 -0
  342. package/engine/topologies/tilt/manifest/AGENTS.md +61 -0
  343. package/engine/topologies/tilt/manifest/README.md +679 -0
  344. package/engine/topologies/tilt/manifest/__init__.star +220 -0
  345. package/engine/topologies/tilt/manifest/constants.star +262 -0
  346. package/engine/topologies/tilt/manifest/errors.star +268 -0
  347. package/engine/topologies/tilt/manifest/integration.star +348 -0
  348. package/engine/topologies/tilt/manifest/json_to_yaml.py +61 -0
  349. package/engine/topologies/tilt/manifest/loader.star +239 -0
  350. package/engine/topologies/tilt/manifest/mapper.star +229 -0
  351. package/engine/topologies/tilt/manifest/parser.star +490 -0
  352. package/engine/topologies/tilt/manifest/schema.star +502 -0
  353. package/engine/topologies/tilt/manifest/tests/test_integration.star +278 -0
  354. package/engine/topologies/tilt/manifest/tests/test_loader_parser.star +475 -0
  355. package/engine/topologies/tilt/manifest/tests/test_manifest.star +319 -0
  356. package/engine/topologies/tilt/manifest/tests/test_validator.star +472 -0
  357. package/engine/topologies/tilt/manifest/validator.star +744 -0
  358. package/engine/topologies/tilt/manifest/yaml_to_json.py +20 -0
  359. package/engine/topologies/tilt/resources/AGENTS.md +71 -0
  360. package/engine/topologies/tilt/resources/build_concurrency.star +56 -0
  361. package/engine/topologies/tilt/resources/conditions.star +5 -0
  362. package/engine/topologies/tilt/resources/databases.star +246 -0
  363. package/engine/topologies/tilt/resources/declaration.star +5 -0
  364. package/engine/topologies/tilt/resources/deps.star +5 -0
  365. package/engine/topologies/tilt/resources/infra-loader.star +504 -0
  366. package/engine/topologies/tilt/resources/libs.star +32 -0
  367. package/engine/topologies/tilt/resources/libs_discovery.star +104 -0
  368. package/engine/topologies/tilt/resources/libs_paths.star +81 -0
  369. package/engine/topologies/tilt/resources/libs_resource_definition.star +153 -0
  370. package/engine/topologies/tilt/resources/libs_setup.star +166 -0
  371. package/engine/topologies/tilt/resources/libs_tsconfig.star +39 -0
  372. package/engine/topologies/tilt/resources/orchestrator/apply.star +79 -0
  373. package/engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +864 -0
  374. package/engine/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +90 -0
  375. package/engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +150 -0
  376. package/engine/topologies/tilt/resources/orchestrator/apply_resource_validation.star +38 -0
  377. package/engine/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +46 -0
  378. package/engine/topologies/tilt/resources/orchestrator/builders/typescript.star +193 -0
  379. package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +75 -0
  380. package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +23 -0
  381. package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +136 -0
  382. package/engine/topologies/tilt/resources/orchestrator/generators/env.star +219 -0
  383. package/engine/topologies/tilt/resources/orchestrator/generators/frontend.star +172 -0
  384. package/engine/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +577 -0
  385. package/engine/topologies/tilt/resources/orchestrator/helpers.star +35 -0
  386. package/engine/topologies/tilt/resources/orchestrator.star +56 -0
  387. package/engine/topologies/tilt/resources/ordering.star +5 -0
  388. package/engine/topologies/tilt/resources/shared-platform-postgres.star +30 -0
  389. package/engine/topologies/tilt/resources/triggers.star +5 -0
  390. package/engine/topologies/tilt/resources/watchers.star +304 -0
  391. package/engine/where-things-live.star +719 -0
  392. package/examples/tdk-example/LICENSE +21 -0
  393. package/examples/tdk-example/README.md +23 -0
  394. package/examples/tdk-example/TILT_SERVICE_DEFAULTS.star +42 -0
  395. package/examples/tdk-example/TILT_TECH_STACK.star +67 -0
  396. package/examples/tdk-example/Tiltfile +25 -0
  397. package/examples/tdk-example/services/platform/messaging/docker-compose.yml +26 -0
  398. package/examples/tdk-example/services/shop/orders-api/package.json +20 -0
  399. package/examples/tdk-example/services/shop/orders-api/service.json +14 -0
  400. package/examples/tdk-example/services/shop/orders-api/src/index.ts +81 -0
  401. package/examples/tdk-example/services/shop/orders-app/index.html +12 -0
  402. package/examples/tdk-example/services/shop/orders-app/package.json +23 -0
  403. package/examples/tdk-example/services/shop/orders-app/public/.gitkeep +0 -0
  404. package/examples/tdk-example/services/shop/orders-app/service.json +9 -0
  405. package/examples/tdk-example/services/shop/orders-app/src/main.tsx +9 -0
  406. package/examples/tdk-example/services/shop/orders-app/src/orders.tsx +67 -0
  407. package/examples/tdk-example/services/shop/orders-app/src/style.css +15 -0
  408. package/examples/tdk-example/services/shop/orders-worker/package.json +18 -0
  409. package/examples/tdk-example/services/shop/orders-worker/service.json +13 -0
  410. package/examples/tdk-example/services/shop/orders-worker/src/index.ts +33 -0
  411. package/ext/Tiltfile +66 -0
  412. package/ext/ide-components/README.md +221 -0
  413. package/ext/ide-components/code_viewer/server.py +208 -0
  414. package/ext/ide-components/config_inspector/server.py +1052 -0
  415. package/ext/ide-components/file_browser/server.py +287 -0
  416. package/ext/ide-components/shared/config_service.py +471 -0
  417. package/ext/ide-components/shared/file_utils.py +300 -0
  418. package/ext/ide-components/shared/http_utils.py +234 -0
  419. package/ext/ide-components/shared/static/styles.css +1334 -0
  420. package/ext/ide-components/shared/syntax_highlighter.py +142 -0
  421. package/ext/ide-components/shared/template_engine.py +125 -0
  422. package/ext/ide-components/shared/templates/base.html +121 -0
  423. package/ext/ide-components/shared/test_config_service.py +328 -0
  424. package/ext/ide-components/shared/tilt_integration.py +160 -0
  425. package/ext/ui-enhancements/cron-status-server.sh +51 -0
  426. package/ext/ui-enhancements/cron-status-tracker.sh +148 -0
  427. package/ext/ui-enhancements/extension.yaml +36 -0
  428. package/ext/ui-enhancements/tiltfile.py +101 -0
  429. package/ext/ui-enhancements/ui/cron-jobs-tab.css +396 -0
  430. package/ext/ui-enhancements/ui/help-panel.css +279 -0
  431. package/ext/ui-enhancements/ui/icons.css +125 -0
  432. package/ext/ui-enhancements/ui/tooltips.css +114 -0
  433. package/package.json +94 -4
  434. package/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +25 -0
  435. package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +466 -0
  436. package/shared-platform-engineering/docker-templates/install-deps.sh +154 -0
  437. package/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +14 -0
  438. package/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +58 -0
  439. package/specs/specs/TILT_SERVICE_DEFAULTS.star +207 -0
  440. package/specs/specs/TILT_TECH_STACK.star +161 -0
@@ -0,0 +1,362 @@
1
+ # AGENTS.md - Tilt Discovery System
2
+
3
+ ## Purpose
4
+
5
+ This folder contains the **service discovery system** for Flisk's Tilt infrastructure. It scans the repository for service manifests and creates Tilt resources.
6
+
7
+ ## Architecture: Two-Layer Scanning with Validation
8
+
9
+ ```
10
+ ┌─────────────────────────────────────────────────────────────┐
11
+ │ DISCOVERY SYSTEM │
12
+ ├─────────────────────────────────────────────────────────────┤
13
+ │ │
14
+ │ LAYER 1: AUTO DISCOVERY (Orchestrator) │
15
+ │ ┌─────────────────────────────────────────────────────┐ │
16
+ │ │ discovery_orchestrator.star │ │
17
+ │ │ ├── Orchestrates the discovery process │ │
18
+ │ │ ├── Multi-root scanning (Phase 2) │ │
19
+ │ │ ├── Root overlap validation (Phase 2) │ │
20
+ │ │ ├── Loads and validates manifests (Phase 1.5) │ │
21
+ │ │ └── Logs validation warnings with file paths │ │
22
+ │ └─────────────────────────────────────────────────────┘ │
23
+ │ │ │
24
+ │ ▼ │
25
+ │ LAYER 2: MANUAL SCANNER (Folder-Specific) │
26
+ │ ┌─────────────────────────────────────────────────────┐ │
27
+ │ │ json_manifest_scanner.star │ │
28
+ │ │ ├── Low-level shell `find` command │ │
29
+ │ │ ├── Scans one root per call (reused for Phase 2) │ │
30
+ │ │ └── Returns list of manifest paths │ │
31
+ │ └─────────────────────────────────────────────────────┘ │
32
+ │ │ │
33
+ │ ▼ │
34
+ │ LAYER 3: VALIDATION (Phase 1.5) │
35
+ │ ┌─────────────────────────────────────────────────────┐ │
36
+ │ │ validation.star │ │
37
+ │ │ ├── validate(manifest) → returns issues[] │ │
38
+ │ │ ├── Validates: appName, appType, domain, port │ │
39
+ │ │ ├── Validates: features, dependsOn │ │
40
+ │ │ └── Lenient mode: warns but continues discovery │ │
41
+ │ └─────────────────────────────────────────────────────┘ │
42
+ │ │ │
43
+ │ ▼ │
44
+ │ LAYER 4: REGISTRY (Service Registry) │
45
+ │ ┌─────────────────────────────────────────────────────┐ │
46
+ │ │ registry.star │ │
47
+ │ │ ├── get_app_resources() │ │
48
+ │ │ ├── get_resource_by_name(name) │ │
49
+ │ │ └── Exports to autogenerated files │ │
50
+ │ └─────────────────────────────────────────────────────┘ │
51
+ │ │
52
+ └─────────────────────────────────────────────────────────────┘
53
+ ```
54
+
55
+ ## Phase 2: Universal Discovery (Implemented)
56
+
57
+ **Status:** ✅ **IMPLEMENTED** - Multi-root discovery with validation and explicit domain extraction
58
+
59
+ ### What Changed
60
+
61
+ Phase 2 extends discovery from single-root (`services/product/`) to multi-root scanning:
62
+
63
+ **Scan Roots Configuration (`constants.star`):**
64
+ ```starlark
65
+ DISCOVERY_SCAN_ROOTS = [
66
+ RESOURCES_ROOT, # services/product/*/*/
67
+ "../../../../services/platform", # services/platform/*/*/
68
+ "../../../../shared-product-engineering", # shared-product-engineering/*/
69
+ "../../../../cli-platform-engineering", # cli-platform-engineering/*/
70
+ ]
71
+ ```
72
+
73
+ **Domain Extraction Patterns (`SCAN_ROOT_PATTERNS`):**
74
+ ```starlark
75
+ SCAN_ROOT_PATTERNS = {
76
+ RESOURCES_ROOT: {"domain_depth": -3}, # Domain-grouped (product)
77
+ "../../../../services/platform": {"domain_depth": -2}, # Flat
78
+ # ... etc
79
+ }
80
+ ```
81
+
82
+ **Performance Guardrails:**
83
+ - `MAX_SCAN_TIMEOUT_MS = 5000` - Warn if scan takes >5 seconds
84
+ - `MAX_MANIFESTS_PER_ROOT = 50` - Warn if root has >50 manifests
85
+
86
+ ### Architecture Changes
87
+
88
+ Phase 2 adds two key features to the orchestrator:
89
+
90
+ 1. **Root Overlap Validation** - Prevents duplicate scanning from misconfiguration
91
+ ```starlark
92
+ def _validate_scan_roots(roots):
93
+ # Warns if one root is subdirectory of another
94
+ ```
95
+
96
+ 2. **Multi-Root Scanning** - Iterates over all configured roots
97
+ ```starlark
98
+ for root in DISCOVERY_SCAN_ROOTS:
99
+ paths = discover_json_manifests(root)
100
+ # ... deduplicate and process
101
+ ```
102
+
103
+ 3. **Explicit Domain Extraction** - Uses configured patterns instead of hardcoded assumptions
104
+ ```starlark
105
+ pattern = SCAN_ROOT_PATTERNS.get(matching_root, {"domain_depth": -2})
106
+ domain = path_parts[pattern["domain_depth"]]
107
+ ```
108
+
109
+ ### Expected Service Counts
110
+
111
+ | Root | Expected Manifests | Structure |
112
+ |------|---------------------|-----------|
113
+ | `services/product/` | ~26 | Domain-grouped (`{domain}/{service}/`) |
114
+ | `services/platform/` | ~9 | Flat (`{service}/`) |
115
+ | `shared-product-engineering/` | ~3 | Flat (`{service}/`) |
116
+ | `cli-platform-engineering/` | ~1 | Flat (`{service}/`) |
117
+ | **Total** | **~39** | - |
118
+
119
+ ### "Pool of Candidates" Behavior
120
+
121
+ Phase 2 discovers **all manifests** from all scan roots, creating a "pool of candidates." Not every candidate will be ready to run, and that's expected:
122
+
123
+ - Some platform services are works-in-progress
124
+ - Some services may lack complete infrastructure (Dockerfile, configs)
125
+ - Tilt will show clear error messages for services with missing infrastructure
126
+ - Developers can see what's available vs what's broken in Tilt UI
127
+
128
+ **This is intentional** - Starlark has limited filesystem capabilities for pre-flight validation. Services fail naturally at build/orchestration time with clear Tilt error messages.
129
+
130
+ ### Example Phase 2 Discovery Output
131
+
132
+ ```
133
+ 📄 FIRST PASS: Loading services from JSON manifests...
134
+ 📁 Scanned 26 manifests from ../../../../services/product
135
+ 📁 Scanned 9 manifests from ../../../../services/platform
136
+ 📁 Scanned 3 manifests from ../../../../shared-product-engineering
137
+ 📁 Scanned 1 manifests from ../../../../cli-platform-engineering
138
+ ⚠️ Validation: services/product/order/management/manifest.json: appName too short
139
+ ✅ Discovery complete: 38/39 manifests valid
140
+ ⚠️ 1 manifest(s) with 1 validation warning(s)
141
+ ```
142
+
143
+ ### Rollback to Phase 1
144
+
145
+ If issues arise with Phase 2:
146
+
147
+ ```bash
148
+ # Restore Phase 1 behavior
149
+ tilt down
150
+ git checkout discovery/constants.star
151
+ git checkout discovery/discovery_orchestrator.star
152
+ tilt up
153
+ ```
154
+
155
+ This reverts to single-root scanning of `services/product/` only.
156
+
157
+ ### Troubleshooting Phase 2
158
+
159
+ **Issue: Warning about overlapping roots**
160
+ ```
161
+ ⚠️ Warning: ../../../../services/product/user is subdirectory of ../../../../services/product
162
+ ```
163
+ **Solution:** Check `DISCOVERY_SCAN_ROOTS` in `constants.star` - one root should not be inside another.
164
+
165
+ **Issue: Large root warning**
166
+ ```
167
+ ⚠️ Large root: ../../../../services/product has 60 manifests (max: 50)
168
+ ```
169
+ **Solution:** Either increase `MAX_MANIFESTS_PER_ROOT` or verify the root path is correct.
170
+
171
+ **Issue: New services not appearing in Tilt UI**
172
+ **Solution:**
173
+ 1. Check manifest exists in new root: `find services/platform -name "*.manifest.json"`
174
+ 2. Verify manifest is valid JSON
175
+ 3. Check Tilt logs: `tilt logs | grep "Scanned"`
176
+ 4. Verify domain extraction: Check Tilt UI grouping
177
+
178
+ ---
179
+
180
+ ## Phase 1.5: Validation Integration (Complete)
181
+
182
+ **Status:** ✅ Complete - Validation integrated into discovery flow
183
+
184
+ ### Validation Behavior
185
+
186
+ The discovery system now validates all manifests during the scan process:
187
+
188
+ 1. **When:** After `ManifestLoader.load_from_file()` successfully loads a manifest
189
+ 2. **What:** Validates required fields (appName, appType, domain, port, features, replicas)
190
+ 3. **How:** Lenient mode - logs warnings but continues discovery
191
+ 4. **Summary:** Discovery completion shows validation stats
192
+
193
+ ### Validation Rules
194
+
195
+ | Field | Validation |
196
+ |-------|------------|
197
+ | `appName` | Required, 3-64 chars, kebab-case (lowercase, numbers, hyphens) |
198
+ | `appType` | Required, must be: backend, frontend, library, migrator, sdk, worker, bring-your-own |
199
+ | `domain` | Required, must be a valid domain from `constants.star` |
200
+ | `port` | Required, integer 3000-9999, appType-specific ranges enforced |
201
+ | `features` | Optional, each must be a valid feature from `constants.star` |
202
+ | `replicas` | Optional, integer 1-10 |
203
+
204
+ ### Example Discovery Output
205
+
206
+ ```
207
+ 📄 FIRST PASS: Loading services from JSON manifests...
208
+ ⚠️ Validation: services/product/order/management/manifest.json: appName too short: 'ab'. Minimum 3 characters
209
+ ⚠️ Validation: services/product/user/provider/manifest.json: Invalid appType: microservice. Must be one of: backend, frontend...
210
+ ✅ Discovery complete: 24/26 manifests valid
211
+ ⚠️ 2 manifest(s) with 3 validation warning(s)
212
+ ```
213
+
214
+ ## Troubleshooting
215
+
216
+ ### Validation Warnings
217
+
218
+ **Issue:** Manifest shows validation warnings but service still loads
219
+ ```
220
+ ⚠️ Validation: services/product/.../manifest.json: appName too short: 'x'
221
+ ```
222
+
223
+ **Solution:** Validation runs in lenient mode. Fix the warning to ensure future compatibility:
224
+ - Check manifest follows all validation rules above
225
+ - Run `tilt logs` to see all validation issues for a manifest
226
+ - View the manifest file path in the warning message
227
+
228
+ ### Discovery Not Finding Services
229
+
230
+ **Issue:** Services not appearing in Tilt UI
231
+
232
+ **Solution:**
233
+ 1. Check manifest file exists: `services/product/{domain}/{service}/manifest.json`
234
+ 2. Verify JSON is valid: `cat manifest.json | python -m json.tool`
235
+ 3. Check for validation errors in `tilt logs`
236
+ 4. Ensure domain is not in `OUT_OF_SCOPE_DOMAINS` (see `spec.master`)
237
+
238
+ ### Validation Errors in Strict Mode
239
+
240
+ **Note:** Currently validation runs in **lenient mode** (warnings only). If strict mode is needed:
241
+ - Modify `discovery_orchestrator.star` to `continue` on validation issues
242
+ - Or add `STRICT_VALIDATION = True` config option
243
+
244
+ ---
245
+
246
+ ## Key Files
247
+
248
+ ### Layer 1: Auto Discovery Orchestrator
249
+ - **`discovery_orchestrator.star`** - Main orchestrator
250
+ - `initialize_discovery(cache, second_pass=False)` - Load all services
251
+ - `_scan_services()` - Scan and normalize all manifests
252
+ - Calls manual scanner, processes results
253
+
254
+ ### Layer 2: Manual Folder-Specific Scanner
255
+ - **`json_manifest_scanner.star`** - Low-level JSON manifest finder
256
+ - `discover_json_manifests(root_path)` - Uses shell `find` command
257
+ - Folder-specific: scans one root at a time
258
+ - Returns list of manifest file paths
259
+
260
+ ### Layer 3: Service Registry
261
+ - **`registry.star`** - Service registry and export
262
+ - `get_app_resources()` - Get all discovered services
263
+ - `get_resource_by_name(name)` - Get specific service
264
+ - `generate_product_snapshot_topology()` - Export to autogenerated files
265
+
266
+ ### Configuration & Constants
267
+ - **`constants.star`** - Paths and constants
268
+ - `RESOURCES_ROOT` - "../../../../services/product"
269
+ - `DISCOVERY_SCAN_ROOTS` - Array of scan roots (Phase 2)
270
+ - `SCAN_ROOT_PATTERNS` - Domain extraction patterns per root (Phase 2)
271
+ - `MAX_SCAN_TIMEOUT_MS` - Performance guardrail (Phase 2)
272
+ - `MAX_MANIFESTS_PER_ROOT` - Performance guardrail (Phase 2)
273
+ - `PRODUCT_SNAPSHOT_DIR` - Where to write autogenerated files
274
+
275
+ ### Supporting Files
276
+ - **`config.star`** - Global configuration loading
277
+ - **`libraries.star`** - Library autodiscovery (DDD libs, platform libs)
278
+ - **`validation.star`** - Manifest validation rules
279
+ - **`loading.star`** - High-level loading wrapper
280
+ - **`normalization.star`** - Manifest normalization
281
+
282
+ ### Subfolder: manifest/
283
+ **Note:** Discovery-specific manifest logic (not the general `../manifest/`)
284
+ - **`manifest/loading.star`** - Default sync patterns, Prisma checks
285
+ - **`manifest/normalize.star`** - Manifest normalization and discovery
286
+ - **`manifest/validation.star`** - Domain/app type validation
287
+
288
+ ## Common Tasks
289
+
290
+ ### Get all services (Auto Discovery)
291
+ ```starlark
292
+ load("./registry.star", "get_app_resources")
293
+ services = get_app_resources()
294
+ ```
295
+
296
+ ### Get service by name
297
+ ```starlark
298
+ load("./registry.star", "get_resource_by_name")
299
+ svc = get_resource_by_name("order-management-backend")
300
+ ```
301
+
302
+ ### Manual scan for manifests (Manual Scanner)
303
+ ```starlark
304
+ load("./json_manifest_scanner.star", "discover_json_manifests")
305
+ paths = discover_json_manifests("../../../../services/product")
306
+ # Returns: ["../../../../services/product/.../manifest.json", ...]
307
+ ```
308
+
309
+ ### Initialize full discovery (Orchestrator)
310
+ ```starlark
311
+ load("./discovery_orchestrator.star", "initialize_discovery")
312
+ _DISCOVERY_CACHE = {"initialized": False}
313
+ initialize_discovery(_DISCOVERY_CACHE)
314
+ ```
315
+
316
+ ## Two-Pass Discovery Process
317
+
318
+ **Pass 1:** Scan JSON manifests and normalize
319
+ 1. `discovery_orchestrator.star` calls `json_manifest_scanner.star`
320
+ 2. Scanner returns list of manifest paths
321
+ 3. Orchestrator loads and normalizes each manifest
322
+ 4. Services stored in cache
323
+
324
+ **Pass 2:** Export to autogenerated Tilt resources
325
+ 1. `registry.star` reads from discovery cache
326
+ 2. Generates `.tdk/.tdk-out/product_autogenerated_*/` files
327
+ 3. Creates Tilt resources from generated files
328
+
329
+ ## Important Notes
330
+
331
+ 1. **Clear Separation:**
332
+ - **Manual scanner:** Low-level, folder-specific, reusable
333
+ - **Auto orchestrator:** High-level, coordinates scanning
334
+ - **Registry:** Consumer of discovery results
335
+
336
+ 2. **Phase 1 Status:** ✅ Complete
337
+ - Clean separation between scanner and orchestrator
338
+ - Good naming: `json_manifest_scanner` + `discovery_orchestrator`
339
+
340
+ 3. **Phase 1.5 Status:** ✅ Complete
341
+ - Validation integrated into discovery flow
342
+ - Per-service validation with file paths in error messages
343
+ - Discovery summary shows validation stats
344
+ - Backward compatible (lenient mode)
345
+
346
+ 4. **Phase 2 Status:** ✅ **IMPLEMENTED**
347
+ - Multi-root scanning active (`DISCOVERY_SCAN_ROOTS`)
348
+ - Scans 4 roots: services/product, services/platform, shared-*, cli-*
349
+ - Root overlap validation prevents misconfiguration
350
+ - Explicit domain extraction patterns (`SCAN_ROOT_PATTERNS`)
351
+ - Performance guardrails (timeouts, manifest limits)
352
+ - "Pool of candidates" approach - all manifests discovered, some may fail at build time
353
+
354
+ 4. **Autogenerated Files:**
355
+ - `registry.star` writes to `product_autogenerated_resource_manifests/`
356
+ - These become Tilt resources
357
+
358
+ ## Dependencies
359
+
360
+ - `../manifest/` - General manifest parsing (constants, loader, parser)
361
+ - `../../platform/docker/` - Docker constants
362
+ - `../../../../spec.master` - Global defaults