okengine 0.22.0 → 0.23.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 (262) hide show
  1. package/AGENTS.md +7 -0
  2. package/manifest.v1.schema.json +44 -0
  3. package/package.json +32 -19
  4. package/site/content/docs/ai/mcp.mdx +13 -9
  5. package/site/content/docs/ai/skills.mdx +1 -1
  6. package/site/content/docs/elements/ai/agents.mdx +61 -13
  7. package/site/content/docs/elements/ai/decide.mdx +536 -0
  8. package/site/content/docs/elements/ai/events.mdx +373 -0
  9. package/site/content/docs/elements/ai/index.mdx +9 -3
  10. package/site/content/docs/elements/ai/meta.json +1 -1
  11. package/site/content/docs/elements/ai/prompts.mdx +4 -2
  12. package/site/content/docs/elements/gate/auth.mdx +4 -1
  13. package/site/content/docs/elements/store/index.mdx +1 -1
  14. package/site/content/docs/elements/store/kv.mdx +5 -5
  15. package/site/content/docs/recipes/dragonfly.mdx +5 -5
  16. package/site/content/docs/recipes/index.mdx +6 -6
  17. package/site/content/docs/recipes/postgres.mdx +12 -8
  18. package/site/content/docs/recipes/redis.mdx +4 -4
  19. package/site/content/docs/reference/cli.mdx +2 -1
  20. package/site/content/docs/reference/configuration.mdx +9 -7
  21. package/site/content/docs/reference/fx.mdx +7 -6
  22. package/src/auth/api-key-sql.test.ts +44 -0
  23. package/src/auth/api-key-sql.ts +1 -0
  24. package/src/auth/api-keys.ts +30 -12
  25. package/src/auth/config.ts +6 -2
  26. package/src/auth/gate-auth.test.ts +20 -0
  27. package/src/cli/agents-md.test.ts +25 -0
  28. package/src/cli/ask-vault-gaps.test.ts +38 -1
  29. package/src/cli/ask-vault-gaps.ts +35 -2
  30. package/src/cli/decide.ts +174 -0
  31. package/src/cli/decision-lock-watch.test.ts +45 -0
  32. package/src/cli/decision-lock-watch.ts +51 -0
  33. package/src/cli/dev-app-runner.ts +34 -8
  34. package/src/cli/dev-auth-secret.test.ts +49 -0
  35. package/src/cli/dev-auth-secret.ts +49 -0
  36. package/src/cli/dev-hot.test.ts +41 -0
  37. package/src/cli/dev-hot.ts +48 -0
  38. package/src/cli/dev.test.ts +1 -1
  39. package/src/cli/dev.ts +24 -6
  40. package/src/cli/eval.ts +142 -1
  41. package/src/cli/index.ts +5 -0
  42. package/src/cli/load-config.images.test.ts +2 -2
  43. package/src/cli/load-config.ts +1 -1
  44. package/src/cli/mcp-from-console.ts +48 -0
  45. package/src/cli/registry.ts +35 -1
  46. package/src/client/agent.ts +307 -0
  47. package/src/client/transport.test.ts +20 -0
  48. package/src/client/transport.ts +2 -1
  49. package/src/client/types.ts +1 -1
  50. package/src/client-react/index.ts +7 -1
  51. package/src/client-react/use-agent-run.test.ts +271 -0
  52. package/src/client-react/use-agent-run.ts +193 -0
  53. package/src/compiler/ai-approval.test.ts +36 -0
  54. package/src/compiler/ai-repair.test.ts +22 -0
  55. package/src/compiler/decisions.extract.test.ts +164 -0
  56. package/src/compiler/effects-infer.ts +27 -1
  57. package/src/compiler/extract.ts +268 -12
  58. package/src/compiler/response.ts +35 -2
  59. package/src/config/index.ts +21 -3
  60. package/src/console/server/ai-runs-flows.ts +269 -0
  61. package/src/console/server/ai-runs.test.ts +323 -0
  62. package/src/console/server/ai-runs.ts +562 -0
  63. package/src/console/server/ai.ts +12 -1
  64. package/src/console/server/app.ts +10 -1
  65. package/src/console/server/decisions-flows.ts +157 -0
  66. package/src/console/server/decisions.test.ts +66 -0
  67. package/src/console/server/decisions.ts +229 -0
  68. package/src/console/server/flows.ts +50 -2
  69. package/src/console/server/invoke-user-flow.ts +9 -0
  70. package/src/console/server/runs-ingest.ts +16 -0
  71. package/src/console/server/serve.ts +5 -0
  72. package/src/console/server/state.ts +25 -1
  73. package/src/console/server/store-stats.test.ts +47 -0
  74. package/src/console/server/store-stats.ts +92 -18
  75. package/src/console/ui-next/dist/assets/access-page-DDKkhT9v.js +4 -0
  76. package/src/console/ui-next/dist/assets/{agent-disclosure-Bkohc_8X.js → agent-disclosure-62Xts8Xi.js} +1 -1
  77. package/src/console/ui-next/dist/assets/{cache-glyph-rL0lHxat.js → cache-glyph-DyeoKHKA.js} +1 -1
  78. package/src/console/ui-next/dist/assets/{call-pii-button-Deo4PP18.js → call-pii-button-DvfpLXsU.js} +1 -1
  79. package/src/console/ui-next/dist/assets/{collapsible-CoJ6amHf.js → collapsible-BY03SeCg.js} +1 -1
  80. package/src/console/ui-next/dist/assets/confirm-sheet-DZfuJXP4.js +1 -0
  81. package/src/console/ui-next/dist/assets/copy-inline-button-BTjPVjRT.js +1 -0
  82. package/src/console/ui-next/dist/assets/decisions-page-CgkKlA56.js +1 -0
  83. package/src/console/ui-next/dist/assets/detail-header-Dk5LipF6.js +1 -0
  84. package/src/console/ui-next/dist/assets/dropdown-menu-CRGrj5JU.js +1 -0
  85. package/src/console/ui-next/dist/assets/duration-tone-Y6HLjyJ5.js +9 -0
  86. package/src/console/ui-next/dist/assets/element-icons-C6t8Vlml.js +1 -0
  87. package/src/console/ui-next/dist/assets/explorer-chrome-Dslh2yE8.js +1 -0
  88. package/src/console/ui-next/dist/assets/explorer-empty-CIVg7Jgb.js +1 -0
  89. package/src/console/ui-next/dist/assets/flows-page-DLPfNy-_.js +1 -0
  90. package/src/console/ui-next/dist/assets/{highlighted-json-CPYBzDh0.js → highlighted-json-D7nNzpgB.js} +1 -1
  91. package/src/console/ui-next/dist/assets/{http-method-DTPevKmM.js → http-method-DdL19zzh.js} +1 -1
  92. package/src/console/ui-next/dist/assets/index-BlrN49Hs.css +2 -0
  93. package/src/console/ui-next/dist/assets/index-C0lc_s9d.js +58 -0
  94. package/src/console/ui-next/dist/assets/observability-page-CRlcyLCC.js +8 -0
  95. package/src/console/ui-next/dist/assets/{replica-lag-BM27lXld.js → replica-lag-Bb3FWUu9.js} +7 -7
  96. package/src/console/ui-next/dist/assets/request-meta-DYBMWhX8.js +1 -0
  97. package/src/console/ui-next/dist/assets/shortcut-keys-DTE1sjTC.js +1 -0
  98. package/src/console/ui-next/dist/assets/store-page-CcE-SXC8.js +41 -0
  99. package/src/console/ui-next/dist/assets/trace-detail-sheet-CKMSEQ4s.js +2 -0
  100. package/src/console/ui-next/dist/assets/tree-expand-toggle-QOfk0M0H.js +55 -0
  101. package/src/console/ui-next/dist/assets/units-page-DKC1CDDd.js +1 -0
  102. package/src/console/ui-next/dist/assets/use-vault-list-BAyQG8Re.js +1 -0
  103. package/src/console/ui-next/dist/assets/vault-page-B54v4Yit.js +2 -0
  104. package/src/console/ui-next/dist/index.html +4 -3
  105. package/src/console/ui-next/seed-parked-approval.ts +126 -0
  106. package/src/console/ui-next/src/client.ts +224 -1
  107. package/src/console/ui-next/src/components/explorer/detail-header.tsx +9 -0
  108. package/src/console/ui-next/src/components/explorer/explorer-start-toggle.tsx +5 -1
  109. package/src/console/ui-next/src/components/ui/sheet-form.tsx +21 -12
  110. package/src/console/ui-next/src/features/flows/decisions/decisions-page.tsx +216 -0
  111. package/src/console/ui-next/src/features/flows/decisions/resolve.test.ts +48 -0
  112. package/src/console/ui-next/src/features/flows/decisions/resolve.ts +111 -0
  113. package/src/console/ui-next/src/features/flows/flows-page.tsx +10 -0
  114. package/src/console/ui-next/src/features/flows/graph/element-map.ts +1 -0
  115. package/src/console/ui-next/src/features/flows/traces/effect-kind.ts +6 -0
  116. package/src/console/ui-next/src/features/flows/traces/effect-summary.test.ts +24 -0
  117. package/src/console/ui-next/src/features/flows/traces/effect-summary.ts +24 -0
  118. package/src/console/ui-next/src/features/flows/traces/http-status.ts +58 -0
  119. package/src/console/ui-next/src/features/flows/traces/request-client-card.tsx +355 -0
  120. package/src/console/ui-next/src/features/flows/traces/request-client.test.ts +114 -0
  121. package/src/console/ui-next/src/features/flows/traces/request-client.ts +423 -0
  122. package/src/console/ui-next/src/features/flows/traces/request-input-view.test.ts +52 -6
  123. package/src/console/ui-next/src/features/flows/traces/request-input-view.ts +85 -19
  124. package/src/console/ui-next/src/features/flows/traces/trace-detail-sheet.tsx +505 -80
  125. package/src/console/ui-next/src/features/flows/traces/trace-lanes.test.ts +61 -0
  126. package/src/console/ui-next/src/features/flows/traces/trace-lanes.ts +78 -0
  127. package/src/console/ui-next/src/features/flows/traces/trace-nav.test.ts +48 -0
  128. package/src/console/ui-next/src/features/flows/traces/trace-nav.ts +57 -0
  129. package/src/console/ui-next/src/features/flows/traces/trace-request-section.tsx +275 -96
  130. package/src/console/ui-next/src/features/flows/traces/traces-pane.tsx +16 -2
  131. package/src/console/ui-next/src/features/observability/detail/ai-runs.tsx +369 -0
  132. package/src/console/ui-next/src/features/observability/observability-page.tsx +31 -1
  133. package/src/console/ui-next/src/features/observability/state/observability-selection.ts +18 -3
  134. package/src/console/ui-next/src/features/store/performance/kv-performance-panel.tsx +12 -1
  135. package/src/console/ui-next/src/features/store/performance/performance-panel.tsx +14 -1
  136. package/src/console/ui-next/src/features/units/call/call-api-panel.tsx +1 -1
  137. package/src/console/ui-next/src/features/units/detail/flow-contract-panel.tsx +6 -2
  138. package/src/console/ui-next/src/features/units/explorer/units-tree.tsx +73 -18
  139. package/src/console/ui-next/src/features/units/lib/unit-tree.test.ts +21 -0
  140. package/src/console/ui-next/src/features/units/lib/unit-tree.ts +82 -0
  141. package/src/console/ui-next/src/features/units/units-page.tsx +25 -7
  142. package/src/console/ui-next/src/router.tsx +17 -0
  143. package/src/console/ui-next/ui-next-seed-runs.ts +23 -0
  144. package/src/console/ui-next/vite-console-kernel-plugin.ts +43 -3
  145. package/src/console/ui-next/vite.config.ts +9 -0
  146. package/src/docker/recipes/dragonfly.ts +3 -2
  147. package/src/docker/recipes/redis.ts +1 -1
  148. package/src/drivers/ai-anthropic.ts +212 -21
  149. package/src/drivers/ai-mock.ts +34 -1
  150. package/src/drivers/ai-openai-compatible.ts +67 -26
  151. package/src/drivers/ai-preconnect.ts +18 -0
  152. package/src/drivers/ai-stream.test.ts +62 -0
  153. package/src/drivers/ai-types.ts +20 -0
  154. package/src/drivers/journal-postgres.ts +289 -2
  155. package/src/drivers/memory-ddl.test.ts +18 -0
  156. package/src/drivers/memory.ts +21 -1
  157. package/src/drivers/pg-rls.test.ts +31 -0
  158. package/src/drivers/pg-rls.ts +15 -0
  159. package/src/drivers/postgres.test.ts +9 -0
  160. package/src/drivers/postgres.ts +49 -11
  161. package/src/elements/ai/agent-event-slot.ts +27 -0
  162. package/src/elements/ai/approval-http.ts +207 -0
  163. package/src/elements/ai/approval.test.ts +741 -0
  164. package/src/elements/ai/approval.ts +228 -0
  165. package/src/elements/ai/decisions/bind.ts +163 -0
  166. package/src/elements/ai/decisions/certificate.test.ts +291 -0
  167. package/src/elements/ai/decisions/certificate.ts +377 -0
  168. package/src/elements/ai/decisions/certify.ts +314 -0
  169. package/src/elements/ai/decisions/decide.test.ts +953 -0
  170. package/src/elements/ai/decisions/e2e.test.ts +399 -0
  171. package/src/elements/ai/decisions/export.test.ts +120 -0
  172. package/src/elements/ai/decisions/export.ts +146 -0
  173. package/src/elements/ai/decisions/fixtures/openrouter-request.json +24 -0
  174. package/src/elements/ai/decisions/fixtures/openrouter-response.json +22 -0
  175. package/src/elements/ai/decisions/fixtures/typesafe-request.json +19 -0
  176. package/src/elements/ai/decisions/fixtures/typesafe-response.json +13 -0
  177. package/src/elements/ai/decisions/http.test.ts +154 -0
  178. package/src/elements/ai/decisions/http.ts +240 -0
  179. package/src/elements/ai/decisions/labels.test.ts +282 -0
  180. package/src/elements/ai/decisions/labels.ts +257 -0
  181. package/src/elements/ai/decisions/openrouter.live.test.ts +136 -0
  182. package/src/elements/ai/decisions/openrouter.ts +36 -0
  183. package/src/elements/ai/decisions/provider.ts +102 -0
  184. package/src/elements/ai/decisions/typesafe.ts +36 -0
  185. package/src/elements/ai/declare.ts +252 -1
  186. package/src/elements/ai/events.test.ts +379 -0
  187. package/src/elements/ai/events.ts +138 -0
  188. package/src/elements/ai/run-events.test.ts +461 -0
  189. package/src/elements/ai/run-events.ts +522 -0
  190. package/src/elements/ai/runtime.ts +1186 -105
  191. package/src/elements/ai/stream-turn.ts +214 -0
  192. package/src/elements/ai/stream.live.test.ts +76 -0
  193. package/src/elements/ai/subagent.test.ts +136 -0
  194. package/src/elements/ai.test.ts +497 -3
  195. package/src/elements/ai.ts +16 -1
  196. package/src/elements/clock/durable.ts +27 -1
  197. package/src/elements/store/sql-session.test.ts +51 -0
  198. package/src/elements/store/sql-session.ts +111 -1
  199. package/src/i18n/catalogs/ar.ts +5 -0
  200. package/src/i18n/catalogs/en.ts +5 -0
  201. package/src/index.ts +2 -0
  202. package/src/kernel/agent-event-store.ts +448 -0
  203. package/src/kernel/app.ts +103 -1
  204. package/src/kernel/boot-bind/ai.ts +3 -0
  205. package/src/kernel/boot-bind/store.test.ts +26 -0
  206. package/src/kernel/boot-bind/store.ts +82 -6
  207. package/src/kernel/boot.ts +15 -4
  208. package/src/kernel/builtin-errors.ts +2 -0
  209. package/src/kernel/capability.ts +3 -0
  210. package/src/kernel/decision-label-store.ts +441 -0
  211. package/src/kernel/effects.test.ts +2 -1
  212. package/src/kernel/effects.ts +13 -1
  213. package/src/kernel/element-registries.ts +3 -0
  214. package/src/kernel/errors-text.ts +4 -0
  215. package/src/kernel/errors.ts +2 -0
  216. package/src/kernel/flow.test.ts +2 -3
  217. package/src/kernel/fx-decide.ts +761 -0
  218. package/src/kernel/fx.test.ts +12 -5
  219. package/src/kernel/fx.ts +312 -29
  220. package/src/kernel/http-frame.test.ts +94 -0
  221. package/src/kernel/http-frame.ts +203 -0
  222. package/src/kernel/journal.ts +104 -0
  223. package/src/kernel/json-result.ts +10 -0
  224. package/src/kernel/pipeline.test.ts +45 -0
  225. package/src/kernel/sse-id.ts +32 -0
  226. package/src/manifest/diff.ts +1 -0
  227. package/src/manifest/types.ts +29 -2
  228. package/src/mcp/ai-tools.test.ts +202 -0
  229. package/src/mcp/authorization.ts +66 -0
  230. package/src/mcp/session.ts +3 -0
  231. package/src/mcp/tools.ts +168 -0
  232. package/src/release/http-graph.test.ts +2 -0
  233. package/src/release/http-graph.ts +5 -0
  234. package/src/release/measure.ts +39 -14
  235. package/src/runs/collect.ts +4 -1
  236. package/src/runs/parquet.test.ts +27 -1
  237. package/src/runs/parquet.ts +19 -0
  238. package/src/runs/types.ts +31 -0
  239. package/src/runtime/json-code-block.test.ts +106 -47
  240. package/src/runtime/json-code-block.ts +1209 -46
  241. package/src/term.test.ts +13 -0
  242. package/src/term.ts +81 -49
  243. package/src/console/ui-next/dist/assets/PlusSignIcon-CwG3nxfu.js +0 -1
  244. package/src/console/ui-next/dist/assets/access-page-Ze6ckjdd.js +0 -4
  245. package/src/console/ui-next/dist/assets/copy-inline-button-CWG5_ZOh.js +0 -1
  246. package/src/console/ui-next/dist/assets/detail-header-b_ZzIsmU.js +0 -1
  247. package/src/console/ui-next/dist/assets/dropdown-menu-nwXEO1Ac.js +0 -1
  248. package/src/console/ui-next/dist/assets/duration-tone-BbQ_8z50.js +0 -9
  249. package/src/console/ui-next/dist/assets/element-icons-CwyLpVXz.js +0 -1
  250. package/src/console/ui-next/dist/assets/explorer-empty-C8sSCqYT.js +0 -1
  251. package/src/console/ui-next/dist/assets/flows-page-D2E7BtKK.js +0 -1
  252. package/src/console/ui-next/dist/assets/index-VxoEz295.css +0 -2
  253. package/src/console/ui-next/dist/assets/index-vTuwmeQz.js +0 -58
  254. package/src/console/ui-next/dist/assets/observability-page-SJTSzHFJ.js +0 -4
  255. package/src/console/ui-next/dist/assets/request-meta-BjFT7DNl.js +0 -1
  256. package/src/console/ui-next/dist/assets/shortcut-keys-CUNegEV4.js +0 -1
  257. package/src/console/ui-next/dist/assets/store-page-Qj9ThRE-.js +0 -41
  258. package/src/console/ui-next/dist/assets/trace-detail-sheet-Cmitq3da.js +0 -2
  259. package/src/console/ui-next/dist/assets/tree-expand-toggle-CbDIB-7x.js +0 -55
  260. package/src/console/ui-next/dist/assets/units-page-_PuYqFty.js +0 -1
  261. package/src/console/ui-next/dist/assets/use-vault-list-Cs45Czkt.js +0 -1
  262. package/src/console/ui-next/dist/assets/vault-page-BOMr0go9.js +0 -2
@@ -1,18 +1,18 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{r as t}from"./react-dom-Ddte4I-Q.js";import{A as n}from"./xyflow-yApv7D4e.js";import{Dr as r,Er as i,Or as a,Zi as o,br as s,fi as c,i as l,l as u,o as d,s as f,t as p,u as m,vr as h,x as g,xr as _,yr as v}from"./shortcut-keys-CUNegEV4.js";import{c as y,i as b,o as x}from"./call-pii-button-Deo4PP18.js";import{b as ee,d as S,f as C,l as w,p as T,s as E,u as D}from"./element-icons-CwyLpVXz.js";import{a as O,o as te}from"./collapsible-CoJ6amHf.js";import{o as ne}from"./duration-tone-BbQ_8z50.js";import{t as k}from"./highlighted-json-CPYBzDh0.js";import{t as A}from"./FileExportIcon-Ck-5od4R.js";import{c as j,l as re,n as ie,st as ae}from"./index-vTuwmeQz.js";var oe=[[`path`,{d:`M17.9998 15C17.9998 15 13.5809 9.00001 11.9998 9C10.4187 8.99999 5.99985 15 5.99985 15`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}]],se=[[`path`,{d:`M7.5 17.2196C7.44458 16.0292 6.62155 16 5.50505 16C3.78514 16 3.5 16.406 3.5 18V20C3.5 21.594 3.78514 22 5.50505 22C6.62154 22 7.44458 21.9708 7.5 20.7804M20.5 16L18.7229 20.6947C18.3935 21.5649 18.2288 22 17.968 22C17.7071 22 17.5424 21.5649 17.213 20.6947L15.4359 16M12.876 16H11.6951C11.2231 16 10.9872 16 10.8011 16.0761C10.1672 16.3354 10.1758 16.9448 10.1758 17.5C10.1758 18.0553 10.1672 18.6647 10.8011 18.9239C10.9872 19 11.2232 19 11.6951 19C12.167 19 12.4029 19 12.5891 19.0761C13.2229 19.3354 13.2143 19.9447 13.2143 20.5C13.2143 21.0553 13.2229 21.6647 12.5891 21.9239C12.4029 22 12.167 22 11.6951 22H10.4089`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M20 13V10.6569C20 9.83935 20 9.4306 19.8478 9.06306C19.6955 8.69552 19.4065 8.40649 18.8284 7.82843L14.0919 3.09188C13.593 2.593 13.3436 2.34355 13.0345 2.19575C12.9702 2.165 12.9044 2.13772 12.8372 2.11401C12.5141 2 12.1614 2 11.4558 2C8.21082 2 6.58831 2 5.48933 2.88607C5.26731 3.06508 5.06508 3.26731 4.88607 3.48933C4 4.58831 4 6.21082 4 9.45584V13M13 2.5V3C13 5.82843 13 7.24264 13.8787 8.12132C14.7574 9 16.1716 9 19 9H19.5`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`1`}]],ce=[[`path`,{d:`M11 18.75C11.4142 18.75 11.75 18.4142 11.75 18C11.75 17.5858 11.4142 17.25 11 17.25V18V18.75ZM9 13.25C8.58579 13.25 8.25 13.5858 8.25 14C8.25 14.4142 8.58579 14.75 9 14.75V14V13.25ZM9 21.25C8.58579 21.25 8.25 21.5858 8.25 22C8.25 22.4142 8.58579 22.75 9 22.75V22V21.25ZM3 17.25C2.58579 17.25 2.25 17.5858 2.25 18C2.25 18.4142 2.58579 18.75 3 18.75V18V17.25ZM5 22.75C5.41421 22.75 5.75 22.4142 5.75 22C5.75 21.5858 5.41421 21.25 5 21.25V22V22.75ZM5 14.75C5.41421 14.75 5.75 14.4142 5.75 14C5.75 13.5858 5.41421 13.25 5 13.25V14V14.75ZM10 15H9.25V17H10H10.75V15H10ZM10 17H9.25C9.25 17.9665 10.0335 18.75 11 18.75V18V17.25C10.8619 17.25 10.75 17.1381 10.75 17H10ZM9 14V14.75C9.13807 14.75 9.25 14.8619 9.25 15H10H10.75C10.75 14.0335 9.9665 13.25 9 13.25V14ZM10 21H10.75V19H10H9.25V21H10ZM10 19H10.75C10.75 18.8619 10.8619 18.75 11 18.75V18V17.25C10.0335 17.25 9.25 18.0335 9.25 19H10ZM9 22V22.75C9.9665 22.75 10.75 21.9665 10.75 21H10H9.25C9.25 21.1381 9.13807 21.25 9 21.25V22ZM4 17H3.25C3.25 17.1381 3.13807 17.25 3 17.25V18V18.75C3.9665 18.75 4.75 17.9665 4.75 17H4ZM4 19H4.75C4.75 18.0335 3.9665 17.25 3 17.25V18V18.75C3.13807 18.75 3.25 18.8619 3.25 19H4ZM4 21H4.75V19H4H3.25V21H4ZM4 15H3.25V17H4H4.75V15H4ZM5 22V21.25C4.86193 21.25 4.75 21.1381 4.75 21H4H3.25C3.25 21.9665 4.0335 22.75 5 22.75V22ZM5 14V13.25C4.0335 13.25 3.25 14.0335 3.25 15H4H4.75C4.75 14.8619 4.86193 14.75 5 14.75V14Z`,fill:`currentColor`,key:`0`}],[`path`,{d:`M14 2.5V3C14 5.82843 14 7.24264 14.8787 8.12132C15.7574 9 17.1716 9 20 9H20.5`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`1`}],[`path`,{d:`M14 21.9991C17.1143 21.99 18.7653 21.8915 19.8284 20.8284C21 19.6569 21 17.7712 21 14V10.6569C21 9.83935 21 9.4306 20.8478 9.06306C20.6955 8.69552 20.4065 8.40649 19.8284 7.82843L15.0919 3.09188C14.593 2.593 14.3436 2.34355 14.0345 2.19575C13.9702 2.165 13.9044 2.13772 13.8372 2.11401C13.5141 2 13.1614 2 12.4558 2C9.21082 2 7.58831 2 6.48933 2.88607C6.26731 3.06508 6.06508 3.26731 5.88607 3.48933C5 4.58831 5 6.21082 5 9.45584V10`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`2`}]],M=[`console.store.list`];function le(){return o({queryKey:M,queryFn:async()=>{let e=await c();if(e.error)throw Error(e.error.code);if(!e.data)throw Error(`Empty store list`);return e.data}})}var N=e(t(),1),P=/\b(?:SELECT|FROM|WHERE|LEFT\s+JOIN|RIGHT\s+JOIN|INNER\s+JOIN|FULL\s+JOIN|CROSS\s+JOIN|JOIN|GROUP\s+BY|ORDER\s+BY|HAVING|LIMIT|OFFSET|UNION(?:\s+ALL)?|EXCEPT|INTERSECT|RETURNING)\b/gi,F=/\b(?:AND|OR|ON)\b/gi;function ue(e){let t=e.trim();if(t.length===0)return``;let n=I(t),r=[];for(let e of n){if(e.quoted){r.push(e.text);continue}let t=e.text.replace(/\s+/g,` `);t.length!==0&&r.push(t.replace(P,(e,t,n)=>t===0||n[t-1]===`
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{r as t}from"./react-dom-Ddte4I-Q.js";import{A as n}from"./xyflow-yApv7D4e.js";import{$n as r,Qn as i,er as a,i as o,l as s,o as c,rr as l,s as u,t as d,u as f,x as p}from"./shortcut-keys-DTE1sjTC.js";import{C as m,S as h,vt as g,w as _,x as v}from"./explorer-chrome-Dslh2yE8.js";import{c as y,i as b,o as x}from"./call-pii-button-DvfpLXsU.js";import{b as ee,d as S,f as C,l as w,p as T,s as E,u as D}from"./element-icons-C6t8Vlml.js";import{a as O,o as te}from"./collapsible-BY03SeCg.js";import{o as ne,s as k}from"./duration-tone-Y6HLjyJ5.js";import{t as A}from"./highlighted-json-D7nNzpgB.js";import{t as j}from"./FileExportIcon-Ck-5od4R.js";import{c as re,l as ie,n as ae,st as oe}from"./index-C0lc_s9d.js";var se=[[`path`,{d:`M7.5 17.2196C7.44458 16.0292 6.62155 16 5.50505 16C3.78514 16 3.5 16.406 3.5 18V20C3.5 21.594 3.78514 22 5.50505 22C6.62154 22 7.44458 21.9708 7.5 20.7804M20.5 16L18.7229 20.6947C18.3935 21.5649 18.2288 22 17.968 22C17.7071 22 17.5424 21.5649 17.213 20.6947L15.4359 16M12.876 16H11.6951C11.2231 16 10.9872 16 10.8011 16.0761C10.1672 16.3354 10.1758 16.9448 10.1758 17.5C10.1758 18.0553 10.1672 18.6647 10.8011 18.9239C10.9872 19 11.2232 19 11.6951 19C12.167 19 12.4029 19 12.5891 19.0761C13.2229 19.3354 13.2143 19.9447 13.2143 20.5C13.2143 21.0553 13.2229 21.6647 12.5891 21.9239C12.4029 22 12.167 22 11.6951 22H10.4089`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M20 13V10.6569C20 9.83935 20 9.4306 19.8478 9.06306C19.6955 8.69552 19.4065 8.40649 18.8284 7.82843L14.0919 3.09188C13.593 2.593 13.3436 2.34355 13.0345 2.19575C12.9702 2.165 12.9044 2.13772 12.8372 2.11401C12.5141 2 12.1614 2 11.4558 2C8.21082 2 6.58831 2 5.48933 2.88607C5.26731 3.06508 5.06508 3.26731 4.88607 3.48933C4 4.58831 4 6.21082 4 9.45584V13M13 2.5V3C13 5.82843 13 7.24264 13.8787 8.12132C14.7574 9 16.1716 9 19 9H19.5`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`1`}]],ce=[[`path`,{d:`M11 18.75C11.4142 18.75 11.75 18.4142 11.75 18C11.75 17.5858 11.4142 17.25 11 17.25V18V18.75ZM9 13.25C8.58579 13.25 8.25 13.5858 8.25 14C8.25 14.4142 8.58579 14.75 9 14.75V14V13.25ZM9 21.25C8.58579 21.25 8.25 21.5858 8.25 22C8.25 22.4142 8.58579 22.75 9 22.75V22V21.25ZM3 17.25C2.58579 17.25 2.25 17.5858 2.25 18C2.25 18.4142 2.58579 18.75 3 18.75V18V17.25ZM5 22.75C5.41421 22.75 5.75 22.4142 5.75 22C5.75 21.5858 5.41421 21.25 5 21.25V22V22.75ZM5 14.75C5.41421 14.75 5.75 14.4142 5.75 14C5.75 13.5858 5.41421 13.25 5 13.25V14V14.75ZM10 15H9.25V17H10H10.75V15H10ZM10 17H9.25C9.25 17.9665 10.0335 18.75 11 18.75V18V17.25C10.8619 17.25 10.75 17.1381 10.75 17H10ZM9 14V14.75C9.13807 14.75 9.25 14.8619 9.25 15H10H10.75C10.75 14.0335 9.9665 13.25 9 13.25V14ZM10 21H10.75V19H10H9.25V21H10ZM10 19H10.75C10.75 18.8619 10.8619 18.75 11 18.75V18V17.25C10.0335 17.25 9.25 18.0335 9.25 19H10ZM9 22V22.75C9.9665 22.75 10.75 21.9665 10.75 21H10H9.25C9.25 21.1381 9.13807 21.25 9 21.25V22ZM4 17H3.25C3.25 17.1381 3.13807 17.25 3 17.25V18V18.75C3.9665 18.75 4.75 17.9665 4.75 17H4ZM4 19H4.75C4.75 18.0335 3.9665 17.25 3 17.25V18V18.75C3.13807 18.75 3.25 18.8619 3.25 19H4ZM4 21H4.75V19H4H3.25V21H4ZM4 15H3.25V17H4H4.75V15H4ZM5 22V21.25C4.86193 21.25 4.75 21.1381 4.75 21H4H3.25C3.25 21.9665 4.0335 22.75 5 22.75V22ZM5 14V13.25C4.0335 13.25 3.25 14.0335 3.25 15H4H4.75C4.75 14.8619 4.86193 14.75 5 14.75V14Z`,fill:`currentColor`,key:`0`}],[`path`,{d:`M14 2.5V3C14 5.82843 14 7.24264 14.8787 8.12132C15.7574 9 17.1716 9 20 9H20.5`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`1`}],[`path`,{d:`M14 21.9991C17.1143 21.99 18.7653 21.8915 19.8284 20.8284C21 19.6569 21 17.7712 21 14V10.6569C21 9.83935 21 9.4306 20.8478 9.06306C20.6955 8.69552 20.4065 8.40649 19.8284 7.82843L15.0919 3.09188C14.593 2.593 14.3436 2.34355 14.0345 2.19575C13.9702 2.165 13.9044 2.13772 13.8372 2.11401C13.5141 2 13.1614 2 12.4558 2C9.21082 2 7.58831 2 6.48933 2.88607C6.26731 3.06508 6.06508 3.26731 5.88607 3.48933C5 4.58831 5 6.21082 5 9.45584V10`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`2`}]],M=[`console.store.list`];function le(){return l({queryKey:M,queryFn:async()=>{let e=await g();if(e.error)throw Error(e.error.code);if(!e.data)throw Error(`Empty store list`);return e.data}})}var N=e(t(),1),P=/\b(?:SELECT|FROM|WHERE|LEFT\s+JOIN|RIGHT\s+JOIN|INNER\s+JOIN|FULL\s+JOIN|CROSS\s+JOIN|JOIN|GROUP\s+BY|ORDER\s+BY|HAVING|LIMIT|OFFSET|UNION(?:\s+ALL)?|EXCEPT|INTERSECT|RETURNING)\b/gi,F=/\b(?:AND|OR|ON)\b/gi;function I(e){let t=e.trim();if(t.length===0)return``;let n=L(t),r=[];for(let e of n){if(e.quoted){r.push(e.text);continue}let t=e.text.replace(/\s+/g,` `);t.length!==0&&r.push(t.replace(P,(e,t,n)=>t===0||n[t-1]===`
2
2
  `?e.toUpperCase():`\n${e.toUpperCase()}`).replace(F,(e,t,n)=>t===0||n[t-1]===`
3
3
  `?e.toUpperCase():`\n ${e.toUpperCase()}`))}return r.join(``).replace(/\n{3,}/g,`
4
4
 
5
5
  `).replace(/[ \t]+\n/g,`
6
- `).trim()}function I(e){let t=[],n=0,r=null;for(let i=0;i<e.length;i+=1){let a=e[i];if(r){if(a===r){if(e[i+1]===r){i+=1;continue}t.push({quoted:!0,text:e.slice(n,i+1)}),n=i+1,r=null}continue}(a===`'`||a===`"`||a==="`")&&(i>n&&t.push({quoted:!1,text:e.slice(n,i)}),r=a,n=i)}return n<e.length&&t.push({quoted:r!==null,text:e.slice(n)}),t}function L(e){let t=I(e),n=[],r=0,i=0;for(let a of t){if(!a.quoted)for(let t=0;t<a.text.length;t+=1){if(a.text[t]!==`;`)continue;let o=i+t+1;he(n,e,r,o),r=o}i+=a.text.length}return he(n,e,r,e.length),n}function R(e,t){let n=L(e);if(n.length===0)return null;let r=Math.max(0,Math.min(t,e.length));for(let e of n)if(r>=e.start&&r<=e.end)return e;return n[n.length-1]??null}function de(e,t,n,r){if(r===`all`)return L(e).map(e=>e.text);let i=Math.min(t,n),a=Math.max(t,n);if(a>i){let t=L(e.slice(i,a)).map(e=>e.text);if(t.length>0)return t}let o=R(e,i)?.text??e.trim();return o.length>0?[o]:[]}function z(e,t){let n=e.trim().replace(/;+\s*$/,``);return n.length===0||/^EXPLAIN\b/i.test(n)?n:t?`EXPLAIN ANALYZE ${n}`:`EXPLAIN ${n}`}var fe=new Set([`INSERT`,`UPDATE`,`DELETE`,`DROP`,`ALTER`,`CREATE`,`TRUNCATE`,`REPLACE`,`GRANT`,`REVOKE`,`VACUUM`,`COMMENT`,`COPY`,`CALL`,`REFRESH`,`MERGE`]);function B(e){let t=e.trim().replace(/;+\s*$/,``),n=V(t);return n===`EXPLAIN`?/\bANALYZE\b/i.test(t):n===`ANALYZE`||fe.has(n)}function pe(e){let t=e.trim().replace(/;+\s*$/,``);if(t.length===0)return!1;let n=V(t);if(n!==`SELECT`&&n!==`WITH`)return!1;for(let e of I(t))if(!e.quoted&&/\bLIMIT\b/i.test(e.text))return!1;return!0}function me(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1;for(let t=0;t<n;t+=1)e[t]===`
7
- `&&(r+=1);return r}function he(e,t,n,r){let i=t.slice(n,r);if(i.replace(/[;\s]/g,``).length===0)return;let a=n+(i.match(/^\s*/)?.[0]?.length??0);e.push({text:i.trim(),start:n,end:r,startLine:me(t,a)})}function ge(e){let t=V(e.trim().replace(/;+\s*$/,``));return t.length>0?t:`SQL`}function V(e){return/^([A-Za-z]+)/.exec(e)?.[1]?.toUpperCase()??``}var _e=`SELECT.FROM.WHERE.JOIN.LEFT JOIN.INNER JOIN.RIGHT JOIN.FULL JOIN.ON.AND.OR.ORDER BY.GROUP BY.HAVING.LIMIT.OFFSET.UNION.INSERT INTO.VALUES.UPDATE.SET.DELETE FROM.CREATE TABLE.CREATE INDEX.ALTER TABLE.DROP TABLE.TRUNCATE.EXPLAIN.EXPLAIN ANALYZE.BEGIN.COMMIT.ROLLBACK.GRANT.AS.DISTINCT.COUNT.LIKE.ILIKE.IN.IS NULL.IS NOT NULL.NOT.ASC.DESC.WITH.RETURNING.CASE.WHEN.THEN.ELSE.END`.split(`.`),ve=new Set([`FROM`,`JOIN`,`INTO`,`UPDATE`,`TABLE`]),ye=new Set([`SELECT`,`WHERE`,`SET`,`ON`,`BY`,`HAVING`,`AND`,`OR`,`RETURNING`]),be=/[A-Za-z0-9_]/;function xe(e,t,n,r=`sql`){let i=Math.max(0,Math.min(t,e.length));return r===`kv`?Ce(e,i,n):Me(e,i)?null:Se(e,i,n)}function Se(e,t,n){let r=Ee(e,t),i=r.prefix.toLowerCase(),a=r.qualifier,o=De(e,r.from),s=R(e,t),c=s?Oe(s.text,n):[],l=[];if(a!==null){let e=ke(n,a);if(!e)return null;for(let t of e.columns)U(t.name,i)&&l.push(Te(t,e.name));return H(r.from,t,l)}let u=o!==null&&ve.has(o),d=o!==null&&ye.has(o);if(u||!d&&i.length>0)for(let e of n)U(e.name,i)&&l.push({kind:`table`,label:e.name,insert:Ae(e.name),detail:`table`});if(d||!u&&i.length>0){let e=c.length>0?c:n.map(e=>e.name),t=new Set;for(let r of e){let e=ke(n,r);if(e)for(let n of e.columns){let r=`${e.name}.${n.name}`;!t.has(r)&&U(n.name,i)&&(t.add(r),l.push(Te(n,e.name)))}}if(c.length>0&&i.length>0){for(let r of n)if(!e.includes(r.name))for(let e of r.columns){let n=`${r.name}.${e.name}`;!t.has(n)&&U(e.name,i)&&(t.add(n),l.push(Te(e,r.name)))}}}if(i.length>0)for(let e of _e)U(e,i)&&l.push({kind:`keyword`,label:e,insert:e,detail:`keyword`});return H(r.from,t,l)}function Ce(e,t,n){let r=e.lastIndexOf(`
8
- `,t-1)+1,i=e.slice(r,t);if(/^\s*(\/\/|#|--)/.test(i))return null;let a=Ee(e,t),o=a.prefix.toLowerCase(),s=e.slice(r,a.from).trim().toLowerCase(),c=[];if(s===`list`||s===`get`||s===`set`||s===`delete`||s===`ttl`||s===`set(`||s===`get(`||s===`list(`||s===`delete(`||s===`ttl(`){for(let e of n)U(e.name,o)&&c.push({kind:`namespace`,label:e.name,insert:`${e.name}:`,detail:`namespace`});return H(a.from,t,c)}if(s.length===0){for(let e of[`list`,`get`,`set`,`delete`,`ttl`])U(e,o)&&c.push({kind:`command`,label:e,insert:e===`set`?`set(`:`${e} `,detail:`command`});for(let e of n)U(e.name,o)&&c.push({kind:`namespace`,label:e.name,insert:e.name,detail:`namespace`})}return H(a.from,t,c)}function H(e,t,n){return n.length===0?null:(n.sort((e,t)=>{let n=we(e.kind)-we(t.kind);return n===0?e.label.localeCompare(t.label):n}),{from:e,to:t,items:n.slice(0,12)})}function we(e){return e===`table`||e===`namespace`?0:e===`column`||e===`command`?1:2}function Te(e,t){return{kind:`column`,label:e.name,insert:Ae(e.name),detail:e.type===`unknown`?t:`${t} · ${e.type}`,...e.pii===!0?{pii:!0}:{},...e.primaryKey===!0?{primaryKey:!0}:{},...e.references?{foreignKey:!0}:{}}}function Ee(e,t){let n=t;for(;n>0;){let t=e[n-1];if(t&&(be.test(t)||t===`"`)){--n;continue}break}let r=e.slice(n,t),i=null;if(n>0&&e[n-1]===`.`){let t=n-1,r=t;for(;r>0;){let t=e[r-1];if(t&&(be.test(t)||t===`"`)){--r;continue}break}i=je(e.slice(r,t))}return r.startsWith(`"`)&&(r=r.slice(1)),r.endsWith(`"`)&&(r=r.slice(0,-1)),{from:n,prefix:r,qualifier:i}}function De(e,t){let n=e.slice(0,t),r=null;for(let e of I(n)){if(e.quoted)continue;let t=e.text.toUpperCase().match(/[A-Z]+/g);t&&(r=t[t.length-1]??r)}return r}function Oe(e,t){let n=new Set(t.map(e=>e.name.toLowerCase())),r=[];for(let t of I(e)){if(!t.quoted)continue;let e=je(t.text);n.has(e.toLowerCase())&&!r.includes(e)&&r.push(e)}let i=/\b(?:FROM|JOIN|INTO|UPDATE)\s+("?[A-Za-z_][A-Za-z0-9_]*"?)/gi,a;for(;a=i.exec(e);){let e=je(a[1]??``);n.has(e.toLowerCase())&&!r.includes(e)&&r.push(e)}return r}function ke(e,t){let n=t.toLowerCase();return e.find(e=>e.name.toLowerCase()===n)}function U(e,t){return t.length===0||e.toLowerCase().startsWith(t)}function Ae(e){return`"${e.replaceAll(`"`,`""`)}"`}function je(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith("`")&&t.endsWith("`")?t.slice(1,-1):t}function Me(e,t){let n=0;for(let r of I(e)){let e=n+r.text.length;if(t>n&&t<=e&&r.quoted&&r.text.startsWith(`'`))return!0;n=e}return!1}var W=n();function Ne({items:e,active:t,top:n,left:r,onHover:a,onPick:o}){return(0,W.jsx)(`ul`,{id:`store-query-complete`,role:`listbox`,"data-slot":`store-query-complete`,className:`cn-menu-translucent absolute z-20 max-h-56 min-w-52 overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10`,style:{top:n,left:r},children:e.map((e,n)=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`button`,{type:`button`,role:`option`,id:`store-query-complete-${n}`,"aria-selected":n===t,"data-slot":`store-query-complete-item`,onMouseEnter:()=>a(n),onMouseDown:e=>{e.preventDefault(),o(n)},className:i(`flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left`,n===t?`bg-accent text-accent-foreground`:`text-foreground hover:bg-muted/70`),children:[(0,W.jsx)(x,{primaryKey:e.primaryKey,foreignKey:e.foreignKey}),(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[11px]`,children:e.label}),e.pii?(0,W.jsx)(`span`,{className:`shrink-0 rounded border border-sky-500/30 px-1 font-mono text-[8px] text-sky-700 dark:text-sky-400`,children:`PII`}):null,(0,W.jsx)(`span`,{className:`shrink-0 font-mono text-[9px] tracking-wide text-muted-foreground/70 uppercase`,children:e.kind===`column`?e.detail??`col`:e.kind})]})},`${e.kind}:${e.label}:${e.detail??``}`))})}function Pe(e,t){let n=getComputedStyle(e),r=document.createElement(`div`),i=[`boxSizing`,`width`,`fontFamily`,`fontSize`,`fontWeight`,`fontStyle`,`letterSpacing`,`textTransform`,`wordSpacing`,`textIndent`,`whiteSpace`,`wordWrap`,`lineHeight`,`paddingTop`,`paddingRight`,`paddingBottom`,`paddingLeft`,`borderTopWidth`,`borderRightWidth`,`borderBottomWidth`,`borderLeftWidth`];r.style.position=`absolute`,r.style.visibility=`hidden`,r.style.overflow=`hidden`,r.style.whiteSpace=`pre-wrap`,r.style.wordWrap=`break-word`;for(let e of i)r.style[e]=n[e];r.style.width=`${e.clientWidth}px`,r.textContent=e.value.slice(0,t);let a=document.createElement(`span`);a.textContent=e.value.slice(t)||`.`,r.appendChild(a),document.body.appendChild(r);let o=a.offsetTop-e.scrollTop,s=a.offsetLeft-e.scrollLeft;return document.body.removeChild(r),{top:o,left:s}}var Fe=new Set(`ABORT.ADD.ALL.ALTER.ANALYZE.AND.ANY.AS.ASC.BETWEEN.BEGIN.BY.CASCADE.CASE.CAST.CHECK.COALESCE.COLUMN.COMMIT.CONFLICT.CONSTRAINT.CREATE.CROSS.CURRENT.DEFAULT.DELETE.DESC.DISTINCT.DO.DROP.ELSE.END.EXCEPT.EXISTS.EXPLAIN.FALSE.FOREIGN.FROM.FULL.GRANT.GROUP.HAVING.IF.ILIKE.IN.INDEX.INNER.INSERT.INTERSECT.INTO.IS.JOIN.KEY.LATERAL.LEFT.LIKE.LIMIT.MATERIALIZED.NATURAL.NOT.NULL.NULLIF.OFFSET.ON.ONLY.OR.ORDER.OUTER.OVER.PARTITION.PRIMARY.RECURSIVE.REFERENCES.RETURNING.RIGHT.ROLLBACK.SELECT.SET.TABLE.THEN.TRUE.TRUNCATE.UNION.UNIQUE.UPDATE.USING.VALUES.VIEW.WHEN.WHERE.WITH`.split(`.`)),Ie=new Set([`TRUE`,`FALSE`,`NULL`]),Le=new Set([`list`,`get`,`set`,`delete`,`ttl`]),Re=new Set([`true`,`false`,`null`,`value`]),G=/[A-Za-z_\u0080-\uFFFF]/,ze=/[A-Za-z0-9_\u0080-\uFFFF]/;function Be(e,t){return t===`kv`?He(e):Ve(e)}function Ve(e){let t=[],n=0;for(;n<e.length;){let r=e[n]??``,i=e[n+1]??``;if(r===`-`&&i===`-`){n=K(e,n,t);continue}if(r===`/`&&i===`*`){n=Ue(e,n,t);continue}if(r===`'`||r===`"`||r==="`"){n=We(e,n,r,t,r===`'`?`string`:`ident`);continue}if(q(r)||r===`.`&&q(i)){n=Ge(e,n,t);continue}if(G.test(r)){let r=n;for(n+=1;n<e.length&&ze.test(e[n]??``);)n+=1;let i=e.slice(r,n),a=i.toUpperCase();Ie.has(a)?t.push({kind:`atom`,text:i}):Fe.has(a)?t.push({kind:`keyword`,text:i}):t.push({kind:`text`,text:i});continue}if(Ye(r)){let r=n;for(n+=1;n<e.length&&Ye(e[n]??``);)n+=1;t.push({kind:`operator`,text:e.slice(r,n)});continue}if(J(r)){t.push({kind:`punct`,text:r}),n+=1;continue}n=qe(e,n,t,(t,n)=>!Xe(t,e,n))}return Je(t)}function He(e){let t=[],n=0;for(;n<e.length;){let r=e[n]??``,i=e[n+1]??``;if(r===`/`&&i===`/`){n=K(e,n,t);continue}if(r===`#`){n=K(e,n,t);continue}if(r===`-`&&i===`-`){n=K(e,n,t);continue}if(r===`'`||r===`"`){n=We(e,n,r,t,`string`);continue}if(q(r)){n=Ke(e,n,t);continue}if(G.test(r)){let r=n;for(n+=1;n<e.length&&ze.test(e[n]??``);)n+=1;let i=e.slice(r,n),a=i.toLowerCase();Le.has(a)?t.push({kind:`command`,text:i}):Re.has(a)?t.push({kind:`atom`,text:i}):t.push({kind:`ident`,text:i});continue}if(r===`:`){t.push({kind:`punct`,text:r}),n+=1;continue}if(J(r)||r===`{`||r===`}`||r===`[`||r===`]`){t.push({kind:`punct`,text:r}),n+=1;continue}n=qe(e,n,t,(t,n)=>!(t===`/`||t===`#`||t===`'`||t===`"`||t===`-`&&e[n+1]===`-`||q(t)||G.test(t)||J(t)||t===`{`||t===`}`||t===`[`||t===`]`||t===`:`))}return Je(t)}function K(e,t,n){let r=t;for(;r<e.length&&e[r]!==`
6
+ `).trim()}function L(e){let t=[],n=0,r=null;for(let i=0;i<e.length;i+=1){let a=e[i];if(r){if(a===r){if(e[i+1]===r){i+=1;continue}t.push({quoted:!0,text:e.slice(n,i+1)}),n=i+1,r=null}continue}(a===`'`||a===`"`||a==="`")&&(i>n&&t.push({quoted:!1,text:e.slice(n,i)}),r=a,n=i)}return n<e.length&&t.push({quoted:r!==null,text:e.slice(n)}),t}function R(e){let t=L(e),n=[],r=0,i=0;for(let a of t){if(!a.quoted)for(let t=0;t<a.text.length;t+=1){if(a.text[t]!==`;`)continue;let o=i+t+1;me(n,e,r,o),r=o}i+=a.text.length}return me(n,e,r,e.length),n}function z(e,t){let n=R(e);if(n.length===0)return null;let r=Math.max(0,Math.min(t,e.length));for(let e of n)if(r>=e.start&&r<=e.end)return e;return n[n.length-1]??null}function ue(e,t,n,r){if(r===`all`)return R(e).map(e=>e.text);let i=Math.min(t,n),a=Math.max(t,n);if(a>i){let t=R(e.slice(i,a)).map(e=>e.text);if(t.length>0)return t}let o=z(e,i)?.text??e.trim();return o.length>0?[o]:[]}function B(e,t){let n=e.trim().replace(/;+\s*$/,``);return n.length===0||/^EXPLAIN\b/i.test(n)?n:t?`EXPLAIN ANALYZE ${n}`:`EXPLAIN ${n}`}var de=new Set([`INSERT`,`UPDATE`,`DELETE`,`DROP`,`ALTER`,`CREATE`,`TRUNCATE`,`REPLACE`,`GRANT`,`REVOKE`,`VACUUM`,`COMMENT`,`COPY`,`CALL`,`REFRESH`,`MERGE`]);function V(e){let t=e.trim().replace(/;+\s*$/,``),n=ge(t);return n===`EXPLAIN`?/\bANALYZE\b/i.test(t):n===`ANALYZE`||de.has(n)}function fe(e){let t=e.trim().replace(/;+\s*$/,``);if(t.length===0)return!1;let n=ge(t);if(n!==`SELECT`&&n!==`WITH`)return!1;for(let e of L(t))if(!e.quoted&&/\bLIMIT\b/i.test(e.text))return!1;return!0}function pe(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1;for(let t=0;t<n;t+=1)e[t]===`
7
+ `&&(r+=1);return r}function me(e,t,n,r){let i=t.slice(n,r);if(i.replace(/[;\s]/g,``).length===0)return;let a=n+(i.match(/^\s*/)?.[0]?.length??0);e.push({text:i.trim(),start:n,end:r,startLine:pe(t,a)})}function he(e){let t=ge(e.trim().replace(/;+\s*$/,``));return t.length>0?t:`SQL`}function ge(e){return/^([A-Za-z]+)/.exec(e)?.[1]?.toUpperCase()??``}var _e=`SELECT.FROM.WHERE.JOIN.LEFT JOIN.INNER JOIN.RIGHT JOIN.FULL JOIN.ON.AND.OR.ORDER BY.GROUP BY.HAVING.LIMIT.OFFSET.UNION.INSERT INTO.VALUES.UPDATE.SET.DELETE FROM.CREATE TABLE.CREATE INDEX.ALTER TABLE.DROP TABLE.TRUNCATE.EXPLAIN.EXPLAIN ANALYZE.BEGIN.COMMIT.ROLLBACK.GRANT.AS.DISTINCT.COUNT.LIKE.ILIKE.IN.IS NULL.IS NOT NULL.NOT.ASC.DESC.WITH.RETURNING.CASE.WHEN.THEN.ELSE.END`.split(`.`),ve=new Set([`FROM`,`JOIN`,`INTO`,`UPDATE`,`TABLE`]),ye=new Set([`SELECT`,`WHERE`,`SET`,`ON`,`BY`,`HAVING`,`AND`,`OR`,`RETURNING`]),be=/[A-Za-z0-9_]/;function xe(e,t,n,r=`sql`){let i=Math.max(0,Math.min(t,e.length));return r===`kv`?Ce(e,i,n):Me(e,i)?null:Se(e,i,n)}function Se(e,t,n){let r=Ee(e,t),i=r.prefix.toLowerCase(),a=r.qualifier,o=De(e,r.from),s=z(e,t),c=s?Oe(s.text,n):[],l=[];if(a!==null){let e=ke(n,a);if(!e)return null;for(let t of e.columns)U(t.name,i)&&l.push(Te(t,e.name));return H(r.from,t,l)}let u=o!==null&&ve.has(o),d=o!==null&&ye.has(o);if(u||!d&&i.length>0)for(let e of n)U(e.name,i)&&l.push({kind:`table`,label:e.name,insert:Ae(e.name),detail:`table`});if(d||!u&&i.length>0){let e=c.length>0?c:n.map(e=>e.name),t=new Set;for(let r of e){let e=ke(n,r);if(e)for(let n of e.columns){let r=`${e.name}.${n.name}`;!t.has(r)&&U(n.name,i)&&(t.add(r),l.push(Te(n,e.name)))}}if(c.length>0&&i.length>0){for(let r of n)if(!e.includes(r.name))for(let e of r.columns){let n=`${r.name}.${e.name}`;!t.has(n)&&U(e.name,i)&&(t.add(n),l.push(Te(e,r.name)))}}}if(i.length>0)for(let e of _e)U(e,i)&&l.push({kind:`keyword`,label:e,insert:e,detail:`keyword`});return H(r.from,t,l)}function Ce(e,t,n){let r=e.lastIndexOf(`
8
+ `,t-1)+1,i=e.slice(r,t);if(/^\s*(\/\/|#|--)/.test(i))return null;let a=Ee(e,t),o=a.prefix.toLowerCase(),s=e.slice(r,a.from).trim().toLowerCase(),c=[];if(s===`list`||s===`get`||s===`set`||s===`delete`||s===`ttl`||s===`set(`||s===`get(`||s===`list(`||s===`delete(`||s===`ttl(`){for(let e of n)U(e.name,o)&&c.push({kind:`namespace`,label:e.name,insert:`${e.name}:`,detail:`namespace`});return H(a.from,t,c)}if(s.length===0){for(let e of[`list`,`get`,`set`,`delete`,`ttl`])U(e,o)&&c.push({kind:`command`,label:e,insert:e===`set`?`set(`:`${e} `,detail:`command`});for(let e of n)U(e.name,o)&&c.push({kind:`namespace`,label:e.name,insert:e.name,detail:`namespace`})}return H(a.from,t,c)}function H(e,t,n){return n.length===0?null:(n.sort((e,t)=>{let n=we(e.kind)-we(t.kind);return n===0?e.label.localeCompare(t.label):n}),{from:e,to:t,items:n.slice(0,12)})}function we(e){return e===`table`||e===`namespace`?0:e===`column`||e===`command`?1:2}function Te(e,t){return{kind:`column`,label:e.name,insert:Ae(e.name),detail:e.type===`unknown`?t:`${t} · ${e.type}`,...e.pii===!0?{pii:!0}:{},...e.primaryKey===!0?{primaryKey:!0}:{},...e.references?{foreignKey:!0}:{}}}function Ee(e,t){let n=t;for(;n>0;){let t=e[n-1];if(t&&(be.test(t)||t===`"`)){--n;continue}break}let r=e.slice(n,t),i=null;if(n>0&&e[n-1]===`.`){let t=n-1,r=t;for(;r>0;){let t=e[r-1];if(t&&(be.test(t)||t===`"`)){--r;continue}break}i=je(e.slice(r,t))}return r.startsWith(`"`)&&(r=r.slice(1)),r.endsWith(`"`)&&(r=r.slice(0,-1)),{from:n,prefix:r,qualifier:i}}function De(e,t){let n=e.slice(0,t),r=null;for(let e of L(n)){if(e.quoted)continue;let t=e.text.toUpperCase().match(/[A-Z]+/g);t&&(r=t[t.length-1]??r)}return r}function Oe(e,t){let n=new Set(t.map(e=>e.name.toLowerCase())),r=[];for(let t of L(e)){if(!t.quoted)continue;let e=je(t.text);n.has(e.toLowerCase())&&!r.includes(e)&&r.push(e)}let i=/\b(?:FROM|JOIN|INTO|UPDATE)\s+("?[A-Za-z_][A-Za-z0-9_]*"?)/gi,a;for(;a=i.exec(e);){let e=je(a[1]??``);n.has(e.toLowerCase())&&!r.includes(e)&&r.push(e)}return r}function ke(e,t){let n=t.toLowerCase();return e.find(e=>e.name.toLowerCase()===n)}function U(e,t){return t.length===0||e.toLowerCase().startsWith(t)}function Ae(e){return`"${e.replaceAll(`"`,`""`)}"`}function je(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith("`")&&t.endsWith("`")?t.slice(1,-1):t}function Me(e,t){let n=0;for(let r of L(e)){let e=n+r.text.length;if(t>n&&t<=e&&r.quoted&&r.text.startsWith(`'`))return!0;n=e}return!1}var W=n();function Ne({items:e,active:t,top:n,left:r,onHover:a,onPick:o}){return(0,W.jsx)(`ul`,{id:`store-query-complete`,role:`listbox`,"data-slot":`store-query-complete`,className:`cn-menu-translucent absolute z-20 max-h-56 min-w-52 overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10`,style:{top:n,left:r},children:e.map((e,n)=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`button`,{type:`button`,role:`option`,id:`store-query-complete-${n}`,"aria-selected":n===t,"data-slot":`store-query-complete-item`,onMouseEnter:()=>a(n),onMouseDown:e=>{e.preventDefault(),o(n)},className:i(`flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left`,n===t?`bg-accent text-accent-foreground`:`text-foreground hover:bg-muted/70`),children:[(0,W.jsx)(x,{primaryKey:e.primaryKey,foreignKey:e.foreignKey}),(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[11px]`,children:e.label}),e.pii?(0,W.jsx)(`span`,{className:`shrink-0 rounded border border-sky-500/30 px-1 font-mono text-[8px] text-sky-700 dark:text-sky-400`,children:`PII`}):null,(0,W.jsx)(`span`,{className:`shrink-0 font-mono text-[9px] tracking-wide text-muted-foreground/70 uppercase`,children:e.kind===`column`?e.detail??`col`:e.kind})]})},`${e.kind}:${e.label}:${e.detail??``}`))})}function Pe(e,t){let n=getComputedStyle(e),r=document.createElement(`div`),i=[`boxSizing`,`width`,`fontFamily`,`fontSize`,`fontWeight`,`fontStyle`,`letterSpacing`,`textTransform`,`wordSpacing`,`textIndent`,`whiteSpace`,`wordWrap`,`lineHeight`,`paddingTop`,`paddingRight`,`paddingBottom`,`paddingLeft`,`borderTopWidth`,`borderRightWidth`,`borderBottomWidth`,`borderLeftWidth`];r.style.position=`absolute`,r.style.visibility=`hidden`,r.style.overflow=`hidden`,r.style.whiteSpace=`pre-wrap`,r.style.wordWrap=`break-word`;for(let e of i)r.style[e]=n[e];r.style.width=`${e.clientWidth}px`,r.textContent=e.value.slice(0,t);let a=document.createElement(`span`);a.textContent=e.value.slice(t)||`.`,r.appendChild(a),document.body.appendChild(r);let o=a.offsetTop-e.scrollTop,s=a.offsetLeft-e.scrollLeft;return document.body.removeChild(r),{top:o,left:s}}var Fe=new Set(`ABORT.ADD.ALL.ALTER.ANALYZE.AND.ANY.AS.ASC.BETWEEN.BEGIN.BY.CASCADE.CASE.CAST.CHECK.COALESCE.COLUMN.COMMIT.CONFLICT.CONSTRAINT.CREATE.CROSS.CURRENT.DEFAULT.DELETE.DESC.DISTINCT.DO.DROP.ELSE.END.EXCEPT.EXISTS.EXPLAIN.FALSE.FOREIGN.FROM.FULL.GRANT.GROUP.HAVING.IF.ILIKE.IN.INDEX.INNER.INSERT.INTERSECT.INTO.IS.JOIN.KEY.LATERAL.LEFT.LIKE.LIMIT.MATERIALIZED.NATURAL.NOT.NULL.NULLIF.OFFSET.ON.ONLY.OR.ORDER.OUTER.OVER.PARTITION.PRIMARY.RECURSIVE.REFERENCES.RETURNING.RIGHT.ROLLBACK.SELECT.SET.TABLE.THEN.TRUE.TRUNCATE.UNION.UNIQUE.UPDATE.USING.VALUES.VIEW.WHEN.WHERE.WITH`.split(`.`)),Ie=new Set([`TRUE`,`FALSE`,`NULL`]),Le=new Set([`list`,`get`,`set`,`delete`,`ttl`]),Re=new Set([`true`,`false`,`null`,`value`]),G=/[A-Za-z_\u0080-\uFFFF]/,ze=/[A-Za-z0-9_\u0080-\uFFFF]/;function Be(e,t){return t===`kv`?He(e):Ve(e)}function Ve(e){let t=[],n=0;for(;n<e.length;){let r=e[n]??``,i=e[n+1]??``;if(r===`-`&&i===`-`){n=K(e,n,t);continue}if(r===`/`&&i===`*`){n=Ue(e,n,t);continue}if(r===`'`||r===`"`||r==="`"){n=We(e,n,r,t,r===`'`?`string`:`ident`);continue}if(q(r)||r===`.`&&q(i)){n=Ge(e,n,t);continue}if(G.test(r)){let r=n;for(n+=1;n<e.length&&ze.test(e[n]??``);)n+=1;let i=e.slice(r,n),a=i.toUpperCase();Ie.has(a)?t.push({kind:`atom`,text:i}):Fe.has(a)?t.push({kind:`keyword`,text:i}):t.push({kind:`text`,text:i});continue}if(Ye(r)){let r=n;for(n+=1;n<e.length&&Ye(e[n]??``);)n+=1;t.push({kind:`operator`,text:e.slice(r,n)});continue}if(J(r)){t.push({kind:`punct`,text:r}),n+=1;continue}n=qe(e,n,t,(t,n)=>!Xe(t,e,n))}return Je(t)}function He(e){let t=[],n=0;for(;n<e.length;){let r=e[n]??``,i=e[n+1]??``;if(r===`/`&&i===`/`){n=K(e,n,t);continue}if(r===`#`){n=K(e,n,t);continue}if(r===`-`&&i===`-`){n=K(e,n,t);continue}if(r===`'`||r===`"`){n=We(e,n,r,t,`string`);continue}if(q(r)){n=Ke(e,n,t);continue}if(G.test(r)){let r=n;for(n+=1;n<e.length&&ze.test(e[n]??``);)n+=1;let i=e.slice(r,n),a=i.toLowerCase();Le.has(a)?t.push({kind:`command`,text:i}):Re.has(a)?t.push({kind:`atom`,text:i}):t.push({kind:`ident`,text:i});continue}if(r===`:`){t.push({kind:`punct`,text:r}),n+=1;continue}if(J(r)||r===`{`||r===`}`||r===`[`||r===`]`){t.push({kind:`punct`,text:r}),n+=1;continue}n=qe(e,n,t,(t,n)=>!(t===`/`||t===`#`||t===`'`||t===`"`||t===`-`&&e[n+1]===`-`||q(t)||G.test(t)||J(t)||t===`{`||t===`}`||t===`[`||t===`]`||t===`:`))}return Je(t)}function K(e,t,n){let r=t;for(;r<e.length&&e[r]!==`
9
9
  `;)r+=1;return n.push({kind:`comment`,text:e.slice(t,r)}),r}function Ue(e,t,n){let r=t+2;for(;r<e.length&&(e[r]!==`*`||e[r+1]!==`/`);)r+=1;return r<e.length&&(r+=2),n.push({kind:`comment`,text:e.slice(t,r)}),r}function We(e,t,n,r,i){let a=t+1;for(;a<e.length;){if(e[a]===n){if(e[a+1]===n){a+=2;continue}a+=1;break}if(e[a]===`\\`&&n===`'`){a+=2;continue}a+=1}return r.push({kind:i,text:e.slice(t,a)}),a}function Ge(e,t,n){let r=t;for(e[r]===`.`&&(r+=1);r<e.length&&q(e[r]??``);)r+=1;if(e[r]===`.`&&q(e[r+1]??``))for(r+=1;r<e.length&&q(e[r]??``);)r+=1;let i=e[r];if(i===`e`||i===`E`){let t=r+1;if((e[t]===`+`||e[t]===`-`)&&(t+=1),q(e[t]??``))for(r=t+1;r<e.length&&q(e[r]??``);)r+=1}return n.push({kind:`number`,text:e.slice(t,r)}),r}function Ke(e,t,n){let r=Ge(e,t,n),i=n[n.length-1];if(!i)return r;let a=e[r];return a&&/[smhd]/i.test(a)&&!ze.test(e[r+1]??``)?(n[n.length-1]={kind:`number`,text:`${i.text}${a}`},r+1):r}function qe(e,t,n,r){let i=t;for(;i<e.length&&r(e[i]??``,i);)i+=1;return i===t?(n.push({kind:`text`,text:e[t]??``}),t+1):(n.push({kind:`text`,text:e.slice(t,i)}),i)}function Je(e){let t=[];for(let n of e){let e=t[t.length-1];e&&e.kind===n.kind?t[t.length-1]={kind:e.kind,text:`${e.text}${n.text}`}:t.push(n)}return t}function q(e){return e>=`0`&&e<=`9`}function Ye(e){return`+-*/%=<>!&|^~`.includes(e)}function J(e){return`(),;.`.includes(e)}function Xe(e,t,n){return!!(e===`'`||e===`"`||e==="`"||e===`-`&&t[n+1]===`-`||e===`/`&&t[n+1]===`*`||q(e)||e===`.`&&q(t[n+1]??``)||G.test(e)||Ye(e)||J(e))}var Ze={text:`text-foreground/90`,comment:`italic text-muted-foreground/55`,keyword:`text-rose-600 dark:text-rose-400`,command:`text-amber-600 dark:text-amber-400`,string:`text-sky-700 dark:text-sky-300`,ident:`text-teal-700 dark:text-teal-300`,number:`text-violet-600 dark:text-violet-400`,punct:`text-muted-foreground/80`,operator:`text-fuchsia-600 dark:text-fuchsia-400`,atom:`text-amber-700 dark:text-amber-300`};function Qe({code:e,language:t,className:n}){let r=Be(e,t);return(0,W.jsx)(`pre`,{"aria-hidden":!0,"data-slot":`store-query-highlight`,"data-language":t,className:i(`m-0 overflow-visible whitespace-pre font-mono text-xs leading-5 text-foreground/90`,n),children:r.map((e,t)=>(0,W.jsx)(`span`,{className:Ze[e.kind],children:e.text},`${t}-${e.kind}`))})}function $e({value:e,onChange:t,language:n,onRun:a,onRunAll:o,label:s,className:c,runLines:l=[],onRunLine:u,onCursorChange:d,editorRef:f,tables:p=[],facet:m=`sql`}){let h=(0,N.useRef)(null),g=(0,N.useRef)(null),_=(0,N.useRef)(null),[v,b]=(0,N.useState)(null),x=Math.max(e.split(`
10
10
  `).length,1),ee=e.endsWith(`
11
- `)?e:`${e}\n`,S=new Set(l);(0,N.useImperativeHandle)(f,()=>({insert(n){let r=h.current;if(b(null),!r){t(`${e}${n}`);return}let i=r.selectionStart,a=r.selectionEnd;t(`${e.slice(0,i)}${n}${e.slice(a)}`),requestAnimationFrame(()=>{let e=i+n.length;r.focus(),r.selectionStart=r.selectionEnd=e,d?.(e,e)})},focus(){h.current?.focus()}}));let C=()=>{let e=h.current;e&&(g.current&&(g.current.scrollTop=e.scrollTop),_.current&&(_.current.scrollTop=e.scrollTop,_.current.scrollLeft=e.scrollLeft))},w=()=>{let e=h.current;e&&d?.(e.selectionStart,e.selectionEnd)},T=(e,t)=>{requestAnimationFrame(()=>{e.focus(),e.selectionStart=e.selectionEnd=t,d?.(t,t)})},E=(e,t)=>{if(p.length===0){b(null);return}let n=e.selectionStart,r=xe(t,n,p,m);if(!r){b(null);return}let i=Pe(e,n);b({result:r,active:0,top:Math.min(i.top+20,Math.max(8,e.clientHeight-48)),left:Math.min(Math.max(8,i.left),Math.max(8,e.clientWidth-220))})},D=n=>{let r=h.current;if(!r||!v)return;let i=v.result.items[n];if(!i)return;let a=`${e.slice(0,v.result.from)}${i.insert}${e.slice(v.result.to)}`,o=v.result.from+i.insert.length;t(a),b(null),T(r,o)};return(0,W.jsxs)(`div`,{className:i(`flex min-h-0 flex-1 overflow-hidden bg-background`,c),"data-slot":`store-query-editor`,children:[(0,W.jsx)(`div`,{ref:g,"aria-hidden":!0,className:`shrink-0 overflow-hidden border-r border-border/50 bg-muted/15 py-3 pr-1.5 pl-1.5 font-mono text-xs leading-5 text-muted-foreground/70`,children:Array.from({length:x},(e,t)=>{let n=t+1,i=S.has(n);return(0,W.jsxs)(`div`,{className:`group/line flex h-5 items-center justify-end gap-0.5`,children:[i&&u?(0,W.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-label":`Run statement on line ${n}`,"data-slot":`store-query-gutter-run`,onClick:()=>u(n),className:`flex size-4 items-center justify-center rounded-sm text-emerald-600 opacity-70 hover:bg-emerald-500/15 hover:opacity-100 dark:text-emerald-400`,children:(0,W.jsx)(r,{icon:y,className:`size-2.5`})}):(0,W.jsx)(`span`,{className:`size-4`}),(0,W.jsx)(`span`,{className:`min-w-4 text-right`,children:n})]},n)})}),(0,W.jsxs)(`div`,{className:`relative min-h-0 min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{ref:_,className:`pointer-events-none absolute inset-0 overflow-hidden`,children:(0,W.jsx)(Qe,{code:ee,language:n,className:`px-3 py-3 text-xs leading-5`})}),(0,W.jsx)(`textarea`,{ref:h,value:e,onChange:e=>{t(e.target.value),d?.(e.target.selectionStart,e.target.selectionEnd),E(e.target,e.target.value)},onScroll:C,onKeyDown:n=>{if((n.metaKey||n.ctrlKey)&&n.key===`Enter`){n.preventDefault(),b(null),n.shiftKey&&o?o():a();return}if(v){if(n.key===`ArrowDown`){n.preventDefault(),b(e=>e&&{...e,active:(e.active+1)%e.result.items.length});return}if(n.key===`ArrowUp`){n.preventDefault(),b(e=>e&&{...e,active:(e.active-1+e.result.items.length)%e.result.items.length});return}if(n.key===`Enter`||n.key===`Tab`){n.preventDefault(),D(v.active);return}if(n.key===`Escape`){n.preventDefault(),b(null);return}(n.key===`ArrowLeft`||n.key===`ArrowRight`)&&b(null)}if(n.key===`Tab`){n.preventDefault();let r=n.currentTarget,i=r.selectionStart,a=r.selectionEnd;t(`${e.slice(0,i)} ${e.slice(a)}`),T(r,i+2);return}n.key===`Escape`&&b(null)},onKeyUp:w,onClick:()=>{b(null),w()},onSelect:w,onBlur:()=>b(null),spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`,"aria-label":s,"aria-autocomplete":`list`,"aria-expanded":v!==null,"aria-controls":v?`store-query-complete`:void 0,"aria-activedescendant":v?`store-query-complete-${v.active}`:void 0,"data-slot":`store-query-input`,className:`absolute inset-0 h-full w-full resize-none overflow-auto bg-transparent px-3 py-3 font-mono text-xs leading-5 text-transparent caret-foreground outline-none`}),v?(0,W.jsx)(Ne,{items:v.result.items,active:v.active,top:v.top,left:v.left,onHover:e=>b(t=>t&&{...t,active:e}),onPick:D}):null]})]})}function et({value:e,label:t,onChange:n,onFocus:r,onIdle:a,dirty:o=!1,autoFocus:s=!1,placeholder:c=`Empty`,className:l}){let[u,d]=(0,N.useState)(e),f=(0,N.useRef)(null);(0,N.useEffect)(()=>{d(e)},[e]),(0,N.useEffect)(()=>{if(!s)return;let e=f.current;e&&(e.focus(),e.select())},[s]);let p=()=>{u!==e&&n(u)},m=()=>{p(),a?.()};return(0,W.jsx)(`input`,{ref:f,value:u,"aria-label":t,size:1,"data-dirty":o?`true`:void 0,onFocus:r,onChange:e=>d(e.target.value),onBlur:m,onKeyDown:t=>{if(t.key===`Enter`&&(t.metaKey||t.ctrlKey)){m();return}t.key===`Enter`?(t.preventDefault(),t.currentTarget.blur()):t.key===`Escape`&&(t.preventDefault(),d(e),a?.(),t.currentTarget.blur())},placeholder:c,className:i(`h-full w-full min-w-0 appearance-none rounded-none border-0 bg-transparent p-0`,`shadow-none outline-none ring-0`,`focus:bg-transparent focus:shadow-none focus:ring-0 focus:outline-none`,`focus-visible:shadow-none focus-visible:ring-0 focus-visible:outline-none`,`placeholder:text-muted-foreground/40`,o?`text-[#9a5b12] dark:text-[#e8c48a]`:`text-foreground`,l)})}function tt(e){try{return new TextEncoder().encode(JSON.stringify(e??null)).length}catch{return 0}}function nt(e){if(typeof e==`string`){let t=e.trim();return t===``?`—`:t}return typeof e!=`number`||!Number.isFinite(e)?`—`:e<=0?`0s`:e<6e4?`${Math.max(1,Math.round(e/1e3))}s`:e<36e5?`${Math.round(e/6e4)}m`:e<864e5?`${Math.round(e/36e5)}h`:`${Math.round(e/864e5)}d`}function rt(e){let t=e.trim();if(t===``||t===`—`||t===`none`)return null;if(/^(\d+)(ms|s|m|h|d)$/.test(t))return t}function it(e){if(typeof e!=`number`||!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${Math.round(e)} B`;if(e<1048576){let t=e/1024;return t<10?`${t.toFixed(1)} KB`:`${Math.round(t)} KB`}let t=e/1048576;return t<10?`${t.toFixed(1)} MB`:`${Math.round(t)} MB`}function at(e){let{facet:t,data:n,piiColumns:r=[],columnTypes:i={},columnDescriptions:a={},primaryKeyColumns:o=[]}=e,s=b(r),c=new Set(o);if(t===`sql`){let e=n.rows??[];return{columns:(e.length>0?Object.keys(e[0]??{}):Object.keys(i)).map(e=>({key:e,type:i[e]===`integer`?`integer`:`string`,editable:e!==`id`,pii:s.has(e),...c.has(e)?{primaryKey:!0}:{},...a[e]===void 0?{}:{description:a[e]}})),rows:e.map(e=>({id:ct(e),cells:e})),deleteKind:`ids`,editable:!0}}if(t===`kv`)return{columns:[{key:`key`,type:`string`,editable:!1,pii:!1},{key:`value`,type:`json`,editable:!0,pii:!1},{key:`ttl`,type:`number`,editable:!0,pii:!1,format:`ttl`},{key:`size`,type:`number`,editable:!1,pii:!1,format:`bytes`}],rows:(n.keys??[]).map(e=>({id:e.key,cells:{key:e.key,value:e.value,ttl:e.ttlMs??null,size:e.sizeBytes??tt(e.value)}})),deleteKind:`keys`,editable:!0};if(t===`files`)return{columns:[{key:`key`,type:`string`,editable:!1,pii:!1},{key:`size`,type:`number`,editable:!1,pii:!1,format:`bytes`},{key:`warnings`,type:`string`,editable:!1,pii:!1}],rows:(n.keys??[]).map(e=>({id:e.key,cells:{key:e.key,size:e.sizeBytes??0,warnings:e.warnings?.map(e=>e.message).join(`; `)??``}})),deleteKind:`keys`,editable:!1};let l=n.hits??[],u=st(l);return{columns:[{key:`id`,type:`string`,editable:!1,pii:!1},...u.map(e=>({key:e,type:`string`,editable:!1,pii:!1})),{key:`score`,type:`number`,editable:!1,pii:!1},...u.length===0?[{key:`meta`,type:`json`,editable:!1,pii:!1}]:[]],rows:l.map(e=>({id:e.id,cells:{id:e.id,score:e.score,...u.length===0?{meta:e.meta}:{},...Object.fromEntries(u.map(t=>[t,e.meta?.[t]]))}})),deleteKind:`ids`,editable:!1}}var ot=[`identifier`,`title`,`description`];function st(e){let t=new Set;for(let n of e)for(let[e,r]of Object.entries(n.meta??{}))e===`id`||/^\d+$/.test(e)||typeof r==`object`&&r||t.add(e);let n=[...t].filter(e=>!ot.includes(e)).sort();return[...ot.filter(e=>t.has(e)),...n]}function ct(e){let t=e.id??e.Id??e.name;return typeof t==`string`||typeof t==`number`||typeof t==`boolean`?String(t):``}function Y(e){if(e==null)return`—`;if(e instanceof Date)return e.toISOString();if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return`[unserializable]`}}function lt(e){return/(?:^|_)(at|time|timestamp)$/i.test(e)||/(?:At|Time|Timestamp)$/.test(e)}function X(e,t){if(t==null)return null;if(t instanceof Date)return t.toISOString();if(typeof t==`string`){if(!lt(e))return null;let n=Date.parse(t);return Number.isNaN(n)?null:new Date(n).toISOString()}return typeof t==`number`&&Number.isFinite(t)&&lt(e)?t<0xe8d4a51000||t>0x9184e72a000?null:new Date(t).toISOString():null}function ut(e,t){if(e.format===`ttl`)return nt(t);if(e.format===`bytes`)return it(t);let n=X(e.key,t);return n===null?Y(t):n}function Z(e){if(e==null)return null;if(typeof e==`object`)return e;if(typeof e!=`string`)return null;let t=e.trim();if(!(t.startsWith(`{`)||t.startsWith(`[`)))return null;try{let e=JSON.parse(t);if(typeof e==`object`&&e)return e}catch{return null}return null}function dt(e){let t=Z(e);if(t!==null)return{ok:!0,value:t};let n=e.trim();if(n===``)return{ok:!1,error:`JSON is empty`};try{return JSON.parse(n),{ok:!1,error:`JSON must be an object or array`}}catch{return{ok:!1,error:`Invalid JSON`}}}function ft(e){let t=Z(e);return t===null?[]:xt(t,``)}function pt(e,t){if(t===`object`)return`{}`;if(t===`array`)return`[]`;if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)??``}catch{return``}}function mt(e,t){if(e===`string`)return t;let n=t.trim();if(e===`number`){if(n===``)return null;let e=Number(n);return Number.isFinite(e)?e:t}if(e===`boolean`)return n===`true`?!0:n===`false`?!1:n===``?null:t;if(e===`null`){if(n===``||n===`null`)return null;if(n===`true`)return!0;if(n===`false`)return!1;let e=Number(n);return Number.isFinite(e)&&n!==``?e:t}if(e===`object`||e===`array`){if(n===``)return e===`array`?[]:{};try{return JSON.parse(n)}catch{return t}}return t}function ht(e,t,n){let r=_t(t);if(r.length===0)return n;let i=structuredClone(e),a=i;for(let e=0;e<r.length-1;e++){let t=r[e];if(!t)return i;a=vt(a,t)}let o=r[r.length-1];return o&&yt(a,o,n),i}function gt(e,t){if(Object.is(e,t))return!0;try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}}function _t(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===`.`){n+=1;continue}if(r===`[`){let r=e.indexOf(`]`,n);if(r<0)break;t.push({type:`index`,index:Number(e.slice(n+1,r))}),n=r+1;continue}let i=n;for(;i<e.length&&e[i]!==`.`&&e[i]!==`[`;)i+=1;t.push({type:`key`,key:e.slice(n,i)}),n=i}return t}function vt(e,t){if(typeof e==`object`&&e)return t.type===`key`?e[t.key]:e[t.index]}function yt(e,t,n){if(typeof e==`object`&&e){if(t.type===`key`){e[t.key]=n;return}e[t.index]=n}}function bt(e){let t=Z(e);if(t!==null)try{return JSON.stringify(t,null,2)}catch{return`[unserializable]`}if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return`[unserializable]`}}function xt(e,t){if(typeof e==`object`&&e&&!Array.isArray(e)){let n=Object.entries(e);return n.length===0?t?[{path:t,value:e,kind:`object`}]:[]:n.flatMap(([e,n])=>xt(n,t?`${t}.${e}`:e))}return Array.isArray(e)?e.length===0?t?[{path:t,value:e,kind:`array`}]:[]:e.flatMap((e,n)=>xt(e,t?`${t}[${n}]`:`[${n}]`)):[{path:t||`(root)`,value:e,kind:St(e)}]}function St(e){return e===null?`null`:typeof e==`boolean`?`boolean`:typeof e==`number`?`number`:Array.isArray(e)?`array`:typeof e==`object`?`object`:`string`}var Ct=/[؀-ۿݐ-ݿࢠ-ࣿﭐ-﷿ﹰ-]/;function wt(e){return typeof e==`string`&&Ct.test(e)}function Tt({open:e,onOpenChange:t,rowId:n,column:o,storeRef:s,value:c,originalValue:h,editable:_=!1,onChange:v}){let[y,b]=(0,N.useState)(`table`),[x,S]=(0,N.useState)(!1),[C,w]=(0,N.useState)(``),[T,E]=(0,N.useState)(null),D=(0,N.useRef)(!1),O=_&&v!==void 0;(0,N.useEffect)(()=>{e&&(b(`table`),S(!1),E(null),D.current=!1)},[e,n,o]);let te=(0,N.useMemo)(()=>ft(c),[c]),ne=(0,N.useMemo)(()=>{let e=new Map;for(let t of ft(h??c))e.set(t.path,t.value);return e},[h,c]),k=(0,N.useMemo)(()=>bt(c),[c]),A=Z(c),j=te.length,re=Array.isArray(A),ae=C!==k;(0,N.useEffect)(()=>{D.current||(w(k),E(null))},[k]);let oe=(e,t)=>{v&&A!==null&&v(ht(A,e.path,mt(e.kind,t)))};return(0,W.jsx)(l,{open:e,onOpenChange:t,children:(0,W.jsxs)(d,{side:`right`,showOverlay:!1,className:`gap-0 p-0 data-[side=right]:sm:max-w-xl`,"data-slot":`json-value-sheet`,children:[(0,W.jsxs)(u,{className:`gap-2 border-b border-border/50`,children:[(0,W.jsxs)(`div`,{className:`flex flex-col gap-0.5 pr-8`,children:[(0,W.jsx)(m,{className:`text-sm`,children:(0,W.jsx)(`span`,{className:`font-mono`,children:n})}),(0,W.jsxs)(f,{className:`font-mono text-[11px]`,children:[s,(0,W.jsx)(`span`,{className:`text-border`,children:` · `}),o,j>0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-border`,children:` · `}),j,` `,j===1?`field`:`fields`]}):null]})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-4`,role:`tablist`,"aria-label":`JSON value tabs`,children:[(0,W.jsx)(At,{active:y===`table`,onClick:()=>b(`table`),id:`table`,children:`Table`}),(0,W.jsx)(At,{active:y===`json`,onClick:()=>b(`json`),id:`json`,children:`JSON`})]})]}),(0,W.jsx)(`div`,{className:i(`flex min-h-0 flex-1 flex-col px-4 pb-2`,y===`json`?`overflow-hidden pt-3`:`overflow-y-auto`),children:y===`table`?j===0?(0,W.jsx)(`p`,{className:`px-1 py-8 text-center text-sm text-muted-foreground`,"data-slot":`json-value-empty`,children:re?`Empty array.`:`No fields.`}):(0,W.jsxs)(`table`,{className:`w-full table-fixed border-collapse`,"data-slot":`json-value-table`,children:[(0,W.jsxs)(`colgroup`,{children:[(0,W.jsx)(`col`,{className:`w-[30%]`}),(0,W.jsx)(`col`,{className:`w-12`}),(0,W.jsx)(`col`,{})]}),(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{className:`border-b border-border/60 text-left`,children:[(0,W.jsx)(`th`,{className:`sticky top-0 bg-popover py-2 pr-3 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Field`}),(0,W.jsx)(`th`,{className:`sticky top-0 bg-popover py-2 pr-3 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Type`}),(0,W.jsx)(`th`,{className:`sticky top-0 bg-popover py-2 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Value`})]})}),(0,W.jsx)(`tbody`,{className:`divide-y divide-border/60`,children:te.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{className:`align-top py-1.5 pr-3`,children:(0,W.jsx)(`span`,{className:`block truncate font-mono text-[11px] font-medium text-muted-foreground`,title:e.path,children:e.path})}),(0,W.jsx)(`td`,{className:`align-top py-1.5 pr-3`,children:(0,W.jsx)(`span`,{className:`font-mono text-[9px] text-muted-foreground/60`,children:Ot(e.kind)})}),(0,W.jsx)(`td`,{className:i(`min-w-0 align-top py-1 font-mono text-[11px] break-words`,e.kind===`null`&&!O&&`text-muted-foreground/40`,e.kind===`number`&&`tabular-nums`,(e.kind===`object`||e.kind===`array`)&&!O&&`text-muted-foreground`),dir:wt(e.value)?`rtl`:`ltr`,children:O?(0,W.jsx)(et,{value:pt(e.value,e.kind),label:`Edit ${e.path}`,dirty:!gt(ne.get(e.path),e.value),onChange:t=>oe(e,t),className:`min-h-7 w-full px-0 font-mono text-[11px]`}):kt(e.value,e.kind)})]},e.path))})]}):(0,W.jsx)(Et,{pretty:k,draft:C,error:T,dirty:ae,editable:O,onDraftChange:e=>{w(e),T&&E(null)},onFocusChange:e=>{D.current=e},onCommit:()=>{if(!v)return;let e=dt(C);if(!e.ok){E(e.error);return}E(null),v(e.value)},onRevert:()=>{w(k),E(null)}})}),(0,W.jsxs)(`div`,{className:`mt-auto flex items-center justify-between gap-2 border-t border-border/50 px-4 py-2.5`,children:[O?(0,W.jsx)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[10px] text-muted-foreground`,children:y===`json`?(0,W.jsxs)(W.Fragment,{children:[`Edit JSON · blur or`,(0,W.jsx)(p,{keys:ie(`↵`)}),`to apply`]}):`Click a value to edit · Changes to review`}):(0,W.jsx)(`span`,{}),(0,W.jsxs)(g,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{if(!navigator.clipboard)return;let e=y===`json`?C:k;navigator.clipboard.writeText(e).then(()=>{S(!0),window.setTimeout(()=>S(!1),1200)})},"data-slot":`json-value-copy`,children:[(0,W.jsx)(r,{icon:x?a:ee,className:`size-3.5`,"aria-hidden":!0}),x?`Copied`:`Copy JSON`]})]})]})})}function Et({pretty:e,draft:t,error:n,dirty:r,editable:a,onDraftChange:o,onFocusChange:s,onCommit:c,onRevert:l}){let u=(0,N.useRef)(null),d=(0,N.useRef)(null),f=(0,N.useRef)(null),p=(a?t:e).split(`
12
- `);return(0,N.useEffect)(()=>{let e=d.current,t=f.current;e&&t!==null&&(e.selectionStart=e.selectionEnd=t,f.current=null)},[t]),(0,W.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-1.5`,"data-slot":`json-value-source`,children:[(0,W.jsx)(`div`,{className:i(`flex min-h-0 flex-1 overflow-hidden rounded-md border`,n?`border-destructive/50`:r?`border-amber-500/30`:`border-border/60`),children:a?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{ref:u,className:`shrink-0 overflow-hidden border-r border-border/40 bg-muted/30 px-1.5 py-2 text-right font-mono text-[10px] leading-5 text-muted-foreground/80`,"aria-hidden":!0,children:p.map((e,t)=>(0,W.jsx)(`div`,{children:t+1},t))}),(0,W.jsx)(`textarea`,{ref:d,value:t,spellCheck:!1,"aria-label":`JSON source`,"aria-invalid":n!==null,"data-slot":`json-value-editor`,onFocus:()=>s(!0),onBlur:()=>{s(!1),c()},onScroll:()=>{u.current&&d.current&&(u.current.scrollTop=d.current.scrollTop)},onChange:e=>o(e.target.value),onKeyDown:e=>{if(e.key===`Tab`){e.preventDefault();let n=e.currentTarget.selectionStart,r=e.currentTarget.selectionEnd;f.current=n+2,o(`${t.slice(0,n)} ${t.slice(r)}`);return}if(e.key===`Enter`&&(e.metaKey||e.ctrlKey)){e.preventDefault(),Dt(e.currentTarget);return}e.key===`Escape`&&(e.preventDefault(),l(),Dt(e.currentTarget))},className:i(`min-h-0 min-w-0 flex-1 resize-none bg-transparent px-2 py-2 font-mono text-[11px] leading-5`,`shadow-none outline-none ring-0 focus-visible:outline-none`,r?`text-[#9a5b12] dark:text-[#e8c48a]`:`text-foreground`)})]}):(0,W.jsx)(k,{json:e,dataSlot:`json-value-highlight`,className:`flex min-h-0 flex-1 overflow-auto`})}),n?(0,W.jsx)(`p`,{className:`text-[11px] text-destructive`,role:`alert`,"data-slot":`json-value-error`,children:n}):null]})}function Dt(e){e.blur()}function Ot(e){switch(e){case`number`:return`123`;case`boolean`:return`0/1`;case`null`:return`∅`;case`object`:case`array`:return`{ }`;default:return`abc`}}function kt(e,t){return t===`object`?`{}`:t===`array`?`[]`:Y(e)}function At({active:e,onClick:t,id:n,children:r}){return(0,W.jsx)(`button`,{type:`button`,role:`tab`,id:`json-tab-${n}`,"aria-selected":e,onClick:t,className:i(`px-2 py-1.5 text-[10px] font-semibold tracking-[0.08em] uppercase transition-colors hover:bg-muted/50`,e?`text-foreground`:`text-muted-foreground hover:text-foreground`),"data-slot":`json-tab-${n}`,children:r})}var jt=`[redacted]`;function Mt(e){let t={};for(let[n,r]of Object.entries(e))r!==`[redacted]`&&(t[n]=r);return t}function Nt(e){return e===jt}function Pt(e,t){if(e===`boolean`){let e=t.trim().toLowerCase();return e===`true`||e===`1`||e===`yes`||e===`on`?!0:e===`false`||e===`0`||e===`no`||e===`off`||e===``?!1:t}if(e===`integer`){let e=Number(t);return Number.isFinite(e)?Math.trunc(e):t}if(e===`number`){let e=Number(t);return Number.isFinite(e)?e:t}if(e===`json`)try{return JSON.parse(t)}catch{return t}return t}function Ft(e){let t={};for(let n of e)t[n.key]=n.key===`id`?crypto.randomUUID():``;return`id`in t||(t.id=crypto.randomUUID()),t}function It(e){return e.some(e=>e.key===`id`)?[...e]:[{key:`id`,type:`string`},...e]}function Lt(e,t){let n={},r=new Set;for(let i of e){r.add(i.key);let e=t[i.key]??``;e.trim()!==``&&(n[i.key]=Pt(i.type,e))}if(!r.has(`id`)){let e=t.id??``;e.trim()!==``&&(n.id=e.trim())}let i=Mt(n),a=i.id;return(typeof a!=`string`||a.length===0)&&typeof a!=`number`?{ok:!1,error:`id is required`}:{ok:!0,patch:i}}function Q(e){return{minRow:Math.min(e.anchor.row,e.head.row),maxRow:Math.max(e.anchor.row,e.head.row),minCol:Math.min(e.anchor.col,e.head.col),maxCol:Math.max(e.anchor.col,e.head.col)}}function Rt(e,t,n){let r=Q(e);return t>=r.minRow&&t<=r.maxRow&&n>=r.minCol&&n<=r.maxCol}function zt(e){let t=Q(e);return(t.maxRow-t.minRow+1)*(t.maxCol-t.minCol+1)}function Bt(e){let t=Q(e),n=[];for(let e=t.minRow;e<=t.maxRow;e++)for(let r=t.minCol;r<=t.maxCol;r++)n.push({row:e,col:r});return n}function Vt(e){if(!e)return[];let t=e.replace(/\r\n/g,`
11
+ `)?e:`${e}\n`,S=new Set(l);(0,N.useImperativeHandle)(f,()=>({insert(n){let r=h.current;if(b(null),!r){t(`${e}${n}`);return}let i=r.selectionStart,a=r.selectionEnd;t(`${e.slice(0,i)}${n}${e.slice(a)}`),requestAnimationFrame(()=>{let e=i+n.length;r.focus(),r.selectionStart=r.selectionEnd=e,d?.(e,e)})},focus(){h.current?.focus()}}));let C=()=>{let e=h.current;e&&(g.current&&(g.current.scrollTop=e.scrollTop),_.current&&(_.current.scrollTop=e.scrollTop,_.current.scrollLeft=e.scrollLeft))},w=()=>{let e=h.current;e&&d?.(e.selectionStart,e.selectionEnd)},T=(e,t)=>{requestAnimationFrame(()=>{e.focus(),e.selectionStart=e.selectionEnd=t,d?.(t,t)})},E=(e,t)=>{if(p.length===0){b(null);return}let n=e.selectionStart,r=xe(t,n,p,m);if(!r){b(null);return}let i=Pe(e,n);b({result:r,active:0,top:Math.min(i.top+20,Math.max(8,e.clientHeight-48)),left:Math.min(Math.max(8,i.left),Math.max(8,e.clientWidth-220))})},D=n=>{let r=h.current;if(!r||!v)return;let i=v.result.items[n];if(!i)return;let a=`${e.slice(0,v.result.from)}${i.insert}${e.slice(v.result.to)}`,o=v.result.from+i.insert.length;t(a),b(null),T(r,o)};return(0,W.jsxs)(`div`,{className:i(`flex min-h-0 flex-1 overflow-hidden bg-background`,c),"data-slot":`store-query-editor`,children:[(0,W.jsx)(`div`,{ref:g,"aria-hidden":!0,className:`shrink-0 overflow-hidden border-r border-border/50 bg-muted/15 py-3 pr-1.5 pl-1.5 font-mono text-xs leading-5 text-muted-foreground/70`,children:Array.from({length:x},(e,t)=>{let n=t+1,i=S.has(n);return(0,W.jsxs)(`div`,{className:`group/line flex h-5 items-center justify-end gap-0.5`,children:[i&&u?(0,W.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-label":`Run statement on line ${n}`,"data-slot":`store-query-gutter-run`,onClick:()=>u(n),className:`flex size-4 items-center justify-center rounded-sm text-emerald-600 opacity-70 hover:bg-emerald-500/15 hover:opacity-100 dark:text-emerald-400`,children:(0,W.jsx)(r,{icon:y,className:`size-2.5`})}):(0,W.jsx)(`span`,{className:`size-4`}),(0,W.jsx)(`span`,{className:`min-w-4 text-right`,children:n})]},n)})}),(0,W.jsxs)(`div`,{className:`relative min-h-0 min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{ref:_,className:`pointer-events-none absolute inset-0 overflow-hidden`,children:(0,W.jsx)(Qe,{code:ee,language:n,className:`px-3 py-3 text-xs leading-5`})}),(0,W.jsx)(`textarea`,{ref:h,value:e,onChange:e=>{t(e.target.value),d?.(e.target.selectionStart,e.target.selectionEnd),E(e.target,e.target.value)},onScroll:C,onKeyDown:n=>{if((n.metaKey||n.ctrlKey)&&n.key===`Enter`){n.preventDefault(),b(null),n.shiftKey&&o?o():a();return}if(v){if(n.key===`ArrowDown`){n.preventDefault(),b(e=>e&&{...e,active:(e.active+1)%e.result.items.length});return}if(n.key===`ArrowUp`){n.preventDefault(),b(e=>e&&{...e,active:(e.active-1+e.result.items.length)%e.result.items.length});return}if(n.key===`Enter`||n.key===`Tab`){n.preventDefault(),D(v.active);return}if(n.key===`Escape`){n.preventDefault(),b(null);return}(n.key===`ArrowLeft`||n.key===`ArrowRight`)&&b(null)}if(n.key===`Tab`){n.preventDefault();let r=n.currentTarget,i=r.selectionStart,a=r.selectionEnd;t(`${e.slice(0,i)} ${e.slice(a)}`),T(r,i+2);return}n.key===`Escape`&&b(null)},onKeyUp:w,onClick:()=>{b(null),w()},onSelect:w,onBlur:()=>b(null),spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`,"aria-label":s,"aria-autocomplete":`list`,"aria-expanded":v!==null,"aria-controls":v?`store-query-complete`:void 0,"aria-activedescendant":v?`store-query-complete-${v.active}`:void 0,"data-slot":`store-query-input`,className:`absolute inset-0 h-full w-full resize-none overflow-auto bg-transparent px-3 py-3 font-mono text-xs leading-5 text-transparent caret-foreground outline-none`}),v?(0,W.jsx)(Ne,{items:v.result.items,active:v.active,top:v.top,left:v.left,onHover:e=>b(t=>t&&{...t,active:e}),onPick:D}):null]})]})}function et({value:e,label:t,onChange:n,onFocus:r,onIdle:a,dirty:o=!1,autoFocus:s=!1,placeholder:c=`Empty`,className:l}){let[u,d]=(0,N.useState)(e),f=(0,N.useRef)(null);(0,N.useEffect)(()=>{d(e)},[e]),(0,N.useEffect)(()=>{if(!s)return;let e=f.current;e&&(e.focus(),e.select())},[s]);let p=()=>{u!==e&&n(u)},m=()=>{p(),a?.()};return(0,W.jsx)(`input`,{ref:f,value:u,"aria-label":t,size:1,"data-dirty":o?`true`:void 0,onFocus:r,onChange:e=>d(e.target.value),onBlur:m,onKeyDown:t=>{if(t.key===`Enter`&&(t.metaKey||t.ctrlKey)){m();return}t.key===`Enter`?(t.preventDefault(),t.currentTarget.blur()):t.key===`Escape`&&(t.preventDefault(),d(e),a?.(),t.currentTarget.blur())},placeholder:c,className:i(`h-full w-full min-w-0 appearance-none rounded-none border-0 bg-transparent p-0`,`shadow-none outline-none ring-0`,`focus:bg-transparent focus:shadow-none focus:ring-0 focus:outline-none`,`focus-visible:shadow-none focus-visible:ring-0 focus-visible:outline-none`,`placeholder:text-muted-foreground/40`,o?`text-[#9a5b12] dark:text-[#e8c48a]`:`text-foreground`,l)})}function tt(e){try{return new TextEncoder().encode(JSON.stringify(e??null)).length}catch{return 0}}function nt(e){if(typeof e==`string`){let t=e.trim();return t===``?`—`:t}return typeof e!=`number`||!Number.isFinite(e)?`—`:e<=0?`0s`:e<6e4?`${Math.max(1,Math.round(e/1e3))}s`:e<36e5?`${Math.round(e/6e4)}m`:e<864e5?`${Math.round(e/36e5)}h`:`${Math.round(e/864e5)}d`}function rt(e){let t=e.trim();if(t===``||t===`—`||t===`none`)return null;if(/^(\d+)(ms|s|m|h|d)$/.test(t))return t}function it(e){if(typeof e!=`number`||!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${Math.round(e)} B`;if(e<1048576){let t=e/1024;return t<10?`${t.toFixed(1)} KB`:`${Math.round(t)} KB`}let t=e/1048576;return t<10?`${t.toFixed(1)} MB`:`${Math.round(t)} MB`}function at(e){let{facet:t,data:n,piiColumns:r=[],columnTypes:i={},columnDescriptions:a={},primaryKeyColumns:o=[]}=e,s=b(r),c=new Set(o);if(t===`sql`){let e=n.rows??[];return{columns:(e.length>0?Object.keys(e[0]??{}):Object.keys(i)).map(e=>({key:e,type:i[e]===`integer`?`integer`:`string`,editable:e!==`id`,pii:s.has(e),...c.has(e)?{primaryKey:!0}:{},...a[e]===void 0?{}:{description:a[e]}})),rows:e.map(e=>({id:ct(e),cells:e})),deleteKind:`ids`,editable:!0}}if(t===`kv`)return{columns:[{key:`key`,type:`string`,editable:!1,pii:!1},{key:`value`,type:`json`,editable:!0,pii:!1},{key:`ttl`,type:`number`,editable:!0,pii:!1,format:`ttl`},{key:`size`,type:`number`,editable:!1,pii:!1,format:`bytes`}],rows:(n.keys??[]).map(e=>({id:e.key,cells:{key:e.key,value:e.value,ttl:e.ttlMs??null,size:e.sizeBytes??tt(e.value)}})),deleteKind:`keys`,editable:!0};if(t===`files`)return{columns:[{key:`key`,type:`string`,editable:!1,pii:!1},{key:`size`,type:`number`,editable:!1,pii:!1,format:`bytes`},{key:`warnings`,type:`string`,editable:!1,pii:!1}],rows:(n.keys??[]).map(e=>({id:e.key,cells:{key:e.key,size:e.sizeBytes??0,warnings:e.warnings?.map(e=>e.message).join(`; `)??``}})),deleteKind:`keys`,editable:!1};let l=n.hits??[],u=st(l);return{columns:[{key:`id`,type:`string`,editable:!1,pii:!1},...u.map(e=>({key:e,type:`string`,editable:!1,pii:!1})),{key:`score`,type:`number`,editable:!1,pii:!1},...u.length===0?[{key:`meta`,type:`json`,editable:!1,pii:!1}]:[]],rows:l.map(e=>({id:e.id,cells:{id:e.id,score:e.score,...u.length===0?{meta:e.meta}:{},...Object.fromEntries(u.map(t=>[t,e.meta?.[t]]))}})),deleteKind:`ids`,editable:!1}}var ot=[`identifier`,`title`,`description`];function st(e){let t=new Set;for(let n of e)for(let[e,r]of Object.entries(n.meta??{}))e===`id`||/^\d+$/.test(e)||typeof r==`object`&&r||t.add(e);let n=[...t].filter(e=>!ot.includes(e)).sort();return[...ot.filter(e=>t.has(e)),...n]}function ct(e){let t=e.id??e.Id??e.name;return typeof t==`string`||typeof t==`number`||typeof t==`boolean`?String(t):``}function Y(e){if(e==null)return`—`;if(e instanceof Date)return e.toISOString();if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return`[unserializable]`}}function lt(e){return/(?:^|_)(at|time|timestamp)$/i.test(e)||/(?:At|Time|Timestamp)$/.test(e)}function X(e,t){if(t==null)return null;if(t instanceof Date)return t.toISOString();if(typeof t==`string`){if(!lt(e))return null;let n=Date.parse(t);return Number.isNaN(n)?null:new Date(n).toISOString()}return typeof t==`number`&&Number.isFinite(t)&&lt(e)?t<0xe8d4a51000||t>0x9184e72a000?null:new Date(t).toISOString():null}function ut(e,t){if(e.format===`ttl`)return nt(t);if(e.format===`bytes`)return it(t);let n=X(e.key,t);return n===null?Y(t):n}function Z(e){if(e==null)return null;if(typeof e==`object`)return e;if(typeof e!=`string`)return null;let t=e.trim();if(!(t.startsWith(`{`)||t.startsWith(`[`)))return null;try{let e=JSON.parse(t);if(typeof e==`object`&&e)return e}catch{return null}return null}function dt(e){let t=Z(e);if(t!==null)return{ok:!0,value:t};let n=e.trim();if(n===``)return{ok:!1,error:`JSON is empty`};try{return JSON.parse(n),{ok:!1,error:`JSON must be an object or array`}}catch{return{ok:!1,error:`Invalid JSON`}}}function ft(e){let t=Z(e);return t===null?[]:xt(t,``)}function pt(e,t){if(t===`object`)return`{}`;if(t===`array`)return`[]`;if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)??``}catch{return``}}function mt(e,t){if(e===`string`)return t;let n=t.trim();if(e===`number`){if(n===``)return null;let e=Number(n);return Number.isFinite(e)?e:t}if(e===`boolean`)return n===`true`?!0:n===`false`?!1:n===``?null:t;if(e===`null`){if(n===``||n===`null`)return null;if(n===`true`)return!0;if(n===`false`)return!1;let e=Number(n);return Number.isFinite(e)&&n!==``?e:t}if(e===`object`||e===`array`){if(n===``)return e===`array`?[]:{};try{return JSON.parse(n)}catch{return t}}return t}function ht(e,t,n){let r=_t(t);if(r.length===0)return n;let i=structuredClone(e),a=i;for(let e=0;e<r.length-1;e++){let t=r[e];if(!t)return i;a=vt(a,t)}let o=r[r.length-1];return o&&yt(a,o,n),i}function gt(e,t){if(Object.is(e,t))return!0;try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}}function _t(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===`.`){n+=1;continue}if(r===`[`){let r=e.indexOf(`]`,n);if(r<0)break;t.push({type:`index`,index:Number(e.slice(n+1,r))}),n=r+1;continue}let i=n;for(;i<e.length&&e[i]!==`.`&&e[i]!==`[`;)i+=1;t.push({type:`key`,key:e.slice(n,i)}),n=i}return t}function vt(e,t){if(typeof e==`object`&&e)return t.type===`key`?e[t.key]:e[t.index]}function yt(e,t,n){if(typeof e==`object`&&e){if(t.type===`key`){e[t.key]=n;return}e[t.index]=n}}function bt(e){let t=Z(e);if(t!==null)try{return JSON.stringify(t,null,2)}catch{return`[unserializable]`}if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return`[unserializable]`}}function xt(e,t){if(typeof e==`object`&&e&&!Array.isArray(e)){let n=Object.entries(e);return n.length===0?t?[{path:t,value:e,kind:`object`}]:[]:n.flatMap(([e,n])=>xt(n,t?`${t}.${e}`:e))}return Array.isArray(e)?e.length===0?t?[{path:t,value:e,kind:`array`}]:[]:e.flatMap((e,n)=>xt(e,t?`${t}[${n}]`:`[${n}]`)):[{path:t||`(root)`,value:e,kind:St(e)}]}function St(e){return e===null?`null`:typeof e==`boolean`?`boolean`:typeof e==`number`?`number`:Array.isArray(e)?`array`:typeof e==`object`?`object`:`string`}var Ct=/[؀-ۿݐ-ݿࢠ-ࣿﭐ-﷿ﹰ-]/;function wt(e){return typeof e==`string`&&Ct.test(e)}function Tt({open:e,onOpenChange:t,rowId:n,column:l,storeRef:m,value:h,originalValue:g,editable:_=!1,onChange:v}){let[y,b]=(0,N.useState)(`table`),[x,S]=(0,N.useState)(!1),[C,w]=(0,N.useState)(``),[T,E]=(0,N.useState)(null),D=(0,N.useRef)(!1),O=_&&v!==void 0;(0,N.useEffect)(()=>{e&&(b(`table`),S(!1),E(null),D.current=!1)},[e,n,l]);let te=(0,N.useMemo)(()=>ft(h),[h]),ne=(0,N.useMemo)(()=>{let e=new Map;for(let t of ft(g??h))e.set(t.path,t.value);return e},[g,h]),k=(0,N.useMemo)(()=>bt(h),[h]),A=Z(h),j=te.length,re=Array.isArray(A),ie=C!==k;(0,N.useEffect)(()=>{D.current||(w(k),E(null))},[k]);let oe=(e,t)=>{v&&A!==null&&v(ht(A,e.path,mt(e.kind,t)))};return(0,W.jsx)(o,{open:e,onOpenChange:t,children:(0,W.jsxs)(c,{side:`right`,showOverlay:!1,className:`gap-0 p-0 data-[side=right]:sm:max-w-xl`,"data-slot":`json-value-sheet`,children:[(0,W.jsxs)(s,{className:`gap-2 border-b border-border/50`,children:[(0,W.jsxs)(`div`,{className:`flex flex-col gap-0.5 pr-8`,children:[(0,W.jsx)(f,{className:`text-sm`,children:(0,W.jsx)(`span`,{className:`font-mono`,children:n})}),(0,W.jsxs)(u,{className:`font-mono text-[11px]`,children:[m,(0,W.jsx)(`span`,{className:`text-border`,children:` · `}),l,j>0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-border`,children:` · `}),j,` `,j===1?`field`:`fields`]}):null]})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-4`,role:`tablist`,"aria-label":`JSON value tabs`,children:[(0,W.jsx)(At,{active:y===`table`,onClick:()=>b(`table`),id:`table`,children:`Table`}),(0,W.jsx)(At,{active:y===`json`,onClick:()=>b(`json`),id:`json`,children:`JSON`})]})]}),(0,W.jsx)(`div`,{className:i(`flex min-h-0 flex-1 flex-col px-4 pb-2`,y===`json`?`overflow-hidden pt-3`:`overflow-y-auto`),children:y===`table`?j===0?(0,W.jsx)(`p`,{className:`px-1 py-8 text-center text-sm text-muted-foreground`,"data-slot":`json-value-empty`,children:re?`Empty array.`:`No fields.`}):(0,W.jsxs)(`table`,{className:`w-full table-fixed border-collapse`,"data-slot":`json-value-table`,children:[(0,W.jsxs)(`colgroup`,{children:[(0,W.jsx)(`col`,{className:`w-[30%]`}),(0,W.jsx)(`col`,{className:`w-12`}),(0,W.jsx)(`col`,{})]}),(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{className:`border-b border-border/60 text-left`,children:[(0,W.jsx)(`th`,{className:`sticky top-0 bg-popover py-2 pr-3 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Field`}),(0,W.jsx)(`th`,{className:`sticky top-0 bg-popover py-2 pr-3 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Type`}),(0,W.jsx)(`th`,{className:`sticky top-0 bg-popover py-2 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Value`})]})}),(0,W.jsx)(`tbody`,{className:`divide-y divide-border/60`,children:te.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{className:`align-top py-1.5 pr-3`,children:(0,W.jsx)(`span`,{className:`block truncate font-mono text-[11px] font-medium text-muted-foreground`,title:e.path,children:e.path})}),(0,W.jsx)(`td`,{className:`align-top py-1.5 pr-3`,children:(0,W.jsx)(`span`,{className:`font-mono text-[9px] text-muted-foreground/60`,children:Ot(e.kind)})}),(0,W.jsx)(`td`,{className:i(`min-w-0 align-top py-1 font-mono text-[11px] break-words`,e.kind===`null`&&!O&&`text-muted-foreground/40`,e.kind===`number`&&`tabular-nums`,(e.kind===`object`||e.kind===`array`)&&!O&&`text-muted-foreground`),dir:wt(e.value)?`rtl`:`ltr`,children:O?(0,W.jsx)(et,{value:pt(e.value,e.kind),label:`Edit ${e.path}`,dirty:!gt(ne.get(e.path),e.value),onChange:t=>oe(e,t),className:`min-h-7 w-full px-0 font-mono text-[11px]`}):kt(e.value,e.kind)})]},e.path))})]}):(0,W.jsx)(Et,{pretty:k,draft:C,error:T,dirty:ie,editable:O,onDraftChange:e=>{w(e),T&&E(null)},onFocusChange:e=>{D.current=e},onCommit:()=>{if(!v)return;let e=dt(C);if(!e.ok){E(e.error);return}E(null),v(e.value)},onRevert:()=>{w(k),E(null)}})}),(0,W.jsxs)(`div`,{className:`mt-auto flex items-center justify-between gap-2 border-t border-border/50 px-4 py-2.5`,children:[O?(0,W.jsx)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[10px] text-muted-foreground`,children:y===`json`?(0,W.jsxs)(W.Fragment,{children:[`Edit JSON · blur or`,(0,W.jsx)(d,{keys:ae(`↵`)}),`to apply`]}):`Click a value to edit · Changes to review`}):(0,W.jsx)(`span`,{}),(0,W.jsxs)(p,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{if(!navigator.clipboard)return;let e=y===`json`?C:k;navigator.clipboard.writeText(e).then(()=>{S(!0),window.setTimeout(()=>S(!1),1200)})},"data-slot":`json-value-copy`,children:[(0,W.jsx)(r,{icon:x?a:ee,className:`size-3.5`,"aria-hidden":!0}),x?`Copied`:`Copy JSON`]})]})]})})}function Et({pretty:e,draft:t,error:n,dirty:r,editable:a,onDraftChange:o,onFocusChange:s,onCommit:c,onRevert:l}){let u=(0,N.useRef)(null),d=(0,N.useRef)(null),f=(0,N.useRef)(null),p=(a?t:e).split(`
12
+ `);return(0,N.useEffect)(()=>{let e=d.current,t=f.current;e&&t!==null&&(e.selectionStart=e.selectionEnd=t,f.current=null)},[t]),(0,W.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-1.5`,"data-slot":`json-value-source`,children:[(0,W.jsx)(`div`,{className:i(`flex min-h-0 flex-1 overflow-hidden rounded-md border`,n?`border-destructive/50`:r?`border-amber-500/30`:`border-border/60`),children:a?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{ref:u,className:`shrink-0 overflow-hidden border-r border-border/40 bg-muted/30 px-1.5 py-2 text-right font-mono text-[10px] leading-5 text-muted-foreground/80`,"aria-hidden":!0,children:p.map((e,t)=>(0,W.jsx)(`div`,{children:t+1},t))}),(0,W.jsx)(`textarea`,{ref:d,value:t,spellCheck:!1,"aria-label":`JSON source`,"aria-invalid":n!==null,"data-slot":`json-value-editor`,onFocus:()=>s(!0),onBlur:()=>{s(!1),c()},onScroll:()=>{u.current&&d.current&&(u.current.scrollTop=d.current.scrollTop)},onChange:e=>o(e.target.value),onKeyDown:e=>{if(e.key===`Tab`){e.preventDefault();let n=e.currentTarget.selectionStart,r=e.currentTarget.selectionEnd;f.current=n+2,o(`${t.slice(0,n)} ${t.slice(r)}`);return}if(e.key===`Enter`&&(e.metaKey||e.ctrlKey)){e.preventDefault(),Dt(e.currentTarget);return}e.key===`Escape`&&(e.preventDefault(),l(),Dt(e.currentTarget))},className:i(`min-h-0 min-w-0 flex-1 resize-none bg-transparent px-2 py-2 font-mono text-[11px] leading-5`,`shadow-none outline-none ring-0 focus-visible:outline-none`,r?`text-[#9a5b12] dark:text-[#e8c48a]`:`text-foreground`)})]}):(0,W.jsx)(A,{json:e,dataSlot:`json-value-highlight`,className:`flex min-h-0 flex-1 overflow-auto`})}),n?(0,W.jsx)(`p`,{className:`text-[11px] text-destructive`,role:`alert`,"data-slot":`json-value-error`,children:n}):null]})}function Dt(e){e.blur()}function Ot(e){switch(e){case`number`:return`123`;case`boolean`:return`0/1`;case`null`:return`∅`;case`object`:case`array`:return`{ }`;default:return`abc`}}function kt(e,t){return t===`object`?`{}`:t===`array`?`[]`:Y(e)}function At({active:e,onClick:t,id:n,children:r}){return(0,W.jsx)(`button`,{type:`button`,role:`tab`,id:`json-tab-${n}`,"aria-selected":e,onClick:t,className:i(`px-2 py-1.5 text-[10px] font-semibold tracking-[0.08em] uppercase transition-colors hover:bg-muted/50`,e?`text-foreground`:`text-muted-foreground hover:text-foreground`),"data-slot":`json-tab-${n}`,children:r})}var jt=`[redacted]`;function Mt(e){let t={};for(let[n,r]of Object.entries(e))r!==`[redacted]`&&(t[n]=r);return t}function Nt(e){return e===jt}function Pt(e,t){if(e===`boolean`){let e=t.trim().toLowerCase();return e===`true`||e===`1`||e===`yes`||e===`on`?!0:e===`false`||e===`0`||e===`no`||e===`off`||e===``?!1:t}if(e===`integer`){let e=Number(t);return Number.isFinite(e)?Math.trunc(e):t}if(e===`number`){let e=Number(t);return Number.isFinite(e)?e:t}if(e===`json`)try{return JSON.parse(t)}catch{return t}return t}function Ft(e){let t={};for(let n of e)t[n.key]=n.key===`id`?crypto.randomUUID():``;return`id`in t||(t.id=crypto.randomUUID()),t}function It(e){return e.some(e=>e.key===`id`)?[...e]:[{key:`id`,type:`string`},...e]}function Lt(e,t){let n={},r=new Set;for(let i of e){r.add(i.key);let e=t[i.key]??``;e.trim()!==``&&(n[i.key]=Pt(i.type,e))}if(!r.has(`id`)){let e=t.id??``;e.trim()!==``&&(n.id=e.trim())}let i=Mt(n),a=i.id;return(typeof a!=`string`||a.length===0)&&typeof a!=`number`?{ok:!1,error:`id is required`}:{ok:!0,patch:i}}function Q(e){return{minRow:Math.min(e.anchor.row,e.head.row),maxRow:Math.max(e.anchor.row,e.head.row),minCol:Math.min(e.anchor.col,e.head.col),maxCol:Math.max(e.anchor.col,e.head.col)}}function Rt(e,t,n){let r=Q(e);return t>=r.minRow&&t<=r.maxRow&&n>=r.minCol&&n<=r.maxCol}function zt(e){let t=Q(e);return(t.maxRow-t.minRow+1)*(t.maxCol-t.minCol+1)}function Bt(e){let t=Q(e),n=[];for(let e=t.minRow;e<=t.maxRow;e++)for(let r=t.minCol;r<=t.maxCol;r++)n.push({row:e,col:r});return n}function Vt(e){if(!e)return[];let t=e.replace(/\r\n/g,`
13
13
  `).replace(/\r/g,`
14
14
  `).split(`
15
15
  `);return t.length>1&&t[t.length-1]===``&&t.pop(),t.map(e=>e.split(` `))}function Ht(e){return e.map(e=>e.map(e=>e.replace(/[\t\r\n]+/g,` `)).join(` `)).join(`
16
16
  `)}var Ut=[`id`,`key`];function Wt(e){if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return``}}function Gt(e){return/[",\r\n]/.test(e)?`"${e.replaceAll(`"`,`""`)}"`:e}function Kt(e,t){let n=[e.map(Gt).join(`,`)];for(let r of t)n.push(e.map((e,t)=>Gt(r[t]??``)).join(`,`));return n.join(`
17
17
  `)}function qt(e){let t=e.replace(/^\uFEFF/,``),n=[],r=[],i=``,a=!1;for(let e=0;e<t.length;e++){let o=t[e];if(a){if(o===`"`){if(t[e+1]===`"`){i+=`"`,e+=1;continue}a=!1;continue}i+=o;continue}if(o===`"`){a=!0;continue}if(o===`,`){r.push(i),i=``;continue}if(o===`
18
- `){r.push(i),i=``,n.push(r),r=[];continue}o!==`\r`&&(i+=o)}if(a)throw Error(`Unclosed CSV quote`);return(i.length>0||r.length>0)&&(r.push(i),n.push(r)),n}function Jt(e){let t=e[0];if(!t||t.length===0)return[];let n=[];for(let r of e.slice(1)){let e={},i=!1;for(let n=0;n<t.length;n++){let a=t[n]?.trim();a&&(e[a]=r[n]??``,i=!0)}i&&n.push(e)}return n}function Yt(e){let t=JSON.parse(e);if(!Array.isArray(t))throw Error(`JSON import must be an array of objects`);return t.map(e=>{if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`JSON import must be an array of objects`);let t={};for(let[n,r]of Object.entries(e))t[n]=Wt(r);return t})}function Xt(e){let t=e.trim();if(t.length===0)return[];if(t.startsWith(`[`)||t.startsWith(`{`))return Yt(t);let n=t.split(/\r?\n/,1)[0]??``;return n.includes(` `)&&!n.includes(`,`)?Jt(Vt(e)):Jt(qt(e))}function Zt(e){let t=0,n=[];for(let r of e.records){let i=Qt(r,e.rowIds);if(i===null){t+=1;continue}for(let[t,a]of Object.entries(r))Ut.includes(t)||a!==`[redacted]`&&e.writable(i,t)&&n.push({rowId:i,key:t,text:a})}return{hits:n,unmatched:t}}function Qt(e,t){for(let n of Ut){let r=e[n]?.trim();if(r&&t.has(r))return r}return null}function $t({rows:e,error:t,pending:n,meta:o,executed:c,executedLanguage:l=`sql`,storeRef:u=`sql:query`,collapsed:d=!1,onToggleCollapse:f,sets:p=[],activeSet:m=0,onSelectSet:g}){let[b,x]=(0,N.useState)(`table`),[E,ie]=(0,N.useState)(null),[M,le]=(0,N.useState)(null),P=(0,N.useMemo)(()=>en(e??[]),[e]),F=(0,N.useMemo)(()=>JSON.stringify(e??[],null,2),[e]),ue=(0,N.useMemo)(()=>!e||e.length===0?``:Kt(P,e.map(e=>P.map(t=>Wt(e[t])))),[e,P]),I=re()??!1,L=(0,N.useRef)(n),[R,de]=(0,N.useState)(0);(0,N.useEffect)(()=>{L.current&&!n&&de(e=>e+1),L.current=n},[n]);let z=e=>{let t=e===`csv`?ue:F;navigator.clipboard&&t.length!==0&&navigator.clipboard.writeText(t).then(()=>{ie(e),window.setTimeout(()=>ie(null),1200)})},fe=e=>{let t=e===`csv`?ue:F;if(t.length===0)return;let n=new Blob([t],{type:e===`csv`?`text/csv`:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=e===`csv`?`query-results.csv`:`query-results.json`,i.click(),URL.revokeObjectURL(r)},B=e!==null&&e.length>0;return(0,W.jsxs)(`div`,{className:i(`flex min-h-0 flex-col overflow-hidden`,d?`shrink-0`:`h-full`),"data-slot":`store-query-results`,children:[(0,W.jsxs)(`div`,{className:i(h,d&&`border-t border-b-0`),children:[p.length>1?p.map((e,t)=>(0,W.jsxs)(`button`,{type:`button`,"aria-pressed":t===m,onClick:()=>g?.(t),className:i(s,`font-mono`,t===m?v:_),children:[t+1,` `,e.label]},`${e.label}-${t}`)):null,(0,W.jsx)($,{label:`Table`,icon:ne,active:b===`table`,onClick:()=>x(`table`)}),(0,W.jsx)($,{label:`JSON`,icon:O,active:b===`json`,onClick:()=>x(`json`)}),(0,W.jsx)($,{label:`Executed statement`,icon:A,active:b===`raw`,onClick:()=>x(`raw`)}),(0,W.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center truncate px-2 text-[11px] text-muted-foreground`,children:t||(n?`Running…`:o??`No results yet. Run a query to see results here.`)}),(0,W.jsx)($,{label:E===`json`?`Copied`:`Copy JSON`,icon:E===`json`?a:ee,disabled:!B,onClick:()=>z(`json`)}),(0,W.jsx)($,{label:`Download JSON`,icon:ce,disabled:!B,onClick:()=>fe(`json`)}),(0,W.jsx)($,{label:E===`csv`?`Copied`:`Copy CSV`,icon:E===`csv`?a:se,disabled:!B,onClick:()=>z(`csv`)}),f?(0,W.jsx)($,{label:d?`Expand results`:`Collapse results`,icon:d?oe:te,expanded:!d,slot:`store-query-results-collapse`,onClick:f}):null]}),d?null:(0,W.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:n?(0,W.jsx)(`p`,{className:`px-3 py-8 text-center text-sm text-muted-foreground`,children:`Running…`}):(0,W.jsx)(j.div,{initial:R===0?!1:I?{opacity:0}:{opacity:0,transform:`translateY(4px)`},animate:I?{opacity:1}:{opacity:1,transform:`translateY(0px)`},transition:{duration:I?.12:.18,ease:ae},children:t?(0,W.jsx)(`p`,{className:`px-3 py-4 font-mono text-xs leading-relaxed text-destructive`,role:`alert`,children:t}):e===null&&b!==`raw`?(0,W.jsx)(w,{className:`h-full min-h-40 border-0`,children:(0,W.jsxs)(S,{children:[(0,W.jsx)(C,{variant:`icon`,children:(0,W.jsx)(r,{icon:y,className:`size-4`})}),(0,W.jsx)(T,{children:`No results yet`}),(0,W.jsx)(D,{children:`Run a query to see results here.`})]})}):b===`raw`?c?(0,W.jsx)(`div`,{className:`p-3`,"data-slot":`store-query-raw`,children:(0,W.jsx)(Qe,{code:c,language:l,className:`text-xs leading-5`})}):(0,W.jsx)(`p`,{className:`px-3 py-8 text-center text-sm text-muted-foreground`,children:`Nothing executed yet.`}):b===`json`?(0,W.jsx)(k,{json:F,dataSlot:`store-query-json`,className:`min-h-full p-3`}):e&&e.length===0?(0,W.jsx)(`p`,{className:`px-3 py-8 text-center text-sm text-muted-foreground`,children:`Query returned 0 rows.`}):(0,W.jsxs)(`table`,{className:`w-full min-w-max border-collapse text-left text-[12px]`,children:[(0,W.jsx)(`thead`,{className:`sticky top-0 z-10 bg-background`,children:(0,W.jsx)(`tr`,{children:P.map(e=>(0,W.jsx)(`th`,{scope:`col`,className:`border-b border-border/60 px-3 py-1.5 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:e},e))})}),(0,W.jsx)(`tbody`,{children:(e??[]).map((e,t)=>(0,W.jsx)(`tr`,{className:`border-b border-border/60 hover:bg-muted/50`,children:P.map(n=>{let r=e[n],i=Z(r)!==null;return(0,W.jsx)(`td`,{className:`max-w-xs truncate px-3 py-1.5 font-mono text-foreground/90`,children:i?(0,W.jsx)(`button`,{type:`button`,className:`max-w-full truncate text-left underline decoration-border/70 underline-offset-2 hover:text-foreground`,onClick:()=>le({rowId:String(t),column:n,value:r}),children:X(n,r)??Y(r)}):X(n,r)??Y(r)},n)})},t))})]})},R)}),(0,W.jsx)(Tt,{open:M!==null,onOpenChange:e=>{e||le(null)},rowId:M?.rowId??``,column:M?.column??``,storeRef:u,value:M?.value,editable:!1})]})}function en(e){let t=[],n=new Set;for(let r of e)for(let e of Object.keys(r))n.has(e)||(n.add(e),t.push(e));return t}function $({label:e,icon:t,active:n=!1,disabled:a=!1,expanded:o,slot:c,onClick:l}){return(0,W.jsx)(E,{label:e,className:`flex self-stretch`,children:(0,W.jsx)(`button`,{type:`button`,"aria-label":e,"aria-pressed":n||void 0,"aria-expanded":o,disabled:a,"data-slot":c,onClick:l,className:i(s,n?v:_,a&&`pointer-events-none opacity-40`),children:(0,W.jsx)(r,{icon:t,className:`size-3.5`})})})}function tn(e,t){let n=-1/0,r=null;for(let i of e)i.replicaLagMs!=null&&i.effects.some(e=>t.has(e.resource))&&i.startedAt>=n&&(n=i.startedAt,r=i.replicaLagMs);return r}export{tt as A,z as B,dt as C,X as D,ut as E,B as F,M as H,pe as I,L,et as M,$e as N,it as O,Qe as P,de as R,gt as S,Y as T,le as U,ue as V,oe as W,Pt as _,Xt as a,wt as b,zt as c,Bt as d,Vt as f,Nt as g,It as h,Zt as i,rt as j,nt as k,Q as l,Ft as m,$t as n,Kt as o,Lt as p,Wt as r,Ht as s,tn as t,Rt as u,Mt as v,at as w,Z as x,Tt as y,ge as z};
18
+ `){r.push(i),i=``,n.push(r),r=[];continue}o!==`\r`&&(i+=o)}if(a)throw Error(`Unclosed CSV quote`);return(i.length>0||r.length>0)&&(r.push(i),n.push(r)),n}function Jt(e){let t=e[0];if(!t||t.length===0)return[];let n=[];for(let r of e.slice(1)){let e={},i=!1;for(let n=0;n<t.length;n++){let a=t[n]?.trim();a&&(e[a]=r[n]??``,i=!0)}i&&n.push(e)}return n}function Yt(e){let t=JSON.parse(e);if(!Array.isArray(t))throw Error(`JSON import must be an array of objects`);return t.map(e=>{if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`JSON import must be an array of objects`);let t={};for(let[n,r]of Object.entries(e))t[n]=Wt(r);return t})}function Xt(e){let t=e.trim();if(t.length===0)return[];if(t.startsWith(`[`)||t.startsWith(`{`))return Yt(t);let n=t.split(/\r?\n/,1)[0]??``;return n.includes(` `)&&!n.includes(`,`)?Jt(Vt(e)):Jt(qt(e))}function Zt(e){let t=0,n=[];for(let r of e.records){let i=Qt(r,e.rowIds);if(i===null){t+=1;continue}for(let[t,a]of Object.entries(r))Ut.includes(t)||a!==`[redacted]`&&e.writable(i,t)&&n.push({rowId:i,key:t,text:a})}return{hits:n,unmatched:t}}function Qt(e,t){for(let n of Ut){let r=e[n]?.trim();if(r&&t.has(r))return r}return null}function $t({rows:e,error:t,pending:n,meta:o,executed:s,executedLanguage:c=`sql`,storeRef:l=`sql:query`,collapsed:u=!1,onToggleCollapse:d,sets:f=[],activeSet:p=0,onSelectSet:g}){let[b,x]=(0,N.useState)(`table`),[E,ae]=(0,N.useState)(null),[M,le]=(0,N.useState)(null),P=(0,N.useMemo)(()=>en(e??[]),[e]),F=(0,N.useMemo)(()=>JSON.stringify(e??[],null,2),[e]),I=(0,N.useMemo)(()=>!e||e.length===0?``:Kt(P,e.map(e=>P.map(t=>Wt(e[t])))),[e,P]),L=ie()??!1,R=(0,N.useRef)(n),[z,ue]=(0,N.useState)(0);(0,N.useEffect)(()=>{R.current&&!n&&ue(e=>e+1),R.current=n},[n]);let B=e=>{let t=e===`csv`?I:F;navigator.clipboard&&t.length!==0&&navigator.clipboard.writeText(t).then(()=>{ae(e),window.setTimeout(()=>ae(null),1200)})},de=e=>{let t=e===`csv`?I:F;if(t.length===0)return;let n=new Blob([t],{type:e===`csv`?`text/csv`:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=e===`csv`?`query-results.csv`:`query-results.json`,i.click(),URL.revokeObjectURL(r)},V=e!==null&&e.length>0;return(0,W.jsxs)(`div`,{className:i(`flex min-h-0 flex-col overflow-hidden`,u?`shrink-0`:`h-full`),"data-slot":`store-query-results`,children:[(0,W.jsxs)(`div`,{className:i(v,u&&`border-t border-b-0`),children:[f.length>1?f.map((e,t)=>(0,W.jsxs)(`button`,{type:`button`,"aria-pressed":t===p,onClick:()=>g?.(t),className:i(m,`font-mono`,t===p?h:_),children:[t+1,` `,e.label]},`${e.label}-${t}`)):null,(0,W.jsx)($,{label:`Table`,icon:ne,active:b===`table`,onClick:()=>x(`table`)}),(0,W.jsx)($,{label:`JSON`,icon:O,active:b===`json`,onClick:()=>x(`json`)}),(0,W.jsx)($,{label:`Executed statement`,icon:j,active:b===`raw`,onClick:()=>x(`raw`)}),(0,W.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center truncate px-2 text-[11px] text-muted-foreground`,children:t||(n?`Running…`:o??`No results yet. Run a query to see results here.`)}),(0,W.jsx)($,{label:E===`json`?`Copied`:`Copy JSON`,icon:E===`json`?a:ee,disabled:!V,onClick:()=>B(`json`)}),(0,W.jsx)($,{label:`Download JSON`,icon:ce,disabled:!V,onClick:()=>de(`json`)}),(0,W.jsx)($,{label:E===`csv`?`Copied`:`Copy CSV`,icon:E===`csv`?a:se,disabled:!V,onClick:()=>B(`csv`)}),d?(0,W.jsx)($,{label:u?`Expand results`:`Collapse results`,icon:u?k:te,expanded:!u,slot:`store-query-results-collapse`,onClick:d}):null]}),u?null:(0,W.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:n?(0,W.jsx)(`p`,{className:`px-3 py-8 text-center text-sm text-muted-foreground`,children:`Running…`}):(0,W.jsx)(re.div,{initial:z===0?!1:L?{opacity:0}:{opacity:0,transform:`translateY(4px)`},animate:L?{opacity:1}:{opacity:1,transform:`translateY(0px)`},transition:{duration:L?.12:.18,ease:oe},children:t?(0,W.jsx)(`p`,{className:`px-3 py-4 font-mono text-xs leading-relaxed text-destructive`,role:`alert`,children:t}):e===null&&b!==`raw`?(0,W.jsx)(w,{className:`h-full min-h-40 border-0`,children:(0,W.jsxs)(S,{children:[(0,W.jsx)(C,{variant:`icon`,children:(0,W.jsx)(r,{icon:y,className:`size-4`})}),(0,W.jsx)(T,{children:`No results yet`}),(0,W.jsx)(D,{children:`Run a query to see results here.`})]})}):b===`raw`?s?(0,W.jsx)(`div`,{className:`p-3`,"data-slot":`store-query-raw`,children:(0,W.jsx)(Qe,{code:s,language:c,className:`text-xs leading-5`})}):(0,W.jsx)(`p`,{className:`px-3 py-8 text-center text-sm text-muted-foreground`,children:`Nothing executed yet.`}):b===`json`?(0,W.jsx)(A,{json:F,dataSlot:`store-query-json`,className:`min-h-full p-3`}):e&&e.length===0?(0,W.jsx)(`p`,{className:`px-3 py-8 text-center text-sm text-muted-foreground`,children:`Query returned 0 rows.`}):(0,W.jsxs)(`table`,{className:`w-full min-w-max border-collapse text-left text-[12px]`,children:[(0,W.jsx)(`thead`,{className:`sticky top-0 z-10 bg-background`,children:(0,W.jsx)(`tr`,{children:P.map(e=>(0,W.jsx)(`th`,{scope:`col`,className:`border-b border-border/60 px-3 py-1.5 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:e},e))})}),(0,W.jsx)(`tbody`,{children:(e??[]).map((e,t)=>(0,W.jsx)(`tr`,{className:`border-b border-border/60 hover:bg-muted/50`,children:P.map(n=>{let r=e[n],i=Z(r)!==null;return(0,W.jsx)(`td`,{className:`max-w-xs truncate px-3 py-1.5 font-mono text-foreground/90`,children:i?(0,W.jsx)(`button`,{type:`button`,className:`max-w-full truncate text-left underline decoration-border/70 underline-offset-2 hover:text-foreground`,onClick:()=>le({rowId:String(t),column:n,value:r}),children:X(n,r)??Y(r)}):X(n,r)??Y(r)},n)})},t))})]})},z)}),(0,W.jsx)(Tt,{open:M!==null,onOpenChange:e=>{e||le(null)},rowId:M?.rowId??``,column:M?.column??``,storeRef:l,value:M?.value,editable:!1})]})}function en(e){let t=[],n=new Set;for(let r of e)for(let e of Object.keys(r))n.has(e)||(n.add(e),t.push(e));return t}function $({label:e,icon:t,active:n=!1,disabled:a=!1,expanded:o,slot:s,onClick:c}){return(0,W.jsx)(E,{label:e,className:`flex self-stretch`,children:(0,W.jsx)(`button`,{type:`button`,"aria-label":e,"aria-pressed":n||void 0,"aria-expanded":o,disabled:a,"data-slot":s,onClick:c,className:i(m,n?h:_,a&&`pointer-events-none opacity-40`),children:(0,W.jsx)(r,{icon:t,className:`size-3.5`})})})}function tn(e,t){let n=-1/0,r=null;for(let i of e)i.replicaLagMs!=null&&i.effects.some(e=>t.has(e.resource))&&i.startedAt>=n&&(n=i.startedAt,r=i.replicaLagMs);return r}export{tt as A,B,dt as C,X as D,ut as E,V as F,M as H,fe as I,R as L,et as M,$e as N,it as O,Qe as P,ue as R,gt as S,Y as T,le as U,I as V,Pt as _,Xt as a,wt as b,zt as c,Bt as d,Vt as f,Nt as g,It as h,Zt as i,rt as j,nt as k,Q as l,Ft as m,$t as n,Kt as o,Lt as p,Wt as r,Ht as s,tn as t,Rt as u,Mt as v,at as w,Z as x,Tt as y,he as z};
@@ -0,0 +1 @@
1
+ import{A as e}from"./xyflow-yApv7D4e.js";import{$n as t,Qn as n}from"./shortcut-keys-DTE1sjTC.js";import{D as r,_ as i,c as a,f as o,x as s}from"./explorer-chrome-Dslh2yE8.js";import{o as c}from"./http-method-DdL19zzh.js";import{h as l,m as u,t as d}from"./element-icons-C6t8Vlml.js";import{d as f,i as p,u as m}from"./highlighted-json-D7nNzpgB.js";import{t as h}from"./UserIcon-DaE2PB5_.js";import{t as g}from"./UnavailableIcon-D9cvHVPr.js";var _=[[`path`,{d:`M13.5 13L17 9M14 15C14 16.1046 13.1046 17 12 17C10.8954 17 10 16.1046 10 15C10 13.8954 10.8954 13 12 13C13.1046 13 14 13.8954 14 15Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M6 12C6 8.68629 8.68629 6 12 6C13.0929 6 14.1175 6.29218 15 6.80269`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`1`}],[`path`,{d:`M2.50006 12.0001C2.50006 7.52172 2.50006 5.28255 3.8913 3.8913C5.28255 2.50006 7.52172 2.50006 12.0001 2.50006C16.4784 2.50006 18.7176 2.50006 20.1088 3.8913C21.5001 5.28255 21.5001 7.52172 21.5001 12.0001C21.5001 16.4784 21.5001 18.7176 20.1088 20.1088C18.7176 21.5001 16.4784 21.5001 12.0001 21.5001C7.52172 21.5001 5.28255 21.5001 3.8913 20.1088C2.50006 18.7176 2.50006 16.4784 2.50006 12.0001Z`,stroke:`currentColor`,strokeWidth:`1.5`,key:`2`}]],v=[[`path`,{d:`M16 16L11.6667 21.6535C11.1282 22.356 10.1188 21.9188 10.1188 20.9829V14.0301C10.1188 13.4695 9.72302 13.015 9.23474 13.015H5.88582C5.12506 13.015 4.71954 11.9851 5.22212 11.3294L7.7741 8`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M10 5.72714L12.4969 2.35038C13.0221 1.63999 14.0067 2.08215 14.0067 3.02843V10.059C14.0067 10.6258 14.3928 11.0854 14.8691 11.0854H18.1359C18.878 11.0854 19.2736 12.1268 18.7833 12.7898L17.8885 14`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`1`}],[`path`,{d:`M2 2L22 22`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`2`}]],y=[[`path`,{d:`M5.22576 11.3294L12.224 2.34651C12.7713 1.64397 13.7972 2.08124 13.7972 3.01707V9.96994C13.7972 10.5305 14.1995 10.985 14.6958 10.985H18.0996C18.8729 10.985 19.2851 12.0149 18.7742 12.6706L11.776 21.6535C11.2287 22.356 10.2028 21.9188 10.2028 20.9829V14.0301C10.2028 13.4695 9.80048 13.015 9.3042 13.015H5.90035C5.12711 13.015 4.71494 11.9851 5.22576 11.3294Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}]],b=[[`path`,{d:`M8.5 15.5C8.63206 15.9782 8.89835 16.5 9.59365 16.5C10.7968 16.5 11.0976 15.5 12 12C12.9024 8.5 13.2032 7.5 14.4064 7.5C15.1016 7.5 15.3679 8.02179 15.5 8.5M10.5417 10.75H14.4064`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,key:`0`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`1.5`,key:`1`}]],x=[[`path`,{d:`M2 11.4C2 10.2417 2.24173 10 3.4 10H20.6C21.7583 10 22 10.2417 22 11.4V12.6C22 13.7583 21.7583 14 20.6 14H3.4C2.24173 14 2 13.7583 2 12.6V11.4Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`0`}],[`path`,{d:`M2 3.4C2 2.24173 2.24173 2 3.4 2H20.6C21.7583 2 22 2.24173 22 3.4V4.6C22 5.75827 21.7583 6 20.6 6H3.4C2.24173 6 2 5.75827 2 4.6V3.4Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`1`}],[`path`,{d:`M2 19.4C2 18.2417 2.24173 18 3.4 18H20.6C21.7583 18 22 18.2417 22 19.4V20.6C22 21.7583 21.7583 22 20.6 22H3.4C2.24173 22 2 21.7583 2 20.6V19.4Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeWidth:`1.5`,key:`2`}]],S=e();function C(e){if(!e.startsWith(`mcp:`))return null;let t=e.slice(4),n=t.indexOf(`/`);return n<=0||n===t.length-1?null:{server:t.slice(0,n),tool:t.slice(n+1)}}function w(e){return`mcp:${e}`}var T={flow:{accent:`#38BDF8`,glow:`rgba(56, 189, 248, 0.45)`,well:`rgba(56, 189, 248, 0.14)`},signal:{accent:`#FBBF24`,glow:`rgba(251, 191, 36, 0.4)`,well:`rgba(251, 191, 36, 0.14)`},store:{accent:`#34D399`,glow:`rgba(52, 211, 153, 0.45)`,well:`rgba(52, 211, 153, 0.14)`},clock:{accent:`#818CF8`,glow:`rgba(129, 140, 248, 0.45)`,well:`rgba(129, 140, 248, 0.14)`},gate:{accent:`#A78BFA`,glow:`rgba(167, 139, 250, 0.45)`,well:`rgba(167, 139, 250, 0.14)`},vault:{accent:`#94A3B8`,glow:`rgba(148, 163, 184, 0.4)`,well:`rgba(148, 163, 184, 0.14)`},channel:{accent:`#C084FC`,glow:`rgba(192, 132, 252, 0.45)`,well:`rgba(192, 132, 252, 0.14)`},ai:{accent:`#FB7185`,glow:`rgba(251, 113, 133, 0.45)`,well:`rgba(251, 113, 133, 0.14)`}},E={reads:`#2DD4BF`,writes:`#FB923C`,emits:`#FBBF24`,calls:`#60A5FA`,asks:`#FB7185`,sends:`#C084FC`,secrets:`#94A3B8`,gates:`#A78BFA`,trigger:`#FBBF24`,couple:`#64748B`},D={flow:{width:188,height:52},store:{width:168,height:48},signal:{width:168,height:48},ai:{width:168,height:48},clock:{width:168,height:48},gate:{width:168,height:48},vault:{width:168,height:48},channel:{width:168,height:48}},O={law:{width:140,height:140},hub:{width:56,height:56},type:{width:64,height:26},unit:{width:128,height:40}},k={cx:900,cy:900,elementRing:280,typeRing:418,typeRow:88,spokeRing:840},A={headerH:26,padX:10,padBottom:10},j={edge:0,unit:1,leaf:2},M=[`http`,`signal`,`cron`,`every`,`cdc`,`internal`],N={http:{icon:c,label:`HTTP`,wellClass:`border-sky-500/35 bg-sky-500/10 text-sky-600 dark:text-sky-400`},signal:{icon:d.signal.icon,label:`Signal`,wellClass:`border-amber-500/35 bg-amber-500/10 text-amber-700 dark:text-amber-400`},cron:{icon:f,label:`Cron`,wellClass:`border-violet-500/35 bg-violet-500/10 text-violet-700 dark:text-violet-400`},every:{icon:m,label:`Every`,wellClass:`border-teal-500/35 bg-teal-500/10 text-teal-700 dark:text-teal-400`},cdc:{icon:d.store.icon,label:`CDC`,wellClass:`border-emerald-500/35 bg-emerald-500/10 text-emerald-700 dark:text-emerald-400`},internal:{icon:b,label:`Call-only`,wellClass:`border-zinc-500/35 bg-zinc-500/10 text-zinc-600 dark:text-zinc-400`}};function P(e){return e?.http?`http`:e?.signal?`signal`:e?.cron?`cron`:e?.every?`every`:e?.cdc?`cdc`:`internal`}function F(e){let t=P(e),n=N[t],r=null;return t===`http`&&e?.http?r=`${e.http.method} ${e.http.path}`:t===`signal`&&e?.signal?r=e.signal:t===`cron`&&e?.cron?r=e.cron:t===`every`&&e?.every?r=e.every:t===`cdc`&&e?.cdc&&(r=e.cdc.table),{kind:t,icon:n.icon,label:n.label,detail:r,wellClass:n.wellClass}}var ee={policy:u,scope:l,rate:_,public:h};function I(e,t,n){return t===`rate`||e.startsWith(`rate:`)?`rate`:e===`public`?`public`:(n?.length??0)>0?`scope`:t===`policy`||t===`all`?`policy`:null}function L(e){return e?ee[e]:u}function R(e,t){let n=t?.gates;return e.map(e=>{let t=n?.[e];return{name:e,kind:t?.kind??null,variant:I(e,t?.kind,t?.scopes),description:t?.description??null}})}var z=`#A78BFA`;function B({gate:e}){let n=e.variant??`undeclared`,r=[e.variant,e.description].filter(Boolean).join(` · `)||`undeclared`;return(0,S.jsxs)(`li`,{className:i,title:r,"data-slot":`trace-gate-row`,children:[(0,S.jsx)(t,{icon:L(e.variant),className:o,style:{color:z},"aria-hidden":!0}),(0,S.jsxs)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,children:[(0,S.jsx)(`span`,{className:`text-muted-foreground`,children:n}),(0,S.jsxs)(`span`,{className:`text-foreground/90`,children:[` `,e.name]})]})]})}function V({gates:e,heading:t=`Gates`}){return e.length===0?null:(0,S.jsxs)(`section`,{className:`flex flex-col`,"data-slot":`gate-list`,"aria-label":t,children:[(0,S.jsxs)(`div`,{className:s,children:[(0,S.jsx)(`h3`,{className:n(r,`flex items-center px-2`),children:t}),(0,S.jsx)(`span`,{className:n(a,`flex items-center`),children:e.length})]}),(0,S.jsx)(`ul`,{children:e.map(e=>(0,S.jsx)(B,{gate:e},e.name))})]})}var H={read:`Read`,write:`Write`,emit:`Emit`,send:`Send`,ask:`Ask`,embed:`Embed`,secret:`Secret`,call:`Call`,fetch:`Fetch`,decide:`Decide`};function U(e,t){return`${t} ${t===1?{read:`read`,write:`write`,emit:`emit`,send:`send`,ask:`ask`,embed:`embed`,secret:`secret`,call:`call`,fetch:`fetch`,decide:`decide`}[e]:{read:`reads`,write:`writes`,emit:`emits`,send:`sends`,ask:`asks`,embed:`embeds`,secret:`secrets`,call:`calls`,fetch:`fetches`,decide:`decides`}[e]}`}function W(e){switch(e){case`read`:return E.reads;case`write`:return E.writes;case`emit`:return E.emits;case`call`:return E.calls;case`ask`:case`embed`:return E.asks;case`send`:case`fetch`:return E.sends;case`decide`:return E.asks;case`secret`:return E.secrets}}function G(e,t){if(t&&C(t))return d.ai.icon;switch(e){case`read`:case`write`:return d.store.icon;case`emit`:return d.signal.icon;case`call`:return d.flow.icon;case`ask`:case`embed`:case`decide`:return d.ai.icon;case`send`:case`fetch`:return d.channel.icon;case`secret`:return d.vault.icon}}var K=[`read`,`write`,`emit`,`call`,`ask`,`embed`,`send`,`fetch`,`decide`,`secret`];function q(e){return e.startsWith(`sql:`)}function J(e){return e.startsWith(`computed:`)}function Y(e){let t=[{key:`duration`,label:p(e.durationMs),shortLabel:p(e.durationMs),variant:`duration`,detail:`Handler duration from the run ledger (${p(e.durationMs)}).`}];e.trigger===`http`&&t.push({key:`api`,label:`1 API call`,shortLabel:`1 API`,variant:`api`,detail:`HTTP trigger invocation for this run (not counted as an effect).`});let n=e.gates.length;n>0&&t.push({key:`gates`,label:`${n} ${n===1?`gate`:`gates`}`,shortLabel:`${n} gate${n===1?``:`s`}`,variant:`gate`,detail:`Evaluated on this run: ${e.gates.join(`, `)}.`});let r=e.effects.filter(e=>J(e.resource)).length;r>0&&t.push({key:`cache`,label:`${r} cache ${r===1?`read`:`reads`}`,shortLabel:`${r} cache`,variant:`cache`,detail:`${r} effect${r===1?``:`s`} targeting computed:… cache keys.`});let i=e.effects.filter(e=>q(e.resource)).length;i>0&&t.push({key:`db`,label:`${i} DB ${i===1?`query`:`queries`}`,shortLabel:`${i} DB`,variant:`db`,detail:`${i} effect${i===1?``:`s`} targeting sql:… store resources.`});let a=te(e.effects);for(let e of K){let n=a.get(e)??0;n!==0&&t.push({key:e,label:U(e,n),shortLabel:U(e,n),variant:e,detail:`${n} non-SQL ${e} effect${n===1?``:`s`} on the run ledger.`})}let o=e.logs.length;return o>0&&t.push({key:`logs`,label:`${o} log ${o===1?`line`:`lines`}`,shortLabel:`${o} log${o===1?``:`s`}`,variant:`logs`,detail:`${o} ${o===1?`entry`:`entries`} in run.logs.`}),t}function X(e){let t=C(e);return t?`Call ${t.server} → ${t.tool}`:null}function Z(e){return C(e)!==null}function Q(e,t){let n=e.resource.split(`@`)[0]??e.resource;return e.kind===`decide`?`/flows/decisions?decision=${encodeURIComponent(n)}`:e.kind===`ask`||e.kind===`call`&&t.has(n)?e.agentRunId?`/observability?view=ai&agentRun=${encodeURIComponent(e.agentRunId)}`:`/observability?view=ai&q=${encodeURIComponent(n)}`:null}function $(e){return J(e.resource)?`Cache read`:q(e.resource)?e.kind===`write`?`DB write`:`DB query`:e.kind===`call`&&Z(e.resource)?`MCP call`:{read:`Read`,write:`Write`,emit:`Emit`,send:`Send`,ask:`Ask`,embed:`Embed`,secret:`Secret`,call:`Call`,fetch:`Fetch`,decide:`Decide`}[e.kind]}function te(e){let t=new Map;for(let n of e)q(n.resource)||J(n.resource)||t.set(n.kind,(t.get(n.kind)??0)+1);return t}function ne(e){switch(e){case`hit`:return{icon:y,label:`Cache hit`,className:`text-sky-500 dark:text-sky-400`};case`miss`:return{icon:v,label:`Cache miss`,className:`text-amber-600 dark:text-amber-400`};case`none`:return{icon:g,label:`Cache not applicable`,className:`text-muted-foreground/40`}}}function re(e,t,n){let r=e?.flows?.[t],i=r?.trigger;return i?.http?{method:i.http.method,path:i.http.path,headline:`${i.http.method} ${i.http.path}`}:i?.signal?{method:null,path:null,headline:`Signal · ${i.signal}`}:i?.cron?{method:null,path:null,headline:`Cron · ${i.cron}`}:i?.every?{method:null,path:null,headline:`Every · ${i.every}`}:i?.cdc?{method:null,path:null,headline:`CDC · ${i.cdc.table}`}:n===`http`?{method:null,path:null,headline:`HTTP`}:n===`internal`||!r?.trigger?{method:null,path:null,headline:`Call-only`}:{method:null,path:null,headline:n}}export{w as C,y as E,A as S,x as T,j as _,Y as a,T as b,W as c,R as d,M as f,E as g,F as h,$ as i,G as l,P as m,ne as n,X as o,N as p,Q as r,H as s,re as t,V as u,k as v,C as w,D as x,O as y};