okengine 0.14.1 → 0.15.2

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 (205) hide show
  1. package/package.json +3 -4
  2. package/site/content/docs/elements/ai.mdx +2 -1
  3. package/site/content/docs/elements/channel.mdx +1 -0
  4. package/site/content/docs/elements/clock.mdx +3 -0
  5. package/site/content/docs/elements/flow.mdx +3 -0
  6. package/site/content/docs/elements/gate.mdx +25 -22
  7. package/site/content/docs/elements/signal.mdx +4 -4
  8. package/site/content/docs/elements/store.mdx +86 -27
  9. package/site/content/docs/elements/vault.mdx +1 -0
  10. package/site/content/docs/get-started/basic-usage.mdx +22 -13
  11. package/site/content/docs/get-started/index.mdx +5 -0
  12. package/site/content/docs/get-started/introduction.mdx +11 -3
  13. package/site/content/docs/get-started/meta.json +1 -1
  14. package/site/content/docs/get-started/project-structure.mdx +932 -0
  15. package/site/content/docs/reference/cli.md +13 -10
  16. package/site/content/docs/reference/client.mdx +25 -21
  17. package/site/content/docs/reference/security.md +1 -1
  18. package/src/auth/bindings.ts +14 -5
  19. package/src/auth/cross-plane.ts +10 -3
  20. package/src/cli/ai-setup/ai-setup.test.ts +62 -0
  21. package/src/cli/ai-setup/apply.ts +32 -1
  22. package/src/cli/attach-host-console.test.ts +3 -2
  23. package/src/cli/attach-host-console.ts +3 -0
  24. package/src/cli/build.test.ts +4 -2
  25. package/src/cli/db-seed.ts +48 -15
  26. package/src/cli/db.test.ts +104 -0
  27. package/src/cli/db.ts +122 -10
  28. package/src/cli/dev-controls.test.ts +20 -0
  29. package/src/cli/dev-controls.ts +13 -0
  30. package/src/cli/dev.test.ts +15 -4
  31. package/src/cli/dev.ts +102 -29
  32. package/src/cli/ensure-drizzle-config.ts +2 -1
  33. package/src/cli/tui/DevLive.tsx +12 -2
  34. package/src/cli/tui/keys.test.ts +2 -1
  35. package/src/cli/tui/keys.ts +3 -2
  36. package/src/compiler/aot.test.ts +1 -1
  37. package/src/compiler/extract.test.ts +409 -33
  38. package/src/compiler/extract.ts +318 -67
  39. package/src/compiler/flow-path.test.ts +96 -0
  40. package/src/compiler/flow-path.ts +173 -0
  41. package/src/compiler/generate-adopt.test.ts +112 -3
  42. package/src/compiler/generate-adopt.ts +280 -26
  43. package/src/compiler/schema-from-ast.ts +609 -0
  44. package/src/console/server/bind.ts +2 -2
  45. package/src/console/server/console.test.ts +3 -0
  46. package/src/console/server/flows.ts +120 -40
  47. package/src/console/server/invoke-user-flow.test.ts +3 -1
  48. package/src/console/server/invoke-user-flow.ts +17 -2
  49. package/src/console/server/iso-at.test.ts +9 -0
  50. package/src/console/server/iso-at.ts +11 -0
  51. package/src/console/server/security-headers.ts +6 -3
  52. package/src/console/server/spa-proxy.test.ts +1 -0
  53. package/src/console/server/sql-catalog.ts +147 -7
  54. package/src/console/server/sql-rls.test.ts +16 -0
  55. package/src/console/server/state.ts +8 -0
  56. package/src/console/server/store.test.ts +7 -4
  57. package/src/console/server/store.ts +142 -58
  58. package/src/console/ui-next/dist/assets/agent-disclosure-C0X1fbWF.js +1 -0
  59. package/src/console/ui-next/dist/assets/{cache-glyph-BanhLsEY.js → cache-glyph-F1FI122b.js} +1 -1
  60. package/src/console/ui-next/dist/assets/{call-pii-button-bqkxMrJH.js → call-pii-button-DEDCl_j3.js} +1 -1
  61. package/src/console/ui-next/dist/assets/collapsible-LPqGvfoz.js +1 -0
  62. package/src/console/ui-next/dist/assets/{confirm-sheet-DDCRmG62.js → confirm-sheet-3ptDzXbz.js} +1 -1
  63. package/src/console/ui-next/dist/assets/{duration-tone-oiRxPVsZ.js → duration-tone-sC3lGABz.js} +1 -1
  64. package/src/console/ui-next/dist/assets/{explorer-empty-HjTnVQoR.js → explorer-empty-BvYrygyO.js} +1 -1
  65. package/src/console/ui-next/dist/assets/flows-page-Dluo1Bd7.js +1 -0
  66. package/src/console/ui-next/dist/assets/{highlighted-json-CvDPvveV.js → highlighted-json-CS_O8L-r.js} +1 -1
  67. package/src/console/ui-next/dist/assets/http-method--sWDdXSB.js +1 -0
  68. package/src/console/ui-next/dist/assets/index-Ca3HZMVq.js +66 -0
  69. package/src/console/ui-next/dist/assets/index-UtTDRQpS.css +2 -0
  70. package/src/console/ui-next/dist/assets/{link-DF7SZ9Ek.js → link-COeyggt-.js} +1 -1
  71. package/src/console/ui-next/dist/assets/{observability-page-BEZDzyYh.js → observability-page-HK9-BO8z.js} +2 -2
  72. package/src/console/ui-next/dist/assets/react-D8E3mtu1.js +1 -0
  73. package/src/console/ui-next/dist/assets/replica-lag-DBIFFf7d.js +18 -0
  74. package/src/console/ui-next/dist/assets/sheet-form-Dnwa5oOR.js +1 -0
  75. package/src/console/ui-next/dist/assets/shortcut-keys-CoqwEIi0.js +1 -0
  76. package/src/console/ui-next/dist/assets/skeleton-BHcfDYcb.js +1 -0
  77. package/src/console/ui-next/dist/assets/store-page-BSohH3wM.js +41 -0
  78. package/src/console/ui-next/dist/assets/trace-detail-sheet-CFIGRnnA.js +2 -0
  79. package/src/console/ui-next/dist/assets/tree-expand-toggle-BgLl34w7.js +54 -0
  80. package/src/console/ui-next/dist/assets/units-page-B0cFE76A.js +1 -0
  81. package/src/console/ui-next/dist/assets/{use-vault-list-Cl79j_ku.js → use-vault-list-BLbZhzyF.js} +1 -1
  82. package/src/console/ui-next/dist/assets/vault-page-B1SbYe10.js +2 -0
  83. package/src/console/ui-next/dist/index.html +6 -6
  84. package/src/console/ui-next/src/client.ts +35 -7
  85. package/src/console/ui-next/src/components/motion/table/index.tsx +16 -0
  86. package/src/console/ui-next/src/components/motion/table/types.ts +4 -0
  87. package/src/console/ui-next/src/components/ui/kbd.tsx +2 -2
  88. package/src/console/ui-next/src/features/flows/traces/http-method.ts +19 -0
  89. package/src/console/ui-next/src/features/flows/traces/trace-detail.test.ts +19 -1
  90. package/src/console/ui-next/src/features/flows/traces/traces-pane.tsx +10 -3
  91. package/src/console/ui-next/src/features/store/detail/browse-section.tsx +45 -1
  92. package/src/console/ui-next/src/features/store/detail/resource-panel.tsx +78 -16
  93. package/src/console/ui-next/src/features/store/detail/store-row-detail-sheet.tsx +155 -14
  94. package/src/console/ui-next/src/features/store/explorer/store-tree.tsx +33 -133
  95. package/src/console/ui-next/src/features/store/files/file-preview.tsx +4 -1
  96. package/src/console/ui-next/src/features/store/grid/rls-policy-sheet.tsx +326 -165
  97. package/src/console/ui-next/src/features/store/grid/sql-insert-sheet.tsx +6 -0
  98. package/src/console/ui-next/src/features/store/grid/store-data-grid.tsx +50 -3
  99. package/src/console/ui-next/src/features/store/lib/files-meta.test.ts +3 -0
  100. package/src/console/ui-next/src/features/store/lib/files-meta.ts +12 -0
  101. package/src/console/ui-next/src/features/store/lib/query-defaults.test.ts +25 -0
  102. package/src/console/ui-next/src/features/store/lib/query-defaults.ts +85 -3
  103. package/src/console/ui-next/src/features/store/lib/query-gate.ts +30 -4
  104. package/src/console/ui-next/src/features/store/lib/rls-policy.test.ts +139 -0
  105. package/src/console/ui-next/src/features/store/lib/rls-policy.ts +223 -21
  106. package/src/console/ui-next/src/features/store/lib/schema-graph.ts +4 -0
  107. package/src/console/ui-next/src/features/store/lib/sql-catalog.test.ts +24 -0
  108. package/src/console/ui-next/src/features/store/lib/sql-catalog.ts +19 -0
  109. package/src/console/ui-next/src/features/store/lib/store-tree.test.ts +6 -0
  110. package/src/console/ui-next/src/features/store/lib/store-tree.ts +13 -0
  111. package/src/console/ui-next/src/features/store/query/query-console.tsx +48 -14
  112. package/src/console/ui-next/src/features/store/query/query-gate-menu.tsx +19 -20
  113. package/src/console/ui-next/src/features/store/query/query-gate-parts.tsx +2 -1
  114. package/src/console/ui-next/src/features/store/query/query-results.tsx +110 -83
  115. package/src/console/ui-next/src/features/store/schema/schema-table-node.tsx +17 -0
  116. package/src/console/ui-next/src/features/units/call/call-api-panel.tsx +112 -72
  117. package/src/console/ui-next/src/features/units/lib/contract-input.test.ts +206 -1
  118. package/src/console/ui-next/src/features/units/lib/contract-input.ts +55 -0
  119. package/src/console/ui-next/src/features/vault/lib/types.ts +1 -1
  120. package/src/docker/compose-health.test.ts +27 -0
  121. package/src/docker/compose-health.ts +19 -3
  122. package/src/docker/docker.test.ts +3 -0
  123. package/src/docker/recipes/pgdog.ts +2 -0
  124. package/src/drivers/clock-postgres.ts +13 -9
  125. package/src/drivers/instances-postgres.ts +4 -6
  126. package/src/drivers/journal-postgres.ts +13 -9
  127. package/src/drivers/pg-rls.test.ts +87 -0
  128. package/src/drivers/pg-rls.ts +233 -7
  129. package/src/drivers/pglite.ts +26 -3
  130. package/src/drivers/postgres.test.ts +23 -0
  131. package/src/drivers/postgres.ts +133 -9
  132. package/src/drivers/types.ts +10 -0
  133. package/src/elements/clock/declare.ts +26 -1
  134. package/src/elements/gate/boot.ts +5 -5
  135. package/src/elements/gate/declare.ts +36 -4
  136. package/src/elements/gate/flatten.ts +1 -1
  137. package/src/elements/gate/runtime.ts +1 -1
  138. package/src/elements/store/declare.ts +9 -6
  139. package/src/elements/store/emit-drizzle.ts +44 -8
  140. package/src/elements/store/resource.test.ts +1 -1
  141. package/src/elements/store/rls-identity.test.ts +95 -0
  142. package/src/elements/store/rls-identity.ts +116 -0
  143. package/src/elements/store/runtime.ts +4 -0
  144. package/src/elements/store/schema-decl.test.ts +37 -0
  145. package/src/elements/store/schema-decl.ts +161 -0
  146. package/src/elements/store/seed.ts +1 -1
  147. package/src/elements/store/sql-condition.test.ts +12 -0
  148. package/src/elements/store/sql-condition.ts +26 -2
  149. package/src/elements/store/sql-rls-isolation.test.ts +165 -0
  150. package/src/elements/store/sql-rls-stamp.test.ts +117 -0
  151. package/src/elements/store/sql-session.ts +81 -3
  152. package/src/elements/store/upsert-app.test.ts +1 -1
  153. package/src/elements/store.ts +14 -0
  154. package/src/http.ts +20 -3
  155. package/src/index.ts +10 -1
  156. package/src/kernel/adopt-barrel-fresh.test.ts +1 -1
  157. package/src/kernel/adopt-routes.ts +30 -2
  158. package/src/kernel/app.ts +131 -14
  159. package/src/kernel/auto-cache.test.ts +8 -8
  160. package/src/kernel/auto-registry.test.ts +49 -9
  161. package/src/kernel/boot.test.ts +4 -4
  162. package/src/kernel/boot.ts +2 -2
  163. package/src/kernel/effects-stamping.test.ts +3 -3
  164. package/src/kernel/element-registries.ts +12 -5
  165. package/src/kernel/errors.ts +24 -0
  166. package/src/kernel/flow-units.ts +64 -0
  167. package/src/kernel/flow.ts +29 -17
  168. package/src/kernel/fx.ts +23 -0
  169. package/src/kernel/horizontal-child.ts +4 -4
  170. package/src/kernel/http-path-pending.ts +20 -0
  171. package/src/kernel/http-resource.ts +4 -0
  172. package/src/kernel/http-stream.test.ts +4 -4
  173. package/src/kernel/pipeline.test.ts +2 -2
  174. package/src/kernel/plugin-elements.test.ts +1 -1
  175. package/src/kernel/plugin-needs.test.ts +1 -1
  176. package/src/kernel/ready.test.ts +2 -2
  177. package/src/kernel/resource-mount.test.ts +14 -0
  178. package/src/kernel/run-duration.test.ts +2 -2
  179. package/src/kernel/stamp-http.test.ts +79 -0
  180. package/src/kernel/stamp-http.ts +75 -0
  181. package/src/kernel/triggers.ts +52 -27
  182. package/src/manifest/types.ts +13 -0
  183. package/src/release/measure.ts +2 -2
  184. package/src/runtime/json-code-block.test.ts +2 -2
  185. package/src/runtime/serve.test.ts +4 -4
  186. package/src/term.test.ts +52 -4
  187. package/src/term.ts +125 -17
  188. package/src/test/reset-element-registries.ts +8 -3
  189. package/src/cli/ask-seed.test.ts +0 -96
  190. package/src/cli/ask-seed.ts +0 -82
  191. package/src/console/ui-next/dist/assets/collapsible-DYb0xU8C.js +0 -1
  192. package/src/console/ui-next/dist/assets/flows-page-DxDsOd4f.js +0 -1
  193. package/src/console/ui-next/dist/assets/http-method-CJCBYL2j.js +0 -1
  194. package/src/console/ui-next/dist/assets/index-Ce6WKWKM.js +0 -66
  195. package/src/console/ui-next/dist/assets/index-D4Ldtj79.css +0 -2
  196. package/src/console/ui-next/dist/assets/query-gate-parts-1m8m1iNp.js +0 -2
  197. package/src/console/ui-next/dist/assets/react-B1ML8gxg.js +0 -1
  198. package/src/console/ui-next/dist/assets/replica-lag-C8_BRt2x.js +0 -18
  199. package/src/console/ui-next/dist/assets/sheet-form-D-ata7jy.js +0 -1
  200. package/src/console/ui-next/dist/assets/shortcut-keys-DO4IsVqv.js +0 -1
  201. package/src/console/ui-next/dist/assets/skeleton-CL_X0GCj.js +0 -1
  202. package/src/console/ui-next/dist/assets/store-page-v3LXdYpr.js +0 -45
  203. package/src/console/ui-next/dist/assets/trace-detail-sheet-DFLFfUUX.js +0 -2
  204. package/src/console/ui-next/dist/assets/units-page-C0gW6Kdo.js +0 -1
  205. package/src/console/ui-next/dist/assets/vault-page-DuKzqwzW.js +0 -2
@@ -0,0 +1 @@
1
+ import{Hi as e,Li as t,Or as n,Sr as r,Tr as i,Ui as a,Wi as o,Zr as s,bi as c,di as l,ei as u,fr as d,gr as f,hi as p,jr as m,la as h,li as g,na as ee,ni as te,ra as ne,ri as _,rr as v,sa as y,sr as b,ui as x,wr as S,zr as C}from"./shortcut-keys-CoqwEIi0.js";import{A as w}from"./xyflow-D7n4g6go.js";import{d as T}from"./collapsible-LPqGvfoz.js";import{i as E}from"./highlighted-json-CS_O8L-r.js";var D=w();function O(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 k(e){return`mcp:${e}`}var A={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)`}},j={reads:`#2DD4BF`,writes:`#FB923C`,emits:`#FBBF24`,calls:`#60A5FA`,asks:`#FB7185`,sends:`#C084FC`,secrets:`#94A3B8`,gates:`#A78BFA`,trigger:`#FBBF24`,couple:`#64748B`},M={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}},N={law:{width:140,height:140},hub:{width:56,height:56},type:{width:64,height:26},unit:{width:128,height:40}},P={cx:900,cy:900,elementRing:280,typeRing:418,typeRow:88,spokeRing:840},F={headerH:26,padX:10,padBottom:10},I={edge:0,unit:1,leaf:2},L=[`http`,`signal`,`cron`,`every`,`cdc`,`internal`],R={http:{icon:m,label:`HTTP`,wellClass:`border-sky-500/35 bg-sky-500/10 text-sky-600 dark:text-sky-400`},signal:{icon:T.signal.icon,label:`Signal`,wellClass:`border-amber-500/35 bg-amber-500/10 text-amber-700 dark:text-amber-400`},cron:{icon:C,label:`Cron`,wellClass:`border-violet-500/35 bg-violet-500/10 text-violet-700 dark:text-violet-400`},every:{icon:ee,label:`Every`,wellClass:`border-teal-500/35 bg-teal-500/10 text-teal-700 dark:text-teal-400`},cdc:{icon:T.store.icon,label:`CDC`,wellClass:`border-emerald-500/35 bg-emerald-500/10 text-emerald-700 dark:text-emerald-400`},internal:{icon:p,label:`Call-only`,wellClass:`border-zinc-500/35 bg-zinc-500/10 text-zinc-600 dark:text-zinc-400`}};function z(e){return e?.http?`http`:e?.signal?`signal`:e?.cron?`cron`:e?.every?`every`:e?.cdc?`cdc`:`internal`}function B(e){let t=z(e),n=R[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 re={policy:a,scope:c,rate:s,flag:g,public:y};function V(e,t,n){return t===`rate`||e.startsWith(`rate:`)?`rate`:e.startsWith(`flag:`)?`flag`:e===`public`?`public`:(n?.length??0)>0?`scope`:t===`policy`||t===`all`?`policy`:null}function H(e){return e?re[e]:a}function U(e,t){let n=t?.gates;return e.map(e=>{let t=n?.[e];return{name:e,kind:t?.kind??null,variant:V(e,t?.kind,t?.scopes),description:t?.description??null}})}var W=`#A78BFA`;function G({gate:e}){let t=e.variant??`undeclared`,n=[e.variant,e.description].filter(Boolean).join(` · `)||`undeclared`;return(0,D.jsxs)(`li`,{className:d,title:n,"data-slot":`trace-gate-row`,children:[(0,D.jsx)(i,{icon:H(e.variant),className:b,style:{color:W},"aria-hidden":!0}),(0,D.jsxs)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,children:[(0,D.jsx)(`span`,{className:`text-muted-foreground`,children:t}),(0,D.jsxs)(`span`,{className:`text-foreground/90`,children:[` `,e.name]})]})]})}function K({gates:e,heading:t=`Gates`}){return e.length===0?null:(0,D.jsxs)(`section`,{className:`flex flex-col`,"data-slot":`gate-list`,"aria-label":t,children:[(0,D.jsxs)(`div`,{className:f,children:[(0,D.jsx)(`h3`,{className:S(r,`flex items-center px-2`),children:t}),(0,D.jsx)(`span`,{className:S(v,`flex items-center`),children:e.length})]}),(0,D.jsx)(`ul`,{children:e.map(e=>(0,D.jsx)(G,{gate:e},e.name))})]})}var q={read:`Read`,write:`Write`,emit:`Emit`,send:`Send`,ask:`Ask`,secret:`Secret`,call:`Call`};function J(e,t){return`${t} ${t===1?{read:`read`,write:`write`,emit:`emit`,send:`send`,ask:`ask`,secret:`secret`,call:`call`}[e]:{read:`reads`,write:`writes`,emit:`emits`,send:`sends`,ask:`asks`,secret:`secrets`,call:`calls`}[e]}`}function Y(e){switch(e){case`read`:return j.reads;case`write`:return j.writes;case`emit`:return j.emits;case`call`:return j.calls;case`ask`:return j.asks;case`send`:return j.sends;case`secret`:return j.secrets}}function X(e,t){if(t&&O(t))return T.ai.icon;switch(e){case`read`:case`write`:return T.store.icon;case`emit`:return T.signal.icon;case`call`:return T.flow.icon;case`ask`:return T.ai.icon;case`send`:return T.channel.icon;case`secret`:return T.vault.icon}}var ie=[`read`,`write`,`emit`,`call`,`ask`,`send`,`secret`];function Z(e){return e.startsWith(`sql:`)}function Q(e){return e.startsWith(`computed:`)}function ae(e){let t=[{key:`duration`,label:E(e.durationMs),shortLabel:E(e.durationMs),variant:`duration`,detail:`Handler duration from the run ledger (${E(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=>Q(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=>Z(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=le(e.effects);for(let e of ie){let n=a.get(e)??0;n!==0&&t.push({key:e,label:J(e,n),shortLabel:J(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 oe(e){let t=O(e);return t?`Call ${t.server} → ${t.tool}`:null}function se(e){return O(e)!==null}function ce(e){return Q(e.resource)?`Cache read`:Z(e.resource)?e.kind===`write`?`DB write`:`DB query`:e.kind===`call`&&se(e.resource)?`MCP call`:{read:`Read`,write:`Write`,emit:`Emit`,send:`Send`,ask:`Ask`,secret:`Secret`,call:`Call`}[e.kind]}function le(e){let t=new Map;for(let n of e)Z(n.resource)||Q(n.resource)||t.set(n.kind,(t.get(n.kind)??0)+1);return t}function $(e){switch(e){case`hit`:return{icon:x,label:`Cache hit`,className:`text-sky-500 dark:text-sky-400`};case`miss`:return{icon:l,label:`Cache miss`,className:`text-amber-600 dark:text-amber-400`};case`none`:return{icon:ne,label:`Cache not applicable`,className:`text-muted-foreground/40`}}}function ue(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}}function de(e){switch((e??``).toUpperCase()){case`GET`:case`HEAD`:case`DELETE`:return!1;default:return!0}}function fe(e){switch((e??``).toUpperCase()){case`GET`:return 0;case`POST`:return 1;case`QUERY`:return 2;case`PUT`:case`PATCH`:return 3;case`DELETE`:return 4;case`HEAD`:return 5;case`OPTIONS`:return 6;default:return e?7:8}}function pe(r){switch(r.toUpperCase()){case`GET`:return h;case`QUERY`:return e;case`POST`:return n;case`PUT`:return te;case`PATCH`:return t;case`DELETE`:return u;case`HEAD`:return _;case`OPTIONS`:return o;default:return m}}function me(e){switch(e.toUpperCase()){case`GET`:return`border-emerald-500/35 bg-emerald-500/15 text-emerald-700 dark:text-emerald-400`;case`POST`:return`border-sky-500/35 bg-sky-500/15 text-sky-700 dark:text-sky-400`;case`PUT`:return`border-amber-500/35 bg-amber-500/15 text-amber-800 dark:text-amber-400`;case`PATCH`:return`border-violet-500/35 bg-violet-500/15 text-violet-700 dark:text-violet-400`;case`DELETE`:return`border-rose-500/35 bg-rose-500/15 text-rose-700 dark:text-rose-400`;case`HEAD`:return`border-slate-500/35 bg-slate-500/15 text-slate-700 dark:text-slate-300`;case`OPTIONS`:return`border-zinc-500/35 bg-zinc-500/15 text-zinc-700 dark:text-zinc-300`;case`QUERY`:return`border-emerald-500/35 bg-emerald-500/15 text-emerald-700 dark:text-emerald-400`;default:return`border-border bg-muted text-muted-foreground`}}function he(e){switch(e.toUpperCase()){case`GET`:return`bg-emerald-500`;case`POST`:return`bg-sky-500`;case`PUT`:return`bg-amber-500`;case`PATCH`:return`bg-violet-500`;case`DELETE`:return`bg-rose-500`;case`HEAD`:return`bg-slate-400`;case`OPTIONS`:return`bg-zinc-400`;case`QUERY`:return`bg-emerald-500`;default:return`bg-muted-foreground`}}export{N as C,k as D,F as E,O,P as S,M as T,R as _,fe as a,j as b,ce as c,q as d,Y as f,L as g,U as h,he as i,ae as l,K as m,de as n,ue as o,X as p,pe as r,$ as s,me as t,oe as u,z as v,A as w,I as x,B as y};