okengine 0.11.2 → 0.13.0

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 (1273) hide show
  1. package/manifest.v1.schema.json +1 -1
  2. package/package.json +57 -3
  3. package/site/content/docs/ai/index.mdx +2 -2
  4. package/site/content/docs/ai/llms-txt.mdx +21 -16
  5. package/site/content/docs/ai/mcp.mdx +1 -1
  6. package/site/content/docs/ai/skills.mdx +16 -14
  7. package/site/content/docs/deployment/docker-swarm.mdx +7 -8
  8. package/site/content/docs/deployment/docker.mdx +20 -12
  9. package/site/content/docs/deployment/index.mdx +2 -2
  10. package/site/content/docs/deployment/kubernetes.mdx +2 -2
  11. package/site/content/docs/deployment/reverse-proxy.mdx +39 -21
  12. package/site/content/docs/elements/ai.mdx +25 -15
  13. package/site/content/docs/elements/channel.mdx +2 -2
  14. package/site/content/docs/elements/clock.mdx +11 -1
  15. package/site/content/docs/elements/flow.mdx +66 -16
  16. package/site/content/docs/elements/gate.mdx +47 -39
  17. package/site/content/docs/elements/signal.mdx +2 -2
  18. package/site/content/docs/elements/store.mdx +211 -48
  19. package/site/content/docs/elements/vault.mdx +126 -41
  20. package/site/content/docs/get-started/basic-usage.mdx +14 -6
  21. package/site/content/docs/get-started/installation.mdx +24 -16
  22. package/site/content/docs/plugins/cors.mdx +9 -9
  23. package/site/content/docs/plugins/csrf.mdx +1 -1
  24. package/site/content/docs/providers/cockroachdb.mdx +13 -0
  25. package/site/content/docs/providers/index.mdx +1 -0
  26. package/site/content/docs/providers/neon.mdx +22 -0
  27. package/site/content/docs/providers/supabase.mdx +17 -0
  28. package/site/content/docs/providers/yugabytedb.mdx +15 -0
  29. package/site/content/docs/recipes/caddy.mdx +3 -3
  30. package/site/content/docs/recipes/cockroachdb.mdx +8 -2
  31. package/site/content/docs/recipes/dragonfly.mdx +4 -3
  32. package/site/content/docs/recipes/index.mdx +6 -1
  33. package/site/content/docs/recipes/llama-cpp.mdx +5 -6
  34. package/site/content/docs/recipes/mailpit.mdx +3 -3
  35. package/site/content/docs/recipes/meilisearch.mdx +4 -4
  36. package/site/content/docs/recipes/meta.json +1 -0
  37. package/site/content/docs/recipes/nginx.mdx +117 -0
  38. package/site/content/docs/recipes/ollama.mdx +3 -3
  39. package/site/content/docs/recipes/pgdog.mdx +1 -1
  40. package/site/content/docs/recipes/postgres.mdx +44 -8
  41. package/site/content/docs/recipes/redis.mdx +11 -7
  42. package/site/content/docs/recipes/rustfs.mdx +4 -4
  43. package/site/content/docs/recipes/sglang.mdx +2 -2
  44. package/site/content/docs/recipes/supabase-docker.mdx +24 -0
  45. package/site/content/docs/recipes/timescale.mdx +30 -6
  46. package/site/content/docs/recipes/traefik.mdx +10 -7
  47. package/site/content/docs/recipes/valkey.mdx +5 -3
  48. package/site/content/docs/recipes/vllm.mdx +2 -2
  49. package/site/content/docs/recipes/yugabytedb.mdx +7 -1
  50. package/site/content/docs/reference/cli.md +67 -34
  51. package/site/content/docs/reference/client.mdx +39 -20
  52. package/site/content/docs/reference/configuration.mdx +34 -25
  53. package/site/content/docs/reference/environment-variables.mdx +28 -25
  54. package/site/content/docs/reference/errors.mdx +25 -20
  55. package/site/content/docs/reference/fx.mdx +19 -12
  56. package/site/content/docs/reference/plugins.mdx +2 -2
  57. package/site/content/docs/reference/security.md +16 -7
  58. package/src/auth/auth.test.ts +2 -2
  59. package/src/auth/bindings.ts +5 -5
  60. package/src/auth/config.ts +8 -0
  61. package/src/auth/gate-auth.test.ts +5 -5
  62. package/src/auth/index.ts +3 -0
  63. package/src/auth/operator.ts +1 -1
  64. package/src/auth/password-policy.test.ts +142 -5
  65. package/src/auth/password-policy.ts +128 -12
  66. package/src/auth/plugin.ts +2 -2
  67. package/src/cli/ai-setup/ai-setup.test.ts +1 -1
  68. package/src/cli/ai-setup/apply.ts +3 -18
  69. package/src/cli/ai-setup/index.ts +4 -4
  70. package/src/cli/ai-setup/prompts.ts +1 -1
  71. package/src/cli/ask-seed.test.ts +27 -0
  72. package/src/cli/ask-seed.ts +11 -7
  73. package/src/cli/attach-host-console.test.ts +134 -0
  74. package/src/cli/attach-host-console.ts +100 -0
  75. package/src/cli/console-cmd.test.ts +81 -0
  76. package/src/cli/console-cmd.ts +107 -0
  77. package/src/cli/db-seed.ts +14 -3
  78. package/src/cli/db.test.ts +37 -2
  79. package/src/cli/db.ts +26 -0
  80. package/src/cli/dev-app-runner.ts +6 -40
  81. package/src/cli/dev-console-vite.test.ts +86 -0
  82. package/src/cli/dev-console-vite.ts +164 -0
  83. package/src/cli/dev-schema-sync.ts +2 -2
  84. package/src/cli/dev.test.ts +78 -2
  85. package/src/cli/dev.ts +170 -56
  86. package/src/cli/docker-cli.test.ts +2 -2
  87. package/src/cli/docker.ts +1 -1
  88. package/src/cli/doctor.ts +2 -1
  89. package/src/cli/drizzle-env.test.ts +4 -9
  90. package/src/cli/drizzle-env.ts +2 -2
  91. package/src/cli/hero-meta.test.ts +37 -0
  92. package/src/cli/hero-meta.ts +30 -9
  93. package/src/cli/index.ts +5 -0
  94. package/src/cli/load-config.images.test.ts +13 -12
  95. package/src/cli/load-config.ts +1 -1
  96. package/src/cli/project-state.test.ts +6 -2
  97. package/src/cli/project-state.ts +27 -11
  98. package/src/cli/registry.ts +11 -0
  99. package/src/cli/replay.ts +7 -2
  100. package/src/cli/vault-cmd.test.ts +2 -0
  101. package/src/cli/vault-cmd.ts +7 -2
  102. package/src/client/create.test.ts +38 -2
  103. package/src/client/create.ts +16 -11
  104. package/src/client/index.ts +6 -0
  105. package/src/client/pager.test.ts +66 -0
  106. package/src/client/pager.ts +138 -0
  107. package/src/client/transport.ts +9 -6
  108. package/src/client/types.ts +58 -10
  109. package/src/compiler/aot.test.ts +12 -2
  110. package/src/compiler/effects-infer.ts +13 -4
  111. package/src/compiler/extract.test.ts +257 -5
  112. package/src/compiler/extract.ts +324 -58
  113. package/src/compiler/fixtures/skyport/src/flows/bookings/index.ts +2 -2
  114. package/src/compiler/fixtures/skyport/src/gates.ts +2 -0
  115. package/src/compiler/fixtures/skyport.expected.json +4 -0
  116. package/src/config/driver-defaults.test.ts +3 -0
  117. package/src/config/driver-defaults.ts +14 -0
  118. package/src/config/index.ts +5 -0
  119. package/src/console/budget.test.ts +27 -37
  120. package/src/console/index.ts +3 -0
  121. package/src/console/password-policy.ts +89 -0
  122. package/src/console/server/app.ts +138 -12
  123. package/src/console/server/auth-rate.test.ts +3 -3
  124. package/src/console/server/auth-store.test.ts +222 -0
  125. package/src/console/server/auth-store.ts +499 -0
  126. package/src/console/server/bind.ts +2 -3
  127. package/src/console/server/channels.test.ts +1 -1
  128. package/src/console/server/claim.test.ts +60 -1
  129. package/src/console/server/claim.ts +137 -2
  130. package/src/console/server/console.test.ts +102 -6
  131. package/src/console/server/dry-run.audit.test.ts +5 -2
  132. package/src/console/server/files-catalog.test.ts +51 -0
  133. package/src/console/server/files-catalog.ts +122 -0
  134. package/src/console/server/flows-invoke.test.ts +655 -38
  135. package/src/console/server/flows.ts +907 -90
  136. package/src/console/server/gates.test.ts +59 -0
  137. package/src/console/server/gates.ts +17 -14
  138. package/src/console/server/i18n.ts +7 -4
  139. package/src/console/server/index-search.test.ts +57 -0
  140. package/src/console/server/index-search.ts +102 -0
  141. package/src/console/server/index.ts +32 -1
  142. package/src/console/server/instances.test.ts +68 -0
  143. package/src/console/server/instances.ts +58 -0
  144. package/src/console/server/invoke-user-flow.test.ts +206 -0
  145. package/src/console/server/invoke-user-flow.ts +367 -0
  146. package/src/console/server/live.test.ts +44 -1
  147. package/src/console/server/live.ts +16 -0
  148. package/src/console/server/operator-db.test.ts +5 -5
  149. package/src/console/server/operator-db.ts +2 -2
  150. package/src/console/server/panel-load.ts +1 -0
  151. package/src/console/server/plugin.ts +12 -2
  152. package/src/console/server/runs-history.test.ts +143 -0
  153. package/src/console/server/runs-ingest.test.ts +379 -0
  154. package/src/console/server/runs-ingest.ts +127 -0
  155. package/src/console/server/runs-list-nesting.test.ts +97 -0
  156. package/src/console/server/runs-pii.test.ts +69 -0
  157. package/src/console/server/runs-pii.ts +50 -4
  158. package/src/console/server/runs-query-guard.test.ts +75 -0
  159. package/src/console/server/runs-query-guard.ts +224 -0
  160. package/src/console/server/runs-query-mask.test.ts +37 -0
  161. package/src/console/server/runs-query-mask.ts +82 -0
  162. package/src/console/server/runs-query.test.ts +287 -0
  163. package/src/console/server/runs-query.ts +107 -0
  164. package/src/console/server/security-headers.ts +21 -2
  165. package/src/console/server/security.gate.test.ts +306 -3
  166. package/src/console/server/serve.ts +138 -9
  167. package/src/console/server/spa-paths.test.ts +36 -0
  168. package/src/console/server/spa-proxy.test.ts +86 -0
  169. package/src/console/server/sql-catalog.ts +572 -0
  170. package/src/console/server/sql-extension.test.ts +19 -0
  171. package/src/console/server/sql-rls.test.ts +44 -0
  172. package/src/console/server/state.ts +445 -7
  173. package/src/console/server/store-kv-stats.test.ts +178 -0
  174. package/src/console/server/store-kv-stats.ts +339 -0
  175. package/src/console/server/store-stats.test.ts +165 -0
  176. package/src/console/server/store-stats.ts +526 -0
  177. package/src/console/server/store.test.ts +930 -0
  178. package/src/console/server/store.ts +859 -76
  179. package/src/console/server/traces-replay.test.ts +212 -0
  180. package/src/console/server/vault-http.test.ts +458 -0
  181. package/src/console/server/vault-overlay.test.ts +49 -0
  182. package/src/console/server/vault-overlay.ts +99 -0
  183. package/src/console/server/vault.test.ts +75 -0
  184. package/src/console/server/vault.ts +443 -27
  185. package/src/console/ui-next/components.json +26 -0
  186. package/src/console/ui-next/dist/assets/bash-CLZ0U2zV.js +1 -0
  187. package/src/console/ui-next/dist/assets/cache-glyph-CLPBqZeb.js +1 -0
  188. package/src/console/ui-next/dist/assets/call-pii-button-bqkxMrJH.js +1 -0
  189. package/src/console/ui-next/dist/assets/collapsible-DYb0xU8C.js +1 -0
  190. package/src/console/ui-next/dist/assets/confirm-sheet-DDCRmG62.js +1 -0
  191. package/src/console/ui-next/dist/assets/dagre.esm-ZwcdTuZZ.js +1 -0
  192. package/src/console/ui-next/dist/assets/duration-tone-oiRxPVsZ.js +9 -0
  193. package/src/console/ui-next/dist/assets/explorer-empty-HjTnVQoR.js +1 -0
  194. package/src/console/ui-next/dist/assets/flows-page-Dg8CTE29.js +1 -0
  195. package/src/console/ui-next/dist/assets/github-dark-C-LZuMrd.js +1 -0
  196. package/src/console/ui-next/dist/assets/github-light-EUqPIrTm.js +1 -0
  197. package/src/console/ui-next/dist/assets/highlighted-json-CvDPvveV.js +154 -0
  198. package/src/console/ui-next/dist/assets/http-method-BJ92Z_ke.js +1 -0
  199. package/src/console/ui-next/dist/assets/index-Bp-R7jtM.js +66 -0
  200. package/src/console/ui-next/dist/assets/index-D4Ldtj79.css +2 -0
  201. package/src/console/ui-next/dist/assets/json-qhed-kSA.js +1 -0
  202. package/src/console/ui-next/dist/assets/link-DF7SZ9Ek.js +1 -0
  203. package/src/console/ui-next/dist/assets/observability-page-DAnpEaq1.js +4 -0
  204. package/src/console/ui-next/dist/assets/preload-helper-oH4irX4C.js +1 -0
  205. package/src/console/ui-next/dist/assets/query-gate-parts-1m8m1iNp.js +2 -0
  206. package/src/console/ui-next/dist/assets/react-B1ML8gxg.js +1 -0
  207. package/src/console/ui-next/dist/assets/react-dom-Bph1y7z7.js +9 -0
  208. package/src/console/ui-next/dist/assets/replica-lag-C8_BRt2x.js +18 -0
  209. package/src/console/ui-next/dist/assets/rolldown-runtime-hePW80VL.js +1 -0
  210. package/src/console/ui-next/dist/assets/sheet-form-D-ata7jy.js +1 -0
  211. package/src/console/ui-next/dist/assets/shortcut-Cgzuv4k1.js +1 -0
  212. package/src/console/ui-next/dist/assets/shortcut-keys-DO4IsVqv.js +1 -0
  213. package/src/console/ui-next/dist/assets/skeleton-CL_X0GCj.js +1 -0
  214. package/src/console/ui-next/dist/assets/sql-BskegiFM.js +1 -0
  215. package/src/console/ui-next/dist/assets/store-page-v3LXdYpr.js +45 -0
  216. package/src/console/ui-next/dist/assets/trace-detail-sheet-D16lWQMt.js +2 -0
  217. package/src/console/ui-next/dist/assets/tsx-udAQXfEw.js +1 -0
  218. package/src/console/ui-next/dist/assets/typescript-bsJCZSQ-.js +1 -0
  219. package/src/console/ui-next/dist/assets/units-page-BtQ0bqMe.js +1 -0
  220. package/src/console/ui-next/dist/assets/use-vault-list-Cl79j_ku.js +1 -0
  221. package/src/console/ui-next/dist/assets/vault-page-Ca-MvcmJ.js +2 -0
  222. package/src/console/ui-next/dist/assets/xyflow-D7n4g6go.js +7 -0
  223. package/src/console/ui-next/dist/assets/xyflow-DZ0Ws1xk.css +1 -0
  224. package/src/console/ui-next/dist/favicon.svg +6 -0
  225. package/src/console/ui-next/dist/index.html +56 -0
  226. package/src/console/ui-next/index.html +45 -0
  227. package/src/console/ui-next/public/favicon.svg +6 -0
  228. package/src/console/ui-next/seed-invoke-host.test.ts +47 -0
  229. package/src/console/ui-next/seed-invoke-host.ts +199 -0
  230. package/src/console/ui-next/seed-invoke-ops.test.ts +280 -0
  231. package/src/console/ui-next/seed-invoke-ops.ts +587 -0
  232. package/src/console/ui-next/src/client-session.test.ts +22 -0
  233. package/src/console/ui-next/src/client.ts +1379 -0
  234. package/src/console/ui-next/src/components/agents/agent-code.tsx +207 -0
  235. package/src/console/ui-next/src/components/agents/agent-disclosure.tsx +63 -0
  236. package/src/console/ui-next/src/components/agents/file-diff.tsx +271 -0
  237. package/src/console/ui-next/src/components/auth-card.tsx +298 -0
  238. package/src/console/ui-next/src/components/charts/animation.ts +36 -0
  239. package/src/console/ui-next/src/components/charts/area-chart-loading.tsx +115 -0
  240. package/src/console/ui-next/src/components/charts/area-chart.tsx +261 -0
  241. package/src/console/ui-next/src/components/charts/area-gradient-defs.tsx +98 -0
  242. package/src/console/ui-next/src/components/charts/area.tsx +349 -0
  243. package/src/console/ui-next/src/components/charts/chart-child-passthrough.ts +110 -0
  244. package/src/console/ui-next/src/components/charts/chart-config-context.tsx +81 -0
  245. package/src/console/ui-next/src/components/charts/chart-context.tsx +414 -0
  246. package/src/console/ui-next/src/components/charts/chart-defs.ts +61 -0
  247. package/src/console/ui-next/src/components/charts/chart-formatters.ts +26 -0
  248. package/src/console/ui-next/src/components/charts/chart-legend-hover.tsx +41 -0
  249. package/src/console/ui-next/src/components/charts/chart-loading-label.tsx +56 -0
  250. package/src/console/ui-next/src/components/charts/chart-phase.ts +52 -0
  251. package/src/console/ui-next/src/components/charts/chart-reveal-clip.tsx +87 -0
  252. package/src/console/ui-next/src/components/charts/composed-chart.tsx +333 -0
  253. package/src/console/ui-next/src/components/charts/dash-tail-stroke.tsx +75 -0
  254. package/src/console/ui-next/src/components/charts/decimate-time-series.ts +134 -0
  255. package/src/console/ui-next/src/components/charts/fade-edges.ts +52 -0
  256. package/src/console/ui-next/src/components/charts/filter-data-by-x-domain.ts +59 -0
  257. package/src/console/ui-next/src/components/charts/generate-chart-skeleton-data.ts +42 -0
  258. package/src/console/ui-next/src/components/charts/grid.tsx +299 -0
  259. package/src/console/ui-next/src/components/charts/highlight-segment-bounds.ts +68 -0
  260. package/src/console/ui-next/src/components/charts/highlight-segment.tsx +65 -0
  261. package/src/console/ui-next/src/components/charts/indicator-fade.ts +62 -0
  262. package/src/console/ui-next/src/components/charts/line-chart-loading.tsx +111 -0
  263. package/src/console/ui-next/src/components/charts/line-chart.tsx +293 -0
  264. package/src/console/ui-next/src/components/charts/line-loading-pulse.tsx +201 -0
  265. package/src/console/ui-next/src/components/charts/line-loading-timing.ts +12 -0
  266. package/src/console/ui-next/src/components/charts/line-series-terminal-marker.tsx +91 -0
  267. package/src/console/ui-next/src/components/charts/line.tsx +384 -0
  268. package/src/console/ui-next/src/components/charts/loading-sweep.tsx +452 -0
  269. package/src/console/ui-next/src/components/charts/motion-utils.ts +47 -0
  270. package/src/console/ui-next/src/components/charts/path-stroke-utils.ts +82 -0
  271. package/src/console/ui-next/src/components/charts/pattern-area.tsx +45 -0
  272. package/src/console/ui-next/src/components/charts/projection-config.ts +112 -0
  273. package/src/console/ui-next/src/components/charts/projection-line-end-marker.tsx +51 -0
  274. package/src/console/ui-next/src/components/charts/projection-line.tsx +208 -0
  275. package/src/console/ui-next/src/components/charts/projection-utils.ts +378 -0
  276. package/src/console/ui-next/src/components/charts/reference-area-config.ts +59 -0
  277. package/src/console/ui-next/src/components/charts/reference-area-geometry.ts +136 -0
  278. package/src/console/ui-next/src/components/charts/reference-area-registration-context.tsx +16 -0
  279. package/src/console/ui-next/src/components/charts/series-bar-layout.ts +60 -0
  280. package/src/console/ui-next/src/components/charts/series-bar.tsx +304 -0
  281. package/src/console/ui-next/src/components/charts/series-dash-tail-overlay.tsx +82 -0
  282. package/src/console/ui-next/src/components/charts/series-highlight-layer.tsx +49 -0
  283. package/src/console/ui-next/src/components/charts/series-hover-dim.tsx +57 -0
  284. package/src/console/ui-next/src/components/charts/series-markers.tsx +267 -0
  285. package/src/console/ui-next/src/components/charts/series-path-utils.ts +103 -0
  286. package/src/console/ui-next/src/components/charts/series-point-marker.tsx +205 -0
  287. package/src/console/ui-next/src/components/charts/static-chart-preview-context.tsx +16 -0
  288. package/src/console/ui-next/src/components/charts/time-series-chart-shell.tsx +644 -0
  289. package/src/console/ui-next/src/components/charts/tooltip/chart-tooltip.tsx +400 -0
  290. package/src/console/ui-next/src/components/charts/tooltip/date-ticker.tsx +140 -0
  291. package/src/console/ui-next/src/components/charts/tooltip/index.ts +10 -0
  292. package/src/console/ui-next/src/components/charts/tooltip/tooltip-box.tsx +227 -0
  293. package/src/console/ui-next/src/components/charts/tooltip/tooltip-content.tsx +58 -0
  294. package/src/console/ui-next/src/components/charts/tooltip/tooltip-dot.tsx +173 -0
  295. package/src/console/ui-next/src/components/charts/tooltip/tooltip-indicator.tsx +191 -0
  296. package/src/console/ui-next/src/components/charts/use-animated-series-path.ts +155 -0
  297. package/src/console/ui-next/src/components/charts/use-animated-y-domains.ts +227 -0
  298. package/src/console/ui-next/src/components/charts/use-chart-interaction.ts +343 -0
  299. package/src/console/ui-next/src/components/charts/use-chart-phase-orchestrator.ts +173 -0
  300. package/src/console/ui-next/src/components/charts/use-enter-complete.ts +28 -0
  301. package/src/console/ui-next/src/components/charts/use-grid-shimmer.ts +101 -0
  302. package/src/console/ui-next/src/components/charts/use-highlight-segment.ts +58 -0
  303. package/src/console/ui-next/src/components/charts/use-mount-progress.ts +29 -0
  304. package/src/console/ui-next/src/components/charts/use-scheduled-tooltip.ts +97 -0
  305. package/src/console/ui-next/src/components/charts/x-axis.tsx +635 -0
  306. package/src/console/ui-next/src/components/charts/y-axis-scales.ts +108 -0
  307. package/src/console/ui-next/src/components/charts/y-axis-ticks.ts +25 -0
  308. package/src/console/ui-next/src/components/charts/y-axis.tsx +151 -0
  309. package/src/console/ui-next/src/components/charts/y-domain-utils.ts +120 -0
  310. package/src/console/ui-next/src/components/console-chrome.tsx +50 -0
  311. package/src/console/ui-next/src/components/document-title.tsx +18 -0
  312. package/src/console/ui-next/src/components/explorer/copy-inline-button.tsx +57 -0
  313. package/src/console/ui-next/src/components/explorer/detail-header.tsx +82 -0
  314. package/src/console/ui-next/src/components/explorer/explorer-chrome.ts +123 -0
  315. package/src/console/ui-next/src/components/explorer/explorer-empty.tsx +67 -0
  316. package/src/console/ui-next/src/components/explorer/explorer-search.tsx +20 -0
  317. package/src/console/ui-next/src/components/explorer/explorer-start-toggle.tsx +52 -0
  318. package/src/console/ui-next/src/components/explorer/section-head.tsx +33 -0
  319. package/src/console/ui-next/src/components/explorer/tree-expand-toggle.tsx +69 -0
  320. package/src/console/ui-next/src/components/explorer/use-explorer-start-panel.ts +34 -0
  321. package/src/console/ui-next/src/components/gate-list.tsx +70 -0
  322. package/src/console/ui-next/src/components/generate-password-button.tsx +76 -0
  323. package/src/console/ui-next/src/components/highlighted-json.tsx +73 -0
  324. package/src/console/ui-next/src/components/http-method-badge.tsx +35 -0
  325. package/src/console/ui-next/src/components/mode-toggle.tsx +84 -0
  326. package/src/console/ui-next/src/components/motion/button/base.tsx +145 -0
  327. package/src/console/ui-next/src/components/motion/button/expanding-arrow.tsx +167 -0
  328. package/src/console/ui-next/src/components/motion/button/index.ts +12 -0
  329. package/src/console/ui-next/src/components/motion/button/stateful.tsx +243 -0
  330. package/src/console/ui-next/src/components/motion/checkbox.tsx +120 -0
  331. package/src/console/ui-next/src/components/motion/select.tsx +436 -0
  332. package/src/console/ui-next/src/components/motion/switch.tsx +108 -0
  333. package/src/console/ui-next/src/components/motion/table/editable-cell.tsx +98 -0
  334. package/src/console/ui-next/src/components/motion/table/index.tsx +404 -0
  335. package/src/console/ui-next/src/components/motion/table/row-handle.tsx +95 -0
  336. package/src/console/ui-next/src/components/motion/table/skeleton-rows.tsx +52 -0
  337. package/src/console/ui-next/src/components/motion/table/table-header.tsx +337 -0
  338. package/src/console/ui-next/src/components/motion/table/table-menu.tsx +130 -0
  339. package/src/console/ui-next/src/components/motion/table/types.ts +109 -0
  340. package/src/console/ui-next/src/components/motion/table/use-cell-range.ts +145 -0
  341. package/src/console/ui-next/src/components/motion/table/use-column-reorder.ts +112 -0
  342. package/src/console/ui-next/src/components/motion/table/use-column-resize.ts +83 -0
  343. package/src/console/ui-next/src/components/motion/table/use-column-sort.ts +73 -0
  344. package/src/console/ui-next/src/components/motion/table/use-row-selection.ts +70 -0
  345. package/src/console/ui-next/src/components/motion/table/utils.ts +138 -0
  346. package/src/console/ui-next/src/components/oke-logo.tsx +65 -0
  347. package/src/console/ui-next/src/components/password-input.tsx +67 -0
  348. package/src/console/ui-next/src/components/password-strength.tsx +160 -0
  349. package/src/console/ui-next/src/components/shell/app-sidebar.tsx +117 -0
  350. package/src/console/ui-next/src/components/shell/command-items.test.ts +30 -0
  351. package/src/console/ui-next/src/components/shell/command-items.ts +144 -0
  352. package/src/console/ui-next/src/components/shell/command-match.test.ts +37 -0
  353. package/src/console/ui-next/src/components/shell/command-match.ts +45 -0
  354. package/src/console/ui-next/src/components/shell/command-palette.tsx +334 -0
  355. package/src/console/ui-next/src/components/shell/nav-footer.tsx +109 -0
  356. package/src/console/ui-next/src/components/shell/section-empty.tsx +42 -0
  357. package/src/console/ui-next/src/components/shell/settings-dialog.tsx +65 -0
  358. package/src/console/ui-next/src/components/shell/shell-layout.tsx +100 -0
  359. package/src/console/ui-next/src/components/shimmering-text.tsx +87 -0
  360. package/src/console/ui-next/src/components/signal-delivery-badge.tsx +38 -0
  361. package/src/console/ui-next/src/components/theme-provider.tsx +86 -0
  362. package/src/console/ui-next/src/components/ui/alert-dialog.tsx +147 -0
  363. package/src/console/ui-next/src/components/ui/avatar.tsx +91 -0
  364. package/src/console/ui-next/src/components/ui/badge.tsx +54 -0
  365. package/src/console/ui-next/src/components/ui/breadcrumb.tsx +104 -0
  366. package/src/console/ui-next/src/components/ui/button.tsx +58 -0
  367. package/src/console/ui-next/src/components/ui/card.tsx +88 -0
  368. package/src/console/ui-next/src/components/ui/collapsible.tsx +15 -0
  369. package/src/console/ui-next/src/components/ui/confirm-sheet.tsx +149 -0
  370. package/src/console/ui-next/src/components/ui/dialog.tsx +144 -0
  371. package/src/console/ui-next/src/components/ui/dropdown-menu.tsx +265 -0
  372. package/src/console/ui-next/src/components/ui/empty.tsx +95 -0
  373. package/src/console/ui-next/src/components/ui/field.tsx +224 -0
  374. package/src/console/ui-next/src/components/ui/input.tsx +30 -0
  375. package/src/console/ui-next/src/components/ui/kbd.tsx +41 -0
  376. package/src/console/ui-next/src/components/ui/label.tsx +20 -0
  377. package/src/console/ui-next/src/components/ui/progress.tsx +66 -0
  378. package/src/console/ui-next/src/components/ui/resizable.tsx +74 -0
  379. package/src/console/ui-next/src/components/ui/select.tsx +230 -0
  380. package/src/console/ui-next/src/components/ui/separator.tsx +21 -0
  381. package/src/console/ui-next/src/components/ui/sheet-form.tsx +337 -0
  382. package/src/console/ui-next/src/components/ui/sheet.tsx +130 -0
  383. package/src/console/ui-next/src/components/ui/sidebar.tsx +691 -0
  384. package/src/console/ui-next/src/components/ui/skeleton.tsx +20 -0
  385. package/src/console/ui-next/src/components/ui/toggle-group.tsx +87 -0
  386. package/src/console/ui-next/src/components/ui/toggle.tsx +46 -0
  387. package/src/console/ui-next/src/components/ui/toolbar-tip.tsx +41 -0
  388. package/src/console/ui-next/src/components/ui/tooltip.tsx +74 -0
  389. package/src/console/ui-next/src/features/auth/auth-redirect.test.ts +119 -0
  390. package/src/console/ui-next/src/features/auth/auth-redirect.ts +153 -0
  391. package/src/console/ui-next/src/features/auth/login-form.tsx +234 -0
  392. package/src/console/ui-next/src/features/auth/logout.ts +17 -0
  393. package/src/console/ui-next/src/features/flows/data/console-live-session.test.ts +329 -0
  394. package/src/console/ui-next/src/features/flows/data/console-live-session.ts +210 -0
  395. package/src/console/ui-next/src/features/flows/data/use-console-live.ts +79 -0
  396. package/src/console/ui-next/src/features/flows/data/use-manifest.ts +23 -0
  397. package/src/console/ui-next/src/features/flows/data/use-runs.ts +24 -0
  398. package/src/console/ui-next/src/features/flows/fixture.ts +81 -0
  399. package/src/console/ui-next/src/features/flows/flows-page.tsx +227 -0
  400. package/src/console/ui-next/src/features/flows/graph/build-flow-graph.test.ts +236 -0
  401. package/src/console/ui-next/src/features/flows/graph/build-flow-graph.ts +530 -0
  402. package/src/console/ui-next/src/features/flows/graph/element-map.test.ts +443 -0
  403. package/src/console/ui-next/src/features/flows/graph/element-map.ts +1077 -0
  404. package/src/console/ui-next/src/features/flows/graph/flow-graph-nodes.tsx +486 -0
  405. package/src/console/ui-next/src/features/flows/graph/flow-graph-theme.ts +143 -0
  406. package/src/console/ui-next/src/features/flows/graph/flow-graph.tsx +268 -0
  407. package/src/console/ui-next/src/features/flows/graph/neighborhood.test.ts +64 -0
  408. package/src/console/ui-next/src/features/flows/graph/neighborhood.ts +82 -0
  409. package/src/console/ui-next/src/features/flows/graph/orchestra.test.ts +97 -0
  410. package/src/console/ui-next/src/features/flows/graph/orchestra.ts +86 -0
  411. package/src/console/ui-next/src/features/flows/graph/use-overview-orchestra.ts +95 -0
  412. package/src/console/ui-next/src/features/flows/state/flows-selection.test.ts +24 -0
  413. package/src/console/ui-next/src/features/flows/state/flows-selection.ts +92 -0
  414. package/src/console/ui-next/src/features/flows/traces/advanced-filters.tsx +222 -0
  415. package/src/console/ui-next/src/features/flows/traces/cache-glyph.tsx +42 -0
  416. package/src/console/ui-next/src/features/flows/traces/cache-icon.test.ts +27 -0
  417. package/src/console/ui-next/src/features/flows/traces/cache-icon.ts +48 -0
  418. package/src/console/ui-next/src/features/flows/traces/dimension-query.test.ts +100 -0
  419. package/src/console/ui-next/src/features/flows/traces/dimension-query.ts +325 -0
  420. package/src/console/ui-next/src/features/flows/traces/duration-tone.test.ts +71 -0
  421. package/src/console/ui-next/src/features/flows/traces/duration-tone.ts +128 -0
  422. package/src/console/ui-next/src/features/flows/traces/effect-kind.ts +106 -0
  423. package/src/console/ui-next/src/features/flows/traces/effect-summary.ts +193 -0
  424. package/src/console/ui-next/src/features/flows/traces/filter-runs.test.ts +98 -0
  425. package/src/console/ui-next/src/features/flows/traces/filter-runs.ts +68 -0
  426. package/src/console/ui-next/src/features/flows/traces/format-duration.test.ts +47 -0
  427. package/src/console/ui-next/src/features/flows/traces/format-duration.ts +25 -0
  428. package/src/console/ui-next/src/features/flows/traces/graph-filter.test.ts +192 -0
  429. package/src/console/ui-next/src/features/flows/traces/graph-filter.ts +175 -0
  430. package/src/console/ui-next/src/features/flows/traces/http-method.ts +134 -0
  431. package/src/console/ui-next/src/features/flows/traces/replay-playback.test.ts +101 -0
  432. package/src/console/ui-next/src/features/flows/traces/replay-playback.ts +107 -0
  433. package/src/console/ui-next/src/features/flows/traces/request-input-view.test.ts +60 -0
  434. package/src/console/ui-next/src/features/flows/traces/request-input-view.ts +108 -0
  435. package/src/console/ui-next/src/features/flows/traces/request-meta.ts +62 -0
  436. package/src/console/ui-next/src/features/flows/traces/scope-runs.test.ts +51 -0
  437. package/src/console/ui-next/src/features/flows/traces/scope-runs.ts +23 -0
  438. package/src/console/ui-next/src/features/flows/traces/trace-actions.test.ts +80 -0
  439. package/src/console/ui-next/src/features/flows/traces/trace-actions.ts +57 -0
  440. package/src/console/ui-next/src/features/flows/traces/trace-chain.test.ts +68 -0
  441. package/src/console/ui-next/src/features/flows/traces/trace-chain.ts +59 -0
  442. package/src/console/ui-next/src/features/flows/traces/trace-detail-sheet.tsx +1003 -0
  443. package/src/console/ui-next/src/features/flows/traces/trace-detail.test.ts +357 -0
  444. package/src/console/ui-next/src/features/flows/traces/trace-gates.ts +90 -0
  445. package/src/console/ui-next/src/features/flows/traces/trace-request-section.tsx +574 -0
  446. package/src/console/ui-next/src/features/flows/traces/trace-row-meta.test.ts +42 -0
  447. package/src/console/ui-next/src/features/flows/traces/trace-row-meta.ts +47 -0
  448. package/src/console/ui-next/src/features/flows/traces/trace-row.tsx +149 -0
  449. package/src/console/ui-next/src/features/flows/traces/traces-pane.tsx +289 -0
  450. package/src/console/ui-next/src/features/flows/traces/trigger-icon.test.ts +42 -0
  451. package/src/console/ui-next/src/features/flows/traces/trigger-icon.ts +53 -0
  452. package/src/console/ui-next/src/features/flows/traces/waterfall-bars.test.ts +93 -0
  453. package/src/console/ui-next/src/features/flows/traces/waterfall-bars.ts +80 -0
  454. package/src/console/ui-next/src/features/flows/traces/waterfall-timeline.test.ts +121 -0
  455. package/src/console/ui-next/src/features/flows/traces/waterfall-timeline.ts +230 -0
  456. package/src/console/ui-next/src/features/flows/traces/waterfall-tooltip.test.ts +51 -0
  457. package/src/console/ui-next/src/features/flows/traces/waterfall-tooltip.ts +20 -0
  458. package/src/console/ui-next/src/features/not-found/not-found-page.tsx +23 -0
  459. package/src/console/ui-next/src/features/observability/data/use-ai-list.ts +26 -0
  460. package/src/console/ui-next/src/features/observability/data/use-clock-list.ts +27 -0
  461. package/src/console/ui-next/src/features/observability/data/use-instances-list.ts +27 -0
  462. package/src/console/ui-next/src/features/observability/data/use-runs-query.ts +39 -0
  463. package/src/console/ui-next/src/features/observability/data/use-signals-list.ts +25 -0
  464. package/src/console/ui-next/src/features/observability/detail/ai-rail.tsx +77 -0
  465. package/src/console/ui-next/src/features/observability/detail/instance-fleet-sheet.tsx +111 -0
  466. package/src/console/ui-next/src/features/observability/detail/metrics-chart.tsx +111 -0
  467. package/src/console/ui-next/src/features/observability/detail/metrics-panel.tsx +154 -0
  468. package/src/console/ui-next/src/features/observability/explorer/error-list.tsx +139 -0
  469. package/src/console/ui-next/src/features/observability/explorer/error-row.tsx +84 -0
  470. package/src/console/ui-next/src/features/observability/explorer/health-strip.tsx +146 -0
  471. package/src/console/ui-next/src/features/observability/lib/ask-count.test.ts +47 -0
  472. package/src/console/ui-next/src/features/observability/lib/ask-count.ts +44 -0
  473. package/src/console/ui-next/src/features/observability/lib/health-cells.test.ts +243 -0
  474. package/src/console/ui-next/src/features/observability/lib/health-cells.ts +207 -0
  475. package/src/console/ui-next/src/features/observability/lib/run-fixture.ts +43 -0
  476. package/src/console/ui-next/src/features/observability/lib/time-buckets.test.ts +61 -0
  477. package/src/console/ui-next/src/features/observability/lib/time-buckets.ts +126 -0
  478. package/src/console/ui-next/src/features/observability/lib/token-count.test.ts +75 -0
  479. package/src/console/ui-next/src/features/observability/lib/token-count.ts +70 -0
  480. package/src/console/ui-next/src/features/observability/lib/top-errors.test.ts +89 -0
  481. package/src/console/ui-next/src/features/observability/lib/top-errors.ts +135 -0
  482. package/src/console/ui-next/src/features/observability/lib/window-stats.test.ts +62 -0
  483. package/src/console/ui-next/src/features/observability/lib/window-stats.ts +124 -0
  484. package/src/console/ui-next/src/features/observability/observability-page.tsx +217 -0
  485. package/src/console/ui-next/src/features/observability/query/runs-query-panel.tsx +91 -0
  486. package/src/console/ui-next/src/features/observability/state/observability-selection.test.ts +27 -0
  487. package/src/console/ui-next/src/features/observability/state/observability-selection.ts +121 -0
  488. package/src/console/ui-next/src/features/setup/auth-gate.test.ts +17 -0
  489. package/src/console/ui-next/src/features/setup/auth-gate.ts +21 -0
  490. package/src/console/ui-next/src/features/setup/claim-page.tsx +418 -0
  491. package/src/console/ui-next/src/features/store/data/use-gates.ts +26 -0
  492. package/src/console/ui-next/src/features/store/data/use-store-edit.ts +92 -0
  493. package/src/console/ui-next/src/features/store/data/use-store-files.ts +96 -0
  494. package/src/console/ui-next/src/features/store/data/use-store-kv-stats.ts +47 -0
  495. package/src/console/ui-next/src/features/store/data/use-store-query.test.ts +42 -0
  496. package/src/console/ui-next/src/features/store/data/use-store-query.ts +68 -0
  497. package/src/console/ui-next/src/features/store/data/use-store-reveal.ts +28 -0
  498. package/src/console/ui-next/src/features/store/data/use-store-sql-advise.ts +39 -0
  499. package/src/console/ui-next/src/features/store/data/use-store-sql-locks.ts +51 -0
  500. package/src/console/ui-next/src/features/store/data/use-store-sql-stats.ts +47 -0
  501. package/src/console/ui-next/src/features/store/data/use-store-sql.ts +39 -0
  502. package/src/console/ui-next/src/features/store/data/use-stores-list.ts +24 -0
  503. package/src/console/ui-next/src/features/store/detail/browse-section.tsx +692 -0
  504. package/src/console/ui-next/src/features/store/detail/json-value-sheet.tsx +470 -0
  505. package/src/console/ui-next/src/features/store/detail/resource-panel.tsx +325 -0
  506. package/src/console/ui-next/src/features/store/detail/reveal-cell.tsx +137 -0
  507. package/src/console/ui-next/src/features/store/detail/store-row-detail-sheet.tsx +225 -0
  508. package/src/console/ui-next/src/features/store/detail/touched-by-section.tsx +101 -0
  509. package/src/console/ui-next/src/features/store/explorer/store-tree.tsx +1044 -0
  510. package/src/console/ui-next/src/features/store/files/file-explorer.tsx +563 -0
  511. package/src/console/ui-next/src/features/store/files/file-kind-icon.tsx +70 -0
  512. package/src/console/ui-next/src/features/store/files/file-preview.tsx +338 -0
  513. package/src/console/ui-next/src/features/store/files/file-upload-sheet.tsx +190 -0
  514. package/src/console/ui-next/src/features/store/grid/catalog-advanced.tsx +80 -0
  515. package/src/console/ui-next/src/features/store/grid/extension-library-sheet.tsx +761 -0
  516. package/src/console/ui-next/src/features/store/grid/kv-add-sheet.tsx +165 -0
  517. package/src/console/ui-next/src/features/store/grid/pending-changes-sheet.tsx +219 -0
  518. package/src/console/ui-next/src/features/store/grid/rls-policy-sheet.tsx +875 -0
  519. package/src/console/ui-next/src/features/store/grid/sql-function-sheet.tsx +473 -0
  520. package/src/console/ui-next/src/features/store/grid/sql-index-sheet.tsx +355 -0
  521. package/src/console/ui-next/src/features/store/grid/sql-insert-sheet.tsx +177 -0
  522. package/src/console/ui-next/src/features/store/grid/sql-trigger-sheet.tsx +445 -0
  523. package/src/console/ui-next/src/features/store/grid/store-confirm-sheet.tsx +73 -0
  524. package/src/console/ui-next/src/features/store/grid/store-data-grid.tsx +1844 -0
  525. package/src/console/ui-next/src/features/store/grid/store-edit-sheet.tsx +329 -0
  526. package/src/console/ui-next/src/features/store/grid/store-grid-context-menu.tsx +111 -0
  527. package/src/console/ui-next/src/features/store/grid/store-grid-shortcuts.tsx +124 -0
  528. package/src/console/ui-next/src/features/store/lib/cell-selection.test.ts +125 -0
  529. package/src/console/ui-next/src/features/store/lib/cell-selection.ts +115 -0
  530. package/src/console/ui-next/src/features/store/lib/confirmation.test.ts +48 -0
  531. package/src/console/ui-next/src/features/store/lib/confirmation.ts +63 -0
  532. package/src/console/ui-next/src/features/store/lib/edit-history.test.ts +60 -0
  533. package/src/console/ui-next/src/features/store/lib/edit-history.ts +64 -0
  534. package/src/console/ui-next/src/features/store/lib/fields-from-table.ts +94 -0
  535. package/src/console/ui-next/src/features/store/lib/files-body.test.ts +16 -0
  536. package/src/console/ui-next/src/features/store/lib/files-body.ts +79 -0
  537. package/src/console/ui-next/src/features/store/lib/files-meta.test.ts +75 -0
  538. package/src/console/ui-next/src/features/store/lib/files-meta.ts +259 -0
  539. package/src/console/ui-next/src/features/store/lib/files-origin.test.ts +69 -0
  540. package/src/console/ui-next/src/features/store/lib/files-origin.ts +53 -0
  541. package/src/console/ui-next/src/features/store/lib/files-tree.test.ts +123 -0
  542. package/src/console/ui-next/src/features/store/lib/files-tree.ts +233 -0
  543. package/src/console/ui-next/src/features/store/lib/grid-model.test.ts +127 -0
  544. package/src/console/ui-next/src/features/store/lib/grid-model.ts +219 -0
  545. package/src/console/ui-next/src/features/store/lib/grid-transfer.test.ts +123 -0
  546. package/src/console/ui-next/src/features/store/lib/grid-transfer.ts +217 -0
  547. package/src/console/ui-next/src/features/store/lib/index-query.test.ts +30 -0
  548. package/src/console/ui-next/src/features/store/lib/index-query.ts +57 -0
  549. package/src/console/ui-next/src/features/store/lib/json-value.test.ts +141 -0
  550. package/src/console/ui-next/src/features/store/lib/json-value.ts +266 -0
  551. package/src/console/ui-next/src/features/store/lib/kv-format.test.ts +44 -0
  552. package/src/console/ui-next/src/features/store/lib/kv-format.ts +103 -0
  553. package/src/console/ui-next/src/features/store/lib/kv-meta.test.ts +43 -0
  554. package/src/console/ui-next/src/features/store/lib/kv-meta.ts +63 -0
  555. package/src/console/ui-next/src/features/store/lib/kv-query.test.ts +128 -0
  556. package/src/console/ui-next/src/features/store/lib/kv-query.ts +303 -0
  557. package/src/console/ui-next/src/features/store/lib/parse-resource-ref.ts +38 -0
  558. package/src/console/ui-next/src/features/store/lib/patch.test.ts +99 -0
  559. package/src/console/ui-next/src/features/store/lib/patch.ts +129 -0
  560. package/src/console/ui-next/src/features/store/lib/pending-edits.test.ts +125 -0
  561. package/src/console/ui-next/src/features/store/lib/pending-edits.ts +150 -0
  562. package/src/console/ui-next/src/features/store/lib/pending-sql.test.ts +108 -0
  563. package/src/console/ui-next/src/features/store/lib/pending-sql.ts +136 -0
  564. package/src/console/ui-next/src/features/store/lib/pg-extension-library.test.ts +117 -0
  565. package/src/console/ui-next/src/features/store/lib/pg-extension-library.ts +277 -0
  566. package/src/console/ui-next/src/features/store/lib/query-defaults.test.ts +78 -0
  567. package/src/console/ui-next/src/features/store/lib/query-defaults.ts +77 -0
  568. package/src/console/ui-next/src/features/store/lib/query-gate.test.ts +132 -0
  569. package/src/console/ui-next/src/features/store/lib/query-gate.ts +187 -0
  570. package/src/console/ui-next/src/features/store/lib/query-highlight.test.ts +103 -0
  571. package/src/console/ui-next/src/features/store/lib/query-highlight.ts +382 -0
  572. package/src/console/ui-next/src/features/store/lib/query-schema.test.ts +139 -0
  573. package/src/console/ui-next/src/features/store/lib/query-schema.ts +128 -0
  574. package/src/console/ui-next/src/features/store/lib/query-session.test.ts +91 -0
  575. package/src/console/ui-next/src/features/store/lib/query-session.ts +330 -0
  576. package/src/console/ui-next/src/features/store/lib/replica-lag.test.ts +101 -0
  577. package/src/console/ui-next/src/features/store/lib/replica-lag.ts +31 -0
  578. package/src/console/ui-next/src/features/store/lib/resource-effects.ts +12 -0
  579. package/src/console/ui-next/src/features/store/lib/rls-gate-catalog.test.ts +131 -0
  580. package/src/console/ui-next/src/features/store/lib/rls-gate-catalog.ts +274 -0
  581. package/src/console/ui-next/src/features/store/lib/rls-policy.test.ts +95 -0
  582. package/src/console/ui-next/src/features/store/lib/rls-policy.ts +290 -0
  583. package/src/console/ui-next/src/features/store/lib/rtl.test.ts +17 -0
  584. package/src/console/ui-next/src/features/store/lib/rtl.ts +15 -0
  585. package/src/console/ui-next/src/features/store/lib/schema-color.test.ts +91 -0
  586. package/src/console/ui-next/src/features/store/lib/schema-color.ts +216 -0
  587. package/src/console/ui-next/src/features/store/lib/schema-graph.test.ts +435 -0
  588. package/src/console/ui-next/src/features/store/lib/schema-graph.ts +566 -0
  589. package/src/console/ui-next/src/features/store/lib/sql-catalog.test.ts +60 -0
  590. package/src/console/ui-next/src/features/store/lib/sql-catalog.ts +98 -0
  591. package/src/console/ui-next/src/features/store/lib/sql-complete.test.ts +109 -0
  592. package/src/console/ui-next/src/features/store/lib/sql-complete.ts +385 -0
  593. package/src/console/ui-next/src/features/store/lib/sql-format.test.ts +35 -0
  594. package/src/console/ui-next/src/features/store/lib/sql-format.ts +85 -0
  595. package/src/console/ui-next/src/features/store/lib/sql-function.test.ts +141 -0
  596. package/src/console/ui-next/src/features/store/lib/sql-function.ts +195 -0
  597. package/src/console/ui-next/src/features/store/lib/sql-index.test.ts +101 -0
  598. package/src/console/ui-next/src/features/store/lib/sql-index.ts +151 -0
  599. package/src/console/ui-next/src/features/store/lib/sql-statements.test.ts +114 -0
  600. package/src/console/ui-next/src/features/store/lib/sql-statements.ts +205 -0
  601. package/src/console/ui-next/src/features/store/lib/sql-trigger.test.ts +125 -0
  602. package/src/console/ui-next/src/features/store/lib/sql-trigger.ts +210 -0
  603. package/src/console/ui-next/src/features/store/lib/store-tree.test.ts +220 -0
  604. package/src/console/ui-next/src/features/store/lib/store-tree.ts +314 -0
  605. package/src/console/ui-next/src/features/store/performance/advisor-enable.test.ts +16 -0
  606. package/src/console/ui-next/src/features/store/performance/advisor-enable.ts +26 -0
  607. package/src/console/ui-next/src/features/store/performance/kv-performance-panel.tsx +223 -0
  608. package/src/console/ui-next/src/features/store/performance/performance-panel.tsx +442 -0
  609. package/src/console/ui-next/src/features/store/query/query-complete.tsx +131 -0
  610. package/src/console/ui-next/src/features/store/query/query-console.tsx +1159 -0
  611. package/src/console/ui-next/src/features/store/query/query-editor.tsx +300 -0
  612. package/src/console/ui-next/src/features/store/query/query-gate-menu.tsx +178 -0
  613. package/src/console/ui-next/src/features/store/query/query-gate-parts.tsx +344 -0
  614. package/src/console/ui-next/src/features/store/query/query-gate-viz.tsx +166 -0
  615. package/src/console/ui-next/src/features/store/query/query-highlight-view.tsx +61 -0
  616. package/src/console/ui-next/src/features/store/query/query-results.tsx +369 -0
  617. package/src/console/ui-next/src/features/store/query/query-schema-panel.tsx +300 -0
  618. package/src/console/ui-next/src/features/store/query/sql-style-editor.tsx +73 -0
  619. package/src/console/ui-next/src/features/store/schema/schema-constraint-icon.tsx +108 -0
  620. package/src/console/ui-next/src/features/store/schema/schema-relation-edge.tsx +76 -0
  621. package/src/console/ui-next/src/features/store/schema/schema-relation-icon.tsx +84 -0
  622. package/src/console/ui-next/src/features/store/schema/schema-table-node.tsx +199 -0
  623. package/src/console/ui-next/src/features/store/schema/schema-visualizer.tsx +273 -0
  624. package/src/console/ui-next/src/features/store/state/store-selection.test.ts +38 -0
  625. package/src/console/ui-next/src/features/store/state/store-selection.ts +154 -0
  626. package/src/console/ui-next/src/features/store/store-page.tsx +180 -0
  627. package/src/console/ui-next/src/features/units/call/call-api-panel.tsx +1247 -0
  628. package/src/console/ui-next/src/features/units/call/call-identity-menu.tsx +226 -0
  629. package/src/console/ui-next/src/features/units/call/call-pii-button.tsx +60 -0
  630. package/src/console/ui-next/src/features/units/data/use-flows-invoke.ts +75 -0
  631. package/src/console/ui-next/src/features/units/detail/effects-summary.tsx +80 -0
  632. package/src/console/ui-next/src/features/units/detail/errors-section.tsx +64 -0
  633. package/src/console/ui-next/src/features/units/detail/flow-activity-strip.tsx +119 -0
  634. package/src/console/ui-next/src/features/units/detail/flow-contract-panel.tsx +335 -0
  635. package/src/console/ui-next/src/features/units/detail/schema-fields.tsx +149 -0
  636. package/src/console/ui-next/src/features/units/detail/validation-section.tsx +66 -0
  637. package/src/console/ui-next/src/features/units/explorer/units-tree.tsx +644 -0
  638. package/src/console/ui-next/src/features/units/lib/call-invoke-as.test.ts +40 -0
  639. package/src/console/ui-next/src/features/units/lib/call-read-safe.test.ts +38 -0
  640. package/src/console/ui-next/src/features/units/lib/call-read-safe.ts +32 -0
  641. package/src/console/ui-next/src/features/units/lib/call-timing.test.ts +28 -0
  642. package/src/console/ui-next/src/features/units/lib/call-timing.ts +34 -0
  643. package/src/console/ui-next/src/features/units/lib/contract-input.test.ts +47 -0
  644. package/src/console/ui-next/src/features/units/lib/contract-input.ts +68 -0
  645. package/src/console/ui-next/src/features/units/lib/fields-from-schema.test.ts +119 -0
  646. package/src/console/ui-next/src/features/units/lib/fields-from-schema.ts +329 -0
  647. package/src/console/ui-next/src/features/units/lib/fk-lookup.test.ts +103 -0
  648. package/src/console/ui-next/src/features/units/lib/fk-lookup.ts +175 -0
  649. package/src/console/ui-next/src/features/units/lib/flow-activity.test.ts +76 -0
  650. package/src/console/ui-next/src/features/units/lib/flow-activity.ts +68 -0
  651. package/src/console/ui-next/src/features/units/lib/flow-trigger.test.ts +63 -0
  652. package/src/console/ui-next/src/features/units/lib/flow-trigger.ts +120 -0
  653. package/src/console/ui-next/src/features/units/lib/invoke-cache.test.ts +31 -0
  654. package/src/console/ui-next/src/features/units/lib/invoke-cache.ts +22 -0
  655. package/src/console/ui-next/src/features/units/lib/invoke-response.test.ts +76 -0
  656. package/src/console/ui-next/src/features/units/lib/invoke-response.ts +70 -0
  657. package/src/console/ui-next/src/features/units/lib/path-params.test.ts +43 -0
  658. package/src/console/ui-next/src/features/units/lib/path-params.ts +75 -0
  659. package/src/console/ui-next/src/features/units/lib/resolve-clock.test.ts +106 -0
  660. package/src/console/ui-next/src/features/units/lib/resolve-clock.ts +79 -0
  661. package/src/console/ui-next/src/features/units/lib/schema-type-visual.ts +28 -0
  662. package/src/console/ui-next/src/features/units/lib/signal-delivery.test.ts +29 -0
  663. package/src/console/ui-next/src/features/units/lib/signal-delivery.ts +67 -0
  664. package/src/console/ui-next/src/features/units/lib/unit-tree.test.ts +289 -0
  665. package/src/console/ui-next/src/features/units/lib/unit-tree.ts +307 -0
  666. package/src/console/ui-next/src/features/units/lib/validate-contract.ts +103 -0
  667. package/src/console/ui-next/src/features/units/state/units-selection.ts +49 -0
  668. package/src/console/ui-next/src/features/units/units-page.tsx +120 -0
  669. package/src/console/ui-next/src/features/vault/data/use-vault-list.ts +27 -0
  670. package/src/console/ui-next/src/features/vault/detail/vault-detail.tsx +831 -0
  671. package/src/console/ui-next/src/features/vault/detail/vault-overview.tsx +71 -0
  672. package/src/console/ui-next/src/features/vault/explorer/vault-list.tsx +291 -0
  673. package/src/console/ui-next/src/features/vault/explorer/vault-posture-strip.tsx +131 -0
  674. package/src/console/ui-next/src/features/vault/explorer/vault-search.tsx +126 -0
  675. package/src/console/ui-next/src/features/vault/lib/backend.test.ts +147 -0
  676. package/src/console/ui-next/src/features/vault/lib/backend.ts +216 -0
  677. package/src/console/ui-next/src/features/vault/lib/blast-radius.ts +53 -0
  678. package/src/console/ui-next/src/features/vault/lib/confirmation.test.ts +41 -0
  679. package/src/console/ui-next/src/features/vault/lib/confirmation.ts +50 -0
  680. package/src/console/ui-next/src/features/vault/lib/contract-ops.test.ts +35 -0
  681. package/src/console/ui-next/src/features/vault/lib/contract-ops.ts +94 -0
  682. package/src/console/ui-next/src/features/vault/lib/dormant.ts +28 -0
  683. package/src/console/ui-next/src/features/vault/lib/export-safe.test.ts +25 -0
  684. package/src/console/ui-next/src/features/vault/lib/export-safe.ts +62 -0
  685. package/src/console/ui-next/src/features/vault/lib/fixture.ts +92 -0
  686. package/src/console/ui-next/src/features/vault/lib/group.test.ts +31 -0
  687. package/src/console/ui-next/src/features/vault/lib/group.ts +43 -0
  688. package/src/console/ui-next/src/features/vault/lib/posture.test.ts +137 -0
  689. package/src/console/ui-next/src/features/vault/lib/posture.ts +275 -0
  690. package/src/console/ui-next/src/features/vault/lib/progress.test.ts +36 -0
  691. package/src/console/ui-next/src/features/vault/lib/progress.ts +51 -0
  692. package/src/console/ui-next/src/features/vault/lib/search.test.ts +139 -0
  693. package/src/console/ui-next/src/features/vault/lib/search.ts +403 -0
  694. package/src/console/ui-next/src/features/vault/lib/theme.ts +14 -0
  695. package/src/console/ui-next/src/features/vault/lib/types.ts +114 -0
  696. package/src/console/ui-next/src/features/vault/lib/write-review.test.ts +139 -0
  697. package/src/console/ui-next/src/features/vault/lib/write-review.ts +115 -0
  698. package/src/console/ui-next/src/features/vault/sheets/vault-create-sheet.tsx +209 -0
  699. package/src/console/ui-next/src/features/vault/sheets/vault-master-key-sheet.tsx +87 -0
  700. package/src/console/ui-next/src/features/vault/sheets/vault-rotate-master-sheet.tsx +43 -0
  701. package/src/console/ui-next/src/features/vault/sheets/vault-security-sheet.tsx +205 -0
  702. package/src/console/ui-next/src/features/vault/sheets/vault-verify-sheet.tsx +103 -0
  703. package/src/console/ui-next/src/features/vault/sheets/vault-write-review-dialog.test.tsx +175 -0
  704. package/src/console/ui-next/src/features/vault/sheets/vault-write-review-dialog.tsx +135 -0
  705. package/src/console/ui-next/src/features/vault/sheets/vault-write-sheet.tsx +224 -0
  706. package/src/console/ui-next/src/features/vault/state/vault-selection.test.ts +20 -0
  707. package/src/console/ui-next/src/features/vault/state/vault-selection.ts +87 -0
  708. package/src/console/ui-next/src/features/vault/vault-page.tsx +439 -0
  709. package/src/console/ui-next/src/hooks/use-mobile.ts +22 -0
  710. package/src/console/ui-next/src/lib/document-meta.test.ts +43 -0
  711. package/src/console/ui-next/src/lib/document-meta.ts +34 -0
  712. package/src/console/ui-next/src/lib/ease.ts +59 -0
  713. package/src/console/ui-next/src/lib/element-icons.test.ts +38 -0
  714. package/src/console/ui-next/src/lib/element-icons.ts +75 -0
  715. package/src/console/ui-next/src/lib/highlight.test.ts +30 -0
  716. package/src/console/ui-next/src/lib/highlight.ts +39 -0
  717. package/src/console/ui-next/src/lib/hooks/use-hover-capable.ts +30 -0
  718. package/src/console/ui-next/src/lib/last-module-search.test.ts +47 -0
  719. package/src/console/ui-next/src/lib/last-module-search.ts +164 -0
  720. package/src/console/ui-next/src/lib/motion.ts +16 -0
  721. package/src/console/ui-next/src/lib/shiki.ts +42 -0
  722. package/src/console/ui-next/src/lib/shortcut-keys.tsx +47 -0
  723. package/src/console/ui-next/src/lib/shortcut.test.ts +70 -0
  724. package/src/console/ui-next/src/lib/shortcut.ts +111 -0
  725. package/src/console/ui-next/src/lib/use-console-shortcuts.ts +56 -0
  726. package/src/console/ui-next/src/lib/use-last-module-search.ts +37 -0
  727. package/src/console/ui-next/src/lib/utils.ts +15 -0
  728. package/src/console/ui-next/src/main.tsx +44 -0
  729. package/src/console/ui-next/src/router.tsx +175 -0
  730. package/src/console/ui-next/src/styles.css +384 -0
  731. package/src/console/ui-next/src/vite-env.d.ts +17 -0
  732. package/src/console/ui-next/tsconfig.json +25 -0
  733. package/src/console/ui-next/ui-next-dev-operator.test.ts +76 -0
  734. package/src/console/ui-next/ui-next-dev-operator.ts +81 -0
  735. package/src/console/ui-next/ui-next-seed-app-schema.ts +526 -0
  736. package/src/console/ui-next/ui-next-seed-manifest-surface.ts +882 -0
  737. package/src/console/ui-next/ui-next-seed-manifest.ts +635 -0
  738. package/src/console/ui-next/ui-next-seed-runs.ts +1429 -0
  739. package/src/console/ui-next/ui-next-seed-store.ts +1125 -0
  740. package/src/console/ui-next/ui-next-seed.test.ts +511 -0
  741. package/src/console/ui-next/ui-next-seed.ts +122 -0
  742. package/src/console/ui-next/vite-console-kernel-plugin.ts +195 -0
  743. package/src/console/ui-next/vite.config.ts +88 -0
  744. package/src/console/xss.gate.test.ts +21 -26
  745. package/src/docker/compose.ts +26 -7
  746. package/src/docker/derive.ts +67 -13
  747. package/src/docker/docker.test.ts +219 -27
  748. package/src/docker/helpers.ts +48 -0
  749. package/src/docker/images-config.test.ts +29 -22
  750. package/src/docker/index.ts +8 -0
  751. package/src/docker/postgres-advisor.integration.test.ts +163 -0
  752. package/src/docker/query-passthrough.integration.test.ts +212 -0
  753. package/src/docker/recipes/dragonfly.ts +3 -6
  754. package/src/docker/recipes/index.ts +13 -0
  755. package/src/docker/recipes/llama-cpp.ts +3 -3
  756. package/src/docker/recipes/nginx.ts +61 -0
  757. package/src/docker/recipes/ollama.ts +1 -1
  758. package/src/docker/recipes/postgres-advisor.ts +58 -0
  759. package/src/docker/recipes/postgres.ts +6 -2
  760. package/src/docker/recipes/redis.ts +2 -6
  761. package/src/docker/recipes/sglang.ts +1 -1
  762. package/src/docker/recipes/timescale.ts +6 -2
  763. package/src/docker/recipes/traefik.ts +1 -0
  764. package/src/docker/recipes/valkey.ts +2 -6
  765. package/src/docker/recipes/vllm.ts +1 -1
  766. package/src/docker/stack-id.test.ts +5 -14
  767. package/src/docker/stack-id.ts +15 -35
  768. package/src/docker/stack.integration.test.ts +2 -2
  769. package/src/docker/types.ts +16 -7
  770. package/src/drivers/ai-mock.ts +41 -1
  771. package/src/drivers/ai-openai-compatible.ts +19 -1
  772. package/src/drivers/index.ts +32 -0
  773. package/src/drivers/instances-postgres.ts +154 -0
  774. package/src/drivers/meilisearch.integration.test.ts +9 -0
  775. package/src/drivers/meilisearch.test.ts +134 -6
  776. package/src/drivers/meilisearch.ts +77 -8
  777. package/src/drivers/memory.ts +384 -24
  778. package/src/drivers/pg-extensions.test.ts +50 -0
  779. package/src/drivers/pg-extensions.ts +1054 -0
  780. package/src/drivers/pg-rls.test.ts +71 -0
  781. package/src/drivers/pg-rls.ts +234 -0
  782. package/src/drivers/pgvector.ts +24 -0
  783. package/src/drivers/redis.ts +12 -0
  784. package/src/drivers/s3-ensure-bucket.test.ts +88 -0
  785. package/src/drivers/s3-ensure-bucket.ts +152 -0
  786. package/src/drivers/s3.ts +34 -2
  787. package/src/drivers/types.ts +29 -1
  788. package/src/drivers/vault-1password.test.ts +164 -0
  789. package/src/drivers/vault-1password.ts +351 -0
  790. package/src/drivers/vault-aws-secrets-manager.ts +15 -94
  791. package/src/drivers/vault-azure-key-vault.test.ts +137 -0
  792. package/src/drivers/vault-azure-key-vault.ts +243 -0
  793. package/src/drivers/vault-doppler.test.ts +133 -0
  794. package/src/drivers/vault-doppler.ts +202 -0
  795. package/src/drivers/vault-dotenv-parse.ts +32 -0
  796. package/src/drivers/vault-env.ts +1 -1
  797. package/src/drivers/vault-gcp-secret-manager.test.ts +127 -0
  798. package/src/drivers/vault-gcp-secret-manager.ts +291 -0
  799. package/src/drivers/vault-managed.test.ts +23 -26
  800. package/src/drivers/vault-managed.ts +58 -20
  801. package/src/drivers/vault-remote-bag.ts +242 -0
  802. package/src/drivers/vault-types.ts +9 -7
  803. package/src/elements/ai/runtime.ts +100 -8
  804. package/src/elements/ai/schema.test.ts +133 -0
  805. package/src/elements/ai/schema.ts +156 -11
  806. package/src/elements/ai.test.ts +53 -0
  807. package/src/elements/ai.ts +1 -0
  808. package/src/elements/clock/runtime.ts +31 -13
  809. package/src/elements/clock.test.ts +49 -0
  810. package/src/elements/gate/config.ts +18 -3
  811. package/src/elements/gate/declare.ts +25 -5
  812. package/src/elements/gate/flatten.ts +74 -0
  813. package/src/elements/gate/permissions.ts +1 -0
  814. package/src/elements/gate/runtime.ts +19 -7
  815. package/src/elements/gate.test.ts +32 -0
  816. package/src/elements/gate.ts +9 -1
  817. package/src/elements/store/cache.test.ts +79 -0
  818. package/src/elements/store/cache.ts +176 -0
  819. package/src/elements/store/classify.ts +79 -4
  820. package/src/elements/store/declare.ts +7 -0
  821. package/src/elements/store/emit-drizzle.ts +3 -1
  822. package/src/elements/store/files-policy.test.ts +36 -1
  823. package/src/elements/store/files-policy.ts +151 -0
  824. package/src/elements/store/kv-sql.test.ts +86 -0
  825. package/src/elements/store/kv-sql.ts +178 -0
  826. package/src/elements/store/resource-list-docs.fixture.ts +0 -2
  827. package/src/elements/store/resource-list-docs.test.ts +3 -0
  828. package/src/elements/store/resource.test.ts +62 -2
  829. package/src/elements/store/resource.ts +279 -62
  830. package/src/elements/store/runtime.ts +88 -11
  831. package/src/elements/store/schema-decl.test.ts +49 -0
  832. package/src/elements/store/schema-decl.ts +29 -9
  833. package/src/elements/store/seed.test.ts +22 -1
  834. package/src/elements/store/seed.ts +46 -1
  835. package/src/elements/store/sql-session.ts +32 -7
  836. package/src/elements/store/table.ts +17 -1
  837. package/src/elements/store/upsert-app.test.ts +1 -1
  838. package/src/elements/store.test.ts +23 -0
  839. package/src/elements/store.ts +26 -3
  840. package/src/elements/vault/boot-chain.test.ts +108 -10
  841. package/src/elements/vault/boot-chain.ts +15 -15
  842. package/src/elements/vault/builtin-adapter.test.ts +1 -0
  843. package/src/elements/vault/builtin-adapter.ts +12 -0
  844. package/src/elements/vault/chain.ts +6 -20
  845. package/src/elements/vault/declare.ts +5 -2
  846. package/src/elements/vault/runtime.ts +47 -13
  847. package/src/elements/vault/storage.ts +35 -4
  848. package/src/elements/vault.test.ts +1 -0
  849. package/src/elements/vault.ts +2 -0
  850. package/src/full.ts +10 -0
  851. package/src/http.ts +1 -1
  852. package/src/index.ts +8 -0
  853. package/src/kernel/adopt-barrel-fresh.test.ts +1 -2
  854. package/src/kernel/app-auth.ts +8 -1
  855. package/src/kernel/app.ts +245 -25
  856. package/src/kernel/auth-resolve.ts +51 -0
  857. package/src/kernel/auto-cache.test.ts +270 -0
  858. package/src/kernel/boot-bind/ai.test.ts +34 -1
  859. package/src/kernel/boot-bind/ai.ts +15 -2
  860. package/src/kernel/boot-bind/channel.test.ts +1 -1
  861. package/src/kernel/boot-bind/channel.ts +1 -1
  862. package/src/kernel/boot-bind/clock.ts +9 -7
  863. package/src/kernel/boot-bind/gate.ts +1 -1
  864. package/src/kernel/boot-bind/honor-config.test.ts +70 -3
  865. package/src/kernel/boot-bind/instances.ts +58 -0
  866. package/src/kernel/boot-bind/journal.ts +3 -2
  867. package/src/kernel/boot-bind/runs.ts +63 -5
  868. package/src/kernel/boot-bind/signal.ts +1 -1
  869. package/src/kernel/boot-bind/store.test.ts +150 -1
  870. package/src/kernel/boot-bind/store.ts +70 -5
  871. package/src/kernel/boot.test.ts +9 -9
  872. package/src/kernel/boot.ts +115 -16
  873. package/src/kernel/capability.test.ts +42 -0
  874. package/src/kernel/capability.ts +44 -2
  875. package/src/kernel/compensate.test.ts +34 -1
  876. package/src/kernel/compensate.ts +19 -0
  877. package/src/kernel/effect-timing.test.ts +16 -0
  878. package/src/kernel/effects-stamping.test.ts +3 -3
  879. package/src/kernel/effects.test.ts +15 -0
  880. package/src/kernel/effects.ts +39 -5
  881. package/src/kernel/elapsed.test.ts +26 -0
  882. package/src/kernel/elapsed.ts +23 -0
  883. package/src/kernel/errors.ts +26 -3
  884. package/src/kernel/flow.ts +5 -1
  885. package/src/kernel/fx-ask-telemetry.test.ts +114 -0
  886. package/src/kernel/fx.test.ts +143 -2
  887. package/src/kernel/fx.ts +136 -19
  888. package/src/kernel/graceful-shutdown.test.ts +20 -0
  889. package/src/kernel/graceful-shutdown.ts +9 -3
  890. package/src/kernel/horizontal-child.ts +4 -4
  891. package/src/kernel/http-query.test.ts +184 -0
  892. package/src/kernel/http-resource.ts +55 -0
  893. package/src/kernel/index.ts +43 -0
  894. package/src/kernel/instance-id.ts +23 -0
  895. package/src/kernel/instances-chaos-child.ts +73 -0
  896. package/src/kernel/instances.chaos.test.ts +238 -0
  897. package/src/kernel/instances.test.ts +85 -0
  898. package/src/kernel/instances.ts +372 -0
  899. package/src/kernel/lazy-require.ts +20 -0
  900. package/src/kernel/list-page.test.ts +194 -0
  901. package/src/kernel/list-page.ts +515 -0
  902. package/src/kernel/list-query.ts +469 -0
  903. package/src/kernel/pipeline-api-key.test.ts +266 -0
  904. package/src/kernel/pipeline.test.ts +164 -2
  905. package/src/kernel/pipeline.ts +13 -1
  906. package/src/kernel/plugin-elements.test.ts +1 -1
  907. package/src/kernel/plugin-needs.test.ts +1 -1
  908. package/src/kernel/plugin.ts +5 -5
  909. package/src/kernel/ready.test.ts +22 -2
  910. package/src/kernel/registry.ts +8 -4
  911. package/src/kernel/resource-mount.test.ts +75 -0
  912. package/src/kernel/router/index.ts +2 -0
  913. package/src/kernel/router/linear.ts +7 -0
  914. package/src/kernel/router/regexp.ts +8 -0
  915. package/src/kernel/router/smart.ts +7 -3
  916. package/src/kernel/router/trie.ts +7 -0
  917. package/src/kernel/router/types.ts +41 -1
  918. package/src/kernel/router.test.ts +27 -0
  919. package/src/kernel/router.ts +2 -0
  920. package/src/kernel/run-duration.test.ts +92 -0
  921. package/src/kernel/run-telemetry.ts +8 -2
  922. package/src/kernel/triggers.ts +95 -74
  923. package/src/manifest/diff.test.ts +13 -0
  924. package/src/manifest/diff.ts +15 -0
  925. package/src/manifest/sql-resource.test.ts +29 -0
  926. package/src/manifest/sql-resource.ts +20 -4
  927. package/src/manifest/types.ts +13 -3
  928. package/src/plugins/auth-delivery.mailpit.integration.test.ts +1 -1
  929. package/src/plugins/auth-methods.security.test.ts +3 -3
  930. package/src/plugins/auth-methods.test.ts +2 -2
  931. package/src/plugins/cors.test.ts +4 -2
  932. package/src/plugins/cors.ts +11 -2
  933. package/src/plugins/csrf.test.ts +17 -0
  934. package/src/plugins/csrf.ts +1 -1
  935. package/src/plugins/username-policy.test.ts +8 -8
  936. package/src/plugins/username.ts +1 -1
  937. package/src/release/build-lib.ts +7 -1
  938. package/src/release/limits.ts +2 -2
  939. package/src/release/measure.ts +7 -10
  940. package/src/runs/bridge-to-console.ts +99 -0
  941. package/src/runs/collect.test.ts +68 -0
  942. package/src/runs/collect.ts +29 -2
  943. package/src/runs/drivers/clickhouse.ts +4 -1
  944. package/src/runs/drivers/files.ts +138 -33
  945. package/src/runs/drivers/memory.ts +46 -7
  946. package/src/runs/drivers/postgres.ts +4 -1
  947. package/src/runs/duckdb.test.ts +33 -0
  948. package/src/runs/duckdb.ts +41 -0
  949. package/src/runs/history.ts +61 -0
  950. package/src/runs/index.ts +29 -1
  951. package/src/runs/parquet.test.ts +110 -0
  952. package/src/runs/parquet.ts +129 -8
  953. package/src/runs/retention.test.ts +24 -0
  954. package/src/runs/retention.ts +42 -0
  955. package/src/runs/runs.test.ts +101 -0
  956. package/src/runs/runtime.ts +5 -3
  957. package/src/runs/types.ts +33 -4
  958. package/src/runtime/bun.ts +61 -4
  959. package/src/runtime/dev-request-log.test.ts +4 -0
  960. package/src/runtime/dev-request-log.ts +19 -2
  961. package/src/runtime/index.ts +8 -1
  962. package/src/runtime/json-code-block.test.ts +355 -0
  963. package/src/runtime/json-code-block.ts +961 -0
  964. package/src/runtime/serve.test.ts +49 -4
  965. package/src/term.test.ts +89 -1
  966. package/src/term.ts +103 -29
  967. package/src/test/create-test-app.ts +3 -1
  968. package/src/console/ui/access/AccessA11yView.tsx +0 -222
  969. package/src/console/ui/access/a11y.test.tsx +0 -113
  970. package/src/console/ui/access/acknowledgement.test.ts +0 -10
  971. package/src/console/ui/access/acknowledgement.ts +0 -33
  972. package/src/console/ui/access/blast-radius.test.ts +0 -26
  973. package/src/console/ui/access/blast-radius.ts +0 -38
  974. package/src/console/ui/access/confirmation.test.ts +0 -34
  975. package/src/console/ui/access/confirmation.ts +0 -33
  976. package/src/console/ui/access/fixture.ts +0 -199
  977. package/src/console/ui/access/grantable.test.ts +0 -15
  978. package/src/console/ui/access/grantable.ts +0 -31
  979. package/src/console/ui/access/hygiene.test.ts +0 -12
  980. package/src/console/ui/access/hygiene.ts +0 -39
  981. package/src/console/ui/access/index.ts +0 -47
  982. package/src/console/ui/access/provenance.test.ts +0 -10
  983. package/src/console/ui/access/provenance.ts +0 -25
  984. package/src/console/ui/access/search.test.ts +0 -13
  985. package/src/console/ui/access/search.ts +0 -68
  986. package/src/console/ui/access/types.ts +0 -111
  987. package/src/console/ui/ai/AiA11yView.tsx +0 -254
  988. package/src/console/ui/ai/a11y.test.tsx +0 -96
  989. package/src/console/ui/ai/findings.ts +0 -41
  990. package/src/console/ui/ai/fixture.ts +0 -177
  991. package/src/console/ui/ai/format.ts +0 -88
  992. package/src/console/ui/ai/group.test.ts +0 -35
  993. package/src/console/ui/ai/group.ts +0 -80
  994. package/src/console/ui/ai/index.ts +0 -59
  995. package/src/console/ui/ai/promotion.test.ts +0 -72
  996. package/src/console/ui/ai/promotion.ts +0 -141
  997. package/src/console/ui/ai/search.test.ts +0 -31
  998. package/src/console/ui/ai/search.ts +0 -79
  999. package/src/console/ui/ai/types.ts +0 -132
  1000. package/src/console/ui/architecture/ArchitectureA11yView.tsx +0 -142
  1001. package/src/console/ui/architecture/a11y.test.tsx +0 -96
  1002. package/src/console/ui/architecture/boundary.ts +0 -42
  1003. package/src/console/ui/architecture/declared.ts +0 -161
  1004. package/src/console/ui/architecture/fixture.ts +0 -74
  1005. package/src/console/ui/architecture/index.ts +0 -56
  1006. package/src/console/ui/architecture/layers.ts +0 -64
  1007. package/src/console/ui/architecture/layout.ts +0 -66
  1008. package/src/console/ui/architecture/pathologies.ts +0 -251
  1009. package/src/console/ui/architecture/search.ts +0 -136
  1010. package/src/console/ui/architecture/traffic.ts +0 -92
  1011. package/src/console/ui/architecture/types.ts +0 -136
  1012. package/src/console/ui/architecture/view.test.ts +0 -153
  1013. package/src/console/ui/architecture/view.ts +0 -489
  1014. package/src/console/ui/channels/ChannelsA11yView.tsx +0 -171
  1015. package/src/console/ui/channels/a11y.test.tsx +0 -95
  1016. package/src/console/ui/channels/confirmation.test.ts +0 -34
  1017. package/src/console/ui/channels/confirmation.ts +0 -24
  1018. package/src/console/ui/channels/fallback.test.ts +0 -15
  1019. package/src/console/ui/channels/fallback.ts +0 -20
  1020. package/src/console/ui/channels/findings.ts +0 -34
  1021. package/src/console/ui/channels/fixture.ts +0 -134
  1022. package/src/console/ui/channels/group.ts +0 -25
  1023. package/src/console/ui/channels/index.ts +0 -51
  1024. package/src/console/ui/channels/locale.test.ts +0 -15
  1025. package/src/console/ui/channels/locale.ts +0 -25
  1026. package/src/console/ui/channels/mask.test.ts +0 -14
  1027. package/src/console/ui/channels/mask.ts +0 -12
  1028. package/src/console/ui/channels/search.ts +0 -49
  1029. package/src/console/ui/channels/taxonomy.test.ts +0 -17
  1030. package/src/console/ui/channels/taxonomy.ts +0 -47
  1031. package/src/console/ui/channels/types.ts +0 -118
  1032. package/src/console/ui/clock/ClockA11yView.tsx +0 -165
  1033. package/src/console/ui/clock/a11y.test.tsx +0 -96
  1034. package/src/console/ui/clock/confirmation.test.ts +0 -30
  1035. package/src/console/ui/clock/confirmation.ts +0 -31
  1036. package/src/console/ui/clock/findings.ts +0 -37
  1037. package/src/console/ui/clock/fixture.ts +0 -111
  1038. package/src/console/ui/clock/health.test.ts +0 -25
  1039. package/src/console/ui/clock/health.ts +0 -56
  1040. package/src/console/ui/clock/index.ts +0 -41
  1041. package/src/console/ui/clock/search.test.ts +0 -37
  1042. package/src/console/ui/clock/search.ts +0 -72
  1043. package/src/console/ui/clock/timeline.test.ts +0 -42
  1044. package/src/console/ui/clock/timeline.ts +0 -41
  1045. package/src/console/ui/clock/types.ts +0 -79
  1046. package/src/console/ui/clock/waiting-on.test.ts +0 -30
  1047. package/src/console/ui/clock/waiting-on.ts +0 -78
  1048. package/src/console/ui/confirmation.unify.test.ts +0 -92
  1049. package/src/console/ui/diff/DiffA11yView.tsx +0 -76
  1050. package/src/console/ui/diff/a11y.test.tsx +0 -96
  1051. package/src/console/ui/diff/fixture.ts +0 -85
  1052. package/src/console/ui/diff/group.test.ts +0 -48
  1053. package/src/console/ui/diff/group.ts +0 -91
  1054. package/src/console/ui/diff/index.ts +0 -32
  1055. package/src/console/ui/diff/search.test.ts +0 -28
  1056. package/src/console/ui/diff/search.ts +0 -63
  1057. package/src/console/ui/diff/summary.ts +0 -73
  1058. package/src/console/ui/diff/types.ts +0 -48
  1059. package/src/console/ui/display.test.ts +0 -14
  1060. package/src/console/ui/display.ts +0 -9
  1061. package/src/console/ui/dist/assets/index--Y0Uaz-m.js +0 -10
  1062. package/src/console/ui/dist/assets/panel-access-ri1X9Otj.js +0 -64
  1063. package/src/console/ui/dist/assets/panel-ai-DLHjRoJk.js +0 -1
  1064. package/src/console/ui/dist/assets/panel-architecture-DI3bQF3J.js +0 -1
  1065. package/src/console/ui/dist/assets/panel-channels-BDYWX29p.js +0 -1
  1066. package/src/console/ui/dist/assets/panel-clock-i-JpTjVB.js +0 -1
  1067. package/src/console/ui/dist/assets/panel-diff-CFuWxiXy.js +0 -1
  1068. package/src/console/ui/dist/assets/panel-flows-B8TRhcoe.js +0 -48
  1069. package/src/console/ui/dist/assets/panel-gates-CfkBgco7.js +0 -1
  1070. package/src/console/ui/dist/assets/panel-overview-CW0CQEc2.js +0 -1
  1071. package/src/console/ui/dist/assets/panel-plugins-DDJwTehL.js +0 -1
  1072. package/src/console/ui/dist/assets/panel-runs-BxuyDI3x.js +0 -1
  1073. package/src/console/ui/dist/assets/panel-signals-BXofbj7v.js +0 -1
  1074. package/src/console/ui/dist/assets/panel-store-B8mH-arU.js +0 -1
  1075. package/src/console/ui/dist/assets/panel-traces-DSA-ZWnf.js +0 -1
  1076. package/src/console/ui/dist/assets/panel-vault-BkZdJPX8.js +0 -1
  1077. package/src/console/ui/dist/assets/rolldown-runtime-B0Z9INg1.js +0 -1
  1078. package/src/console/ui/dist/assets/style-C3L349iZ.css +0 -3
  1079. package/src/console/ui/dist/favicon.svg +0 -7
  1080. package/src/console/ui/dist/index.html +0 -15
  1081. package/src/console/ui/flows/FlowsA11yView.tsx +0 -140
  1082. package/src/console/ui/flows/a11y.test.tsx +0 -99
  1083. package/src/console/ui/flows/buffer.test.ts +0 -83
  1084. package/src/console/ui/flows/buffer.ts +0 -111
  1085. package/src/console/ui/flows/confirmation.ts +0 -129
  1086. package/src/console/ui/flows/contract.test.ts +0 -85
  1087. package/src/console/ui/flows/contract.ts +0 -329
  1088. package/src/console/ui/flows/fixture.ts +0 -81
  1089. package/src/console/ui/flows/graph.test.ts +0 -93
  1090. package/src/console/ui/flows/graph.ts +0 -539
  1091. package/src/console/ui/flows/index.ts +0 -82
  1092. package/src/console/ui/flows/save-as-test.test.ts +0 -47
  1093. package/src/console/ui/flows/save-as-test.ts +0 -97
  1094. package/src/console/ui/flows/search.ts +0 -238
  1095. package/src/console/ui/flows/tiers.ts +0 -133
  1096. package/src/console/ui/gates/GatesA11yView.tsx +0 -183
  1097. package/src/console/ui/gates/a11y.test.tsx +0 -113
  1098. package/src/console/ui/gates/audit.test.ts +0 -40
  1099. package/src/console/ui/gates/audit.ts +0 -61
  1100. package/src/console/ui/gates/denial.test.ts +0 -34
  1101. package/src/console/ui/gates/denial.ts +0 -43
  1102. package/src/console/ui/gates/findings.ts +0 -17
  1103. package/src/console/ui/gates/fixture.ts +0 -193
  1104. package/src/console/ui/gates/group.test.ts +0 -30
  1105. package/src/console/ui/gates/group.ts +0 -94
  1106. package/src/console/ui/gates/index.ts +0 -39
  1107. package/src/console/ui/gates/search.test.ts +0 -49
  1108. package/src/console/ui/gates/search.ts +0 -108
  1109. package/src/console/ui/gates/types.ts +0 -124
  1110. package/src/console/ui/overview/OverviewA11yView.tsx +0 -134
  1111. package/src/console/ui/overview/a11y.test.tsx +0 -112
  1112. package/src/console/ui/overview/busiest.ts +0 -24
  1113. package/src/console/ui/overview/compose.ts +0 -121
  1114. package/src/console/ui/overview/cost.test.ts +0 -39
  1115. package/src/console/ui/overview/cost.ts +0 -134
  1116. package/src/console/ui/overview/fixture.ts +0 -156
  1117. package/src/console/ui/overview/golden.ts +0 -47
  1118. package/src/console/ui/overview/index.ts +0 -52
  1119. package/src/console/ui/overview/rank.test.ts +0 -129
  1120. package/src/console/ui/overview/rank.ts +0 -205
  1121. package/src/console/ui/overview/slo.test.ts +0 -69
  1122. package/src/console/ui/overview/slo.ts +0 -240
  1123. package/src/console/ui/overview/types.ts +0 -127
  1124. package/src/console/ui/overview/verdict.ts +0 -124
  1125. package/src/console/ui/plugins/PluginsA11yView.tsx +0 -217
  1126. package/src/console/ui/plugins/a11y.test.tsx +0 -96
  1127. package/src/console/ui/plugins/command.test.ts +0 -22
  1128. package/src/console/ui/plugins/command.ts +0 -27
  1129. package/src/console/ui/plugins/findings.ts +0 -39
  1130. package/src/console/ui/plugins/fixture.ts +0 -238
  1131. package/src/console/ui/plugins/group.test.ts +0 -36
  1132. package/src/console/ui/plugins/group.ts +0 -62
  1133. package/src/console/ui/plugins/index.ts +0 -30
  1134. package/src/console/ui/plugins/search.ts +0 -55
  1135. package/src/console/ui/plugins/types.ts +0 -118
  1136. package/src/console/ui/runs/RunsA11yView.tsx +0 -252
  1137. package/src/console/ui/runs/a11y.test.tsx +0 -96
  1138. package/src/console/ui/runs/errors.test.ts +0 -53
  1139. package/src/console/ui/runs/errors.ts +0 -88
  1140. package/src/console/ui/runs/explain.test.ts +0 -23
  1141. package/src/console/ui/runs/explain.ts +0 -28
  1142. package/src/console/ui/runs/fixture.ts +0 -189
  1143. package/src/console/ui/runs/group.test.ts +0 -24
  1144. package/src/console/ui/runs/group.ts +0 -76
  1145. package/src/console/ui/runs/histogram.test.ts +0 -22
  1146. package/src/console/ui/runs/histogram.ts +0 -82
  1147. package/src/console/ui/runs/index.ts +0 -69
  1148. package/src/console/ui/runs/project.ts +0 -118
  1149. package/src/console/ui/runs/query.test.ts +0 -48
  1150. package/src/console/ui/runs/query.ts +0 -260
  1151. package/src/console/ui/runs/search.test.ts +0 -45
  1152. package/src/console/ui/runs/search.ts +0 -143
  1153. package/src/console/ui/runs/trace-link.test.ts +0 -26
  1154. package/src/console/ui/runs/trace-link.ts +0 -87
  1155. package/src/console/ui/runs/types.ts +0 -135
  1156. package/src/console/ui/shell/App.tsx +0 -88
  1157. package/src/console/ui/shell/client.ts +0 -1642
  1158. package/src/console/ui/shell/components/oke-logo.tsx +0 -40
  1159. package/src/console/ui/shell/components/ui.tsx +0 -111
  1160. package/src/console/ui/shell/index.html +0 -13
  1161. package/src/console/ui/shell/layout/Shell.tsx +0 -92
  1162. package/src/console/ui/shell/main.tsx +0 -216
  1163. package/src/console/ui/shell/panels/Access.tsx +0 -5
  1164. package/src/console/ui/shell/panels/Ai.tsx +0 -5
  1165. package/src/console/ui/shell/panels/Architecture.tsx +0 -5
  1166. package/src/console/ui/shell/panels/Channels.tsx +0 -5
  1167. package/src/console/ui/shell/panels/Clock.tsx +0 -5
  1168. package/src/console/ui/shell/panels/Diff.tsx +0 -5
  1169. package/src/console/ui/shell/panels/Flows.tsx +0 -5
  1170. package/src/console/ui/shell/panels/Gates.tsx +0 -5
  1171. package/src/console/ui/shell/panels/Overview.tsx +0 -6
  1172. package/src/console/ui/shell/panels/Plugins.tsx +0 -5
  1173. package/src/console/ui/shell/panels/Runs.tsx +0 -5
  1174. package/src/console/ui/shell/panels/Signals.tsx +0 -5
  1175. package/src/console/ui/shell/panels/Store.tsx +0 -5
  1176. package/src/console/ui/shell/panels/Traces.tsx +0 -5
  1177. package/src/console/ui/shell/panels/Vault.tsx +0 -5
  1178. package/src/console/ui/shell/panels/access/AccessPanel.tsx +0 -749
  1179. package/src/console/ui/shell/panels/ai/AiPanel.tsx +0 -492
  1180. package/src/console/ui/shell/panels/architecture/ArchitecturePanel.tsx +0 -329
  1181. package/src/console/ui/shell/panels/channels/ChannelsPanel.tsx +0 -422
  1182. package/src/console/ui/shell/panels/clock/ClockPanel.tsx +0 -454
  1183. package/src/console/ui/shell/panels/diff/DiffPanel.tsx +0 -234
  1184. package/src/console/ui/shell/panels/flows/ContractEditor.tsx +0 -284
  1185. package/src/console/ui/shell/panels/flows/FlowDrawer.tsx +0 -335
  1186. package/src/console/ui/shell/panels/flows/FlowsPanel.tsx +0 -482
  1187. package/src/console/ui/shell/panels/gates/GatesPanel.tsx +0 -433
  1188. package/src/console/ui/shell/panels/overview/OverviewPanel.tsx +0 -398
  1189. package/src/console/ui/shell/panels/plugins/PluginsPanel.tsx +0 -402
  1190. package/src/console/ui/shell/panels/runs/RunsPanel.tsx +0 -652
  1191. package/src/console/ui/shell/panels/signals/SignalsPanel.tsx +0 -788
  1192. package/src/console/ui/shell/panels/store/StorePanel.tsx +0 -755
  1193. package/src/console/ui/shell/panels/traces/TracesPanel.tsx +0 -478
  1194. package/src/console/ui/shell/panels/vault/VaultPanel.tsx +0 -477
  1195. package/src/console/ui/shell/plugin/Sandbox.tsx +0 -29
  1196. package/src/console/ui/shell/public/favicon.svg +0 -7
  1197. package/src/console/ui/shell/setup/Wizard.tsx +0 -211
  1198. package/src/console/ui/shell/styles.css +0 -74
  1199. package/src/console/ui/signals/SignalsA11yView.tsx +0 -252
  1200. package/src/console/ui/signals/a11y.test.tsx +0 -96
  1201. package/src/console/ui/signals/confirmation.test.ts +0 -35
  1202. package/src/console/ui/signals/confirmation.ts +0 -59
  1203. package/src/console/ui/signals/dry-run.test.ts +0 -18
  1204. package/src/console/ui/signals/dry-run.ts +0 -34
  1205. package/src/console/ui/signals/durable.test.ts +0 -22
  1206. package/src/console/ui/signals/durable.ts +0 -39
  1207. package/src/console/ui/signals/findings.ts +0 -31
  1208. package/src/console/ui/signals/fixture.ts +0 -242
  1209. package/src/console/ui/signals/group.test.ts +0 -26
  1210. package/src/console/ui/signals/group.ts +0 -41
  1211. package/src/console/ui/signals/index.ts +0 -49
  1212. package/src/console/ui/signals/monitor.test.ts +0 -30
  1213. package/src/console/ui/signals/monitor.ts +0 -74
  1214. package/src/console/ui/signals/schema-form.test.ts +0 -23
  1215. package/src/console/ui/signals/schema-form.ts +0 -109
  1216. package/src/console/ui/signals/search.ts +0 -93
  1217. package/src/console/ui/signals/types.ts +0 -72
  1218. package/src/console/ui/store/StoreA11yView.tsx +0 -193
  1219. package/src/console/ui/store/a11y.test.tsx +0 -96
  1220. package/src/console/ui/store/cache-view.test.ts +0 -13
  1221. package/src/console/ui/store/cache-view.ts +0 -36
  1222. package/src/console/ui/store/confirmation.test.ts +0 -36
  1223. package/src/console/ui/store/confirmation.ts +0 -52
  1224. package/src/console/ui/store/dry-run.test.ts +0 -15
  1225. package/src/console/ui/store/dry-run.ts +0 -26
  1226. package/src/console/ui/store/fixture.ts +0 -167
  1227. package/src/console/ui/store/group.test.ts +0 -16
  1228. package/src/console/ui/store/group.ts +0 -38
  1229. package/src/console/ui/store/index.ts +0 -36
  1230. package/src/console/ui/store/search.ts +0 -74
  1231. package/src/console/ui/store/types.ts +0 -67
  1232. package/src/console/ui/store/will-not-fire.test.ts +0 -19
  1233. package/src/console/ui/store/will-not-fire.ts +0 -39
  1234. package/src/console/ui/traces/TracesA11yView.tsx +0 -181
  1235. package/src/console/ui/traces/a11y.test.tsx +0 -96
  1236. package/src/console/ui/traces/chain.test.ts +0 -47
  1237. package/src/console/ui/traces/chain.ts +0 -142
  1238. package/src/console/ui/traces/critical-path.test.ts +0 -22
  1239. package/src/console/ui/traces/critical-path.ts +0 -55
  1240. package/src/console/ui/traces/filter.test.ts +0 -74
  1241. package/src/console/ui/traces/filter.ts +0 -104
  1242. package/src/console/ui/traces/fixture.ts +0 -126
  1243. package/src/console/ui/traces/fold.test.ts +0 -59
  1244. package/src/console/ui/traces/fold.ts +0 -168
  1245. package/src/console/ui/traces/index.ts +0 -64
  1246. package/src/console/ui/traces/mini.ts +0 -63
  1247. package/src/console/ui/traces/replay.test.ts +0 -22
  1248. package/src/console/ui/traces/replay.ts +0 -33
  1249. package/src/console/ui/traces/sampling.test.ts +0 -26
  1250. package/src/console/ui/traces/sampling.ts +0 -63
  1251. package/src/console/ui/traces/search.ts +0 -135
  1252. package/src/console/ui/traces/tier.ts +0 -70
  1253. package/src/console/ui/traces/types.ts +0 -125
  1254. package/src/console/ui/tsconfig.json +0 -20
  1255. package/src/console/ui/vault/VaultA11yView.tsx +0 -197
  1256. package/src/console/ui/vault/a11y.test.tsx +0 -96
  1257. package/src/console/ui/vault/backend.test.ts +0 -75
  1258. package/src/console/ui/vault/backend.ts +0 -117
  1259. package/src/console/ui/vault/blast-radius.ts +0 -53
  1260. package/src/console/ui/vault/confirmation.test.ts +0 -37
  1261. package/src/console/ui/vault/confirmation.ts +0 -36
  1262. package/src/console/ui/vault/dormant.ts +0 -28
  1263. package/src/console/ui/vault/export-safe.test.ts +0 -26
  1264. package/src/console/ui/vault/export-safe.ts +0 -62
  1265. package/src/console/ui/vault/fixture.ts +0 -94
  1266. package/src/console/ui/vault/group.test.ts +0 -25
  1267. package/src/console/ui/vault/group.ts +0 -49
  1268. package/src/console/ui/vault/index.ts +0 -47
  1269. package/src/console/ui/vault/search.ts +0 -58
  1270. package/src/console/ui/vault/types.ts +0 -83
  1271. package/src/console/ui/vite.config.ts +0 -84
  1272. /package/src/console/{ui/vault → ui-next/src/features/vault/lib}/blast-radius.test.ts +0 -0
  1273. /package/src/console/{ui/vault → ui-next/src/features/vault/lib}/dormant.test.ts +0 -0
@@ -26,7 +26,7 @@ drivers: {
26
26
  ai: { dev: "openai-compatible", test: "mock", prod: "openai-compatible" },
27
27
  },
28
28
  images: {
29
- ai: "ghcr.io/ggml-org/llama.cpp:server-b10290", // never :latest
29
+ ai: "ghcr.io/ggml-org/llama.cpp:server-b10450", // never :latest
30
30
  },
31
31
  ```
32
32
 
@@ -39,15 +39,14 @@ for `granite3.3:2b`.
39
39
  <Step>
40
40
  ### Env written by the stack
41
41
 
42
- ```bash title="docker/.env.docker"
42
+ ```bash title=".env.local"
43
43
  OKE_AI_URL=http://127.0.0.1:8080/v1
44
44
  OKE_AI_MODEL=granite3.3:2b
45
45
  ```
46
46
 
47
47
  `OKE_AI_MODEL` is a Docker Hub `ai/<id>` model. The recipe writes
48
- `.oke/llama-entrypoint.py` (generated, gitignored not app source), which
49
- Hub-pulls into the cache volume, then starts `llama-server -m <gguf> --alias <id>`
50
- (single-model).
48
+ `.oke/llama-entrypoint.py` (generated, gitignored), Hub-pulls into the cache
49
+ volume, then starts `llama-server -m <gguf> --alias <id>` (single-model).
51
50
 
52
51
  Never set `LLAMA_ARG_MODELS_PRESET` / `LLAMA_ARG_DOCKER_REPO` — those hang on
53
52
  b10290+. `oke dev` shows the model id and polls `/v1/models` until `ready`
@@ -127,7 +126,7 @@ First start Hub-pulls the curated `ai/` model into the named cache volume
127
126
  (see logs: `oke ai: ensuring…` / download %). Prefer `oke ai setup` tiers
128
127
  (Ultra Fast → `granite3.3:2b`) for smoke tests.
129
128
 
130
- Confirm `OKE_AI_MODEL` in `docker/.env.docker` (keep the `.env.local` hint commented so it does not shadow compose). Watch `oke
129
+ Confirm `OKE_AI_MODEL` in `.env.local`. Watch `oke
131
130
  dev` until AI status is `ready`.
132
131
 
133
132
  If status stays `loading` on Compose that still uses `--models-preset`,
@@ -28,7 +28,7 @@ drivers: {
28
28
  },
29
29
  },
30
30
  images: {
31
- channel: { email: "axllent/mailpit:v1.22.3" },
31
+ channel: { email: "axllent/mailpit:v1.30.7" },
32
32
  },
33
33
  ```
34
34
 
@@ -37,7 +37,7 @@ images: {
37
37
  <Step>
38
38
  ### Connect the smtp driver
39
39
 
40
- ```bash title="docker/.env.docker (written by oke docker)"
40
+ ```bash title=".env.local (written by oke docker)"
41
41
  SMTP_URL=smtp://127.0.0.1:1025
42
42
  MAILPIT_UI_URL=http://127.0.0.1:8025
43
43
  ```
@@ -100,7 +100,7 @@ if SMTP still accepts mail.
100
100
  <Accordion title="oke boot: smtp driver needs SMTP_URL">
101
101
 
102
102
  The smtp binder refuses to start without `SMTP_URL` (or `OKE_CHANNEL_EMAIL_URL`). In
103
- under `oke dev` the error asks whether Compose wrote `docker/.env.docker`. Also rejects
103
+ under `oke dev` the error asks whether Compose wrote `.env.local`. Also rejects
104
104
  non-`smtp://` schemes: `oke boot: SMTP_URL must use smtp://`.
105
105
 
106
106
  </Accordion>
@@ -28,7 +28,7 @@ drivers: {
28
28
  },
29
29
  },
30
30
  images: {
31
- store: { index: "getmeili/meilisearch:v1.14" },
31
+ store: { index: "getmeili/meilisearch:v1.53" },
32
32
  },
33
33
  ```
34
34
 
@@ -37,7 +37,7 @@ images: {
37
37
  <Step>
38
38
  ### Keys written by oke docker
39
39
 
40
- ```bash title="docker/.env.docker"
40
+ ```bash title=".env.local"
41
41
  OKE_STORE_INDEX_URL=http://127.0.0.1:7700
42
42
  OKE_STORE_INDEX_KEY=… # also accepted as MEILI_MASTER_KEY
43
43
  ```
@@ -78,7 +78,7 @@ Writes wait on Meilisearch tasks before returning.
78
78
  **Backup means:** snapshot/restore that named volume (or Meilisearch dumps). Recreating
79
79
  the container **keeps** data if the volume remains; deleting the volume wipes every index.
80
80
 
81
- The master key is **not** inside the volume — it lives in `.env.docker` / secrets.
81
+ The master key is **not** inside the volume — it lives in `.env.local` / secrets.
82
82
  Losing the key without a backup blocks admin API access even if data remains.
83
83
 
84
84
  ## Production note
@@ -104,7 +104,7 @@ not FTS. See [Store · Index](/docs/elements/store#index).
104
104
  <Accordion title="oke boot: meilisearch index needs OKE_STORE_INDEX_URL">
105
105
 
106
106
  No silent memory fallback. Re-run `oke dev` or export `OKE_STORE_INDEX_URL`.
107
- Docker-mode wording asks whether `docker/.env.docker` was written.
107
+ Docker-mode wording asks whether `.env.local` was written.
108
108
 
109
109
  </Accordion>
110
110
  <Accordion title="meilisearch index: GET/POST … failed (403) — or master key errors">
@@ -16,6 +16,7 @@
16
16
  "---Proxy---",
17
17
  "caddy",
18
18
  "traefik",
19
+ "nginx",
19
20
  "---Services---",
20
21
  "pgdog",
21
22
  "rustfs",
@@ -0,0 +1,117 @@
1
+ ---
2
+ title: "nginx"
3
+ description: "Static reverse proxy via a generated nginx.conf — HTTP on :80 when you bring your own TLS edge."
4
+ icon: "Lock"
5
+ source: "docs/spec/unified-theory.md"
6
+ ---
7
+
8
+ nginx is the classic static reverse proxy — a generated `nginx.conf` forwards to
9
+ `app:6530` on the compose network. Right choice when TLS already terminates elsewhere
10
+ (Cloudflare, ALB, another edge) or you want a hand-edited config.
11
+
12
+ <Callout title="The one rule">
13
+ Leave `images.proxy` unset until you need an edge in front of the app. Pin nginx for a static HTTP
14
+ proxy; prefer [Caddy](/docs/recipes/caddy) or [Traefik](/docs/recipes/traefik) when you want
15
+ automatic HTTPS in the same stack.
16
+ </Callout>
17
+
18
+ ## Quick start
19
+
20
+ <Steps>
21
+
22
+ <Step>
23
+ ### Pin the proxy
24
+
25
+ ```typescript title="oke.config.ts"
26
+ images: {
27
+ proxy: "nginx:1.31-alpine",
28
+ },
29
+ ```
30
+
31
+ `create-oke` offers **nginx** in **Add a reverse proxy…?** (or `--proxy nginx`).
32
+
33
+ </Step>
34
+
35
+ <Step>
36
+ ### Include the proxy layer
37
+
38
+ ```bash
39
+ docker compose -f docker-compose.yml up -d
40
+ ```
41
+
42
+ Generated `nginx.conf`: `upstream oke_app { server app:6530; }` with
43
+ `proxy_pass http://oke_app` on `:80`. The app host port (`6530`) is unpublished —
44
+ traffic enters through the proxy.
45
+
46
+ </Step>
47
+
48
+ <Step>
49
+ ### Put TLS in front (optional)
50
+
51
+ Point Cloudflare / an ALB / another terminator at host `:80`, or switch the pin to
52
+ Caddy / Traefik when you want ACME inside Compose.
53
+
54
+ </Step>
55
+
56
+ </Steps>
57
+
58
+ ## Required env
59
+
60
+ | Variable | Required? | Meaning |
61
+ | ----------------------- | ---------- | --------------------------------------------------------------------------- |
62
+ | `OKE_PROXY_HOST` | Optional | Documented for the proxy role; nginx listens on any `Host` (`_`) |
63
+ | `allowedHosts` (config) | Production | Must include the public hostname — see [Security](/docs/reference/security) |
64
+
65
+ ## Data and backup
66
+
67
+ | Volume / bind | Path | What it stores |
68
+ | ------------- | ------------------------------------------- | --------------------- |
69
+ | Bind mount | `./nginx.conf` → `/etc/nginx/nginx.conf:ro` | Generated site config |
70
+
71
+ **Backup means:** the `nginx.conf` is regenerated by `oke docker`. Keep overrides in
72
+ `compose.override.yml` or a replaced file if you customize routing.
73
+
74
+ ## Production note
75
+
76
+ nginx here is **HTTP-only** on port 80 — no ACME, no Docker service discovery. For
77
+ automatic HTTPS use [Caddy](/docs/recipes/caddy). For `--scale app=N` use
78
+ [Traefik](/docs/recipes/traefik).
79
+
80
+ **Consequence:** `OKE_PROXY_URL` is `http://…` for this recipe (Caddy / Traefik use
81
+ `https://…`).
82
+
83
+ ## Troubleshooting
84
+
85
+ <Accordions>
86
+ <Accordion title="App still publishes 6530">
87
+
88
+ You still have `6530:6530` on `app`. Confirm `images.proxy` is set and
89
+ `oke docker` regenerated compose so the app host bind was omitted.
90
+
91
+ </Accordion>
92
+ <Accordion title="502 Bad Gateway from nginx">
93
+
94
+ The upstream is `app:6530` on the `oke` network. Confirm the app service is healthy
95
+ and shares that network. Override `nginx.conf` only after checking the generated
96
+ upstream block.
97
+
98
+ </Accordion>
99
+ </Accordions>
100
+
101
+ ## Learn more
102
+
103
+ - [Reverse proxy](/docs/deployment/reverse-proxy) — Caddy / Traefik / nginx choice
104
+ - [Docker · Reverse proxy](/docs/deployment/docker#reverse-proxy) — compose layer order
105
+ - [Security](/docs/reference/security) — `allowedHosts`
106
+
107
+ ## Next
108
+
109
+ <Cards>
110
+ <Card title="Caddy" description="Automatic HTTPS alternative." href="/docs/recipes/caddy" />
111
+ <Card title="Traefik" description="Multi-replica alternative." href="/docs/recipes/traefik" />
112
+ <Card
113
+ title="PgDog"
114
+ description="Pool Postgres behind the same stack."
115
+ href="/docs/recipes/pgdog"
116
+ />
117
+ </Cards>
@@ -26,7 +26,7 @@ drivers: {
26
26
  ai: { dev: "ollama", test: "mock", prod: "ollama" }, // or set prod deliberately
27
27
  },
28
28
  images: {
29
- ai: "ollama/ollama:0.32.6", // never :latest — floor 0.17.1 (CVE-2026-7482)
29
+ ai: "ollama/ollama:0.32.13", // never :latest — floor 0.17.1 (CVE-2026-7482)
30
30
  },
31
31
  ```
32
32
 
@@ -37,7 +37,7 @@ Or run `oke ai setup --provider ollama --yes`.
37
37
  <Step>
38
38
  ### Env written by the stack
39
39
 
40
- ```bash title="docker/.env.docker"
40
+ ```bash title=".env.local"
41
41
  OKE_AI_URL=http://127.0.0.1:11434
42
42
  OKE_AI_MODEL=qwen3.5:9b
43
43
  ```
@@ -114,7 +114,7 @@ PII egress rules treat `ollama` as local — see [AI · PII](/docs/elements/ai).
114
114
  <Accordions>
115
115
  <Accordion title="oke boot: ollama driver needs OKE_AI_URL">
116
116
 
117
- Docker mode expects `OKE_AI_URL` from `docker/.env.docker` when `images.ai` is pinned.
117
+ Docker mode expects `OKE_AI_URL` from `.env.local` when `images.ai` is pinned.
118
118
  Locally the default is `http://127.0.0.1:11434`. Prefer `oke ai setup` to wire everything
119
119
  in one pass.
120
120
 
@@ -26,7 +26,7 @@ create-oke asks **Add PgDog connection pooling…?** (or pass `--pgdog`). Manual
26
26
  ```typescript title="oke.config.ts"
27
27
  images: {
28
28
  "store.sql": "postgres:18-alpine",
29
- pgdog: "ghcr.io/pgdogdev/pgdog:v0.1.51",
29
+ pgdog: "ghcr.io/pgdogdev/pgdog:v0.1.53",
30
30
  },
31
31
  ```
32
32
 
@@ -37,7 +37,7 @@ oke dev
37
37
  ```
38
38
 
39
39
  `oke docker` writes `POSTGRES_USER` / `POSTGRES_PASSWORD` / `POSTGRES_DB` into
40
- `docker/.env.docker` as `${OKE_STORE_SQL_USER}` / `${OKE_STORE_SQL_PASSWORD}` /
40
+ `.env.local` as `${OKE_STORE_SQL_USER}` / `${OKE_STORE_SQL_PASSWORD}` /
41
41
  `${OKE_STORE_SQL_DB}` refs — never literal secrets in compose YAML.
42
42
 
43
43
  </Step>
@@ -93,11 +93,37 @@ Scale out with [PgDog](/docs/recipes/pgdog) so `N × Bun.SQL pool` does not exha
93
93
 
94
94
  ## What the recipe configures
95
95
 
96
- | Field | Value |
97
- | -------------- | ---------------------------------------------------- |
98
- | Container port | `5432` |
99
- | Healthcheck | `pg_isready -U $POSTGRES_USER`, every 5s, 10 retries |
100
- | Connection URL | `postgres://user:pass@host:5432/db` |
96
+ | Field | Value |
97
+ | -------------- | --------------------------------------------------------- |
98
+ | Container port | `5432` |
99
+ | Healthcheck | `pg_isready -U $POSTGRES_USER`, every 5s, 10 retries |
100
+ | Connection URL | `postgres://user:pass@host:5432/db` |
101
+ | Preload | `postgres -c shared_preload_libraries=pg_stat_statements` |
102
+
103
+ ## Query performance
104
+
105
+ <Callout title="Preload, then create">
106
+ `pg_stat_statements` must load at postmaster start. `CREATE EXTENSION` alone is not enough.
107
+ Recreate `store-sql` after a recipe change — the data volume can stay.
108
+ </Callout>
109
+
110
+ | Step | What you do |
111
+ | ------- | ----------------------------------------------------------------- |
112
+ | Preload | Recipe already sets `shared_preload_libraries=pg_stat_statements` |
113
+ | Create | `CREATE EXTENSION IF NOT EXISTS pg_stat_statements` |
114
+ | Console | Store → SQL band → **Performance** |
115
+
116
+ Default `postgres:18-alpine` does **not** ship `hypopg` / `index_advisor`. Pin the
117
+ opt-in image when you want Suggest indexes:
118
+
119
+ ```typescript title="oke.config.ts"
120
+ images: {
121
+ "store.sql": "oke-postgres-advisor:18-alpine",
122
+ },
123
+ ```
124
+
125
+ `oke docker` writes `Dockerfile.postgres-advisor` and a compose `build:`. Driver id
126
+ stays `postgres`. Suggest copies `CREATE INDEX` DDL — it does not create indexes.
101
127
 
102
128
  ## Troubleshooting
103
129
 
@@ -105,16 +131,26 @@ Scale out with [PgDog](/docs/recipes/pgdog) so `N × Bun.SQL pool` does not exha
105
131
  <Accordion title="oke boot: postgres driver needs DATABASE_URL">
106
132
 
107
133
  The `postgres` driver fails boot when neither `DATABASE_URL` nor `OKE_STORE_SQL_URL` is
108
- set. Re-run `oke dev` so the stack writes `docker/.env.docker`, or export
134
+ set. Re-run `oke dev` so the stack writes `.env.local`, or export
109
135
  `DATABASE_URL` yourself when pointing at a managed host.
110
136
 
137
+ </Accordion>
138
+ <Accordion title="PgStatStatementsNotPreloaded">
139
+
140
+ The Console Performance view needs the library preloaded **and** the extension
141
+ created. Recreate `store-sql` so the new `command` applies, then run
142
+ `CREATE EXTENSION IF NOT EXISTS pg_stat_statements`.
143
+
144
+ Existing clusters that started before this recipe change keep the old
145
+ postmaster flags until recreate.
146
+
111
147
  </Accordion>
112
148
  <Accordion title="pg_isready fails / store-sql unhealthy">
113
149
 
114
150
  Wrong `POSTGRES_USER` or the container is still initializing. Check
115
151
  `docker compose … logs store-sql` for `database system is ready to accept connections`.
116
152
 
117
- Credential refs must resolve in `.env.docker` — empty `${OKE_STORE_SQL_PASSWORD}` leaves
153
+ Credential refs must resolve in `.env.local` — empty `${OKE_STORE_SQL_PASSWORD}` leaves
118
154
  Postgres refusing auth.
119
155
 
120
156
  </Accordion>
@@ -32,7 +32,7 @@ images: {
32
32
  <Step>
33
33
  ### Required password
34
34
 
35
- ```bash title="docker/.env.docker (written by oke docker)"
35
+ ```bash title=".env.local (written by oke docker)"
36
36
  OKE_STORE_KV_PASSWORD=…
37
37
  REDIS_URL=redis://:…@127.0.0.1:6379
38
38
  ```
@@ -66,12 +66,11 @@ The recipe runs:
66
66
 
67
67
  ## Data and backup
68
68
 
69
- The Redis recipe declares **no named volume**. Process memory is the source of truth;
70
- a container recreate loses keys unless you add persistence yourself
71
- (`compose.override.yml` + Redis AOF/RDB).
69
+ The default `store.kv` recipe declares **no named volume**. Process memory is the source of truth;
70
+ a container recreate loses those keys.
72
71
 
73
- **Backup means (default recipe):** treat KV as a cacherebuild from SQL / files, or
74
- add an explicit volume + `SAVE`/`BGSAVE` policy before you rely on durability.
72
+ Keys that must survive go on `{ durable: true }` a JSONB table on your SQL database, not a
73
+ second Redis. See [Store · Durable KV](/docs/elements/store#durable-kv).
75
74
 
76
75
  ## Production note
77
76
 
@@ -93,6 +92,11 @@ Multi-replica Gate rate counters and Signal need a **shared** Redis URL — an i
93
92
  | Healthcheck | `redis-cli -a <password> ping`, every 5s, 10 retries |
94
93
  | Connection URL | `redis://:pass@host:6379` |
95
94
 
95
+ <Callout title="Console Performance">
96
+ Store → KV band → **Performance** reads `INFO` / `SLOWLOG` on this instance. Those commands are
97
+ server-wide, not scoped to `oke:kv:{ns}:`. `memory` (tests) returns `KvStatsUnsupported`.
98
+ </Callout>
99
+
96
100
  ## Troubleshooting
97
101
 
98
102
  <Accordions>
@@ -100,7 +104,7 @@ Multi-replica Gate rate counters and Signal need a **shared** Redis URL — an i
100
104
 
101
105
  Missing `REDIS_URL` fails boot loudly — never a silent fallback to `memory`. Re-run
102
106
  `oke dev` or export `REDIS_URL` when using a managed host. Under Compose the
103
- message asks whether `oke dev -d` wrote `docker/.env.docker`.
107
+ message asks whether `oke dev -d` wrote `.env.local`.
104
108
 
105
109
  </Accordion>
106
110
  <Accordion title="NOAUTH Authentication required">
@@ -27,7 +27,7 @@ drivers: {
27
27
  },
28
28
  },
29
29
  images: {
30
- store: { files: "rustfs/rustfs:1.0.0-beta.11" },
30
+ store: { files: "rustfs/rustfs:1.0.0-rc.2" },
31
31
  },
32
32
  ```
33
33
 
@@ -36,7 +36,7 @@ images: {
36
36
  <Step>
37
37
  ### Credentials and endpoint
38
38
 
39
- ```bash title="docker/.env.docker (written by oke docker)"
39
+ ```bash title=".env.local (written by oke docker)"
40
40
  S3_ACCESS_KEY_ID=…
41
41
  S3_SECRET_ACCESS_KEY=…
42
42
  S3_BUCKET=oke
@@ -88,7 +88,7 @@ endpoint. Open `S3_CONSOLE_URL` for a browser console on port **9001**.
88
88
  **Backup means:** snapshot that named volume (or `aws s3 sync` against the API).
89
89
  Deleting the volume deletes every object.
90
90
 
91
- Credentials live in `.env.docker`, not in `/data` — rotate keys without wiping objects.
91
+ Credentials live in `.env.local`, not in `/data` — rotate keys without wiping objects.
92
92
  Losing both volume and keys means full restore from backup only.
93
93
 
94
94
  ## Production note
@@ -122,7 +122,7 @@ for a managed bucket.
122
122
  <Accordion title="Access Denied / signature errors against :9000">
123
123
 
124
124
  `S3_ACCESS_KEY_ID` / `S3_SECRET_ACCESS_KEY` do not match `RUSTFS_*` inside the
125
- container, or `S3_ENDPOINT` points at the wrong host/port. Align `.env.docker` with the
125
+ container, or `S3_ENDPOINT` points at the wrong host/port. Align `.env.local` with the
126
126
  running service; confirm health at `/health` before debugging client signatures.
127
127
 
128
128
  </Accordion>
@@ -26,7 +26,7 @@ drivers: {
26
26
  ai: { dev: "openai-compatible", test: "mock", prod: "openai-compatible" },
27
27
  },
28
28
  images: {
29
- ai: "lmsysorg/sglang:v0.5.16-runtime", // never :latest
29
+ ai: "lmsysorg/sglang:v0.5.17-runtime", // never :latest
30
30
  },
31
31
  ```
32
32
 
@@ -37,7 +37,7 @@ Or `oke ai setup --provider sglang --yes`.
37
37
  <Step>
38
38
  ### Env + GPU
39
39
 
40
- ```bash title="docker/.env.docker"
40
+ ```bash title=".env.local"
41
41
  OKE_AI_URL=http://127.0.0.1:30000/v1
42
42
  OKE_AI_MODEL=Qwen/Qwen3-0.6B
43
43
  ```
@@ -98,10 +98,34 @@ cloud pausing does not apply to this Docker image — you own uptime.
98
98
  | Container port | `5432` |
99
99
  | Healthcheck | `pg_isready -U $POSTGRES_USER`, every 5s, 10 retries |
100
100
  | Connection URL | `postgres://user:pass@host:5432/db` |
101
+ | Preload | Image config — recipe does **not** set `command` |
102
+
103
+ ## Query performance
104
+
105
+ <Callout title="Do not overwrite command">
106
+ `supabase/postgres` already preloads `pg_stat_statements`. This recipe leaves `command` unset so
107
+ vendor startup stays intact.
108
+ </Callout>
109
+
110
+ | Step | What you do |
111
+ | ------- | ------------------------------------------------------------------ |
112
+ | Preload | Image `postgresql.conf` (not an oke `command`) |
113
+ | Create | `CREATE EXTENSION IF NOT EXISTS pg_stat_statements` |
114
+ | Advisor | `CREATE EXTENSION IF NOT EXISTS index_advisor CASCADE` when listed |
115
+
116
+ Console **Performance** then reads engine stats. Enable Index Advisor from the
117
+ same view when `pg_available_extensions` lists it.
101
118
 
102
119
  ## Troubleshooting
103
120
 
104
121
  <Accordions>
122
+ <Accordion title="PgStatStatementsNotPreloaded after a custom command">
123
+
124
+ Do not replace the image entrypoint with a generic `postgres -c
125
+ shared_preload_libraries=pg_stat_statements`. Restore the vendor command, create
126
+ the extension, then open Store → **Performance**.
127
+
128
+ </Accordion>
105
129
  <Accordion title='Extension "vector" is not available'>
106
130
 
107
131
  You pinned a plain `postgres:` image, not `supabase/postgres`, or the tag predates the
@@ -86,16 +86,40 @@ Managed time-series hosts still use `DATABASE_URL` and
86
86
 
87
87
  ## What the recipe configures
88
88
 
89
- | Field | Value |
90
- | -------------- | --------------------------------------- |
91
- | Match | `timescale` ahead of generic `postgres` |
92
- | Container port | `5432` |
93
- | Healthcheck | `pg_isready -U $POSTGRES_USER` |
94
- | Connection URL | `postgres://user:pass@host:5432/db` |
89
+ | Field | Value |
90
+ | -------------- | ------------------------------------------------------ |
91
+ | Match | `timescale` ahead of generic `postgres` |
92
+ | Container port | `5432` |
93
+ | Healthcheck | `pg_isready -U $POSTGRES_USER` |
94
+ | Connection URL | `postgres://user:pass@host:5432/db` |
95
+ | Preload | `timescaledb,pg_stat_statements` — Timescale **first** |
96
+
97
+ ## Query performance
98
+
99
+ <Callout title="Keep timescaledb first">
100
+ Overwriting `command` with only `pg_stat_statements` breaks hypertables. This recipe preloads
101
+ `timescaledb,pg_stat_statements`. Then `CREATE EXTENSION pg_stat_statements`.
102
+ </Callout>
103
+
104
+ | Step | What you do |
105
+ | ------- | --------------------------------------------------------------------- |
106
+ | Preload | Recipe sets `shared_preload_libraries=timescaledb,pg_stat_statements` |
107
+ | Create | `CREATE EXTENSION IF NOT EXISTS pg_stat_statements` |
108
+ | Console | Store → SQL band → **Performance** |
109
+
110
+ Index Advisor is not in the Timescale image. Pin
111
+ `oke-postgres-advisor:18-alpine` only if you drop Timescale — or enable
112
+ `index_advisor` on an image that ships it.
95
113
 
96
114
  ## Troubleshooting
97
115
 
98
116
  <Accordions>
117
+ <Accordion title="hypertables missing after a custom command">
118
+
119
+ If you override compose `command`, keep `timescaledb` first in
120
+ `shared_preload_libraries`. A `pg_stat_statements`-only preload unloads Timescale.
121
+
122
+ </Accordion>
99
123
  <Accordion title='extension "timescaledb" is not available'>
100
124
 
101
125
  You pinned a plain `postgres:` image. Confirm the reference contains `timescale`,
@@ -22,7 +22,7 @@ Traefik discovers `app` replicas from Docker labels instead of a static upstream
22
22
 
23
23
  ```typescript title="oke.config.ts"
24
24
  images: {
25
- proxy: "traefik:v3.3",
25
+ proxy: "traefik:v3.7",
26
26
  },
27
27
  ```
28
28
 
@@ -31,7 +31,7 @@ images: {
31
31
  <Step>
32
32
  ### Hostname + ACME email
33
33
 
34
- ```bash title="docker/.env.docker"
34
+ ```bash title=".env.local"
35
35
  OKE_PROXY_HOST=app.example.com
36
36
  OKE_PROXY_ACME_EMAIL=admin@example.com
37
37
  ```
@@ -103,6 +103,13 @@ Usually `socket-proxy` is down, or `app` lacks Traefik labels. Confirm
103
103
  Logs showing Docker provider connection errors point at the socket-proxy, not Traefik
104
104
  config syntax.
105
105
 
106
+ </Accordion>
107
+ <Accordion title="oke dev: service app has neither an image nor a build context">
108
+
109
+ `oke dev` starts infra only; the app stays on the host at `:6530`.
110
+ Traefik labels apply when `app` is in Compose — use `oke docker` for that.
111
+ Re-run `oke dev` after upgrading so compose drops the label-only `app`.
112
+
106
113
  </Accordion>
107
114
  <Accordion title="ACME email rejected / rate limited">
108
115
 
@@ -123,14 +130,10 @@ re-issuing repeatedly.
123
130
 
124
131
  <Cards>
125
132
  <Card title="Caddy" description="Single-instance alternative." href="/docs/recipes/caddy" />
133
+ <Card title="nginx" description="Static HTTP reverse proxy." href="/docs/recipes/nginx" />
126
134
  <Card
127
135
  title="PgDog"
128
136
  description="Pool Postgres behind the same stack."
129
137
  href="/docs/recipes/pgdog"
130
138
  />
131
- <Card
132
- title="Redis Cloud"
133
- description="A managed backing store."
134
- href="/docs/providers/redis-cloud"
135
- />
136
139
  </Cards>
@@ -61,9 +61,11 @@ Same knobs as Redis: `OKE_STORE_KV_MAXMEMORY`, `OKE_STORE_KV_MAXMEMORY_POLICY`.
61
61
 
62
62
  ## Data and backup
63
63
 
64
- No named volume in the recipe — same ephemeral default as [Redis](/docs/recipes/redis).
65
- **Backup means:** do not assume durability until you add a volume + persistence config;
66
- treat the default as a shared cache rebuilt from durable stores.
64
+ The default `store.kv` recipe declares **no named volume** — same ephemeral default as
65
+ [Redis](/docs/recipes/redis).
66
+
67
+ Keys that must survive go on `{ durable: true }` — a JSONB table on your SQL database.
68
+ See [Store · Durable KV](/docs/elements/store#durable-kv).
67
69
 
68
70
  ## Production note
69
71
 
@@ -26,7 +26,7 @@ drivers: {
26
26
  ai: { dev: "openai-compatible", test: "mock", prod: "openai-compatible" },
27
27
  },
28
28
  images: {
29
- ai: "vllm/vllm-openai:v0.26.0", // never :latest
29
+ ai: "vllm/vllm-openai:v0.27.1", // never :latest
30
30
  },
31
31
  ```
32
32
 
@@ -37,7 +37,7 @@ Or `oke ai setup --provider vllm --yes`.
37
37
  <Step>
38
38
  ### Env + GPU
39
39
 
40
- ```bash title="docker/.env.docker"
40
+ ```bash title=".env.local"
41
41
  OKE_AI_URL=http://127.0.0.1:8000/v1
42
42
  OKE_AI_MODEL=Qwen/Qwen3-0.6B
43
43
  ```
@@ -89,6 +89,12 @@ tag; the image is large and cold-start is slower than Postgres.
89
89
  | Command | `bin/yugabyted start --base_dir=… --background=false` |
90
90
  | Healthcheck | `ysqlsh … SELECT 1` (90s `start_period`) |
91
91
  | Connection URL | `postgres://user:pass@host:5432/db` |
92
+ | Preload | Vendor — recipe does **not** replace `yugabyted` |
93
+
94
+ ## Query performance
95
+
96
+ YSQL already preloads `pg_stat_statements`. Create the extension, then open Store →
97
+ **Performance**. Do not add a Postgres `command` overlay.
92
98
 
93
99
  ## Troubleshooting
94
100
 
@@ -104,7 +110,7 @@ Receiver or remap that port in `compose.override.yml` if you need the UI.
104
110
  </Accordion>
105
111
  <Accordion title="password authentication failed">
106
112
 
107
- `YSQL_PASSWORD` must match `DATABASE_URL`. Regenerate `docker/.env.docker` with
113
+ `YSQL_PASSWORD` must match `DATABASE_URL`. Regenerate `.env.local` with
108
114
  `oke dev`. Auth is off only when `YSQL_PASSWORD` is unset — this recipe
109
115
  always sets it.
110
116