okengine 0.15.2 → 0.16.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 (141) hide show
  1. package/package.json +1 -1
  2. package/site/content/docs/elements/flow.mdx +6 -0
  3. package/site/content/docs/elements/gate.mdx +55 -0
  4. package/site/content/docs/elements/store.mdx +13 -15
  5. package/site/content/docs/elements/vault.mdx +3 -0
  6. package/site/content/docs/reference/client.mdx +3 -0
  7. package/site/content/docs/reference/fx.mdx +29 -18
  8. package/site/content/docs/reference/security.md +1 -1
  9. package/src/auth/api-key-sql.test.ts +47 -0
  10. package/src/auth/api-key-sql.ts +254 -0
  11. package/src/auth/api-keys.ts +273 -14
  12. package/src/auth/auth.test.ts +56 -0
  13. package/src/auth/config.ts +5 -5
  14. package/src/auth/index.ts +25 -1
  15. package/src/auth/schema.ts +8 -0
  16. package/src/cli/attach-host-console.test.ts +37 -0
  17. package/src/cli/attach-host-console.ts +6 -0
  18. package/src/compiler/effects-infer.ts +17 -2
  19. package/src/console/server/access.test.ts +116 -8
  20. package/src/console/server/access.ts +70 -23
  21. package/src/console/server/app.ts +1 -0
  22. package/src/console/server/dev-identities.test.ts +127 -0
  23. package/src/console/server/dev-identities.ts +229 -0
  24. package/src/console/server/flows-invoke.test.ts +21 -4
  25. package/src/console/server/flows.ts +113 -58
  26. package/src/console/server/gates.test.ts +24 -0
  27. package/src/console/server/gates.ts +8 -21
  28. package/src/console/server/index.ts +1 -0
  29. package/src/console/server/live.test.ts +26 -1
  30. package/src/console/server/live.ts +4 -2
  31. package/src/console/server/operator-db.ts +2 -0
  32. package/src/console/server/state.ts +29 -55
  33. package/src/console/ui-next/dist/assets/access-page-CAGHrA9H.js +4 -0
  34. package/src/console/ui-next/dist/assets/{agent-disclosure-C0X1fbWF.js → agent-disclosure-BP0Y0Sux.js} +1 -1
  35. package/src/console/ui-next/dist/assets/cache-glyph-B5X-NM0-.js +1 -0
  36. package/src/console/ui-next/dist/assets/call-pii-button-ChAUiLo9.js +1 -0
  37. package/src/console/ui-next/dist/assets/collapsible-DGnOM2ph.js +1 -0
  38. package/src/console/ui-next/dist/assets/copy-inline-button-DBHhgHKP.js +1 -0
  39. package/src/console/ui-next/dist/assets/detail-header-DhHM1iaZ.js +1 -0
  40. package/src/console/ui-next/dist/assets/dropdown-menu-_NjTEo5_.js +1 -0
  41. package/src/console/ui-next/dist/assets/element-icons-BVXtRyd3.js +1 -0
  42. package/src/console/ui-next/dist/assets/explorer-empty-2uIhBu0_.js +1 -0
  43. package/src/console/ui-next/dist/assets/flows-page-B-OUtiAu.js +1 -0
  44. package/src/console/ui-next/dist/assets/{highlighted-json-CS_O8L-r.js → highlighted-json-Awq7gYdu.js} +1 -1
  45. package/src/console/ui-next/dist/assets/http-method-_UHM2ODJ.js +1 -0
  46. package/src/console/ui-next/dist/assets/index-CGoZkILK.js +66 -0
  47. package/src/console/ui-next/dist/assets/index-Ck88Jmv8.css +2 -0
  48. package/src/console/ui-next/dist/assets/link-BX6Vqztd.js +1 -0
  49. package/src/console/ui-next/dist/assets/observability-page-BDyXalNR.js +4 -0
  50. package/src/console/ui-next/dist/assets/replica-lag-DKRrbvdo.js +18 -0
  51. package/src/console/ui-next/dist/assets/request-meta-DV0ywz7t.js +1 -0
  52. package/src/console/ui-next/dist/assets/shortcut-JQIZlWfm.js +1 -0
  53. package/src/console/ui-next/dist/assets/shortcut-keys-DKxNTe_m.js +1 -0
  54. package/src/console/ui-next/dist/assets/skeleton-D-czQJT6.js +1 -0
  55. package/src/console/ui-next/dist/assets/store-page-Xh8Kn3rx.js +41 -0
  56. package/src/console/ui-next/dist/assets/trace-detail-sheet-B09O8rA6.js +2 -0
  57. package/src/console/ui-next/dist/assets/tree-expand-toggle-DkOXA12R.js +54 -0
  58. package/src/console/ui-next/dist/assets/units-page-Dpk40kOQ.js +1 -0
  59. package/src/console/ui-next/dist/assets/{use-vault-list-BLbZhzyF.js → use-vault-list-uk4WVboC.js} +1 -1
  60. package/src/console/ui-next/dist/assets/useMutation-B8EO02Ej.js +1 -0
  61. package/src/console/ui-next/dist/assets/useRender-BE2A9BWC.js +1 -0
  62. package/src/console/ui-next/dist/assets/vault-page-B1dB9Ft0.js +2 -0
  63. package/src/console/ui-next/dist/index.html +11 -9
  64. package/src/console/ui-next/index.html +3 -3
  65. package/src/console/ui-next/src/client.ts +167 -0
  66. package/src/console/ui-next/src/components/shell/app-sidebar.tsx +2 -0
  67. package/src/console/ui-next/src/components/shell/command-items.test.ts +1 -0
  68. package/src/console/ui-next/src/components/shell/command-items.ts +8 -0
  69. package/src/console/ui-next/src/components/shell/shell-layout.tsx +2 -1
  70. package/src/console/ui-next/src/components/ui/sheet-form.tsx +8 -3
  71. package/src/console/ui-next/src/features/access/access-page.tsx +347 -0
  72. package/src/console/ui-next/src/features/access/data/use-access.ts +23 -0
  73. package/src/console/ui-next/src/features/access/detail/access-detail.tsx +552 -0
  74. package/src/console/ui-next/src/features/access/explorer/access-list.tsx +125 -0
  75. package/src/console/ui-next/src/features/access/lib/format-when.test.ts +139 -0
  76. package/src/console/ui-next/src/features/access/lib/format-when.ts +296 -0
  77. package/src/console/ui-next/src/features/access/lib/scope-groups.test.ts +34 -0
  78. package/src/console/ui-next/src/features/access/lib/scope-groups.ts +40 -0
  79. package/src/console/ui-next/src/features/access/sheets/access-allow-fields.tsx +236 -0
  80. package/src/console/ui-next/src/features/access/sheets/access-create-sheet.tsx +316 -0
  81. package/src/console/ui-next/src/features/access/sheets/access-edit-sheet.tsx +240 -0
  82. package/src/console/ui-next/src/features/access/sheets/access-expiry-fields.tsx +66 -0
  83. package/src/console/ui-next/src/features/access/sheets/access-refresh-sheet.tsx +104 -0
  84. package/src/console/ui-next/src/features/access/sheets/access-scope-field.tsx +115 -0
  85. package/src/console/ui-next/src/features/access/sheets/access-secret-sheet.tsx +89 -0
  86. package/src/console/ui-next/src/features/access/sheets/access-sheet-search.tsx +49 -0
  87. package/src/console/ui-next/src/features/access/state/access-selection.ts +84 -0
  88. package/src/console/ui-next/src/features/auth/auth-redirect.test.ts +5 -0
  89. package/src/console/ui-next/src/features/auth/auth-redirect.ts +18 -2
  90. package/src/console/ui-next/src/features/not-found/not-found-page.tsx +1 -1
  91. package/src/console/ui-next/src/lib/document-meta.test.ts +1 -0
  92. package/src/console/ui-next/src/lib/document-meta.ts +2 -1
  93. package/src/console/ui-next/src/lib/last-module-search.test.ts +1 -0
  94. package/src/console/ui-next/src/lib/last-module-search.ts +2 -1
  95. package/src/console/ui-next/src/lib/shortcut.test.ts +2 -0
  96. package/src/console/ui-next/src/lib/shortcut.ts +3 -0
  97. package/src/console/ui-next/src/router.tsx +10 -1
  98. package/src/console/ui-next/ui-next-seed-app-schema.ts +88 -37
  99. package/src/console/ui-next/ui-next-seed-store.ts +43 -15
  100. package/src/console/xss.gate.test.ts +1 -0
  101. package/src/elements/gate/declare.ts +2 -0
  102. package/src/elements/store/cache.ts +1 -1
  103. package/src/elements/store/runtime.ts +14 -0
  104. package/src/elements/store/schema-decl.ts +99 -41
  105. package/src/elements/store/sql-select.types.test.ts +71 -0
  106. package/src/elements/store/sql-session.ts +54 -32
  107. package/src/elements/store.ts +3 -0
  108. package/src/index.ts +1 -0
  109. package/src/kernel/api-key-host-persist.test.ts +143 -0
  110. package/src/kernel/app.ts +14 -2
  111. package/src/kernel/auth-resolve.ts +10 -5
  112. package/src/kernel/boot.test.ts +4 -4
  113. package/src/kernel/fx-auth-keys.test.ts +88 -0
  114. package/src/kernel/fx-auth-keys.ts +198 -0
  115. package/src/kernel/fx.test.ts +17 -1
  116. package/src/kernel/fx.ts +36 -18
  117. package/src/kernel/pipeline-api-key.test.ts +192 -7
  118. package/src/kernel/pipeline.ts +4 -2
  119. package/src/manifest/types.ts +9 -3
  120. package/src/release/build-lib.ts +1 -0
  121. package/src/console/ui-next/dist/assets/cache-glyph-F1FI122b.js +0 -1
  122. package/src/console/ui-next/dist/assets/call-pii-button-DEDCl_j3.js +0 -1
  123. package/src/console/ui-next/dist/assets/collapsible-LPqGvfoz.js +0 -1
  124. package/src/console/ui-next/dist/assets/confirm-sheet-3ptDzXbz.js +0 -1
  125. package/src/console/ui-next/dist/assets/explorer-empty-BvYrygyO.js +0 -1
  126. package/src/console/ui-next/dist/assets/flows-page-Dluo1Bd7.js +0 -1
  127. package/src/console/ui-next/dist/assets/http-method--sWDdXSB.js +0 -1
  128. package/src/console/ui-next/dist/assets/index-Ca3HZMVq.js +0 -66
  129. package/src/console/ui-next/dist/assets/index-UtTDRQpS.css +0 -2
  130. package/src/console/ui-next/dist/assets/link-COeyggt-.js +0 -1
  131. package/src/console/ui-next/dist/assets/observability-page-HK9-BO8z.js +0 -4
  132. package/src/console/ui-next/dist/assets/replica-lag-DBIFFf7d.js +0 -18
  133. package/src/console/ui-next/dist/assets/sheet-form-Dnwa5oOR.js +0 -1
  134. package/src/console/ui-next/dist/assets/shortcut-Cgzuv4k1.js +0 -1
  135. package/src/console/ui-next/dist/assets/shortcut-keys-CoqwEIi0.js +0 -1
  136. package/src/console/ui-next/dist/assets/skeleton-BHcfDYcb.js +0 -1
  137. package/src/console/ui-next/dist/assets/store-page-BSohH3wM.js +0 -41
  138. package/src/console/ui-next/dist/assets/trace-detail-sheet-CFIGRnnA.js +0 -2
  139. package/src/console/ui-next/dist/assets/tree-expand-toggle-BgLl34w7.js +0 -54
  140. package/src/console/ui-next/dist/assets/units-page-B0cFE76A.js +0 -1
  141. package/src/console/ui-next/dist/assets/vault-page-B1SbYe10.js +0 -2
@@ -1,2 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ar as t,Ci as n,Cr as r,Ei as i,F as a,Fr as o,I as s,Ir as c,Jr as l,Lr as u,Mi as d,Nr as f,R as p,Sr as m,Tr as h,Xa as g,Zi as _,_r as v,ar as y,dr as ee,fr as te,gr as b,i as ne,jr as re,l as ie,na as x,nr as ae,o as oe,or as S,rr as se,s as ce,sr as le,ta as ue,u as de,ui as C,vr as w,wr as T,yr as fe,zi as pe}from"./shortcut-keys-CoqwEIi0.js";import{r as E}from"./react-dom-Bph1y7z7.js";import{A as D}from"./xyflow-D7n4g6go.js";import{O,R as me,i as k,k as he,n as ge,t as A,v as j,w as _e,y as ve,z as M}from"./react-D8E3mtu1.js";import{a as ye,i as be,t as N}from"./duration-tone-sC3lGABz.js";import{d as P,i as xe,n as Se,r as Ce,t as we}from"./collapsible-LPqGvfoz.js";import{c as Te,i as F,t as I}from"./highlighted-json-CS_O8L-r.js";import{_ as L,c as Ee,f as R,h as De,i as Oe,l as ke,m as Ae,o as je,p as z,s as Me,t as B,w as V}from"./http-method--sWDdXSB.js";function H(...e){let t=!Array.isArray(e[0]),n=t?0:-1,r=e[0+n],i=e[1+n],a=e[2+n],o=e[3+n],s=_e(i,a,o);return t?s(r):s}var U=e(E(),1);function W(e){let t=M(()=>ve(e)),{isStatic:n}=(0,U.useContext)(k);if(n){let[,n]=(0,U.useState)(e);(0,U.useEffect)(()=>t.on(`change`,n),[])}return t}function G(e,t){let n=W(t()),r=()=>n.set(t());return r(),me(()=>{let t=()=>he.preRender(r,!1,!0),n=e.map(e=>e.on(`change`,t));return()=>{n.forEach(e=>e()),O(r)}}),n}function K(e){j.current=[],e();let t=G(j.current,e);return j.current=void 0,t}function q(e,t,n,r){if(typeof e==`function`)return K(e);if(n!==void 0&&!Array.isArray(n)&&typeof t!=`function`)return Pe(e,t,n,r);let i=typeof t==`function`?t:H(t,n,r),a=Array.isArray(e)?Ne(e,i):Ne([e],([e])=>i(e)),o=Array.isArray(e)?void 0:e.accelerate;return o&&!o.isTransformed&&typeof t!=`function`&&Array.isArray(n)&&r?.clamp!==!1&&(a.accelerate={...o,times:t,keyframes:n,isTransformed:!0,...r?.ease?{ease:r.ease}:{}}),a}function Ne(e,t){let n=M(()=>[]);return G(e,()=>{n.length=0;let r=e.length;for(let t=0;t<r;t++)n[t]=e[t].get();return t(n)})}function Pe(e,t,n,r){let i=M(()=>Object.keys(n)),a=M(()=>({}));for(let o of i)a[o]=q(e,t,n[o],r);return a}var J=D();function Fe(e){return!Number.isFinite(e)||e<=0?900:Math.min(1600,Math.max(700,e*6))}function Ie(e,t){let n=t?.flows??{},r=[...e],i=[];for(let e=0;e<r.length;e++){let t=r[e];i.push(`flow:${t}`);let a=r[e+1];if(!a)break;let o=Le(t,a,n);o&&i.push(`signal:${o}`)}return i}function Le(e,t,n){let r=n[e],i=n[t];if(!r||!i)return null;let a=i.trigger?.signal;return a&&r.effects?.emits?.includes(a)?a:null}function Re(e,t){return e.length===0?null:e[Math.floor(Math.min(.999,Math.max(0,t))*e.length)]??null}function ze(e){return typeof e!=`object`||!e||Array.isArray(e)?null:Object.entries(e).map(([e,t])=>({key:e,value:t,display:We(t),kind:Ue(t)}))}function Be(e){if(Array.isArray(e)){let t=e.length;return`${t} ${t===1?`item`:`items`}`}if(typeof e==`object`&&e){let t=Object.keys(e).length;return`${t} ${t===1?`field`:`fields`}`}return typeof e==`string`?`${e.length} chars`:null}function Ve(e){let t=new TextEncoder().encode(e).length;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function He(e){if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function Ue(e){if(e===null)return`null`;if(Array.isArray(e))return`array`;switch(typeof e){case`string`:return`string`;case`number`:return`number`;case`boolean`:return`boolean`;case`object`:return`object`;default:return`string`}}function We(e){if(e===null)return`null`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}var Y=`flex min-h-0 flex-1 flex-col`,Ge=`flex min-h-0 flex-1 overflow-auto pb-3 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`;function Ke({method:e,path:n,headline:r,input:i,output:a,error:o,errorMessage:s,inputOpen:c,onInputOpenChange:l,outputOpen:u,onOutputOpenChange:d}){let f=e&&n?`${e} ${n}`:r,p=o!==null,g=i!=null,_=u&&!p&&a!=null,v=c&&g&&!_;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`section`,{className:T(`border-b border-border/60 last:border-b-0`,v&&T(Y,`pb-3`)),"data-slot":`trace-request`,children:[(0,J.jsxs)(`div`,{className:b,children:[(0,J.jsx)(`h3`,{className:T(m,`flex items-center px-2`),children:`Request`}),f?(0,J.jsx)(`div`,{className:`ml-auto flex h-full items-stretch`,children:(0,J.jsx)(X,{label:`Copy endpoint`,text:f,dataSlot:`trace-request-copy-endpoint`})}):null]}),(0,J.jsx)(`div`,{"data-slot":`trace-request-frame`,className:v?Y:void 0,children:(0,J.jsxs)(`div`,{className:T(`flex min-w-0`,v&&`min-h-0 flex-1`),children:[(0,J.jsx)(Je,{method:e}),(0,J.jsxs)(`div`,{className:T(`flex min-w-0 flex-1 flex-col`,v&&`min-h-0`),children:[(0,J.jsx)(Ye,{method:e,path:n,headline:r}),(0,J.jsx)(qe,{value:i,open:c,onOpenChange:l,label:`Body`,empty:`No stored input — replay uses an empty body when the ledger has none.`,copyLabel:`Copy body JSON`,copySlot:`trace-request-copy-input`,toggleSlot:`trace-input-toggle`,fieldsSlot:`trace-request-fields`,jsonSlot:`trace-input-json`,fill:v})]})]})})]}),(0,J.jsxs)(`section`,{className:T(`border-b border-border/60 last:border-b-0`,_&&T(Y,`pb-3`)),"data-slot":`trace-response`,children:[(0,J.jsxs)(`div`,{className:b,children:[(0,J.jsx)(`h3`,{className:T(m,`flex items-center px-2`),children:`Response`}),(0,J.jsxs)(`div`,{className:`ml-auto flex h-full items-stretch`,children:[!p&&a!=null?(0,J.jsx)(X,{label:`Copy response JSON`,text:JSON.stringify(a,null,2),dataSlot:`trace-response-copy`}):null,p?(0,J.jsx)(X,{label:`Copy error`,text:[o,s].filter(Boolean).join(`
2
- `),dataSlot:`trace-response-copy-error`}):null]})]}),p?(0,J.jsx)(`div`,{"data-slot":`trace-response-error`,role:`alert`,children:(0,J.jsxs)(`div`,{className:`flex min-w-0`,children:[(0,J.jsx)(`div`,{className:`w-1 shrink-0 self-stretch bg-destructive`,"aria-hidden":!0,"data-slot":`trace-response-rail`}),(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1 px-2.5 py-2.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(h,{icon:t,className:`size-3.5 shrink-0 text-destructive`,"aria-hidden":!0}),(0,J.jsx)(`span`,{className:`font-mono text-xs font-semibold text-destructive`,children:o})]}),s?(0,J.jsx)(`p`,{className:`text-[11px] leading-snug text-destructive/90`,children:s}):(0,J.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Run failed with this error code — no return value was stored.`})]})]})}):(0,J.jsx)(`div`,{"data-slot":`trace-response-frame`,className:_?Y:void 0,children:(0,J.jsxs)(`div`,{className:T(`flex min-w-0`,_&&`min-h-0 flex-1`),children:[(0,J.jsx)(`div`,{className:`w-1 shrink-0 self-stretch bg-emerald-500`,"aria-hidden":!0,"data-slot":`trace-response-rail`}),(0,J.jsx)(`div`,{className:T(`flex min-w-0 flex-1 flex-col`,_&&`min-h-0`),children:(0,J.jsx)(qe,{value:a,open:u,onOpenChange:d,label:`Body`,empty:`No stored response — this run completed without a return value.`,copyLabel:`Copy response JSON`,copySlot:`trace-response-copy-body`,toggleSlot:`trace-response-toggle`,fieldsSlot:`trace-response-fields`,jsonSlot:`trace-response-json`,fill:_})})]})})]})]})}function qe({value:e,open:t,onOpenChange:n,label:r,empty:i,copyLabel:a,copySlot:o,toggleSlot:s,fieldsSlot:c,jsonSlot:l,fill:u=!1}){let d=e!=null,p=(0,U.useMemo)(()=>d?JSON.stringify(e,null,2):``,[d,e]),m=(0,U.useMemo)(()=>d?ze(e):null,[d,e]),g=(0,U.useMemo)(()=>d?Be(e):null,[d,e]),_=(0,U.useMemo)(()=>d?Ve(p):null,[d,p]),[v,y]=(0,U.useState)(m?`fields`:`raw`);return(0,U.useEffect)(()=>{y(m?`fields`:`raw`)},[m]),d?(0,J.jsxs)(we,{open:t,onOpenChange:n,className:u?Y:void 0,children:[(0,J.jsxs)(`div`,{className:T(b,`border-t`),children:[(0,J.jsxs)(Ce,{className:T(w,`min-w-0 flex-1 justify-start`),"data-slot":s,children:[(0,J.jsx)(h,{icon:f,className:T(ae,!t&&`-rotate-90`)}),(0,J.jsx)(`span`,{children:r}),g?(0,J.jsxs)(`span`,{className:`truncate font-normal text-muted-foreground`,children:[`· `,g]}):null,_?(0,J.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] font-normal text-muted-foreground tabular-nums`,children:_}):null]}),m?(0,J.jsx)(Xe,{view:v,onChange:y}):null,(0,J.jsx)(X,{label:a,text:p,dataSlot:o})]}),(0,J.jsx)(Se,{className:u?T(Y,`overflow-hidden`):void 0,children:(0,J.jsx)(`div`,{className:T(`border-t border-border/60`,u&&Y),children:v===`fields`&&m?(0,J.jsx)(`div`,{className:u?`min-h-0 flex-1 overflow-auto pb-3`:void 0,children:(0,J.jsx)(Qe,{rows:m,dataSlot:c})}):(0,J.jsx)(I,{json:p,dataSlot:l,className:u?Ge:void 0})})})]}):(0,J.jsx)(`p`,{className:`border-t border-border/60 px-2 py-2 text-[11px] text-muted-foreground`,children:i})}function Je({method:e}){return(0,J.jsx)(`div`,{className:T(`w-1 shrink-0 self-stretch`,e?Oe(e):`bg-muted-foreground/50`),"aria-hidden":!0,"data-slot":`trace-request-rail`})}function Ye({method:e,path:t,headline:n}){return e&&t?(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 px-2.5 py-2`,"data-slot":`trace-request-endpoint`,children:[(0,J.jsx)(`span`,{className:T(`shrink-0 font-mono text-[10px] font-semibold tracking-[0.08em] uppercase`,r(B(e))),"data-slot":`trace-request-method`,children:e}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs text-foreground select-all`,children:t})]}):(0,J.jsx)(`div`,{className:`px-2.5 py-2 font-mono text-xs text-foreground select-all`,"data-slot":`trace-request-endpoint`,children:n})}function Xe({view:e,onChange:t}){return(0,J.jsxs)(`div`,{className:`flex h-full shrink-0 items-stretch`,role:`group`,"aria-label":`Body view`,"data-slot":`trace-request-view-toggle`,children:[(0,J.jsx)(Ze,{active:e===`fields`,label:`Fields`,icon:i,onClick:()=>t(`fields`)}),(0,J.jsx)(Ze,{active:e===`raw`,label:`Raw`,icon:_,onClick:()=>t(`raw`)})]})}function Ze({active:e,label:t,icon:n,onClick:r}){return(0,J.jsxs)(`button`,{type:`button`,className:T(w,`font-semibold tracking-[0.08em] uppercase`,e?v:fe),"aria-pressed":e,"aria-label":t,onClick:r,children:[(0,J.jsx)(h,{icon:n,className:`size-3`}),(0,J.jsx)(`span`,{className:`hidden sm:inline`,children:t})]})}function Qe({rows:e,dataSlot:t}){return(0,J.jsx)(`ul`,{"data-slot":t,children:e.map(e=>(0,J.jsxs)(`li`,{className:T(te,`group/field items-start`),"data-slot":`trace-payload-field`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5 sm:flex-row sm:items-baseline sm:gap-3`,children:[(0,J.jsx)(`span`,{className:`w-[7.5rem] shrink-0 truncate font-mono text-[11px] font-medium text-sky-600 dark:text-sky-400`,children:e.key}),(0,J.jsx)(`span`,{className:T(`min-w-0 flex-1 break-all font-mono text-[11px] leading-snug`,$e(e.kind)),title:e.display,children:e.display})]}),(0,J.jsx)(`span`,{className:`mt-0.5 shrink-0 font-mono text-[9px] tracking-wide text-muted-foreground uppercase opacity-70`,children:e.kind}),(0,J.jsx)(`div`,{className:`opacity-0 transition-opacity group-hover/field:opacity-100 group-focus-within/field:opacity-100`,children:(0,J.jsx)(X,{label:`Copy ${e.key}`,text:He(e.value),dataSlot:`trace-payload-copy-field`,bare:!0})})]},e.key))})}function $e(e){switch(e){case`string`:return`text-teal-800/90 dark:text-teal-300/90`;case`number`:return`text-amber-800 dark:text-amber-300`;case`boolean`:return`text-violet-800 dark:text-violet-300`;case`null`:return`text-muted-foreground italic`;default:return`text-foreground/80`}}function X({text:e,label:t,dataSlot:n,bare:r=!1}){let[i,o]=(0,U.useState)(!1),c=async t=>{t.stopPropagation();try{await navigator.clipboard.writeText(e),o(!0),window.setTimeout(()=>o(!1),1200)}catch{o(!1)}};return(0,J.jsxs)(a,{children:[(0,J.jsx)(p,{render:e=>(0,J.jsx)(`button`,{...e,type:`button`,className:r?y:S,"aria-label":i?`Copied`:t,"data-slot":n,onClick:t=>{e.onClick?.(t),c(t)},children:(0,J.jsx)(h,{icon:i?ue:l,className:`size-3.5`})})}),(0,J.jsx)(s,{side:`bottom`,className:`text-[11px]`,children:i?`Copied`:t})]})}function et(e){return e.effects.some(e=>e.kind===`send`||e.kind===`ask`||e.reversibility===`irreversible`)}function tt(e){return{rootId:e.id,dryRun:et(e)}}async function nt(e,t=g){return t(tt(e))}function rt(e){return e.id}function it(e){let t=at(e),n=L[t];return{icon:n.icon,label:n.label}}function at(e){switch(e){case`http`:return`http`;case`signal`:return`signal`;case`every`:return`every`;case`cron`:return`cron`;case`cdc`:return`cdc`;case`internal`:return`internal`;default:return`internal`}}function ot(e,t,n){return!Number.isFinite(t)||!Number.isFinite(n)||n<=0?e.map((e,t)=>({index:t,kind:e.kind,resource:e.resource,startOffsetMs:0,durationMs:0,offsetRatio:0,widthRatio:0})):e.map((e,r)=>{let i=Number.isFinite(e.timestamp)?e.timestamp-t:0,a=Number.isFinite(e.duration)?Math.max(0,e.duration):0,o=Math.min(n,Math.max(0,i)),s=Math.min(n,Math.max(o,i+a))-o;return{index:r,kind:e.kind,resource:e.resource,startOffsetMs:o,durationMs:s,offsetRatio:o/n,widthRatio:s/n}})}var Z=[1,2,4,8];function Q(e,t=0){let n=Number.isFinite(e)&&e>=1?e:1,r=1/n;return{startRatio:Math.min(Number.isFinite(t)?Math.max(0,t):0,Math.max(0,1-r)),widthRatio:r,zoom:n}}function $(e,t,n){let r=e,i=e+t,a=n.startRatio+n.widthRatio;if(i<=n.startRatio||r>=a)return null;let o=Math.max(r,n.startRatio),s=Math.min(i,a);return{left:(o-n.startRatio)/n.widthRatio,width:(s-o)/n.widthRatio}}function st(e,t=5){if(!Number.isFinite(e)||e<=0)return[0];let n=ft(e,t),r=[0];for(let t=n;t<e-n*.25;t+=n)r.push(Math.round(t*1e3)/1e3);return r[r.length-1]!==e&&r.push(e),r}function ct(e,t,n=5){if(!Number.isFinite(e)||e<=0)return[{offsetMs:0,viewRatio:0,isEnd:!0}];let r=t.startRatio*e,i=t.widthRatio*e,a=st(i,n).map(e=>r+e),o=Math.min(e,r+i);return a[a.length-1]!==o&&(a[a.length-1]=o),a.map((e,t)=>({offsetMs:e,viewRatio:(e-r)/i,isEnd:t===a.length-1}))}function lt(e,t){if(!Number.isFinite(t)||t<=0)return[];let n=dt(e,t),r=[],i=0;for(let[e,a]of n)e>i&&r.push(ut(i,e,t)),i=Math.max(i,a);return i<t&&r.push(ut(i,t,t)),r.filter(e=>e.durationMs>0&&e.widthRatio>0)}function ut(e,t,n){let r=Math.max(0,e),i=Math.max(0,t-r);return{startOffsetMs:r,durationMs:i,offsetRatio:r/n,widthRatio:i/n}}function dt(e,t){let n=e.map(e=>{let n=Math.max(0,Math.min(t,e.startOffsetMs));return[n,Math.max(n,Math.min(t,e.startOffsetMs+e.durationMs))]}).filter(([e,t])=>t>e).sort((e,t)=>e[0]-t[0]),r=[];for(let e of n){let t=r[r.length-1];!t||e[0]>t[1]?r.push([e[0],e[1]]):t[1]=Math.max(t[1],e[1])}return r}function ft(e,t){let n=e/Math.max(1,t),r=10**Math.floor(Math.log10(Math.max(n,1e-6))),i=n/r,a;return a=i<=1?1:i<=2?2:i<=5?5:10,a*r}function pt(e){return Z.find(t=>t>e)??Z[Z.length-1]}function mt(e){let t=Z[0];for(let n of Z){if(n>=e)return t;t=n}return t}function ht(e){return`${Ee(e)} · ${e.resource} · ${F(e.durationMs)} · +${F(e.startOffsetMs)}`}var gt=`border-b border-border/60 last:border-b-0`;function _t({run:e,onClose:t,replay:n=g,focusEffectIndex:r=null,onFocusEffectChange:i,playbackKey:a=0,onReplayStart:s}){let l=Te(),p=ge(),_=e?it(e.trigger):null,v=e?Me(e.cache):null,y=(0,U.useMemo)(()=>e?ke(e):[],[e]),re=(0,U.useMemo)(()=>e?De(e.gates,l.data??null):[],[e,l.data]),x=(0,U.useMemo)(()=>e?ot(e.effects,e.startedAt,e.durationMs):[],[e]),ue=(0,U.useMemo)(()=>e?lt(x,e.durationMs):[],[e,x]),C=(0,U.useMemo)(()=>e?je(l.data??null,e.flow,e.trigger):{method:null,path:null,headline:``},[e,l.data]),[fe,E]=(0,U.useState)(!1),[D,O]=(0,U.useState)(null),[me,k]=(0,U.useState)(null),[he,j]=(0,U.useState)(!0),[_e,ve]=(0,U.useState)(!0),[M,N]=(0,U.useState)(!0),[P,I]=(0,U.useState)(null),[L,R]=(0,U.useState)(1),[Oe,z]=(0,U.useState)(0),[B,V]=(0,U.useState)(!1),H=W(0),G=W(0),K=(0,U.useMemo)(()=>Q(L,Oe),[L,Oe]),Ne=(0,U.useMemo)(()=>e?ct(e.durationMs,K):[],[e,K]),Pe=q(H,e=>{let t=$(e,1e-4,K);return t?`${t.left*100}%`:`-10%`});(0,U.useEffect)(()=>{if(O(null),k(null),E(!1),j(!0),ve(!0),N(!0),I(null),R(1),z(0),V(!1),H.set(0),!e)return;if(p){G.set(e.durationMs);return}G.set(0);let t=be(G,e.durationMs,{duration:.6,ease:[.16,1,.3,1]});return()=>t.stop()},[e?.id,p]),(0,U.useEffect)(()=>{if(a===0||!e)return;if(p){H.set(1),G.set(e.durationMs),V(!1);return}V(!0),H.set(0),G.set(0);let t=be(H,1,{duration:Fe(e.durationMs)/1e3,ease:`linear`,onUpdate:t=>G.set(t*e.durationMs),onComplete:()=>{G.set(e.durationMs),V(!1)}});return()=>{t.stop(),V(!1)}},[a]);let Ie=async t=>{if(t.stopPropagation(),!(!e||fe)){E(!0),O(null),k(null);try{let t=await nt(e,n);if(t.error){O(t.error.message??t.error.code),k(`error`);return}O(t.data?.dryRun?`Replayed (dry-run)`:`Replayed`),k(`ok`),s?.()}catch(e){O(e instanceof Error?e.message:`Replay failed`),k(`error`)}finally{E(!1)}}};return(0,J.jsx)(ne,{open:e!==null,modal:!1,disablePointerDismissal:!0,onOpenChange:e=>{e||t()},children:(0,J.jsx)(oe,{side:`left`,showOverlay:!1,"data-slot":`trace-detail-sheet`,className:`inset-y-0 h-dvh w-full max-w-none gap-0 rounded-none p-0 shadow-xl md:left-12! data-[side=left]:sm:max-w-2xl`,children:e&&_?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(ie,{className:`gap-1.5 border-b border-border/60 px-2 py-2 pr-12`,children:[(0,J.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,J.jsx)(`span`,{className:`mt-0.5 text-muted-foreground`,title:_.label,"aria-hidden":!0,children:(0,J.jsx)(h,{icon:_.icon,className:le})}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(de,{className:`truncate font-mono text-base font-semibold tracking-tight`,children:e.flow}),(0,J.jsxs)(ce,{className:`mt-0.5 flex items-center gap-1.5 text-[11px] text-muted-foreground`,children:[(0,J.jsx)(`span`,{children:_.label}),v?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,J.jsxs)(`span`,{className:T(`inline-flex items-center gap-1`,v.className),"data-slot":`trace-sheet-cache`,"data-cache":e.cache,title:v.label,children:[(0,J.jsx)(h,{icon:v.icon,className:`size-3`,"aria-hidden":!0}),v.label]})]}):null]})]})]}),(0,J.jsx)(ye,{mode:`wait`,children:D?(0,J.jsx)(A.div,{initial:!p&&{opacity:0,y:-4,scale:.96},animate:{opacity:1,y:0,scale:1},exit:p?void 0:{opacity:0,y:-4,scale:.96},transition:{duration:.18,ease:`easeOut`},children:(0,J.jsx)(xe,{variant:`outline`,role:`status`,className:T(`h-5 w-fit rounded-md px-1.5 text-[10px] font-medium`,me===`ok`&&`border-emerald-500/40 bg-emerald-500/10 text-emerald-700 dark:text-emerald-400`,me===`error`&&`border-destructive/40 bg-destructive/10 text-destructive`),children:D})},D):null})]}),(0,J.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-0 overflow-y-auto p-0`,children:[(0,J.jsx)(`section`,{className:gt,"data-slot":`trace-summary`,children:(0,J.jsx)(yt,{chips:y,durationMs:e.durationMs,durationValue:G})}),re.length>0?(0,J.jsx)(`section`,{className:gt,"data-slot":`trace-gates`,children:(0,J.jsx)(Ae,{gates:re})}):null,(0,J.jsxs)(`section`,{className:gt,"data-slot":`trace-waterfall`,children:[(0,J.jsxs)(`div`,{className:b,children:[(0,J.jsx)(`h3`,{className:T(m,`flex items-center px-2`),children:`Waterfall`}),(0,J.jsxs)(`div`,{className:`ml-auto flex h-full items-stretch`,"data-slot":`trace-waterfall-zoom`,children:[(0,J.jsx)(`button`,{type:`button`,className:S,"aria-label":`Pan left`,disabled:L<=1||K.startRatio<=0,onClick:()=>z(e=>Q(L,Math.max(0,e-K.widthRatio*.5)).startRatio),children:(0,J.jsx)(h,{icon:o,className:`size-3.5`})}),(0,J.jsx)(`button`,{type:`button`,className:S,"aria-label":`Zoom out`,disabled:L<=1,onClick:()=>{let e=mt(L);R(e),z(t=>Q(e,t).startRatio)},children:(0,J.jsx)(h,{icon:d,className:`size-3.5`})}),(0,J.jsxs)(`span`,{className:`flex min-w-8 items-center justify-center font-mono text-[10px] tabular-nums text-muted-foreground`,children:[L,`×`]}),(0,J.jsx)(`button`,{type:`button`,className:S,"aria-label":`Zoom in`,disabled:L>=8,onClick:()=>{let e=pt(L);R(e),z(t=>Q(e,t).startRatio)},children:(0,J.jsx)(h,{icon:pe,className:`size-3.5`})}),(0,J.jsx)(`button`,{type:`button`,className:S,"aria-label":`Pan right`,disabled:L<=1||K.startRatio+K.widthRatio>=1,onClick:()=>z(e=>Q(L,e+K.widthRatio*.5).startRatio),children:(0,J.jsx)(h,{icon:u,className:`size-3.5`})})]})]}),x.length===0?(0,J.jsx)(`p`,{className:`px-2 py-2 text-[11px] text-muted-foreground`,children:`No effects recorded`}):(0,J.jsxs)(`div`,{className:`relative flex flex-col gap-1.5 px-2 py-2`,children:[(0,J.jsx)(Ct,{ticks:Ne}),(0,J.jsx)(wt,{bars:x,gaps:ue,view:K,hoverIndex:P,onHover:I,onSelect:e=>i?.(r===e?null:e),focusIndex:r}),x.map(e=>(0,J.jsx)(Et,{bar:e,view:K,dimmed:P!==null&&P!==e.index,focused:r===e.index,progress:H,playing:B,onHover:I,onSelect:e=>i?.(r===e?null:e)},e.index)),B?(0,J.jsx)(A.div,{className:`pointer-events-none absolute top-4 bottom-0 w-px bg-foreground/70`,style:{left:Pe},"data-slot":`trace-waterfall-playhead`,"aria-hidden":!0}):null,ue.length>0?(0,J.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Hatched spans are idle time — no effects recorded.`}):null]})]}),(0,J.jsx)(`section`,{className:gt,"data-slot":`trace-events-section`,children:(0,J.jsxs)(we,{open:he,onOpenChange:j,children:[(0,J.jsxs)(`div`,{className:b,children:[(0,J.jsxs)(Ce,{className:T(w,`min-w-0 flex-1 justify-start`),"data-slot":`trace-events-toggle`,children:[(0,J.jsx)(h,{icon:f,className:T(ae,!he&&`-rotate-90`)}),(0,J.jsx)(`span`,{className:`truncate`,children:`Event Details`}),(0,J.jsxs)(`span`,{className:se,children:[e.effects.length,` `,e.effects.length===1?`event`:`events`]})]}),(0,J.jsxs)(`button`,{type:`button`,className:w,disabled:fe,"data-slot":`trace-sheet-replay`,onClick:e=>void Ie(e),children:[(0,J.jsx)(h,{icon:c,className:`size-3.5`}),`Replay`]})]}),(0,J.jsx)(Se,{children:(0,J.jsx)(`ul`,{className:`flex flex-col`,"data-slot":`trace-events`,children:e.effects.map((e,t)=>{let n=x[t],a=r===t;return(0,J.jsxs)(`li`,{"data-slot":`trace-event-row`,"data-index":t,"data-focused":a?`true`:`false`,className:T(te,`cursor-pointer flex-col items-stretch gap-1 text-[11px]`,a&&`bg-muted/70 text-foreground`,P===t&&!a&&`bg-muted/50`),onClick:()=>i?.(r===t?null:t),onMouseEnter:()=>I(t),onMouseLeave:()=>I(null),children:[(0,J.jsx)(`span`,{"aria-hidden":!0,className:T(ee,a&&`bg-sky-500`)}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(vt,{kind:e.kind,resource:e.resource}),(0,J.jsx)(`span`,{className:`w-[4.5rem] shrink-0 font-medium text-foreground/90`,children:Ee(e)}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-muted-foreground`,children:e.resource}),(0,J.jsx)(`span`,{className:`shrink-0 tabular-nums text-muted-foreground`,children:F(e.duration)})]}),n?(0,J.jsx)(`div`,{className:`relative ml-7 h-1.5 w-[calc(100%-1.75rem)] rounded-full bg-muted/70`,"data-slot":`trace-event-bar-track`,"aria-hidden":!0,children:(0,J.jsx)(Dt,{bar:n,left:n.offsetRatio,width:n.widthRatio,progress:H,playing:B,slot:`trace-event-bar`})}):null]},`${e.kind}:${e.resource}:${t}`)})})})]})}),(0,J.jsx)(Ke,{method:C.method,path:C.path,headline:C.headline,input:e.input,output:e.output,error:e.error,errorMessage:e.errorMessage,inputOpen:_e,onInputOpenChange:ve,outputOpen:M,onOutputOpenChange:N})]})]}):null})})}function vt({kind:e,resource:t}){let n=R(e);return(0,J.jsx)(`span`,{className:le,style:{color:n},"aria-hidden":!0,children:(0,J.jsx)(h,{icon:z(e,t),className:`size-3.5`})})}function yt({chips:e,durationMs:t,durationValue:n}){let r=e.find(e=>e.variant===`duration`),i=e.filter(e=>e.variant!==`duration`),o=q(n,e=>F(Math.round(e)));return(0,J.jsxs)(`div`,{className:b,"data-slot":`trace-summary-strip`,role:`group`,"aria-label":`Run summary`,children:[r?(0,J.jsxs)(a,{children:[(0,J.jsx)(p,{render:e=>(0,J.jsxs)(`div`,{...e,className:`flex h-full shrink-0 items-center gap-1.5 px-2`,"data-slot":`trace-summary-duration`,children:[(0,J.jsx)(h,{icon:x,className:T(`size-3.5`,N(t)),"aria-hidden":!0}),(0,J.jsx)(A.span,{className:T(`font-mono text-sm font-semibold tracking-tight tabular-nums leading-none`,N(t)),children:o})]})}),(0,J.jsx)(s,{side:`bottom`,className:`max-w-xs text-[11px]`,children:r.detail})]}):null,i.length>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:`w-px shrink-0 self-stretch bg-border/60`,"aria-hidden":!0}),(0,J.jsx)(`ul`,{className:`flex h-full min-w-0 flex-1 flex-nowrap items-stretch overflow-x-auto overscroll-x-contain [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:i.map(e=>(0,J.jsx)(`li`,{className:`list-none shrink-0`,children:(0,J.jsx)(bt,{chip:e})},e.key))})]}):null]})}function bt({chip:e}){let t=St(e.variant),n=xt(e.variant);return(0,J.jsxs)(a,{children:[(0,J.jsx)(p,{render:r=>(0,J.jsxs)(`span`,{...r,className:T(w,`text-foreground/90`),"data-slot":`trace-summary-chip`,"data-variant":e.variant,children:[(0,J.jsx)(`span`,{style:{color:t},"aria-hidden":!0,children:(0,J.jsx)(h,{icon:n,className:`size-3`})}),(0,J.jsx)(`span`,{className:`tabular-nums font-medium`,children:e.shortLabel}),(0,J.jsx)(`span`,{className:`sr-only`,children:e.label})]})}),(0,J.jsxs)(s,{side:`bottom`,className:`max-w-xs flex-col items-start gap-0.5 text-[11px]`,children:[(0,J.jsx)(`p`,{className:`font-medium text-background`,children:e.label}),(0,J.jsx)(`p`,{className:`text-background/70`,children:e.detail})]})]})}function xt(e){switch(e){case`duration`:return x;case`api`:return re;case`gate`:return P.gate.icon;case`cache`:return C;case`db`:return P.store.icon;case`logs`:return n;default:return z(e)}}function St(e){switch(e){case`duration`:return`currentColor`;case`api`:return`var(--foreground)`;case`gate`:return V.gate.accent;case`cache`:return`var(--color-sky-500)`;case`db`:return V.store.accent;case`logs`:return`var(--muted-foreground)`;default:return R(e)}}function Ct({ticks:e}){return(0,J.jsx)(`div`,{className:`relative h-4 w-full border-b border-border/60`,"data-slot":`trace-waterfall-ruler`,children:e.map(e=>(0,J.jsxs)(`div`,{className:`absolute top-0 flex h-full flex-col items-center`,style:{left:`${e.viewRatio*100}%`,transform:e.isEnd?`translateX(-100%)`:e.viewRatio===0?`none`:`translateX(-50%)`},children:[(0,J.jsx)(`span`,{className:`font-mono text-[9px] tabular-nums text-muted-foreground`,children:F(e.offsetMs)}),(0,J.jsx)(`span`,{className:`mt-auto h-1.5 w-px bg-border`,"aria-hidden":!0})]},`${e.offsetMs}-${e.viewRatio}`))})}function wt({bars:e,gaps:t,view:n,hoverIndex:r,onHover:i,onSelect:o,focusIndex:c}){return(0,J.jsxs)(`div`,{className:`relative h-3 w-full overflow-hidden rounded-full bg-muted/50`,"data-slot":`trace-waterfall-overview`,children:[t.map(e=>{let t=$(e.offsetRatio,e.widthRatio,n);return!t||t.width<=0?null:(0,J.jsx)(Tt,{left:t.left,width:t.width,gap:e},`gap-${e.startOffsetMs}`)}),e.map(e=>{let t=$(e.offsetRatio,e.widthRatio,n);if(!t||t.width<=0)return null;let l=c===e.index;return(0,J.jsxs)(a,{children:[(0,J.jsx)(p,{render:n=>(0,J.jsx)(`div`,{...n,className:T(`absolute inset-y-0.5 cursor-pointer rounded-full transition-opacity`,r!==null&&r!==e.index&&!l&&`opacity-35`,l&&`ring-1 ring-foreground/40`),style:{left:`${t.left*100}%`,width:`${Math.max(t.width*100,.4)}%`,backgroundColor:R(e.kind)},"data-slot":`trace-waterfall-overview-bar`,onClick:t=>{t.stopPropagation(),o?.(e.index)},onMouseEnter:t=>{n.onMouseEnter?.(t),i(e.index)},onMouseLeave:e=>{n.onMouseLeave?.(e),i(null)}})}),(0,J.jsx)(s,{side:`top`,className:`max-w-xs font-mono text-[11px]`,children:ht(e)})]},`ov-${e.index}`)})]})}function Tt({left:e,width:t,gap:n}){return(0,J.jsxs)(a,{children:[(0,J.jsx)(p,{render:n=>(0,J.jsx)(`div`,{...n,className:`absolute inset-y-0 overflow-hidden rounded-sm`,style:{left:`${e*100}%`,width:`${t*100}%`},"data-slot":`trace-waterfall-gap`,children:(0,J.jsx)(`div`,{className:`size-full opacity-70`,style:{backgroundImage:`repeating-linear-gradient(-45deg, color-mix(in oklab, var(--muted-foreground) 28%, transparent) 0 1px, transparent 1px 5px)`},"aria-hidden":!0})})}),(0,J.jsxs)(s,{side:`top`,className:`max-w-xs text-[11px]`,children:[`Idle · `,F(n.durationMs),` — no effects recorded`]})]})}function Et({bar:e,view:t,dimmed:n,focused:r,progress:i,playing:o,onHover:c,onSelect:l}){let u=$(e.offsetRatio,e.widthRatio,t);return!u||u.width<=0?null:(0,J.jsxs)(a,{children:[(0,J.jsx)(p,{render:t=>(0,J.jsx)(`div`,{...t,className:`relative h-2.5 w-full cursor-pointer rounded-full bg-muted/70`,"data-slot":`trace-waterfall-track`,"data-index":e.index,onClick:t=>{t.stopPropagation(),l?.(e.index)},onMouseEnter:n=>{t.onMouseEnter?.(n),c(e.index)},onMouseLeave:e=>{t.onMouseLeave?.(e),c(null)},children:(0,J.jsx)(Dt,{bar:e,left:u.left,width:u.width,progress:i,playing:o,dimmed:n,focused:r,slot:`trace-waterfall-bar`})})}),(0,J.jsx)(s,{side:`top`,className:`max-w-xs font-mono text-[11px]`,children:ht(e)})]})}function Dt({bar:e,left:t,width:n,progress:r,playing:i,dimmed:a=!1,focused:o=!1,slot:s}){let c=Math.max(e.widthRatio,.02),l=q(r,[e.offsetRatio,e.offsetRatio+c],[0,1],{clamp:!0}),u=q(r,t=>t>=e.offsetRatio?1:.25),d=i;return(0,J.jsx)(A.div,{className:T(`absolute inset-y-0 rounded-full transition-opacity`,!d&&a&&!o&&`opacity-35`,o&&`ring-1 ring-foreground/40`),style:{left:`${t*100}%`,width:`${Math.max(n*100,.5)}%`,backgroundColor:R(e.kind),transformOrigin:`left`,...d?{scaleX:l,opacity:u}:{}},"data-slot":s})}export{Fe as a,W as c,Re as i,it as n,Ie as o,rt as r,q as s,_t as t};
@@ -1,54 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$t as t,A as n,An as r,At as i,B as a,C as o,Ca as s,D as c,Eo as l,Et as u,Ft as d,G as f,Gn as p,H as m,Hi as h,Hn as g,J as _,M as v,Mt as y,N as ee,Nt as b,O as x,P as S,Pn as C,Rn as w,Sa as T,Sn as E,Sr as D,St as O,Tr as k,U as A,Ui as j,Un as M,V as N,Vn as P,Wa as F,Wn as I,X as L,Xt as te,Yn as R,Yt as ne,Zt as re,_n as ie,_r as z,_t as B,aa as V,an as H,ar as U,at as ae,ba as W,bt as oe,dn as se,dr as G,en as K,fr as ce,g as le,ht as ue,in as de,it as fe,j as pe,k as me,kn as he,kt as ge,ln as _e,nn as ve,oa as ye,or as be,pt as xe,q as Se,qt as Ce,rn as we,sa as Te,ta as Ee,tn as De,v as Oe,va as ke,vn as Ae,vr as je,vt as Me,wr as q,xa as Ne,xt as Pe,yr as Fe,yt as J,z as Ie}from"./shortcut-keys-CoqwEIi0.js";import{x as Le}from"./link-COeyggt-.js";import{r as Re}from"./react-dom-Bph1y7z7.js";import{A as ze,f as Be}from"./xyflow-D7n4g6go.js";import{A as Ve,D as He,E as Ue,F as We,N as Ge,O as Ke,P as qe,T as Je,j as Ye,w as Xe}from"./sheet-form-Dnwa5oOR.js";import{_ as Ze}from"./collapsible-LPqGvfoz.js";import{t as Qe}from"./dagre.esm-ZwcdTuZZ.js";import{i as $e}from"./call-pii-button-DEDCl_j3.js";function et(e){let{open:t=!1,onOpenChange:n,elements:i={}}=e,a=d(),o=u()!=null,s=R(()=>new B({open:t,transitionStatus:void 0,onOpenChange:n,referenceElement:i.reference??null,floatingElement:i.floating??null,triggerElements:new fe,floatingId:a,syncOnly:!1,nested:o})).current;return M(()=>{let e={open:t,floatingId:a};i.reference!==void 0&&(e.referenceElement=i.reference,e.domReferenceElement=r(i.reference)?i.reference:null),i.floating!==void 0&&(e.floatingElement=i.floating),s.update(e)},[t,a,i.reference,i.floating,s]),s.context.onOpenChange=n,s.context.nested=o,s}var Y=e(Re(),1);function tt(e){let[t,n]=Y.useState({current:e,previous:null});return Object.is(e,t.current)||n({current:e,previous:t.current}),t.previous}var X=ze();function nt(e){return e.kind===`index`||e.kind===`function`||e.kind===`trigger`||e.kind===`extension`||e.kind===`policy`?e.kind:null}function rt(e){return nt(e)!==null}function it(e){return e.kind===`table`&&typeof e.rls==`boolean`}function at(e,t,n){return typeof e.rlsPolicyCount==`number`?e.rlsPolicyCount:Object.keys(t?.stores?.[n]?.tables?.[e.name]?.policies??{}).length}function ot(e){let t=nt(e);return t===`index`?`Indexes`:t===`function`?`Functions`:t===`trigger`?`Triggers`:t===`extension`?`Extensions`:t===`policy`?`RLS Policies`:e.name}function st(e){let t=[],n=[];for(let r of e)rt(r)?n.push(r):t.push(r);return{tables:t,catalog:n}}function ct(e){return e==null||e.hasAttribute(`disabled`)||e.getAttribute(`aria-disabled`)===`true`}var lt=[`console.store.query`];function ut(e,t,n){if(!e||!n||!t)return;let r=t[1];if(ft(r)&&r.ref===n.ref&&(r.child??``)===(n.child??``)&&(r.tenant??``)===(n.tenant??``))return e}function dt(e,t){return l({queryKey:[...lt,e],enabled:t&&e!==null,placeholderData:(t,n)=>ut(t,n?.queryKey,e),queryFn:async()=>{if(!e)throw Error(`Missing store query input`);let t=await F(e);if(t.error)throw Error(ke(t.error));if(!t.data)throw Error(`Empty store query`);return t.data}})}function ft(e){return typeof e==`object`&&!!e&&`ref`in e&&typeof e.ref==`string`}function pt(e){let t=Y.useRef(!0);t.current&&(t.current=!1,e())}var mt=Y.createContext(null);function Z(){let e=Y.useContext(mt);if(e===null)throw Error(g(60));return e}var ht=(e,t)=>Object.is(e,t);function gt(e,t,n){return e==null||t==null?Object.is(e,t):n(e,t)}function _t(e,t,n){return!e||e.length===0?-1:e.findIndex(e=>e!==void 0&&gt(e,t,n))}function vt(e,t,n){return e.filter(e=>!gt(t,e,n))}function yt(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function bt(e){return e!=null&&e.length>0&&typeof e[0]==`object`&&e[0]!=null&&`items`in e[0]}function xt(e){if(!Array.isArray(e))return e!=null&&`null`in e;let t=e;if(bt(t)){for(let e of t)for(let t of e.items)if(t&&t.value==null&&t.label!=null)return!0;return!1}for(let e of t)if(e&&e.value==null&&e.label!=null)return!0;return!1}function St(e,t){if(t&&e!=null)return t(e)??``;if(e&&typeof e==`object`){if(`label`in e&&e.label!=null)return String(e.label);if(`value`in e)return String(e.value)}return yt(e)}function Ct(e,t){return t&&e!=null?t(e)??``:e&&typeof e==`object`&&`value`in e&&`label`in e?yt(e.value):yt(e)}function wt(e,t,n){function r(){return St(e,n)}if(n&&e!=null)return n(e);if(e&&typeof e==`object`&&`label`in e&&e.label!=null)return e.label;if(t&&!Array.isArray(t))return t[e]??r();if(Array.isArray(t)){let n=t,i=bt(n)?n.flatMap(e=>e.items):n;if(typeof e!=`object`||!e){let t=i.find(t=>t.value===e);return t&&t.label!=null?t.label:r()}if(`value`in e){let t=i.find(t=>t&&t.value===e.value);if(t&&t.label!=null)return t.label}}return r()}function Tt(e,t,n){return e.reduce((e,r,i)=>(i>0&&e.push(`, `),e.push((0,X.jsx)(Y.Fragment,{children:wt(r,t,n)},i)),e),[])}var Q={id:e=>e.id,labelId:e=>e.labelId,modal:e=>e.modal,items:e=>e.items,itemToStringLabel:e=>e.itemToStringLabel,isItemEqualToValue:e=>e.isItemEqualToValue,value:e=>e.value,hasSelectedValue:e=>{let{value:t,multiple:n,itemToStringValue:r}=e;return t==null?!1:n&&Array.isArray(t)?t.length>0:Ct(t,r)!==``},hasNullItemLabel:(e,t)=>t?xt(e.items):!1,open:e=>e.open,mounted:e=>e.mounted,forceMount:e=>e.forceMount,transitionStatus:e=>e.transitionStatus,openMethod:e=>e.openMethod,activeIndex:e=>e.activeIndex,selectedIndex:e=>e.selectedIndex,isActive:(e,t)=>e.activeIndex===t,isSelected:(e,t)=>{let n=e.isItemEqualToValue,r=e.value;return e.multiple?Array.isArray(r)&&r.some(e=>gt(t,e,n)):gt(t,r,n)},isSelectedByFocus:(e,t)=>e.selectedIndex===t,popupProps:e=>e.popupProps,triggerProps:e=>e.triggerProps,triggerElement:e=>e.triggerElement,positionerElement:e=>e.positionerElement,listElement:e=>e.listElement,popupSide:e=>e.popupSide,scrollUpArrowVisible:e=>e.scrollUpArrowVisible,scrollDownArrowVisible:e=>e.scrollDownArrowVisible,hasScrollArrows:e=>e.hasScrollArrows};function Et(e,t,n=(e,t)=>e===t){return e.length===t.length&&e.every((e,r)=>n(e,t[r]))}function Dt(e,t=-(2**53-1),n=2**53-1){return Math.max(t,Math.min(e,n))}function Ot(e,t){return Math.max(0,e-t)}function kt(e,t){if(t<=0)return 0;let n=Dt(e,0,t),r=n,i=t-n,a=r<=1,o=i<=1;return a&&o?r<=i?0:t:a?0:o?t:n}function At(e){let{id:t,value:r,defaultValue:i=null,onValueChange:a,open:o,defaultOpen:s=!1,onOpenChange:c,name:l,form:u,autoComplete:d,disabled:f=!1,readOnly:m=!1,required:h=!1,modal:g=!0,actionsRef:_,inputRef:y,onOpenChangeComplete:S,items:C,multiple:w=!1,itemToStringLabel:T,itemToStringValue:E,isItemEqualToValue:D=ht,highlightItemOnHover:O=!0,children:k}=e,{clearErrors:A}=v(),{setDirty:j,setTouched:N,setFocused:P,validityData:F,setFilled:L,name:re,disabled:ie,validation:z,validationMode:B}=ee(),V=n({id:t}),H=ie||f,U=re??l,[W,oe]=me({controlled:r,default:w?i??I:i,name:`Select`,state:`value`}),[G,ce]=me({controlled:o,default:s,name:`Select`,state:`open`}),le=Y.useRef([]),fe=Y.useRef([]),pe=Y.useRef(null),he=Y.useRef(null),ge=Y.useRef(0),_e=Y.useRef(null),ye=Y.useRef([]),be=Y.useRef(!1),Se=Y.useRef(null),Ce=Y.useRef(null),we=Y.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0}),Te=Y.useRef(!1),{mounted:Ee,setMounted:Oe,transitionStatus:ke}=ue(G),{openMethod:Ae,triggerProps:je}=Ve(G),q=R(()=>new Me({id:V,labelId:void 0,modal:g,multiple:w,itemToStringLabel:T,itemToStringValue:E,isItemEqualToValue:D,value:W,open:G,mounted:Ee,transitionStatus:ke,items:C,forceMount:!1,openMethod:null,activeIndex:null,selectedIndex:null,popupProps:{},triggerProps:{},triggerElement:null,positionerElement:null,listElement:null,popupSide:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1,hasScrollArrows:!1})).current,Ne=J(q,Q.activeIndex),Fe=J(q,Q.selectedIndex),Ie=J(q,Q.triggerElement),Le=J(q,Q.positionerElement),Re=tt(Ae),ze=Ae??Re,Be=Y.useMemo(()=>w?``:Ct(W,E),[w,W,E]),He=Y.useMemo(()=>w&&Array.isArray(W)?W.map(e=>Ct(e,E)):Ct(W,E),[w,W,E]),Ue=De(Ie),Ke=K(()=>He);x(Ue,V,W,Ke,!H,l);let Je=Y.useRef(W),Xe=w?Array.isArray(W)&&W.length>0:W!=null&&Be!==``;M(()=>{L(Xe)},[Xe,L]),M(function(){let e=W,t=!1;if(w){let n=Array.isArray(W)?W:[];t=n.length===0,e=n[n.length-1]}let n=t?-1:_t(ye.current,e,D),r=n===-1?null:n;r===null&&(Ce.current=null),!G&&q.set(`selectedIndex`,r)},[w,G,W,D,q]);function Ze(e){let t=F.initialValue;return Array.isArray(e)&&Array.isArray(t)?!Et(e,t,(e,t)=>gt(e,t,D)):e!==t}Ye(W,()=>{A(U),j(Ze(W)),z.change(W)});let Qe=K((e,t)=>{c?.(e,t),!t.isCanceled&&(ce(e),!e&&(t.reason===`focus-out`||t.reason===`outside-press`)&&(N(!0),P(!1),B===`onBlur`&&z.commit(W)))}),$e=K(()=>{Oe(!1),q.update({activeIndex:null,openMethod:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1}),S?.(!1)});xe({enabled:!_,open:G,ref:pe,onComplete(){G||$e()}}),Y.useImperativeHandle(_,()=>({unmount:$e}),[$e]);let nt=K((e,t)=>{a?.(e,t),!t.isCanceled&&oe(e)}),rt=K(e=>{let t=Ot(e.scrollHeight,e.clientHeight),n=kt(e.scrollTop,t),r=n>0,i=n<t;q.set(`scrollUpArrowVisible`,r),q.set(`scrollDownArrowVisible`,i)}),it=et({open:G,onOpenChange:Qe,elements:{reference:Ie,floating:Le}}),at=We(it,{enabled:!m&&!H,event:`mousedown`}),ot=Pe(it),st=qe(it,{enabled:!m&&!H,listRef:le,activeIndex:Ne,selectedIndex:Fe,disabledIndices:I,onNavigate(e){e===null&&!G||q.set(`activeIndex`,e)},focusItemOnHover:O}),lt=Ge(it,{enabled:!m&&!H&&(G||!w),listRef:fe,activeIndex:Ne,selectedIndex:Fe,disabledIndices:e=>ct(le.current[e]),onMatch(e){G?q.set(`activeIndex`,e):nt(ye.current[e],de(se))},onTyping(e){be.current=e}}),ut=Y.useMemo(()=>b(lt.reference,st.reference,ot.reference,at.reference,je),[at.reference,lt.reference,st.reference,ot.reference,je]),dt=Y.useMemo(()=>b(ae,lt.floating,st.floating,ot.floating),[lt.floating,st.floating,ot.floating]),ft=st.item??p;pt(()=>{q.update({popupProps:dt,triggerProps:ut})}),q.useSyncedValues({id:V,modal:g,multiple:w,value:W,open:G,mounted:Ee,transitionStatus:ke,popupProps:dt,triggerProps:ut,items:C,itemToStringLabel:T,itemToStringValue:E,isItemEqualToValue:D,openMethod:ze});let Z=Y.useMemo(()=>({store:q,floatingContext:it,required:h,disabled:H,readOnly:m,multiple:w,highlightItemOnHover:O,setValue:nt,setOpen:Qe,listRef:le,popupRef:pe,scrollHandlerRef:he,handleScrollArrowVisibility:rt,scrollArrowsMountedCountRef:ge,itemProps:ft,valueRef:_e,valuesRef:ye,labelsRef:fe,typingRef:be,selectionRef:we,firstItemTextRef:Se,selectedItemTextRef:Ce,validation:z,onOpenChangeComplete:S,alignItemWithTriggerActiveRef:Te,initialValueRef:Je}),[q,it,h,H,m,w,O,nt,Qe,ft,z,S,rt]),vt=ve(y,z.inputRef),yt=w?void 0:U,bt=Y.useMemo(()=>!w||!Array.isArray(W)||!U?null:W.map(e=>{let t=Ct(e,E);return(0,X.jsx)(`input`,{type:`hidden`,form:u,name:U,value:t,disabled:H},t)}),[w,W,u,U,E,H]);return(0,X.jsxs)(mt.Provider,{value:Z,children:[k,(0,X.jsx)(`input`,{...z.getValidationProps(H,{onFocus(){q.state.triggerElement?.focus({focusVisible:!0})},onChange(e){if(e.nativeEvent.defaultPrevented||H||m)return;let t=e.currentTarget.value,n=de(se,e.nativeEvent);function r(){if(w)return;let e=t.toLowerCase(),r=ye.current.findIndex(t=>Ct(t,E).toLowerCase()===e||St(t,T).toLowerCase()===e);r===-1&&(r=ye.current.findIndex((t,n)=>{let r=fe.current[n];return r!=null&&r.toLowerCase()===e}));let i=ye.current[r];i!=null&&nt(i,n)}q.set(`forceMount`,!0),queueMicrotask(r)}}),id:V&&yt==null?`${V}-hidden-input`:void 0,form:u,name:yt,autoComplete:d,value:Be,disabled:H,required:h&&!(w&&Xe),readOnly:m,ref:vt,style:U?te:ne,tabIndex:-1,"aria-hidden":!0,suppressHydrationWarning:!0}),bt]})}function jt(e,t){return e??t}var Mt=400,Nt={...Se,...S,popupSide:e=>e?{"data-popup-side":e}:null,value:()=>null},Pt=Y.forwardRef(function(e,t){let{render:r,className:i,id:a,disabled:s=!1,nativeButton:c=!0,style:l,...u}=e,{setTouched:d,setFocused:f,validationMode:p,state:m,disabled:h}=ee(),{labelId:g}=pe(),{store:_,setOpen:v,selectionRef:x,validation:S,readOnly:C,required:w,alignItemWithTriggerActiveRef:T,disabled:D}=Z(),O=h||D||s,k=J(_,Q.open),A=J(_,Q.mounted),j=J(_,Q.value),M=J(_,Q.triggerProps),N=J(_,Q.positionerElement),F=J(_,Q.listElement),I=J(_,Q.popupSide),L=J(_,Q.id),te=J(_,Q.labelId),R=J(_,Q.hasSelectedValue),ne=A&&N?I:null,ie=a??L,z=jt(g,te);n({id:ie});let B=De(N),V=Y.useRef(null),{getButtonProps:U,buttonRef:ae}=o({disabled:O,native:c}),W=_.useStateSetter(`triggerElement`),oe=P(),G=P(),K=P();Y.useEffect(()=>{if(k)return K.start(Mt,()=>{x.current.allowUnselectedMouseUp=!0,x.current.allowSelectedMouseUp=!0}),()=>{K.clear()};x.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0},G.clear()},[k,x,G,K]);let ce=b(M,{id:ie,role:`combobox`,"aria-expanded":k,"aria-haspopup":`listbox`,"aria-controls":k?F?.id??Ae(N)?.id:void 0,"aria-labelledby":z,"aria-readonly":C||void 0,"aria-required":w||void 0,tabIndex:O?-1:0,onFocus(e){f(!0),k&&T.current&&v(!1,de(se,e.nativeEvent)),oe.start(0,()=>{_.set(`forceMount`,!0)})},onBlur(e){E(N,e.relatedTarget)||(d(!0),f(!1),p===`onBlur`&&S.commit(j))},onMouseDown(e){if(k)return;let t=re(e.currentTarget);function n(e){if(!V.current)return;let t=e.target;E(V.current,t)||E(B.current,t)||Xe(e,V.current)||v(!1,de(H,e))}G.start(0,()=>{t.addEventListener(`mouseup`,n,{once:!0})})}},u,U),le=S.getValidationProps(O,ce);le.role=`combobox`;let ue={...m,open:k,disabled:O,value:j,readOnly:C,popupSide:ne,placeholder:!R};return y(`button`,e,{ref:[t,V,ae,W],state:ue,stateAttributesMapping:Nt,props:le})}),Ft={value:()=>null},It=Y.forwardRef(function(e,t){let{className:n,render:r,children:i,placeholder:a,style:o,...s}=e,{store:c,valueRef:l}=Z(),u=J(c,Q.value),d=J(c,Q.items),f=J(c,Q.itemToStringLabel),p=J(c,Q.hasSelectedValue),m=!p&&a!=null&&i==null,h=J(c,Q.hasNullItemLabel,m),g={value:u,placeholder:!p},_=null;return _=typeof i==`function`?i(u):i??(m&&!h?a:Array.isArray(u)?Tt(u,d,f):wt(u,d,f)),y(`span`,e,{state:g,ref:[t,l],props:[{children:_},s],stateAttributesMapping:Ft})}),Lt=Y.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{store:o}=Z(),s={open:J(o,Q.open)};return y(`span`,e,{state:s,ref:t,props:[{"aria-hidden":!0,children:`▼`},a],stateAttributesMapping:_})}),Rt=Y.forwardRef(function(e,t){let{store:n}=Z(),r=J(n,Q.mounted),i=J(n,Q.forceMount);return r||i?(0,X.jsx)(ge,{ref:t,...e}):null}),zt=Y.createContext(void 0);function Bt(){let e=Y.useContext(zt);if(!e)throw Error(g(59));return e}function Vt(e,t){e&&Object.assign(e.style,t)}var Ht={position:`relative`,maxHeight:`100%`,overflowX:`hidden`,overflowY:`auto`},Ut={position:`fixed`},Wt=Y.forwardRef(function(e,t){let{anchor:n,className:r,render:o,positionMethod:s,side:c,align:l,sideOffset:u,alignOffset:d,collisionBoundary:f=`clipping-ancestors`,collisionPadding:p,arrowPadding:h,sticky:g,disableAnchorTracking:_,alignItemWithTrigger:v=!0,collisionAvoidance:y=i,style:ee,...b}=e,{store:x,listRef:S,labelsRef:C,alignItemWithTriggerActiveRef:w,selectedItemTextRef:T,valuesRef:E,initialValueRef:D,popupRef:O,setValue:k,floatingContext:A}=Z(),j=J(x,Q.open),N=J(x,Q.mounted),P=J(x,Q.modal),F=J(x,Q.value),I=J(x,Q.openMethod),L=J(x,Q.positionerElement),te=J(x,Q.triggerElement),R=J(x,Q.isItemEqualToValue),ne=J(x,Q.transitionStatus),re=Y.useRef(null),ie=Y.useRef(null),[z,B]=Y.useState(v),V=N&&z&&I!==`touch`;!N&&z!==v&&B(v),Y.useImperativeHandle(w,()=>V),Je((V||P)&&j,I===`touch`,L,te);let H=m({anchor:n,floatingRootContext:A,positionMethod:s,mounted:N,side:c,sideOffset:u,align:l,alignOffset:d,arrowPadding:h,collisionBoundary:f,collisionPadding:p,sticky:g,disableAnchorTracking:_??V,collisionAvoidance:y,keepMounted:!0}),U=V?`none`:H.side,ae=V?Ut:H.positionerStyles,W={open:j,side:U,align:H.align,anchorHidden:H.anchorHidden};M(()=>{x.set(`popupSide`,H.side)},[x,H.side]);let oe=x.useStateSetter(`positionerElement`),G=a(e,W,{styles:ae,transitionStatus:ne,props:b,refs:[t,oe],hidden:!N,inert:!j}),ce=Y.useRef(0),ue=K(e=>{if(E.current.length===0)return;let t=ce.current;if(ce.current=e.size,e.size===t)return;let n=de(se);if(t!==0&&!x.state.multiple&&F!==null&&_t(E.current,F,R)===-1){let e=D.current,t=e!=null&&_t(E.current,e,R)!==-1?e:null;k(t,n),t===null&&(x.set(`selectedIndex`,null),T.current=null)}if(t!==0&&x.state.multiple&&Array.isArray(F)){let e=F.filter(e=>_t(E.current,e,R)!==-1);e.length!==F.length&&(k(e,n),e.length===0&&(x.set(`selectedIndex`,null),T.current=null))}if(j&&V){x.update({scrollUpArrowVisible:!1,scrollDownArrowVisible:!1});let e={height:``};Vt(L,e),Vt(O.current,e)}}),fe=Y.useMemo(()=>({...H,side:U,alignItemWithTriggerActive:V,setControlledAlignItemWithTrigger:B,scrollUpArrowRef:re,scrollDownArrowRef:ie}),[H,U,V,B]);return(0,X.jsx)(Ue,{elementsRef:S,labelsRef:C,onMapChange:ue,children:(0,X.jsxs)(zt.Provider,{value:fe,children:[N&&P&&(0,X.jsx)(le,{inert:Ie(!j),cutout:te}),G]})})}),Gt=`base-ui-disable-scrollbar`,Kt={className:Gt,getElement(e){return(0,X.jsx)(`style`,{nonce:e,href:Gt,precedence:`base-ui:low`,children:`.${Gt}{scrollbar-width:none}.${Gt}::-webkit-scrollbar{display:none}`})}},qt=Y.createContext(void 0),Jt={disableStyleElements:!1};function Yt(){return Y.useContext(qt)??Jt}var Xt={...f,...L},Zt=Y.forwardRef(function(e,n){let{render:r,className:i,style:a,finalFocus:o,...s}=e,{store:c,popupRef:l,onOpenChangeComplete:u,setOpen:d,valueRef:f,firstItemTextRef:p,selectedItemTextRef:m,multiple:h,handleScrollArrowVisibility:g,scrollHandlerRef:_,listRef:v,highlightItemOnHover:ee,floatingContext:b}=Z(),{side:x,align:S,alignItemWithTriggerActive:C,isPositioned:T,setControlledAlignItemWithTrigger:E}=Bt(),D=He(!0)!=null,k=A(),{nonce:j,disableStyleElements:P}=Yt(),F=J(c,Q.id),I=J(c,Q.open),L=J(c,Q.openMethod),te=J(c,Q.mounted),R=J(c,Q.popupProps),ne=J(c,Q.transitionStatus),z=J(c,Q.triggerElement),B=J(c,Q.positionerElement),V=J(c,Q.listElement),H=Y.useRef(!1),U=Y.useRef(!1),ae=Y.useRef({}),W=t(),oe=K(e=>{if(!B||!l.current||!U.current)return;let t=B.style.top===`0px`,n=B.style.bottom===`0px`;if(H.current||!C||!t&&!n){g(e);return}let r=en(B),i=tn(B.getBoundingClientRect().height,`y`,r),a=re(B),o=he(B),s=o.getComputedStyle(B),c=parseFloat(s.marginTop),u=parseFloat(s.marginBottom),d=Qt(o.getComputedStyle(l.current)),f=Math.min(a.documentElement.clientHeight-c-u,d),p=e.scrollTop,m=$t(e),h=null,_=e=>{B.style.height=`${e}px`},v=t?m-p:p,y=Math.min(i+v,f);if(v<=1){let n=Dt(v,0,f-i);n>0&&_(i+n),e.scrollTop=t?m:0,f-(i+n)<=1&&(H.current=!0),g(e);return}f-y>1?h=t?1/0:0:n&&p<m&&(h=p-(v-(i+v-f)));let ee=Math.ceil(y);if(ee!==0&&_(ee),h!=null){let t=Dt(h,0,$t(e));Math.abs(e.scrollTop-t)>1&&(e.scrollTop=t)}ee>=f-1&&(H.current=!0),g(e)});Y.useImperativeHandle(_,()=>oe,[oe]),xe({open:I,ref:l,onComplete(){I&&u?.(!0)}});let se={open:I,transitionStatus:ne,side:x,align:S};M(()=>{!B||!l.current||Object.keys(ae.current).length||(ae.current={top:B.style.top||`0`,left:B.style.left||`0`,right:B.style.right,height:B.style.height,bottom:B.style.bottom,minHeight:B.style.minHeight,maxHeight:B.style.maxHeight,marginTop:B.style.marginTop,marginBottom:B.style.marginBottom})},[l,B]),M(()=>{I||C||(U.current=!1,H.current=!1,Vt(B,ae.current))},[I,C,B,l]),M(()=>{let e=l.current;if(!I||!z||!B||!e||C&&!T||c.state.transitionStatus===`ending`)return;if(U.current=!0,e.style.removeProperty(`--transform-origin`),!C){W.request(()=>g(V||e));return}let t=an(e);try{let t=m.current;t?.isConnected||(t=!Q.hasSelectedValue(c.state)&&p.current?.isConnected?p.current:null);let n=f.current,r=he(B),i=r.getComputedStyle(B),a=r.getComputedStyle(e),o=re(z),s=en(z),l=nn(z.getBoundingClientRect(),s),u=nn(B.getBoundingClientRect(),s),d=l.height,h=V||e,_=h.scrollHeight,y=parseFloat(a.borderBottomWidth),b=parseFloat(i.marginTop)||10,x=parseFloat(i.marginBottom)||10,S=parseFloat(i.minHeight)||100,C=Qt(a),T=o.documentElement.clientHeight-b-x,D=o.documentElement.clientWidth,O=T-l.bottom+d,A,j=k===`rtl`?l.right-u.width:l.left,M=0;if(t&&n){let e=nn(n.getBoundingClientRect(),s);A=nn(t.getBoundingClientRect(),s),j=u.left+(k===`rtl`?e.right-A.right:e.left-A.left);let r=e.top-l.top+e.height/2;M=A.top-u.top+A.height/2-r}let N=O+M+x+y,P=Math.min(T,N),F=T-b-x,I=N-P,L=D-5;B.style.left=`${Dt(j,5,L-u.width)}px`,B.style.height=`${P}px`,B.style.maxHeight=`none`,B.style.marginTop=`${b}px`,B.style.marginBottom=`${x}px`,e.style.height=`100%`;let te=$t(h),R=I>=te-1;R&&(P=Math.min(T,u.height)-(I-te));let ne=l.top<20||l.bottom>T-20||Math.ceil(P)+1<Math.min(_,S),ie=(r.visualViewport?.scale??1)!==1&&w;if(ne||ie){Vt(B,ae.current),E(!1);return}let U=Math.max(S,P);if(R){let e=Math.max(0,T-N);B.style.top=u.height>=F?`0`:`${e}px`,B.style.height=`${P}px`,h.scrollTop=$t(h)}else B.style.bottom=`0`,h.scrollTop=I;if(A){let t=u.top,n=u.height,r=A.top+A.height/2,i=Dt(n>0?(r-t)/n*100:50,0,100);e.style.setProperty(`--transform-origin`,`50% ${i}%`)}(U===T||P>=C)&&(H.current=!0),g(h),ee&&c.state.selectedIndex===null&&c.state.activeIndex===null&&v.current[0]!=null&&c.set(`activeIndex`,0)}finally{t()}},[c,I,B,z,f,p,m,l,g,C,E,W,V,v,ee,k,T]),Y.useEffect(()=>{if(!C||!B||!I)return;let e=he(B);function t(e){d(!1,de(ie,e))}return we(e,`resize`,t)},[d,C,B,I]);let G={...V?{role:`presentation`,"aria-orientation":void 0}:{role:`listbox`,"aria-multiselectable":h||void 0,id:`${F}-list`},onKeyDown(e){D&&Oe.has(e.key)&&e.stopPropagation()},onScroll(e){V||oe(e.currentTarget)},...C&&{style:V?{height:`100%`}:Ht},className:!V&&C?Kt.className:void 0},ce=y(`div`,e,{ref:[n,l],state:se,stateAttributesMapping:Xt,props:[R,G,N(ne),s]});return(0,X.jsxs)(Y.Fragment,{children:[!P&&Kt.getElement(j),(0,X.jsx)(O,{context:b,modal:!1,disabled:!te,openInteractionType:L,returnFocus:o,restoreFocus:!0,children:ce})]})});function Qt(e){let t=e.maxHeight;return t.endsWith(`px`)&&parseFloat(t)||1/0}function $t(e){return Ot(e.scrollHeight,e.clientHeight)}function en(e){return oe.getScale(e)}function tn(e,t,n){return e/n[t]}function nn(e,t){return Ce({x:tn(e.x,`x`,t),y:tn(e.y,`y`,t),width:tn(e.width,`x`,t),height:tn(e.height,`y`,t)})}var rn=[[`transform`,`none`],[`scale`,`1`],[`translate`,`0 0`]];function an(e){let{style:t}=e,n={};for(let[e,r]of rn)n[e]=t.getPropertyValue(e),t.setProperty(e,r,`important`);return()=>{for(let[e]of rn){let r=n[e];r?t.setProperty(e,r):t.removeProperty(e)}}}var on=Y.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{store:o,scrollHandlerRef:s,multiple:c}=Z(),{alignItemWithTriggerActive:l}=Bt(),u=J(o,Q.hasScrollArrows),d=J(o,Q.openMethod),f={id:`${J(o,Q.id)}-list`,role:`listbox`,"aria-multiselectable":c||void 0,onScroll(e){s.current?.(e.currentTarget)},...l&&{style:Ht},className:u&&d!==`touch`?Kt.className:void 0},p=o.useStateSetter(`listElement`);return y(`div`,e,{ref:[t,p],props:[f,a]})}),sn=Y.createContext(void 0);function cn(){let e=Y.useContext(sn);if(!e)throw Error(g(57));return e}var ln=Y.memo(Y.forwardRef(function(e,t){let{render:n,className:r,style:i,value:a=null,label:s,disabled:c=!1,nativeButton:l=!1,...u}=e,d=Y.useRef(null),f=Ke({guess:!0,label:s,textRef:d}),{store:p,itemProps:m,setOpen:h,setValue:g,selectionRef:_,typingRef:v,valuesRef:ee,multiple:b,selectedItemTextRef:x,disabled:S,readOnly:w}=Z(),T=S||c,E=J(p,Q.isActive,f.index),D=J(p,Q.open),O=J(p,Q.isSelected,a),k=J(p,Q.isSelectedByFocus,f.index),A=J(p,Q.isItemEqualToValue),j=f.index,N=Y.useRef(null);M(()=>{let e=ee.current;return e[j]=a,()=>{delete e[j]}},[j,a,ee]),M(()=>{let e=p.state.value,t=e;b&&Array.isArray(e)&&(t=e.length>0?e[e.length-1]:void 0),t!==void 0&&gt(a,t,A)&&(p.set(`selectedIndex`,j),d.current&&(x.current=d.current))},[j,b,A,p,a,x]);let P=Y.useRef(`mouse`),F=Y.useRef(!1),{getButtonProps:I,buttonRef:L}=o({disabled:T,focusableWhenDisabled:!0,native:l,composite:!0}),te={disabled:T,selected:O,highlighted:E};function R(e){if(S||w)return;let t=p.state.value;if(b){let n=Array.isArray(t)?t:[],r=O?vt(n,a,A):[...n,a];g(r,de(_e,e))}else g(a,de(_e,e)),h(!1,de(_e,e))}function ne(){_.current.dragY=0}let re={role:`option`,"aria-selected":O,tabIndex:D&&E?0:-1,onKeyDown(e){p.set(`activeIndex`,j),e.key===` `&&v.current&&e.preventDefault()},onClick(e){let t=P.current!==`touch`,n=e.nativeEvent.pointerType,r=t&&C(e.nativeEvent)&&(n!==void 0||E),i=t&&!r&&!F.current;F.current=!1,!(T||i)&&R(e.nativeEvent)},onPointerEnter(e){P.current=e.pointerType},onPointerMove(e){if(e.pointerType===`mouse`&&e.buttons===1){let t=_.current;t.dragY+=e.movementY,t.dragY**2>=64&&(t.allowUnselectedMouseUp=!0)}},onPointerDown(e){P.current=e.pointerType,F.current=!0,ne()},onMouseUp(){if(ne(),T||P.current===`touch`||F.current)return;let e=!_.current.allowSelectedMouseUp&&O,t=!_.current.allowUnselectedMouseUp&&!O;e||t||(F.current=!0,N.current?.click(),F.current=!1)}},ie=y(`div`,e,{ref:[L,t,f.ref,N],state:te,props:[m,re,u,I]}),z=Y.useMemo(()=>({selected:O,index:j,textRef:d,selectedByFocus:k}),[O,j,d,k]);return(0,X.jsx)(sn.Provider,{value:z,children:ie})})),un=Y.forwardRef(function(e,t){let{selected:n}=cn();return e.keepMounted||n?(0,X.jsx)(dn,{...e,ref:t}):null}),dn=Y.memo(Y.forwardRef((e,t)=>{let{render:n,className:r,style:i,keepMounted:a,...o}=e,{selected:s}=cn(),c=Y.useRef(null),{transitionStatus:l,setMounted:u}=ue(s),d=y(`span`,e,{ref:[t,c],state:{selected:s,transitionStatus:l},props:[{"aria-hidden":!0,children:`✔️`},o],stateAttributesMapping:L});return xe({open:s,ref:c,onComplete(){s||u(!1)}}),d})),fn=Y.memo(Y.forwardRef(function(e,t){let{index:n,textRef:r,selectedByFocus:i}=cn(),{firstItemTextRef:a,selectedItemTextRef:o}=Z(),{render:s,className:c,style:l,...u}=e,d=Y.useCallback(e=>{e&&(n===0&&(a.current=e),i&&(o.current=e))},[a,o,n,i]);return y(`div`,e,{ref:[d,t,r],props:u})})),pn=Y.createContext(void 0),mn=Y.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,[o,s]=Y.useState(),c=Y.useMemo(()=>({labelId:o,setLabelId:s}),[o,s]),l=y(`div`,e,{ref:t,props:[{role:`group`,"aria-labelledby":o},a]});return(0,X.jsx)(pn.Provider,{value:c,children:l})}),hn=At;function gn({className:e,...t}){return(0,X.jsx)(mn,{"data-slot":`select-group`,className:q(`scroll-my-1 p-1`,e),...t})}function _n({className:e,...t}){return(0,X.jsx)(It,{"data-slot":`select-value`,className:q(`flex flex-1 text-left`,e),...t})}function vn({className:e,size:t=`default`,flat:n=!1,children:r,...i}){return(0,X.jsxs)(Pt,{"data-slot":`select-trigger`,"data-size":t,"data-flat":n?`true`:void 0,className:q(`flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,n&&`rounded-none border-0 bg-transparent shadow-none hover:bg-transparent focus-visible:border-0 focus-visible:ring-0 dark:bg-transparent dark:hover:bg-transparent`,e),...i,children:[r,(0,X.jsx)(Lt,{render:(0,X.jsx)(k,{icon:ye,className:`pointer-events-none size-4 text-muted-foreground`,strokeWidth:1.5})})]})}function yn({className:e,children:t,side:n=`bottom`,sideOffset:r=4,align:i=`center`,alignOffset:a=0,alignItemWithTrigger:o=!0,...s}){return(0,X.jsx)(Rt,{children:(0,X.jsx)(Wt,{side:n,sideOffset:r,align:i,alignOffset:a,alignItemWithTrigger:o,className:`isolate z-50`,children:(0,X.jsx)(Zt,{"data-slot":`select-content`,"data-align-trigger":o,className:q(`cn-menu-target cn-menu-translucent relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...s,children:(0,X.jsx)(on,{children:t})})})})}function bn({className:e,children:t,...n}){return(0,X.jsxs)(ln,{"data-slot":`select-item`,className:q(`relative flex w-full cursor-default items-center gap-2 rounded-md py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...n,children:[(0,X.jsx)(fn,{className:`flex min-w-0 flex-1 items-center gap-2`,children:t}),(0,X.jsx)(un,{render:(0,X.jsx)(`span`,{className:`pointer-events-none absolute top-1/2 right-2 flex size-4 -translate-y-1/2 items-center justify-center`}),children:(0,X.jsx)(k,{icon:Ee,className:`pointer-events-none size-3.5`,strokeWidth:1.5})})]})}var xn=new Set([`ALL`,`SELECT`,`INSERT`,`UPDATE`,`DELETE`]),Sn=new Set([`PERMISSIVE`,`RESTRICTIVE`]),Cn=new Set([`public`,`current_role`,`current_user`,`session_user`]),wn=`oke_app`;`${[`CREATE SCHEMA IF NOT EXISTS oke`,`SET search_path TO public, oke`,`DO $oke_search_path$
2
- BEGIN
3
- EXECUTE 'ALTER ROLE CURRENT_USER SET search_path TO public, oke';
4
- EXCEPTION
5
- WHEN others THEN NULL;
6
- END
7
- $oke_search_path$`,`DO $oke_rehome$
8
- DECLARE r record;
9
- BEGIN
10
- FOR r IN
11
- SELECT c.relname AS name
12
- FROM pg_class c
13
- JOIN pg_namespace n ON n.oid = c.relnamespace
14
- WHERE n.nspname = 'oke' AND c.relkind = 'r'
15
- LOOP
16
- IF NOT EXISTS (
17
- SELECT 1
18
- FROM pg_class c2
19
- JOIN pg_namespace n2 ON n2.oid = c2.relnamespace
20
- WHERE n2.nspname = 'public' AND c2.relname = r.name AND c2.relkind = 'r'
21
- ) THEN
22
- EXECUTE format('ALTER TABLE oke.%I SET SCHEMA public', r.name);
23
- END IF;
24
- END LOOP;
25
- END
26
- $oke_rehome$`,`CREATE OR REPLACE FUNCTION oke.gate() RETURNS text
27
- LANGUAGE sql STABLE AS $$ SELECT current_setting('oke.gate', true) $$`,`CREATE OR REPLACE FUNCTION oke.user() RETURNS text
28
- LANGUAGE sql STABLE AS $$ SELECT current_setting('oke.user', true) $$`,`CREATE OR REPLACE FUNCTION oke.has_scope(p_scope text) RETURNS boolean
29
- LANGUAGE sql STABLE AS $$
30
- SELECT CASE
31
- WHEN current_setting('oke.scopes', true) IN ('') THEN false
32
- ELSE jsonb_exists(current_setting('oke.scopes', true)::jsonb, p_scope)
33
- END
34
- $$`,`DO $oke_rls_role$
35
- BEGIN
36
- CREATE ROLE ${wn} NOSUPERUSER NOBYPASSRLS NOLOGIN;
37
- EXCEPTION
38
- WHEN duplicate_object THEN NULL;
39
- END
40
- $oke_rls_role$`,`GRANT USAGE ON SCHEMA public TO ${wn}`,`GRANT USAGE ON SCHEMA oke TO ${wn}`,`GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA oke TO ${wn}`,`GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO ${wn}`,`ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO ${wn}`,`GRANT ${wn} TO CURRENT_USER`,`DO $oke_app_search_path$
41
- BEGIN
42
- EXECUTE 'ALTER ROLE ${wn} SET search_path TO public, oke';
43
- EXCEPTION
44
- WHEN others THEN NULL;
45
- END
46
- $oke_app_search_path$`].join(`;
47
- `)}`;function Tn(e){return`"${e.replaceAll(`"`,``)}"`}function En(e){return/^[A-Za-z][A-Za-z0-9_]*$/.test(e)}function Dn(e){return/^[A-Za-z][A-Za-z0-9_ -]{0,62}$/.test(e)}function On(e){let t=e.trim();return t.length>0&&t.length<=2e3&&!/;/.test(t)&&!/--/.test(t)&&!/\/\*/.test(t)}function kn(e){if(typeof e!=`string`)return null;let t=e.trim().toUpperCase();return xn.has(t)?t:null}function An(e){if(typeof e!=`string`)return null;let t=e.trim().toUpperCase();return Sn.has(t)?t:null}function jn(e){let t=e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0);if(t.length===0)return[`public`];for(let e of t)if(!Mn(e))return null;return t}function Mn(e){return Cn.has(e.toLowerCase())||En(e)}function Nn(e){return Cn.has(e.toLowerCase())?e.toLowerCase():Tn(e)}function Pn(e,t){let n=t?`ENABLE`:`DISABLE`;return`ALTER TABLE ${Tn(e)} ${n} ROW LEVEL SECURITY`}function Fn(e){let t=typeof e.name==`string`?e.name.trim():``,n=typeof e.table==`string`?e.table.trim():``;if(!Dn(t))throw Error(`invalid policy name "${t}"`);if(!En(n))throw Error(`invalid table name "${n}"`);let r=kn(e.command)??kn(e.for)??`SELECT`,i=An(e.behavior??e.permissive??e.as)??`PERMISSIVE`,a=jn(In(e.roles??e.to));if(!a)throw Error(`invalid policy roles`);let o=typeof e.using==`string`?e.using.trim():``,s=e.withCheck??e.with_check,c=typeof s==`string`?s.trim():``;if(o!==``&&!On(o))throw Error(`invalid USING expression`);if(c!==``&&!On(c))throw Error(`invalid WITH CHECK expression`);if(o===``&&c===``)throw Error(`policy needs USING or WITH CHECK`);return{name:t,table:n,command:r,behavior:i,roles:a,...o===``?{}:{using:o},...c===``?{}:{withCheck:c}}}function In(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>typeof e==`string`).join(`, `):`public`}function Ln(e){let t=e.roles.length===1?JSON.stringify(zn(e.roles[0])):`[${e.roles.map(e=>JSON.stringify(zn(e))).join(`, `)}]`,n=[`pgPolicy(${JSON.stringify(e.name)}, {`,` as: ${JSON.stringify(e.behavior.toLowerCase())},`,` to: ${t},`,` for: ${JSON.stringify(e.command.toLowerCase())},`];return e.using!==void 0&&e.using.trim()!==``&&n.push(` using: sql\`${Bn(e.using.trim())}\`,`),e.withCheck!==void 0&&e.withCheck.trim()!==``&&n.push(` withCheck: sql\`${Bn(e.withCheck.trim())}\`,`),n.push(`})`),n.join(`
48
- `)}function Rn(e){let t=e.roles.length===1?JSON.stringify(zn(e.roles[0])):`[${e.roles.map(e=>JSON.stringify(zn(e))).join(`, `)}]`,n=[`store.schema.policy(${JSON.stringify(e.name)}, {`,` as: ${JSON.stringify(e.behavior.toLowerCase())},`,` to: ${t},`,` for: ${JSON.stringify(e.command.toLowerCase())},`];return e.using!==void 0&&e.using.trim()!==``&&n.push(` using: ${JSON.stringify(e.using.trim())},`),e.withCheck!==void 0&&e.withCheck.trim()!==``&&n.push(` withCheck: ${JSON.stringify(e.withCheck.trim())},`),n.push(`})`),n.join(`
49
- `)}function zn(e){return Cn.has(e.toLowerCase())?e.toLowerCase():e}function Bn(e){return e.replaceAll(`\\`,`\\\\`).replaceAll("`","\\`")}var Vn=[`console.gates.list`];function Hn(e=!0){return l({queryKey:Vn,enabled:e,queryFn:async()=>{let e=await s();if(e.error)throw Error(e.error.code);return e.data??null}})}var Un=[`pii:reveal`,`console:flows:invoke-as`,`console:store.sql:read`,`console:store.sql:write`,`console:signals:replay`,`console:signals:purge`,`store.sql:read`,`store.sql:write`,`store.kv:read`,`store.kv:write`,`signals:replay`,`vault:read`];function Wn(e){let t=new Set(Un);for(let[n,r]of Object.entries(e.flows??{})){let e=Gn(n);t.add(e),r.plane===`operator`&&!e.startsWith(`console:`)&&t.add(`console:${e}`);for(let e of r.gates??[])e.includes(`:`)&&!e.startsWith(`rate:`)&&t.add(e)}for(let[n,r]of Object.entries(e.gates??{}))if(r.kind!==`all`){(r.kind===`policy`||n.includes(`:`))&&(n.startsWith(`rate:`)||t.add(n));for(let e of r.scopes??[])t.add(e)}for(let n of qn(e,`reads`))t.add(Kn(n,`read`));for(let n of qn(e,`writes`))t.add(Kn(n,`write`));return[...t].sort((e,t)=>e.localeCompare(t))}function Gn(e){let t=e.indexOf(`.`);return t===-1?e:`${e.slice(0,t)}:${e.slice(t+1)}`}function Kn(e,t){return`store.${e.split(`:`)[0]??e}:${t}`}function qn(e,t){let n=[];for(let r of Object.values(e.flows??{})){let e=r.effects?.[t];e&&n.push(...e)}return n}var Jn=248,Yn=32,Xn=22,Zn=4;function Qn(e){return Yn+Math.max(e,1)*Xn+Zn}function $n(e,t,n){return t.id===n.id?`self`:e.unique===!0||e.primaryKey===!0?`one-to-one`:br(t)?`many-to-many`:`many-to-one`}function er(e,t){let n=e===`one-to-one`?`One-to-one`:e===`many-to-many`?`Many-to-many`:e===`self`?`Self`:`Many-to-one`;return t.length>0?`${n} ${t}`:n}function tr(e,t){let n=[];for(let r of e)if(r.facet===`sql`)for(let e of r.children){if(rt(e))continue;let i=t?.stores?.[r.name]?.tables?.[e.name];n.push({id:e.effectRef,name:e.name,storeName:r.name,storeRef:r.ref,rls:i?.rls===!0||Object.keys(i?.policies??{}).length>0,columns:sr(r,e.name,e.columnDescriptions,e.piiColumns,t)})}return ur(n)}function nr(e){let t=new Set(e.map(e=>e.storeRef)).size>1,n=vr(e,gr(e));return{tables:e,nodes:yr(e,n,t),edges:n}}function rr(e,t){if(!t)return null;let n=new Set([t]);for(let r of e)r.source===t&&n.add(r.target),r.target===t&&n.add(r.source);return n.size>1?n:null}function ir(e,t,n,r=[],i=!0){let a=t.trim().toLowerCase(),o=i?rr(r,n):null;return e.map(e=>{let t=a.length===0||e.data.table.name.toLowerCase().includes(a)||e.data.table.storeName.toLowerCase().includes(a),r=n!==null&&e.id===n,i=a.length>0&&!t,s=o!==null&&!o.has(e.id);return{...e,data:{...e.data,dimmed:i||s,selected:r}}})}function ar(e,t,n=!0,r=!0){let i=n?rr(e,t):null;return e.map(e=>{let n=i!==null&&e.source!==t&&e.target!==t,a=i!==null&&!n;return{...e,animated:r&&a,style:{...e.style,opacity:n?.14:1,strokeWidth:a?2.25:n?1:1.5}}})}function or(e){let t=[],n=null;for(let r of e){r.storeName!==n&&(t.push(`-- ${r.storeName}`),n=r.storeName);let e=r.columns.map(e=>{let t=[` ${xr(e.name)}`,e.type];if(e.primaryKey?t.push(`PRIMARY KEY`):e.nullable===!1&&t.push(`NOT NULL`),e.unique&&!e.primaryKey&&t.push(`UNIQUE`),e.references?.table&&e.inferredRef!==!0){let n=e.references.column?`${xr(e.references.table)} (${xr(e.references.column)})`:xr(e.references.table);t.push(`REFERENCES ${n}`)}return t.join(` `)}),i=e.length>0?`\n${e.join(`,
50
- `)}\n`:`
51
- `;t.push(`CREATE TABLE ${xr(r.name)} (${i});`)}return t.join(`
52
-
53
- `)}function sr(e,t,n,r,i){let a=i?.stores?.[e.name]?.tables?.[t];if(a?.columns)return cr(a.columns,r);let o=$e(r);return[...new Set([...Object.keys(n),...r])].map(e=>({name:e,type:`unknown`,...o.has(e)?{pii:!0}:{}}))}function cr(e,t){let n=$e(t);return Object.entries(e).map(([e,t])=>{let r=lr(t)?t:null,i=r?.type===`integer`?`integer`:r?.type===`text`?`text`:`unknown`,a=t.pii===!0||n.has(e),o=r?.references;return{name:e,type:i,...a?{pii:!0}:{},...r?.primaryKey===!0?{primaryKey:!0}:{},...r?.unique===!0?{unique:!0}:{},...r?.nullable===!1||r?.primaryKey===!0?{nullable:!1}:{nullable:!0},...o?.table?{references:{table:o.table,...o.column?{column:o.column}:{}}}:{}}})}function lr(e){return`type`in e||`nullable`in e||`primaryKey`in e||`unique`in e||`sqlName`in e||`description`in e||`references`in e||`default`in e}function ur(e){return e.map(t=>({...t,columns:t.columns.map(n=>{if(n.references?.table)return n;let r=dr(t,n.name,e);return r?{...n,references:r,inferredRef:!0}:n})}))}function dr(e,t,n){let r=n.filter(t=>t.storeRef===e.storeRef),i=e=>e.columns.find(e=>e.primaryKey)?.name??`id`;if(t===`parent_id`||t===`parentId`)return e.columns.some(e=>e.name===`parent_kind`||e.name===`parentKind`)?null:{table:e.name,column:i(e)};let a=fr(t);if(!a)return null;let o=pr(a,e,r);return o?{table:o.name,column:i(o)}:null}function fr(e){return e===`id`||e===`Id`?null:e.endsWith(`_id`)&&e.length>3?e.slice(0,-3):e.endsWith(`Id`)&&e.length>2?e.slice(0,-2):null}function pr(e,t,n){let r=hr(e),i=[e,r,mr(e),mr(r)];for(let e of i){let r=n.find(t=>t.name===e);if(r)return r.id===t.id?null:r}let a=[`_${mr(r)}`,`_${r}`,`_${mr(e)}`,`_${e}`],o=n.filter(e=>e.id!==t.id&&a.some(t=>e.name.endsWith(t)));return o.length===1?o[0]??null:null}function mr(e){return e.endsWith(`y`)&&!/[aeiou]y$/i.test(e)?`${e.slice(0,-1)}ies`:/(?:s|x|z|ch|sh)$/i.test(e)?`${e}es`:`${e}s`}function hr(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).replace(/([A-Z])([A-Z][a-z])/g,`$1_$2`).toLowerCase()}function gr(e){let t=new Map;for(let n of e){let e=[n.name.toLowerCase(),n.id.toLowerCase()];for(let r of e){let e=t.get(r)??[];e.push(n),t.set(r,e)}}return t}function _r(e,t,n){let r=n.get(t.toLowerCase())??[];return r.length===0?null:r.find(t=>t.storeRef===e.storeRef)??r[0]??null}function vr(e,t){let n=[],r=new Set;for(let i of e)for(let e of i.columns){let a=e.references;if(!a?.table)continue;let o=_r(i,a.table,t);if(!o)continue;let s=a.column??o.columns.find(e=>e.primaryKey)?.name,c=`${i.id}.${e.name}->${o.id}.${s??`*`}`;if(r.has(c))continue;r.add(c);let l=e.inferredRef===!0,u=$n(e,i,o);n.push({id:c,source:i.id,target:o.id,sourceHandle:`out:${e.name}`,...s?{targetHandle:`in:${s}`}:{},type:`relation`,animated:!1,markerEnd:{type:Be.ArrowClosed,width:16,height:16,color:`#38BDF8`},style:{stroke:`#38BDF8`,strokeWidth:1.5,...l?{strokeDasharray:`5 4`}:{}},data:{kind:`references`,inferred:l,relation:u,column:e.name}})}return n}function yr(e,t,n){let r=new Qe.graphlib.Graph;r.setGraph({rankdir:`LR`,align:`UL`,nodesep:72,ranksep:160,edgesep:28,marginx:40,marginy:40}),r.setDefaultEdgeLabel(()=>({}));for(let t of e)r.setNode(t.id,{width:Jn,height:Qn(t.columns.length)});let i=new Set;for(let e of t){let t=`${e.source}->${e.target}`;i.has(t)||!r.hasNode(e.source)||!r.hasNode(e.target)||(i.add(t),r.setEdge(e.source,e.target))}return Qe.layout(r),e.map(e=>{let t=r.node(e.id),i=Qn(e.columns.length);return{id:e.id,type:`table`,position:{x:(t?.x??0)-Jn/2,y:(t?.y??0)-i/2},data:{table:e,showStore:n},width:Jn,height:i,style:{width:Jn,height:i}}})}function br(e){return e.columns.filter(t=>t.references?.table&&t.references.table!==e.name).length<2?!1:e.columns.every(e=>e.primaryKey===!0||e.references!==void 0)}function xr(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)?e:`"${e.replaceAll(`"`,`""`)}"`}var $=`oke.gate()`,Sr=`oke.user()`,Cr=[{id:`read-all`,name:`read_all`,title:`Enable read access for everyone`,detail:`SELECT using true. Any role that reaches the table can read.`,command:`SELECT`,using:`true`},{id:`deny-read`,name:`deny_read`,title:`Deny all reads`,detail:`SELECT using false. Rows stay hidden until another policy allows them.`,command:`SELECT`,using:`false`},{id:`owner-read`,name:`owner_read`,title:`Enable read for owners`,detail:`SELECT when a text owner column matches oke.user().`,command:`SELECT`,using:`owner = ${Sr}`},{id:`gate-read`,name:`gate_read`,title:`Enable read when oke.gate() matches`,detail:`SELECT when ${$} equals a Gate name (pair Policy & scope).`,command:`SELECT`,using:`${$} = 'member'`},{id:`join-read`,name:`join_read`,title:`Enable read via a related table`,detail:`SELECT with EXISTS against members — membership joins, not a column on this table.`,command:`SELECT`,using:`exists (select 1 from members m where m.user_id = oke.user() and m.team_id = team_id)`},{id:`insert-all`,name:`insert_all`,title:`Enable insert for everyone`,detail:`INSERT WITH CHECK true. New rows are accepted without a row predicate.`,command:`INSERT`,withCheck:`true`},{id:`insert-owner`,name:`insert_owner`,title:`Enable insert for owners`,detail:`INSERT WITH CHECK so new rows set owner to oke.user().`,command:`INSERT`,withCheck:`owner = ${Sr}`},{id:`insert-gate`,name:`insert_gate`,title:`Enable insert when oke.gate() matches`,detail:`INSERT WITH CHECK when ${$} equals a Gate name.`,command:`INSERT`,withCheck:`${$} = 'member'`},{id:`update-owner`,name:`update_owner`,title:`Enable update for owners`,detail:`UPDATE own rows. USING and WITH CHECK both require owner = oke.user().`,command:`UPDATE`,using:`owner = ${Sr}`,withCheck:`owner = ${Sr}`},{id:`update-gate`,name:`update_gate`,title:`Enable update when oke.gate() matches`,detail:`UPDATE when ${$} equals a Gate name.`,command:`UPDATE`,using:`${$} = 'member'`,withCheck:`${$} = 'member'`},{id:`delete-owner`,name:`delete_owner`,title:`Enable delete for owners`,detail:`DELETE when a text owner column matches oke.user().`,command:`DELETE`,using:`owner = ${Sr}`},{id:`deny-delete`,name:`deny_delete`,title:`Deny all deletes`,detail:`DELETE using false. Rows cannot be removed until another policy allows it.`,command:`DELETE`,using:`false`},{id:`all-owner`,name:`owner_all`,title:`Enable all commands for owners`,detail:`ALL commands when owner = oke.user() (USING and WITH CHECK).`,command:`ALL`,using:`owner = ${Sr}`,withCheck:`owner = ${Sr}`},{id:`all-gate`,name:`gate_all`,title:`Enable all commands when oke.gate() matches`,detail:`ALL commands when ${$} equals a Gate name.`,command:`ALL`,using:`${$} = 'member'`,withCheck:`${$} = 'member'`},{id:`restrictive-gate`,name:`restrictive_gate`,title:`Restrictive extra Gate check`,detail:`RESTRICTIVE policy ANDs with permissive ones. Requires oke.gate() to be set.`,command:`ALL`,behavior:`RESTRICTIVE`,using:`${$} is not null`,withCheck:`${$} is not null`}];function wr(e,t){let n=t.trim().toLowerCase();return n===``?e:e.filter(e=>[e.id,e.name,e.title,e.detail,e.command,e.behavior??``].some(e=>e.toLowerCase().includes(n)))}var Tr=[`SELECT`,`INSERT`,`UPDATE`,`DELETE`,`ALL`];function Er(e){return e===`INSERT`?{using:!1,withCheck:!0}:e===`UPDATE`||e===`ALL`?{using:!0,withCheck:!0}:{using:!0,withCheck:!1}}function Dr(e){return e===`SELECT`?`read`:e===`ALL`?`both`:`write`}function Or(e,t){return e===`read`?`SELECT`:e===`both`?`ALL`:t===`INSERT`||t===`UPDATE`||t===`DELETE`?t:`INSERT`}function kr(e){return e===`read`?[`store.sql:read`]:e===`write`?[`store.sql:write`]:[`store.sql:read`,`store.sql:write`]}function Ar(e){return`${Rn(e)}\n\n${Ln(e)}`}function jr(e){return e.length===0?`true`:e.map(e=>{let t=`'${e.replaceAll(`'`,`''`)}'`;return e.includes(`:`)?`oke.has_scope(${t})`:`oke.gate() = ${t}`}).join(` OR `)}function Mr(e,t){let n=Gr(e);return t?`${Pn(e.table,!0)};\n${n};`:`${n};`}var Nr=[`owner`,`owner_id`,`owner_email`,`user_id`,`created_by`,`creator`,`creator_id`,`creator_email`,`author`,`author_id`,`author_email`];function Pr(e,t,n){let r=t.indexOf(`:`),i=r>=0?t.slice(r+1):t,a=e?.stores?.[i]?.tables?.[n]?.columns??{};return Object.entries(a).map(([e,t])=>{let n=Wr(e,t),r=Ir(t)?t:null,i=r?.primaryKey===!0,a=r?.references?.table!==void 0,o=!a&&!i&&fr(n)!==null;return{sqlName:n,primaryKey:i,foreignKey:a||o,unique:r?.unique===!0&&!i,inferred:o}})}function Fr(e,t,n){return Pr(e,t,n).map(e=>e.sqlName)}function Ir(e){return`type`in e||`nullable`in e||`primaryKey`in e||`unique`in e||`sqlName`in e||`description`in e||`references`in e||`default`in e}function Lr(e){let t=new Map(e.map(e=>[e.toLowerCase(),e]));for(let e of Nr){let n=t.get(e);if(n)return n}return null}function Rr(e,t){return e.replace(/\bowner\b/g,t)}function zr(e){return/\bowner\b/.test(e)}function Br(e){return zr(e.using??``)||zr(e.withCheck??``)}function Vr(e){return zr(e)||/oke\.user\(\)/.test(e)}function Hr(e,t,n){if(!n||t===n)return e;let r=e;return zr(r)&&(r=Rr(r,n)),t!==``&&t!==`owner`&&(r=r.replace(RegExp(`\\b${Ur(t)}\\b`,`g`),n)),r}function Ur(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Wr(e,t){return t&&typeof t==`object`&&`sqlName`in t&&typeof t.sqlName==`string`?t.sqlName:e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).replace(/([A-Z])([A-Z][a-z])/g,`$1_$2`).toLowerCase()}function Gr(e){let t=e.roles.length===0?`public`:e.roles.map(e=>Nn(e)).join(`, `),n=[`CREATE POLICY ${Tn(e.name)}`,` ON ${Tn(e.table)}`,` AS ${e.behavior}`,` FOR ${e.command}`,` TO ${t}`];return e.using!==void 0&&e.using.trim()!==``&&n.push(` USING (${e.using.trim()})`),e.withCheck!==void 0&&e.withCheck.trim()!==``&&n.push(` WITH CHECK (${e.withCheck.trim()})`),n.join(`
54
- `)}var Kr={oke:`1.0`,app:``},qr=`public`;function Jr(e){let t=e??Kr,n=[{name:qr,kind:`public`,variant:`public`,description:`Intentionally unauthenticated`,scopes:[],roles:[]}];for(let[e,r]of Object.entries(t.gates??{})){if(r.kind===`rate`||r.kind===`all`||e.startsWith(`rate:`))continue;let t=r.scopes??[],i=r.roles??[];if(e===`public`){let e=n[0];e&&(n[0]={...e,description:r.description??e.description,scopes:t,roles:i});continue}n.push({name:e,kind:`policy`,variant:ei({name:e,kind:`policy`,scopes:t}),...r.description===void 0?{}:{description:r.description},scopes:t,roles:i})}let r=ri(n.flatMap(e=>[...e.roles]));return{gates:n,actions:Wn(t),roles:r}}function Yr(e,t){if(t===null)return e;let n=ri([...e.roles,...(t.principals??[]).filter(e=>e.kind===`role`).map(e=>e.name)]);return{...e,actions:ri([...t.moduleActions??[],...e.actions]),roles:n}}function Xr(e,t){let n=t.trim().toLowerCase();return n===``?e:{gates:e.gates.filter(e=>$r(n,e.name,e.kind,e.variant,e.description,...e.scopes,...e.roles)),actions:e.actions.filter(e=>$r(n,e)),roles:e.roles.filter(e=>$r(n,e))}}function Zr(e,t){let n=e.filter(e=>e!==`store.sql:read`&&e!==`store.sql:write`);return ri([...kr(Dr(t)),...n])}function Qr(e){return e.gates.length}function $r(e,...t){return t.some(t=>t!==void 0&&t.toLowerCase().includes(e))}function ei(e){return e.kind===`public`||e.name===`public`?`public`:e.scopes.length>0?`scope`:`policy`}function ti(e){return e.gates.filter(e=>e.variant!==`scope`)}function ni(e){return e.gates.filter(e=>e.variant===`scope`)}function ri(e){return[...new Set(e)].sort((e,t)=>e.localeCompare(t))}var ii=[`console.flows.identities`];function ai(){return l({queryKey:ii,queryFn:async()=>{let e=await Ne();if(e.error)throw Error(e.error.code);return e.data?.identities??[]}})}function oi(){return Le({mutationFn:async e=>{let t=await T(e);if(t.error){let e=Error(t.error.code);throw e.code=t.error.code,e.data=t.error.data,e}if(!t.data)throw Error(`Empty invoke response`);return t.data}})}function si(){return Le({mutationFn:async e=>{let t=await W(e);if(t.error){let e=Error(t.error.code);throw e.code=t.error.code,e.data=t.error.data,e}if(!t.data)throw Error(`Empty clock run-now response`);return t.data}})}function ci(e){return e===null||e.length===0?`operator`:e===`public`?`public`:`as`}function li(e){return e.gates.filter(e=>e.kind===`policy`).map(e=>({id:e.name,label:e.name,detail:mi(e)}))}function ui(e,t){let n=[];for(let r of e){if(r.status!==`active`)continue;let e=di(r.scopes,t);e!==null&&n.push({id:r.id,label:r.name||r.email,detail:r.email,gate:e})}return n}function di(e,t){let n=t.gates.filter(e=>e.kind===`policy`);for(let t of e)if(n.some(e=>e.name===t))return t;for(let t of e){let e=n.find(e=>e.roles.includes(t));if(e)return e.name}return null}function fi(e,t,n=()=>[]){let r=t.trim().toLowerCase();return r===``?e:e.filter(e=>[e.id,e.label,e.detail,...n(e)].some(e=>e.toLowerCase().includes(r)))}function pi(e,t,n){return t&&n?`User · ${n}`:t?`User · ${t}`:e&&e.length>0?`Gate · ${e}`:`Gate`}function mi(e){return e.description?e.description:e.roles.length>0?`Roles ${e.roles.join(`, `)}`:e.scopes.length>0?e.scopes.join(` · `):`Policy gate`}function hi({mode:e,active:t,className:n}){let r=`${(0,Y.useId)().replace(/:/g,``)}-hatch`;return(0,X.jsxs)(`svg`,{viewBox:`0 0 72 40`,className:q(`h-10 w-full`,t?`text-foreground`:`text-muted-foreground/70`,n),"aria-hidden":!0,"data-slot":`store-query-gate-viz`,"data-mode":e,children:[(0,X.jsx)(`defs`,{children:(0,X.jsx)(`pattern`,{id:r,width:`4`,height:`4`,patternUnits:`userSpaceOnUse`,patternTransform:`rotate(45)`,children:(0,X.jsx)(`path`,{d:`M0 0 H4`,className:`stroke-current`,strokeWidth:`0.7`,opacity:`0.35`})})}),e===`operator`?(0,X.jsx)(_i,{hatchId:r}):null,e===`public`?(0,X.jsx)(vi,{hatchId:r}):null,e===`as`?(0,X.jsx)(yi,{hatchId:r}):null]})}function gi({hatchId:e}){return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`rect`,{x:`22`,y:`10`,width:`28`,height:`20`,rx:`5`,fill:`url(#${e})`,className:`stroke-current`,strokeWidth:`1.15`}),(0,X.jsx)(`path`,{d:`M22 17 H50`,className:`stroke-current`,strokeWidth:`0.8`,opacity:`0.45`})]})}function _i({hatchId:e}){return(0,X.jsxs)(`g`,{children:[(0,X.jsx)(`path`,{d:`M4 14 C18 14, 18 26, 68 26`,fill:`none`,className:`stroke-sky-500 dark:stroke-sky-400`,strokeWidth:`1.35`,strokeDasharray:`2.4 2`}),(0,X.jsx)(`path`,{d:`M4 26 C18 26, 18 14, 68 14`,fill:`none`,className:`stroke-sky-500 dark:stroke-sky-400`,strokeWidth:`1.35`,strokeDasharray:`2.4 2`}),(0,X.jsx)(gi,{hatchId:e})]})}function vi({hatchId:e}){return(0,X.jsxs)(`g`,{children:[(0,X.jsx)(`path`,{d:`M4 14 H18`,fill:`none`,className:`stroke-current`,strokeWidth:`1.2`,strokeDasharray:`2.4 2`,opacity:`0.55`}),(0,X.jsx)(`path`,{d:`M4 26 H18`,fill:`none`,className:`stroke-current`,strokeWidth:`1.2`,strokeDasharray:`2.4 2`,opacity:`0.55`}),(0,X.jsx)(gi,{hatchId:e}),(0,X.jsx)(`path`,{d:`M54 14 H68`,fill:`none`,className:`stroke-current`,strokeWidth:`1.2`,strokeDasharray:`2.4 2`,opacity:`0.28`}),(0,X.jsx)(`path`,{d:`M54 26 H68`,fill:`none`,className:`stroke-current`,strokeWidth:`1.2`,strokeDasharray:`2.4 2`,opacity:`0.28`})]})}function yi({hatchId:e}){return(0,X.jsxs)(`g`,{children:[(0,X.jsx)(`circle`,{cx:`10`,cy:`16`,r:`3.1`,className:`fill-violet-500 dark:fill-violet-400`}),(0,X.jsx)(`path`,{d:`M5.5 26 C5.5 22.2, 14.5 22.2, 14.5 26`,fill:`none`,className:`stroke-violet-500 dark:stroke-violet-400`,strokeWidth:`1.2`}),(0,X.jsx)(`path`,{d:`M16 20 H22`,fill:`none`,className:`stroke-violet-500 dark:stroke-violet-400`,strokeWidth:`1.25`}),(0,X.jsx)(gi,{hatchId:e}),(0,X.jsx)(`path`,{d:`M50 20 H56`,fill:`none`,className:`stroke-violet-500 dark:stroke-violet-400`,strokeWidth:`1.25`}),(0,X.jsx)(`path`,{d:`M59 13.5 L64.5 17 L59 26.5 L53.5 17 Z`,className:`fill-background stroke-violet-500 dark:stroke-violet-400`,strokeWidth:`1.15`})]})}function bi({children:e}){return(0,X.jsx)(`p`,{className:q(D,`border-b border-border/60 px-2 py-1.5`),children:e})}function xi({label:e,children:t}){return(0,X.jsx)(`div`,{role:`radiogroup`,"aria-label":e,className:`flex items-stretch border-b border-border/60`,children:t})}function Si({mode:e,title:t,caption:n,selected:r,disabled:i=!1,onSelect:a}){return(0,X.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":r,disabled:i,title:n,onClick:a,"data-slot":`store-query-gate-card`,"data-mode":e,className:q(`flex min-w-0 flex-1 flex-col items-stretch gap-1 px-1.5 pt-2 pb-1.5 text-left transition-colors hover:bg-muted/50 hover:text-foreground`,r?`bg-muted/70 text-foreground`:`text-muted-foreground`,i&&`pointer-events-none opacity-40`),children:[(0,X.jsx)(hi,{mode:e,active:r}),(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center justify-center gap-1 px-0.5`,children:[(0,X.jsx)(`span`,{className:`truncate text-[10px] font-medium`,children:t}),r&&e===`as`?(0,X.jsx)(`span`,{className:`max-w-28 truncate text-[10px] text-muted-foreground`,children:n}):null]})]})}function Ci({title:e,badge:t,children:n}){return(0,X.jsxs)(`div`,{className:`px-2 py-2`,"data-slot":`store-query-gate-detail`,children:[(0,X.jsxs)(`p`,{className:`text-[11px] font-medium text-foreground`,children:[e,t?(0,X.jsx)(`span`,{className:`ml-1.5 text-[10px] text-muted-foreground`,children:t}):null]}),(0,X.jsx)(`p`,{className:`mt-0.5 text-[10px] leading-relaxed text-muted-foreground`,children:n})]})}function wi({tab:e,onTabChange:t,policies:n,users:r,asGate:i,asUserId:a,onSelectPolicy:o,onSelectUser:s,hint:l}){let[u,d]=(0,Y.useState)(``),f=e===`user`?r.find(e=>e.id===a):n.find(e=>e.id===i),p=fi(r,u,e=>[e.gate]),m=fi(n,u),g=e===`user`?p:m,_=u.trim()!==``;return(0,X.jsxs)(`div`,{className:`flex flex-col`,"data-slot":`store-query-gate-as`,children:[(0,X.jsxs)(`div`,{className:`flex h-7 items-stretch border-b border-border/60`,role:`tablist`,"aria-label":`As a user or policy`,children:[(0,X.jsx)(Ti,{active:e===`user`,disabled:r.length===0,onClick:()=>t(`user`),children:`User`}),(0,X.jsx)(Ti,{active:e===`policy`,disabled:n.length===0,onClick:()=>t(`policy`),children:`Policy`})]}),(0,X.jsxs)(`label`,{className:`relative block border-b border-border/60`,children:[(0,X.jsx)(k,{icon:h,className:`pointer-events-none absolute top-1/2 left-2 size-3.5 -translate-y-1/2 text-muted-foreground`,"aria-hidden":!0}),(0,X.jsx)(c,{value:u,onChange:e=>d(e.target.value),onKeyDown:e=>e.stopPropagation(),placeholder:e===`user`?`Search users`:`Search policies`,"aria-label":e===`user`?`Search users`:`Search policies`,flat:!0,className:`h-8 pl-7 font-mono text-[12px]`})]}),(0,X.jsx)(`ul`,{role:`listbox`,"aria-label":e===`user`?`Users`:`Policy gates`,className:`max-h-40 overflow-y-auto`,children:g.length===0?(0,X.jsx)(`li`,{className:`px-1 py-2 text-[10px] text-muted-foreground`,children:_?`No matches.`:e===`user`?`No identities map to a policy Gate.`:`No policy Gates declared.`}):e===`user`?p.map(e=>(0,X.jsx)(Ei,{icon:Te,label:e.label,detail:`${e.detail} · ${e.gate}`,selected:e.id===a,onSelect:()=>s(e)},e.id)):m.map(e=>(0,X.jsx)(Ei,{icon:j,label:e.label,detail:e.detail,selected:e.id===i,onSelect:()=>o(e)},e.id))}),l===void 0?f?(0,X.jsx)(`p`,{className:`border-t border-border/60 px-2 py-2 text-[10px] leading-relaxed text-muted-foreground`,children:e===`user`&&a?(0,X.jsxs)(X.Fragment,{children:[`View as `,(0,X.jsx)(`span`,{className:`font-medium text-foreground`,children:f.label}),` via`,` `,(0,X.jsx)(`span`,{className:`font-mono`,children:i}),`.`]}):(0,X.jsxs)(X.Fragment,{children:[f.detail,` Sets `,(0,X.jsx)(`span`,{className:`font-mono`,children:`oke.gate()`}),` /`,` `,(0,X.jsx)(`span`,{className:`font-mono`,children:`oke.user()`}),` for RLS.`]})}):null:l]})}function Ti({active:e,disabled:t,onClick:n,children:r}){return(0,X.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":e,disabled:t,onClick:n,className:q(je,`font-semibold tracking-[0.08em] uppercase`,e?z:Fe,t&&`pointer-events-none opacity-40`),children:r})}function Ei({icon:e,label:t,detail:n,selected:r,onSelect:i}){return(0,X.jsx)(`li`,{children:(0,X.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":r,onClick:i,className:q(ce,`items-start px-2`,r&&`bg-muted/70 text-foreground`),children:[(0,X.jsx)(`span`,{"aria-hidden":!0,className:q(G,r&&`bg-sky-500`)}),(0,X.jsx)(k,{icon:e,className:`mt-0.5 size-3.5 shrink-0 text-muted-foreground`}),(0,X.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,X.jsx)(`span`,{className:`block truncate text-xs font-medium`,children:t}),(0,X.jsx)(`span`,{className:`block truncate text-[10px] text-muted-foreground`,children:n})]}),r?(0,X.jsx)(k,{icon:Ee,className:`mt-0.5 size-3.5 shrink-0`}):null]})})}function Di({allOpen:e,disabled:t,onToggle:n,collapseLabel:r=`Collapse all`,expandLabel:i=`Expand all`,dataSlot:a,className:o,disclose:s=!1,bare:c=!1}){let l=e?r:i;return(0,X.jsx)(Ze,{label:l,className:c?void 0:`flex self-stretch`,children:(0,X.jsx)(`button`,{type:`button`,"aria-label":l,"aria-expanded":s?e:void 0,"data-slot":a,disabled:t,onClick:e=>{e.stopPropagation(),n()},className:q(c?U:be,o),children:(0,X.jsx)(k,{icon:e?V:ye,className:`size-3.5`,"aria-hidden":!0})})})}export{vn as $,jr as A,ar as B,wr as C,Vr as D,zr as E,Hr as F,Hn as G,tr as H,Pr as I,Tn as J,En as K,Fr as L,Ar as M,Er as N,kr as O,Mr as P,bn as Q,Br as R,Cr as S,Or as T,or as U,ir as V,er as W,yn as X,hn as Y,gn as Z,ni as _,xi as a,rt as at,Zr as b,li as c,it as ct,si as d,_n as et,ai as f,ti as g,Yr as h,Ci as i,st as it,Lr as j,Dr as k,pi as l,Xr as m,wi as n,dt as nt,bi as o,ot,oi as p,Fn as q,Si as r,nt as rt,ci as s,at as st,Di as t,lt as tt,ui as u,Jr as v,Rr as w,Tr as x,Qr as y,nr as z};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$n as t,Ar as n,Br as r,Cr as i,D as a,Di as o,Dr as s,Ei as c,F as l,I as u,Ir as d,Jr as f,Ki as p,Nr as m,Pr as h,Qn as g,R as _,Ri as v,S as y,Sr as b,Tr as x,Ui as S,Zi as C,_r as w,a as T,ci as ee,cr as E,dr as te,ea as D,er as O,fr as k,gr as A,hr as j,i as M,ir as N,l as P,lr as F,mi as ne,na as I,nr as L,o as re,or as R,rr as z,s as ie,sa as ae,sr as B,ta as oe,tr as se,u as ce,ur as le,vr as V,wr as H,xr as ue,yi as de,yr as fe}from"./shortcut-keys-CoqwEIi0.js";import{t as pe}from"./link-COeyggt-.js";import{r as me}from"./react-dom-Bph1y7z7.js";import{A as he}from"./xyflow-D7n4g6go.js";import{C as ge,h as _e,k as ve,l as ye,p as be,s as U,t as xe}from"./sheet-form-Dnwa5oOR.js";import{$ as W,G as Se,Q as G,X as K,Y as q,a as Ce,c as we,d as Te,et as Ee,f as De,h as Oe,i as ke,n as Ae,nt as je,o as Me,p as Ne,r as Pe,s as Fe,t as Ie,u as Le,v as Re}from"./tree-expand-toggle-BgLl34w7.js";import{l as ze}from"./index-Ca3HZMVq.js";import{_ as Be,d as Ve,f as He,g as Ue,h as We,i as Ge,m as Ke,n as qe,p as Je,r as Ye,t as Xe,u as Ze}from"./collapsible-LPqGvfoz.js";import{a as Qe,c as $e,i as et,s as tt,t as nt}from"./highlighted-json-CS_O8L-r.js";import{_ as rt,a as it,d as at,f as ot,g as st,h as ct,m as lt,n as ut,o as dt,p as ft,r as pt,t as mt,u as ht,v as J,y as gt}from"./http-method--sWDdXSB.js";import{c as _t,n as vt,s as yt,t as bt}from"./cache-glyph-F1FI122b.js";import{t as xt}from"./explorer-empty-BvYrygyO.js";import{n as St,o as Ct,r as wt,t as Tt}from"./call-pii-button-DEDCl_j3.js";var Y=e(me(),1),X=he();function Et(e,t){let n=Fe(e.asGate);return n===`operator`?`Operator`:n===`public`?`Public`:e.asUserId?t.find(t=>t.id===e.asUserId)?.name??e.asUserId:e.asGate?`As · ${e.asGate}`:`As`}function Dt(e){let t=Fe(e.asGate);return t===`operator`||t===`public`||!!(e.asUserId||e.asGate)}function Ot({manifest:e,identities:t,value:n,onChange:r}){let i=Se(!0),a=(0,Y.useMemo)(()=>Oe(Re(e),i.data??null),[e,i.data]),o=(0,Y.useMemo)(()=>we(a),[a]),s=(0,Y.useMemo)(()=>Le(t,a),[t,a]),c=a.gates.find(e=>e.kind===`public`)?.description??`Intentionally unauthenticated.`,l=Fe(n.asGate),u=n.asGate!==null,[d,f]=(0,Y.useState)(n.asUserId?`user`:`policy`),p=o.find(e=>e.id===n.asGate)??null,m=s.find(e=>e.id===n.asUserId&&e.gate===n.asGate)??null,h=o.length>0||s.length>0,g=e=>{if(e===`operator`){r({asGate:null,asUserId:null});return}if(e===`public`){r({asGate:`public`,asUserId:null});return}if(l===`as`)return;let t=p?.id??o[0]?.id??s[0]?.gate??null;if(t!==null){if(s[0]&&t===s[0].gate&&o.length===0){f(`user`),r({asGate:s[0].gate,asUserId:s[0].id});return}f(`policy`),r({asGate:t,asUserId:null})}};return(0,X.jsxs)(be,{children:[(0,X.jsx)(ge,{render:e=>(0,X.jsxs)(y,{...e,type:`button`,variant:`ghost`,size:`sm`,className:H(`h-full max-w-44 min-w-0 rounded-none px-2 text-[11px]`,u&&`text-sky-800 dark:text-sky-300`),"aria-label":u?`Invoke as Gate ${n.asGate}`:`Invoke as Operator (bypass gates)`,"data-slot":`call-api-identity`,children:[(0,X.jsx)(x,{icon:Ve.gate.icon,"data-icon":`inline-start`,className:`size-3.5`}),(0,X.jsx)(`span`,{className:`truncate`,children:Et(n,t)})]})}),(0,X.jsxs)(_e,{align:`end`,className:`w-80 overflow-hidden p-0`,children:[(0,X.jsx)(Me,{children:`Invoke as`}),(0,X.jsxs)(Ce,{label:`Invoke as`,children:[(0,X.jsx)(Pe,{mode:`operator`,title:`Operator`,caption:`Bypass`,selected:l===`operator`,onSelect:()=>g(`operator`)}),(0,X.jsx)(Pe,{mode:`public`,title:`Public`,caption:`Anonymous`,selected:l===`public`,onSelect:()=>g(`public`)}),(0,X.jsx)(Pe,{mode:`as`,title:`As`,caption:m?m.label:p?.label??`User / policy`,selected:l===`as`,disabled:!h,onSelect:()=>g(`as`)})]}),l===`operator`?(0,X.jsx)(ke,{title:`Operator`,badge:`Default`,children:`Bypasses the flow's gate chain.`}):null,l===`public`?(0,X.jsxs)(ke,{title:`Public`,children:[c,` Only `,(0,X.jsx)(`span`,{className:`font-mono`,children:`gate.public`}),` flows succeed.`]}):null,l===`as`?(0,X.jsx)(Ae,{tab:d,onTabChange:f,policies:o,users:s,asGate:n.asGate,asUserId:m?.id??null,onSelectPolicy:e=>{f(`policy`),r({asGate:e.id,asUserId:null})},onSelectUser:e=>{f(`user`),r({asGate:e.gate,asUserId:e.id})},hint:m?(0,X.jsxs)(`p`,{className:`border-t border-border/60 px-2 py-2 text-[10px] leading-relaxed text-muted-foreground`,children:[`Calls as `,(0,X.jsx)(`span`,{className:`font-medium text-foreground`,children:m.label}),` `,`via `,(0,X.jsx)(`span`,{className:`font-mono`,children:n.asGate}),`.`]}):p?(0,X.jsxs)(`p`,{className:`border-t border-border/60 px-2 py-2 text-[10px] leading-relaxed text-muted-foreground`,children:[p.detail,` Sets scopes for`,` `,(0,X.jsx)(`span`,{className:`font-mono`,children:p.id}),`.`]}):null}):null]})]})}var kt=new Set([`q`,`query`,`search`,`limit`,`offset`,`cursor`,`page`,`pageSize`,`perPage`,`per_page`,`page_size`,`order`,`orderBy`,`order_by`,`sort`,`sortBy`,`sort_by`,`direction`]);function At(e,t=[]){let n=new Set,r=[];for(let i of t){n.add(i);let t=e.find(e=>e.name===i);r.push(t??jt(i))}let i=[];for(let t of e)n.has(t.name)||(kt.has(t.name)?r.push(t):i.push(t));return{parameters:r,fields:i}}function jt(e){return{path:`/path/${e}`,name:e,type:`string`,required:!0}}function Mt(e,t={}){let n=t.pathParams??[],r=new Set(n);if(t.http!==!0)return{path:[],query:[],body:e};let i=e.filter(e=>!r.has(e.name));return ut(t.method)?{path:n,query:[],body:i}:{path:n,query:i,body:[]}}function Nt(e,t){let n={};for(let r of t)Object.hasOwn(e,r.name)&&(n[r.name]=e[r.name]);return n}function Z(e,t=``){if(!e)return[];if(e.type===`object`||e.properties){let n=e.properties??{},r=new Set(Array.isArray(e.required)?e.required:[]);return Object.entries(n).map(([e,n])=>Pt(e,`${t}/${e}`,n,r.has(e)))}return[Pt(`value`,t||`/`,e,!0)]}function Pt(e,t,n,r){let i=Ft(e,n),a=typeof n.description==`string`?n.description:void 0;if(Array.isArray(n.enum)){let o=Ht(n);return{path:t,name:e,type:`enum`,required:r,enumValues:n.enum.map(String),...a===void 0?{}:{description:a},...o===void 0?{}:{valueMeanings:o},...i}}let o=n.type;if(o===`object`||n.properties)return{path:t,name:e,type:`object`,required:r,...a===void 0?{}:{description:a},...i,children:Z(n,t)};if(o===`array`)return{path:t,name:e,type:`array`,required:r,...a===void 0?{}:{description:a},...i,children:n.items?Z(n.items,`${t}/0`):void 0};let s=o===`integer`||o===`number`||o===`boolean`||o===`string`?o:`unknown`,c=Ht(n);return{path:t,name:e,type:s,required:r,minimum:typeof n.minimum==`number`?n.minimum:void 0,maximum:typeof n.maximum==`number`?n.maximum:void 0,...a===void 0?{}:{description:a},...c===void 0?{}:{valueMeanings:c},...i}}function Ft(e,t){let n=It(e),r=Lt(t.references),i=t.primaryKey===!0||n.primaryKey===!0,a=r!==void 0||n.foreignKey===!0,o=!i&&(t.unique===!0||n.unique===!0);return{...t.pii===!0?{pii:!0}:{},...t.sensitive===!0?{sensitive:!0}:{},...i?{primaryKey:!0}:{},...a?{foreignKey:!0}:{},...o?{unique:!0}:{},...r===void 0?{}:{references:r}}}function It(e){return e===`id`?{primaryKey:!0}:/(?:Id|_id)$/.test(e)||/(?:Key|_key)$/.test(e)&&e!==`key`?{foreignKey:!0}:e===`identifier`||e===`key`?{unique:!0}:{}}function Lt(e){if(!e||typeof e!=`object`)return;let t=`table`in e&&typeof e.table==`string`?e.table:void 0;if(!t)return;let n=`column`in e&&typeof e.column==`string`?e.column:void 0;return n===void 0?{table:t}:{table:t,column:n}}var Rt=12;function zt(e){return e.enumValues&&e.enumValues.length>0?e.enumValues.join(` · `):e.minimum!==void 0&&e.maximum!==void 0?`${e.minimum}–${e.maximum}`:e.minimum===void 0?e.maximum===void 0?null:`≤ ${e.maximum}`:`≥ ${e.minimum}`}function Bt(e){return e.minimum!==void 0&&e.maximum!==void 0?`Must be from ${e.minimum} up to ${e.maximum}.`:e.minimum===void 0?e.maximum===void 0?null:`Must be at most ${e.maximum}.`:`Must be at least ${e.minimum}.`}function Vt(e){return e.filter(e=>e.minimum!==void 0||e.maximum!==void 0||(e.enumValues?.length??0)>0||(e.valueMeanings?.length??0)>0)}function Ht(e){let t=Array.isArray(e.oneOf)?e.oneOf:Array.isArray(e.anyOf)?e.anyOf:null;if(t){let e=[];for(let n of t){if(!n||typeof n!=`object`)continue;let t=n;if(!(`const`in t))continue;let r=String(t.const),i=typeof t.title==`string`?t.title:typeof t.description==`string`?t.description:void 0;i&&e.push({value:r,label:i})}return e.length>0?e:void 0}}function Ut(e){if(e.type!==`integer`||e.minimum===void 0||e.maximum===void 0||!Number.isInteger(e.minimum)||!Number.isInteger(e.maximum))return null;let t=e.maximum-e.minimum;return t<0||t>Rt?null:Array.from({length:t+1},(t,n)=>e.minimum+n)}function Wt(e){return e?Gt(e):{}}function Gt(e){if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum[0];let t=e.type;if(t===`object`||!t&&e.properties){let t=e.properties??{},n=new Set(Array.isArray(e.required)?e.required:[]),r={};for(let[e,i]of Object.entries(t))(n.has(e)||`default`in i||Object.keys(t).length<=4)&&(r[e]=Gt(i));return r}if(t===`array`){let t=e.items;return t?[Gt(t)]:[]}return t===`integer`||t===`number`?typeof e.default==`number`?e.default:typeof e.minimum==`number`?e.minimum:1:t===`boolean`?!1:t===`string`?e.format===`email`?`user@example.com`:e.format===`uuid`?`00000000-0000-4000-8000-000000000001`:typeof e.default==`string`?e.default:e.minLength?`x`.repeat(Number(e.minLength)):``:null}function Kt(e){return!e||typeof e==`string`?null:e}function qt(e,t){if(!e.foreignKey||!t)return null;let n=Zt(t);if(n.length===0)return null;if(e.references?.table){let t=Qt(n,e.references.table);return t?Yt(t,e.references.column??en(t.table)??`id`):null}let r=Xt(e.name);if(!r)return null;let i=$t(n,r.stem);return i?Yt(i,r.kind===`key`?tn(i.table,`key`)??en(i.table)??`id`:en(i.table)??`id`):null}function Jt(e,t){if(!t)return[];let n=new Set,r=[];for(let i of e){let e=i[t.column];if(e==null)continue;let a=String(e);if(n.has(a))continue;n.add(a);let o=t.labelColumn?i[t.labelColumn]:void 0,s=o!=null&&String(o)!==a?String(o):null;r.push({value:a,label:s?`${a} · ${s}`:a})}return r}function Yt(e,t){let n=nn(e.table,t);return{ref:e.ref,child:e.name,column:t,...n===void 0?{}:{labelColumn:n}}}function Xt(e){return e===`id`?null:e.endsWith(`Id`)?{stem:e.slice(0,-2),kind:`id`}:e.endsWith(`_id`)?{stem:e.slice(0,-3),kind:`id`}:e.endsWith(`Key`)?{stem:e.slice(0,-3),kind:`key`}:e.endsWith(`_key`)?{stem:e.slice(0,-4),kind:`key`}:null}function Zt(e){let t=[];for(let[n,r]of Object.entries(e.stores??{}))r.facet!==`sql`||!r.tables||t.push({ref:`sql:${n}`,tables:r.tables});return t}function Qt(e,t){let n=t.toLowerCase();for(let t of e)for(let[e,r]of Object.entries(t.tables))if(e.toLowerCase()===n)return{ref:t.ref,name:e,table:r};return null}function $t(e,t){let n=on(t),r=[t,n,an(t),an(n)].map(e=>e.toLowerCase());for(let t of e)for(let[e,n]of Object.entries(t.tables))if(r.includes(e.toLowerCase()))return{ref:t.ref,name:e,table:n};return null}function en(e){for(let[t,n]of Object.entries(e.columns??{}))if(rn(n)&&n.primaryKey===!0)return t;if(e.columns&&`id`in e.columns)return`id`}function tn(e,t){return e.columns&&t in e.columns?t:void 0}function nn(e,t){if(t!==`name`&&e.columns&&`name`in e.columns)return`name`}function rn(e){return`type`in e||`primaryKey`in e||`references`in e}function an(e){return e.endsWith(`y`)&&!/[aeiou]y$/i.test(e)?`${e.slice(0,-1)}ies`:/(?:s|x|z|ch|sh)$/i.test(e)?`${e}es`:`${e}s`}function on(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).replace(/([A-Z])([A-Z][a-z])/g,`$1_$2`).toLowerCase()}function sn(e){let t=[];for(let n of e.split(`/`))n.startsWith(`:`)&&n.length>1&&t.push(n.slice(1));return t}function cn(e){return`:${e}`}var ln={"attachments:id":`attachments/tsk_eng_12/spec.pdf`,"tasks:id":`tsk_eng_12`,"comments:id":`cmt_1`,"projects:id":`proj_api`,"spaces:id":`space_eng`,"tags:id":`tag_bug`,"tags:tagId":`tag_feature`,"goals:id":`goal_harbor`,"documents:id":`doc_prd_api`,"members:id":`mem_aria`,"forms:id":`form_customer`,"drafts:id":`ENG-12`,"views:id":`view_web_board`,"inbox:id":`inb_1`};function un(e,t){let n=e.split(`/`).filter(Boolean),r=`:${t}`,i=n.indexOf(r),a=i>0?n[i-1]:void 0;return(a?ln[`${a}:${t}`]:void 0)??ln[`:${t}`]}function dn(e,t){let n={};if(!e)return n;for(let r of t){let t=un(e,r);t&&(n[r]=t)}return n}function fn(e,t){let n=e?.flows?.[t],r=n?.trigger?.cron,i=n?.trigger?.every;if(!r&&!i)return{kind:`unmatched`};let a=e?.clocks??{},o=new Set;for(let[e,n]of Object.entries(a)){if(t===e||t.endsWith(`.${e}`)){o.add(e);continue}if(r&&n.cron===r){o.add(e);continue}i&&n.every===i&&o.add(e)}if(o.size!==1)return{kind:`unmatched`};let s=[...o][0],c=a[s];return{kind:`matched`,clockName:s,timezone:c.timezone??null,description:c.description??null,cron:c.cron??null,every:c.every??null}}function pn(e){let t=e.handlerMs!=null&&Number.isFinite(e.handlerMs)?e.handlerMs:null;return t===null?e.rttMs!==null&&Number.isFinite(e.rttMs)?{primaryMs:e.rttMs,primaryKind:`rtt`,rttMs:e.rttMs}:null:{primaryMs:t,primaryKind:`handler`,rttMs:e.rttMs}}function mn(e){let t=new Set;if(!e?.stores)return t;for(let n of Object.values(e.stores)){for(let e of Object.values(n.tables??{}))for(let[n,r]of Object.entries(e.columns??{}))r?.pii&&wt(t,n);for(let[e,r]of Object.entries(n.classifications??{}))if(r&&typeof r==`object`&&!Array.isArray(r)&&`pii`in r&&r.pii){let n=e.includes(`.`)?e.slice(e.lastIndexOf(`.`)+1):e;wt(t,n)}}return t}function hn(e,t,n=St){if(t.size===0||e==null)return e;if(Array.isArray(e))return e.map(e=>hn(e,t,n));if(typeof e==`object`){let r={};for(let[i,a]of Object.entries(e))r[i]=t.has(i)?n:hn(a,t,n);return r}return e}function gn(e){return e.failure==null?e.response!==void 0&&e.response!==null?JSON.stringify(e.response,null,2):JSON.stringify({status:e.status??200,failure:null,response:null},null,2):JSON.stringify({status:e.status??null,failure:e.failure,response:e.response??null},null,2)}function _n(e,t,n){return t&&e.masked===!1?gn({...e,response:hn(e.response,n),failure:e.failure===void 0?void 0:{...e.failure,data:hn(e.failure.data,n)},masked:!0}):gn(e)}function vn(e){let t=e.flow.effects;return!t||(t.writes?.length??0)===0&&(t.emits?.length??0)===0&&(t.sends?.length??0)===0&&(t.asks?.length??0)===0}function yn(e,t){return!t&&vn(e)}function bn(e,t){if(!e)return{ok:!0,errors:[],value:t};let n=[];return xn(e,t,``,n),{ok:n.length===0,errors:n,value:t}}function xn(e,t,n,r){let i=e.type;if(i===`object`||e.properties){if(typeof t!=`object`||!t||Array.isArray(t)){r.push({path:n||`/`,message:`must be object`});return}let i=t,a=e.properties??{},o=Array.isArray(e.required)?e.required:[];for(let e of o)(i[e]===void 0||i[e]===null||i[e]===``)&&r.push({path:`${n}/${e}`,message:`required`});for(let[e,t]of Object.entries(a))i[e]!==void 0&&xn(t,i[e],`${n}/${e}`,r);return}if(Array.isArray(e.enum)){e.enum.map(String).includes(String(t))||r.push({path:n||`/`,message:`invalid enum`});return}i===`string`&&typeof t!=`string`?r.push({path:n||`/`,message:`must be string`}):i===`integer`?typeof t!=`number`||!Number.isInteger(t)?r.push({path:n||`/`,message:`must be integer`}):Sn(e,t,n,r):i===`number`?typeof t!=`number`||Number.isNaN(t)?r.push({path:n||`/`,message:`must be number`}):Sn(e,t,n,r):i===`boolean`&&typeof t!=`boolean`&&r.push({path:n||`/`,message:`must be boolean`})}function Sn(e,t,n,r){let i=typeof e.minimum==`number`?e.minimum:void 0,a=typeof e.maximum==`number`?e.maximum:void 0;i!==void 0&&t<i&&r.push({path:n||`/`,message:`must be ≥ ${i}`}),a!==void 0&&t>a&&r.push({path:n||`/`,message:`must be ≤ ${a}`})}function Cn(e){return JSON.stringify(e,null,2)}function wn({row:e,manifest:t}){let n=J(e.flow.trigger);return n===`cron`||n===`every`?(0,X.jsx)(Tn,{row:e,manifest:t}):(0,X.jsx)(En,{row:e,kind:n,manifest:t})}function Tn({row:e,manifest:t}){let n=(0,Y.useMemo)(()=>fn(t,e.id),[t,e.id]),r=Te(),i=De(),a=Ne(),[s,c]=(0,Y.useState)({asGate:null,asUserId:null}),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)(null);(0,Y.useEffect)(()=>{r.reset(),a.reset(),f(null),u(null)},[e.id]);let p=n.kind===`matched`;async function m(){if(u(performance.now()),p){f(`clock`);try{await r.mutateAsync({name:n.clockName})}catch{}return}if(Dt(s)){f(`invoke`);try{await a.mutateAsync({flowId:e.id,body:{},...s.asUserId?{asUserId:s.asUserId}:{},...s.asGate?{asGate:s.asGate}:{}})}catch{}}}let h=p?r.isPending:a.isPending,g=p?r.isError:a.isError||a.isSuccess&&a.data?.failure!=null,_=p?r.isSuccess:a.isSuccess&&!a.data?.failure,b=l!==null&&(_||g)?performance.now()-l:null,S=(0,Y.useMemo)(()=>p&&r.data?JSON.stringify(r.data,null,2):!p&&a.data?gn(a.data):null,[p,r.data,a.data]),C=p?`Run now`:`Run handler`,w=p?`Run now`:`Run handler once`;return(0,X.jsx)(An,{title:C,dataMode:p?`clock`:`invoke-fallback`,actions:(0,X.jsxs)(X.Fragment,{children:[p?null:(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Ot,{manifest:t,identities:i.data??[],value:s,onChange:c}),(0,X.jsx)(Fn,{})]}),(0,X.jsx)(y,{type:`button`,"data-slot":`call-api-submit`,disabled:h||!p&&!Dt(s),onClick:()=>void m(),className:Pn,children:h?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(x,{icon:o,className:`animate-spin`,"data-icon":`inline-start`}),`Running…`]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(x,{icon:v,"data-icon":`inline-start`}),w]})})]}),children:(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden`,children:[p?(0,X.jsxs)(`p`,{className:`px-3 pt-2.5 pb-2 text-[11px] leading-snug text-muted-foreground`,"data-slot":`clock-path-copy`,children:[`Fires Manifest clock`,` `,(0,X.jsx)(`code`,{className:`rounded bg-muted/50 px-1 py-px font-mono text-[10px]`,children:n.clockName}),` `,`via`,` `,(0,X.jsx)(`code`,{className:`rounded bg-muted/50 px-1 py-px font-mono text-[10px]`,children:`/console/clock/run-now`}),` `,`(lease-gated — the real scheduler path).`,n.timezone?(0,X.jsxs)(X.Fragment,{children:[` `,`Timezone · `,(0,X.jsx)(`span`,{className:`font-mono`,children:n.timezone}),`.`]}):null]}):(0,X.jsxs)(`div`,{className:`mx-3 mt-2.5 rounded-md border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-[11px] leading-snug text-foreground/90`,"data-slot":`invoke-fallback-copy`,role:`note`,children:[`No unique Manifest clock matches this flow's schedule.`,` `,(0,X.jsx)(`strong`,{className:`font-medium`,children:`Run handler once`}),` uses`,` `,(0,X.jsx)(`code`,{className:`rounded bg-muted/50 px-1 py-px font-mono text-[10px]`,children:`/console/flows/invoke`}),` `,`with empty input — it does `,(0,X.jsx)(`em`,{children:`not`}),` exercise the Clock lease / scheduler path.`]}),(0,X.jsx)(Dn,{failed:!!g,success:!!_,elapsed:b,handlerMs:p?null:a.data?.durationMs,statusCode:p?r.data?.ran?200:409:a.data?.status,errorMessage:p?r.isError?r.error.message:null:a.isError?a.error.message:null,responseJson:S,emptyHint:p?`Run now to fire the real clock tick.`:`Run handler once to invoke with empty input.`,pathUsed:d,cache:p?void 0:a.data?.cache})]})})}function En({row:e,kind:t,manifest:n}){let r=De(),i=Ne(),s=Kt(e.flow.in),c=(0,Y.useMemo)(()=>Z(s),[s]),f=(0,Y.useMemo)(()=>t===`http`&&e.path?sn(e.path):[],[t,e.path]),p=(0,Y.useMemo)(()=>Mt(c,{http:t===`http`,method:e.method,pathParams:f}),[c,t,e.method,f]),m=t!==`http`||ut(e.method),[h,g]=(0,Y.useState)({asGate:null,asUserId:null}),[b,S]=(0,Y.useState)(!0),[C,w]=(0,Y.useState)(()=>dn(e.path,f)),T=(0,Y.useMemo)(()=>Wt(s)??{},[s]),ee=(0,Y.useMemo)(()=>Nt(T,p.query),[T,p.query]),E=(0,Y.useMemo)(()=>Nt(T,p.body),[T,p.body]),[te,D]=(0,Y.useState)(ee),[O,k]=(0,Y.useState)(E),[A,j]=(0,Y.useState)(`fields`),[M,N]=(0,Y.useState)(()=>Cn(E)),[P,F]=(0,Y.useState)(null),[ne,I]=(0,Y.useState)([]),[L,re]=(0,Y.useState)(null),[R,z]=(0,Y.useState)(null);(0,Y.useEffect)(()=>{D(ee),k(E),N(Cn(E)),F(null),j(`fields`),w(dn(e.path,f)),I([]),z(null),re(null),i.reset()},[e.id]);function ie(e){try{let t=JSON.parse(e);return typeof t!=`object`||!t||Array.isArray(t)?(F(`Body must be a JSON object.`),!1):(k(t),F(null),!0)}catch(e){return F(e instanceof Error?e.message:`Invalid JSON.`),!1}}function ae(e){if(e!==A){if(e===`raw`){N(Cn(O)),F(null),j(`raw`);return}ie(M)&&j(`fields`)}}async function B(t=!b){let n=m?O:{};if(m&&A===`raw`){if(!ie(M))return;try{n=JSON.parse(M)}catch{return}}let r={...te,...n},a=bn(s,{...C,...r});if(!a.ok){I(a.errors);return}if(I([]),Dt(h)){re(performance.now());try{await i.mutateAsync({flowId:e.id,body:r,...h.asUserId?{asUserId:h.asUserId}:{},...h.asGate?{asGate:h.asGate}:{},...f.length>0?{pathParams:C}:{},...t?{revealPii:!0}:{}})}catch{}}}function oe(){D(ee),k(E),N(Cn(E)),F(null),w(dn(e.path,f)),I([])}(0,Y.useEffect)(()=>{L===null||i.isPending||(i.isSuccess||i.isError)&&z(performance.now()-L)},[i.isSuccess,i.isError,i.isPending,L]);let se=(0,Y.useMemo)(()=>i.data?_n(i.data,b,mn(n)):null,[i.data,b,n]),ce=i.data?.failure!=null,le=i.data?.status,V=t===`http`?`Call API`:t===`signal`?`Run handler`:`Invoke`,ue=V;return(0,X.jsx)(An,{title:V,dataTrigger:t,actions:(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Ot,{manifest:n,identities:r.data??[],value:h,onChange:g}),(0,X.jsx)(Tt,{piiMasked:b,disabled:i.isPending,onToggle:()=>{let t=!b;S(t),i.data&&!i.isPending&&yn(e,t)&&B(!0)}}),m?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Fn,{}),(0,X.jsx)(jn,{view:A,onChange:ae})]}):null,(0,X.jsx)(Fn,{}),(0,X.jsxs)(l,{children:[(0,X.jsx)(_,{render:e=>(0,X.jsxs)(y,{...e,type:`button`,variant:`ghost`,"data-slot":`call-api-reset`,disabled:i.isPending,onClick:oe,className:Nn,children:[(0,X.jsx)(x,{icon:d,"data-icon":`inline-start`}),`Reset`]})}),(0,X.jsx)(u,{side:`bottom`,className:`text-[11px]`,children:m?`Reset body to the schema example`:`Reset to schema examples`})]}),(0,X.jsx)(Fn,{}),(0,X.jsx)(y,{type:`button`,"data-slot":`call-api-submit`,disabled:i.isPending||!Dt(h),onClick:()=>void B(),className:Pn,children:i.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(x,{icon:o,className:`animate-spin`,"data-icon":`inline-start`}),`Calling…`]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(x,{icon:v,"data-icon":`inline-start`}),ue]})})]}),children:(0,X.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,X.jsxs)(`div`,{className:`min-h-0 min-w-0 shrink overflow-y-auto`,children:[t===`http`?(0,X.jsxs)(`p`,{className:`px-3 pt-2.5 pb-2 text-[11px] leading-snug text-muted-foreground`,children:[`Operator session · invoke-as`,` `,(0,X.jsx)(`code`,{className:`rounded bg-muted/50 px-1 py-px font-mono text-[10px]`,children:`console:flows:invoke-as`})]}):null,t===`signal`?(0,X.jsxs)(`div`,{className:`mx-3 mt-2.5 rounded-md border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-[11px] leading-snug text-foreground/90`,"data-slot":`signal-honest-copy`,role:`note`,children:[(0,X.jsx)(`strong`,{className:`font-medium`,children:`Run handler directly`}),` — invokes the flow with your payload via`,` `,(0,X.jsx)(`code`,{className:`rounded bg-muted/50 px-1 py-px font-mono text-[10px]`,children:`/console/flows/invoke`}),`. It does `,(0,X.jsx)(`em`,{children:`not`}),` publish on the signal bus, so it does not test delivery physics (once / broadcast / live, retries, dead-letter).`]}):null,t===`internal`?(0,X.jsxs)(`div`,{className:`mx-3 mt-2.5 rounded-md border border-border/60 bg-muted/20 px-3 py-2 text-[11px] leading-snug text-muted-foreground`,"data-slot":`call-only-bypass-copy`,role:`note`,children:[`This flow has no external trigger. Invoking here bypasses its normal caller (`,(0,X.jsx)(`code`,{className:`font-mono text-[10px]`,children:`fx.call`}),` /`,` `,(0,X.jsx)(`code`,{className:`font-mono text-[10px]`,children:`effects.calls`}),`). The body still matches `,(0,X.jsx)(`code`,{className:`font-mono text-[10px]`,children:`flow.in`}),`.`]}):null,t===`cdc`?(0,X.jsx)(`p`,{className:`px-3 pt-2.5 pb-2 text-[11px] leading-snug text-muted-foreground`,children:`Direct handler invoke — not a Store CDC event.`}):null,f.length>0?(0,X.jsxs)(`section`,{className:`min-w-0`,"aria-label":`Path params`,"data-slot":`call-api-path`,children:[(0,X.jsx)(Ln,{title:`Path params`,hint:e.path??void 0}),f.map(e=>(0,X.jsx)(U,{label:e,className:`[&>span]:px-3`,children:(0,X.jsx)(a,{id:`path-${e}`,flat:!0,className:H(xe,`px-3 font-mono`),placeholder:cn(e),value:C[e]??``,onChange:t=>w(n=>({...n,[e]:t.target.value}))})},e))]}):null,p.query.length>0?(0,X.jsxs)(`section`,{className:`min-w-0`,"aria-label":`Query params`,"data-slot":`call-api-query`,children:[(0,X.jsx)(Ln,{title:`Query params`,hint:`seeded from schema`}),(0,X.jsx)(ye,{children:p.query.map(e=>(0,X.jsx)(Rn,{field:e,idPrefix:`query`,value:te[e.name],onChange:t=>D(n=>({...n,[e.name]:t})),error:ne.find(t=>t.path===`/${e.name}`||t.path===e.path),wide:e.type===`object`||e.type===`array`,manifest:n},e.path))})]}):null,m?(0,X.jsxs)(`section`,{className:`min-w-0`,"aria-label":`Body`,"data-slot":`call-api-body`,children:[(0,X.jsx)(Ln,{title:`Body`,hint:A===`raw`?`raw JSON`:`seeded from schema`}),A===`raw`?(0,X.jsxs)(`div`,{className:`border-b border-border/50`,children:[(0,X.jsx)(`textarea`,{"data-slot":`call-api-body-raw`,"aria-label":`Raw JSON body`,spellCheck:!1,value:M,onChange:e=>{N(e.target.value),P&&F(null)},className:H(`min-h-40 w-full resize-y rounded-none border-0 bg-transparent px-3 py-2 font-mono text-xs leading-relaxed text-foreground outline-none`,`placeholder:text-muted-foreground focus-visible:bg-muted/20`,P&&`text-destructive`)}),P?(0,X.jsx)(`p`,{role:`alert`,className:`px-3 pb-2 text-xs text-destructive`,"data-slot":`call-api-raw-error`,children:P}):null]}):p.body.length===0?(0,X.jsx)(`p`,{className:`border-b border-border/50 px-3 py-2 text-xs text-muted-foreground`,children:`No body fields (empty object).`}):(0,X.jsx)(ye,{children:p.body.map(e=>(0,X.jsx)(Rn,{field:e,value:O[e.name],onChange:t=>k(n=>({...n,[e.name]:t})),error:ne.find(t=>t.path===`/${e.name}`||t.path===e.path),wide:e.type===`object`||e.type===`array`,manifest:n},e.path))})]}):null,ne.length>0?(0,X.jsx)(`p`,{role:`alert`,className:`px-3 py-2 text-xs text-destructive`,"data-slot":`call-api-validation`,children:`Fix contract errors before sending.`}):null]}),(0,X.jsx)(Dn,{failed:!!ce,success:!!i.data&&!ce,elapsed:R,handlerMs:i.data?.durationMs,statusCode:le,errorMessage:i.isError?i.error.message:null,responseJson:se,emptyHint:`Call to see a real host response.`,pathUsed:null,cache:i.data?.cache})]})})}function Dn({failed:e,success:t,elapsed:n,handlerMs:i,statusCode:a,errorMessage:o,responseJson:s,emptyHint:c,pathUsed:l,cache:u}){let[d,f]=(0,Y.useState)(!1),p=(0,X.jsx)(kn,{failed:e,success:t,elapsed:n,handlerMs:i,statusCode:a,pathUsed:l,cache:u});return(0,X.jsxs)(`section`,{className:`flex min-h-56 min-w-0 flex-1 flex-col overflow-hidden`,"aria-label":`Response`,"data-slot":`call-api-response-block`,children:[(0,X.jsxs)(`div`,{className:A,children:[(0,X.jsx)(`h4`,{className:H(b,`flex items-center px-2`),children:`Response`}),(0,X.jsxs)(`div`,{className:`ml-auto flex h-full items-stretch`,children:[p,s?(0,X.jsx)(Be,{label:`Expand response`,className:`flex self-stretch`,children:(0,X.jsx)(`button`,{type:`button`,"aria-label":`Expand response`,"data-slot":`call-api-response-expand`,className:R,onClick:()=>f(!0),children:(0,X.jsx)(x,{icon:h,className:`size-3.5`,"aria-hidden":!0})})}):null]})]}),o?(0,X.jsx)(`p`,{role:`alert`,className:`px-2 py-2 text-sm text-destructive`,"data-slot":`call-api-error`,children:o}):null,s?(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 overflow-hidden`,"data-slot":`call-api-response-frame`,children:[(0,X.jsx)(`div`,{className:H(`w-1 shrink-0 self-stretch`,e?`bg-destructive`:`bg-emerald-500`),"aria-hidden":!0,"data-slot":`call-api-response-rail`}),(0,X.jsx)(nt,{json:s,dataSlot:`call-api-response`,className:`flex min-h-0 flex-1 overflow-auto`})]}):(0,X.jsx)(`p`,{className:`px-2 py-3 text-xs text-muted-foreground`,children:c}),s?(0,X.jsx)(M,{open:d,onOpenChange:f,children:(0,X.jsxs)(re,{side:`right`,showCloseButton:!1,className:`gap-0 p-0 data-[side=right]:w-[min(48rem,calc(100vw-2rem))] data-[side=right]:sm:max-w-[min(48rem,calc(100vw-2rem))]`,"data-slot":`call-api-response-dialog`,children:[(0,X.jsxs)(P,{className:H(A,`flex-row gap-0 border-border/60 p-0`),children:[(0,X.jsx)(ce,{className:H(b,`flex items-center px-2`),children:`Response`}),(0,X.jsx)(ie,{className:`sr-only`,children:`Full Call API response JSON`}),(0,X.jsxs)(`div`,{className:`ml-auto flex h-full items-stretch`,children:[p,(0,X.jsx)(On,{json:s}),(0,X.jsx)(`span`,{className:`w-px shrink-0 self-stretch bg-border/60`,"aria-hidden":!0}),(0,X.jsxs)(T,{"aria-label":`Close`,className:R,"data-slot":`call-api-response-close`,children:[(0,X.jsx)(x,{icon:r,className:`size-3.5`,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,X.jsxs)(`div`,{className:`flex h-full min-h-0`,children:[(0,X.jsx)(`div`,{className:H(`w-1 shrink-0 self-stretch`,e?`bg-destructive`:`bg-emerald-500`),"aria-hidden":!0}),(0,X.jsx)(nt,{json:s,dataSlot:`call-api-response-expanded`,className:`flex min-h-0 flex-1 overflow-auto`})]})})]})}):null]})}function On({json:e}){let[t,n]=(0,Y.useState)(!1);return(0,X.jsx)(Be,{label:t?`Copied`:`Copy response`,className:`flex self-stretch`,children:(0,X.jsx)(`button`,{type:`button`,"aria-label":t?`Copied`:`Copy response`,"data-slot":`call-api-response-copy`,className:R,onClick:()=>{navigator.clipboard&&navigator.clipboard.writeText(e).then(()=>{n(!0),window.setTimeout(()=>n(!1),1200)})},children:(0,X.jsx)(x,{icon:t?oe:f,className:`size-3.5`,"aria-hidden":!0})})})}function kn({failed:e,success:t,elapsed:r,handlerMs:i,statusCode:a,pathUsed:o,cache:s}){let c=t||e,d=c?pn({handlerMs:i,rttMs:r}):null;return(0,X.jsxs)(X.Fragment,{children:[o?(0,X.jsxs)(`span`,{className:`flex h-full items-center px-2 font-mono text-[10px] text-muted-foreground`,"data-slot":`call-api-path-used`,"data-path":o,children:[`via `,o===`clock`?`clock.run-now`:`flows.invoke`]}):null,c?(0,X.jsxs)(`span`,{className:H(`inline-flex h-full items-center gap-1 px-2 font-mono text-[10px] font-semibold`,e?`text-destructive`:`text-emerald-700 dark:text-emerald-400`),"data-slot":`call-api-status`,"data-failed":e?`true`:`false`,children:[(0,X.jsx)(x,{icon:e?n:oe,className:`size-3`,"aria-hidden":!0}),a??(e?`error`:`ok`)]}):null,c?(0,X.jsx)(`span`,{className:`flex h-full items-center px-2`,children:(0,X.jsx)(bt,{cache:s??`none`,dataSlot:`call-api-cache`})}):null,d?(0,X.jsxs)(l,{children:[(0,X.jsx)(_,{render:e=>(0,X.jsx)(`span`,{...e,className:`flex h-full items-center px-2 font-mono text-[10px] tabular-nums text-muted-foreground`,"data-slot":`call-api-duration`,"data-kind":d.primaryKind,children:et(d.primaryMs)})}),(0,X.jsx)(u,{side:`bottom`,className:`max-w-xs text-[11px]`,children:d.primaryKind===`handler`?`Handler time — same clock as Traces.`:`Browser round-trip. Handler time is on the Traces row.`})]}):null,d?.primaryKind===`handler`&&d.rttMs!==null?(0,X.jsxs)(`span`,{className:`flex h-full items-center px-2 font-mono text-[10px] tabular-nums text-muted-foreground/70`,"data-slot":`call-api-rtt`,title:`Browser round-trip`,children:[et(d.rttMs),` rtt`]}):null]})}function An({title:e,actions:t,children:n,dataTrigger:r,dataMode:i}){return(0,X.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-slot":`call-api-panel`,"data-trigger":r,"data-mode":i,children:[(0,X.jsxs)(`div`,{className:H(ue,`min-w-0`),children:[(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 px-2`,children:[(0,X.jsx)(x,{icon:v,className:`size-3.5 text-muted-foreground`,"aria-hidden":!0}),(0,X.jsx)(`h3`,{className:H(b,`text-foreground`),children:e})]}),(0,X.jsx)(`div`,{className:`ml-auto flex h-full min-w-0 items-stretch`,children:t})]}),(0,X.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:n})]})}function jn({view:e,onChange:t}){return(0,X.jsxs)(`div`,{className:`flex h-full shrink-0 items-stretch`,role:`group`,"aria-label":`Body view`,"data-slot":`call-api-body-view-toggle`,children:[(0,X.jsx)(Mn,{active:e===`fields`,label:`Fields`,icon:c,onClick:()=>t(`fields`)}),(0,X.jsx)(Mn,{active:e===`raw`,label:`Raw`,icon:C,onClick:()=>t(`raw`)})]})}function Mn({active:e,label:t,icon:n,onClick:r}){return(0,X.jsxs)(`button`,{type:`button`,className:H(V,`font-semibold tracking-[0.08em] uppercase`,e?w:fe),"aria-pressed":e,"aria-label":t,onClick:r,children:[(0,X.jsx)(x,{icon:n,className:`size-3`}),(0,X.jsx)(`span`,{className:`hidden sm:inline`,children:t})]})}var Nn=`h-full rounded-none border-0 bg-transparent px-2 text-[10px] font-semibold tracking-[0.08em] uppercase shadow-none hover:bg-muted/50`,Pn=`h-full rounded-none border-0 px-3 text-[10px] font-semibold tracking-[0.14em] uppercase shadow-none`;function Fn(){return(0,X.jsx)(`span`,{className:`w-px shrink-0 self-stretch bg-border/60`,"aria-hidden":!0})}var In=`h-7 w-full justify-between rounded-none border-0 bg-transparent px-2 shadow-none focus-visible:border-0 focus-visible:ring-0 dark:bg-transparent dark:hover:bg-transparent`;function Ln({title:e,hint:t}){return(0,X.jsxs)(`div`,{className:A,children:[(0,X.jsx)(`h4`,{className:H(b,`flex items-center px-2`),children:e}),t?(0,X.jsx)(`span`,{className:`ml-auto flex items-center px-2 text-[10px] text-muted-foreground`,children:t}):null]})}function Rn({field:e,value:t,onChange:n,error:r,wide:i=!1,manifest:o,idPrefix:s=`body`}){let c=`${s}-${e.name}`,l=zn(e,o),u=[e.required?null:`optional`,l.lookup?`fk · ${l.lookup.child}.${l.lookup.column}`:e.type,l.lookup?null:zt(e)].filter(Boolean).join(` · `),d=r?(0,X.jsx)(`p`,{className:`px-3 pb-2 text-xs text-destructive`,children:r.message}):null,f=H(i&&`col-span-full border-r-0`);if(l.lookup){let r=t==null||t===``?``:String(t),i=Bn(l.options,r);return(0,X.jsxs)(U,{label:e.name,hint:u,dense:!0,className:f,children:[(0,X.jsxs)(q,{value:r||null,onValueChange:e=>{e==null||Array.isArray(e)||n(String(e))},children:[(0,X.jsx)(W,{id:c,className:In,disabled:l.isLoading,children:(0,X.jsx)(Ee,{placeholder:l.isLoading?`Loading…`:`Select…`})}),(0,X.jsx)(K,{children:i.map(e=>(0,X.jsx)(G,{value:e.value,children:e.label},e.value))})]}),d]})}if(e.type===`enum`&&e.enumValues)return(0,X.jsxs)(U,{label:e.name,hint:u,dense:!0,className:f,children:[(0,X.jsxs)(q,{value:String(t??``),onValueChange:e=>{e==null||Array.isArray(e)||n(String(e))},children:[(0,X.jsx)(W,{id:c,className:In,children:(0,X.jsx)(Ee,{})}),(0,X.jsx)(K,{children:e.enumValues.map(e=>(0,X.jsx)(G,{value:e,children:e},e))})]}),d]});if(e.type===`boolean`)return(0,X.jsx)(U,{label:e.name,hint:u,dense:!0,className:f,children:(0,X.jsxs)(q,{value:t===!0?`true`:`false`,onValueChange:e=>{e==null||Array.isArray(e)||n(String(e)===`true`)},children:[(0,X.jsx)(W,{id:c,className:In,children:(0,X.jsx)(Ee,{})}),(0,X.jsxs)(K,{children:[(0,X.jsx)(G,{value:`true`,children:`true`}),(0,X.jsx)(G,{value:`false`,children:`false`})]})]})});if(e.type===`integer`||e.type===`number`){let r=Ut(e);if(r){let i=typeof t==`number`?String(t):``;return(0,X.jsxs)(U,{label:e.name,hint:u,dense:!0,className:f,children:[(0,X.jsxs)(q,{value:i||null,onValueChange:e=>{e==null||Array.isArray(e)||n(Number(e))},children:[(0,X.jsx)(W,{id:c,className:In,children:(0,X.jsx)(Ee,{placeholder:`Select…`})}),(0,X.jsx)(K,{children:r.map(t=>{let n=e.valueMeanings?.find(e=>e.value===String(t));return(0,X.jsx)(G,{value:String(t),children:n?`${t} · ${n.label}`:t},t)})})]}),d]})}return(0,X.jsxs)(U,{label:e.name,hint:u,dense:!0,className:f,children:[(0,X.jsx)(a,{id:c,type:`number`,flat:!0,className:H(xe,`h-7 px-2 font-mono`),min:e.minimum,max:e.maximum,step:e.type===`integer`?1:void 0,value:typeof t==`number`?t:``,onChange:t=>{if(t.target.value===``){n(void 0);return}n(Vn(Number(t.target.value),e.minimum,e.maximum))}}),d]})}return(0,X.jsxs)(U,{label:e.name,hint:u,dense:!0,className:f,children:[(0,X.jsx)(a,{id:c,flat:!0,className:H(xe,`h-7 px-2 font-mono`),value:typeof t==`string`?t:t==null?``:String(t),onChange:e=>n(e.target.value)}),d]})}function zn(e,t){let n=(0,Y.useMemo)(()=>qt(e,t),[e,t]),r=je(n?{ref:n.ref,child:n.child,limit:200}:null,n!==null);return{lookup:n,options:(0,Y.useMemo)(()=>Jt(r.data?.rows??[],n),[r.data?.rows,n]),isLoading:r.isFetching}}function Bn(e,t){return!t||e.some(e=>e.value===t)?e:[{value:t,label:t},...e]}function Vn(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function Q({title:e,meta:t,ruled:n=!0}){return(0,X.jsxs)(`div`,{className:H(`flex items-baseline justify-between gap-2`,n&&`border-b border-border/60 pb-1.5`),children:[(0,X.jsx)(`h3`,{className:b,children:e}),t?(0,X.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:t}):null]})}function Hn({method:e,className:t}){return(0,X.jsx)(Ge,{variant:`outline`,className:H(`h-5 px-1.5 font-mono text-[10px] uppercase`,mt(e),t),"data-slot":`http-method-badge`,children:e})}var Un=[`once`,`broadcast`,`live`],Wn={once:{delivery:`once`,icon:D,label:`once`,title:`once — one consumer claims; retries + DLQ`,wellClass:`border-amber-500/35 bg-amber-500/10 text-amber-700 dark:text-amber-400`,badgeClass:`border-amber-500/35 bg-amber-500/15 text-amber-800 dark:text-amber-400`},broadcast:{delivery:`broadcast`,icon:p,label:`broadcast`,title:`broadcast — every subscriber gets a copy`,wellClass:`border-sky-500/35 bg-sky-500/10 text-sky-700 dark:text-sky-400`,badgeClass:`border-sky-500/35 bg-sky-500/15 text-sky-700 dark:text-sky-400`},live:{delivery:`live`,icon:s,label:`live`,title:`live — retained feed; late subscribers replay history`,wellClass:`border-emerald-500/35 bg-emerald-500/10 text-emerald-700 dark:text-emerald-400`,badgeClass:`border-emerald-500/35 bg-emerald-500/15 text-emerald-700 dark:text-emerald-400`}};function Gn({delivery:e,className:t}){let n=Wn[e];return(0,X.jsx)(Ge,{variant:`outline`,title:n.title,className:H(`h-5 px-1.5 font-mono text-[10px]`,n.badgeClass,t),"data-slot":`signal-delivery-badge`,"data-delivery":e,children:n.label})}function Kn({effects:e}){let t=qn(e);return t.length===0?null:(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,"data-slot":`effects-summary`,"aria-label":`Effects`,children:[(0,X.jsx)(Q,{title:`Effects`,meta:String(t.length)}),(0,X.jsx)(`ul`,{className:`flex flex-wrap gap-1.5`,children:t.map(e=>{let t=ot(e.kind),n=ft(e.kind,e.ref),r=e.kind===`call`?ht(e.ref):null;return(0,X.jsxs)(`li`,{className:`inline-flex items-center gap-1 rounded-md border px-1.5 py-0.5 font-mono text-[10px]`,style:{borderColor:`${t}55`,color:t},title:r??`${at[e.kind]} ${e.ref}`,children:[(0,X.jsx)(x,{icon:n,className:`size-3`}),r?(0,X.jsx)(`span`,{className:`text-foreground/90`,children:r}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:at[e.kind]}),(0,X.jsx)(`span`,{className:`text-foreground/90`,children:e.ref})]})]},`${e.kind}:${e.ref}`)})})]})}function qn(e){if(!e)return[];let t=[],n=(e,n)=>{for(let r of n??[]){let n=typeof r==`string`?r:r.ref??String(r);t.push({kind:e,ref:n})}};return n(`read`,e.reads),n(`write`,e.writes),n(`emit`,e.emits),n(`send`,e.sends),n(`ask`,e.asks),n(`secret`,e.secrets),n(`call`,e.calls),t}function Jn({errors:e}){let t=Yn(e);return t.length===0?null:(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,"data-slot":`errors-section`,"aria-label":`Flow errors`,children:[(0,X.jsx)(Q,{title:`Flow errors`,meta:String(t.length)}),(0,X.jsx)(`ul`,{className:`flex flex-wrap gap-1.5`,children:t.map(e=>{let t=(e.schema?Z(e.schema):[]).map(e=>e.name).join(`, `);return(0,X.jsxs)(`li`,{className:`inline-flex items-center gap-1 rounded-md border border-destructive/25 bg-destructive/[0.04] px-1.5 py-0.5 font-mono text-[10px] text-destructive`,title:t?`{ code, data: { ${t} } }`:`Typed error — { code, data }`,"data-slot":`error-code`,"data-code":e.code,children:[(0,X.jsx)(x,{icon:n,className:`size-3`,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`text-foreground/90`,children:e.code}),t?(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:t}):null]},e.code)})})]})}function Yn(e){return e?Array.isArray(e)?e.map(e=>({code:e,schema:null})):Object.entries(e).map(([e,t])=>({code:e,schema:Kt(t)})):[]}var Xn=36e5;function Zn(e,t,n,r=Xn){let i=vt(e,new Set([t])),a=n-r,o=i.filter(e=>e.startedAt>=a);if(o.length===0)return{kind:`empty`};let s=o.filter(e=>e.error!=null&&e.error.length>0).length,c=o[0];return{kind:`summary`,calls:o.length,errors:s,errorRate:s/o.length,lastStartedAt:c.startedAt,latestRunId:c.id,windowMs:r}}function Qn({flowId:e,runs:t,nowMs:n=Date.now(),windowMs:r=Xn,children:i}){let a=Zn(t??[],e,n,r);return(0,X.jsxs)(`div`,{className:H(A,`px-2`),"data-slot":`flow-activity-strip`,"data-kind":a.kind,"aria-label":`Recent activity`,children:[(0,X.jsx)(`span`,{className:H(b,`flex items-center`),children:`Activity`}),(0,X.jsx)($n,{summary:a,nowMs:n}),i?(0,X.jsx)(`div`,{className:`ml-auto flex h-full items-stretch`,children:i}):null]})}function $n({summary:e,nowMs:t}){if(e.kind===`empty`)return(0,X.jsx)(`p`,{className:`flex items-center text-[11px] text-muted-foreground`,"data-slot":`flow-activity-empty`,children:`No recent runs in the Console buffer.`});let n=Math.round(e.errorRate*100),r=er(e.lastStartedAt,t);return(0,X.jsxs)(`p`,{className:`flex min-w-0 items-center gap-x-2 text-[11px] text-foreground/85`,children:[(0,X.jsxs)(`span`,{className:`tabular-nums`,"data-slot":`flow-activity-calls`,children:[e.calls,` call`,e.calls===1?``:`s`]}),(0,X.jsx)(`span`,{className:`text-muted-foreground`,"aria-hidden":!0,children:`·`}),(0,X.jsxs)(`span`,{className:`tabular-nums`,"data-slot":`flow-activity-errors`,children:[n,`% errors`]}),(0,X.jsx)(`span`,{className:`text-muted-foreground`,"aria-hidden":!0,children:`·`}),(0,X.jsx)(`span`,{className:`text-muted-foreground`,"data-slot":`flow-activity-ago`,children:r}),(0,X.jsx)(pe,{to:`/overview`,search:{run:e.latestRunId},className:H(V,fe),"data-slot":`flow-activity-open-run`,children:`Open latest`})]})}function er(e,t){let n=Math.max(0,t-e);return n<6e4?`${Math.max(1,Math.round(n/1e3))}s ago`:n<36e5?`${Math.round(n/6e4)}m ago`:`${Math.round(n/36e5)}h ago`}function tr(e){switch(e){case`string`:return`border-teal-500/35 bg-teal-500/10 text-teal-800 dark:text-teal-300`;case`integer`:return`border-blue-500/35 bg-blue-500/10 text-blue-800 dark:text-blue-300`;case`number`:return`border-amber-500/35 bg-amber-500/10 text-amber-800 dark:text-amber-300`;case`boolean`:return`border-violet-500/35 bg-violet-500/10 text-violet-800 dark:text-violet-300`;case`enum`:return`border-indigo-500/35 bg-indigo-500/10 text-indigo-800 dark:text-indigo-300`;case`array`:return`border-cyan-500/35 bg-cyan-500/10 text-cyan-800 dark:text-cyan-300`;case`object`:return`border-zinc-500/35 bg-zinc-500/10 text-zinc-700 dark:text-zinc-300`;default:return`border-border/70 bg-muted/40 text-muted-foreground`}}function nr({fields:e,emptyLabel:t=`No schema fields declared.`,layout:n=`list`}){return e.length===0?(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,"data-slot":`schema-fields-empty`,children:t}):n===`grid`?(0,X.jsx)(`div`,{"data-slot":`schema-fields`,"data-layout":`grid`,children:(0,X.jsx)(ye,{columns:3,children:e.map(e=>(0,X.jsx)(rr,{field:e,depth:0,cell:!0},e.path))})}):(0,X.jsx)(`ul`,{className:`flex flex-col`,"data-slot":`schema-fields`,children:e.map(e=>(0,X.jsx)(rr,{field:e,depth:0},e.path))})}function rr({field:e,depth:t,cell:n=!1}){let r=e.type===`enum`&&e.enumValues,i=zt(e);return(0,X.jsxs)(n?`div`:`li`,{className:n?`min-w-0 border-b border-border/50`:void 0,children:[(0,X.jsxs)(`div`,{className:n?`flex items-center gap-1.5 px-2 py-1.5`:`flex items-center gap-2 py-1`,style:n?void 0:{paddingLeft:t*14},"data-slot":`schema-field-row`,children:[(0,X.jsx)(`span`,{className:`shrink-0`,"data-slot":`schema-field-keys`,title:ir(e),children:(0,X.jsx)(Ct,{primaryKey:e.primaryKey,foreignKey:e.foreignKey,unique:e.unique,empty:`none`})}),(0,X.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[11px] font-medium text-foreground/90`,children:e.name}),e.required?null:(0,X.jsx)(`span`,{className:`shrink-0 rounded border border-border/60 bg-muted/30 px-1 py-px text-[9px] font-medium tracking-wide text-muted-foreground uppercase`,"data-slot":`schema-field-optional`,children:`optional`}),e.pii?(0,X.jsx)(`span`,{className:`shrink-0 rounded border border-amber-500/40 bg-amber-500/10 px-1 py-px text-[9px] font-medium tracking-wide text-amber-800 uppercase dark:text-amber-300`,"data-slot":`schema-field-pii`,children:`pii`}):null,e.sensitive?(0,X.jsx)(`span`,{className:`shrink-0 rounded border border-rose-500/40 bg-rose-500/10 px-1 py-px text-[9px] font-medium tracking-wide text-rose-700 uppercase dark:text-rose-300`,"data-slot":`schema-field-sensitive`,children:`sensitive`}):null,i&&!r?(0,X.jsx)(`span`,{className:`shrink-0 rounded border border-blue-500/35 bg-blue-500/10 px-1 py-px font-mono text-[9px] font-medium tracking-wide text-blue-800 dark:text-blue-300`,"data-slot":`schema-field-constraint`,title:`Allowed range ${i}`,children:i}):null,(0,X.jsx)(`span`,{className:H(`ml-auto shrink-0 rounded border px-1.5 py-px font-mono text-[9px] font-medium tracking-wide`,tr(e.type)),"data-slot":`schema-field-type`,title:r?e.enumValues?.join(` | `):e.type,children:e.type})]}),e.children?.map(e=>(0,X.jsx)(rr,{field:e,depth:t+1,cell:n},e.path))]})}function ir(e){let t=[];if(e.primaryKey&&t.push(`Primary key`),e.foreignKey){let n=e.references?[e.references.table,e.references.column].filter(Boolean).join(`.`):null;t.push(n?`Foreign key → ${n}`:`Foreign key`)}return e.unique&&t.push(`Unique`),t.length>0?t.join(` · `):`None`}function ar({fields:e}){let t=Vt(e);return t.length===0?null:(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,"data-slot":`validation-section`,"aria-label":`Validation`,children:[(0,X.jsx)(Q,{title:`Validation`,meta:String(t.length)}),(0,X.jsx)(`ul`,{className:`flex flex-col gap-3`,children:t.map(e=>(0,X.jsx)(or,{field:e},e.path))})]})}function or({field:e}){let t=Bt(e),n=e.valueMeanings?.length?e.valueMeanings:e.enumValues?.map(e=>({value:e,label:e}));return(0,X.jsxs)(`li`,{className:`flex flex-col gap-1.5`,"data-slot":`validation-field`,"data-field":e.name,children:[(0,X.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,X.jsx)(`span`,{className:`font-mono text-[11px] font-medium text-foreground/90`,children:e.name}),t?(0,X.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:t}):null]}),n&&n.length>0?(0,X.jsx)(`ul`,{className:`grid grid-cols-2 gap-x-4 gap-y-1 sm:grid-cols-3 lg:grid-cols-5`,children:n.map(e=>(0,X.jsxs)(`li`,{className:`flex min-w-0 items-baseline gap-1.5 font-mono text-[11px]`,"data-slot":`validation-option`,children:[(0,X.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.value}),(0,X.jsx)(`span`,{className:`truncate text-foreground/90`,children:e.label})]},e.value))}):null]})}function sr({row:e,manifest:t,runs:n,leading:r}){let i=J(e.flow.trigger),a=gt(e.flow.trigger),o=dt(t,e.id,i===`http`?`http`:i===`internal`?`internal`:i),s=Kt(e.flow.in),c=Kt(e.flow.out),l=ct(e.flow.gates??[],t),u=i===`signal`&&e.flow.trigger?.signal?t?.signals?.[e.flow.trigger.signal]:void 0,d=i===`cron`||i===`every`?fn(t,e.id):null,f=i===`internal`?yt(t,e.id):[],p=i===`http`?`Request`:`Input`,m=i===`http`?`Response`:`Output`,h=i!==`cron`&&i!==`every`,g=Z(s),_=Z(c),v=At(g,i===`http`&&e.path?sn(e.path):[]);return(0,X.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-slot":`flow-contract-panel`,"data-trigger":i,children:[(0,X.jsx)(ve,{dataSlot:`endpoint-header`,leading:r,icon:(0,X.jsx)(`span`,{"data-slot":`trigger-kind-icon`,"data-kind":i,children:(0,X.jsx)(x,{icon:a.icon,className:`size-4`})}),wellClassName:a.wellClass,title:(0,X.jsx)(`span`,{className:`font-mono`,children:e.id}),badge:(0,X.jsx)(`span`,{className:`font-mono text-[10px] font-medium tracking-[0.08em] text-muted-foreground uppercase`,"data-slot":`trigger-kind-badge`,children:a.label}),subtitle:i===`http`&&o.method&&o.path?(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,"data-slot":`http-endpoint-line`,children:[(0,X.jsx)(Hn,{method:o.method}),(0,X.jsx)(`code`,{className:`min-w-0 truncate font-mono text-[11px] leading-none text-muted-foreground select-all`,children:o.path})]}):i===`signal`&&u?(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,"data-slot":`signal-endpoint-line`,children:[(0,X.jsx)(Gn,{delivery:u.delivery}),(0,X.jsx)(`code`,{className:`min-w-0 truncate font-mono text-[11px] leading-none text-muted-foreground select-all`,children:e.flow.trigger?.signal})]}):(0,X.jsx)(`span`,{className:`truncate font-mono text-[11px] leading-none text-muted-foreground`,"data-slot":`trigger-headline`,children:o.headline}),actions:(0,X.jsxs)(pe,{to:`/overview`,search:{flow:e.id},"data-slot":`open-in-graph`,className:H(V,`text-sky-700 dark:text-sky-400`),children:[(0,X.jsx)(x,{icon:Ve.flow.icon,className:`size-3.5`,"aria-hidden":!0}),`Open in graph`]})}),(0,X.jsxs)(Qn,{flowId:e.id,runs:n,children:[e.flow.plane?(0,X.jsx)(cr,{plane:e.flow.plane}):null,e.flow.durable?(0,X.jsx)(lr,{icon:I,label:`durable`,title:`Durable — long-running, retryable steps`}):null,e.flow.live?(0,X.jsx)(lr,{icon:de,label:`live`,title:`Live — subscribes to realtime updates`}):null]}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 py-3`,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(Kn,{effects:e.flow.effects}),(0,X.jsx)(lt,{gates:l}),(0,X.jsx)(Jn,{errors:e.flow.errors}),i===`signal`&&u&&(u.retries!==void 0||u.deadLetter)?(0,X.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,"data-slot":`signal-delivery`,children:[u.retries===void 0?null:`retries ${u.retries}`,u.deadLetter?`dead-letter`:null].filter(e=>e!==null).join(` · `)}):null,(i===`cron`||i===`every`)&&d?.kind===`matched`?(0,X.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,"data-slot":`clock-join`,children:[`Clock · `,(0,X.jsx)(`span`,{className:`font-mono`,children:d.clockName}),d.timezone?` · ${d.timezone}`:``]}):null,i===`internal`?(0,X.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,"data-slot":`call-only-note`,children:[`No external trigger — reachable via `,(0,X.jsx)(`code`,{className:`font-mono`,children:`effects.calls`}),` /`,` `,(0,X.jsx)(`code`,{className:`font-mono`,children:`fx.call`}),`.`]}):null,i===`internal`?(0,X.jsxs)(`section`,{className:`flex flex-col gap-1.5`,"aria-label":`Callers`,"data-slot":`callers-list`,children:[(0,X.jsx)(Q,{title:`Called by`,meta:String(f.length)}),f.length===0?(0,X.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[`No Manifest caller declares `,(0,X.jsx)(`code`,{className:`font-mono`,children:`effects.calls`}),` for this flow.`]}):(0,X.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:f.map(e=>(0,X.jsx)(`li`,{className:`font-mono text-xs text-foreground/90`,children:e},e))})]}):null,h&&v.parameters.length>0?(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,"aria-label":`Parameters`,"data-slot":`parameters`,children:[(0,X.jsx)(Q,{title:`Parameters`,meta:String(v.parameters.length)}),(0,X.jsx)(nr,{fields:v.parameters,layout:`grid`})]}):null,(0,X.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 lg:grid-cols-2`,children:[h&&(v.fields.length>0||v.parameters.length===0)?(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,"aria-label":p,"data-slot":`request`,children:[(0,X.jsx)(Q,{title:p,meta:String(v.fields.length)}),(0,X.jsx)(nr,{fields:v.fields,emptyLabel:typeof e.flow.in==`string`?`Schema not expanded in Manifest.`:i===`signal`?`No flow input schema — signal payload shape lives on the signal when declared.`:`No input schema declared.`})]}):null,(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,"aria-label":m,children:[(0,X.jsx)(Q,{title:m,meta:String(_.length)}),(0,X.jsx)(nr,{fields:_,emptyLabel:typeof e.flow.out==`string`?`Schema not expanded in Manifest.`:`No output schema declared.`})]})]}),h?(0,X.jsx)(ar,{fields:g}):null]})})]})}function cr({plane:e}){let t=e===`operator`,n=t?S:ae,r=t?`operator`:`user`;return(0,X.jsxs)(l,{children:[(0,X.jsx)(_,{render:t=>(0,X.jsxs)(`span`,{...t,className:H(V,`cursor-help`),"data-slot":`plane-badge`,"data-plane":e,children:[(0,X.jsx)(x,{icon:n,className:`size-3`,"aria-hidden":!0}),r]})}),(0,X.jsx)(u,{side:`bottom`,className:`max-w-xs text-[11px]`,children:t?`Operator plane — runs under a Console operator identity, not an application user.`:`User plane — runs under an application user identity (invoke-as).`})]})}function lr({icon:e,label:t,title:n}){return(0,X.jsxs)(l,{children:[(0,X.jsx)(_,{render:n=>(0,X.jsxs)(`span`,{...n,className:H(V,fe,`cursor-help`),children:[(0,X.jsx)(x,{icon:e,className:`size-3`,"aria-hidden":!0}),t]})}),(0,X.jsx)(u,{side:`bottom`,className:`max-w-xs text-[11px]`,children:n})]})}function ur(e){let t=new Map(st.map(e=>[e,[]]));for(let n of e){let e=new Map;for(let t of n.flows){let n=J(t.flow.trigger),r=e.get(n)??[];r.push(t),e.set(n,r)}for(let[r,i]of e)t.get(r)?.push({unit:n.unit,flows:i})}return st.flatMap(e=>{let n=t.get(e)??[];return n.length===0?[]:[{id:e,label:rt[e].label,groups:n}]})}function dr(e){return`band:${e}`}function fr(e,t){return`unit:${e}:${t}`}function pr(e,t,n=!1){let r=t[e];return r===void 0?n:r}function mr(e){let t=[];for(let n of e){t.push(dr(n.id));for(let e of n.groups)t.push(fr(n.id,e.unit))}return t}function hr(e,t){for(let n of e)for(let e of n.groups)if(e.flows.some(e=>e.id===t))return[dr(n.id),fr(n.id,e.unit)];return[]}function gr(e,t){let n=it(e.method)-it(t.method);return n===0?e.id.localeCompare(t.id):n}function _r(e){let t=e?.flows;if(!t)return[];let n=new Map;for(let[r,i]of Object.entries(t)){let t=_t(r),a=r.includes(`.`)?r.slice(r.indexOf(`.`)+1):r,o=i.trigger?.http,s=i.trigger?.signal??null,c={id:r,unit:t,action:a,flow:i,method:o?.method??null,path:o?.path??null,signal:s,delivery:s?e.signals?.[s]?.delivery??null:null},l=n.get(t)??[];l.push(c),n.set(t,l)}return[...n.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({unit:e,flows:t.sort(gr)}))}function vr(e,t){let n=t.trim().toLowerCase();return n?e.map(e=>{let t=e.unit.toLowerCase().includes(n)?e.flows:e.flows.filter(e=>e.id.toLowerCase().includes(n)||e.action.toLowerCase().includes(n)||(e.method?.toLowerCase().includes(n)??!1)||(e.path?.toLowerCase().includes(n)??!1)||(e.signal?.toLowerCase().includes(n)??!1)||(e.delivery?.toLowerCase().includes(n)??!1));return t.length>0?{unit:e.unit,flows:t}:null}).filter(e=>e!==null):e}function yr(e){return(e.triggerKinds?.length??0)+(e.planes?.length??0)+(e.deliveries?.length??0)+ +!!e.durableOnly+ +!!e.liveOnly}function br(e,t){let n=t.triggerKinds?.length?new Set(t.triggerKinds):null,r=t.planes?.length?new Set(t.planes):null,i=t.deliveries?.length?new Set(t.deliveries):null,a=t.durableOnly===!0,o=t.liveOnly===!0;return!n&&!r&&!i&&!a&&!o?e:e.map(e=>{let t=e.flows.filter(e=>!(n&&!n.has(J(e.flow.trigger))||r&&!r.has(e.flow.plane??`user`)||i&&(e.delivery===null||!i.has(e.delivery))||a&&!e.flow.durable||o&&!e.flow.live));return t.length>0?{unit:e.unit,flows:t}:null}).filter(e=>e!==null)}var xr={user:{icon:ae,label:`user`},operator:{icon:S,label:`operator`}},Sr=[`user`,`operator`];function Cr({groups:e,selectedFlowId:t,onSelect:n}){let[r,i]=(0,Y.useState)(``),[a,o]=(0,Y.useState)(!1),[s,c]=(0,Y.useState)({}),[d,f]=(0,Y.useState)({}),p=(0,Y.useMemo)(()=>{let t=new Set;for(let n of e)for(let e of n.flows)t.add(J(e.flow.trigger));return st.filter(e=>t.has(e))},[e]),m=(0,Y.useMemo)(()=>{let t=new Set;for(let n of e)for(let e of n.flows)e.flow.plane&&t.add(e.flow.plane);return Sr.filter(e=>t.has(e))},[e]),{hasDurable:h,hasLive:g,availableDeliveries:v}=(0,Y.useMemo)(()=>{let t=!1,n=!1,r=new Set;for(let i of e)for(let e of i.flows)e.flow.durable&&(t=!0),e.flow.live&&(n=!0),e.delivery&&r.add(e.delivery);return{hasDurable:t,hasLive:n,availableDeliveries:Un.filter(e=>r.has(e))}},[e]),y=yr(s),b=(0,Y.useMemo)(()=>ur(br(vr(e,r),s)),[e,r,s]),S=(0,Y.useMemo)(()=>mr(b),[b]),C=r.trim().length>0,w=S.length>0&&S.every(e=>pr(e,d,C));(0,Y.useEffect)(()=>{if(!t)return;let e=hr(b,t);e.length!==0&&f(t=>{let n=!1,r={...t};for(let t of e)r[t]!==!0&&(r[t]=!0,n=!0);return n?r:t})},[t,b]);let T=(e,t)=>{f(n=>n[e]===t?n:{...n,[e]:t})},te=()=>{let e=!w;f(t=>{let n={...t};for(let t of S)n[t]=e;return n})},D=e=>c(t=>({...t,triggerKinds:Tr(t.triggerKinds??[],e)})),O=e=>c(t=>({...t,planes:Tr(t.planes??[],e)})),k=e=>c(t=>({...t,[e]:!t[e]})),A=e=>c(t=>({...t,deliveries:Tr(t.deliveries??[],e)}));return(0,X.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-slot":`units-tree`,children:[(0,X.jsxs)(`div`,{className:`shrink-0 border-b border-border/60`,children:[(0,X.jsxs)(`div`,{className:H(ue,`border-b-0`),children:[(0,X.jsx)(Ze,{value:r,onChange:e=>i(e.target.value),placeholder:`Search flows…`,"aria-label":`Search flows`,"data-slot":`units-search`}),(0,X.jsxs)(`div`,{className:`flex shrink-0 items-stretch pr-0.5`,children:[(0,X.jsxs)(l,{children:[(0,X.jsx)(_,{render:e=>(0,X.jsxs)(`button`,{...e,type:`button`,"aria-expanded":a,"aria-controls":`units-advanced-panel`,"aria-label":y>0?`Advanced filters, ${y} active`:`Advanced filters`,"data-slot":`units-advanced-toggle`,onClick:t=>{e.onClick?.(t),o(e=>!e)},className:H(R,`relative`,(a||y>0)&&`text-foreground`),children:[(0,X.jsx)(x,{icon:ee,className:`size-3`,"aria-hidden":!0}),y>0?(0,X.jsx)(`span`,{"data-slot":`units-advanced-count`,className:`absolute -top-0.5 -inset-e-0.5 flex size-3.5 items-center justify-center rounded-full bg-foreground text-[8px] font-medium text-background`,"aria-hidden":!0,children:y}):null]})}),(0,X.jsx)(u,{side:`bottom`,children:`Advanced`})]}),(0,X.jsx)(Ie,{allOpen:w,disabled:S.length===0,onToggle:te,dataSlot:`units-tree-expand-toggle`})]})]}),a?(0,X.jsxs)(`div`,{id:`units-advanced-panel`,"data-slot":`units-advanced-panel`,className:`flex flex-col gap-2 border-t border-border/60 bg-muted/20 p-2`,children:[(0,X.jsx)(wr,{label:`Trigger`,groupLabel:`Trigger kind filter`,children:p.map(e=>{let t=rt[e];return(0,X.jsx)($,{icon:t.icon,label:t.label,pressed:s.triggerKinds?.includes(e)??!1,onToggle:()=>D(e),dataFacet:`kind:${e}`},e)})}),v.length>0?(0,X.jsx)(wr,{label:`Delivery`,groupLabel:`Signal delivery filter`,children:v.map(e=>{let t=Wn[e];return(0,X.jsx)($,{icon:t.icon,label:t.label,pressed:s.deliveries?.includes(e)??!1,onToggle:()=>A(e),dataFacet:`delivery:${e}`},e)})}):null,m.length>0?(0,X.jsx)(wr,{label:`Plane`,groupLabel:`Plane filter`,children:m.map(e=>{let t=xr[e];return(0,X.jsx)($,{icon:t.icon,label:t.label,pressed:s.planes?.includes(e)??!1,onToggle:()=>O(e),dataFacet:`plane:${e}`},e)})}):null,h||g?(0,X.jsxs)(wr,{label:`Flags`,groupLabel:`Flow flags filter`,children:[h?(0,X.jsx)($,{icon:I,label:`durable`,pressed:s.durableOnly??!1,onToggle:()=>k(`durableOnly`),dataFacet:`flag:durable`}):null,g?(0,X.jsx)($,{icon:de,label:`live`,pressed:s.liveOnly??!1,onToggle:()=>k(`liveOnly`),dataFacet:`flag:live`}):null]}):null,y>0?(0,X.jsx)(`button`,{type:`button`,"data-slot":`units-advanced-clear`,onClick:()=>c({}),className:`self-end px-2 py-1 text-[10px] font-medium text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground`,children:`Clear all`}):null]}):null]}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-x-hidden overflow-y-auto`,children:b.length===0?(0,X.jsx)(`p`,{className:E,children:`No flows match.`}):(0,X.jsx)(`div`,{className:`flex flex-col`,children:b.map(e=>{let r=dr(e.id);return(0,X.jsx)(Er,{band:e,open:pr(r,d,C),onOpenChange:e=>T(r,e),groupOpen:t=>pr(fr(e.id,t),d,C),onGroupOpenChange:(t,n)=>T(fr(e.id,t),n),selectedFlowId:t,onSelect:n},e.id)})})})]})}function wr({label:e,groupLabel:t,children:n}){return(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`w-14 shrink-0 text-[9px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:e}),(0,X.jsx)(`div`,{className:`flex min-h-7 flex-wrap items-stretch`,role:`group`,"aria-label":t,children:n})]})}function $({icon:e,label:t,pressed:n,onToggle:r,dataFacet:i}){return(0,X.jsxs)(`button`,{type:`button`,"data-slot":`units-facet-chip`,"data-facet":i,"aria-pressed":n,onClick:r,className:H(`inline-flex items-center gap-1 px-2 text-[10px] font-medium transition-colors hover:bg-muted/50`,n?`text-foreground`:`text-muted-foreground hover:text-foreground`),children:[(0,X.jsx)(x,{icon:e,className:`size-3`,"aria-hidden":!0}),t]})}function Tr(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}function Er({band:e,open:n,onOpenChange:r,groupOpen:a,onGroupOpenChange:o,selectedFlowId:s,onSelect:c}){let l=rt[e.id],u=e.groups.reduce((e,t)=>e+t.flows.length,0),d=e.groups.map(e=>e.unit),f=d.length>0&&d.every(e=>a(e)),p=()=>{let e=!f;for(let t of d)o(t,e);e&&r(!0)};return(0,X.jsx)(`section`,{"data-slot":`units-trigger-band`,"data-band":e.id,"aria-label":e.label,className:t,children:(0,X.jsxs)(Xe,{open:n,onOpenChange:r,children:[(0,X.jsx)(Ye,{nativeButton:!1,className:O,"data-slot":`units-trigger-band-toggle`,render:t=>(0,X.jsxs)(`div`,{...t,children:[(0,X.jsx)(x,{icon:m,className:H(L,!n&&`-rotate-90`),"aria-hidden":!0}),(0,X.jsx)(x,{icon:l.icon,className:H(B,i(l.wellClass)),"aria-hidden":!0}),(0,X.jsx)(`span`,{className:H(se,`flex-1`),children:e.label}),(0,X.jsx)(`span`,{className:z,children:u}),(0,X.jsx)(`span`,{className:g,children:(0,X.jsx)(Ie,{allOpen:f,disabled:d.length===0,onToggle:p,collapseLabel:`Collapse all in ${e.label}`,expandLabel:`Expand all in ${e.label}`,dataSlot:`units-band-expand-toggle`,disclose:!0,bare:!0})})]})}),(0,X.jsx)(qe,{children:(0,X.jsx)(`ul`,{className:`flex flex-col`,children:e.groups.map(t=>(0,X.jsx)(Dr,{group:t,open:a(t.unit),onOpenChange:e=>o(t.unit,e),selectedFlowId:s,onSelect:c},`${e.id}:${t.unit}`))})})]})})}function Dr({group:e,open:t,onOpenChange:n,selectedFlowId:r,onSelect:i}){return(0,X.jsx)(`li`,{"data-slot":`unit-group`,"data-unit":e.unit,children:(0,X.jsxs)(Xe,{open:t,onOpenChange:n,children:[(0,X.jsxs)(Ye,{className:H(N,`pl-4`),children:[(0,X.jsx)(x,{icon:m,className:H(L,!t&&`-rotate-90`),"aria-hidden":!0}),(0,X.jsx)(x,{icon:ne,className:H(B,`text-muted-foreground`),"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium text-foreground`,children:e.unit}),(0,X.jsx)(`span`,{className:z,children:e.flows.length})]}),(0,X.jsx)(qe,{children:(0,X.jsx)(`ul`,{className:`flex flex-col`,children:e.flows.map(e=>(0,X.jsx)(Or,{flow:e,selected:r===e.id,onSelect:i},e.id))})})]})})}function Or({flow:e,selected:t,onSelect:n}){let r=gt(e.flow.trigger),a=e.delivery?Wn[e.delivery]:null,o=a?.icon??(e.method?pt(e.method):r.icon),s=i(a?.wellClass??(e.method?mt(e.method):r.wellClass)),c=a?e.signal?`${a.title} · ${e.signal}`:a.title:r.detail?`${r.label} · ${r.detail}`:r.label;return(0,X.jsx)(`li`,{children:(0,X.jsxs)(`button`,{type:`button`,"data-slot":`unit-flow-item`,"data-flow-id":e.id,"data-delivery":e.delivery??void 0,"aria-current":t?`true`:void 0,onClick:()=>n(e.id),className:H(k,`group/flow pl-8`,t&&`bg-muted/70 text-foreground`),children:[(0,X.jsx)(`span`,{"aria-hidden":!0,className:H(te,t?le:`bg-transparent`)}),(0,X.jsxs)(l,{children:[(0,X.jsx)(_,{render:e=>(0,X.jsx)(`span`,{...e,className:H(B,s),"aria-hidden":!0,children:(0,X.jsx)(x,{icon:o,className:`size-3.5`})})}),(0,X.jsx)(u,{side:`right`,className:`text-[11px]`,children:c})]}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium text-foreground`,children:e.action}),e.method?(0,X.jsx)(Hn,{method:e.method,className:`ml-auto h-3.5 px-1 text-[8px] leading-none`}):null]})})}function kr(){let e=$e(),t=tt();Qe(!0);let{selectedFlowId:n,setSelectedFlow:r}=ze(),i=He(),a=(0,Y.useMemo)(()=>_r(e.data??null),[e.data]),o=(0,X.jsx)(Ue,{open:i.open,onToggle:i.toggle,noun:`flows`,controlsId:`flows-tree`,dataSlot:`flows-tree-toggle`}),s=n??a[0]?.flows[0]?.id??null,c=(0,Y.useMemo)(()=>{if(!s)return null;for(let e of a){let t=e.flows.find(e=>e.id===s);if(t)return t}return null},[a,s]);return(0,X.jsx)(`div`,{className:F,"data-slot":`units-page`,children:(0,X.jsxs)(We,{orientation:`horizontal`,className:`min-h-0 flex-1`,children:[(0,X.jsx)(Ke,{panelRef:i.panelRef,collapsible:!0,collapsedSize:0,defaultSize:j.start.defaultSize,minSize:j.start.minSize,onResize:i.onResize,className:`min-h-0 overflow-hidden`,children:(0,X.jsx)(`div`,{id:`flows-tree`,className:`h-full min-h-0 overflow-hidden`,"data-slot":`flows-tree`,children:(0,X.jsx)(Cr,{groups:a,selectedFlowId:s,onSelect:e=>{r(e)}})})}),i.open?(0,X.jsx)(Je,{withHandle:!0}):null,(0,X.jsx)(Ke,{defaultSize:j.end.defaultSize,minSize:j.end.minSize,className:`min-h-0 overflow-hidden`,children:(0,X.jsx)(`div`,{className:`h-full min-h-0 overflow-hidden`,children:c?(0,X.jsxs)(We,{orientation:`vertical`,className:`min-h-0 flex-1`,"data-slot":`units-inspector`,children:[(0,X.jsx)(Ke,{defaultSize:`56%`,minSize:`28%`,className:`min-h-0 overflow-hidden`,children:(0,X.jsx)(sr,{row:c,manifest:e.data??null,runs:t.data,leading:o})}),(0,X.jsx)(Je,{withHandle:!0}),(0,X.jsx)(Ke,{defaultSize:`44%`,minSize:`220px`,className:`min-h-0 overflow-hidden`,children:(0,X.jsx)(wn,{row:c,manifest:e.data??null})})]}):(0,X.jsx)(xt,{icon:Ve.flow.icon,title:e.isLoading?`Loading Manifest…`:`Select a flow`,description:e.isLoading?`Reading the derived Manifest.`:`Pick a flow from the tree to inspect its contract.`,leading:o})})})]})})}export{kr as UnitsPage};
@@ -1,2 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$n as t,Ar as n,Cr as r,D as i,Jr as a,Nr as o,Oo as s,Pi as c,Qa as l,Qn as u,S as d,Sr as f,Tr as p,Ui as m,Wr as h,Za as g,Zi as _,_ as v,_r as y,ai as b,b as x,bi as ee,c as S,ca as C,cr as te,d as ne,dr as re,eo as ie,er as ae,fr as w,gr as T,h as oe,hr as se,i as E,l as D,lr as ce,no as le,nr as ue,o as O,or as de,p as fe,ra as k,ri as pe,rr as A,s as j,sr as M,ta as me,to as he,tr as ge,u as N,va as _e,vr as P,wr as F,xr as ve,y as ye,yr as I,zi as be}from"./shortcut-keys-CoqwEIi0.js";import{t as L,x as xe}from"./link-COeyggt-.js";import{r as Se}from"./react-dom-Bph1y7z7.js";import{A as Ce}from"./xyflow-D7n4g6go.js";import{C as we,_ as R,a as z,c as B,g as Te,h as Ee,i as V,k as De,o as Oe,p as ke,s as H,t as U,x as Ae}from"./sheet-form-Dnwa5oOR.js";import{n as je}from"./index-Ca3HZMVq.js";import{_ as W,d as G,f as Me,g as Ne,h as Pe,i as Fe,m as Ie,n as Le,p as Re,r as ze,t as Be,u as Ve}from"./collapsible-LPqGvfoz.js";import{a as He,i as Ue,n as We,o as Ge,r as Ke,s as qe,t as Je}from"./use-vault-list-BLbZhzyF.js";import{t as Ye}from"./explorer-empty-BvYrygyO.js";import{n as Xe,t as Ze}from"./confirm-sheet-3ptDzXbz.js";var K=e(Se(),1);function Qe(e){if(e.count===0)return{summary:`No in-flight durable runs hold this secret`,detail:null,warn:!1};let t=e.longestOutstandingMs==null?null:$e(e.longestOutstandingMs);return{summary:`${e.count} in-flight durable run(s) will wake holding a new key`,detail:t?`Longest outstanding wake in ${t}`:e.longestWakeAt==null?null:`Longest wake at ${new Date(e.longestWakeAt).toISOString()}`,warn:!0}}function $e(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<48?`${r}h`:`${Math.floor(r/24)}d`}function et(e){return`await fx.vault.get(${e})`}function tt(e){return`oke vault set ${e}`}function nt(e){return`oke vault rotate ${e}`}function rt(e){return`${e}=`}function it(e,t,n){switch(e){case`process.env`:return{source:e,label:`env`,command:`export ${t}=`,hint:`Process environment for this Console process`};case`.env.local`:return{source:e,label:`local`,command:rt(t),hint:`Write to .env.local (gitignored)`};case`driver`:return{source:e,label:Ge(n),command:tt(t),hint:Ue(n)};case`dev-fallback`:return{source:e,label:`fallback`,command:`dev: "…"`,hint:`Local-only option on the contract — never used in prod`}}}function at(e){return{name:e.name,kind:e.kind,sensitive:e.sensitive,description:e.description??null,rotate:e.rotate??null,fingerprints:{...e.fingerprints},fingerprint:e.fingerprint,cleartext:e.sensitive?null:e.cleartext,winner:e.winner,resolution:e.resolution.map(e=>({...e})),readers:[...e.readers],blastRadius:{count:e.blastRadius.count,longestWakeAt:e.blastRadius.longestWakeAt,longestOutstandingMs:e.blastRadius.longestOutstandingMs,runIds:[...e.blastRadius.runIds]},lastReadAt:e.lastReadAt,sharedFingerprintEnvs:[...e.sharedFingerprintEnvs]}}function ot(e){return JSON.stringify(e.map(e=>at(e)),null,2)}var st=[{id:`blast`,label:`Blast`,token:`blast`,tone:`danger`},{id:`unset`,label:`Unset`,token:`unset`,tone:`warn`},{id:`overdue`,label:`Overdue`,token:`overdue`,tone:`warn`},{id:`shared`,label:`Shared`,token:`shared`,tone:`warn`},{id:`dormant`,label:`Dormant`,token:`dormant`,tone:`neutral`}],ct=[`blast`,`unset`,`overdue`,`shared`,`dormant`];function lt(e){if(!e)return 0;let t=/^(\d+)(ms|s|m|h|d)$/.exec(e.trim());if(!t)return 0;let n=Number(t[1]);switch(t[2]){case`ms`:return n;case`s`:return n*1e3;case`m`:return n*6e4;case`h`:return n*36e5;case`d`:return n*864e5;default:return 0}}var ut=new Set([`never`,`none`,`off`]);function q(e){return lt(e)>0}function dt(e){if(q(e))return e.trim();let t=e?.trim().toLowerCase()??``;return t.length===0||ut.has(t)?`no rotate`:e.trim()}function ft(e){return e.sensitive?e.fingerprint!=null&&e.fingerprint.length>0:e.cleartext!=null&&e.cleartext.length>0}function pt(e,t){let n=ft(e),r=!n,i=e.blastRadius.count>0,a=e.sharedFingerprintEnvs.length>0,o=e.lastReadAt==null,s=e.kind===`secret`&&(o||e.lastReadAt!=null&&t-e.lastReadAt>=7776e6),c=lt(e.rotate),l=e.kind===`secret`&&n&&c>0&&(o||e.lastReadAt!=null&&t-e.lastReadAt>=c),u=[];return i&&u.push(`blast`),r&&u.push(`unset`),l&&u.push(`overdue`),a&&u.push(`shared`),s&&u.push(`dormant`),{unset:r,set:n,blast:i,shared:a,dormant:s,overdue:l,unread:o,healthy:n&&!i&&!a&&!s&&!l,risks:u,primary:e.kind===`config`&&!r&&!i&&!a?`config`:ct.find(e=>u.includes(e))??`healthy`}}function mt(e,t){let n=0,r=0,i=0,a=0,o=0,s=0,c=0,l=0;for(let u of e){u.kind===`secret`?n+=1:r+=1;let e=pt(u,t);e.unset&&(i+=1),e.blast&&(a+=1),e.shared&&(o+=1),e.dormant&&(s+=1),e.overdue&&(c+=1),e.healthy&&(l+=1)}return{total:e.length,secrets:n,config:r,unset:i,blast:a,shared:o,dormant:s,overdue:c,healthy:l}}function ht(e,t){let n=Math.max(0,t-e);if(n<6e4)return`just now`;if(n<36e5)return`${Math.floor(n/6e4)}m ago`;if(n<864e5)return`${Math.floor(n/36e5)}h ago`;let r=Math.floor(n/864e5);return r<14?`${r}d ago`:r<60?`${Math.floor(r/7)}w ago`:`${Math.floor(r/30)}mo ago`}function gt(e){switch(e){case`blast`:return`blast`;case`unset`:return`unset`;case`overdue`:return`overdue`;case`shared`:return`shared`;case`dormant`:return`dormant`;case`config`:return`config`;case`healthy`:return`set`}}function _t(e,t){switch(e){case`blast`:return`In-flight durable runs hold this secret`;case`unset`:return`No value in this environment`;case`overdue`:return t?`Last read older than rotate ${t} — never-read counts`:`Last read older than the rotate hint — never-read counts`;case`shared`:return`Fingerprint matches another environment`;case`dormant`:return`Unread for 90 days, or never`;case`config`:return`vault.config — shown in the clear`;case`healthy`:return`Set, no blast, no shared, not dormant`}}var J=`#94A3B8`,Y=Ce(),vt={driver:`driver`,"process.env":`env`,".env.local":`local`,"dev-fallback":`fallback`},yt={driver:ee,"process.env":_,".env.local":pe,"dev-fallback":k},bt=`text-emerald-700 dark:text-emerald-400`,xt=[`driver`,`process.env`,`.env.local`,`dev-fallback`];function St(e){let t=e.resolution.length>0?e.resolution:xt.map(t=>({source:t,present:!1,won:e.winner===t})),n=new Map(t.map(e=>[e.source,e]));return xt.map(t=>n.get(t)??{source:t,present:!1,won:e.winner===t})}function Ct(e){return e.find(e=>e.won)?.source??e.find(e=>!e.present)?.source??e[0].source}function wt(e,t,n){return e.won?`won`:n>=0&&t>n?e.present?`shadowed`:`skipped`:e.present?`shadowed`:`missed`}function Tt({row:e,env:t,now:n,backend:r=null,onSet:i,onRotate:a,onQueryChange:o,leading:s}){let c=Qe(e.blastRadius),l=pt(e,n),u=e.description??e.name,f=jt(e,t),m=St(e),h=m.find(e=>e.won)??null,[g,_]=(0,K.useState)(()=>Ct(m)),v=l.unset,y=l.overdue&&q(e.rotate)&&!c.warn&&!l.unset;(0,K.useEffect)(()=>{_(Ct(St(e)))},[e.name]);let b=m.find(e=>e.source===g)??m[0],x=it(b.source,e.name,r);return(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-y-auto`,"data-slot":`vault-detail`,"aria-label":`Vault detail`,"aria-live":`polite`,children:[(0,Y.jsx)(De,{dataSlot:`vault-detail-header`,leading:s,icon:(0,Y.jsx)(p,{icon:G.vault.icon,className:`size-4`}),wellStyle:{color:J},title:u,badge:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`font-mono text-[10px] font-medium tracking-[0.08em] text-muted-foreground uppercase`,children:e.kind}),e.kind===`secret`?(0,Y.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:dt(e.rotate)}):null,e.origin===`console`?(0,Y.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:`console`}):null,(0,Y.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:He(r)})]}),subtitle:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`code`,{className:`min-w-0 truncate font-mono text-[11px] leading-none text-foreground/80`,children:e.name}),(0,Y.jsx)(Xe,{value:e.name,label:`Copy ${e.name}`})]}),actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Et,{row:e}),v?null:(0,Y.jsx)(W,{label:e.kind===`config`?`Updates this vault.config value. Console shows it in the clear.`:`Write-only. The new value is never shown again.`,className:`flex self-stretch`,children:(0,Y.jsx)(d,{type:`button`,variant:`ghost`,size:`sm`,className:`h-full rounded-none`,onClick:i,children:`Set`})}),v||y?null:(0,Y.jsx)(W,{label:c.warn?c.summary:`Re-encrypt with a new value. Review the fingerprint before it writes.`,className:`flex self-stretch`,children:(0,Y.jsx)(d,{type:`button`,variant:`destructive`,size:`sm`,className:`h-full rounded-none`,disabled:c.warn,onClick:a,children:`Rotate`})})]})}),(0,Y.jsx)(Dt,{row:e,env:t,postureUnset:l.unset,blastWarn:c.warn,blastSummary:c.summary,blastDetail:c.detail,overdue:l.overdue,onSet:i,onRotate:a}),(0,Y.jsxs)(`div`,{className:T,"data-slot":`vault-briefing`,role:`group`,"aria-label":`Posture`,children:[(0,Y.jsx)(X,{label:`from`,value:e.winner?vt[e.winner]:`none`,hint:h?e.winner===`driver`?qe(r):`First layer that had a value`:`No layer provided a value`,warn:!e.winner,won:!!e.winner,onClick:o?()=>o(e.winner?`from:${e.winner}`:`is:unset`):void 0}),(0,Y.jsx)(X,{label:`read`,value:e.lastReadAt==null?`never`:ht(e.lastReadAt,n),hint:e.lastReadAt==null?`Possible dead secret`:new Date(e.lastReadAt).toISOString(),warn:e.lastReadAt==null&&e.kind===`secret`,onClick:o?()=>o(`is:dormant`):void 0}),(0,Y.jsx)(X,{label:`readers`,value:String(e.readers.length),hint:e.readers.length===0?`No Flow declares a read`:e.readers.join(`, `),onClick:o&&e.readers[0]?()=>o(`reader:${e.readers[0]}`):void 0}),(0,Y.jsx)(X,{label:`blast`,value:e.blastRadius.count===0?`clear`:`${e.blastRadius.count} run${e.blastRadius.count===1?``:`s`}`,hint:c.detail??(e.blastRadius.longestOutstandingMs==null?c.summary:$e(e.blastRadius.longestOutstandingMs)),warn:c.warn,onClick:o?()=>o(`is:blast`):void 0}),e.sharedFingerprintEnvs.length>0?(0,Y.jsx)(X,{label:`shared`,value:e.sharedFingerprintEnvs.join(`, `),hint:`Same fingerprint in another environment`,warn:!0,onClick:o?()=>o(`is:shared`):void 0}):null]}),(0,Y.jsx)(kt,{steps:m,selected:b,fill:x,backend:r,onSelect:_}),(0,Y.jsxs)(`section`,{className:`shrink-0 border-b border-border/60`,"aria-label":`Fingerprints by environment`,children:[(0,Y.jsx)(Ot,{title:e.sensitive?`Fingerprints`:`Value`,meta:e.sensitive?`${f.length} env`:t}),e.sensitive?(0,Y.jsx)(At,{slots:f,env:t}):(0,Y.jsx)(`p`,{className:`px-2 py-1.5 font-mono text-[12px]`,role:`status`,children:e.cleartext??`unset`})]}),(0,Y.jsx)(Mt,{readers:e.readers,name:e.name,onFilterReader:o?e=>o(`reader:${e}`):void 0})]})}function Et({row:e}){let t=[{id:`fx`,label:`Flow read`,value:et(e.name)},{id:`set`,label:`oke vault set`,value:tt(e.name)},{id:`rotate`,label:`oke vault rotate`,value:nt(e.name)},{id:`env`,label:`.env assignment`,value:rt(e.name)},{id:`json`,label:`Export fingerprints`,value:JSON.stringify(at(e),null,2)}];return(0,Y.jsxs)(ke,{children:[(0,Y.jsx)(W,{label:`Copy snippets (no secret values)`,className:`flex self-stretch`,children:(0,Y.jsx)(we,{render:e=>(0,Y.jsx)(`button`,{...e,type:`button`,"aria-label":`Copy`,className:de,children:(0,Y.jsx)(p,{icon:c,className:`size-3.5`})})})}),(0,Y.jsxs)(Ee,{align:`end`,className:`min-w-52`,children:[(0,Y.jsx)(Te,{children:t.slice(0,4).map(e=>(0,Y.jsx)(R,{onClick:()=>{navigator.clipboard?.writeText(e.value)},children:e.label},e.id))}),(0,Y.jsx)(Ae,{}),(0,Y.jsx)(R,{onClick:()=>{navigator.clipboard?.writeText(t[4].value)},children:`Export fingerprints`})]})]})}function Dt({row:e,env:t,postureUnset:n,blastWarn:r,blastSummary:i,blastDetail:a,overdue:o,onSet:s,onRotate:c}){return r?(0,Y.jsxs)(`section`,{className:`shrink-0 border-b border-destructive/25 bg-destructive/5`,"aria-label":`Rotation blast radius`,role:`alert`,children:[(0,Y.jsx)(`div`,{className:F(T,`border-b-0`),children:(0,Y.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center px-2 text-[12px] text-destructive`,children:[i,a?(0,Y.jsxs)(`span`,{className:`text-muted-foreground`,children:[` · `,a]}):null]})}),e.blastRadius.runIds.length>0?(0,Y.jsx)(`ul`,{children:e.blastRadius.runIds.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsx)(L,{to:`/overview`,search:{run:e},className:F(w,`text-destructive`),children:(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[11px]`,children:e})})},e))}):null]}):n?(0,Y.jsxs)(`section`,{className:F(T,`border-amber-500/25 bg-amber-500/5`),"aria-label":`Unset contract`,role:`status`,children:[(0,Y.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center px-2 text-[12px] text-amber-900 dark:text-amber-300`,children:[`No value in `,t,e.readers[0]?(0,Y.jsxs)(`span`,{className:`text-muted-foreground`,children:[` `,`· `,(0,Y.jsx)(`span`,{className:`font-mono`,children:e.readers[0]}),` will fail boot`]}):(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:` · boot gap until a layer provides one`})]}),(0,Y.jsx)(d,{type:`button`,size:`sm`,onClick:s,className:`h-full shrink-0 rounded-none`,children:`Set`})]}):o&&q(e.rotate)?(0,Y.jsxs)(`section`,{className:F(T,`border-amber-500/25 bg-amber-500/5`),"aria-label":`Rotation overdue`,role:`status`,children:[(0,Y.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center px-2 text-[12px] text-amber-900 dark:text-amber-300`,children:[`Past rotate `,e.rotate,(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:` · blast is clear`})]}),(0,Y.jsx)(d,{type:`button`,variant:`destructive`,size:`sm`,onClick:c,className:`h-full shrink-0 rounded-none`,children:`Rotate`})]}):null}function Ot({title:e,meta:t,children:n}){return(0,Y.jsxs)(`header`,{className:F(T,`items-center gap-2 px-2`),children:[(0,Y.jsx)(`h3`,{className:F(f,`shrink-0 leading-none`),children:e}),n,t?(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 font-mono text-[10px] leading-none tabular-nums text-muted-foreground`,children:t}):null]})}function X({label:e,value:t,hint:n,warn:r=!1,won:i=!1,onClick:a}){let o=F(P,I,`gap-1.5`),s=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`tracking-[0.08em] uppercase`,children:e}),(0,Y.jsx)(`span`,{className:F(`font-mono tabular-nums text-foreground`,r&&`text-amber-800 dark:text-amber-400`,i&&bt),children:t})]});return a?(0,Y.jsx)(`button`,{type:`button`,title:n,onClick:a,className:o,children:s}):(0,Y.jsx)(`span`,{title:n,className:o,children:s})}function kt({steps:e,selected:t,fill:n,backend:r,onSelect:i}){let a=e.findIndex(e=>e.won);return(0,Y.jsxs)(`section`,{className:`shrink-0 border-b border-border/60`,"aria-label":`Resolution chain`,children:[(0,Y.jsx)(Ot,{title:`Resolution`,meta:`first hit wins`}),(0,Y.jsxs)(`ol`,{className:`relative`,"data-slot":`vault-lock-path`,children:[(0,Y.jsx)(`span`,{className:`pointer-events-none absolute top-3 bottom-3 left-[15px] w-px bg-border/60`,"aria-hidden":!0}),e.map((e,o)=>{let s=e.source===t.source,c=wt(e,o,a);return(0,Y.jsxs)(`li`,{children:[(0,Y.jsxs)(`button`,{type:`button`,"aria-pressed":s,onClick:()=>i(e.source),className:F(w,s&&`bg-muted/70 text-foreground`,a>=0&&o>a&&!s&&`opacity-50`),children:[(0,Y.jsx)(`span`,{className:F(re,s&&`bg-sky-500`),"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:F(`relative z-10 size-2 shrink-0 rounded-full border`,c===`won`&&`border-emerald-500 bg-emerald-500`,c===`shadowed`&&`border-muted-foreground/50 bg-muted-foreground/40`,c===`missed`&&`border-muted-foreground/50 bg-transparent`,c===`skipped`&&`border-border bg-transparent`),"aria-hidden":!0}),(0,Y.jsx)(p,{icon:yt[e.source],className:F(M,c===`won`?bt:`text-muted-foreground`),"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:F(`min-w-0 flex-1 truncate font-mono`,c===`won`?bt:`text-foreground`),children:[vt[e.source],e.source===`driver`?(0,Y.jsx)(`span`,{className:`ml-1.5 font-sans text-[10px] text-muted-foreground`,children:He(r)}):null]}),(0,Y.jsx)(`span`,{className:F(`shrink-0 text-[10px]`,c===`won`?bt:`text-muted-foreground`),children:c})]}),s?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border/60 py-1.5 pr-2 pl-8`,children:[(0,Y.jsx)(`p`,{className:`min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground`,children:n.command}),(0,Y.jsx)(`span`,{className:`hidden min-w-0 truncate text-[10px] text-muted-foreground sm:inline`,children:n.hint}),(0,Y.jsx)(Xe,{value:n.command,label:`Copy ${e.source} fill`})]}):null]},e.source)})]}),(0,Y.jsxs)(`p`,{className:`sr-only`,children:[`Winner: `,e.find(e=>e.won)?.source??`none`,`. `,n.hint]})]})}function At({slots:e,env:t}){return(0,Y.jsx)(`ul`,{"data-slot":`vault-fingerprints`,children:e.map(e=>(0,Y.jsxs)(`li`,{className:w,children:[(0,Y.jsxs)(`span`,{className:`shrink-0 font-mono text-[11px] text-muted-foreground`,children:[e.env,e.env===t?(0,Y.jsx)(`span`,{className:`ml-1 text-[10px] text-muted-foreground`,children:`this`}):null]}),e.fp?(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[11px]`,children:e.fp}):(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 text-[11px] text-muted-foreground`,children:`—`}),e.shared?(0,Y.jsxs)(`span`,{role:`status`,className:`shrink-0 text-[10px] text-amber-800 dark:text-amber-400`,children:[`matches `,t]}):null,e.fp?(0,Y.jsx)(Xe,{value:e.fp,label:`Copy ${e.env} fingerprint`}):null]},e.env))})}function jt(e,t){let n=new Set,r=[],i=(t,i)=>{n.has(t)||(n.add(t),r.push({env:t,fp:i,shared:i!=null&&e.sharedFingerprintEnvs.includes(t)}))};i(t,e.fingerprint);for(let[t,n]of Object.entries(e.fingerprints))i(t,n);return r}function Mt({readers:e,name:t,onFilterReader:n}){return(0,Y.jsxs)(`section`,{className:`shrink-0 border-b border-border/60`,"aria-label":`Readers`,children:[(0,Y.jsx)(Ot,{title:`Readers`,meta:String(e.length),children:(0,Y.jsx)(`code`,{className:`min-w-0 truncate font-mono text-[10px] leading-none text-muted-foreground`,children:et(t)})}),e.length===0?(0,Y.jsx)(`p`,{className:`px-2 py-1.5 text-[11px] text-muted-foreground`,children:`None declared.`}):(0,Y.jsx)(`ul`,{children:e.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`div`,{className:F(w,`group/reader`),children:[(0,Y.jsx)(p,{icon:G.flow.icon,className:F(M,`text-sky-500`),"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,children:e}),(0,Y.jsxs)(`div`,{className:F(u,`group-hover/reader:opacity-100 group-focus-within/reader:opacity-100`),children:[n?(0,Y.jsx)(`button`,{type:`button`,className:`shrink-0 text-[10px] text-muted-foreground hover:text-foreground`,onClick:()=>n(e),children:`filter`}):null,(0,Y.jsx)(L,{to:`/flows`,search:{flow:e},className:`shrink-0 text-[10px] text-muted-foreground hover:text-foreground`,children:`Flows`}),(0,Y.jsx)(L,{to:`/overview`,search:{flow:e},className:`shrink-0 text-[10px] text-muted-foreground hover:text-foreground`,children:`Graph`})]})]})},e))})]})}function Nt({loading:e=!1,hasContracts:t,query:n,onClearQuery:r,leading:i}){return e?(0,Y.jsx)(`div`,{"data-slot":`vault-overview`,className:`h-full`,children:(0,Y.jsx)(Ye,{icon:G.vault.icon,iconClassName:`border-border/70`,title:`Loading vault…`,description:`Reading contracts and posture.`,leading:i})}):(0,Y.jsx)(`div`,{"data-slot":`vault-overview`,className:`h-full`,children:(0,Y.jsx)(Ye,{icon:G.vault.icon,iconClassName:`border-border/70`,title:t?`No contracts match`:`No contracts`,leading:i,description:t?(0,Y.jsxs)(Y.Fragment,{children:[`Nothing matches `,(0,Y.jsx)(`span`,{className:`font-mono`,children:n}),`.`,` `,(0,Y.jsx)(`button`,{type:`button`,className:`underline underline-offset-2 hover:text-foreground`,onClick:r,children:`Clear search`})]}):`Declare vault.secret (fingerprinted) or vault.config (shown in the Config band) in the Manifest.`})})}var Pt={secret:`border-indigo-500/40 bg-indigo-500/12 text-indigo-600 dark:text-indigo-300`,config:`border-emerald-500/40 bg-emerald-500/10 text-emerald-700 dark:text-emerald-400`},Ft={secret:G.vault.icon,config:_},It={secret:`fingerprints only`,config:`vault.config · shown in clear`},Lt={blast:`border-destructive/40 bg-destructive/10 text-destructive`,unset:`border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-400`,overdue:`border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-400`,shared:`border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-400`,dormant:`border-zinc-500/35 bg-zinc-500/10 text-zinc-500 dark:text-zinc-400`,healthy:Pt.secret,config:Pt.config},Rt={blast:n,unset:k,overdue:h,shared:C,dormant:k,healthy:G.vault.icon,config:_},zt={blast:`text-destructive`,unset:`text-amber-800 dark:text-amber-400`,overdue:`text-amber-800 dark:text-amber-400`,shared:`text-amber-800 dark:text-amber-400`,dormant:`text-muted-foreground`,healthy:`text-indigo-600 dark:text-indigo-300`,config:`text-emerald-700 dark:text-emerald-400`};function Bt({groups:e,selectedName:n,loading:i=!1,matchCount:a,totalCount:s,now:c,onSelect:l}){let[u,d]=(0,K.useState)({secret:!0,config:!0});return(0,K.useEffect)(()=>{let t=e.find(e=>e.secrets.some(e=>e.name===n));t&&d(e=>e[t.kind]===!1?{...e,[t.kind]:!0}:e)},[e,n]),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden`,"data-slot":`vault-list`,children:[(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[i&&e.length===0?(0,Y.jsx)(`p`,{className:te,children:`Loading…`}):null,!i&&e.length===0?(0,Y.jsxs)(`p`,{className:te,children:[`No contracts match. Try `,(0,Y.jsx)(`span`,{className:`font-mono`,children:`is:unset`}),` or clear the search.`]}):null,e.map(e=>{let i=u[e.kind]!==!1;return(0,Y.jsx)(`section`,{"aria-label":e.label,className:t,"data-slot":`vault-kind-band`,"data-kind":e.kind,children:(0,Y.jsxs)(Be,{open:i,onOpenChange:t=>d(n=>({...n,[e.kind]:t})),children:[(0,Y.jsx)(ze,{nativeButton:!1,className:ae,"data-slot":`vault-kind-band-toggle`,render:t=>(0,Y.jsxs)(`div`,{...t,children:[(0,Y.jsx)(p,{icon:o,className:F(ue,!i&&`-rotate-90`),"aria-hidden":!0}),(0,Y.jsx)(p,{icon:Ft[e.kind],className:F(M,r(Pt[e.kind])),"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:F(ge,`flex-1`),title:It[e.kind],children:e.label}),(0,Y.jsx)(`span`,{className:A,children:e.secrets.length})]})}),(0,Y.jsx)(Le,{children:(0,Y.jsx)(`ul`,{className:`flex flex-col`,children:e.secrets.map(e=>(0,Y.jsx)(Vt,{row:e,selected:e.name===n,now:c,onSelect:l},e.name))})})]})},e.kind)})]}),e.length>0?(0,Y.jsx)(`p`,{className:`sr-only`,children:a===s?`${s} contracts`:`${a} of ${s} contracts`}):null]})}function Vt({row:e,selected:t,now:n,onSelect:i}){let a=e.description?.trim()||e.name,o=e.kind===`config`?e.cleartext??`unset`:e.name,s=o!==a,c=pt(e,n),l=c.primary!==`healthy`&&c.primary!==`config`,u=e.readers.length===0?`no readers`:`${e.readers.length} reader${e.readers.length===1?``:`s`}`,d=[e.origin===`console`?`console`:null,e.kind===`secret`&&!q(e.rotate)?`no rotate`:null].filter(e=>e!==null);return(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,"aria-current":t?`true`:void 0,"aria-label":`${a}, ${o}, ${u}, ${gt(c.primary)}`,onClick:()=>i(e.name),className:F(w,`items-start py-2`,t&&`bg-muted/70 text-foreground`),children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,className:F(re,t&&`bg-[var(--vault-accent)]`),style:{"--vault-accent":J}}),(0,Y.jsx)(W,{label:_t(c.primary,e.rotate),children:(0,Y.jsx)(p,{icon:Rt[c.primary],className:F(M,`mt-0.5`,r(Lt[c.primary])),"aria-hidden":!0})}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium text-foreground`,children:a}),l?(0,Y.jsx)(Ht,{posture:c}):null]}),(0,Y.jsxs)(`span`,{className:`mt-0.5 flex min-w-0 items-center gap-1.5 text-[10px] text-muted-foreground`,children:[s?(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-mono`,children:o}):null,s?(0,Y.jsx)(`span`,{"aria-hidden":!0,children:`·`}):null,(0,Y.jsx)(`span`,{className:`shrink-0 tabular-nums`,children:u}),d.map(e=>(0,Y.jsxs)(`span`,{className:`shrink-0`,children:[`· `,e]},e))]})]})]})})}function Ht({posture:e}){return(0,Y.jsx)(`span`,{role:`status`,className:F(`shrink-0 text-[10px] font-medium`,zt[e.primary]),children:gt(e.primary)})}var Ut=new Set([`unset`,`set`,`dormant`,`blast`,`shared`,`overdue`,`unread`,`healthy`]),Wt=new Set([`secret`,`config`]),Gt=new Set([`readers`,`rotate`,`blast`,`shared`]),Kt=[{token:`is:unset`,label:`No value in this environment`},{token:`is:set`,label:`Has a fingerprint or config value`},{token:`is:blast`,label:`In-flight durable runs hold this secret`},{token:`is:shared`,label:`Fingerprint matches another environment`},{token:`is:dormant`,label:`Unread for 90 days, or never`},{token:`is:overdue`,label:`Last read older than rotate — never-read counts`},{token:`is:healthy`,label:`Set, no blast, no shared, not dormant`},{token:`kind:secret`,label:`Sensitive contracts only`},{token:`kind:config`,label:`Non-sensitive config only`},{token:`from:.env.local`,label:`Winner is .env.local`},{token:`from:driver`,label:`Winner is the vault backend (built-in / managed / memory)`},{token:`has:readers`,label:`At least one Flow declares a read`},{token:`has:rotate`,label:`Contract declares a rotate cadence`},{token:`rotate:never`,label:`No rotate cadence (stable secret)`},{token:`reader:`,label:`Flow id contains…`},{token:`fp:`,label:`Fingerprint contains…`}],qt=[`driver`,`process.env`,`.env.local`,`dev-fallback`];function Jt(e){let t=[],n=/"([^"]+)"|(\S+)/g,r;for(;(r=n.exec(e))!==null;){let e=r[1]??r[2]??``;e.length>0&&t.push(e)}return t}function Yt(e){let t=[];for(let n of Jt(e)){let e=nn(n);e?t.push(e):t.push({kind:`text`,value:n})}return{tokens:t,raw:e}}function Xt(e){let t=[],n=[];for(let r of e){if(r.kind===`text`){n.push(sn(r.value)?`"${r.value}"`:r.value);continue}t.push(`${r.kind}:${r.value}`)}return[...t,...n].join(` `).trim()}function Zt(e,t){let n=Yt(e);return Xt(n.tokens.some(e=>e.kind===`is`&&e.value===t)?n.tokens.filter(e=>e.kind!==`is`||e.value!==t):[...n.tokens,{kind:`is`,value:t}])}function Qt(e,t){return Yt(e).tokens.some(e=>e.kind===`is`&&e.value===t)}function $t(e,t,n){if(t.tokens.length===0)return!0;let r=pt(e,n);for(let n of t.tokens)if(!rn(e,n,r))return!1;return!0}function en(e,t){let n=cn(e);if(n===null)return Kt;let r=n.toLowerCase();if(r.startsWith(`is:`)||r===`is`)return Z(Kt.filter(e=>e.token.startsWith(`is:`)),n);if(r.startsWith(`kind:`)||r===`kind`)return Z([{token:`kind:secret`,label:`Sensitive contracts only`},{token:`kind:config`,label:`Non-sensitive config only`}],n);if(r.startsWith(`from:`)||r===`from`)return Z(qt.map(e=>({token:`from:${e}`,label:e===`driver`?`Winner is the vault backend (built-in / managed / memory)`:`Winner is ${e}`})),n);if(r.startsWith(`has:`)||r===`has`)return Z(Kt.filter(e=>e.token.startsWith(`has:`)),n);if(r.startsWith(`reader:`)||r===`reader`){let e=r.startsWith(`reader:`)?r.slice(7):``,n=new Set;for(let r of t)for(let t of r.readers)(e.length===0||t.toLowerCase().includes(e))&&n.add(t);return[...n].slice(0,8).map(e=>({token:`reader:${e}`,label:`Flow that reads this contract`}))}if(r.startsWith(`fp:`)||r===`fp`){let e=r.startsWith(`fp:`)?r.slice(3):``,n=new Set;for(let r of t){for(let t of Object.values(r.fingerprints))(e.length===0||t.toLowerCase().includes(e))&&n.add(t);r.fingerprint&&(e.length===0||r.fingerprint.toLowerCase().includes(e))&&n.add(r.fingerprint)}return[...n].slice(0,8).map(e=>({token:`fp:${e}`,label:`Exact fingerprint`}))}if(r.startsWith(`rotate:`)||r===`rotate`)return Z([{token:`rotate:due`,label:`Last read older than rotate — never-read counts`},{token:`has:rotate`,label:`Contract declares a rotate cadence`},{token:`rotate:never`,label:`No rotate cadence (stable secret)`}],n);let i=r;return Kt.filter(e=>e.token.includes(i)||e.label.toLowerCase().includes(i))}function tn(e,t){if(e.length===0||/\s$/.test(e))return`${e}${t} `.replace(/^\s+/,``);let n=e.lastIndexOf(` `);return n<0?`${t} `:`${e.slice(0,n+1)}${t} `}function nn(e){if(e.startsWith(`"`))return null;let t=e.indexOf(`:`);if(t<=0)return null;let n=e.slice(0,t).toLowerCase(),r=e.slice(t+1);if(r.length===0)return null;if(n===`is`){let e=r.toLowerCase();return Ut.has(e)?{kind:`is`,value:e}:Wt.has(e)?{kind:`kind`,value:e}:null}if(n===`kind`){let e=r.toLowerCase();return Wt.has(e)?{kind:`kind`,value:e}:null}if(n===`from`)return{kind:`from`,value:r.toLowerCase()};if(n===`reader`)return{kind:`reader`,value:r.toLowerCase()};if(n===`fp`)return{kind:`fp`,value:r.toLowerCase()};if(n===`has`){let e=r.toLowerCase();return Gt.has(e)?{kind:`has`,value:e}:null}if(n===`rotate`){let e=r.toLowerCase();return e===`due`?{kind:`is`,value:`overdue`}:{kind:`rotate`,value:e}}return null}function rn(e,t,n){switch(t.kind){case`is`:return n[t.value];case`kind`:return e.kind===t.value;case`from`:return(e.winner??``).toLowerCase()===t.value;case`reader`:return e.readers.some(e=>e.toLowerCase().includes(t.value));case`fp`:return an(e).some(e=>e.includes(t.value));case`has`:return t.value===`readers`?e.readers.length>0:t.value===`rotate`?q(e.rotate):t.value===`blast`?e.blastRadius.count>0:e.sharedFingerprintEnvs.length>0;case`rotate`:return t.value===`never`?e.kind===`secret`&&!q(e.rotate):(e.rotate??``).toLowerCase()===t.value;case`text`:return on(e).includes(t.value.toLowerCase())}}function an(e){let t=Object.values(e.fingerprints).map(e=>e.toLowerCase());return e.fingerprint&&t.push(e.fingerprint.toLowerCase()),t}function on(e){return[e.name,e.description??``,e.winner??``,e.kind,...e.readers,...Object.keys(e.fingerprints),...Object.values(e.fingerprints),e.fingerprint??``,e.sensitive?``:e.cleartext??``].join(`
2
- `).toLowerCase()}function sn(e){return/\s/.test(e)}function cn(e){if(e.length===0||/\s$/.test(e))return null;let t=Jt(e);return t[t.length-1]??null}function Z(e,t){let n=t.toLowerCase();return e.filter(e=>e.token.toLowerCase().startsWith(n)||e.token.toLowerCase().includes(n))}function ln({card:e,env:t,summary:n,query:r,progress:i,verifyNote:a,onQueryChange:o,onOpenSecurity:s}){return(0,Y.jsxs)(`section`,{"aria-label":`Vault posture`,className:`shrink-0 border-b border-border/60`,"data-slot":`vault-posture-strip`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-10 flex-wrap items-stretch`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:s,"aria-label":`Open vault security`,className:`flex items-center px-2 text-left text-xs font-medium text-foreground hover:bg-muted/50`,children:e?.title??`Vault backend`}),(0,Y.jsx)(`span`,{className:`flex items-center px-2 font-mono text-[10px] text-muted-foreground`,children:t}),e?.badges.map(e=>(0,Y.jsxs)(`span`,{role:e.tone===`warn`?`alert`:`status`,className:F(`flex items-center gap-1.5 px-2 text-[10px]`,e.tone===`warn`?`text-amber-800 dark:text-amber-400`:`text-muted-foreground`,e.id===`rewrap`&&`text-[color:var(--vault-accent)]`),style:e.id===`rewrap`?{"--vault-accent":J}:void 0,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,className:F(`size-1.5 shrink-0 rounded-full`,e.tone===`warn`?`bg-amber-500`:`bg-muted-foreground/50`,e.id===`rewrap`&&`bg-[var(--vault-accent)]`)}),e.label]},e.id)),st.map(e=>{let t=n[e.id],i=Qt(r,e.token);return t===0&&!i?null:(0,Y.jsx)(W,{label:_t(e.id),className:`flex self-stretch`,children:(0,Y.jsxs)(`button`,{type:`button`,"aria-pressed":i,onClick:()=>o(Zt(r,e.token)),className:F(P,i?y:I,e.tone===`danger`&&!i&&`text-destructive`,e.tone===`warn`&&!i&&`text-amber-800 dark:text-amber-400`),children:[e.label,(0,Y.jsx)(`span`,{className:`font-mono tabular-nums`,children:t})]})},e.id)}),(0,Y.jsx)(`span`,{className:`ml-auto flex items-center px-2 font-mono text-[10px] text-muted-foreground`,children:a??`${n.secrets}s · ${n.config}c`})]}),i?(0,Y.jsxs)(`p`,{className:`border-t border-border/60 px-2 py-1 font-mono text-[11px]`,style:{color:J},role:`status`,"data-slot":`vault-rewrap-progress`,"data-phase":i.phase,children:[i.headline,(0,Y.jsx)(`span`,{className:`ml-2 font-sans text-muted-foreground`,children:i.detail})]}):null]})}function un({query:e,secrets:t,onQueryChange:n}){let r=(0,K.useId)(),i=(0,K.useRef)(null),[a,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(0),l=(0,K.useMemo)(()=>en(e,t),[e,t]);(0,K.useEffect)(()=>{c(0)},[e]),(0,K.useEffect)(()=>{let e=e=>{i.current?.contains(e.target)||o(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let u=t=>{n(tn(e,t.token)),o(!0)};return(0,Y.jsxs)(`div`,{ref:i,className:`relative flex h-full min-w-0 flex-1`,"data-slot":`vault-search`,children:[(0,Y.jsx)(Ve,{"data-slot":`vault-search-input`,value:e,onChange:e=>{n(e.target.value),o(!0)},onFocus:()=>o(!0),onKeyDown:e=>{if(e.key===`Escape`){o(!1);return}if(!a||l.length===0){e.key===`ArrowDown`&&l.length>0&&(e.preventDefault(),o(!0));return}if(e.key===`ArrowDown`){e.preventDefault(),c(e=>(e+1)%l.length);return}if(e.key===`ArrowUp`){e.preventDefault(),c(e=>(e-1+l.length)%l.length);return}e.key===`Enter`&&l[s]&&(e.preventDefault(),u(l[s]))},placeholder:`Search vault…`,"aria-label":`Search vault`,"aria-autocomplete":`list`,"aria-expanded":a,"aria-controls":r,role:`combobox`,title:`name, fingerprint, reader… is:unset from:.env.local`}),a&&l.length>0?(0,Y.jsx)(`ul`,{id:r,role:`listbox`,className:`absolute top-full z-30 mt-1 max-h-72 w-[min(20rem,calc(100vw-4rem))] overflow-y-auto rounded-lg border border-border/70 bg-popover p-1 shadow-md`,children:l.map((e,t)=>(0,Y.jsx)(`li`,{role:`option`,"aria-selected":t===s,children:(0,Y.jsxs)(`button`,{type:`button`,onMouseEnter:()=>c(t),onClick:()=>u(e),className:F(`flex w-full items-baseline gap-2 rounded-md px-2 py-1.5 text-left`,t===s&&`bg-muted/70`),children:[(0,Y.jsx)(`span`,{className:`font-mono text-[11px] text-foreground`,children:e.token}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[10px] text-muted-foreground`,children:e.label})]})},`${e.token}-${t}`))}):null]})}function dn(e,t=``,n=Date.now()){let r=Yt(t),i=e.filter(e=>$t(e,r,n)),a=[`secret`,`config`],o={secret:`Secrets`,config:`Config`};return a.map(e=>({kind:e,label:o[e],secrets:i.filter(t=>t.kind===e)})).filter(e=>e.secrets.length>0)}function fn(e){let t=e.remaining,n=e.rewrapTargetKekVersion;if(!(t!==null&&t>0||n!==null))return t===0?{phase:2,headline:`KEK v${e.kekVersion} — rotation complete`,detail:`The previous master key no longer opens this vault.`}:null;let r=n??e.kekVersion,i=t??0;return{phase:1,headline:`kek v${e.kekVersion} → v${r}`,detail:i>0?`${i} DEK${i===1?``:`s`} still on the old key. Both master keys stay live.`:`Both master keys stay live until remaining is 0.`}}function pn({masterKey:e,onDismiss:t}){let[n,r]=(0,K.useState)(!1);return(0,Y.jsx)(E,{open:e!==null,onOpenChange:e=>{e||t()},children:(0,Y.jsxs)(O,{side:`right`,showOverlay:!1,className:`sm:max-w-md`,"data-slot":`vault-master-key-sheet`,children:[(0,Y.jsxs)(D,{children:[(0,Y.jsx)(N,{children:`New master key`}),(0,Y.jsx)(j,{children:`Shown once. Store it offline. This Console process does not keep it for you.`})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsx)(`p`,{className:`border-b border-border/50 px-4 py-3 font-mono text-[11px] break-all`,children:e}),(0,Y.jsx)(`p`,{className:`px-4 py-3 text-[11px] text-muted-foreground`,role:`status`,children:`Copying puts the key on the clipboard. Anyone with this device can read it until you clear it.`})]}),(0,Y.jsxs)(S,{children:[(0,Y.jsx)(B,{split:!0,disabled:!e,onClick:()=>{e&&(navigator.clipboard?.writeText(e),r(!0))},children:n?`Copied`:`Copy (clipboard warning)`}),(0,Y.jsx)(B,{variant:`destructive`,onClick:()=>{r(!1),t()},children:`I have stored this key`})]})]})})}function mn({open:e,onOpenChange:t,pending:n=!1,error:r,onConfirm:i}){return(0,Y.jsx)(Ze,{open:e,onOpenChange:t,phrase:`ROTATE_MASTER`,title:`Rotate master key`,description:`Generates a new master key and rewraps DEKs in batches. Both keys stay live until remaining is 0. The new key is shown once.`,pending:n,error:r,confirmLabel:`Confirm rotate master`,slot:`vault-rotate-master-sheet`,onConfirm:i})}var hn=[{id:`status`,cmd:`oke vault status`,label:`Backend seal + KEK`},{id:`audit`,cmd:`oke vault audit`,label:`Hash-chained audit log`},{id:`verify`,cmd:`oke vault audit verify`,label:`Verify the chain on disk`},{id:`backup`,cmd:`oke vault backup`,label:`Encrypted backup`},{id:`restore`,cmd:`oke vault restore`,label:`Restore from backup`}];function gn({open:e,onOpenChange:t,card:n,env:r,progress:i,verifyPending:a=!1,verifyNote:o,onVerify:s,onRotateMaster:c,onExport:l}){return(0,Y.jsx)(E,{open:e,onOpenChange:t,children:(0,Y.jsxs)(O,{side:`right`,showOverlay:!1,className:`sm:max-w-md`,"data-slot":`vault-security-sheet`,children:[(0,Y.jsxs)(D,{children:[(0,Y.jsx)(N,{children:`Vault security`}),(0,Y.jsx)(j,{children:`Fingerprints and backend status only. Backup, restore, and unseal stay on the CLI.`})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsxs)(`section`,{className:`flex flex-col gap-2 border-b border-border/50 px-4 py-3`,children:[(0,Y.jsx)(`h3`,{className:`text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`Backend`}),(0,Y.jsx)(`p`,{className:`text-[12px] font-medium`,children:n?.title??`Unresolved`}),(0,Y.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:n?.description??`The server could not resolve a vault backend.`}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,Y.jsxs)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:[`env `,r]}),n?.badges.map(e=>(0,Y.jsx)(Fe,{variant:`outline`,role:e.tone===`warn`?`alert`:`status`,className:F(`h-5 rounded-md text-[10px]`,e.tone===`warn`&&`border-amber-500/35 bg-amber-500/10 text-amber-800 dark:text-amber-400`),children:e.label},e.id))]}),n?.facts.length?(0,Y.jsx)(`dl`,{className:`flex flex-col gap-1`,children:n.facts.map(e=>(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,Y.jsx)(`dt`,{className:`text-[10px] tracking-[0.12em] text-muted-foreground uppercase`,children:e.label}),(0,Y.jsx)(`dd`,{className:`font-mono text-[11px]`,children:e.value})]},e.label))}):null,n?.hint?(0,Y.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,role:`status`,children:n.hint}):null,i?(0,Y.jsxs)(`p`,{className:`font-mono text-[11px]`,style:{color:J},role:`status`,children:[i.headline,(0,Y.jsx)(`span`,{className:`ml-2 font-sans text-muted-foreground`,children:i.detail})]}):null]}),(0,Y.jsxs)(`section`,{className:`flex flex-col gap-2 border-b border-border/50 px-4 py-3`,children:[(0,Y.jsx)(`h3`,{className:`text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`Actions`}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(d,{type:`button`,variant:`outline`,size:`sm`,disabled:a,onClick:s,children:`Verify audit chain`}),o?(0,Y.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,role:`status`,children:o}):null,(0,Y.jsx)(d,{type:`button`,variant:`outline`,size:`sm`,onClick:c,children:`Rotate master key`}),(0,Y.jsx)(d,{type:`button`,variant:`outline`,size:`sm`,onClick:l,children:`Export fingerprints`})]}),(0,Y.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Master rotation rewraps DEKs in batches. Both keys stay live until remaining is 0. The new key is shown once.`})]}),(0,Y.jsxs)(`section`,{className:`flex flex-col gap-2 px-4 py-3`,children:[(0,Y.jsx)(`h3`,{className:`text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`CLI`}),(0,Y.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`The Console never accepts a master key in the HTTP body.`}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-1`,children:hn.map(e=>(0,Y.jsx)(_n,{cmd:e.cmd,label:e.label},e.id))})]})]})]})})}function _n({cmd:e,label:t}){let[n,r]=(0,K.useState)(!1);return(0,Y.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`p`,{className:`font-mono text-[11px]`,children:e}),(0,Y.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:t})]}),(0,Y.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":`Copy ${e}`,onClick:()=>{navigator.clipboard?.writeText(e),r(!0),window.setTimeout(()=>r(!1),1200)},children:(0,Y.jsx)(p,{icon:n?me:a})})]})}function vn({result:e,onClose:t}){let n=e!==null&&e.ok===!1,r=e?.reason===`link`?`prev-hash does not match the previous row`:e?.reason===`payload`?`stored row hash does not match the payload`:`the chain failed verification`;return(0,Y.jsx)(E,{open:n,onOpenChange:e=>{e||t()},children:(0,Y.jsxs)(O,{side:`right`,showOverlay:!1,className:`sm:max-w-md`,"data-slot":`vault-verify-sheet`,children:[(0,Y.jsxs)(D,{children:[(0,Y.jsx)(N,{children:`Chain broken`}),(0,Y.jsxs)(j,{children:[`The audit hash chain failed at`,` `,(0,Y.jsx)(`span`,{className:`font-mono`,children:e?.brokenAt??`unknown`}),`.`]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto text-[11px]`,children:[(0,Y.jsxs)(`p`,{className:`border-b border-border/50 px-4 py-3`,role:`alert`,children:[`Reason: `,r,`.`]}),e?.row?(0,Y.jsxs)(`dl`,{className:`divide-y divide-border/50`,children:[(0,Y.jsx)(Q,{label:`id`,value:e.row.id,mono:!0}),(0,Y.jsx)(Q,{label:`seq`,value:String(e.row.seq),mono:!0}),(0,Y.jsx)(Q,{label:`action`,value:e.row.action}),(0,Y.jsx)(Q,{label:`path`,value:e.row.path??`—`,mono:!0}),(0,Y.jsx)(Q,{label:`actor`,value:`${e.row.actorType} ${e.row.actorId??``}`}),(0,Y.jsx)(Q,{label:`time`,value:new Date(e.row.createdAt).toISOString(),mono:!0}),e.row.errorMessage?(0,Y.jsx)(Q,{label:`error`,value:e.row.errorMessage}):null]}):null]}),(0,Y.jsx)(S,{children:(0,Y.jsx)(B,{onClick:t,children:`Close`})})]})})}function Q({label:e,value:t,mono:n}){return(0,Y.jsxs)(`div`,{className:`px-4 py-2.5`,children:[(0,Y.jsx)(`dt`,{className:`text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:e}),(0,Y.jsx)(`dd`,{className:n?`font-mono text-[11px] break-all`:`text-[11px]`,children:t})]})}async function yn(e){let t=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e));return`sha256:${[...new Uint8Array(t)].map(e=>e.toString(16).padStart(2,`0`)).join(``).slice(0,16)}`}async function bn(e){let t=e.name.trim(),n=e.value;if(t.length===0)return{error:`Name is required`};if(n.trim().length===0)return{error:`Value is required`};if(e.action!==`create`&&(e.reason?.trim()??``).length<3)return{error:`Reason is required`};let r=e.kind??(e.sensitive?`secret`:`config`),i=await yn(n),a=e.action===`create`?null:e.reason?.trim()??null;return{action:e.action,name:t,kind:r,fingerprint:i,preview:e.sensitive?null:n,reason:a,rotate:e.rotate??null,commit:{name:t,value:n,reason:a,kind:r,description:e.description?.trim()??``,rotate:e.rotate??(r===`secret`?`90d`:`never`)}}}function xn(e,t){return e===null?null:t(e)}function Sn(){return null}function Cn(e){return fe(`alert-dialog`,e)}function wn({...e}){return(0,Y.jsx)(Cn,{"data-slot":`alert-dialog`,...e})}function Tn({...e}){return(0,Y.jsx)(oe,{"data-slot":`alert-dialog-portal`,...e})}function En({className:e,...t}){return(0,Y.jsx)(x,{"data-slot":`alert-dialog-overlay`,className:F(`fixed inset-0 z-50 bg-black/20 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs`,e),...t})}function Dn({className:e,children:t,...n}){return(0,Y.jsxs)(Tn,{children:[(0,Y.jsx)(En,{}),(0,Y.jsx)(v,{"data-slot":`alert-dialog-content`,className:F(`fixed top-1/2 left-1/2 z-50 w-[min(100%-2rem,24rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-none border border-border bg-popover text-sm text-popover-foreground shadow-lg outline-none transition duration-150 data-ending-style:scale-95 data-ending-style:opacity-0 data-starting-style:scale-95 data-starting-style:opacity-0`,e),...n,children:t})]})}function On({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`alert-dialog-header`,className:F(`flex flex-col gap-1 border-b border-border/50 px-4 py-3`,e),...t})}function kn({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`alert-dialog-footer`,className:F(`flex flex-row items-stretch border-t border-border/50 p-0`,e),...t})}function An({className:e,...t}){return(0,Y.jsx)(ne,{"data-slot":`alert-dialog-title`,className:F(`text-sm font-medium text-foreground`,e),...t})}function jn({className:e,...t}){return(0,Y.jsx)(ye,{"data-slot":`alert-dialog-description`,className:F(`text-[11px] text-muted-foreground`,e),...t})}var Mn={create:`Confirm add`,set:`Confirm set`,rotate:`Confirm rotate`},Nn={create:`Add contract`,set:`Set value`,rotate:`Rotate`};function Pn({review:e,pending:t=!1,onCancel:n,onConfirm:r}){return(0,Y.jsx)(wn,{open:e!==null,onOpenChange:e=>{!e&&!t&&n()},children:(0,Y.jsxs)(Dn,{"data-slot":`vault-write-review`,children:[(0,Y.jsxs)(On,{children:[(0,Y.jsx)(An,{children:e?`${Mn[e.action]} ${e.name}`:`Confirm write`}),(0,Y.jsx)(jn,{children:e?.preview==null?`Write-only. The value is never shown again.`:`Config is shown in the clear after submit.`})]}),e?(0,Y.jsx)(Fn,{review:e}):null,(0,Y.jsxs)(kn,{children:[(0,Y.jsx)(B,{split:!0,onClick:n,disabled:t,"data-slot":`vault-write-review-cancel`,children:`Cancel`}),(0,Y.jsx)(B,{variant:e?.action===`rotate`?`destructive`:`default`,disabled:t||e===null,onClick:r,"data-slot":`vault-write-review-confirm`,children:t?`Working…`:e?Nn[e.action]:`Confirm`})]})]})})}function Fn({review:e}){return(0,Y.jsxs)(`dl`,{className:`flex flex-col`,"data-slot":`vault-write-review-facts`,children:[(0,Y.jsx)($,{label:`Name`,value:e.name,mono:!0}),e.action===`create`?(0,Y.jsx)($,{label:`Kind`,value:e.kind}):null,(0,Y.jsx)($,{label:`Fingerprint`,value:e.fingerprint,mono:!0}),e.preview==null?null:(0,Y.jsx)($,{label:`Value`,value:e.preview,mono:!0}),e.reason?(0,Y.jsx)($,{label:`Reason`,value:e.reason}):null,e.action===`create`&&e.rotate?(0,Y.jsx)($,{label:`Rotate`,value:e.rotate}):null]})}function $({label:e,value:t,mono:n=!1}){return(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 border-b border-border/50 px-4 py-2 last:border-b-0`,children:[(0,Y.jsx)(`dt`,{className:`shrink-0 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:e}),(0,Y.jsx)(`dd`,{className:n?`min-w-0 truncate font-mono text-[11px]`:`min-w-0 truncate text-[12px]`,children:t})]})}function In({open:e,onOpenChange:t,pending:n=!1,error:r,onSubmit:a}){let[o,s]=(0,K.useState)(`secret`),[c,l]=(0,K.useState)(``),[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)(`90d`),[m,h]=(0,K.useState)(``),[g,_]=(0,K.useState)(null),[v,y]=(0,K.useState)(null);(0,K.useEffect)(()=>{e||(s(`secret`),l(``),d(``),p(`90d`),h(``),_(null),y(null))},[e]);let b=c.trim().length>0&&m.trim().length>0&&!n,x=async()=>{let e=await bn({action:`create`,name:c.trim(),value:m,sensitive:o===`secret`,kind:o,description:u.trim(),rotate:o===`secret`?f:`never`});if(`error`in e){_(e.error);return}_(null),y(e)};return(0,Y.jsxs)(E,{open:e,onOpenChange:t,children:[(0,Y.jsxs)(O,{side:`right`,showOverlay:!1,className:`gap-0 p-0 data-[side=right]:sm:max-w-md`,"data-slot":`vault-create-sheet`,children:[(0,Y.jsxs)(D,{className:`gap-1 border-b border-border/50`,children:[(0,Y.jsx)(N,{className:`text-sm`,children:`Add vault contract`}),(0,Y.jsx)(j,{className:`text-[11px]`,children:o===`secret`?`Writes the value and lists the contract here. Promote it to vault.secret in source when a Flow should read it.`:`vault.config — shown in the clear on the Config band after submit.`})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsxs)(z,{label:`Kind`,children:[(0,Y.jsx)(V,{active:o===`secret`,onClick:()=>s(`secret`),children:`secret`}),(0,Y.jsx)(V,{active:o===`config`,onClick:()=>s(`config`),children:`config`})]}),(0,Y.jsx)(H,{label:`Name`,children:(0,Y.jsx)(i,{value:c,onChange:e=>l(e.target.value.toUpperCase().replace(/[^A-Z0-9_]/g,``)),placeholder:`STRIPE_KEY`,autoComplete:`off`,"aria-label":`Contract name`,flat:!0,className:F(U,`font-mono`)})}),(0,Y.jsx)(H,{label:`Description`,children:(0,Y.jsx)(i,{value:u,onChange:e=>d(e.target.value),placeholder:`Optional title`,autoComplete:`off`,"aria-label":`Description`,flat:!0,className:U})}),o===`secret`?(0,Y.jsxs)(z,{label:`Rotate`,children:[(0,Y.jsx)(V,{active:f===`90d`,onClick:()=>p(`90d`),children:`90d`}),(0,Y.jsx)(V,{active:f===`never`,onClick:()=>p(`never`),children:`no rotate`})]}):null,(0,Y.jsx)(H,{label:`Value`,children:(0,Y.jsx)(i,{type:`password`,autoComplete:`off`,value:m,onChange:e=>h(e.target.value),placeholder:o===`secret`?`Paste the secret`:`Public value`,"aria-label":`New vault value`,flat:!0,className:U})}),g||r?(0,Y.jsx)(Oe,{slot:`vault-create-error`,children:g??r}):null]}),(0,Y.jsxs)(S,{children:[(0,Y.jsx)(B,{split:!0,onClick:()=>t(!1),disabled:n,children:`Cancel`}),(0,Y.jsx)(B,{variant:`default`,disabled:!b,onClick:()=>{x()},"data-slot":`vault-create-submit`,children:o===`secret`?`Review secret`:`Review config`})]})]}),(0,Y.jsx)(Pn,{review:v,pending:n,onCancel:()=>y(Sn()),onConfirm:()=>{xn(v,e=>{a({name:e.commit.name,value:e.commit.value,kind:e.commit.kind,description:e.commit.description,rotate:e.commit.rotate})})}})]})}var Ln=[{id:`first`,label:`first`,text:`Initial value`},{id:`fix`,label:`fix`,text:`Correct a bad value`},{id:`provider`,label:`provider`,text:`Provider changed it`},{id:`other`,label:`other`,text:``}],Rn=[{id:`scheduled`,label:`scheduled`,text:`Scheduled rotation`},{id:`leak`,label:`leak`,text:`Key compromise`},{id:`provider`,label:`provider`,text:`Provider rotated`},{id:`other`,label:`other`,text:``}];function zn(e){return e===`rotate`?Rn:Ln}function Bn(e){return e===`rotate`?`scheduled`:`first`}function Vn(e,t,n){return t===`other`?n.trim():zn(e).find(e=>e.id===t)?.text??``}function Hn({open:e,onOpenChange:t,mode:n,name:r,sensitive:a=!0,pending:o=!1,error:s,onSubmit:c}){let[l,u]=(0,K.useState)(``),[d,f]=(0,K.useState)(()=>Bn(n)),[p,m]=(0,K.useState)(``),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(null);(0,K.useEffect)(()=>{e||(u(``),f(Bn(n)),m(``),g(null),v(null))},[e,n]);let y=Vn(n,d,p),b=l.trim().length>0&&y.length>=3&&!o,x=zn(n),ee=async()=>{let e=await bn({action:n,name:r,value:l,sensitive:a,reason:y,kind:a?`secret`:`config`});if(`error`in e){g(e.error);return}g(null),v(e)};return(0,Y.jsxs)(E,{open:e,onOpenChange:t,children:[(0,Y.jsxs)(O,{side:`right`,showOverlay:!1,className:`gap-0 p-0 data-[side=right]:sm:max-w-md`,"data-slot":`vault-write-sheet`,children:[(0,Y.jsxs)(D,{className:`gap-1 border-b border-border/50`,children:[(0,Y.jsx)(N,{className:`text-sm`,children:n===`set`?`Set ${r}`:`Rotate ${r}`}),(0,Y.jsx)(j,{className:`text-[11px]`,children:a?`Write-only. The new value is never shown again after submit.`:`This vault.config value is shown in the clear on the Config band after submit.`})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsx)(H,{label:`New value`,children:(0,Y.jsx)(i,{type:`password`,autoComplete:`off`,value:l,onChange:e=>u(e.target.value),placeholder:a?`Paste the new secret`:`Paste the new value`,"aria-label":`New vault value`,flat:!0,className:U})}),(0,Y.jsx)(z,{label:`Reason`,children:x.map(e=>(0,Y.jsx)(V,{active:d===e.id,onClick:()=>f(e.id),children:e.label},e.id))}),d===`other`?(0,Y.jsx)(H,{label:`Other`,children:(0,Y.jsx)(i,{value:p,onChange:e=>m(e.target.value),placeholder:`Why is this change needed?`,"aria-label":`Custom reason`,flat:!0,className:U})}):null,h||s?(0,Y.jsx)(Oe,{slot:`vault-write-error`,children:h??s}):null]}),(0,Y.jsxs)(S,{children:[(0,Y.jsx)(B,{split:!0,onClick:()=>t(!1),disabled:o,children:`Cancel`}),(0,Y.jsx)(B,{variant:n===`rotate`?`destructive`:`default`,disabled:!b,onClick:()=>{ee()},"data-slot":`vault-write-submit`,children:n===`set`?`Review set`:`Review rotate`})]})]}),(0,Y.jsx)(Pn,{review:_,pending:o,onCancel:()=>v(Sn()),onConfirm:()=>{xn(_,e=>{c({value:e.commit.value,reason:e.commit.reason??y})})}})]})}function Un(){let e=We(),t=s(),{query:n,selectedName:r,action:i,setQuery:a,setSelectedName:o,setAction:u}=je(),d=Me(),f=(0,Y.jsx)(Ne,{open:d.open,onToggle:d.toggle,noun:`vault`,controlsId:`vault-list`,dataSlot:`vault-list-toggle`}),[h]=(0,K.useState)(()=>Date.now()),[_,v]=(0,K.useState)(!1),[y,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(null),[te,ne]=(0,K.useState)(null),[re,ae]=(0,K.useState)(null),[w,T]=(0,K.useState)(null),[oe,E]=(0,K.useState)(null),[D,ue]=(0,K.useState)(null),[O,fe]=(0,K.useState)(null),k=e.data?.secrets??[],pe=e.data?.env??`dev`,A=e.data?.backend??null,j=(0,K.useMemo)(()=>Ke(A),[A]),M=(0,K.useMemo)(()=>dn(k,n,h),[k,n,h]),me=(0,K.useMemo)(()=>mt(k,h),[k,h]),ge=(0,K.useMemo)(()=>M.flatMap(e=>e.secrets),[M]),N=ge.length,P=ge.find(e=>e.name===r)??ge[0]??null,ye=fn({kekVersion:oe??A?.status?.kekVersion??1,remaining:w,rewrapTargetKekVersion:A?.status?.rewrapTargetKekVersion??null});(0,K.useEffect)(()=>{let e=e=>{if(e.key!==`/`||e.metaKey||e.ctrlKey||e.altKey)return;let t=e.target;if(t instanceof HTMLElement){let e=t.tagName;if(e===`INPUT`||e===`TEXTAREA`||t.isContentEditable)return}e.preventDefault(),document.querySelector(`[data-slot='vault-search-input']`)?.focus()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let I=async()=>{await t.invalidateQueries({queryKey:Je})},L=()=>{let e=ot(k);navigator.clipboard?.writeText(e),x(`Exported fingerprints only (no secret values)`)},Se=xe({mutationFn:async e=>{if(e.value.trim().length===0)throw Error(`New value is required`);let t=await(e.mode===`set`?le:ie)({name:e.name,value:e.value,reason:e.reason});if(t.error)throw Error(_e(t.error));return t.data},onSuccess:async()=>{C(null),u(null),await I()},onError:e=>{C(e.message)}}),Ce=xe({mutationFn:async e=>{if(e.name.trim().length===0)throw Error(`Name is required`);if(e.value.trim().length===0)throw Error(`Value is required`);let t=await l({name:e.name,value:e.value,kind:e.kind,...e.description.length>0?{description:e.description}:{},...e.rotate.length>0?{rotate:e.rotate}:{}});if(t.error)throw Error(_e(t.error));return t.data},onSuccess:async e=>{C(null),u(null),e?.name&&o(e.name),await I()},onError:e=>{C(e.message)}}),z=xe({mutationFn:async e=>{let t=0,n=A?.status?.kekVersion??1;for(;;){let r=await he(e);if(r.error)throw Error(_e(r.error));if(!r.data)throw Error(`Empty rotate-master response`);if(t=r.data.remaining,n=r.data.kekVersion,T(r.data.remaining),E(r.data.kekVersion),r.data.masterKey&&ae(r.data.masterKey),await I(),r.data.remaining===0)break}return{remaining:t,kekVersion:n}},onSuccess:()=>{ne(null),u(null)},onError:e=>{ne(e.message)}}),B=xe({mutationFn:async()=>{let e=await g();if(e.error)throw Error(_e(e.error));if(!e.data)throw Error(`Empty verify response`);return e.data},onSuccess:e=>{e.ok?(fe(null),ue(`chain intact`)):(ue(null),fe(e))}});return(0,Y.jsxs)(`div`,{className:ce,"data-slot":`vault-page`,children:[(0,Y.jsxs)(Pe,{orientation:`horizontal`,className:`min-h-0 flex-1`,children:[(0,Y.jsx)(Ie,{panelRef:d.panelRef,collapsible:!0,collapsedSize:0,defaultSize:se.start.defaultSize,minSize:se.start.minSize,onResize:d.onResize,className:`min-h-0 overflow-hidden`,children:(0,Y.jsxs)(`div`,{id:`vault-list`,className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-slot":`vault-list`,children:[(0,Y.jsxs)(`div`,{className:F(ve,`relative z-20 pr-1.5`),children:[(0,Y.jsx)(un,{query:n,secrets:k,onQueryChange:a}),(0,Y.jsx)(W,{label:`Add secret or config`,className:`flex self-stretch`,children:(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Add secret or config`,onClick:()=>u(`create`),className:de,children:(0,Y.jsx)(p,{icon:be,className:`size-3.5`})})}),y?(0,Y.jsx)(`span`,{className:`sr-only`,role:`status`,children:y}):null,(0,Y.jsx)(W,{label:`Verify the audit hash chain`,className:`flex self-stretch`,children:(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Verify chain`,disabled:B.isPending,onClick:()=>B.mutate(),className:de,children:(0,Y.jsx)(p,{icon:m,className:`size-3.5`})})}),(0,Y.jsxs)(ke,{children:[(0,Y.jsx)(W,{label:`Vault security`,className:`flex self-stretch`,children:(0,Y.jsx)(we,{render:e=>(0,Y.jsx)(`button`,{...e,type:`button`,"aria-label":`Vault security`,className:de,children:(0,Y.jsx)(p,{icon:c,className:`size-3.5`})})})}),(0,Y.jsxs)(Ee,{align:`end`,className:`min-w-52`,children:[(0,Y.jsxs)(Te,{children:[(0,Y.jsx)(R,{onClick:()=>v(!0),children:`Security`}),(0,Y.jsxs)(R,{onClick:()=>u(`rotate-master`),children:[(0,Y.jsx)(p,{icon:ee,"data-icon":`inline-start`}),`Rotate master key`]}),(0,Y.jsxs)(R,{onClick:L,children:[(0,Y.jsx)(p,{icon:b,"data-icon":`inline-start`}),`Export fingerprints`]})]}),(0,Y.jsx)(Ae,{}),(0,Y.jsxs)(R,{disabled:B.isPending,onClick:()=>B.mutate(),children:[(0,Y.jsx)(p,{icon:m,"data-icon":`inline-start`}),`Verify audit chain`]})]})]})]}),(0,Y.jsx)(ln,{card:j,env:pe,summary:me,query:n,progress:ye,verifyNote:D,onQueryChange:a,onOpenSecurity:()=>v(!0)}),(0,Y.jsx)(Bt,{groups:M,selectedName:P?.name??r,loading:e.isLoading,matchCount:N,totalCount:k.length,now:h,onSelect:o})]})}),d.open?(0,Y.jsx)(Re,{withHandle:!0}):null,(0,Y.jsx)(Ie,{defaultSize:se.end.defaultSize,minSize:se.end.minSize,className:`min-h-0 overflow-hidden`,children:P?(0,Y.jsx)(Tt,{row:P,env:pe,now:h,backend:A,onSet:()=>u(`set`),onRotate:()=>u(`rotate`),onQueryChange:a,leading:f}):(0,Y.jsx)(Nt,{loading:e.isLoading,hasContracts:k.length>0,query:n,onClearQuery:()=>a(``),leading:f})})]}),(0,Y.jsx)(In,{open:i===`create`,onOpenChange:e=>{e||(C(null),u(null))},pending:Ce.isPending,error:i===`create`?S:null,onSubmit:e=>Ce.mutate(e)}),(0,Y.jsx)(Hn,{open:i===`set`||i===`rotate`,onOpenChange:e=>{e||(C(null),u(null))},mode:i===`rotate`?`rotate`:`set`,name:P?.name??``,sensitive:P?.sensitive??!0,pending:Se.isPending,error:S,onSubmit:e=>{P&&Se.mutate({mode:i===`rotate`?`rotate`:`set`,name:P.name,...e})}}),(0,Y.jsx)(mn,{open:i===`rotate-master`,onOpenChange:e=>{e||(ne(null),u(null))},pending:z.isPending,error:te,onConfirm:e=>z.mutate(e)}),(0,Y.jsx)(gn,{open:_,onOpenChange:v,card:j,env:pe,progress:ye,verifyPending:B.isPending,verifyNote:D,onVerify:()=>B.mutate(),onRotateMaster:()=>{v(!1),u(`rotate-master`)},onExport:L}),(0,Y.jsx)(pn,{masterKey:re,onDismiss:()=>ae(null)}),(0,Y.jsx)(vn,{result:O,onClose:()=>fe(null)})]})}export{Un as VaultPage};