@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,26 @@
1
+ appName: identity-management-backend
2
+ appType: backend
3
+ stack: identity
4
+ port: 4004
5
+ apiPath: /api/identity-management
6
+ features:
7
+ - nats
8
+ - prisma
9
+ healthCheck: True
10
+ healthCheckPath: /api/v1/health
11
+ params:
12
+ BASE_URL: http://identity.backend.tdk-project.local
13
+ EMAIL_FROM: noreply@tdk-project.local
14
+ UPSTASH_REDIS_REST_URL: http://redis:6379
15
+ path: identity-management-backend
16
+ playwright: True
17
+ prisma_client_path: ./node_modules/.prisma/client/client
18
+ replicas: 1
19
+ runtime: bun
20
+ secrets:
21
+ optional:
22
+ required:
23
+ - JWT_REFRESH_SECRET
24
+ - JWT_SECRET
25
+ - PASSWORD_PEPPER
26
+ - UPSTASH_REDIS_REST_TOKEN
@@ -0,0 +1,29 @@
1
+ appName: identity-management-frontend
2
+ appType: frontend
3
+ stack: identity
4
+ port: 4000
5
+ backendName: identity-management-backend
6
+ basePath: /
7
+ federation:
8
+ appName: identity-service
9
+ appType: remote
10
+ port: 4001
11
+ framework: vite
12
+ vite:
13
+ exposes:
14
+ ./PasswordReset: ./src/remote-entry.ts
15
+ ./SignIn: ./src/remote-entry.ts
16
+ ./SignUp: ./src/remote-entry.ts
17
+ name: identity_service
18
+ shared:
19
+ - react
20
+ - react-dom
21
+ - @tdk-landscape/introvertic-ui
22
+ healthCheck: True
23
+ path: identity-management-frontend
24
+ playwright: True
25
+ target_path: /app/dist
26
+ traefik:
27
+ host: identity-management-frontend.localhost
28
+ rootPath: True
29
+ rootPriority: 101
@@ -0,0 +1,9 @@
1
+ appName: api
2
+ appType: sdk
3
+ stack: identity
4
+ port: 5175
5
+ backendName: identity-management-backend
6
+ basePath: /identity-sdk
7
+ healthCheck: False
8
+ path: identity-sdk
9
+ playwright: False
@@ -0,0 +1,215 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # =============================================================================
4
+ # 📈 INCREMENTAL DISCOVERY - Register New Services Dynamically
5
+ # =============================================================================
6
+ # Handles registration of newly detected services without full Tilt restart
7
+ # =============================================================================
8
+
9
+ load("./registry.star", "CacheOps", "get_app_resources")
10
+ load("./discovery_orchestrator.star", "normalize_manifest")
11
+ load("../resources/orchestrator/generators/manifest_resource.star", "ManifestResource")
12
+ load("../../engine/topologies/tilt/manifest/loader.star", "ManifestLoader")
13
+ load("../../specs/specs/TILT_RESOURCE_DEFAULTS.star", "BASE_PORT_BACKEND")
14
+
15
+ def register_new_resource(resource_path, manifest, ctx, auto_init=True, verbose=False):
16
+ """
17
+ Register a newly discovered resource and create its Tilt resources.
18
+
19
+ Args:
20
+ resource_path: Path to resource directory
21
+ manifest: Loaded manifest dict
22
+ ctx: Tilt context with generators and config
23
+ auto_init: Whether to auto-init resources
24
+ verbose: Enable verbose logging
25
+
26
+ Returns:
27
+ Struct with success status and created resources
28
+ """
29
+ resource_name = manifest.get("appName", "")
30
+ app_type = manifest.get("appType", "backend")
31
+ stack = manifest.get("stack", "")
32
+
33
+ if verbose:
34
+ print("🚀 Registering new resource: {}".format(resource_name))
35
+
36
+ # Normalize manifest to discovery format
37
+ resource = normalize_manifest(manifest, resource_path)
38
+
39
+ # Build app resource structure
40
+ app_resource_dict = {
41
+ "name": resource_name,
42
+ "path": resource_path,
43
+ "labels": ["app." + resource_name],
44
+ "resources": [resource],
45
+ }
46
+
47
+ # Add to cache
48
+ if not CacheOps.add(app_resource_dict):
49
+ print("⚠️ Failed to add {} to cache (may already exist)".format(resource_name))
50
+ return struct(success=False, error="cache_add_failed")
51
+
52
+ # Create Tilt resources
53
+ created_resources = []
54
+
55
+ # Create config-gen resource
56
+ config_gen_name = _create_config_gen_resource(
57
+ resource_name,
58
+ resource,
59
+ resource_path,
60
+ manifest,
61
+ ctx,
62
+ auto_init
63
+ )
64
+ created_resources.append(config_gen_name)
65
+
66
+ # Create Docker build resource
67
+ docker_resource = _create_docker_resource(
68
+ resource_name,
69
+ resource,
70
+ resource_path,
71
+ manifest,
72
+ ctx
73
+ )
74
+ if docker_resource:
75
+ created_resources.append(docker_resource)
76
+
77
+ # Create additional resources based on app type
78
+ if app_type == "frontend":
79
+ frontend_resources = _create_frontend_resources(
80
+ resource_name,
81
+ resource,
82
+ resource_path,
83
+ manifest,
84
+ ctx,
85
+ auto_init
86
+ )
87
+ created_resources.extend(frontend_resources)
88
+
89
+ # Log success
90
+ print("✅ Auto-registered: {}".format(resource_name))
91
+ print(" └─ Stack: {}".format(stack))
92
+ print(" └─ Type: {}".format(app_type))
93
+ print(" └─ Resources: {} created".format(len(created_resources)))
94
+
95
+ return struct(
96
+ success=True,
97
+ resource_name=resource_name,
98
+ resources=created_resources,
99
+ count=len(created_resources)
100
+ )
101
+
102
+ def _create_config_gen_resource(resource_name, resource, resource_path, manifest, ctx, auto_init):
103
+ """Create config-gen resource for a resource."""
104
+ # Get backend manifest if frontend
105
+ backend_manifest = None
106
+ if resource.get("frontend", False):
107
+ backend_name = resource.get("backendName", resource_name.replace("-frontend", "-backend"))
108
+ backend_manifest = _get_backend_manifest(backend_name)
109
+
110
+ # Use ManifestResource to create config-gen
111
+ resource_config = {
112
+ "name": resource.get("name", resource_name),
113
+ "port": resource.get("port", BASE_PORT_BACKEND),
114
+ "_manifest": manifest,
115
+ }
116
+
117
+ config_gen_name = ManifestResource.create_config_resource(
118
+ resource_name,
119
+ resource_config,
120
+ resource_path,
121
+ manifest,
122
+ backend_manifest,
123
+ ctx
124
+ )
125
+
126
+ return config_gen_name
127
+
128
+ def _create_docker_resource(resource_name, resource, resource_path, manifest, ctx):
129
+ """Create Docker build resource for a resource."""
130
+ # Docker resource is created through the orchestrator
131
+ # This is handled when the config-gen resource runs
132
+ # Return the expected resource name for tracking
133
+ return resource_name
134
+
135
+ def _create_frontend_resources(resource_name, resource, resource_path, manifest, ctx, auto_init):
136
+ """Create additional resources for frontend app resources."""
137
+ resources = []
138
+
139
+ # Frontend dev server resource is auto-created by the orchestrator
140
+ # when processing the manifest
141
+
142
+ return resources
143
+
144
+ def _get_backend_manifest(backend_name):
145
+ """Look up backend manifest for a frontend app resource."""
146
+ # Search in current cache
147
+ for app_resource in get_app_resources():
148
+ if app_resource.get("name") == backend_name:
149
+ resources = app_resource.get("resources", [])
150
+ for res in resources:
151
+ if res.get("_manifest"):
152
+ return res.get("_manifest")
153
+ return None
154
+
155
+ def validate_resource_structure(resource_path):
156
+ """
157
+ Validate that an app resource has complete structure before registration.
158
+
159
+ Args:
160
+ resource_path: Path to app resource directory
161
+
162
+ Returns:
163
+ Struct with valid status and missing files
164
+ """
165
+ required_files = ["service.json", "package.json"]
166
+ missing = []
167
+
168
+ for filename in required_files:
169
+ filepath = resource_path + "/" + filename
170
+ result = local(
171
+ "test -f {} && echo 'yes' || echo 'no'".format(filepath),
172
+ quiet=True,
173
+ echo_off=True
174
+ )
175
+ if str(result).strip() != "yes":
176
+ missing.append(filename)
177
+
178
+ return struct(
179
+ valid=len(missing) == 0,
180
+ missing=missing,
181
+ has_resource_json="service.json" not in missing,
182
+ has_package_json="package.json" not in missing
183
+ )
184
+
185
+ def check_duplicate_resource(resource_name):
186
+ """
187
+ Check if a resource name already exists.
188
+
189
+ Args:
190
+ resource_name: Name to check
191
+
192
+ Returns:
193
+ Struct with duplicate status and existing info
194
+ """
195
+ if CacheOps.has(resource_name):
196
+ # Find existing resource path
197
+ for app_resource in get_app_resources():
198
+ if app_resource.get("name") == resource_name:
199
+ return struct(
200
+ duplicate=True,
201
+ existing_path=app_resource.get("path", "unknown"),
202
+ message="Resource '{}' already exists at {}".format(
203
+ resource_name,
204
+ app_resource.get("path", "unknown")
205
+ )
206
+ )
207
+
208
+ return struct(duplicate=False)
209
+
210
+ # Export public API
211
+ IncrementalDiscovery = struct(
212
+ register=register_new_resource,
213
+ validate_structure=validate_resource_structure,
214
+ check_duplicate=check_duplicate_resource,
215
+ )
@@ -0,0 +1,9 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ def by_app_name(manifests):
4
+ indexed = {}
5
+ for manifest in manifests:
6
+ app_name = manifest.get("appName")
7
+ if app_name:
8
+ indexed[app_name] = manifest
9
+ return indexed
@@ -0,0 +1,57 @@
1
+ # Copyright (c) 2026 Flisk contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # json_manifest_scanner.star
4
+ #
5
+ # Purpose: Low-level JSON manifest file discovery using shell `find` command
6
+ # Use: discover_json_manifests(root_path) returns list of manifest file paths
7
+ #
8
+ # NOTE: This is the "manual" scanner - it finds files in a specific folder.
9
+ # For auto-discovery from Tilt's discovery system, use discovery.star instead.
10
+
11
+ load("./manifest/constants.star", "MANIFEST_FILENAME")
12
+
13
+ def discover_json_manifests(root_path):
14
+ """
15
+ Discover all JSON manifest files in a given root path.
16
+
17
+ Args:
18
+ root_path: Path relative to project root (e.g., "services/product")
19
+ or absolute path. Uses TDK_PROJECT_ROOT env var if set.
20
+ Supports glob patterns like "identity-*" for flat structures.
21
+
22
+ Returns:
23
+ List of manifest file paths (strings)
24
+ """
25
+ # Get project root from environment variable set by main Tiltfile
26
+ project_root = os.environ.get('TDK_PROJECT_ROOT', '.')
27
+
28
+ # Check if root_path contains glob patterns
29
+ if '*' in root_path or '?' in root_path:
30
+ # Use bash to expand glob and find files
31
+ # The pattern like identity-* needs shell expansion
32
+ cmd = "cd " + project_root + " && bash -c 'for dir in " + root_path + "; do if [ -d \"$dir\" ]; then find \"$dir\" -maxdepth 3 -type f -name \"" + MANIFEST_FILENAME + "\" 2>/dev/null; fi; done'"
33
+ result = str(local(cmd, quiet=True, echo_off=True))
34
+ else:
35
+ # Keep discovery results project-relative whenever possible.
36
+ # Running `find` on an absolute `project_root/../sibling` path makes find
37
+ # emit absolute paths; stripping the leading "/" later produces bogus
38
+ # Docker context paths like `private/var/www/.../platform/verdaccio`.
39
+ if root_path.startswith('/'):
40
+ cmd = "find " + root_path + " -type f -name '" + MANIFEST_FILENAME + "' 2>/dev/null | sort"
41
+ else:
42
+ cmd = (
43
+ "cd " + project_root +
44
+ " && find " + root_path +
45
+ " -type f -name '" + MANIFEST_FILENAME + "' 2>/dev/null | sort"
46
+ )
47
+ result = str(local(cmd, quiet=True, echo_off=True))
48
+
49
+ manifests = []
50
+ if result:
51
+ lines = result.strip().split("\n")
52
+ for line in lines:
53
+ line = line.strip()
54
+ if line and MANIFEST_FILENAME in line:
55
+ manifests.append(line)
56
+
57
+ return manifests
@@ -0,0 +1,48 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # =============================================================================
4
+ # 📚 TOPOLOGIES - DISCOVERY LIBRARIES
5
+ # =============================================================================
6
+ # Libraries are always auto-discovered from the filesystem by scanning
7
+ # shared library directories for matching prefix patterns.
8
+ # This eliminates stale hardcoded lists that required manual updates.
9
+ # =============================================================================
10
+
11
+
12
+ def autodiscover_libraries(root_path, prefix):
13
+ libs = []
14
+ result = str(local("ls -d " + root_path + "/" + prefix + "*/ 2>/dev/null || true", quiet=True, echo_off=True))
15
+
16
+ if result:
17
+ for line in result.strip().split("\n"):
18
+ if line:
19
+ lib_path = line.rstrip("/")
20
+ lib_name = lib_path.split("/")[-1]
21
+ if lib_name:
22
+ libs.append(lib_name)
23
+
24
+ return libs
25
+
26
+
27
+ def get_platform_libs():
28
+ discovered = autodiscover_libraries("shared-platform-engineering", "platform-")
29
+ if len(discovered) > 0:
30
+ is_verbose = os.environ.get('TILT_LOG_LEVEL') == 'verbose'
31
+ if is_verbose or len(discovered) <= 5:
32
+ lib_list = ", ".join(discovered)
33
+ else:
34
+ lib_list = ", ".join(discovered[:5]) + ", ... and {} more".format(len(discovered) - 5)
35
+ print(" 📚 Autodiscovered platform libraries: {}".format(lib_list))
36
+ return discovered
37
+
38
+
39
+ def get_product_libs():
40
+ discovered = autodiscover_libraries("shared-product-engineering", "product-")
41
+ if len(discovered) > 0:
42
+ is_verbose = os.environ.get('TILT_LOG_LEVEL') == 'verbose'
43
+ if is_verbose or len(discovered) <= 5:
44
+ lib_list = ", ".join(discovered)
45
+ else:
46
+ lib_list = ", ".join(discovered[:5]) + ", ... and {} more".format(len(discovered) - 5)
47
+ print(" 📚 Autodiscovered product libraries: {}".format(lib_list))
48
+ return discovered
@@ -0,0 +1,25 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ load("./manifest/constants.star", "MANIFEST_FILENAME", "MANIFEST_DEFAULTS", "VALID_APP_TYPES", "DEFAULT_SYNCS")
4
+ load("./manifest/loading.star", "load_manifest", "load_related_manifest", "get_default_syncs_for_type")
5
+ load("./validation.star", _validate = "validate")
6
+ load("./manifest/normalize.star", "load_and_normalize", "discover_manifests_in_path", "load_all_manifests", "get_port", "get_database_url", "print_summary", "generate_manifest_template")
7
+
8
+ Manifest = struct(
9
+ load_manifest = load_manifest,
10
+ load_related = load_related_manifest,
11
+ load_and_normalize = load_and_normalize,
12
+ discover_manifests = discover_manifests_in_path,
13
+ load_all_manifests = load_all_manifests,
14
+ load_all = load_all_manifests,
15
+ validate = _validate,
16
+ get_port = get_port,
17
+ get_database_url = get_database_url,
18
+ get_default_syncs = get_default_syncs_for_type,
19
+ print_summary = print_summary,
20
+ generate_template = generate_manifest_template,
21
+ FILENAME = MANIFEST_FILENAME,
22
+ DEFAULTS = MANIFEST_DEFAULTS,
23
+ VALID_APP_TYPES = VALID_APP_TYPES,
24
+ DEFAULT_SYNCS = DEFAULT_SYNCS,
25
+ )
@@ -0,0 +1,106 @@
1
+ # Copyright (c) 2026 Flisk contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # =============================================================================
4
+ # 📋 MANIFEST CONSTANTS (Self-Contained)
5
+ # =============================================================================
6
+ # Path: manifest/constants.star
7
+ # Purpose: Define manifest filename patterns and constants
8
+ # =============================================================================
9
+
10
+ # Manifest filenames
11
+ MANIFEST_FILENAME = "service.json"
12
+ MANIFEST_FILENAME_YAML = "service.yaml"
13
+
14
+ # File patterns
15
+ MANIFEST_PATTERN = "*.json"
16
+
17
+ # Config filenames
18
+ PACKAGE_CONFIG_FILENAMES = ["package.json", "bun.lock"]
19
+ GENERATED_CONFIG_FILENAMES = ["tsconfig.json", "vite.config.ts"]
20
+
21
+ # Autogenerated paths
22
+ AUTOGENERATED_CONFIG_PATHS = ["autogenerated/"]
23
+
24
+ # Manifest defaults
25
+ MANIFEST_DEFAULTS = {
26
+ "appType": "backend",
27
+ "runtime": "bun",
28
+ "port": 4000,
29
+ "replicas": 1,
30
+ }
31
+
32
+ # Valid app types
33
+ VALID_APP_TYPES = ["backend", "frontend", "library", "migrator", "sdk", "worker", "bring-your-own"]
34
+
35
+ # Default syncs
36
+ DEFAULT_SYNCS = ["src", "prisma"]
37
+
38
+ # Runtime configs
39
+ RUNTIME_CONFIGS = {
40
+ "bun": {"port_env": "PORT", "command": "bun run start"},
41
+ "node": {"port_env": "PORT", "command": "node dist/index.js"},
42
+ }
43
+
44
+ # Traefik defaults
45
+ TRAEFIK_DEFAULTS = {
46
+ "entrypoint": "web",
47
+ "scheme": "http",
48
+ }
49
+
50
+ # Service name patterns
51
+ RESOURCE_NAME_PATTERNS = {
52
+ "backend": "{domain}-management-backend",
53
+ "frontend": "{domain}-management-frontend",
54
+ }
55
+
56
+ # Validation thresholds
57
+ VALIDATION_THRESHOLDS = {
58
+ "min_port": 3000,
59
+ "max_port": 9999,
60
+ "min_replicas": 1,
61
+ "max_replicas": 10,
62
+ }
63
+
64
+ # Valid stacks - loaded dynamically from project config
65
+ # Projects define their own stacks in .tdk/project.json
66
+ VALID_STACKS = []
67
+
68
+ # Valid features
69
+ VALID_FEATURES = ["api-client", "env-config", "api-index", "prisma", "nats", "redis", "infisical", "vitest", "traefik", "websocket", "graphql", "grpc", "vite-node", "maintenance", "cron"]
70
+
71
+ # Port ranges
72
+ PORT_RANGES = {
73
+ "frontend_start": 3000,
74
+ "frontend_end": 3999,
75
+ "backend_start": 4000,
76
+ "backend_end": 4999,
77
+ }
78
+
79
+ # Struct for grouped exports
80
+ ManifestConstants = struct(
81
+ MANIFEST_FILENAME = MANIFEST_FILENAME,
82
+ MANIFEST_FILENAME_YAML = MANIFEST_FILENAME_YAML,
83
+ MANIFEST_PATTERN = MANIFEST_PATTERN,
84
+ PACKAGE_CONFIG_FILENAMES = PACKAGE_CONFIG_FILENAMES,
85
+ GENERATED_CONFIG_FILENAMES = GENERATED_CONFIG_FILENAMES,
86
+ AUTOGENERATED_CONFIG_PATHS = AUTOGENERATED_CONFIG_PATHS,
87
+ MANIFEST_DEFAULTS = MANIFEST_DEFAULTS,
88
+ VALID_APP_TYPES = VALID_APP_TYPES,
89
+ DEFAULT_SYNCS = DEFAULT_SYNCS,
90
+ RUNTIME_CONFIGS = RUNTIME_CONFIGS,
91
+ TRAEFIK_DEFAULTS = TRAEFIK_DEFAULTS,
92
+ RESOURCE_NAME_PATTERNS = RESOURCE_NAME_PATTERNS,
93
+ VALIDATION_THRESHOLDS = VALIDATION_THRESHOLDS,
94
+ VALID_STACKS = VALID_STACKS,
95
+ VALID_FEATURES = VALID_FEATURES,
96
+ PORT_RANGES = PORT_RANGES,
97
+ )
98
+
99
+ # =============================================================================
100
+ # INDIVIDUAL EXPORTS for load() compatibility
101
+ # =============================================================================
102
+ # These enable: load("./manifest/constants.star", "MANIFEST_FILENAME_YAML")
103
+ # =============================================================================
104
+
105
+ MANIFEST_FILENAME = MANIFEST_FILENAME
106
+ MANIFEST_FILENAME_YAML = MANIFEST_FILENAME_YAML