@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,478 @@
1
+ # Copyright (c) 2026 Flisk Landscape contributors
2
+ # SPDX-License-Identifier: MIT
3
+ # =============================================================================
4
+ # 📁 INFISICAL PATH MANAGER
5
+ # =============================================================================
6
+ # Manages Infisical folder/path creation and organization
7
+ # Replaces: Shell scripts for creating folders via CLI
8
+ # =============================================================================
9
+ #
10
+ # This module provides:
11
+ # - Folder/path structure definitions
12
+ # - Path validation and normalization
13
+ # - Batch path creation planning
14
+ # - Organization hierarchy management
15
+ #
16
+ # Usage:
17
+ # load("./infisical/path_manager.star", "PathManager")
18
+ # paths = PathManager.plan_resource_paths(["user", "order"])
19
+ # =============================================================================
20
+
21
+ def _get_timestamp():
22
+ """Get current timestamp string"""
23
+ return str(local("date +%Y-%m-%dT%H:%M:%S", quiet=True)).strip()
24
+
25
+ # =============================================================================
26
+ # Path Constants and Conventions
27
+ # =============================================================================
28
+
29
+ # Root paths in Infisical
30
+ ROOT_PATHS = {
31
+ "services": "/services",
32
+ "platform": "/platform",
33
+ "shared": "/shared",
34
+ "infrastructure": "/infrastructure",
35
+ }
36
+
37
+ # Standard sub-paths for services
38
+ RESOURCE_SUBPATHS = [
39
+ "", # Root service folder
40
+ "database",
41
+ "api-keys",
42
+ "tokens",
43
+ "external",
44
+ ]
45
+
46
+ # Platform service paths
47
+ PLATFORM_PATHS = {
48
+ "api-gateway": "/platform/api-gateway",
49
+ "database": "/platform/database",
50
+ "messaging": "/platform/messaging",
51
+ "observability": "/platform/observability",
52
+ "security": "/platform/security",
53
+ }
54
+
55
+ # Shared secrets paths
56
+ SHARED_PATHS = {
57
+ "database-credentials": "/shared/database-credentials",
58
+ "api-tokens": "/shared/api-tokens",
59
+ "encryption-keys": "/shared/encryption-keys",
60
+ "certificates": "/shared/certificates",
61
+ }
62
+
63
+ # Infrastructure paths
64
+ INFRASTRUCTURE_PATHS = {
65
+ "postgres": "/infrastructure/postgres",
66
+ "redis": "/infrastructure/redis",
67
+ "nats": "/infrastructure/nats",
68
+ "infisical": "/infrastructure/infisical",
69
+ "traefik": "/infrastructure/traefik",
70
+ }
71
+
72
+ # =============================================================================
73
+ # Path Validation
74
+ # =============================================================================
75
+
76
+ def _normalize_path(path):
77
+ """
78
+ Normalize a path to Infisical format.
79
+
80
+ Rules:
81
+ - Must start with /
82
+ - No trailing slash (except root "/")
83
+ - Lowercase
84
+ - No spaces
85
+ - No consecutive slashes
86
+
87
+ Args:
88
+ path: Raw path string
89
+
90
+ Returns:
91
+ Normalized path string
92
+ """
93
+ if not path:
94
+ return ""
95
+
96
+ # Lowercase
97
+ path = path.lower()
98
+
99
+ # Ensure leading slash
100
+ if not path.startswith("/"):
101
+ path = "/" + path
102
+
103
+ # Remove trailing slash (except for root)
104
+ if path != "/" and path.endswith("/"):
105
+ path = path[:-1]
106
+
107
+ # Replace spaces with hyphens
108
+ path = path.replace(" ", "-")
109
+
110
+ # Remove consecutive slashes
111
+ while "//" in path:
112
+ path = path.replace("//", "/")
113
+
114
+ return path
115
+
116
+ def _validate_path(path, strict=False):
117
+ """
118
+ Validate an Infisical path.
119
+
120
+ Args:
121
+ path: Path to validate
122
+ strict: If True, enforces stricter rules
123
+
124
+ Returns:
125
+ Dict with validation results:
126
+ {
127
+ "valid": bool,
128
+ "normalized": str,
129
+ "errors": [str],
130
+ "warnings": [str],
131
+ }
132
+ """
133
+ errors = []
134
+ warnings = []
135
+
136
+ if not path:
137
+ errors.append("Path cannot be empty")
138
+ return {"valid": False, "normalized": "", "errors": errors, "warnings": warnings}
139
+
140
+ normalized = _normalize_path(path)
141
+
142
+ # Ensure normalized is a string
143
+ if type(normalized) != "string":
144
+ normalized = str(normalized)
145
+
146
+ # Check valid characters
147
+ valid_chars = "abcdefghijklmnopqrstuvwxyz0123456789-_/"
148
+ invalid_chars = []
149
+ for i in range(len(normalized)):
150
+ c = normalized[i]
151
+ if c not in valid_chars:
152
+ invalid_chars.append(c)
153
+ if len(invalid_chars) > 0:
154
+ errors.append("Invalid characters: {}".format(invalid_chars))
155
+
156
+ # Check depth limit (Infisical max is 20)
157
+ parts = []
158
+ for p in normalized.split("/"):
159
+ if p:
160
+ parts.append(p)
161
+ if len(parts) > 20:
162
+ errors.append("Path depth {} exceeds maximum (20)".format(len(parts)))
163
+
164
+ # Check segment length (max 255 per segment)
165
+ for part in parts:
166
+ if len(part) > 255:
167
+ errors.append("Path segment '{}' too long (max 255)".format(part[:20]))
168
+
169
+ # Check total length
170
+ if len(normalized) > 1024:
171
+ errors.append("Path too long (max 1024 characters)")
172
+
173
+ # Strict mode checks
174
+ if strict:
175
+ # Must follow /services/ or /platform/ or /shared/ convention
176
+ if len(parts) >= 1 and parts[0] not in ["services", "platform", "shared", "infrastructure"]:
177
+ warnings.append("Path not under standard root (/services, /platform, /shared, /infrastructure)")
178
+
179
+ # Check for reserved names
180
+ reserved = [".git", ".env", "admin", "root", "system"]
181
+ for part in parts:
182
+ if part in reserved:
183
+ errors.append("Reserved name not allowed: '{}'".format(part))
184
+
185
+ return {
186
+ "valid": len(errors) == 0,
187
+ "normalized": normalized,
188
+ "errors": errors,
189
+ "warnings": warnings,
190
+ }
191
+
192
+ def _is_valid_path(path):
193
+ """Quick validation check."""
194
+ result = _validate_path(path)
195
+ return result["valid"]
196
+
197
+ # =============================================================================
198
+ # Path Planning
199
+ # =============================================================================
200
+
201
+ def _plan_resource_path(resource_name, resource_type="backend", parent_path=None):
202
+ """
203
+ Plan the Infisical path for a service.
204
+
205
+ Args:
206
+ resource_name: Name of the service
207
+ resource_type: Type of service
208
+ parent_path: Optional custom parent path (default: /services)
209
+
210
+ Returns:
211
+ Dict with path plan
212
+ """
213
+ # Normalize service name for path
214
+ normalized_name = resource_name.lower().replace(" ", "-").replace("_", "-")
215
+
216
+ # Determine parent path
217
+ if parent_path:
218
+ parent = _normalize_path(parent_path)
219
+ elif resource_type == "platform":
220
+ parent = ROOT_PATHS["platform"]
221
+ elif resource_type == "infrastructure":
222
+ parent = ROOT_PATHS["infrastructure"]
223
+ else:
224
+ parent = ROOT_PATHS["services"]
225
+
226
+ # Build full path
227
+ full_path = "{}/{}".format(parent, normalized_name)
228
+
229
+ # Validate
230
+ validation = _validate_path(full_path, strict=True)
231
+
232
+ return {
233
+ "resource_name": resource_name,
234
+ "resource_type": resource_type,
235
+ "parent_path": parent,
236
+ "resource_folder": normalized_name,
237
+ "full_path": validation["normalized"],
238
+ "validation": validation,
239
+ "subpaths": ["{}/{}".format(validation["normalized"], sub) for sub in RESOURCE_SUBPATHS if sub],
240
+ }
241
+
242
+ def _plan_batch_resource_paths(resource_names, resource_type="backend", parent_path=None):
243
+ """
244
+ Plan paths for multiple services.
245
+
246
+ Args:
247
+ resource_names: List of service names
248
+ resource_type: Default type for all services
249
+ parent_path: Optional custom parent path
250
+
251
+ Returns:
252
+ Dict mapping service names to their path plans
253
+ """
254
+ results = {}
255
+
256
+ for name in resource_names:
257
+ results[name] = _plan_resource_path(name, resource_type, parent_path)
258
+
259
+ return results
260
+
261
+ def _plan_organization_structure(org_name, resource_names=None):
262
+ """
263
+ Plan complete organization folder structure.
264
+
265
+ Args:
266
+ org_name: Organization name
267
+ resource_names: List of service names to create under /services
268
+
269
+ Returns:
270
+ Dict with complete structure plan
271
+ """
272
+ structure = {
273
+ "organization": org_name,
274
+ "roots": {},
275
+ "services": {},
276
+ "platform": {},
277
+ "shared": {},
278
+ "infrastructure": {},
279
+ }
280
+
281
+ # Root paths
282
+ for name, path in ROOT_PATHS.items():
283
+ structure["roots"][name] = {
284
+ "path": path,
285
+ "purpose": _get_root_purpose(name),
286
+ }
287
+
288
+ # Platform paths
289
+ for name, path in PLATFORM_PATHS.items():
290
+ structure["platform"][name] = {
291
+ "path": path,
292
+ "purpose": _get_platform_purpose(name),
293
+ }
294
+
295
+ # Shared paths
296
+ for name, path in SHARED_PATHS.items():
297
+ structure["shared"][name] = {
298
+ "path": path,
299
+ "purpose": _get_shared_purpose(name),
300
+ }
301
+
302
+ # Infrastructure paths
303
+ for name, path in INFRASTRUCTURE_PATHS.items():
304
+ structure["infrastructure"][name] = {
305
+ "path": path,
306
+ "purpose": _get_infrastructure_purpose(name),
307
+ }
308
+
309
+ # Service paths
310
+ if resource_names:
311
+ structure["services"] = _plan_batch_resource_paths(resource_names)
312
+
313
+ return structure
314
+
315
+ def _get_root_purpose(name):
316
+ """Get description for root path."""
317
+ purposes = {
318
+ "services": "Application service secrets",
319
+ "platform": "Platform infrastructure secrets",
320
+ "shared": "Cross-service shared secrets",
321
+ "infrastructure": "Infrastructure component secrets",
322
+ }
323
+ return purposes.get(name, "General secrets")
324
+
325
+ def _get_platform_purpose(name):
326
+ """Get description for platform path."""
327
+ purposes = {
328
+ "api-gateway": "API Gateway configuration and tokens",
329
+ "database": "Database cluster credentials",
330
+ "messaging": "NATS and message broker secrets",
331
+ "observability": "Monitoring and logging secrets",
332
+ "security": "Security service secrets",
333
+ }
334
+ return purposes.get(name, "Platform service secrets")
335
+
336
+ def _get_shared_purpose(name):
337
+ """Get description for shared path."""
338
+ purposes = {
339
+ "database-credentials": "Shared database credentials",
340
+ "api-tokens": "Shared API tokens",
341
+ "encryption-keys": "Encryption and signing keys",
342
+ "certificates": "TLS certificates and keys",
343
+ }
344
+ return purposes.get(name, "Shared secrets")
345
+
346
+ def _get_infrastructure_purpose(name):
347
+ """Get description for infrastructure path."""
348
+ purposes = {
349
+ "postgres": "PostgreSQL cluster secrets",
350
+ "redis": "Redis cluster secrets",
351
+ "nats": "NATS server secrets",
352
+ "infisical": "Infisical self-secrets",
353
+ "traefik": "Traefik proxy secrets",
354
+ }
355
+ return purposes.get(name, "Infrastructure secrets")
356
+
357
+ # =============================================================================
358
+ # Path Operations
359
+ # =============================================================================
360
+
361
+ def _get_parent_path(path):
362
+ """Get parent path of a given path."""
363
+ normalized = _normalize_path(path)
364
+ parts = [p for p in normalized.split("/") if p]
365
+
366
+ if len(parts) <= 1:
367
+ return "/"
368
+
369
+ return "/" + "/".join(parts[:-1])
370
+
371
+ def _get_path_depth(path):
372
+ """Get depth of path (number of segments)."""
373
+ normalized = _normalize_path(path)
374
+ parts = [p for p in normalized.split("/") if p]
375
+ return len(parts)
376
+
377
+ def _join_paths(base, *parts):
378
+ """Join path parts safely."""
379
+ result = _normalize_path(base)
380
+
381
+ for part in parts:
382
+ normalized_part = _normalize_path(part)
383
+ if normalized_part.startswith("/"):
384
+ normalized_part = normalized_part[1:]
385
+
386
+ if result == "/":
387
+ result = "/" + normalized_part
388
+ else:
389
+ result = result + "/" + normalized_part
390
+
391
+ return _normalize_path(result)
392
+
393
+ def _path_to_env_var(path):
394
+ """Convert Infisical path to environment variable name."""
395
+ # Remove leading slash and replace / with _
396
+ normalized = _normalize_path(path)
397
+ if normalized.startswith("/"):
398
+ normalized = normalized[1:]
399
+
400
+ return normalized.replace("/", "_").replace("-", "_").upper()
401
+
402
+ # =============================================================================
403
+ # Service Path Registry
404
+ # =============================================================================
405
+
406
+ # Predefined service paths for known services
407
+ KNOWN_RESOURCE_PATHS = {
408
+ # Simple services
409
+ "user-management-backend": "/services/user",
410
+ "order-management-backend": "/services/order",
411
+ "order-planner-backend": "/services/order-planner",
412
+ "team-management-backend": "/services/team",
413
+ "service-management-backend": "/services/service",
414
+ "products-management-backend": "/services/products",
415
+ "website-management-backend": "/services/website",
416
+ "gdpr-compliance-backend": "/services/gdpr",
417
+
418
+ # Complex services
419
+ "payment-management-backend": "/services/payment",
420
+ "payment-processing-backend": "/services/payments",
421
+ "notification-backend": "/services/notification",
422
+
423
+ # Platform services
424
+ "api-gateway": "/services/api-gateway",
425
+ "api-gateway-test": "/services/api-gateway-test",
426
+ "orchestrator-glue-backend": "/services/orchestrator-glue",
427
+ "service-discovery-agent": "/platform/service-discovery",
428
+ "synthetic-monitor": "/platform/synthetic-monitor",
429
+
430
+ # NATS services
431
+ "nats-http-bridge": "/platform/nats-http-bridge",
432
+ "nats-http-bridge-v2": "/platform/nats-http-bridge-v2",
433
+ "nats-connector": "/platform/nats-connector",
434
+ }
435
+
436
+ def _get_known_resource_path(resource_name):
437
+ """Get predefined path for a known service."""
438
+ return KNOWN_RESOURCE_PATHS.get(resource_name)
439
+
440
+ def _register_resource_path(resource_name, path):
441
+ """Register a new service path."""
442
+ normalized = _normalize_path(path)
443
+ KNOWN_RESOURCE_PATHS[resource_name] = normalized
444
+ return normalized
445
+
446
+ # =============================================================================
447
+ # Main API
448
+ # =============================================================================
449
+
450
+ PathManager = struct(
451
+ # Path planning
452
+ plan_resource_path=_plan_resource_path,
453
+ plan_batch_resource_paths=_plan_batch_resource_paths,
454
+ plan_organization_structure=_plan_organization_structure,
455
+
456
+ # Validation
457
+ validate_path=_validate_path,
458
+ normalize_path=_normalize_path,
459
+ is_valid_path=_is_valid_path,
460
+
461
+ # Operations
462
+ get_parent_path=_get_parent_path,
463
+ get_path_depth=_get_path_depth,
464
+ join_paths=_join_paths,
465
+ path_to_env_var=_path_to_env_var,
466
+
467
+ # Registry
468
+ get_known_resource_path=_get_known_resource_path,
469
+ register_resource_path=_register_resource_path,
470
+ known_paths=KNOWN_RESOURCE_PATHS,
471
+
472
+ # Constants
473
+ ROOT_PATHS=ROOT_PATHS,
474
+ PLATFORM_PATHS=PLATFORM_PATHS,
475
+ SHARED_PATHS=SHARED_PATHS,
476
+ INFRASTRUCTURE_PATHS=INFRASTRUCTURE_PATHS,
477
+ RESOURCE_SUBPATHS=RESOURCE_SUBPATHS,
478
+ )