@flisk-sh/flisk 0.0.0-stage → 1.3.190

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-CLCUIDBH.js +510 -0
  170. package/cli/dist-bundle/cli.js +2017 -0
  171. package/cli/dist-bundle/cold-preflight-SY26O2IG.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,25 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # =============================================================================
4
+ # Entry point for modular TSConfig provider
5
+ # =============================================================================
6
+
7
+ load("./typescript/backend_tsconfig.star", "generate_backend_tsconfig")
8
+ load("./typescript/frontend_tsconfig.star", "generate_frontend_tsconfig")
9
+ load("./typescript/prisma_config.star", "generate_prisma_config")
10
+ load("./typescript/frontend_library_tsconfig.star", "generate_frontend_library_tsconfig")
11
+ load("./typescript/backend_library_tsconfig.star", "generate_backend_library_tsconfig")
12
+ load("./typescript/playwright_config.star", "generate_playwright_config")
13
+
14
+ # =============================================================================
15
+ # TSConfig Struct - Public API
16
+ # =============================================================================
17
+
18
+ TSConfig = struct(
19
+ backend = generate_backend_tsconfig,
20
+ frontend = generate_frontend_tsconfig,
21
+ library_backend = generate_backend_library_tsconfig,
22
+ library_frontend = generate_frontend_library_tsconfig,
23
+ prisma = generate_prisma_config,
24
+ playwright = generate_playwright_config,
25
+ )
@@ -0,0 +1,73 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # === INLINED CONSTANTS for pure extension loading ===
4
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
5
+ # === END INLINED CONSTANTS ===
6
+
7
+
8
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
9
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
10
+
11
+
12
+ # =============================================================================
13
+ # Backend Library TSConfig Generator (no JSX)
14
+ # =============================================================================
15
+
16
+ def generate_backend_library_tsconfig(resource_path, write_fn, internal_deps=None, is_docker=True):
17
+ """
18
+ Generate tsconfig for backend shared libraries (no JSX).
19
+
20
+ Args:
21
+ resource_path: Path to the resource directory
22
+ write_fn: Write function for file output
23
+ internal_deps: Optional internal dependencies map
24
+ is_docker: Whether generating for Docker context
25
+
26
+ Returns:
27
+ dict: Generated tsconfig content
28
+ """
29
+ base_url = "." if is_docker else ".."
30
+ out_dir = "./dist" if is_docker else "../dist"
31
+ include_src = "src" if is_docker else "../src"
32
+ exclude_prefix = "" if is_docker else "../"
33
+ paths = {
34
+ "@/*": ["./src/*"],
35
+ "@application/*": ["./src/application/*"],
36
+ "@domain/*": ["./src/domain/*"],
37
+ "@infrastructure/*": ["./src/infrastructure/*"],
38
+ "@presentation/*": ["./src/presentation/*"],
39
+ }
40
+ # NOTE: Do not add internal workspace path mappings for libraries.
41
+ # These mappings pull external sources into the program and break
42
+ # library builds that compile with `--rootDir src`.
43
+ content = {
44
+ "compilerOptions": {
45
+ "target": "ES2022",
46
+ "module": "ES2022",
47
+ "moduleResolution": "node",
48
+ "baseUrl": base_url,
49
+ "declaration": True,
50
+ "declarationMap": True,
51
+ "outDir": out_dir,
52
+ "paths": paths,
53
+ "skipLibCheck": True,
54
+ "strict": True,
55
+ "emitDecoratorMetadata": True,
56
+ "experimentalDecorators": True,
57
+ "esModuleInterop": True,
58
+ "forceConsistentCasingInFileNames": True
59
+ },
60
+ "exclude": [
61
+ exclude_prefix + "node_modules",
62
+ exclude_prefix + "dist",
63
+ exclude_prefix + "__tests__/**/*",
64
+ exclude_prefix + "**/*.test.ts",
65
+ exclude_prefix + "**/*.test.tsx",
66
+ exclude_prefix + "**/tests/**",
67
+ ],
68
+ "include": [include_src + "/**/*"]
69
+ }
70
+ if is_docker:
71
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_docker'], Utils.encode_json(content))
72
+ else:
73
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_local'], Utils.encode_json(content))
@@ -0,0 +1,137 @@
1
+ # Copyright (c) 2026 Flisk contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # === INLINED CONSTANTS for pure extension loading ===
4
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
5
+ # === END INLINED CONSTANTS ===
6
+
7
+
8
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
9
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
10
+
11
+
12
+ # =============================================================================
13
+ # Backend TSConfig Generator
14
+ # =============================================================================
15
+
16
+ def generate_backend_tsconfig(resource_path, prisma_path, write_fn, internal_deps=None, is_docker=True, features=None):
17
+ """
18
+ Generate tsconfig for backend services.
19
+
20
+ Args:
21
+ resource_path: Path to the service directory
22
+ prisma_path: Path to Prisma client
23
+ write_fn: Write function for file output
24
+ internal_deps: Optional internal dependencies map
25
+ is_docker: Whether generating for Docker context
26
+ features: Resource's service.json features: [] array (for the premium
27
+ "ddd" feature - see generate_backend_path_aliases() in vite/helpers.star)
28
+ """
29
+ # When tsconfig is in .autogenerated/ folder, paths are relative to parent
30
+ paths = {
31
+ "@/*": ["../src/*"],
32
+ "@prisma/client": [prisma_path]
33
+ }
34
+ # DDD is premium - same gate as generate_backend_path_aliases() in vite/helpers.star.
35
+ ddd_enabled = features and 'ddd' in features and os.environ.get('TDK_LICENSE_KEY', '') != ''
36
+ if ddd_enabled:
37
+ paths["@application/*"] = ["../src/application/*"]
38
+ paths["@domain/*"] = ["../src/domain/*"]
39
+ paths["@infrastructure/*"] = ["../src/infrastructure/*"]
40
+ paths["@presentation/*"] = ["../src/presentation/*"]
41
+ root_dir = "../src"
42
+ if internal_deps and not is_docker:
43
+ sorted_deps = sorted(internal_deps.items())
44
+ depth = len([segment for segment in resource_path.split('/') if segment])
45
+ rel_to_root = "../" * depth
46
+ for pkg_name, src_path in sorted_deps:
47
+ paths[pkg_name] = [rel_to_root + src_path + "/src"]
48
+ paths[pkg_name + "/*"] = [rel_to_root + src_path + "/src/*"]
49
+ compiler_options = {
50
+ "target": "ES2022",
51
+ "module": "ES2022",
52
+ "moduleResolution": "bundler",
53
+ "paths": paths,
54
+ "skipLibCheck": True,
55
+ "strict": True,
56
+ "experimentalDecorators": True,
57
+ "emitDecoratorMetadata": True,
58
+ "esModuleInterop": True,
59
+ "forceConsistentCasingInFileNames": True,
60
+ "resolveJsonModule": True,
61
+ "allowSyntheticDefaultImports": True,
62
+ "outDir": "../dist",
63
+ "rootDir": root_dir,
64
+ # "bun" (not "node"): @types/bun is a direct devDependency so it's always
65
+ # linked at the top level under any linker mode (including Docker's
66
+ # isolated linker), while @types/node is only a transitive dependency of
67
+ # bun-types and isn't hoisted to the top level under the isolated linker -
68
+ # "types": ["node"] fails to resolve there even though it works locally.
69
+ "types": ["node"],
70
+ }
71
+ content = {
72
+ "compilerOptions": compiler_options,
73
+ "exclude": [
74
+ "node_modules",
75
+ "dist",
76
+ "../__tests__/**/*",
77
+ "../**/*.test.ts",
78
+ "../**/tests/**/*",
79
+ "../src/legacy/**/*",
80
+ "../**/*.steps.ts",
81
+ "../**/*.spec.ts"
82
+ ],
83
+ "include": ["../src/**/*"]
84
+ }
85
+ if is_docker:
86
+ # Docker tsconfig is copied to service root, so paths are relative to root
87
+ docker_paths = {
88
+ "@/*": ["./src/*"],
89
+ "@application/*": ["./src/application/*"],
90
+ "@domain/*": ["./src/domain/*"],
91
+ "@infrastructure/*": ["./src/infrastructure/*"],
92
+ "@presentation/*": ["./src/presentation/*"],
93
+ "@prisma/client": [prisma_path]
94
+ }
95
+ docker_root_dir = "./src"
96
+ if internal_deps:
97
+ sorted_deps = sorted(internal_deps.items())
98
+ depth = len([segment for segment in resource_path.split('/') if segment])
99
+ rel_to_root = "../" * depth
100
+ for pkg_name, src_path in sorted_deps:
101
+ docker_paths[pkg_name] = [rel_to_root + src_path + "/src"]
102
+ docker_paths[pkg_name + "/*"] = [rel_to_root + src_path + "/src/*"]
103
+ docker_compiler_options = {
104
+ "target": "ES2022",
105
+ "module": "ES2022",
106
+ "moduleResolution": "bundler",
107
+ "paths": docker_paths,
108
+ "skipLibCheck": True,
109
+ "strict": True,
110
+ "experimentalDecorators": True,
111
+ "emitDecoratorMetadata": True,
112
+ "esModuleInterop": True,
113
+ "forceConsistentCasingInFileNames": True,
114
+ "resolveJsonModule": True,
115
+ "allowSyntheticDefaultImports": True,
116
+ "outDir": "./dist",
117
+ "rootDir": docker_root_dir,
118
+ # See note above: "bun" resolves under the isolated linker, "node" doesn't.
119
+ "types": ["node"],
120
+ }
121
+ docker_content = {
122
+ "compilerOptions": docker_compiler_options,
123
+ "exclude": [
124
+ "node_modules",
125
+ "dist",
126
+ "./__tests__/**/*",
127
+ "./**/*.test.ts",
128
+ "./**/tests/**/*",
129
+ "./src/legacy/**/*",
130
+ "./**/*.steps.ts",
131
+ "./**/*.spec.ts"
132
+ ],
133
+ "include": ["./src/**/*"]
134
+ }
135
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_docker'], Utils.encode_json(docker_content))
136
+ else:
137
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_local'], Utils.encode_json(content))
@@ -0,0 +1,9 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # =============================================================================
4
+ # Common helpers/constants for TSConfig providers
5
+ # =============================================================================
6
+
7
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
8
+
9
+ # Add any shared helpers/constants here as needed.
@@ -0,0 +1,78 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # === INLINED CONSTANTS for pure extension loading ===
4
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
5
+ # === END INLINED CONSTANTS ===
6
+
7
+
8
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
9
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
10
+
11
+
12
+ # =============================================================================
13
+ # Frontend Library TSConfig Generator (with JSX)
14
+ # =============================================================================
15
+
16
+ def generate_frontend_library_tsconfig(resource_path, write_fn, internal_deps=None, is_docker=True):
17
+ """
18
+ Generate tsconfig for frontend shared libraries (with JSX support).
19
+
20
+ Args:
21
+ resource_path: Path to the resource directory
22
+ write_fn: Write function for file output
23
+ internal_deps: Optional internal dependencies map
24
+ is_docker: Whether generating for Docker context
25
+
26
+ Returns:
27
+ dict: Generated tsconfig content
28
+ """
29
+ base_url = "." if is_docker else ".."
30
+ out_dir = "./dist" if is_docker else "../dist"
31
+ include_src = "src" if is_docker else "../src"
32
+ exclude_prefix = "" if is_docker else "../"
33
+ paths = {
34
+ "@/*": ["./src/*"],
35
+ "@application/*": ["./src/application/*"],
36
+ "@domain/*": ["./src/domain/*"],
37
+ "@infrastructure/*": ["./src/infrastructure/*"],
38
+ "@presentation/*": ["./src/presentation/*"],
39
+ }
40
+ # NOTE: Do not add internal workspace path mappings for libraries.
41
+ # These mappings pull external sources into the program and break
42
+ # library builds that compile with `--rootDir src`.
43
+ content = {
44
+ "compilerOptions": {
45
+ "target": "ES2022",
46
+ "module": "ESNext",
47
+ "moduleResolution": "bundler",
48
+ "lib": ["DOM", "DOM.Iterable", "ESNext"],
49
+ "baseUrl": base_url,
50
+ "outDir": out_dir,
51
+ "rootDir": "src" if is_docker else "../src",
52
+ "paths": paths,
53
+ "skipLibCheck": True,
54
+ "strict": True,
55
+ "emitDecoratorMetadata": True,
56
+ "experimentalDecorators": True,
57
+ "esModuleInterop": True,
58
+ "forceConsistentCasingInFileNames": True,
59
+ "jsx": "react-jsx",
60
+ "allowSyntheticDefaultImports": True,
61
+ "resolveJsonModule": True
62
+ },
63
+ "exclude": [
64
+ exclude_prefix + "node_modules",
65
+ exclude_prefix + "dist",
66
+ exclude_prefix + "__tests__/**/*",
67
+ exclude_prefix + "**/*.test.ts",
68
+ exclude_prefix + "**/*.test.tsx",
69
+ exclude_prefix + "**/tests/**",
70
+ exclude_prefix + "**/*.stories.ts",
71
+ exclude_prefix + "**/*.stories.tsx",
72
+ ],
73
+ "include": [include_src + "/**/*", include_src + "/**/*.tsx"]
74
+ }
75
+ if is_docker:
76
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_docker'], Utils.encode_json(content))
77
+ else:
78
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_local'], Utils.encode_json(content))
@@ -0,0 +1,140 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # === INLINED CONSTANTS for pure extension loading ===
4
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
5
+ # === END INLINED CONSTANTS ===
6
+
7
+
8
+ load("../../common/utils_debug.star", "debug_log")
9
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
10
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
11
+
12
+
13
+ # Check if verbose mode is enabled
14
+ _is_verbose = os.environ.get('TILT_LOG_LEVEL') == 'verbose'
15
+
16
+ # Module loaded - only show in verbose mode
17
+ if _is_verbose:
18
+ print("🔥 frontend_tsconfig.star MODULE LOADED")
19
+
20
+ # =============================================================================
21
+ # Frontend TSConfig Generator
22
+ # =============================================================================
23
+
24
+ def generate_frontend_tsconfig(resource_path, write_fn, internal_deps=None, is_docker=True, framework='react'):
25
+ """
26
+ Generate tsconfig for frontend services.
27
+
28
+ Args:
29
+ resource_path: Path to the service directory
30
+ write_fn: Write function for file output
31
+ internal_deps: Optional internal dependencies map
32
+ is_docker: Whether generating for Docker context
33
+ framework: Frontend framework id; omitted in legacy manifests means React
34
+ """
35
+ # Check verbose mode
36
+ is_verbose = os.environ.get('TILT_LOG_LEVEL') == 'verbose'
37
+
38
+ # DEBUG: Only print when function is called in verbose mode
39
+ if is_verbose:
40
+ print("🎯 TSConfig.frontend called: service={}, is_docker={}, has_internal_deps={}".format(
41
+ resource_path,
42
+ is_docker,
43
+ internal_deps != None
44
+ ))
45
+ # Local dev tsconfig lives in .autogenerated/, so "src" etc. are one level up (../src).
46
+ # The Docker-variant tsconfig is written to the same .autogenerated/ path on disk, but the
47
+ # Dockerfile COPYs it to the image's app root as ./tsconfig.json (sibling of ./src, not
48
+ # nested under .autogenerated/) - so its own paths must be relative to that root instead,
49
+ # or tsc reports "No inputs were found" because it looks one directory too high.
50
+ src_prefix = "./" if is_docker else "../"
51
+ paths = {
52
+ "@/*": [src_prefix + "src/*"],
53
+ "@/autogenerated/*": ["./.autogenerated/*"]
54
+ }
55
+ include_paths = [src_prefix + "src/**/*"]
56
+
57
+ # =============================================================================
58
+ # CRITICAL FIX: Only add path aliases for internal deps in LOCAL builds
59
+ # =============================================================================
60
+ # In Docker builds, these path aliases cause "Module not found" errors
61
+ # because the source files aren't copied to the Docker context.
62
+ #
63
+ # Docker builds should resolve from node_modules instead.
64
+ # =============================================================================
65
+
66
+ if internal_deps and not is_docker:
67
+ # LOCAL BUILD: Can use path aliases to source for faster development
68
+ sorted_deps = sorted(internal_deps.items())
69
+ for pkg_name, src_path in sorted_deps:
70
+ depth = len([segment for segment in resource_path.split('/') if segment])
71
+ rel_to_root = "../" * depth
72
+ paths[pkg_name] = [rel_to_root + src_path + "/src"]
73
+ paths[pkg_name + "/*"] = [rel_to_root + src_path + "/src/*"]
74
+
75
+ # If is_docker=True and internal_deps exist, warn about it
76
+ if internal_deps and is_docker:
77
+ if is_verbose:
78
+ print("📝 Note: Excluding {} path aliases from Docker tsconfig for {}".format(
79
+ len(internal_deps),
80
+ resource_path
81
+ ))
82
+ print(" Docker build will resolve @{npm_scope}/* from node_modules")
83
+ if framework not in ['react', 'vue', 'svelte', 'preact', 'lit', 'solid', 'qwik', 'vanilla', 'tanstack-router']:
84
+ fail("Unknown frontend framework for TypeScript generation: " + str(framework))
85
+
86
+ compiler_options = {
87
+ "target": "ES2022",
88
+ "module": "ES2022",
89
+ "moduleResolution": "bundler",
90
+ "lib": ["dom", "dom.iterable", "esnext"],
91
+ "paths": paths,
92
+ "skipLibCheck": True,
93
+ "strict": True,
94
+ "esModuleInterop": True,
95
+ "allowSyntheticDefaultImports": True,
96
+ # "bun" (not "node"): matches backend_tsconfig.star - @types/bun is a direct
97
+ # devDependency so it's always linked at the top level under any linker mode
98
+ # (including Docker's isolated linker), while @types/node (when only pulled in
99
+ # transitively, e.g. via bun-types) isn't hoisted under the isolated linker and
100
+ # "types": ["node"] fails to resolve there even though it works locally.
101
+ "types": ["node"],
102
+ }
103
+ if framework == 'react':
104
+ compiler_options['jsx'] = 'react-jsx'
105
+ elif framework == 'tanstack-router':
106
+ compiler_options['jsx'] = 'react-jsx'
107
+ elif framework == 'preact':
108
+ compiler_options['jsx'] = 'react-jsx'
109
+ compiler_options['jsxImportSource'] = 'preact'
110
+ elif framework == 'qwik':
111
+ compiler_options['jsx'] = 'react-jsx'
112
+ compiler_options['jsxImportSource'] = '@builder.io/qwik'
113
+ elif framework == 'solid':
114
+ compiler_options['jsx'] = 'preserve'
115
+ compiler_options['jsxImportSource'] = 'solid-js'
116
+
117
+ content = {
118
+ "compilerOptions": compiler_options,
119
+ "exclude": [
120
+ "node_modules",
121
+ "dist",
122
+ src_prefix + "__tests__/**/*",
123
+ src_prefix + "**/*.test.ts",
124
+ src_prefix + "**/tests/**/*",
125
+ src_prefix + "**/*.steps.ts",
126
+ src_prefix + "**/*.spec.ts"
127
+ ],
128
+ "include": include_paths
129
+ }
130
+ if is_docker:
131
+ output_path = resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_docker']
132
+ debug_log("📝 Writing Docker tsconfig to: {}".format(output_path))
133
+ write_fn(output_path, Utils.encode_json(content))
134
+ debug_log("📝 Docker tsconfig write complete")
135
+ else:
136
+ output_path = resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_local']
137
+ debug_log("📝 Writing Local tsconfig to: {}".format(output_path))
138
+ write_fn(output_path, Utils.encode_json(content))
139
+
140
+ DEBUG = {}
@@ -0,0 +1,25 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # =============================================================================
4
+ # Entry point for modular TSConfig provider
5
+ # =============================================================================
6
+
7
+ load("./backend_tsconfig.star", "generate_backend_tsconfig")
8
+ load("./frontend_tsconfig.star", "generate_frontend_tsconfig")
9
+ load("./prisma_config.star", "generate_prisma_config")
10
+ load("./frontend_library_tsconfig.star", "generate_frontend_library_tsconfig")
11
+ load("./backend_library_tsconfig.star", "generate_backend_library_tsconfig")
12
+ load("./playwright_config.star", "generate_playwright_config")
13
+
14
+ # =============================================================================
15
+ # TSConfig Struct - Public API
16
+ # =============================================================================
17
+
18
+ TSConfig = struct(
19
+ backend = generate_backend_tsconfig,
20
+ frontend = generate_frontend_tsconfig,
21
+ library_backend = generate_backend_library_tsconfig,
22
+ library_frontend = generate_frontend_library_tsconfig,
23
+ prisma = generate_prisma_config,
24
+ playwright = generate_playwright_config,
25
+ )
@@ -0,0 +1,42 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # =============================================================================
4
+ # 🎭 TILT SDK - PLAYWRIGHT CONFIG GENERATOR (free-tier stub)
5
+ # =============================================================================
6
+ # Path: .tilt/providers/typescript/playwright_config.star
7
+ # =============================================================================
8
+ # The real generator is part of a paid Flisk license. When a valid license
9
+ # grants the "playwright" resource, cli/src/generator/template-engine.ts
10
+ # (vendorTdkExtension) overwrites this file with the licensed version
11
+ # fetched via extension-fetch.ts before Tilt loads it. Same function
12
+ # signature either way, so nothing else in the generator pipeline changes.
13
+ # =============================================================================
14
+
15
+ load('../../../../topologies/tilt/common/utils.star', 'Utils')
16
+ load('../../../../topologies/tilt/manifest/constants.star', 'GENERATED_CONFIG_FILENAMES')
17
+
18
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
19
+
20
+ _STUB_NOTICE = """// Playwright e2e config generation is a paid Flisk feature.
21
+ // Run `flisk upgrade` to enable generated Playwright configs for this service.
22
+ """
23
+
24
+
25
+ def generate_playwright_config(resource_path, resource_type='backend', write_fn=None):
26
+ """
27
+ Free-tier stub - see module header. Signature matches the licensed
28
+ implementation so callers never need to know which one is active.
29
+ """
30
+ resource_name = resource_path.split('/')[-1]
31
+ header = Utils.get_template_header(
32
+ GENERATED_CONFIG_FILENAMES['playwright'],
33
+ 'TypeScript.generate_playwright_config() [unlicensed stub]',
34
+ resource_name,
35
+ resource_type.upper()
36
+ )
37
+ content = header + _STUB_NOTICE
38
+
39
+ if write_fn:
40
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['playwright'], content)
41
+
42
+ return content
@@ -0,0 +1,51 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # === INLINED CONSTANTS for pure extension loading ===
4
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
5
+ # === END INLINED CONSTANTS ===
6
+
7
+
8
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
9
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
10
+
11
+
12
+ # =============================================================================
13
+ # Prisma Config Generator
14
+ # =============================================================================
15
+
16
+ def generate_prisma_config(resource_path, resource_name, db_name, write_fn):
17
+ """
18
+ Generate prisma.config.autogenerated.ts for Prisma v7 CLI configuration.
19
+
20
+ Args:
21
+ resource_path: Path to the resource directory
22
+ resource_name: Name of the resource
23
+ db_name: Name of the database
24
+ write_fn: Write function for file output
25
+
26
+ Returns:
27
+ str: Generated Prisma config content
28
+ """
29
+ resource_display_name = resource_name
30
+
31
+ header = Utils.get_template_header(
32
+ GENERATED_CONFIG_FILENAMES['prisma'],
33
+ 'TypeScript.prisma()',
34
+ resource_display_name,
35
+ 'Prisma Configuration'
36
+ )
37
+ content = """/**
38
+ * AUTOGENERATED Prisma CLI Configuration - %s Service
39
+ *
40
+ * This config is used by Prisma CLI commands (generate, migrate, db push).
41
+ */
42
+ export default {
43
+ schema: 'prisma/schema.prisma',
44
+ datasource: {
45
+ url: process.env.DATABASE_URL,
46
+ },
47
+ };
48
+ """ % (resource_name)
49
+
50
+ if write_fn:
51
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['prisma'], content)