@qredence/fleet 0.5.10 → 0.6.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 (115) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/web/client/assets/agent-activity-CwMDU7aP.js +1 -0
  3. package/dist/web/client/assets/artifacts-panel-CJ75gQub.js +1 -0
  4. package/dist/web/client/assets/chat-Ci2cEQrR.js +52 -0
  5. package/dist/web/client/assets/{chat-command-palette-DfYSPPXI.js → chat-command-palette-CkISHfKE.js} +1 -1
  6. package/dist/web/client/assets/{citations-BQ_pr_9_.js → citations-C_tPOJE_.js} +1 -1
  7. package/dist/web/client/assets/{command-DPfiaYUL.js → command-_WjnervL.js} +1 -1
  8. package/dist/web/client/assets/fleet-message-queue-BCno4XP-.js +1 -0
  9. package/dist/web/client/assets/{fleet-pi-tool-renderer-AJoMbXBa.js → fleet-pi-tool-renderer-BEDIO3al.js} +4 -4
  10. package/dist/web/client/assets/fleet-reasoning-panel-CbkO7u-v.js +1 -0
  11. package/dist/web/client/assets/{fleet-subagent-list-BnRnrWKS.js → fleet-subagent-list-iKUtLJKZ.js} +1 -1
  12. package/dist/web/client/assets/fleet-tool-timeline-C8heL7ae.js +1 -0
  13. package/dist/web/client/assets/{fork-picker-dialog-CkcSekBl.js → fork-picker-dialog-ByBOGVsa.js} +1 -1
  14. package/dist/web/client/assets/globals-B_I1Eq1u.css +2 -0
  15. package/dist/web/client/assets/horizontal-resize-CwoDojST.js +1 -0
  16. package/dist/web/client/assets/{index-DlnHLDpx.js → index-DJ1fFbQu.js} +3 -3
  17. package/dist/web/client/assets/input-group-Tb5TYbzi.js +1 -0
  18. package/dist/web/client/assets/{ipython-tool-BrMePqD-.js → ipython-tool-ldJ9F1Cw.js} +1 -1
  19. package/dist/web/client/assets/model-selector-list-Ch05B2nZ.js +1 -0
  20. package/dist/web/client/assets/{openui-renderer-DwYFJdbe.js → openui-renderer-Bf60nxNi.js} +4 -4
  21. package/dist/web/client/assets/pencil-DcUwsKLn.js +1 -0
  22. package/dist/web/client/assets/prompt-input-qPIXZ-Rb.js +1 -0
  23. package/dist/web/client/assets/prompt-suggestions-Cc--lSNR.js +1 -0
  24. package/dist/web/client/assets/{provider-label-BCJh04J5.js → provider-label-DDLRnZyC.js} +1 -1
  25. package/dist/web/client/assets/repl-panel-DsPX04Xr.js +1 -0
  26. package/dist/web/client/assets/{resources-panel-Bo8dfUdm.js → resources-panel-D867-goy.js} +1 -1
  27. package/dist/web/client/assets/right-panel-registry-Dp8yX-oL.js +2 -0
  28. package/dist/web/client/assets/routes-DpgMJZ5n.js +16 -0
  29. package/dist/web/client/assets/safe-storage-s25GrfpH.js +1 -0
  30. package/dist/web/client/assets/session-insights-panel-YnaXvTpi.js +1 -0
  31. package/dist/web/client/assets/settings-dialog-YJkvt5EB.js +2 -0
  32. package/dist/web/client/assets/skeleton-loaders-C9vHwAYV.js +1 -0
  33. package/dist/web/client/assets/{subagent-chat-panel-DseoO31p.js → subagent-chat-panel-Yujplxpb.js} +1 -1
  34. package/dist/web/client/assets/subagent-transcript-CnI-mqN0.js +1 -0
  35. package/dist/web/client/assets/subagents-panel-CjXEdimj.js +1 -0
  36. package/dist/web/client/assets/{surfaces-cW-gp56p.js → surfaces-DI-U-_2a.js} +1 -1
  37. package/dist/web/client/assets/tool-result-DfnPN0FQ.js +4 -0
  38. package/dist/web/client/assets/ui-preferences-CImQGZm_.js +1 -0
  39. package/dist/web/client/assets/virtualized-turn-list--Vynre4D.js +6 -0
  40. package/dist/web/client/assets/{workspace-panel-DI1W3ce9.js → workspace-panel-CPPIznT9.js} +1 -1
  41. package/dist/web/client/bundle-budget.json +6 -6
  42. package/dist/web/server/{_tanstack-start-manifest_v-Cdx6hy2i-I7A5YJRU.js → _tanstack-start-manifest_v-DS_CSIFQ-WB3VTKF3.js} +15 -13
  43. package/dist/web/server/{agent-activity-B-JMvecd-SLE3GGY2.js → agent-activity-CS2rbF_C-A3R26CYH.js} +2 -2
  44. package/dist/web/server/{artifacts-panel-DLMK1O8P-42T45JMA.js → artifacts-panel-CaKrX2XC-R37I4BHF.js} +12 -12
  45. package/dist/web/server/{chat-command-palette-CdYwoTMe-4LBAZF7K.js → chat-command-palette-7gbqEnm9-6XICQZN7.js} +4 -4
  46. package/dist/web/server/{chunk-EBCYJSBR.js → chunk-7SD2ZSEA.js} +3 -3
  47. package/dist/web/server/{chunk-6AW2XFTZ.js → chunk-BBBS5AS7.js} +194 -10
  48. package/dist/web/server/{chunk-EOVMHQ2H.js → chunk-CNXJN5HN.js} +7 -7
  49. package/dist/web/server/{chunk-XKKXXG6N.js → chunk-DI7XRK2H.js} +2 -2
  50. package/dist/web/server/{chunk-KNJUSMBT.js → chunk-DZ2IC3FH.js} +2 -2
  51. package/dist/web/server/{chunk-K5ESTT4A.js → chunk-EAE2QXRK.js} +11 -3
  52. package/dist/web/server/{chunk-VHBFU4TG.js → chunk-EH4BZ6QM.js} +123 -16
  53. package/dist/web/server/{chunk-54II5QXQ.js → chunk-ETTDO4UO.js} +6 -3
  54. package/dist/web/server/{chunk-EHNIN245.js → chunk-GETSIVNU.js} +5 -5
  55. package/dist/web/server/{chunk-X2R5YPQZ.js → chunk-IJPCV6DH.js} +3 -2
  56. package/dist/web/server/{chunk-AJJ2S5FF.js → chunk-JQDLJ7KI.js} +20 -20
  57. package/dist/web/server/{chunk-M564UIEY.js → chunk-KELEYPVK.js} +8 -8
  58. package/dist/web/server/{chunk-OB5OSYJK.js → chunk-LXJD6IGW.js} +53 -29
  59. package/dist/web/server/chunk-M5RSPNYN.js +22 -0
  60. package/dist/web/server/{chunk-2TRF62K5.js → chunk-N6NOTURM.js} +3 -3
  61. package/dist/web/server/{chunk-5XX7RKJ6.js → chunk-NXJ32VFR.js} +5 -5
  62. package/dist/web/server/{chunk-P7H2OPKF.js → chunk-PIOFZUOU.js} +9 -1
  63. package/dist/web/server/chunk-PTCKOR23.js +39 -0
  64. package/dist/web/server/chunk-SZJUXVWG.js +40 -0
  65. package/dist/web/server/{chunk-TCH3U26B.js → chunk-TWYHHG5N.js} +2 -10
  66. package/dist/web/server/{chunk-FED63ZHU.js → chunk-WHBVQJ4K.js} +11 -6
  67. package/dist/web/server/{chunk-ANL4B775.js → chunk-XLNCWZMZ.js} +2 -2
  68. package/dist/web/server/{chunk-GM32R7JW.js → chunk-YKVGQBZA.js} +10 -8
  69. package/dist/web/server/{chunk-NRDG2ISJ.js → chunk-YNUWKMNQ.js} +59 -52
  70. package/dist/web/server/{chunk-3PIUR75R.js → chunk-YXXRP3NS.js} +9 -9
  71. package/dist/web/server/fleet-message-queue-BS-cZ56r-GLZXUKDF.js +152 -0
  72. package/dist/web/server/{fleet-pi-tool-renderer-RIeVlM9J-D6MISCQC.js → fleet-pi-tool-renderer-umKunT3K-O4GBH35V.js} +5 -5
  73. package/dist/web/server/{fleet-reasoning-panel-D_K48UOT-GN2PA6KT.js → fleet-reasoning-panel-BxC2COxi-GPLMQSTT.js} +9 -9
  74. package/dist/web/server/{fleet-subagent-list-5luKtpds-3OTVFHJQ.js → fleet-subagent-list-CpSYzCIq-JDH2LHSS.js} +1 -1
  75. package/dist/web/server/{fleet-tool-timeline-DwRqQgOj-HUFLGMDV.js → fleet-tool-timeline-IB36_PB2-XJENTO6I.js} +1 -1
  76. package/dist/web/server/{fork-picker-dialog-B9yGc8Au-IL63F2DN.js → fork-picker-dialog-DlINz9UQ-UWIXFDJX.js} +3 -3
  77. package/dist/web/server/{model-selector-list-cb2-ewoA-KIVU6LD3.js → model-selector-list-jBTZc2Mu-OXJOS5NA.js} +7 -7
  78. package/dist/web/server/{openui-renderer-Czy5Vo2L-BLXPJD65.js → openui-renderer-Biyyjhjn-SJOEKPTJ.js} +4 -4
  79. package/dist/web/server/{prompt-suggestions-BOmHi4-J-C563CHFU.js → prompt-suggestions-D4AEEY7K-RZSP7PWV.js} +3 -3
  80. package/dist/web/server/{repl-panel-yyxhwe4c-7U6HXYPS.js → repl-panel-D5KsoJik-BQKO53JO.js} +9 -9
  81. package/dist/web/server/{resources-panel-j4fAIi9g-5C267IXV.js → resources-panel-CE5pD4vy-V5FXBTYC.js} +2 -2
  82. package/dist/web/server/{router-CgSWrAYc-5UBYSZTJ.js → router-DWALoX_M-I5CBL7FQ.js} +1461 -515
  83. package/dist/web/server/{routes-CP_BBhD0-BAWQYGKY.js → routes-BBVirYfL-5WXMOT7M.js} +908 -566
  84. package/dist/web/server/server.js +2 -2
  85. package/dist/web/server/{session-insights-panel-BHZyKDTo-LRMAMA3O.js → session-insights-panel-CUhdgvRt-VB2HUCQP.js} +4 -4
  86. package/dist/web/server/{settings-dialog-CxHe8nym-KKXDPTIW.js → settings-dialog-DndPbM-v-RFNXXEAN.js} +902 -575
  87. package/dist/web/server/{subagent-chat-panel-DlSsM59d-DBW7DI3T.js → subagent-chat-panel-C0RpnXav-J7VYO7QY.js} +11 -11
  88. package/dist/web/server/{subagents-panel-Txzk8oDb-NRKLASYN.js → subagents-panel-jDqIn9Nh-YEV6QLUY.js} +13 -13
  89. package/dist/web/server/{workspace-panel-BOs-58Cv-SWQBMZSB.js → workspace-panel-CX_Vo6As-EWO6AMPI.js} +5 -4
  90. package/package.json +1 -1
  91. package/dist/web/client/assets/agent-activity-CDcDNVC6.js +0 -1
  92. package/dist/web/client/assets/artifacts-panel-CObI-DMt.js +0 -1
  93. package/dist/web/client/assets/chat-C8XDWWXz.js +0 -52
  94. package/dist/web/client/assets/fleet-message-queue-zWM5-y18.js +0 -1
  95. package/dist/web/client/assets/fleet-reasoning-panel-MtbSdoCv.js +0 -1
  96. package/dist/web/client/assets/fleet-tool-timeline-COzPrwr8.js +0 -1
  97. package/dist/web/client/assets/generative-text-renderer-CDKHv-v_.js +0 -6
  98. package/dist/web/client/assets/globals-DisQPFtV.css +0 -2
  99. package/dist/web/client/assets/horizontal-resize-Bl3AyBJg.js +0 -1
  100. package/dist/web/client/assets/input-group-BFDsCVS9.js +0 -1
  101. package/dist/web/client/assets/model-selector-list-DQaPFUYt.js +0 -1
  102. package/dist/web/client/assets/prompt-input-DZ4cho_e.js +0 -1
  103. package/dist/web/client/assets/prompt-suggestions-CXM6knMK.js +0 -1
  104. package/dist/web/client/assets/repl-panel-BDQ5MEgV.js +0 -1
  105. package/dist/web/client/assets/right-panel-registry-VVRPktV3.js +0 -2
  106. package/dist/web/client/assets/routes-DAikUNzO.js +0 -16
  107. package/dist/web/client/assets/session-insights-panel-CQdT90Op.js +0 -1
  108. package/dist/web/client/assets/settings-dialog-DS64KmwC.js +0 -1
  109. package/dist/web/client/assets/skeleton-loaders-DjGv9LLA.js +0 -1
  110. package/dist/web/client/assets/subagent-transcript-cxVKYnh9.js +0 -1
  111. package/dist/web/client/assets/subagents-panel-CHC96I68.js +0 -1
  112. package/dist/web/client/assets/tool-result-Baj3CdL_.js +0 -4
  113. package/dist/web/client/assets/ui-preferences-DUEFuJFj.js +0 -1
  114. package/dist/web/server/chunk-QK4CHLVV.js +0 -17
  115. package/dist/web/server/fleet-message-queue-BxycG26e-2XLOTCLP.js +0 -75
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-NZYk81nU.js";var t=[`queued`,`running`,`done`,`error`,`cancelled`,`recovering`,`failed`];function n({activityLabel:e,artifactRuns:n,messages:r,planLabel:i,presentation:a,queue:o}){let s=Object.fromEntries(t.map(e=>[e,0]));for(let e of a.rlmChildren)s[e.status]+=1;let c=a.refinements.reduce((e,t)=>({failed:e.failed+Number(t.status===`error`),successful:e.successful+Number(t.status===`success`),total:e.total+1}),{failed:0,successful:0,total:0}),l=n.flatMap(e=>e.artifacts);return{activity:e||i||`Waiting for input`,artifactCount:l.length,assistantMessages:r.filter(e=>e.role===`assistant`).length,bashCommands:a.userBash.length,goal:a.goal,ipythonCells:l.filter(e=>e.kind===`ipython`).length,queuedFollowUps:o.followUp.length,queuedSteering:o.steering.length,refinements:c,rlmChildren:s,userMessages:r.filter(e=>e.role===`user`).length}}var r=e();function i(e){return e.replaceAll(`_`,` `)}function a(e){let t=Math.max(0,Math.round(e)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}function o({children:e,label:t}){return(0,r.jsxs)(`section`,{"aria-label":t,className:`rounded-md border border-border/60 bg-background px-3 py-2.5 shadow-[0_1px_4px_-1px_rgba(0,0,0,0.06)]`,children:[(0,r.jsx)(`h3`,{className:`mb-2 text-[11px] font-medium uppercase tracking-wide text-foreground/45`,children:t}),(0,r.jsx)(`dl`,{className:`space-y-1.5 text-[12px]`,children:e})]})}function s({label:e,value:t}){return(0,r.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,r.jsx)(`dt`,{className:`text-foreground/50`,children:e}),(0,r.jsx)(`dd`,{className:`min-w-0 text-right font-medium text-foreground/80`,children:t})]})}function c({goal:e}){return(0,r.jsxs)(o,{label:`Goal`,children:[(0,r.jsx)(s,{label:`Status`,value:i(e.status)}),e.objective?(0,r.jsx)(s,{label:`Objective`,value:(0,r.jsx)(`span`,{className:`block max-w-56 text-pretty`,children:e.objective})}):null,(0,r.jsx)(s,{label:`Elapsed`,value:a(e.timeUsedSeconds)}),(0,r.jsx)(s,{label:`Token usage`,value:e.tokensUsed}),e.tokenBudget===void 0?null:(0,r.jsx)(s,{label:`Token budget`,value:e.tokenBudget}),(0,r.jsx)(s,{label:`Continuations`,value:e.continuationsUsed})]})}function l({activityLabel:e,artifactRuns:i,chatMode:a,messages:l,planLabel:u,presentation:d,queue:f,selectedModelKey:p,sessionId:m,status:h,thinkingLevel:g}){if(!m)return(0,r.jsx)(`section`,{"aria-label":`Session insights`,className:`flex min-h-36 items-center rounded-md border border-dashed border-border/70 px-4 text-center text-[12px] leading-5 text-foreground/45`,children:`Start or open a session to view its live insights.`});let _=n({activityLabel:e,artifactRuns:i,messages:l,planLabel:u,presentation:d,queue:f}),v=t.map(e=>`${_.rlmChildren[e]} ${e}`).join(` · `);return(0,r.jsxs)(`section`,{"aria-label":`Session insights`,className:`space-y-2.5 pb-1`,children:[(0,r.jsxs)(o,{label:`Current state`,children:[(0,r.jsx)(s,{label:`Run status`,value:h}),(0,r.jsx)(s,{label:`Activity`,value:(0,r.jsx)(`span`,{className:`block max-w-56 text-pretty`,children:_.activity})}),(0,r.jsx)(s,{label:`Queued steering`,value:_.queuedSteering}),(0,r.jsx)(s,{label:`Queued follow-ups`,value:_.queuedFollowUps})]}),_.goal?(0,r.jsx)(c,{goal:_.goal}):null,(0,r.jsxs)(o,{label:`Configuration`,children:[(0,r.jsx)(s,{label:`Model`,value:p??`Not selected`}),(0,r.jsx)(s,{label:`Mode`,value:a}),(0,r.jsx)(s,{label:`Reasoning`,value:g??d.thinkingLevel??`Not set`})]}),(0,r.jsxs)(o,{label:`Progress`,children:[(0,r.jsx)(s,{label:`User messages`,value:_.userMessages}),(0,r.jsx)(s,{label:`Assistant messages`,value:_.assistantMessages}),(0,r.jsx)(s,{label:`Artifacts`,value:_.artifactCount}),(0,r.jsx)(s,{label:`Bash commands`,value:_.bashCommands}),(0,r.jsx)(s,{label:`IPython cells`,value:_.ipythonCells}),(0,r.jsx)(s,{label:`RLM children`,value:v||`None`}),(0,r.jsx)(s,{label:`Refinements`,value:`${_.refinements.total} total · ${_.refinements.successful} successful · ${_.refinements.failed} failed`})]}),d.recap?(0,r.jsx)(o,{label:`Existing recap`,children:(0,r.jsx)(s,{label:`Summary`,value:(0,r.jsx)(`span`,{className:`block max-w-56 whitespace-pre-wrap text-left text-pretty`,children:d.recap})})}):null]})}export{l as SessionInsightsPanel};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{$ as r,B as i,F as a,J as o,L as s,Q as c,R as l,V as u,Z as d,at as f,et as p,f as m,it as h,n as g,nt as _,o as v,t as y,tt as b,z as x}from"./button-BR2WWrFo.js";import{C as S,G as C,K as w,O as T,P as E,U as D,et as O,f as k,g as A,h as j,i as M,k as N,m as P,nt as F,rt as I,s as L,st as R,t as z}from"./createBaseUIEventDetails-DV0dQrBX.js";import{i as B,r as V}from"./toast-Bt9p2OL4.js";import{A as H,F as U,G as ee,I as W,J as te,K as ne,L as re,M as ie,N as G,P as ae,R as oe,U as se,W as ce,X as le,_ as ue,a as de,c as fe,d as pe,f as me,g as he,h as ge,it as _e,k as ve,m as ye,n as be,o as xe,p as Se,r as Ce,s as we,t as Te,u as Ee,z as De}from"./dialog-BEZuZhzk.js";import{M as Oe,a as ke,b as Ae,d as je,h as Me,i as Ne,l as Pe,o as Fe,r as Ie,s as K,v as Le,x as Re,y as ze}from"./provider-catalog-D8G66gwc.js";import{r as Be,t as Ve}from"./useBaseUiId-CHqXB2UQ.js";import{A as He,C as Ue,D as We,E as Ge,O as Ke,S as qe,T as Je,_ as Ye,a as Xe,b as Ze,c as Qe,d as q,g as $e,i as et,j as tt,k as nt,l as rt,n as it,o as at,r as ot,s as st,t as ct,u as lt,v as ut,w as dt,x as ft}from"./provider-label-BCJh04J5.js";import{t as J}from"./utils-Eg7xtNmV.js";import{t as Y}from"./createLucideIcon-DwxZHm0M.js";import{t as pt}from"./check-JjHKAZas.js";import{t as mt}from"./chevron-right-DrJxToLs.js";import{t as ht}from"./loader-circle-DjfHXUPB.js";import{i as gt,n as _t}from"./shield-check-CkA2viVW.js";import{t as vt}from"./eye-B0DFz5hL.js";import{t as yt}from"./hard-drive-CHqgr7VQ.js";import{i as bt,n as xt,r as St,t as Ct}from"./sun-BWiZFty0.js";import{t as wt}from"./message-square-hbDao-A1.js";import{t as Tt}from"./plus-DXN1Bg_z.js";import{t as Et}from"./refresh-cw-IThTJ3j-.js";import{t as Dt}from"./rotate-ccw-WNFNkKQD.js";import{t as Ot}from"./search-eWVnAJsb.js";import{t as kt}from"./sparkles-DuclzqlE.js";import{t as At}from"./x-CsRC_tCI.js";import{n as jt,r as Mt}from"./ui-preferences-DUEFuJFj.js";import{t as X}from"./notify-DgMKgZZW.js";import{n as Nt,r as Pt}from"./right-panel-context-DHlNWJsF.js";import"./skeleton-CkR2VmWc.js";import{t as Ft}from"./input-0wwjWjKq.js";import{a as It,c as Lt,i as Rt,n as zt,r as Bt,s as Vt,t as Ht}from"./switch-9rTeg6J6.js";import{i as Ut,n as Wt,r as Gt,t as Kt}from"./input-group-BFDsCVS9.js";var Z=e(t(),1),Q=n(),qt=Z.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new c,currentIdRef:{current:null},currentContextRef:{current:null}});function Jt(e,t){e.current=t.current}function Yt(e,t={open:!1}){let{open:n}=t,r=`rootStore`in e?e.rootStore:e,i=r.useState(`floatingId`),{currentIdRef:a,delayRef:o,timeoutMs:s,initialDelayRef:c,currentContextRef:l,hasProvider:u,timeout:d}=Z.useContext(qt),[f,p]=Z.useState(!1),m=Z.useRef(n);return I(()=>{m.current=n},[n]),I(()=>{function e(){l.current?.setIsInstantPhase(!1),a.current=null,l.current=null,o.current=c.current,d.clear()}if(a.current&&!n&&a.current===i){if(p(!1),s){let t=i;return d.start(s,()=>{r.select(`open`)||a.current&&a.current!==t||e()}),()=>{(m.current||a.current!==t)&&d.clear()}}e()}},[n,i,a,o,s,c,l,d,r]),I(()=>{if(!n)return;let e=l.current,t=a.current;d.clear(),l.current={onOpenChange:r.setOpen,setIsInstantPhase:p},a.current=i,o.current={open:0,close:tt(c.current,`close`)},t!==null&&t!==i?(p(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1,z(k))):(p(!1),e?.setIsInstantPhase(!1))},[n,i,r,a,o,c,l,d]),I(()=>()=>{if(a.current===i){if(l.current=null,!m.current)return;a.current=null,Jt(o,c),d.clear()}},[l,a,o,i,c,d]),Z.useMemo(()=>({hasProvider:u,delayRef:o,isInstantPhase:f}),[u,o,f])}function Xt(e,t){let n=null,r=null,i=!1;return{contextElement:e||void 0,getBoundingClientRect(){let a=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},o=t.axis===`x`||t.axis===`both`,s=t.axis===`y`||t.axis===`both`,c=[`mouseenter`,`mousemove`].includes(t.dataRef.current.openEvent?.type||``)&&t.pointerType!==`touch`,l=a.width,u=a.height,d=a.x,f=a.y;return n==null&&t.x&&o&&(n=a.x-t.x),r==null&&t.y&&s&&(r=a.y-t.y),d-=n||0,f-=r||0,l=0,u=0,!i||c?(l=t.axis===`y`?a.width:0,u=t.axis===`x`?a.height:0,d=o&&t.x!=null?t.x:d,f=s&&t.y!=null?t.y:f):i&&!c&&(u=t.axis===`x`?a.height:u,l=t.axis===`y`?a.width:l),i=!0,{width:l,height:u,x:d,y:f,top:f,right:d+l,bottom:f+u,left:d}}}}function Zt(e){return e!=null&&e.clientX!=null}function Qt(e,t={}){let{enabled:n=!0,axis:r=`both`}=t,a=`rootStore`in e?e.rootStore:e,o=a.useState(`open`),s=a.useState(`floatingElement`),c=a.useState(`domReferenceElement`),l=a.context.dataRef,d=Z.useRef(!1),f=Z.useRef(null),[p,m]=Z.useState(),[h,g]=Z.useState([]),_=O(e=>{a.set(`positionReference`,e)}),v=O((e,t,n)=>{d.current||l.current.openEvent&&!Zt(l.current.openEvent)||a.set(`positionReference`,Xt(n??c,{x:e,y:t,axis:r,dataRef:l,pointerType:p}))}),y=O(e=>{o?f.current||(v(e.clientX,e.clientY,e.currentTarget),g([])):v(e.clientX,e.clientY,e.currentTarget)}),b=_e(p)?s:o;Z.useEffect(()=>{if(!n){_(c);return}if(!b)return;function e(){f.current?.(),f.current=null}let t=D(s);function r(t){let n=u(t);i(s,n)?e():v(t.clientX,t.clientY)}return!l.current.openEvent||Zt(l.current.openEvent)?f.current=E(t,`mousemove`,r):_(c),e},[b,n,s,l,c,a,v,_,h]),Z.useEffect(()=>()=>{a.set(`positionReference`,null)},[a]),Z.useEffect(()=>{n&&!s&&(d.current=!1)},[n,s]),Z.useEffect(()=>{!n&&o&&(d.current=!0)},[n,o]);let x=Z.useMemo(()=>{function e(e){m(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:y,onMouseEnter:y}},[y]);return Z.useMemo(()=>n?{reference:x,trigger:x}:{},[n,x])}var $t=d&&o;function en(e,t={}){let{enabled:n=!0,delay:o}=t,c=`rootStore`in e?e.rootStore:e,{events:d,dataRef:f}=c.context,m=Z.useRef(!1),h=Z.useRef(null),g=Z.useRef(!0),_=r();Z.useEffect(()=>{let e=c.select(`domReferenceElement`);if(!n)return;let t=D(e);function r(){let e=c.select(`domReferenceElement`);!c.select(`open`)&&w(e)&&e===x(p(e))&&(m.current=!0)}function i(){g.current=!0}function a(){g.current=!1}return b(E(t,`blur`,r),$t&&E(t,`keydown`,i,!0),$t&&E(t,`pointerdown`,a,!0))},[c,n]),Z.useEffect(()=>{if(!n)return;function e(e){if(e.reason===`trigger-press`||e.reason===`escape-key`){let e=c.select(`domReferenceElement`);C(e)&&(h.current=e,m.current=!0)}}return d.on(`openchange`,e),()=>{d.off(`openchange`,e)}},[d,n,c]);let y=Z.useMemo(()=>{function e(){m.current=!1,h.current=null}return{onMouseLeave(){e()},onFocus(t){let n=t.currentTarget;if(m.current){if(h.current===n)return;e()}let r=u(t.nativeEvent);if(C(r)){if($t&&!t.relatedTarget){if(!g.current&&!s(r))return}else if(!l(r))return}let i=a(t.relatedTarget,c.context.triggerElements),{nativeEvent:d,currentTarget:f}=t,p=typeof o==`function`?o():o;if(c.select(`open`)&&i||p===0||p===void 0){c.setOpen(!0,z(P,d,f));return}_.start(p,()=>{m.current||c.setOpen(!0,z(P,d,f))})},onBlur(t){e();let n=t.relatedTarget,r=t.nativeEvent,o=C(n)&&n.hasAttribute(v(`focus-guard`))&&n.getAttribute(`data-type`)===`outside`;_.start(0,()=>{let e=c.select(`domReferenceElement`),t=x(p(e));!n&&t===e||i(f.current.floatingContext?.refs.floating.current,t)||i(e,t)||o||a(n??t,c.context.triggerElements)||c.setOpen(!1,z(P,r))})}}},[f,o,c,_]);return Z.useMemo(()=>n?{reference:y,trigger:y}:{},[n,y])}var tn=Y(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),nn=Y(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),rn=Y(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),an=Y(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),on=Y(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]),sn=Y(`paintbrush`,[[`path`,{d:`m14.622 17.897-10.68-2.913`,key:`vj2p1u`}],[`path`,{d:`M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z`,key:`18tc5c`}],[`path`,{d:`M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15`,key:`ytzfxy`}]]),cn=Y(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),ln=Y(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),un=Y(`tag`,[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]),dn=Y(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),fn=new Set([`off`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]),pn=new Map,mn=500;function hn(e){let t=pn.get(e);if(t)return t;let n=RegExp(`^${e.split(``).map(e=>e===`*`?`.*`:e===`?`?`.`:bn(e)).join(``)}$`);return pn.size>=mn&&pn.clear(),pn.set(e,n),n}function gn(e,t){return t===void 0||t.length!==0&&t.some(t=>_n(e,t))}function _n(e,t){let n=vn(t.trim()).toLowerCase(),r=[e.id,e.modelId,e.name,e.key,e.provider&&e.modelId?`${e.provider}/${e.modelId}`:void 0,e.provider&&e.id?`${e.provider}/${e.id}`:void 0].filter(e=>typeof e==`string`).map(e=>e.toLowerCase());if(!yn(n))return r.includes(n);let i=hn(n);return r.some(e=>i.test(e))}function vn(e){let t=e.lastIndexOf(`:`);if(t===-1)return e;let n=e.slice(t+1);return fn.has(n)?e.slice(0,t):e}function yn(e){return e.includes(`*`)||e.includes(`?`)}function bn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function xn(e,t){return`${e}/${t}`}var Sn=Z.createContext(void 0);function Cn(){let e=Z.useContext(Sn);if(e===void 0)throw Error(F(53));return e}function wn(e,t,n){if(!e)return 0;let r=getComputedStyle(e),i=`${t}${n===`x`?`Inline`:`Block`}`,a=parseFloat(r[`${i}Start`]);return n===`x`&&t===`margin`?a*2:a+parseFloat(r[`${i}End`])}var Tn=e=>t=>t?{[e]:``}:null,En={hasOverflowX:Tn(`data-has-overflow-x`),hasOverflowY:Tn(`data-has-overflow-y`),overflowXStart:Tn(`data-overflow-x-start`),overflowXEnd:Tn(`data-overflow-x-end`),overflowYStart:Tn(`data-overflow-y-start`),overflowYEnd:Tn(`data-overflow-y-end`),cornerHidden:()=>null},Dn={x:0,y:0},On={width:0,height:0},kn={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},An={x:!0,y:!0,corner:!0},jn=Z.forwardRef(function(e,t){let{render:n,className:a,overflowEdgeThreshold:o,style:s,...c}=e,{xStart:l,xEnd:u,yStart:d,yEnd:f}=Mn(o),p=Ve(),m=r(),h=r(),{nonce:g,disableStyleElements:_}=Me(),[v,y]=Z.useState(!1),[b,x]=Z.useState(!1),[S,C]=Z.useState(!1),[w,E]=Z.useState(!1),[D,k]=Z.useState(!1),[A,j]=Z.useState(On),[M,N]=Z.useState(On),[P,F]=Z.useState(kn),[I,L]=Z.useState(An),R=Z.useRef(null),z=Z.useRef(null),B=Z.useRef(null),V=Z.useRef(null),H=Z.useRef(null),U=Z.useRef(null),ee=Z.useRef(null),W=Z.useRef(null),te=Z.useRef(0),ne=Z.useRef(0),re=Z.useRef(0),ie=Z.useRef(0),G=Z.useRef(`vertical`),ae=Z.useRef(Dn),oe=Z.useRef(null);function se(e){let t=e?C:x,n=e?m:h;t(!0),n.start(500,()=>{t(!1)})}let ce=O(e=>{let t=e.x-ae.current.x,n=e.y-ae.current.y;ae.current=e,n!==0&&se(!0),t!==0&&se(!1)}),le=O(()=>{let e=z.current;e&&oe.current===null&&(oe.current=e.style.scrollSnapType,e.style.scrollSnapType=`none`)}),ue=O(e=>{if(e.button!==0||W.current!==null&&(G.current===`vertical`?H.current:U.current)?.hasPointerCapture(W.current))return;W.current=e.pointerId,te.current=e.clientY,ne.current=e.clientX,G.current=e.currentTarget.getAttribute(`data-orientation`);let t=z.current;t&&(re.current=t.scrollTop,ie.current=t.scrollLeft,le()),(G.current===`vertical`?H.current:U.current)?.setPointerCapture(e.pointerId)}),de=O(e=>{if(e.pointerId!==W.current)return;W.current=null,(G.current===`vertical`?C:x)(!1),oe.current!==null&&(z.current&&(z.current.style.scrollSnapType=oe.current),oe.current=null);let t=G.current===`vertical`?H.current:U.current;t?.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)}),fe=O(e=>{if(e.pointerId!==W.current)return;if(e.buttons%2==0){de(e);return}let t=z.current;if(!t)return;let n=G.current===`vertical`,r=n?H.current:U.current,i=n?B.current:V.current;if(!r||!i)return;let a=n?`y`:`x`,o=wn(i,`padding`,a),s=wn(r,`margin`,a),c=n?r.offsetHeight:r.offsetWidth,l=(n?i.offsetHeight:i.offsetWidth)-c-o-s,u=n?e.clientY-te.current:e.clientX-ne.current,d=l<=0?0:u/l,f=n?t.scrollHeight:t.scrollWidth,p=n?t.clientHeight:t.clientWidth,m=(n?re.current:ie.current)+d*(f-p);n?t.scrollTop=m:t.scrollLeft=m,e.preventDefault(),se(n)});function pe(e){E(e.pointerType===`touch`)}function me(e){if(pe(e),e.pointerType!==`touch`){let t=i(R.current,e.target);y(t)}}let he=Z.useMemo(()=>({scrolling:b||S,hasOverflowX:!I.x,hasOverflowY:!I.y,overflowXStart:P.xStart,overflowXEnd:P.xEnd,overflowYStart:P.yStart,overflowYEnd:P.yEnd,cornerHidden:I.corner}),[b,S,I.x,I.y,I.corner,P]),ge={role:`presentation`,onPointerEnter:me,onPointerMove:me,onPointerDown:pe,onPointerLeave(){y(!1)},style:{position:`relative`,"--scroll-area-corner-height":`${A.height}px`,"--scroll-area-corner-width":`${A.width}px`}},_e=T(`div`,e,{state:he,ref:[t,R],props:[ge,c],stateAttributesMapping:En}),ve=Z.useMemo(()=>({handlePointerDown:ue,handlePointerMove:fe,handlePointerUp:de,handleScroll:ce,disableViewportSnap:le,cornerSize:A,setCornerSize:j,thumbSize:M,setThumbSize:N,hasMeasuredScrollbar:D,setHasMeasuredScrollbar:k,touchModality:w,cornerRef:ee,scrollingX:b,scrollingY:S,hovering:v,setHovering:y,viewportRef:z,scrollbarYRef:B,scrollbarXRef:V,thumbYRef:H,thumbXRef:U,rootId:p,hiddenState:I,setHiddenState:L,overflowEdges:P,setOverflowEdges:F,viewportState:he,overflowEdgeThreshold:{xStart:l,xEnd:u,yStart:d,yEnd:f}}),[ue,fe,de,ce,le,A,M,D,w,b,S,v,p,I,P,he,l,u,d,f]);return(0,Q.jsxs)(Sn.Provider,{value:ve,children:[!_&&Pe.getElement(g),_e]})});function Mn(e){let t=typeof e==`number`?{xStart:e,xEnd:e,yStart:e,yEnd:e}:e;return{xStart:Math.max(0,t?.xStart||0),xEnd:Math.max(0,t?.xEnd||0),yStart:Math.max(0,t?.yStart||0),yEnd:Math.max(0,t?.yEnd||0)}}var Nn=Z.createContext(void 0),Pn=[`--scroll-area-overflow-x-start`,`--scroll-area-overflow-x-end`,`--scroll-area-overflow-y-start`,`--scroll-area-overflow-y-end`],Fn=!1;function In(){Fn||o||(typeof CSS<`u`&&`registerProperty`in CSS&&Pn.forEach(e=>{try{CSS.registerProperty({name:e,syntax:`<length>`,inherits:!1,initialValue:`0px`})}catch{}}),Fn=!0)}var Ln=Z.forwardRef(function(e,t){let{render:n,className:i,style:a,...o}=e,{viewportRef:s,scrollbarYRef:c,scrollbarXRef:l,thumbYRef:u,thumbXRef:d,cornerRef:f,cornerSize:p,setCornerSize:m,setThumbSize:h,rootId:g,setHiddenState:_,hiddenState:v,setHasMeasuredScrollbar:y,handleScroll:b,touchModality:x,setHovering:S,setOverflowEdges:C,overflowEdgeThreshold:w,viewportState:E}=Cn(),D=Re(),k=Z.useRef(!0),A=Z.useRef([NaN,NaN,NaN,NaN]),j=r(),M=r(),N=O(()=>{let e=s.current,t=c.current,n=l.current,r=u.current,i=d.current,a=f.current;if(!e)return;let o=e.scrollHeight,g=e.scrollWidth,v=e.clientHeight,b=e.clientWidth,x=e.scrollTop,S=e.scrollLeft,T=A.current,E=Number.isNaN(T[0]);if(T[0]=v,T[1]=o,T[2]=b,T[3]=g,E&&y(!0),o===0||g===0)return;let O=Rn(e),k=O.y,j=O.x,M=b/g,N=v/o,P=Math.max(0,g-b),F=Math.max(0,o-v),I=0,L=0;j||(I=je(D===`rtl`?-S:S,P),L=P-I);let R=k?0:je(x,F),z=k?0:F-R,B=j?0:b,V=k?0:v,H=0,U=0;!j&&!k&&(H=t?.offsetWidth||0,U=n?.offsetHeight||0);let ee=p.width===0&&p.height===0,W=ee?H:0,te=ee?U:0,ne=wn(n,`padding`,`x`),re=wn(t,`padding`,`y`),ie=wn(i,`margin`,`x`),G=wn(r,`margin`,`y`),ae=B-ne-ie,oe=V-re-G,se=n?Math.min(n.offsetWidth-W,ae):ae,ce=t?Math.min(t.offsetHeight-te,oe):oe,le=Math.max(16,se*M),ue=Math.max(16,ce*N);if(h(e=>zn(e,{width:le,height:ue})),t&&r){let e=Bn(r,`--scroll-area-thumb-height`,x,F,o,ue,t.offsetHeight-ue-re-G);r.style.transform=`translate3d(0,${e}px,0)`}if(n&&i){let e=n.offsetWidth-le-ne-ie,t=Bn(i,`--scroll-area-thumb-width`,D===`rtl`?-S:S,P,g,le,e);i.style.transform=`translate3d(${D===`rtl`?-t:t}px,0,0)`}let de=[I,L,R,z];Pn.forEach((t,n)=>{e.style.setProperty(t,`${de[n]}px`)}),a&&m(e=>zn(e,{width:H,height:U})),_(e=>zn(e,O));let fe={xStart:!j&&I>w.xStart,xEnd:!j&&L>w.xEnd,yStart:!k&&R>w.yStart,yEnd:!k&&z>w.yEnd};C(e=>zn(e,fe))});I(()=>{In()},[]),I(()=>{queueMicrotask(N)},[N,v,D,w.xStart,w.xEnd,w.yStart,w.yEnd]),I(()=>{s.current?.matches(`:hover`)&&S(!0)},[s,S]),I(()=>{let e=s.current;if(typeof ResizeObserver>`u`||!e)return;let t=!1,n=new ResizeObserver(()=>{if(!t){t=!0;let n=A.current;if(n[0]===e.clientHeight&&n[1]===e.scrollHeight&&n[2]===e.clientWidth&&n[3]===e.scrollWidth)return}N()});return n.observe(e),M.start(0,()=>{let t=e.getAnimations({subtree:!0});t.length!==0&&Promise.allSettled(t.map(e=>e.finished)).then(N).catch(()=>{})}),()=>{n.disconnect(),M.clear()}},[N,s,M]);function P(){k.current=!1}let F={role:`presentation`,...g&&{"data-id":`${g}-viewport`},tabIndex:v.x&&v.y?-1:0,className:Pe.className,style:{overflow:`scroll`},onScroll(){s.current&&(N(),(x||!k.current)&&b({x:s.current.scrollLeft,y:s.current.scrollTop}),j.start(100,()=>{k.current=!0}))},onWheel:P,onPointerMove:P,onPointerEnter:P,onKeyDown:P},L=T(`div`,e,{ref:[t,s],state:E,props:[F,o],stateAttributesMapping:En}),R=Z.useMemo(()=>({computeThumbPosition:N}),[N]);return(0,Q.jsx)(Nn.Provider,{value:R,children:L})});function Rn(e){let t=e.clientHeight>=e.scrollHeight,n=e.clientWidth>=e.scrollWidth;return{y:t,x:n,corner:t||n}}function zn(e,t){for(let n in t)if(e[n]!==t[n])return t;return e}function Bn(e,t,n,r,i,a,o){let s=Oe(n,0,r),c=n-s,l=Math.max(16,a*i/(i+Math.abs(c)));return e.style.setProperty(t,c?`${l}px`:``),(r?s/r*o:0)+(c>0?a-l:0)}var Vn=Z.createContext(void 0);function Hn(){let e=Z.useContext(Vn);if(e===void 0)throw Error(F(54));return e}var Un=Z.forwardRef(function(e,t){let{render:n,className:r,orientation:a=`vertical`,keepMounted:o=!1,style:s,...c}=e,{hovering:l,scrollingX:d,scrollingY:f,hiddenState:p,scrollbarYRef:m,scrollbarXRef:h,viewportRef:g,thumbYRef:_,thumbXRef:v,handlePointerDown:y,handlePointerUp:b,handleScroll:x,disableViewportSnap:S,rootId:C,thumbSize:w,hasMeasuredScrollbar:D,viewportState:O}=Cn(),k=a===`vertical`,A={...O,hovering:l,scrolling:k?f:d,orientation:a},j=Re(),M=!D&&!o,N=k?p.y:p.x,P=o||!N;Z.useEffect(()=>{if(!P)return;let e=g.current,t=k?m.current:h.current;if(!t)return;function n(t){if(!e||t.ctrlKey)return;let n=!k,r=n?`scrollLeft`:`scrollTop`,i=n?t.deltaX:t.deltaY;if(i===0)return;let a=n?e.scrollWidth-e.clientWidth:e.scrollHeight-e.clientHeight,o=n&&j===`rtl`?-a:0,s=n&&j===`rtl`?0:a,c=e[r];c<=o&&i<0||c>=s&&i>0||(t.preventDefault(),e[r]=Math.min(s,Math.max(o,c+i)),x({x:e.scrollLeft,y:e.scrollTop}))}return E(t,`wheel`,n,{passive:!1})},[j,x,k,h,m,P,g]);let F={...C&&{"data-id":`${C}-scrollbar`},onPointerDown(e){if(e.button!==0)return;let t=u(e.nativeEvent),n=k?_.current:v.current;if(n&&i(n,t))return;let r=g.current;if(!r)return;let a=k?m.current:h.current;if(!n||!a)return;let o=k?`y`:`x`,s=wn(n,`margin`,o),c=wn(a,`padding`,o),l=k?n.offsetHeight:n.offsetWidth,d=a.getBoundingClientRect(),f=k?e.clientY-d.top-l/2-c+s/2:e.clientX-d.left-l/2-c+s/2,p=k?r.scrollHeight:r.scrollWidth,b=k?r.clientHeight:r.clientWidth,C=(k?a.offsetHeight:a.offsetWidth)-l-c-s;if(C<=0)return;let w=f/C,T=p-b;S(),k?r.scrollTop=w*T:r.scrollLeft=j===`rtl`?-(1-w)*T:w*T,x({x:r.scrollLeft,y:r.scrollTop}),y(e)},onPointerUp:b,onPointerCancel:b,style:{position:`absolute`,touchAction:`none`,WebkitUserSelect:`none`,userSelect:`none`,visibility:M?`hidden`:void 0,...k?{top:0,bottom:`var(--scroll-area-corner-height)`,insetInlineEnd:0,"--scroll-area-thumb-height":`${w.height}px`}:{insetInlineStart:0,insetInlineEnd:`var(--scroll-area-corner-width)`,bottom:0,"--scroll-area-thumb-width":`${w.width}px`}}},I=T(`div`,e,{ref:[t,k?m:h],state:A,props:[F,c],stateAttributesMapping:En});return P?(0,Q.jsx)(Vn.Provider,{value:a,children:I}):null}),Wn=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{thumbYRef:o,thumbXRef:s,handlePointerDown:c,handlePointerMove:l,handlePointerUp:u,scrollingX:d,scrollingY:f,hasMeasuredScrollbar:p}=Cn(),m=Hn(),h=m===`vertical`;return T(`div`,e,{ref:[t,h?o:s],state:{scrolling:h?f:d,orientation:m},props:[{onPointerDown:c,onPointerMove:l,onPointerUp:u,onPointerCancel:u,style:{visibility:p?void 0:`hidden`,...h?{height:`var(--scroll-area-thumb-height)`}:{width:`var(--scroll-area-thumb-width)`}}},a]})}),Gn=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{cornerRef:o,cornerSize:s,hiddenState:c}=Cn(),l=T(`div`,e,{ref:[t,o],props:[{style:{position:`absolute`,bottom:0,insetInlineEnd:0,width:s.width,height:s.height}},a]});return c.corner?null:l});function Kn({className:e,children:t,...n}){return(0,Q.jsxs)(jn,{"data-slot":`scroll-area`,className:J(`relative`,e),...n,children:[(0,Q.jsx)(Ln,{"data-slot":`scroll-area-viewport`,className:`size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1`,children:t}),(0,Q.jsx)(qn,{}),(0,Q.jsx)(Gn,{})]})}function qn({className:e,orientation:t=`vertical`,...n}){return(0,Q.jsx)(Un,{"data-slot":`scroll-area-scrollbar`,"data-orientation":t,orientation:t,className:J(`flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent`,e),...n,children:(0,Q.jsx)(Wn,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-border`})})}function Jn({className:e,...t}){return(0,Q.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,className:J(e),...t})}function Yn({className:e,...t}){return(0,Q.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:J(`flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground`,e),...t})}function Xn({className:e,...t}){return(0,Q.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:J(`inline-flex items-center gap-1`,e),...t})}function Zn({className:e,...t}){return(0,Q.jsx)(`span`,{"data-slot":`breadcrumb-page`,"aria-current":`page`,className:J(`font-normal text-foreground`,e),...t})}function Qn({children:e,className:t,...n}){return(0,Q.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:J(`[&>svg]:size-3.5`,t),...n,children:e??(0,Q.jsx)(mt,{})})}var $n=768;function er(){let[e,t]=Z.useState(void 0);return Z.useEffect(()=>{let e=window.matchMedia(`(max-width: 767px)`),n=()=>{t(window.innerWidth<$n)};return e.addEventListener(`change`,n),t(window.innerWidth<$n),()=>e.removeEventListener(`change`,n)},[]),!!e}var tr=4;function nr({...e}){return(0,Q.jsx)(fe,{"data-slot":`sheet`,...e})}function rr({...e}){return(0,Q.jsx)(Ee,{"data-slot":`sheet-portal`,...e})}function ir({className:e,...t}){return(0,Q.jsx)(ye,{"data-slot":`sheet-overlay`,className:J(`fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs`,e),...t})}function ar({className:e,children:t,side:n=`right`,showCloseButton:r=!0,...i}){let a=he(),o=Math.min(a+tr,8);return(0,Q.jsxs)(rr,{children:[(0,Q.jsx)(ir,{}),(0,Q.jsx)(pe,{"data-slot":`sheet-content`,"data-side":n,className:J(`fixed z-50 flex flex-col gap-4 bg-clip-padding text-sm text-popover-foreground transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm`,ue(o),e),...i,children:(0,Q.jsxs)(ge,{value:o,children:[t,r&&(0,Q.jsxs)(Se,{"data-slot":`sheet-close`,render:(0,Q.jsx)(y,{variant:`ghost`,className:`absolute top-3 right-3`,size:`icon-sm`}),children:[(0,Q.jsx)(At,{}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})})]})}function or({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sheet-header`,className:J(`flex flex-col gap-0.5 p-4`,e),...t})}function sr({className:e,...t}){return(0,Q.jsx)(we,{"data-slot":`sheet-title`,className:J(`font-heading text-base font-medium text-foreground`,e),...t})}function cr({className:e,...t}){return(0,Q.jsx)(me,{"data-slot":`sheet-description`,className:J(`text-sm text-muted-foreground`,e),...t})}var lr=Z.createContext(void 0);function ur(e){let t=Z.useContext(lr);if(t===void 0&&!e)throw Error(F(72));return t}var dr={...U,disabled:e=>e.disabled,instantType:e=>e.instantType,isInstantPhase:e=>e.isInstantPhase,trackCursorAxis:e=>e.trackCursorAxis,disableHoverablePopup:e=>e.disableHoverablePopup,lastOpenChangeReason:e=>e.openChangeReason,closeOnClick:e=>e.closeOnClick,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin},fr=class extends _{constructor(e,t,n){let r=new W;super(pr(e,r,t,n),mr(r),dr)}setOpen=(e,t)=>{De(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,z(A,e))}};function pr(e,t,n,r=!1){let i={...G(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:`none`,disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,adaptiveOrigin:void 0,...e};return i.floatingRootContext=ae(t,n,r),i}function mr(e){return{popupRef:Z.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:e}}var hr=h(function(e){let{disabled:t=!1,defaultOpen:n=!1,open:r,disableHoverablePopup:i=!1,trackCursorAxis:a=`none`,actionsRef:o,onOpenChange:s,onOpenChangeComplete:c,handle:l,triggerId:u,defaultTriggerId:d=null,children:f}=e,p=ne((e,t)=>new fr({open:n,openProp:r,activeTriggerId:d,triggerIdProp:u},e,t));p.useControlledProp(`openProp`,r),p.useControlledProp(`triggerIdProp`,u),p.useContextCallback(`onOpenChange`,s),p.useContextCallback(`onOpenChangeComplete`,c);let m=p.useState(`open`),h=!t&&m,g=p.useState(`activeTriggerId`),_=p.useState(`mounted`),v=p.useState(`payload`);p.useSyncedValues({trackCursorAxis:a,disableHoverablePopup:i,disabled:t}),se(p,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:y,transitionStatus:b}=ce(h,p),x=p.useState(`isInstantPhase`),S=p.useState(`instantType`),C=p.useState(`lastOpenChangeReason`),w=Z.useRef(null);I(()=>{m&&t&&p.setOpen(!1,z(M))},[m,t,p]),I(()=>{b===`ending`&&C===`none`||b!==`ending`&&x?(S!==`delay`&&(w.current=S),p.set(`instantType`,`delay`)):w.current!==null&&(p.set(`instantType`,w.current),w.current=null)},[b,x,C,S,p]),I(()=>{h&&(g??p.set(`payload`,void 0))},[p,g,h]),Z.useImperativeHandle(o,()=>({unmount:y,close:()=>p.setOpen(!1,z(L))}),[y,p]);let T=h||_||!t&&a!==`none`;return(0,Q.jsxs)(lr.Provider,{value:p,children:[l&&(0,Q.jsx)(oe,{handle:l,store:p}),T&&(0,Q.jsx)(gr,{store:p,disabled:t,trackCursorAxis:a}),typeof f==`function`?f({payload:v}):f]})});function gr({store:e,disabled:t,trackCursorAxis:n}){let r=e.useState(`floatingRootContext`),i=le(r,{enabled:!t,referencePress:()=>e.select(`closeOnClick`)}),a=Qt(r,{enabled:!t&&n!==`none`,axis:n===`none`?void 0:n}),o=Z.useMemo(()=>N(a.reference,i.reference),[a.reference,i.reference]);return ee(e,{activeTriggerProps:o,inactiveTriggerProps:o,popupProps:i.floating??R}),null}var _r=Z.createContext(void 0);function vr(){return Z.useContext(_r)}var yr=`data-base-ui-tooltip-trigger`;function br(e){if(`composedPath`in e){let t=e.composedPath();for(let e=0;e<t.length;e+=1){let n=t[e];if(C(n))return n}}let t=e.target;return C(t)?t:null}function xr(e){let t=e;for(;t;){let e=t.closest(`[${yr}]`);if(e)return e;let n=t.getRootNode();t=`host`in n&&C(n.host)?n.host:null}return null}var Sr=f(function(e,t){let{render:n,className:a,style:o,handle:s,payload:c,disabled:l,delay:u,closeOnClick:d=!0,closeDelay:f,id:p,...m}=e,h=ur(!0),g=He(s)??h;if(!g)throw Error(F(82));let _=Ve(p),v=g.useState(`isTriggerActive`,_),y=g.useState(`isOpenedByTrigger`,_),b=g.useState(`floatingRootContext`),x=Z.useRef(null),S=u??600,C=f??0,{registerTrigger:w,isMountedByThisTrigger:E}=te(_,x,g,{payload:c,closeOnClick:d,closeDelay:C}),D=vr(),{delayRef:O,isInstantPhase:k,hasProvider:A}=Yt(b,{open:y}),M=nt(b);g.useSyncedValue(`isInstantPhase`,k);let N=g.useState(`disabled`),P=l??N,I=Be(P),L=g.useState(`trackCursorAxis`),R=g.useState(`disableHoverablePopup`),B=Z.useRef(!1),V=r(),H=Z.useRef(void 0);function U(){return A?tt(O.current,`open`)===0?0:u??D??600:S}function ee(e){let t=x.current;if(!t||!e)return!1;let n=xr(e);return n!==null&&n!==t&&i(t,n)}function W(e){let t=ee(e);return B.current=t,t&&(M.openChangeTimeout.clear(),M.restTimeout.clear(),M.restTimeoutPending=!1,V.clear()),t}let ne=We(b,{enabled:!P,mouseOnly:!0,move:!1,handleClose:!R&&L!==`both`?Ge():null,restMs:U,delay(){return f==null&&A?{close:tt(O.current,`close`)}:{close:C}},triggerElementRef:x,isActiveTrigger:v,isClosing:()=>g.select(`transitionStatus`)===`ending`,shouldOpen(){return!B.current}}),re=en(b,{enabled:!P}).reference,G=e=>{let t=B.current,n=br(e),r=W(n),a=x.current,o=a&&n&&i(a,n);if(r&&g.select(`open`)&&g.select(`lastOpenChangeReason`)===`trigger-hover`){g.setOpen(!1,z(j,e));return}if(t&&!r&&o&&!I.current&&!g.select(`open`)&&a&&_e(H.current)){let t=()=>{!B.current&&!I.current&&!g.select(`open`)&&g.setOpen(!0,z(j,e,a))},n=U();n===0?(V.clear(),t()):V.start(n,t)}},ae=g.useState(`triggerProps`,E);return T(`button`,e,{state:{open:y},ref:[t,w,x],props:[ne,re,E||L!==`none`?ae:void 0,{onMouseOver(e){G(e.nativeEvent)},onFocus(e){ee(br(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){B.current=!1,V.clear(),H.current=void 0},onPointerEnter(e){H.current=e.pointerType},onPointerDown(e){H.current=e.pointerType,g.set(`closeOnClick`,d),d&&!g.select(`open`)&&g.cancelPendingOpen(e.nativeEvent)},onClick(e){d&&!g.select(`open`)&&g.cancelPendingOpen(e.nativeEvent)},id:_,"data-trigger-disabled":P?``:void 0,[yr]:P?void 0:``},m],stateAttributesMapping:ie})}),Cr=Z.createContext(void 0);function wr(){let e=Z.useContext(Cr);if(e===void 0)throw Error(F(70));return e}var Tr=Z.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e;return ur().useState(`mounted`)||n?(0,Q.jsx)(Cr.Provider,{value:n,children:(0,Q.jsx)(B,{ref:t,...r})}):null}),Er=Z.createContext(void 0);function Dr(){let e=Z.useContext(Er);if(e===void 0)throw Error(F(71));return e}var Or=Z.forwardRef(function(e,t){let{render:n,className:r,anchor:i,positionMethod:a=`absolute`,side:o=`top`,align:s=`center`,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:h=!1,collisionAvoidance:g=m,style:_,...v}=e,y=ur(),b=wr(),x=y.useState(`open`),S=y.useState(`mounted`),C=y.useState(`trackCursorAxis`),w=y.useState(`disableHoverablePopup`),T=y.useState(`floatingRootContext`),E=y.useState(`instantType`),D=y.useState(`transitionStatus`),O=y.useState(`adaptiveOrigin`),k=Ae({anchor:i,positionMethod:a,floatingRootContext:T,mounted:S,side:o,sideOffset:c,align:s,alignOffset:l,collisionBoundary:u,collisionPadding:d,sticky:p,arrowPadding:f,disableAnchorTracking:h,keepMounted:b,collisionAvoidance:g,adaptiveOrigin:O}),A=Z.useMemo(()=>({open:x,side:k.side,align:k.align,anchorHidden:k.anchorHidden,instant:C===`none`?E:`tracking-cursor`}),[x,k.side,k.align,k.anchorHidden,C,E]),j=Le(e,A,{styles:k.positionerStyles,transitionStatus:D,props:v,refs:[t,y.useStateSetter(`positionerElement`)],hidden:!S,inert:!x||C===`both`||w});return(0,Q.jsx)(Er.Provider,{value:k,children:j})}),kr=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=ur(),{side:s,align:c}=Dr(),l=o.useState(`open`),u=o.useState(`instantType`),d=o.useState(`transitionStatus`),f=o.useState(`popupProps`),p=o.useState(`floatingRootContext`),m=o.useState(`disabled`),h=o.useState(`closeDelay`);S({open:l,ref:o.context.popupRef,onComplete(){l&&o.context.onOpenChangeComplete?.(!0)}}),Ke(p,{enabled:!m,closeDelay:h});let g=o.useStateSetter(`popupElement`);return T(`div`,e,{state:{open:l,side:s,align:c,instant:u,transitionStatus:d},ref:[t,o.context.popupRef,g],props:[re,f,ze(d),a],stateAttributesMapping:H})}),Ar=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=ur(),{arrowRef:s,side:c,align:l,arrowUncentered:u,arrowStyles:d}=Dr(),f={open:o.useState(`open`),side:c,align:l,uncentered:u,instant:o.useState(`instantType`)};return T(`div`,e,{state:f,ref:[t,s],props:[{style:d,"aria-hidden":!0},a],stateAttributesMapping:ve})});function jr({...e}){return(0,Q.jsx)(hr,{"data-slot":`tooltip`,...e})}function Mr({...e}){return(0,Q.jsx)(Sr,{"data-slot":`tooltip-trigger`,...e})}function Nr({className:e,side:t=`top`,sideOffset:n=4,align:r=`center`,alignOffset:i=0,children:a,...o}){return(0,Q.jsx)(Tr,{children:(0,Q.jsx)(Or,{align:r,alignOffset:i,side:t,sideOffset:n,className:`isolate z-50`,children:(0,Q.jsxs)(kr,{"data-slot":`tooltip-content`,className:J(`z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 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-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 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),...o,children:[a,(0,Q.jsx)(Ar,{className:`z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5`})]})})})}var Pr=`sidebar_state`,Fr=604800,Ir=`16rem`,Lr=`18rem`,Rr=`3rem`,zr=`b`,Br=Z.createContext(null);function Vr(){let e=Z.useContext(Br);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function Hr({defaultOpen:e=!0,open:t,onOpenChange:n,className:r,style:i,children:a,enableKeyboardShortcut:o=!0,persistState:s=!0,...c}){let l=er(),[u,d]=Z.useState(!1),[f,p]=Z.useState(e),m=t??f,h=Z.useCallback(e=>{let t=typeof e==`function`?e(m):e;n?n(t):p(t),s&&(document.cookie=`${Pr}=${t}; path=/; max-age=${Fr}`)},[n,m,s]),g=Z.useCallback(()=>l?d(e=>!e):h(e=>!e),[l,h,d]),_=Z.useEffectEvent(e=>{e.key===zr&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())});Z.useEffect(()=>{if(!o)return;let e=e=>_(e);return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o]);let v=m?`expanded`:`collapsed`,y=Z.useMemo(()=>({state:v,open:m,setOpen:h,isMobile:l,openMobile:u,setOpenMobile:d,toggleSidebar:g}),[v,m,h,l,u,d,g]);return(0,Q.jsx)(Br.Provider,{value:y,children:(0,Q.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":Ir,"--sidebar-width-icon":Rr,...i},className:J(`group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar`,r),...c,children:a})})}function Ur({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,dir:a,...o}){let{isMobile:s,state:c,openMobile:l,setOpenMobile:u}=Vr();return n===`none`?(0,Q.jsx)(`div`,{"data-slot":`sidebar`,className:J(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,r),...o,children:i}):s?(0,Q.jsx)(nr,{open:l,onOpenChange:u,...o,children:(0,Q.jsxs)(ar,{dir:a,"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,style:{"--sidebar-width":Lr},side:e,children:[(0,Q.jsxs)(or,{className:`sr-only`,children:[(0,Q.jsx)(sr,{children:`Sidebar`}),(0,Q.jsx)(cr,{children:`Displays the mobile sidebar.`})]}),(0,Q.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):(0,Q.jsxs)(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-state":c,"data-collapsible":c===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[(0,Q.jsx)(`div`,{"data-slot":`sidebar-gap`,className:J(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,Q.jsx)(`div`,{"data-slot":`sidebar-container`,"data-side":e,className:J(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex`,t===`floating`||t===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,r),...o,children:(0,Q.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:`flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border`,children:i})})]})}function Wr({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:J(`flex flex-col gap-2 p-2`,e),...t})}function Gr({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:J(`no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function Kr({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:J(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function qr({className:e,render:t,...n}){return Fe({defaultTagName:`div`,props:N({className:J(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,e)},n),render:t,state:{slot:`sidebar-group-label`,sidebar:`group-label`}})}function Jr({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:J(`w-full text-sm`,e),...t})}function Yr({className:e,...t}){return(0,Q.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:J(`flex w-full min-w-0 flex-col gap-0`,e),...t})}function Xr({className:e,...t}){return(0,Q.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:J(`group/menu-item relative`,e),...t})}var Zr=g(`peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function Qr({render:e,isActive:t=!1,variant:n=`default`,size:r=`default`,tooltip:i,className:a,...o}){let{isMobile:s,state:c}=Vr(),l=Fe({defaultTagName:`button`,props:N({className:J(Zr({variant:n,size:r}),a)},o),render:i?(0,Q.jsx)(Mr,{render:e}):e,state:{slot:`sidebar-menu-button`,sidebar:`menu-button`,size:r,active:t}});return i?(typeof i==`string`&&(i={children:i}),(0,Q.jsxs)(jr,{children:[l,(0,Q.jsx)(Nr,{side:`right`,align:`center`,hidden:c!==`collapsed`||s,...i})]})):l}var $r=[{value:`system`,label:`System`,icon:St},{value:`light`,label:`Light`,icon:Ct},{value:`dark`,label:`Dark`,icon:xt}];function ei({onThemePreferenceChange:e,themePreference:t}){return(0,Q.jsxs)(zt,{orientation:`horizontal`,className:`items-center justify-between gap-6 rounded-xl border p-4`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(It,{children:`Theme`}),(0,Q.jsx)(Bt,{children:`Match the system theme or pick light or dark.`})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:(0,Q.jsx)(K,{"aria-label":`Theme`,className:`w-[160px]`,onValueChange:t=>e(t),options:[...$r],value:t})})]})}function ti({actions:e,children:t,description:n,title:r}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium text-balance`,children:r}),(0,Q.jsx)(`p`,{className:`mt-1 text-sm text-pretty text-muted-foreground`,children:n})]}),e?(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center gap-1.5 pt-0.5`,children:e}):null]}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,children:t})]})}function ni({dirty:e,disabled:t,onRevert:n,onSave:r,saving:i}){return(0,Q.jsxs)(Q.Fragment,{children:[e?(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground transition-transform active:scale-[0.96]`,disabled:t||i,onClick:n,"aria-label":`Revert changes`,children:(0,Q.jsx)(Dt,{})}):null,(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,className:J($e,`transition-transform active:scale-[0.96]`,e&&`border-primary/30 text-primary`),disabled:!e||t||i,onClick:r,children:[i?(0,Q.jsx)(ht,{className:`animate-spin`,"data-icon":`inline-start`}):(0,Q.jsx)(cn,{"data-icon":`inline-start`}),`Commit`]})]})}function ri(e,t,n=!0){return t&&n&&e.trim().length===0}function ii({attemptedSave:e,label:t,onChange:n,onToggleVisibility:r,placeholder:i,required:a=!0,showPassword:o,value:s}){let c=(0,Z.useId)(),l=ri(s,e,a);return(0,Q.jsxs)(zt,{"data-invalid":l||void 0,children:[(0,Q.jsx)(It,{htmlFor:c,children:t}),(0,Q.jsxs)(Kt,{children:[(0,Q.jsx)(Wt,{align:`inline-start`,children:(0,Q.jsx)(on,{})}),(0,Q.jsx)(Ut,{id:c,type:o?`text`:`password`,placeholder:i,value:s,onChange:e=>n(e.target.value),"aria-label":t,"aria-invalid":l||void 0}),(0,Q.jsx)(Wt,{align:`inline-end`,children:(0,Q.jsx)(Gt,{size:`icon-xs`,className:J(Ye,`transition-[background-color,transform] duration-150 active:scale-[0.96]`),"aria-label":o?`Hide value`:`Show value`,onClick:r,children:o?(0,Q.jsx)(nn,{}):(0,Q.jsx)(vt,{})})})]})]})}function ai({attemptedSave:e,icon:t,inputType:n=`text`,label:r,onChange:i,placeholder:a,required:o=!0,value:s}){let c=(0,Z.useId)(),l=ri(s,e,o);return(0,Q.jsxs)(zt,{"data-invalid":l||void 0,children:[(0,Q.jsx)(It,{htmlFor:c,children:r}),(0,Q.jsxs)(Kt,{children:[(0,Q.jsx)(Wt,{align:`inline-start`,children:(0,Q.jsx)(t,{})}),(0,Q.jsx)(Ut,{id:c,type:n,placeholder:a,value:s,onChange:e=>i(e.target.value),"aria-label":r,"aria-invalid":l||void 0})]})]})}var oi=`https://opencode.ai/zen/v1`,si=`qwen35-122b-a10b`,ci=`e.g. OpenCode Zen, Nebius, Groq…`,li=`model-a, model-b (comma-separated)`,ui=[{value:`openai-completions`,label:`OpenAI Chat Completions`},{value:`openai-responses`,label:`OpenAI Responses`},{value:`anthropic-messages`,label:`Anthropic Messages`},{value:`google-genai`,label:`Google Generative AI`}];function di({attemptedSave:e,apiKey:t,api:n,baseUrl:r,modelId:i,models:a,displayName:o,isCustom:s,onApiKeyChange:c,onApiChange:l,onBaseUrlChange:u,onModelIdChange:d,onModelsChange:f,onDisplayNameChange:p,onTogglePassword:m,openAiChat:h,placeholder:g,showPassword:_}){let v=s&&l,y=s&&f;return(0,Q.jsxs)(Rt,{className:`gap-2`,children:[(h||s)&&p?(0,Q.jsx)(ai,{attemptedSave:e,icon:un,label:`Provider name`,placeholder:ci,value:o??``,onChange:p}):null,v?(0,Q.jsx)(fi,{value:n??`openai-completions`,onChange:l}):null,(0,Q.jsx)(ii,{attemptedSave:e,label:`API key`,placeholder:g,value:t,showPassword:_,onChange:c,onToggleVisibility:m}),h||s?(0,Q.jsx)(ai,{attemptedSave:e,icon:_t,inputType:`url`,label:`Base URL`,placeholder:oi,value:r,onChange:u}):null,y?(0,Q.jsx)(ai,{attemptedSave:e,icon:an,label:`Model ids`,placeholder:li,value:a??``,onChange:f}):null,h&&!y?(0,Q.jsx)(ai,{attemptedSave:e,icon:tn,label:`Model name`,placeholder:si,value:i,onChange:d}):null]})}function fi({value:e,onChange:t}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:`API family`}),(0,Q.jsx)(K,{"aria-label":`API family`,value:e,options:ui,placeholder:`Select API family`,onValueChange:e=>t(e)})]})}function pi(e){return e.authType===`oauth`}function mi(e){return e.supportsOAuth===!0}var hi={id:`custom`,name:`Custom provider`,isConfigured:!1,envVarName:`CUSTOM_PROVIDER_API_KEY`,displayName:`Custom provider`};function gi(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}function _i({onRemoveProvider:e,onUpdateProvider:t,providers:n}){let[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(``),[d,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(`openai-completions`),[_,v]=(0,Z.useState)(``),[y,b]=(0,Z.useState)(!1),[x,S]=(0,Z.useState)(!1),[C,w]=(0,Z.useState)(``),[T,E]=(0,Z.useState)(!1),[D,O]=(0,Z.useState)(``),[k,A]=(0,Z.useState)(null),j=(0,Z.useMemo)(()=>[...n.filter(e=>e.id!==hi.id),hi],[n]),M=(0,Z.useMemo)(()=>j.filter(e=>e.isConfigured),[j]),N=(0,Z.useMemo)(()=>j.filter(e=>!e.isConfigured||e.id===`openai-chat-completions`&&e.providerFamily===void 0),[j]),P=(0,Z.useMemo)(()=>{let e=C.trim().toLowerCase();return e?M.filter(t=>vi(t,e)):M},[M,C]),F=(0,Z.useMemo)(()=>{let e=D.trim().toLowerCase();return N.filter(t=>vi(t,e))},[D,N]),I=(0,Z.useMemo)(()=>{let e=D.trim().toLowerCase();return M.filter(t=>vi(t,e))},[M,D]),L=F.length>0||I.length>0,R=r&&!M.some(e=>e.id===r)?j.find(e=>e.id===r)??null:null,z=()=>{c(``),u(``),f(``),m(``),g(`openai-completions`),v(``),b(!1),S(!1)},B=()=>{i(null),o(!1),z()},V=(e,t)=>{E(!1),O(``),i(e),o(t?.newOccInstance===!0),z();let r=n.find(t=>t.id===e);u(r?.baseUrl??``),v(r?.displayName??(Ie(e)?r?.name??``:``)),g(r?.api??`openai-completions`),m((r?.modelIds??[]).join(`, `)),f(r?.modelIds?.[0]??``)},H=()=>{B(),O(``),E(!0)},U=()=>{E(!1),O(``)};return{activeProviders:M,addPickerOpen:T,addPickerQuery:D,api:h,apiKey:s,attemptedSave:x,baseUrl:l,canSave:(0,Z.useMemo)(()=>s.trim().length===0?!1:r?r===`custom`||Ie(r)?l.trim().length===0||gi(p).length===0?!1:_.trim().length>0:ke(r)?l.trim().length===0||d.trim().length===0?!1:Ne(r)||a?_.trim().length>0:!0:!0:!0,[s,l,d,p,_,r,a]),closeAddPicker:U,closeEditor:B,confirmRemoveProvider:k,credentialProviders:j,displayName:_,editingIsNewOccInstance:a,editingProvider:r,editingUnconfiguredProvider:R,filteredActiveProviders:P,filteredPickerAvailable:F,filteredPickerConfigured:I,handleRemove:async t=>{if(e)try{await e({providerId:t.id}),r===t.id&&B(),X.success(`${t.name} removed from your configured providers.`),A(null)}catch(e){X.error(e instanceof Error?e.message:`Failed to remove provider`)}},handleSave:async e=>{if(!t)return;S(!0);let n=e===`custom`||Ie(e),r=ke(e);if(n){let n=gi(p);if(!s.trim()||!l.trim()||!_.trim()||n.length===0)return;try{await t({providerId:e,apiKey:s.trim(),baseUrl:l.trim(),displayName:_.trim(),api:h,models:n,...e===`custom`?{createOccInstance:!0}:{}}),X.success(`Provider credentials applied to your active sessions.`),B(),U()}catch(e){X.error(e instanceof Error?e.message:`Failed to update provider`)}return}let i=r&&Ne(e),o=r&&(i||a);if(s.trim()&&!(r&&(!l.trim()||!d.trim()))&&!(o&&!_.trim()))try{await t({providerId:e,apiKey:s.trim(),...r?{baseUrl:l.trim(),modelId:d.trim(),...o?{displayName:_.trim()}:{},...a?{createOccInstance:!0}:{}}:{}}),X.success(`Provider credentials applied to your active sessions.`),B(),U()}catch(e){X.error(e instanceof Error?e.message:`Failed to update provider`)}},modelId:d,models:p,openAddPicker:H,openEditor:V,pickerHasResults:L,resetEditor:z,searchQuery:C,selectProviderFromPicker:e=>{V(e,{newOccInstance:ke(e)})},setAddPickerOpen:E,setAddPickerQuery:O,setApi:g,setApiKey:c,setAttemptedSave:S,setBaseUrl:u,setConfirmRemoveProvider:A,setDisplayName:v,setEditingIsNewOccInstance:o,setEditingProvider:i,setModelId:f,setModels:m,setSearchQuery:w,setShowPassword:b,showPassword:y,unconfiguredProviders:N}}function vi(e,t){if(!t)return!0;let n=mi(e)?pi(e)?`oauth sign-in login`:`api key oauth sign-in login`:e.id===`custom`||Ie(e.id)?`custom provider endpoint openai anthropic google compatible`:ke(e.id)?`api key base url model name chat completions`:``;return[e.name,e.envVarName,e.id,n].join(` `).toLowerCase().includes(t)}var yi=1500,bi=`Unknown or expired OAuth login`;function xi(e){return new Promise(t=>{setTimeout(t,e)})}function Si({onConfigured:e,onOAuthLogin:t,providerId:n}){let[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(``),l=(0,Z.useRef)(null),u=(0,Z.useRef)(0),d=(0,Z.useRef)(!1),f=(0,Z.useRef)(t),p=(0,Z.useRef)(e),m=(0,Z.useRef)(n);(0,Z.useEffect)(()=>{f.current=t,p.current=e,m.current=n},[e,t,n]);let h=(0,Z.useCallback)(async e=>{if(!(!e||!f.current))try{await f.current({providerId:m.current,loginId:e,cancel:!0})}catch{}},[]),g=(0,Z.useCallback)(()=>{l.current=null,d.current=!1,i(null),c(``),o(!1)},[]);(0,Z.useEffect)(()=>()=>{u.current+=1;let e=l.current;l.current=null,h(e)},[h]);let _=(0,Z.useCallback)((e,t)=>{if(t!==u.current){e.status===`waiting`&&e.loginId&&h(e.loginId);return}if(e.status===`success`){l.current=null,i(null),c(``),o(!1),X.success(`Provider credentials applied to your active sessions.`),p.current?.();return}if(e.status===`error`){if(e.error===bi&&l.current===null)return;let t=l.current;l.current=null,t&&e.error!==`Login cancelled`&&h(t),i(e),o(!1);return}e.loginId&&(l.current=e.loginId),i(e)},[h]),v=(0,Z.useCallback)(async()=>{if(!f.current||d.current)return;d.current=!0;let e=u.current;o(!0);let t=l.current;if(l.current=null,i(null),await h(t),e!==u.current){d.current=!1;return}try{let t=await f.current({providerId:m.current});_(t,e)}catch(t){if(e!==u.current)return;i({status:`error`,error:t instanceof Error?t.message:`Failed to start OAuth sign-in`})}finally{d.current=!1,e===u.current&&o(!1)}},[_,h]),y=(0,Z.useCallback)(async()=>{let e=l.current;if(!f.current||!e)return;let t=u.current;o(!0);try{let n=await f.current({providerId:m.current,loginId:e,promptAnswer:s});c(``),_(n,t)}catch(e){if(t!==u.current)return;X.error(e instanceof Error?e.message:`Failed to continue OAuth sign-in`)}finally{t===u.current&&o(!1)}},[_,s]),b=(0,Z.useCallback)(async()=>{u.current+=1;let e=l.current;g(),await h(e)},[h,g]);return(0,Z.useEffect)(()=>{if(!f.current||r?.status!==`waiting`||!r.loginId)return;let e=u.current,t=r.loginId,n=!1;return(async()=>{for(;!n;){try{let r=await f.current({providerId:m.current,loginId:t});if(n||e!==u.current||(_(r,e),r.status!==`waiting`))return}catch(r){if(n||e!==u.current||l.current!==t)return;l.current=null,h(t),i({status:`error`,error:r instanceof Error?r.message:`OAuth sign-in failed`});return}if(await xi(yi),n||e!==u.current||l.current!==t)return}})(),()=>{n=!0}},[_,h,r?.loginId,r?.status]),{busy:a,cancel:b,canStart:!!t,login:r,promptAnswer:s,setPromptAnswer:c,start:v,submitPrompt:y}}function Ci({onConfigured:e,onOAuthLogin:t,provider:n}){let{busy:r,cancel:i,canStart:a,login:o,promptAnswer:s,setPromptAnswer:c,start:l,submitPrompt:u}=Si({onConfigured:e,onOAuthLogin:t,providerId:n.id}),d=o?.status===`waiting`,f=o?.status===`error`?o.error:void 0,p=d?o?.authUrl:void 0,m=d?o?.userCode:void 0,h=d?o?.instructions:void 0,g=d?o?.prompt:void 0,_=n.authType===`oauth`;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n.isConfigured&&_&&!d?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,Q.jsx)(pt,{className:`size-3.5 text-muted-foreground`}),(0,Q.jsx)(`span`,{children:`Connected`})]}):null,d?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(`p`,{className:`text-sm`,children:[`Sign in with `,n.name,` to store OAuth credentials for this account.`]}),m?(0,Q.jsxs)(`p`,{className:`text-sm`,children:[`Enter this code:`,` `,(0,Q.jsx)(`span`,{className:`font-mono text-foreground`,children:m})]}):null,h&&!m?(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:h}):null,p?(0,Q.jsxs)(y,{type:`button`,size:`sm`,onClick:()=>{window.open(p,`_blank`,`noopener,noreferrer`)},children:[(0,Q.jsx)(gt,{"data-icon":`inline-start`}),`Open sign-in page`]}):g?null:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,Q.jsx)(q,{className:`size-3`}),`Waiting for sign-in…`]}),g?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:g.message}),(0,Q.jsx)(Ft,{value:s,placeholder:g.placeholder,onChange:e=>c(e.target.value),"aria-label":g.message}),(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:r||!g.allowEmpty&&!s.trim(),onClick:()=>{u()},children:[r?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Continue`]})})]}):null,(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,disabled:r,onClick:()=>{i()},children:`Cancel sign-in`})})]}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[f?(0,Q.jsx)(Vt,{className:`px-3 py-2`,children:(0,Q.jsx)(Lt,{className:`text-xs text-pretty`,children:f})}):(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:_&&n.isConfigured?`Sign in again with ${n.name} to refresh OAuth credentials.`:_?`Sign in with ${n.name}. No API key is stored; credentials are saved to auth.json.`:`Sign in with ${n.name} to use OAuth credentials; API-key editing remains available above.`}),(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:r||!a,onClick:()=>{l()},children:[r?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Sign in with `,n.name]})})]})]})}function wi({addPickerQuery:e,credentialProvidersLength:t,filteredPickerAvailable:n,filteredPickerConfigured:r,pickerHasResults:i,onClose:a,onQueryChange:o,onSelect:s}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Back to providers`,onClick:a,children:(0,Q.jsx)(Je,{})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`p`,{className:`text-sm font-medium`,children:`Add provider`}),(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:`Choose a provider to store encrypted credentials for this account.`})]})]}),(0,Q.jsxs)(Kt,{children:[(0,Q.jsx)(Wt,{align:`inline-start`,children:(0,Q.jsx)(Ot,{})}),(0,Q.jsx)(Ut,{type:`text`,placeholder:`Search providers…`,value:e,onChange:e=>o(e.target.value),"aria-label":`Search providers to add`})]}),(0,Q.jsx)(`div`,{className:`max-h-[min(24rem,50vh)] overflow-y-auto`,children:i?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n.length>0?(0,Q.jsx)(`div`,{className:`flex flex-col gap-1`,children:n.map(e=>(0,Q.jsx)(Oi,{provider:e,configured:!1,onSelect:()=>s(e.id)},e.id))}):null,r.length>0?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[n.length>0?(0,Q.jsx)(`p`,{className:`px-2 pt-1 text-[11px] font-medium tracking-wide text-muted-foreground uppercase`,children:`Already configured`}):null,r.map(e=>(0,Q.jsx)(Oi,{provider:e,configured:!0,onSelect:()=>s(e.id)},e.id))]}):null]}):(0,Q.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:t===0?`No providers available.`:`No matching providers found.`})})]})}function Ti({onBack:e,onConfigured:t,onOAuthLogin:n,provider:r}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Back to provider list`,onClick:e,children:(0,Q.jsx)(Je,{})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`p`,{className:`text-sm font-medium`,children:[`Configure `,r.name]}),(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:`OAuth sign-in. Credentials are stored in auth.json for this account.`})]})]}),(0,Q.jsx)(Ci,{provider:r,onConfigured:t,onOAuthLogin:n},r.id)]})}function Ei({provider:e,api:t,apiKey:n,baseUrl:r,modelId:i,models:a,displayName:o,showPassword:s,attemptedSave:c,isPending:l,canSave:u,onApiKeyChange:d,onApiChange:f,onBaseUrlChange:p,onModelIdChange:m,onModelsChange:h,onDisplayNameChange:g,onTogglePassword:_,onBack:v,onCancel:b,onConfigured:x,onOAuthLogin:S,onSave:C}){let w=e.id===`custom`||Ie(e.id),T=ot[e.id]??(w?ot.custom:{placeholder:`Enter credentials…`,help:`Stored securely in your local environment overrides.`}),E=ke(e.id)&&!w,D=mi(e);return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Back to provider list`,onClick:v,children:(0,Q.jsx)(Je,{})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`p`,{className:`text-sm font-medium`,children:[`Configure `,e.name]}),(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:w?`Name this custom provider, pick its API family, then enter its API key, https base URL, and model ids.`:E?`Name this OpenAI-compatible provider, then enter its API key, base URL, and model name.`:`Stored as ${e.envVarName} for this account.`})]})]}),(0,Q.jsx)(di,{attemptedSave:c,api:t,apiKey:n,baseUrl:r,modelId:i,models:a,displayName:o,isCustom:w,openAiChat:E,placeholder:T.placeholder,showPassword:s,onApiKeyChange:d,onApiChange:f,onBaseUrlChange:p,onModelIdChange:m,onModelsChange:h,onDisplayNameChange:g,onTogglePassword:_}),(0,Q.jsxs)(Vt,{className:`px-3 py-2`,children:[(0,Q.jsx)(V,{}),(0,Q.jsx)(Lt,{className:`text-xs text-pretty`,children:T.help})]}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,onClick:b,children:`Cancel`}),(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:l||!u,onClick:C,children:[l?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Save`]})]}),D?(0,Q.jsx)(Ci,{provider:e,onConfigured:x??b,onOAuthLogin:S},`${e.id}-oauth`):null]})}function Di({confirmRemoveProvider:e,isPending:t,onClose:n,onConfirm:r}){return(0,Q.jsx)(et,{open:e!==null,onOpenChange:e=>{e||n()},children:(0,Q.jsxs)(st,{children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(lt,{children:[`Remove `,e?.name??`provider`,`?`]}),(0,Q.jsx)(Qe,{children:`This clears stored credentials for this provider from your workspace settings. Active sessions will stop using it immediately.`})]}),(0,Q.jsxs)(rt,{children:[(0,Q.jsx)(at,{disabled:t,children:`Cancel`}),(0,Q.jsxs)(Xe,{disabled:t||!e,onClick:()=>{e&&r(e)},children:[t?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Remove provider`]})]})]})})}function Oi({configured:e,onSelect:t,provider:n}){let r=ke(n.id),i=n.id===`custom`||Ie(n.id),a=pi(n),o=mi(n);return(0,Q.jsxs)(`button`,{type:`button`,className:J(`flex w-full items-center gap-3 rounded-lg px-2 py-2 text-left transition-[background-color,transform] duration-150`,`hover:bg-muted/60 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none active:scale-[0.96]`),onClick:t,children:[(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-[4px] border border-border/40 bg-background/60`,children:(0,Q.jsx)(it,{provider:i?`custom`:n.id,api:n.api,className:`text-foreground/70`})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-medium`,children:n.name}),(0,Q.jsxs)(`div`,{className:`truncate text-xs text-muted-foreground`,children:[a?`OAuth sign-in`:o?`API key or OAuth`:i?`API family + key + https base URL + models`:r?`API key + base URL + model name`:n.envVarName,e?` · Update`:``]})]})]})}function ki({className:e,interactive:t,padding:n,tone:r,...i}){return(0,Q.jsx)(`div`,{className:J(Ze({interactive:t,padding:n,tone:r}),e),...i})}function $({icon:e,title:t,subtitle:n,trailing:r,className:i,interactive:a=!0,tone:o=`default`}){return(0,Q.jsxs)(ki,{tone:o,padding:`md`,interactive:a,className:J(`items-center gap-3`,i),children:[e?(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-md border border-border/40 bg-background/60 text-foreground/70`,children:e}):null,(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:t}),n?(0,Q.jsx)(`div`,{className:`mt-0.5 truncate text-xs text-muted-foreground`,children:n}):null]}),r?(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:r}):null]})}function Ai({providers:e,editingProvider:t,form:n,operation:r,actions:i,onEdit:a,onCancelEdit:o,onSave:s,onRemove:c,onOAuthLogin:l,onConfigured:u}){let{api:d,apiKey:f,baseUrl:p,modelId:m,models:h,displayName:g,showPassword:_,attemptedSave:v,canSave:b}=n,{isPending:x,canRemove:S}=r,{onApiKeyChange:C,onApiChange:w,onBaseUrlChange:T,onModelIdChange:E,onModelsChange:D,onDisplayNameChange:O,onTogglePassword:k}=i;return(0,Q.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:e.map(e=>{let n=t===e.id,r=Ie(e.id),i=ot[e.id]??ot[r?`custom`:`openai-chat-completions`],A=ke(e.id),j=pi(e),M=mi(e);return(0,Q.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Q.jsx)($,{interactive:!1,icon:(0,Q.jsx)(it,{provider:e.id,api:e.api,className:`text-foreground/80`}),title:e.name,subtitle:j?`OAuth sign-in`:M?`API key or OAuth`:r?`Custom provider · API key + base URL + models`:A?`OpenAI-compatible · API key + base URL + model name`:e.envVarName,trailing:(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Q.jsxs)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 hover:text-destructive active:scale-[0.96]`),disabled:x||!S,"aria-label":`Remove ${e.name}`,onClick:()=>c(e),children:[(0,Q.jsx)(ft,{"data-icon":`inline-start`}),`Remove`]}),(0,Q.jsxs)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs transition-[background-color,transform] duration-150 active:scale-[0.96]`),disabled:x,onClick:()=>{if(n){o();return}a(e.id)},children:[n?null:(0,Q.jsx)(Ue,{"data-icon":`inline-start`}),n?`Cancel`:`Update`]})]})}),n?(0,Q.jsx)(ki,{tone:`inset`,padding:`md`,className:`flex flex-col gap-2 border-t border-border/30`,children:j?(0,Q.jsx)(Ci,{provider:e,onConfigured:u,onOAuthLogin:l},e.id):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(di,{attemptedSave:v,api:e.api??d,apiKey:f,baseUrl:p,modelId:m,models:h,displayName:g,isCustom:r,openAiChat:A,placeholder:i.placeholder,showPassword:_,onApiKeyChange:C,onApiChange:w,onBaseUrlChange:T,onModelIdChange:E,onModelsChange:D,onDisplayNameChange:r||e.providerFamily!==void 0?O:void 0,onTogglePassword:k}),(0,Q.jsxs)(Vt,{className:`px-3 py-2`,children:[(0,Q.jsx)(V,{}),(0,Q.jsx)(Lt,{className:`text-xs text-pretty`,children:i.help})]}),(0,Q.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:x||!b,onClick:()=>s(e.id),children:[x?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Save`]})}),M?(0,Q.jsx)(Ci,{provider:e,onConfigured:u,onOAuthLogin:l},`${e.id}-oauth`):null]})}):null]},e.id)})})}function ji({isLoading:e,isPending:t,onOAuthLogin:n,onRemoveProvider:r,onUpdateProvider:i,providers:a}){let{activeProviders:o,addPickerOpen:s,addPickerQuery:c,api:l,apiKey:u,attemptedSave:d,baseUrl:f,canSave:p,closeAddPicker:m,closeEditor:h,confirmRemoveProvider:g,credentialProviders:_,displayName:v,editingProvider:b,editingUnconfiguredProvider:x,filteredActiveProviders:S,filteredPickerAvailable:C,filteredPickerConfigured:w,handleRemove:T,handleSave:E,modelId:D,models:O,openAddPicker:k,openEditor:A,pickerHasResults:j,searchQuery:M,selectProviderFromPicker:N,setAddPickerQuery:P,setApi:F,setApiKey:I,setBaseUrl:L,setConfirmRemoveProvider:R,setDisplayName:z,setModelId:B,setModels:V,setSearchQuery:H,setShowPassword:U,showPassword:ee}=_i({onRemoveProvider:r,onUpdateProvider:i,providers:a}),W={api:l,apiKey:u,baseUrl:f,modelId:D,models:O,displayName:v,showPassword:ee,attemptedSave:d,canSave:p},te={isPending:t,canRemove:!!r},ne={onApiKeyChange:I,onApiChange:F,onBaseUrlChange:L,onModelIdChange:B,onModelsChange:V,onDisplayNameChange:z,onTogglePassword:()=>U(e=>!e)};return(0,Q.jsxs)(ti,{title:`Providers`,description:"Locally, API keys are stored in `.env.local`. When deployed, they are stored encrypted in your account.",children:[s?(0,Q.jsx)(wi,{addPickerQuery:c,credentialProvidersLength:_.length,filteredPickerAvailable:C,filteredPickerConfigured:w,pickerHasResults:j,onClose:m,onQueryChange:P,onSelect:N}):x&&pi(x)?(0,Q.jsx)(Ti,{provider:x,onBack:k,onConfigured:h,onOAuthLogin:n},x.id):x?(0,Q.jsx)(Ei,{provider:x,api:l,apiKey:u,baseUrl:f,modelId:D,models:O,displayName:v,showPassword:ee,attemptedSave:d,isPending:t,canSave:p,onApiKeyChange:I,onApiChange:F,onBaseUrlChange:L,onModelIdChange:B,onModelsChange:V,onDisplayNameChange:z,onTogglePassword:()=>U(e=>!e),onBack:k,onCancel:h,onConfigured:h,onOAuthLogin:n,onSave:()=>{b&&E(b)}}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(Kt,{className:`flex-1`,children:[(0,Q.jsx)(Wt,{align:`inline-start`,children:(0,Q.jsx)(Ot,{})}),(0,Q.jsx)(Ut,{type:`text`,placeholder:`Search credentials…`,value:M,onChange:e=>H(e.target.value),"aria-label":`Search credentials`,disabled:e||o.length===0})]}),(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:e||_.length===0,onClick:k,children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add provider`]})]}),e?(0,Q.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,Q.jsx)(q,{className:`size-3`}),(0,Q.jsx)(`span`,{children:`Loading…`})]}):o.length===0?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8`,children:[(0,Q.jsx)(`p`,{className:`text-center text-xs text-pretty text-muted-foreground`,children:`No providers configured`}),(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:_.length===0,onClick:k,children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add provider`]})]}):S.length===0?(0,Q.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:`No matching providers found.`}):(0,Q.jsx)(Ai,{providers:S,editingProvider:b,form:W,operation:te,actions:ne,onEdit:A,onCancelEdit:h,onSave:e=>void E(e),onRemove:R,onOAuthLogin:n,onConfigured:h})]}),(0,Q.jsx)(Di,{confirmRemoveProvider:g,isPending:t,onClose:()=>R(null),onConfirm:e=>{T(e)}})]})}function Mi(e,t){return`${e}/${t}`}function Ni(e,t){return gn({id:e.id,name:e.name,provider:e.provider,modelId:e.modelId},t)}function Pi({currentPatterns:e,enabled:t,model:n,models:r}){if(e===void 0&&t)return;let i=e??[],a=new Set(r.map(e=>Fi(e))),o=new Set;for(let t of r)Ni(t,e)&&o.add(Fi(t));return t?o.add(Fi(n)):o.delete(Fi(n)),[...i.filter(e=>a.has(e)?!1:t||!_n(n,e)),...o]}function Fi(e){return xn(e.provider,e.modelId)}function Ii(e){return[e.name,e.modelId,e.provider,e.id].join(` `).toLowerCase()}function Li({configuredProviderIds:e,discoverableProviderIds:t,discoveringProviderId:n,enabledModels:r,modelOptions:i,onAddModels:a,onDiscoverProvider:o,onOpenChange:s,providerLabel:c=ct}){let[l,u]=(0,Z.useState)(``),[d,f]=(0,Z.useState)(new Set),p=l.trim().toLowerCase(),m=(0,Z.useMemo)(()=>i.filter(t=>!e.has(t.provider)||Ni(t,r)?!1:!p||Ii(t).includes(p)),[e,r,i,p]),h=(0,Z.useMemo)(()=>{let e=new Map;for(let t of m){let n=e.get(t.provider);n?n.push(t):e.set(t.provider,[t])}return[...e.entries()]},[m]),g=(0,Z.useMemo)(()=>{let n=t??e;return Array.from(n).filter(t=>e.has(t)).sort((e,t)=>c(e).localeCompare(c(t)))},[e,t,c]),_=(0,Z.useMemo)(()=>{let e=new Map;for(let t of i)Ni(t,r)&&e.set(t.provider,(e.get(t.provider)??0)+1);return e},[r,i]),v=e=>{f(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n})};return(0,Q.jsx)(Te,{open:!0,onOpenChange:s,children:(0,Q.jsxs)(be,{className:`max-w-lg`,children:[(0,Q.jsxs)(de,{children:[(0,Q.jsx)(xe,{children:`Add models`}),(0,Q.jsxs)(Ce,{children:[`Pick models discovered from your configured providers. For OpenAI Chat Completions, refresh runs`,` `,(0,Q.jsxs)(`span`,{className:`font-medium`,children:[`GET `,`{baseUrl}/models`]}),`.`]})]}),(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:g.map(e=>{let t=n===e,r=_.get(e)??0;return(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:n!==null,onClick:()=>{o(e)},children:[t?(0,Q.jsx)(q,{"data-icon":`inline-start`}):(0,Q.jsx)(Et,{"data-icon":`inline-start`}),c(e),r>0?(0,Q.jsxs)(`span`,{className:`tabular-nums text-muted-foreground`,children:[`· `,r,` active`]}):null]},e)})}),(0,Q.jsxs)(Kt,{children:[(0,Q.jsx)(Wt,{align:`inline-start`,children:(0,Q.jsx)(Ot,{})}),(0,Q.jsx)(Ut,{"aria-label":`Search discovered models`,value:l,onChange:e=>u(e.target.value),placeholder:`Search discovered models…`})]}),(0,Q.jsx)(`div`,{className:`max-h-72 overflow-y-auto`,children:h.length===0?(0,Q.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:m.length===0&&!p?`All discovered models are already in your list, or none are available yet.`:`No models match your search.`}):(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,children:h.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`div`,{className:`px-2 text-[11px] font-medium tracking-wide text-muted-foreground uppercase`,children:[c(e),(_.get(e)??0)>0?(0,Q.jsxs)(`span`,{className:`ml-1 font-normal normal-case tabular-nums`,children:[`· `,_.get(e),` active`]}):null]}),t.map(e=>{let t=d.has(e.id);return(0,Q.jsxs)(`button`,{type:`button`,className:J(`flex w-full items-center gap-3 rounded-lg px-2 py-2 text-left transition-[background-color,transform] duration-150`,`hover:bg-muted/60 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none active:scale-[0.96]`,t&&`bg-muted/70`),"aria-pressed":t,onClick:()=>v(e),children:[(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-[4px] border border-border/40 bg-background/60`,children:(0,Q.jsx)(it,{provider:e.provider,className:`text-foreground/70`})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-medium`,children:e.name}),(0,Q.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.modelId})]}),(0,Q.jsx)(`span`,{className:J(`size-4 rounded border border-border/60`,t&&`border-foreground bg-foreground`),"aria-hidden":!0})]},e.id)})]},e))})}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>s(!1),children:`Cancel`}),(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:d.size===0,onClick:()=>{let e=m.filter(e=>d.has(e.id));e.length>0&&a(e),s(!1)},children:[`Add`,` `,d.size>0?(0,Q.jsxs)(`span`,{className:`tabular-nums`,children:[`(`,d.size,`)`]}):null]})]})]})})}function Ri({draft:e,discoveringProviderId:t,modelDirty:n,modelFilter:r,modelOptions:i,onAddModels:a,onDiscoverProvider:o,onModelFilterChange:s,onRemoveModel:c,onSetDefaultModel:l,onRevert:u,onSave:d,providers:f,saving:p,settingsLoading:m}){let[h,g]=(0,Z.useState)(!1),_=!e||m,v=r.trim().toLowerCase(),b=(0,Z.useMemo)(()=>{let t=new Set;for(let e of f)e.isConfigured&&t.add(e.id);for(let n of i)Ni(n,e?.enabledModels)&&t.add(n.provider);return t},[e?.enabledModels,i,f]),x=(0,Z.useMemo)(()=>{let e=new Set;for(let t of f)t.discoverable===!0&&b.has(t.id)&&e.add(t.id);return e},[b,f]),S=(0,Z.useMemo)(()=>t=>!!e?.defaultProvider&&!!e?.defaultModel&&t.provider===e.defaultProvider&&t.modelId===e.defaultModel,[e?.defaultModel,e?.defaultProvider]),C=(0,Z.useMemo)(()=>{let e=new Map;for(let t of f)(t.displayName||t.name)&&e.set(t.id,t.displayName??t.name??t.id);return t=>e.get(t)??ct(t)},[f]),w=(0,Z.useMemo)(()=>i.filter(t=>Ni(t,e?.enabledModels)?!v||[t.name,t.modelId,t.provider,t.id].join(` `).toLowerCase().includes(v):!1),[e?.enabledModels,i,v]),T=(0,Z.useMemo)(()=>{let e=new Map;for(let t of w){let n=e.get(t.provider);n?n.push(t):e.set(t.provider,[t])}return[...e.entries()]},[w]),E=i.length===0?`No models discovered yet. Configure a provider, then add models.`:w.length===0&&!v?`Add models from your configured providers to make them available in chat.`:w.length===0?`No models match your search.`:null,D=()=>{g(!0)};return(0,Q.jsxs)(ti,{title:`LLM Models`,description:(0,Q.jsxs)(Q.Fragment,{children:[`Models available in chat. Discover from configured providers, add the ones you want, and remove any you do not need — changes save automatically.`,` `,(0,Q.jsx)(`span`,{className:`tabular-nums`,children:w.length}),` in list`,i.length>0?(0,Q.jsxs)(Q.Fragment,{children:[` `,`· `,(0,Q.jsx)(`span`,{className:`tabular-nums`,children:i.length}),` `,`discovered`]}):null,`.`]}),actions:(0,Q.jsx)(ni,{dirty:n,disabled:_,onRevert:u,onSave:d,saving:p}),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(Kt,{className:`flex-1`,children:[(0,Q.jsx)(Wt,{align:`inline-start`,children:(0,Q.jsx)(Ot,{})}),(0,Q.jsx)(Ut,{"aria-label":`Search listed models`,value:r,onChange:e=>s(e.target.value),placeholder:`Search listed models…`,disabled:_||w.length===0})]}),(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:_,onClick:D,children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add models`]})]}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,"data-testid":`runtime-models-list`,children:E?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8`,children:[(0,Q.jsx)(`p`,{className:`px-1 text-center text-xs text-pretty text-muted-foreground`,children:E}),v?null:(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:_,onClick:D,children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add models`]})]}):T.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsx)(`div`,{className:`px-1 text-xs font-medium text-muted-foreground`,children:C(e)}),t.map(e=>(0,Q.jsx)($,{icon:(0,Q.jsx)(it,{provider:e.provider}),title:e.name,subtitle:`${C(e.provider)} · ${e.modelId}`,trailing:(0,Q.jsxs)(`div`,{className:`flex items-center`,children:[S(e)?(0,Q.jsx)(`span`,{className:`px-2 text-xs font-medium text-muted-foreground`,children:`Default`}):l?(0,Q.jsxs)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 active:scale-[0.96]`),disabled:_,"aria-label":`Set ${e.name} as default`,onClick:()=>l(e),children:[(0,Q.jsx)(ln,{"data-icon":`inline-start`}),`Set default`]}):null,(0,Q.jsxs)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 hover:text-destructive active:scale-[0.96]`),disabled:_,"aria-label":`Remove ${e.name}`,onClick:()=>c(e),children:[(0,Q.jsx)(ft,{"data-icon":`inline-start`}),`Remove`]})]})},e.id))]},e))}),h?(0,Q.jsx)(Li,{configuredProviderIds:b,discoverableProviderIds:x,discoveringProviderId:t,enabledModels:e?.enabledModels,modelOptions:i,onAddModels:a,onDiscoverProvider:o,onOpenChange:g,providerLabel:C}):null]})}var zi=[{value:`auto`,label:`Auto`},{value:`sse`,label:`SSE`},{value:`websocket`,label:`WebSocket`}],Bi=[{value:`all`,label:`All`},{value:`one-at-a-time`,label:`One at a time`}];function Vi({draft:e,updateDraft:t}){let n=!e;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)($,{title:`Compaction`,subtitle:`Summarize old turns when context fills up`,trailing:(0,Q.jsx)(Ht,{"aria-label":`Compaction`,checked:e?.compaction.enabled??!1,disabled:n,onCheckedChange:e=>t(t=>({...t,compaction:{...t.compaction,enabled:e}}))})}),(0,Q.jsx)($,{title:`Auto-retry`,subtitle:`Retry failed provider requests`,trailing:(0,Q.jsx)(Ht,{"aria-label":`Auto-retry`,checked:e?.retry.enabled??!1,disabled:n,onCheckedChange:e=>t(t=>({...t,retry:{...t.retry,enabled:e}}))})}),(0,Q.jsx)($,{title:`Transport`,trailing:(0,Q.jsx)(K,{"aria-label":`Transport`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,transport:e})),options:[...zi],value:e?.transport??`auto`})}),(0,Q.jsx)($,{title:`Steering`,subtitle:`How queued steers are delivered mid-turn`,trailing:(0,Q.jsx)(K,{"aria-label":`Steering`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,steeringMode:e})),options:[...Bi],value:e?.steeringMode??`all`})}),(0,Q.jsx)($,{title:`Follow-up`,subtitle:`How queued follow-ups run after the turn`,trailing:(0,Q.jsx)(K,{"aria-label":`Follow-up`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,followUpMode:e})),options:[...Bi],value:e?.followUpMode??`all`})})]})}var Hi=new Set([`auto`,`global`,`local`,`project`,`workspace`]);function Ui(e){let t=e.source?.trim();if(t&&!Hi.has(t))return t;let n=(e.workspacePath??e.path??``).trim();return n?Wi(n):e.name.trim()}function Wi(e){let t=e.replace(/\\/g,`/`);if(/^\/Users\//.test(t)||/^\/home\//.test(t)||/^[A-Za-z]:\//.test(t))return``;if(!t.startsWith(`/`)&&!/^[A-Za-z]:\//.test(t))return t.startsWith(`agent-workspace/`)?Gi(`../${t}`):t.startsWith(`../agent-workspace/.pi/`)?Gi(t.replace(`../agent-workspace/.pi/`,`../agent-workspace/pi/`)):Gi(t);let n=t.match(/\/(agent-workspace\/.+)$/);if(n?.[1])return Gi(`../${n[1].replace(/^agent-workspace\/\.pi\//,`agent-workspace/pi/`)}`);let r=t.match(/\/\.pi\/(extensions\/.+|skills\/.+|prompts\/.+|themes\/.+)$/);return r?.[1]?Gi(r[1]):``}function Gi(e){return e.replace(/\/SKILL\.md$/i,``).replace(/\/index\.(ts|tsx|js|jsx|mjs|cjs)$/i,``)}function Ki(e,t){let n=Wi(t);return e.some(e=>Wi(e)===n)}function qi(e,t){let n=t.trim();if(!n)return e;let r=Wi(n);return!r||Ki(e,r)?e:[...e,r]}function Ji({addLabel:e,catalog:t,onChange:n,placeholder:r,values:i}){let[a,o]=(0,Z.useState)(``),s=new Set,c=[];for(let e of t){let t=Ui(e);t.length===0||s.has(t)||(s.add(t),c.push({value:t,label:e.name||t}))}let l=new Map(c.map(e=>[e.value,e.label])),u=e=>l.get(e)??l.get(Wi(e)),d=c.filter(e=>!Ki(i,e.value)),f=()=>{let e=a.trim();e&&(n(qi(i,e)),o(``))};return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[i.length===0?(0,Q.jsx)(`p`,{className:`px-1 py-2 text-xs text-pretty text-muted-foreground`,children:`Nothing selected yet.`}):i.map(e=>{let t=u(e);return(0,Q.jsx)($,{interactive:!1,title:t??e,subtitle:t&&t!==e?e:void 0,trailing:(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":`Remove ${e}`,onClick:()=>n(i.filter(t=>t!==e)),children:(0,Q.jsx)(ft,{})})},e)}),d.length>0?(0,Q.jsx)(K,{"aria-label":e,value:null,placeholder:e,options:d,onValueChange:e=>{e&&n(qi(i,e))}}):(0,Q.jsxs)(Kt,{children:[(0,Q.jsx)(Ut,{"aria-label":e,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),f())},placeholder:r}),(0,Q.jsx)(Wt,{align:`inline-end`,children:(0,Q.jsxs)(Gt,{onClick:f,disabled:!a.trim(),children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add`]})})]})]})}function Yi({draft:e,onEnableSkillCommandsChange:t,onExtensionsChange:n,onPackageRowsChange:r,onPromptsChange:i,onRevert:a,onSave:o,onSkillsChange:s,onThemesChange:c,packageError:l,packageRows:u,resourceDirty:d,resources:f,resourceSummary:p,saving:m,scope:h=`harness`,settingsLoading:g,updateDraft:_}){let v=!e||g||!!l,y=p.total===0?`Empty`:p.reloadRequired>0?`${p.total} · ${p.reloadRequired} reload`:`${p.total}`;return(0,Q.jsx)(ti,{title:h===`skills`?`Skills`:`Pi Harness`,description:h===`skills`?`Pick detected workspace skills and slash-command discovery.`:`Runtime (compaction, retry, transport) plus packages, extensions, prompts, and themes.`,actions:(0,Q.jsx)(ni,{dirty:d,disabled:v,onRevert:a,onSave:o,saving:m}),children:h===`skills`?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)($,{title:`Skill slash commands`,trailing:(0,Q.jsx)(Ht,{"aria-label":`Skill slash commands`,checked:e?.enableSkillCommands??!0,disabled:!e,onCheckedChange:t})}),(0,Q.jsx)(Xi,{label:`Skills`,count:e?.skills.length??0,children:(0,Q.jsx)(Ji,{addLabel:`Add skill`,catalog:f?.skills??[],placeholder:`../agent-workspace/pi/skills`,values:e?.skills??[],onChange:s})})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Vi,{draft:e,updateDraft:_}),(0,Q.jsx)($,{interactive:!1,title:`Catalog`,subtitle:(0,Q.jsx)(`span`,{className:`tabular-nums`,children:y})}),(0,Q.jsxs)(Xi,{label:`Packages`,count:u.length,children:[(0,Q.jsx)(Ji,{addLabel:`Add package`,catalog:f?.packages??[],placeholder:`npm:pi-skills or {"source":"npm:pkg"}`,values:u,onChange:r}),l?(0,Q.jsx)(`p`,{className:`px-1 text-xs text-destructive`,children:l}):null]}),(0,Q.jsx)(Xi,{label:`Extensions`,count:e?.extensions.length??0,children:(0,Q.jsx)(Ji,{addLabel:`Add extension`,catalog:f?.extensions??[],placeholder:`../agent-workspace/pi/extensions`,values:e?.extensions??[],onChange:n})}),(0,Q.jsx)(Xi,{label:`Prompts`,count:e?.prompts.length??0,children:(0,Q.jsx)(Ji,{addLabel:`Add prompt`,catalog:f?.prompts??[],placeholder:`../agent-workspace/pi/prompts`,values:e?.prompts??[],onChange:i})}),(0,Q.jsx)(Xi,{label:`Themes`,count:e?.themes.length??0,children:(0,Q.jsx)(Ji,{addLabel:`Add theme`,catalog:f?.themes??[],placeholder:`../agent-workspace/pi/themes`,values:e?.themes??[],onChange:c})})]})})}function Xi({children:e,count:t,label:n}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 px-1`,children:[(0,Q.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:n}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground tabular-nums`,children:t===1?`1 item`:`${t} items`})]}),e]})}function Zi({isLoading:e,isPending:t,onUpdateProvider:n,providers:r}){let[i,a]=(0,Z.useState)(!1),[o,s]=(0,Z.useState)(``),[c,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(!1),m=(0,Z.useMemo)(()=>r.find(e=>e.id===`daytona`),[r]),h=(0,Z.useMemo)(()=>r.find(e=>e.id===`daytona-target`),[r]),g=!!(m?.isConfigured&&h?.isConfigured),_=()=>{s(``),l(``),d(!1),p(!1)},v=()=>{a(!1),_()},b=async()=>{if(n&&(p(!0),!(!o.trim()&&!c.trim())))try{o.trim()&&await n({providerId:`daytona`,apiKey:o.trim()}),c.trim()&&await n({providerId:`daytona-target`,apiKey:c.trim()}),X.success(`Sandbox Provider updated successfully`),v()}catch(e){X.error(e instanceof Error?e.message:`Failed to update provider`)}},x=o.trim().length>0||c.trim().length>0;return(0,Q.jsx)(ti,{title:`Sandbox`,description:`Configure isolated execution environments.`,children:e?(0,Q.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,Q.jsx)(q,{}),(0,Q.jsx)(`span`,{children:`Loading…`})]}):(0,Q.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Q.jsx)($,{interactive:!1,icon:(0,Q.jsx)(yt,{className:`size-4 text-foreground/80`}),title:`Daytona`,subtitle:`DAYTONA_API_KEY · DAYTONA_TARGET`,trailing:(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs transition-[background-color,transform] duration-150 active:scale-[0.96]`),onClick:()=>{if(i){v();return}a(!0),_()},children:i?`Cancel`:g?`Update`:`Configure`})}),i?(0,Q.jsxs)(ki,{tone:`inset`,padding:`md`,className:`flex flex-col gap-2 border-t border-border/30`,children:[(0,Q.jsxs)(Rt,{className:`gap-2`,children:[(0,Q.jsx)(ii,{attemptedSave:f,label:`Daytona API key`,placeholder:`Enter Daytona API Key…`,value:o,showPassword:u,required:!1,onChange:s,onToggleVisibility:()=>d(e=>!e)}),(0,Q.jsx)(ai,{attemptedSave:f,icon:_t,label:`Region / target`,placeholder:`e.g. us-east`,value:c,required:!1,onChange:l})]}),(0,Q.jsxs)(Vt,{className:`px-3 py-2`,children:[(0,Q.jsx)(V,{}),(0,Q.jsx)(Lt,{className:`text-xs text-pretty`,children:`Settings are stored securely in your local environment overrides. Provide at least one value to save.`})]}),(0,Q.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:t||!x,onClick:()=>void b(),children:[t?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Save`]})})]}):null]})})}function Qi(e){return{defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,defaultThinkingLevel:e.defaultThinkingLevel,enabledModels:e.enabledModels===void 0?null:oa(e.enabledModels)}}function $i(e){let t=e.enabledModels,n=t==null?null:oa(t).toSorted();return{defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,defaultThinkingLevel:e.defaultThinkingLevel,enabledModels:n}}function ea(e){return{packages:e.packages,extensions:oa(e.extensions),skills:oa(e.skills),prompts:oa(e.prompts),themes:oa(e.themes),enableSkillCommands:e.enableSkillCommands}}function ta(e){return{compaction:{enabled:e.compaction.enabled,reserveTokens:e.compaction.reserveTokens,keepRecentTokens:e.compaction.keepRecentTokens},retry:{enabled:e.retry.enabled,maxRetries:e.retry.maxRetries,baseDelayMs:e.retry.baseDelayMs},transport:e.transport,steeringMode:e.steeringMode,followUpMode:e.followUpMode}}function na(e,t){return JSON.stringify(e)===JSON.stringify(t)}function ra(e){let t=e?[...e.skills,...e.prompts,...e.extensions,...e.packages,...e.themes,...e.agentsFiles]:[];return{active:t.filter(e=>e.activationStatus===`active`).length,staged:t.filter(e=>e.activationStatus===`staged`).length,reloadRequired:t.filter(e=>e.activationStatus===`reload-required`).length,diagnostics:e?.diagnostics??[],total:t.length}}function ia(e){return e.map(e=>typeof e==`string`?e:JSON.stringify(e))}function aa(e){let t=[];for(let n of e){let e=n.trim();if(!e)continue;if(!e.startsWith(`{`)){t.push(e);continue}let r=JSON.parse(e);if(!r||typeof r!=`object`||Array.isArray(r))throw Error(`Package JSON entries must be objects.`);t.push(r)}return t}function oa(e){return e.flatMap(e=>{let t=e.trim();return t?[t]:[]})}function sa({draft:e,setDraft:t,updateDraft:n,settings:r,providers:i,models:a,modelCatalog:o,onDiscoverModels:s,saveSettings:c,setSavingSection:l}){let[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)([]),[m,h]=(0,Z.useState)(null),g=(0,Z.useRef)(null),_=(0,Z.useMemo)(()=>{let e=new Set;for(let t of i)t.isConfigured&&e.add(t.id);return e},[i]),v=o??a,y=(0,Z.useMemo)(()=>{let t=new Map;for(let e of v)_.has(e.provider)&&t.set(e.id,e);for(let e of f)_.has(e.provider)&&t.set(e.id,e);let n=[...t.values()];return!e?.defaultProvider||!e.defaultModel||n.some(t=>t.provider===e.defaultProvider&&t.modelId===e.defaultModel)||!_.has(e.defaultProvider)?n:[{id:Mi(e.defaultProvider,e.defaultModel),name:e.defaultModel,provider:e.defaultProvider,modelId:e.defaultModel,available:!1},...n]},[v,_,f,e]),b=g.current??(r?$i(r.effective):null),x=!!e&&!!b&&!na($i(e),b),S=(0,Z.useCallback)(()=>{g.current=null},[]),C=async(e,n)=>{t(e),l(`models`);try{let r=await c(Qi(e)),i={...r.effective,enabledModels:r.project.enabledModels??e.enabledModels??r.effective.enabledModels,defaultProvider:r.project.defaultProvider??e.defaultProvider??r.effective.defaultProvider,defaultModel:r.project.defaultModel??e.defaultModel??r.effective.defaultModel,defaultThinkingLevel:r.project.defaultThinkingLevel??e.defaultThinkingLevel??r.effective.defaultThinkingLevel};return g.current=$i(i),t(i),n?.silent||X.success(`Pi settings saved`),!0}catch(e){return X.error(e instanceof Error?e.message:`Settings save failed`),!1}finally{l(null)}},w=e=>{C(e)},T=(t,n)=>{if(!e)return;let r={...e,enabledModels:Pi({currentPatterns:e.enabledModels,enabled:n,model:t,models:y})};w(r)};return{modelFilter:u,setModelFilter:d,modelOptions:y,modelDirty:x,addModels:t=>{if(!e||t.length===0)return;let n=e.enabledModels;for(let e of t)n=Pi({currentPatterns:n,enabled:!0,model:e,models:y});w({...e,enabledModels:n})},removeModel:e=>{T(e,!1)},setDefaultModel:t=>{e&&C({...e,defaultProvider:t.provider,defaultModel:t.modelId})},discoverProvider:async e=>{if(s){h(e);try{let t=await s(e);p(e=>{let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()]})}finally{h(null)}}},discoveringProviderId:m,commitModelSettings:C,revertModelDraft:()=>{r&&n(e=>({...e,defaultProvider:r.effective.defaultProvider,defaultModel:r.effective.defaultModel,defaultThinkingLevel:r.effective.defaultThinkingLevel,enabledModels:r.effective.enabledModels}))},resetCommittedModelBaseline:S}}function ca({draft:e,settings:t,updateDraft:n}){let[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(),s=(0,Z.useMemo)(()=>ia(t?.effective.packages??[]),[t?.effective.packages]),c=r??s;return{packageRows:c,packageError:a,resourceDirty:!!e&&!!t&&(!na(ea(e),ea(t.effective))||!na(ta(e),ta(t.effective))||!na(c.filter(e=>e.trim()),ia(t.effective.packages))),handlePackageRowsChange:e=>{i(e);try{let t=aa(e);o(void 0),n(e=>({...e,packages:t}))}catch(e){o(e instanceof Error?e.message:String(e))}},revertResourceDraft:()=>{t&&(n(e=>({...e,packages:t.effective.packages,extensions:t.effective.extensions,skills:t.effective.skills,prompts:t.effective.prompts,themes:t.effective.themes,enableSkillCommands:t.effective.enableSkillCommands,compaction:t.effective.compaction,retry:t.effective.retry,transport:t.effective.transport,steeringMode:t.effective.steeringMode,followUpMode:t.effective.followUpMode})),i(null),o(void 0))}}}var la={appearance:{id:`appearance`,order:10,title:`Appearance`,ariaLabel:`Appearance settings`,icon:sn,group:`workspace`},chat:{id:`chat`,order:20,title:`Chat`,ariaLabel:`Chat settings`,icon:wt,group:`workspace`},sandbox:{id:`sandbox`,order:30,title:`Sandbox`,ariaLabel:`Sandbox settings`,icon:yt,group:`advanced`},providers:{id:`providers`,order:40,title:`Providers`,ariaLabel:`Provider settings`,icon:rn,group:`models`},"llm-models":{id:`llm-models`,order:50,title:`LLM Models`,ariaLabel:`LLM model settings`,icon:dt,group:`models`},skills:{id:`skills`,order:60,title:`Skills`,ariaLabel:`Skill settings`,icon:kt,group:`advanced`},"pi-harness":{id:`pi-harness`,order:70,title:`Pi Harness`,ariaLabel:`Pi harness settings`,icon:qe,group:`advanced`},keybindings:{id:`keybindings`,order:80,title:`Keybindings`,ariaLabel:`Keybinding settings`,icon:bt,group:`advanced`},sessions:{id:`sessions`,order:90,title:`Sessions`,ariaLabel:`Session settings`,icon:dn,group:`workspace`}},ua=[{id:`workspace`,label:`Workspace`},{id:`models`,label:`Models`},{id:`advanced`,label:`Advanced`}],da=Object.values(la).sort((e,t)=>e.order-t.order);function fa(e){return da.some(t=>t.id===e)}function pa({children:e,description:t,label:n}){return(0,Q.jsxs)(zt,{orientation:`horizontal`,className:`items-center justify-between gap-6 rounded-xl border p-4`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(It,{children:n}),(0,Q.jsx)(Bt,{children:t})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:e})]})}function ma(){let{isLoadingProviders:e,isUpdatingProvider:t,modelCatalog:n,onDiscoverModels:r,onOAuthLogin:i,onRemoveProvider:a,onThemePreferenceChange:o,onUpdateProvider:s,providers:c=[],saveSettings:l,settings:u,settingsLoading:d,themePreference:f}=Pt(),{models:p,resources:m}=Nt(),[h,g]=(0,Z.useState)(null),[_,v]=(0,Z.useState)(null),y=ra(m),b=e=>{g(t=>t&&e(t))},{packageRows:x,packageError:S,resourceDirty:C,handlePackageRowsChange:w,revertResourceDraft:T}=ca({draft:h,settings:u,updateDraft:b}),{modelFilter:E,setModelFilter:D,modelOptions:O,modelDirty:k,addModels:A,removeModel:j,setDefaultModel:M,discoverProvider:N,discoveringProviderId:P,commitModelSettings:F,revertModelDraft:I,resetCommittedModelBaseline:L}=sa({draft:h,setDraft:g,updateDraft:b,settings:u,providers:c,models:p,modelCatalog:n,onDiscoverModels:r,saveSettings:l,setSavingSection:v}),R=k||C;return(0,Z.useEffect)(()=>{if(!u)return;let e=u.effective;h&&R||h&&na(h,e)||g(e)},[h,R,u]),{isLoadingProviders:e,isUpdatingProvider:t,onThemePreferenceChange:o,onOAuthLogin:i,onRemoveProvider:a,onUpdateProvider:s,providers:c,resources:m,settingsLoading:d,themePreference:f,draft:h,savingSection:_,packageRows:x,packageError:S,modelFilter:E,setModelFilter:D,resourceSummary:y,modelOptions:O,modelDirty:k,resourceDirty:C,revertResourceDraft:T,revertModelDraft:I,resetDraft:()=>{u&&g(u.effective)},updateDraft:b,handlePackageRowsChange:w,addModels:A,removeModel:j,setDefaultModel:M,discoverProvider:N,discoveringProviderId:P,saveSection:async(e,t)=>{if(e===`models`&&h){if(!await F(h))throw Error(`Settings save failed`);return}v(e);try{await l(t),X.success(`Pi settings saved`)}catch(e){throw X.error(e instanceof Error?e.message:`Settings save failed`),e}finally{v(null)}},requestCloseSettings:async()=>_===`models`?`wait`:C?`discard-prompt`:k&&h?await F(h,{silent:!0})?`close`:`discard-prompt`:`close`,resetCommittedModelBaseline:L}}function ha({active:e,onClick:t,icon:n,label:r}){return(0,Q.jsx)(Xr,{children:(0,Q.jsxs)(Qr,{isActive:e,onClick:t,children:[(0,Q.jsx)(n,{}),(0,Q.jsx)(`span`,{children:r})]})})}function ga({open:e,onOpenChange:t,initialTab:n}){return(0,Z.useEffect)(()=>{let e=Mt();document.documentElement.dataset.density=e.density,document.documentElement.classList.toggle(`reduce-motion`,e.motion===`reduced`)},[]),(0,Q.jsx)(_a,{initialTab:n,onOpenChange:t,open:e})}function _a({initialTab:e,onOpenChange:t,open:n}){let r=(0,Z.useRef)(()=>{t(!1)});return(0,Q.jsx)(Te,{open:n,onOpenChange:(e,n)=>{if(e){t(!0);return}r.current(n)},children:n?(0,Q.jsx)(ya,{initialTab:e,onCloseAttemptRef:r,onOpenChange:t}):null})}function va({activeTab:e,form:t,preferences:n,updatePreference:r}){let{isLoadingProviders:i,isUpdatingProvider:a,onThemePreferenceChange:o,onOAuthLogin:s,onRemoveProvider:c,onUpdateProvider:l,providers:u,resources:d,settingsLoading:f,themePreference:p,draft:m,savingSection:h,packageRows:g,packageError:_,modelFilter:v,setModelFilter:y,resourceSummary:b,modelOptions:x,modelDirty:S,resourceDirty:C,revertResourceDraft:w,revertModelDraft:T,updateDraft:E,handlePackageRowsChange:D,addModels:O,removeModel:k,setDefaultModel:A,discoverProvider:j,discoveringProviderId:M,saveSection:N}=t,P=e=>(0,Q.jsx)(Yi,{scope:e,draft:m,updateDraft:E,onEnableSkillCommandsChange:e=>E(t=>({...t,enableSkillCommands:e})),onExtensionsChange:e=>E(t=>({...t,extensions:e})),onPackageRowsChange:D,onPromptsChange:e=>E(t=>({...t,prompts:e})),onRevert:w,onSave:()=>m&&N(`resources`,{...ea(m),...e===`harness`?ta(m):{}}),onSkillsChange:e=>E(t=>({...t,skills:e})),onThemesChange:e=>E(t=>({...t,themes:e})),packageError:_,packageRows:g,resourceDirty:C,resources:d,resourceSummary:b,saving:h===`resources`,settingsLoading:f});return{appearance:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Appearance`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Customize the look and feel of the interface.`})]}),(0,Q.jsx)(ei,{onThemePreferenceChange:o,themePreference:p}),(0,Q.jsx)(pa,{label:`Density`,description:`Adjust spacing across chat and panels.`,children:(0,Q.jsx)(K,{value:n.density,onValueChange:e=>r(`density`,e),options:[{label:`Comfortable`,value:`comfortable`},{label:`Compact`,value:`compact`}]})}),(0,Q.jsx)(pa,{label:`Motion`,description:`Respect the system setting or reduce UI motion.`,children:(0,Q.jsx)(K,{value:n.motion,onValueChange:e=>r(`motion`,e),options:[{label:`System`,value:`system`},{label:`Reduced`,value:`reduced`}]})})]}),chat:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Chat`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Control transcript behavior.`})]}),(0,Q.jsx)(pa,{label:`Streaming transcript`,description:`Follow new output or preserve the reading position.`,children:(0,Q.jsx)(K,{value:n.transcript,onValueChange:e=>r(`transcript`,e),options:[{label:`Follow output`,value:`follow`},{label:`Manual`,value:`manual`}]})})]}),sandbox:()=>(0,Q.jsx)(Zi,{isLoading:i??!1,isPending:a??!1,providers:u,onUpdateProvider:l}),providers:()=>(0,Q.jsx)(ji,{isLoading:i??!1,isPending:a??!1,providers:u,onOAuthLogin:s,onRemoveProvider:c,onUpdateProvider:l}),"llm-models":()=>(0,Q.jsx)(Ri,{draft:m,discoveringProviderId:M,modelDirty:S,modelFilter:v,modelOptions:x,onAddModels:O,onDiscoverProvider:j,onModelFilterChange:y,onRemoveModel:k,onSetDefaultModel:A,providers:u,onRevert:T,onSave:()=>m&&N(`models`,Qi(m)),saving:h===`models`,settingsLoading:f}),skills:()=>P(`skills`),"pi-harness":()=>P(`harness`),keybindings:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 text-sm`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Keybindings`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Every shortcut also has a visible control in the header, panel, or composer.`})]}),(0,Q.jsxs)(`div`,{className:`rounded-xl border p-4 font-mono text-xs leading-7`,children:[(0,Q.jsx)(`div`,{children:`Command palette: Ctrl/Command K`}),(0,Q.jsx)(`div`,{children:`Conversation sidebar: Ctrl/Command B`}),(0,Q.jsx)(`div`,{children:`Toggle Resources: Ctrl/Command Shift 1`}),(0,Q.jsx)(`div`,{children:`Toggle Workspace: Ctrl/Command Shift 2`}),(0,Q.jsx)(`div`,{children:`Toggle Artifacts: Ctrl/Command Shift 3`}),(0,Q.jsx)(`div`,{children:`Focus active panel: Ctrl/Command Shift P`}),(0,Q.jsx)(`div`,{children:`Return focus to chat: Ctrl/Command Shift C`}),(0,Q.jsx)(`div`,{children:`Close active panel: Escape`})]})]}),sessions:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Sessions`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Set local conversation preferences. Provider and workspace configuration remains Fleet Prime-owned.`})]}),(0,Q.jsx)(pa,{label:`Confirm session deletion`,description:`Require confirmation before deleting a saved conversation.`,children:(0,Q.jsx)(Ht,{checked:n.confirmSessionDelete,onCheckedChange:e=>r(`confirmSessionDelete`,e),"aria-label":`Confirm session deletion`})}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Provider credentials, OAuth, models, sandbox configuration, and workspace selection are managed by Fleet Prime and its CLI.`})]})}[e]()}function ya({initialTab:e,onCloseAttemptRef:t,onOpenChange:n}){let r=ma(),{resourceDirty:i,revertResourceDraft:a,resetDraft:o,requestCloseSettings:s,resetCommittedModelBaseline:c}=r,[l,u]=(0,Z.useState)(()=>e??`appearance`),[d,f]=(0,Z.useState)(Mt);(0,Z.useEffect)(()=>{window.localStorage.setItem(jt,JSON.stringify(d)),document.documentElement.dataset.density=d.density,document.documentElement.classList.toggle(`reduce-motion`,d.motion===`reduced`)},[d]);let p=(e,t)=>{f(n=>({...n,[e]:t}))},[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(`resource`),v=da.find(e=>e.id===l)??da[0],y=(e,t)=>{if(e){n(!0);return}t?.cancel(),(async()=>{let e=await s();if(e===`close`){n(!1);return}if(e===`wait`){X.message(`Saving model list…`);return}_(i?`resource`:`model`),h(!0)})()};t.current=e=>{y(!1,e)};let b=()=>{a(),o(),c(),h(!1),n(!1)};(0,Z.useEffect)(()=>{c()},[c]);let x=(0,Q.jsx)(va,{activeTab:l,form:r,preferences:d,updatePreference:p});return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(be,{className:`flex h-[min(640px,calc(100dvh-4rem))] w-full max-w-[calc(100%-2rem)] overflow-hidden p-0 sm:max-w-[min(860px,calc(100%-2rem))]`,children:[(0,Q.jsx)(xe,{className:`sr-only`,children:`Settings`}),(0,Q.jsx)(Ce,{className:`sr-only`,children:`Customize your settings here.`}),(0,Q.jsxs)(Hr,{className:`h-full min-h-0 min-w-0`,enableKeyboardShortcut:!1,persistState:!1,children:[(0,Q.jsxs)(Ur,{collapsible:`none`,className:`hidden h-full shrink-0 flex-col border-r border-sidebar-border bg-sidebar sm:flex sm:w-52`,children:[(0,Q.jsx)(Wr,{className:`px-4 pt-5 pb-2`,children:(0,Q.jsx)(`span`,{className:`text-sm font-semibold`,children:`Settings`})}),(0,Q.jsx)(Gr,{children:ua.map(e=>(0,Q.jsxs)(Kr,{children:[(0,Q.jsx)(qr,{children:e.label}),(0,Q.jsx)(Jr,{children:(0,Q.jsx)(Yr,{children:da.filter(t=>t.group===e.id).map(e=>(0,Q.jsx)(ha,{active:l===e.id,onClick:()=>u(e.id),icon:e.icon,label:e.title},e.id))})})]},e.id))})]}),(0,Q.jsxs)(`main`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Q.jsx)(`header`,{className:`flex h-14 shrink-0 items-center gap-2 border-b border-border/10 px-6`,children:(0,Q.jsx)(`div`,{className:`flex flex-1 items-center justify-between`,children:(0,Q.jsx)(Jn,{children:(0,Q.jsxs)(Yn,{children:[(0,Q.jsx)(Xn,{className:`hidden sm:block`,children:`Settings`}),(0,Q.jsx)(Qn,{className:`hidden sm:block`}),(0,Q.jsx)(Xn,{children:(0,Q.jsx)(Zn,{children:v.title})})]})})})}),(0,Q.jsx)(`div`,{className:`shrink-0 border-b border-border/10 bg-muted/5 px-4 py-2.5 sm:hidden`,children:(0,Q.jsx)(K,{"aria-label":`Settings sections`,value:l,onValueChange:e=>{fa(e)&&u(e)},options:da.map(e=>({label:e.title,value:e.id}))})}),(0,Q.jsx)(Kn,{className:`min-h-0 flex-1`,children:(0,Q.jsx)(`div`,{id:`panel-${l}`,role:`tabpanel`,"aria-label":v.title,tabIndex:0,className:`p-6 outline-none`,children:x})})]})]})]}),(0,Q.jsx)(et,{open:m,onOpenChange:h,children:(0,Q.jsxs)(st,{children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(lt,{children:`Discard unsaved changes?`}),(0,Q.jsx)(Qe,{children:g===`resource`?`Your resource changes have not been committed. If you leave settings now, those changes will be lost.`:`Your model list could not be saved. If you leave settings now, those changes will be lost.`})]}),(0,Q.jsxs)(rt,{children:[(0,Q.jsx)(at,{children:`Keep editing`}),(0,Q.jsx)(Xe,{onClick:b,children:`Discard changes`})]})]})})]})}export{ga as SettingsDialog};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-NZYk81nU.js";import{i as t,n}from"./resource-helpers-Q2T0YCMO.js";import{t as r}from"./skeleton-CkR2VmWc.js";var i=e();function a({description:e,icon:t,title:n}){return(0,i.jsxs)(`div`,{className:`my-1.5 rounded-sm bg-foreground/5 px-2.5 py-2`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-label font-medium text-foreground/65`,children:[(0,i.jsx)(t,{className:`size-3.5`}),(0,i.jsx)(`span`,{children:n})]}),(0,i.jsx)(`p`,{className:`mt-1 text-[11px] leading-4 text-foreground/40`,children:e})]})}function o({id:e,icon:n,items:r,label:a}){return(0,i.jsxs)(`section`,{id:`resource-section-${e}`,className:`flex min-w-0 flex-col gap-2 py-2.5`,"aria-label":`${a} resources`,children:[(0,i.jsxs)(`div`,{className:`flex min-w-0 items-center text-body leading-5 text-foreground/45`,children:[(0,i.jsx)(`span`,{className:`truncate underline decoration-foreground/25 underline-offset-2`,children:a}),(0,i.jsx)(`span`,{className:`ml-1 shrink-0 text-[11px] leading-4 text-foreground/30 tabular-nums no-underline`,children:r.length})]}),(0,i.jsx)(`ul`,{className:`flex min-w-0 flex-col items-stretch gap-1.5`,"data-testid":`resource-chip-section-${a.toLowerCase()}`,children:r.length===0?(0,i.jsx)(`li`,{className:`inline-flex h-7.5 items-center rounded-lg border border-border/60 bg-background px-3 text-body leading-5 text-foreground/35 shadow-[0_1px_4px_-1px_rgba(0,0,0,0.06)]`,children:`Empty`}):r.map(e=>(0,i.jsx)(s,{icon:n,item:e,stacked:!0},t(e)))})]})}function s({icon:e,item:t,stacked:r=!1}){let a=n(t);return(0,i.jsxs)(`li`,{className:`max-w-full rounded-lg border border-border/70 bg-background px-2.5 text-body leading-5 text-foreground/80 shadow-[0_1px_4px_-1px_rgba(0,0,0,0.06)] ${r?`flex min-h-9 w-full min-w-0 items-center gap-2 py-1.5`:`inline-flex h-7.5 items-center gap-1`}`,"aria-label":a,"data-testid":`resource-chip`,title:a,children:[(0,i.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,i.jsx)(c,{icon:e}),(0,i.jsx)(`span`,{className:`min-w-0 truncate`,children:t.name})]}),t.source&&(0,i.jsx)(`span`,{className:`max-w-20 shrink-0 truncate rounded-[5px] bg-foreground/5 px-1.5 py-0.5 text-[10px] leading-3 text-foreground/35`,children:t.source}),t.activationStatus&&(0,i.jsx)(`span`,{className:`max-w-24 shrink-0 truncate rounded-[5px] bg-foreground/5 px-1.5 py-0.5 text-[10px] leading-3 text-foreground/35`,children:t.activationStatus})]})}function c({icon:e}){return(0,i.jsx)(`span`,{className:`inline-flex size-5 shrink-0 items-center justify-center rounded-full bg-foreground/4 text-foreground/45`,children:(0,i.jsx)(e,{className:`size-3.5`})})}function l(){return(0,i.jsxs)(`div`,{className:`flex flex-col gap-4 p-1`,children:[(0,i.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,i.jsx)(r,{className:`h-4 w-24`}),(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,i.jsx)(r,{className:`h-7 w-20 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-24 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-16 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-28 rounded-full`})]})]}),(0,i.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,i.jsx)(r,{className:`h-4 w-28`}),(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,i.jsx)(r,{className:`h-7 w-22 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-18 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-26 rounded-full`})]})]}),(0,i.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,i.jsx)(r,{className:`h-4 w-20`}),(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,i.jsx)(r,{className:`h-7 w-24 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-20 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-30 rounded-full`})]})]})]})}function u(){return(0,i.jsxs)(`div`,{className:`flex flex-col gap-2 p-1`,children:[(0,i.jsx)(r,{className:`h-7 w-full rounded-sm`}),(0,i.jsx)(r,{className:`h-6 w-[90%]`}),(0,i.jsx)(r,{className:`h-6 w-[85%]`}),(0,i.jsx)(r,{className:`h-6 w-[70%]`}),(0,i.jsx)(r,{className:`h-6 w-[80%]`}),(0,i.jsx)(r,{className:`h-6 w-[60%]`}),(0,i.jsx)(r,{className:`h-6 w-[75%]`}),(0,i.jsx)(r,{className:`h-6 w-[55%]`})]})}function d(){return(0,i.jsxs)(`div`,{className:`flex flex-col gap-3 p-2`,children:[(0,i.jsx)(r,{className:`h-4 w-3/4`}),(0,i.jsx)(r,{className:`h-4 w-full`}),(0,i.jsx)(r,{className:`h-4 w-[95%]`}),(0,i.jsx)(r,{className:`h-4 w-[80%]`}),(0,i.jsx)(r,{className:`h-4 w-full`}),(0,i.jsx)(r,{className:`h-4 w-[70%]`}),(0,i.jsx)(r,{className:`h-4 w-[90%]`}),(0,i.jsx)(r,{className:`h-4 w-[60%]`})]})}export{a,o as i,d as n,u as r,l as t};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./button-BR2WWrFo.js";import{t as i}from"./utils-Eg7xtNmV.js";import{i as a}from"./citations-BQ_pr_9_.js";import{t as o}from"./bot-Bs7QWJ2q.js";import{a as s,c,d as l,i as u,l as d,n as f,r as p,s as m,t as h,u as g}from"./generative-text-renderer-CDKHv-v_.js";import{t as _}from"./fleet-pi-tool-renderer-AJoMbXBa.js";import{t as v}from"./circle-alert-CONlFReH.js";import{t as y}from"./fleet-tool-timeline-COzPrwr8.js";import{t as b}from"./refresh-cw-IThTJ3j-.js";import{t as x}from"./fleet-subagent-list-BnRnrWKS.js";import{t as S}from"./prime-agent-artifacts-C-g1VPiW.js";var C=e(t(),1),w=n();function T(e){return e.status===`running`||e.status===`recovering`?`streaming`:e.status===`error`||e.status===`failed`?`error`:`ready`}function E({turn:e,isLast:t,isStreaming:n,artifacts:r,presentation:i}){let o=(0,C.useMemo)(()=>e.assistants.flatMap((r,i)=>p(u(r.parts??[]),{messageId:r.id,isLast:t&&i===e.assistants.length-1,isStreaming:n,suppressQuestionTool:!0,ToolRendererComponent:_,TextRendererComponent:h,toolRenderers:a})),[t,n,e.assistants]);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.user?(0,w.jsx)(m,{from:`user`,children:(0,w.jsx)(c,{children:(0,w.jsx)(s,{message:e.user,enableImagePreview:!1})})}):null,e.assistants.length>0?(0,w.jsx)(m,{from:`assistant`,children:(0,w.jsx)(c,{children:(0,w.jsx)(g,{variant:`ghost`,children:(0,w.jsxs)(l,{children:[t?(0,w.jsx)(y,{messages:e.assistants,artifacts:r,streaming:n}):null,(0,w.jsx)(`div`,{className:`flex flex-col gap-3`,children:o}),t&&i?(0,w.jsx)(x,{children:i.rlmChildren,tree:i.rlmTree}):null]})})})}):null]})}function D({child:e,parentSessionId:t,transcript:n,onRefresh:a,fullWidth:s=!1,status:c}){let l=(0,C.useMemo)(()=>n?.status===`loading`?[]:f(n?.messages??[]),[n]),u=c??T(e),p=(0,C.useMemo)(()=>n?.status===`loading`?[]:S(n?.messages??[],n?.presentation,u),[u,n]),m=(0,C.useMemo)(()=>p.flatMap(e=>e.artifacts),[p]),h=e.sessionName||e.label;return(0,w.jsxs)(`section`,{"aria-label":`Subagent thread: ${e.label}`,className:i(s?`flex min-h-0 min-w-0 flex-1 flex-col`:`space-y-2`,`min-w-0`),"data-testid":s?`subagent-conversation-surface`:void 0,children:[(0,w.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2 rounded-md border border-border/60 bg-background px-2.5 py-2`,children:[(0,w.jsx)(o,{className:`mt-0.5 size-3.5 shrink-0 text-foreground/45`}),(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,w.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,w.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-foreground/80`,children:h}),(0,w.jsx)(`span`,{className:`shrink-0 text-[10px] capitalize text-foreground/45`,children:e.status})]}),e.model?(0,w.jsx)(`p`,{className:`truncate font-mono text-[10px] text-foreground/40`,children:e.model}):null,e.lastHeardFrom?(0,w.jsxs)(`p`,{className:`truncate text-[10px] text-foreground/40`,children:[`Heartbeat: `,new Date(e.lastHeardFrom).toLocaleTimeString()]}):null,e.answerPreview||e.recap?(0,w.jsx)(`p`,{className:`mt-1 line-clamp-3 whitespace-pre-wrap text-[11px] leading-4 text-foreground/55`,children:e.answerPreview??e.recap}):null]}),a?(0,w.jsx)(r,{"aria-label":`Refresh ${e.label} thread`,className:`shrink-0 text-foreground/40 hover:text-foreground/70`,onClick:a,size:`icon-sm`,title:`Refresh ${e.label} thread`,type:`button`,variant:`ghost`,children:(0,w.jsx)(b,{className:i(`size-3.5`,n?.status===`loading`&&`animate-spin`)})}):null]}),t?n?.status===`loading`?(0,w.jsx)(`div`,{className:i(`flex items-center justify-center rounded-md border border-dashed border-border/70 text-[11px] text-foreground/45`,s?`min-h-32 flex-1`:`min-h-32`),children:`Loading subagent thread…`}):n?.status===`error`&&l.length===0?(0,w.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-[11px] leading-4 text-destructive`,children:[(0,w.jsx)(v,{className:`mt-0.5 size-3.5 shrink-0`}),(0,w.jsx)(`span`,{children:n.error?.message??`Unable to load this subagent thread.`})]}):l.length===0?(0,w.jsx)(`p`,{className:`rounded-md border border-dashed border-border/70 px-3 py-3 text-[11px] leading-4 text-foreground/45`,children:`This subagent thread has no messages yet.`}):(0,w.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[n?.error?(0,w.jsxs)(`div`,{role:`alert`,className:`mx-4 mt-2 flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-[11px] leading-4 text-destructive sm:mx-6`,children:[(0,w.jsx)(v,{className:`mt-0.5 size-3.5 shrink-0`}),(0,w.jsx)(`span`,{children:n.error.message})]}):null,(0,w.jsx)(`div`,{className:i(`min-h-0 rounded-md border border-border/60 bg-background`,s?`flex min-h-0 flex-1 flex-col border-x-0 rounded-none border-b-0`:`h-96 max-h-[calc(100svh-18rem)]`),children:(0,w.jsx)(d,{busy:u===`streaming`,className:s?`min-h-0 flex-1`:void 0,followOutput:u===`streaming`,label:`Transcript for ${e.label}`,smooth:u===`streaming`,viewportClassName:s?`px-0`:void 0,contentClassName:i(`flex flex-col gap-4`,s?`mx-auto w-full max-w-3xl px-4 py-6 sm:px-6`:`px-2.5 py-3`),children:l.map((e,t)=>{let r=t===l.length-1;return(0,w.jsx)(E,{turn:e,isLast:r,isStreaming:r&&u===`streaming`,artifacts:r?m:[],presentation:r?n?.presentation:void 0},e.user?.id??`subagent-turn-${t}`)})})})]}):(0,w.jsx)(`p`,{className:`rounded-md border border-dashed border-border/70 px-3 py-3 text-[11px] leading-4 text-foreground/45`,children:`This subagent thread is unavailable until the parent session is active.`})]})}export{D as t};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./button-BR2WWrFo.js";import{t as i}from"./utils-Eg7xtNmV.js";import{t as a}from"./bot-Bs7QWJ2q.js";import{t as o}from"./chevron-right-DrJxToLs.js";import{n as s,t as c}from"./subagent-utils-DDH5qm9Z.js";import{t as l}from"./subagent-transcript-cxVKYnh9.js";var u=e(t(),1),d=n();function f({agents:e,loadSession:t,onOpenTab:n,parentSessionId:f,tree:p}){let m=(0,u.useMemo)(()=>c(e,p),[e,p]),[h,g]=(0,u.useState)(null),[_,v]=(0,u.useState)({}),y=(0,u.useRef)(new Map),b=m.find(e=>e.id===h)??m[0];(0,u.useEffect)(()=>{h&&m.some(e=>e.id===h)||g(m[0]?.id??null)},[m,h]);let x=(0,u.useCallback)(async(e,n=!1)=>{if(!f)return;let r=`${f}:${e.id}:${e.status}:${e.timestamp}:${e.activeSessionId??``}`,i=_[e.id];if(!n&&i?.requestKey===r)return;let a=(y.current.get(e.id)??0)+1;y.current.set(e.id,a),v(t=>({...t,[e.id]:{requestKey:r,status:`loading`,messages:[]}}));try{let n=await t(f,e.id);if(y.current.get(e.id)!==a)return;v(t=>({...t,[e.id]:{requestKey:r,status:`ready`,messages:n.messages,presentation:n.presentation}}))}catch(t){if(y.current.get(e.id)!==a)return;v(n=>({...n,[e.id]:{requestKey:r,status:`error`,messages:[],error:t instanceof Error?t:Error(String(t))}}))}},[t,f,_]);return(0,u.useEffect)(()=>{b&&x(b)},[x,b]),m.length===0?(0,d.jsx)(`section`,{"aria-label":`Subagents`,className:`flex min-h-36 items-center rounded-md border border-dashed border-border/70 px-4 text-center text-[12px] leading-5 text-foreground/45`,children:`Subagent threads will appear here when Prime delegates work.`}):(0,d.jsxs)(`section`,{"aria-label":`Subagents`,className:`space-y-2 pb-1`,children:[(0,d.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,d.jsx)(a,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:`Invoked subagents`}),(0,d.jsx)(`span`,{className:`shrink-0 text-[10px] text-foreground/40`,children:m.length})]}),(0,d.jsx)(`div`,{className:`space-y-0.5`,"data-testid":`subagent-thread-list`,children:m.map(e=>{let t=e.id===b?.id;return(0,d.jsxs)(r,{type:`button`,variant:`ghost`,size:`sm`,"aria-pressed":t,className:i(`flex w-full min-w-0 items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,t&&`bg-foreground/8`),style:{paddingLeft:`${8+Math.max(0,e.depth??0)*12}px`},onClick:()=>{g(e.id),n?.(e.id)},children:[(0,d.jsx)(`span`,{className:`shrink-0`,children:s(e.status)}),(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-foreground/80`,children:e.label}),(0,d.jsx)(o,{className:`size-3 shrink-0 text-foreground/30`}),(0,d.jsx)(`span`,{className:`shrink-0 text-[10px] capitalize text-foreground/45`,children:e.status})]},e.id)})}),b?(0,d.jsx)(l,{child:b,parentSessionId:f,transcript:_[b.id],onRefresh:()=>void x(b,!0)}):null]})}export{f as SubagentsPanelContent};
@@ -1,4 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-CZDnnosQ.js","assets/rolldown-runtime-hePW80VL.js","assets/preload-helper-Czpn1I53.js","assets/lib-ChrQ49PO.js","assets/character-entities-legacy-Wut6vMuj.js"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{d as r,l as i,u as a}from"./ease-u56MhKYS.js";import{t as o}from"./use-reduced-motion-eORd7fqW.js";import{t as s}from"./utils-Eg7xtNmV.js";import{t as c}from"./createLucideIcon-DwxZHm0M.js";import{t as l}from"./check-JjHKAZas.js";import{t as u}from"./chevron-down-BEVGmnSb.js";import{n as d,t as f}from"./loader-circle-DjfHXUPB.js";import{t as p}from"./circle-x-CkKCB__4.js";import{n as m,r as h,t as g}from"./action-swap-roll-BB8DFMuf.js";import{t as _}from"./rotate-ccw-WNFNkKQD.js";import{t as v}from"./square-terminal-BYTN_I86.js";import{t as y}from"./wrench-BJNNe07k.js";import{t as b}from"./preload-helper-Czpn1I53.js";import{t as x}from"./agent-disclosure-B8SnhQXL.js";var S=c(`ban`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]]),C=c(`braces`,[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]]),w=e(t(),1),T=n(),E=`github-light-high-contrast`,D=`github-dark-high-contrast`,O=null,k=new Map,A=500;function j(e,t){if(k.size>=A){let e=k.keys().next().value;e!==void 0&&k.delete(e)}k.set(e,t)}var M=()=>b(()=>import(`./dist-CZDnnosQ.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4]));function N(){return O||=M().then(({createHighlighter:e})=>e({themes:[E,D],langs:[`bash`,`diff`,`json`,`python`,`tsx`,`typescript`]})),O}function P(e,t){return`${t}\u0000${e}`}function F(e,t){let n=P(e,t),r=k.get(n),[i,a]=(0,w.useState)(r?{key:n,code:e,language:t,lines:r}:null);return(0,w.useEffect)(()=>{let r=k.get(n);if(r){a({key:n,code:e,language:t,lines:r});return}let i=!1;return N().then(r=>{if(i)return;let o=r.codeToTokensWithThemes(e,{lang:t,themes:{light:E,dark:D}}).map(e=>e.map(e=>({content:e.content,offset:e.offset,light:e.variants.light?.color,dark:e.variants.dark?.color})));j(n,o),a({key:n,code:e,language:t,lines:o})}),()=>{i=!0}},[e,n,t]),i?.key===n||i?.language===t&&e.startsWith(i.code)?i.lines:null}function I({code:e,tokens:t,className:n}){return(0,T.jsx)(`span`,{className:n,children:t?t.map(e=>(0,T.jsx)(`span`,{style:{"--agent-code-light":e.light??`currentColor`,"--agent-code-dark":e.dark??e.light??`currentColor`},className:`text-[var(--agent-code-light)] dark:text-[var(--agent-code-dark)]`,children:e.content},`${e.offset}-${e.content}`)):e})}var L=[];function R({code:e,language:t=`typescript`,languageLabel:n,filename:a,status:c=`complete`,showStatus:u=!0,showLineNumbers:d=!0,highlightLines:p=L,maxHeight:g=280,wrap:_=!1,copyable:v=!0,onCopy:y,className:b}){let x=o()??!1,S=(0,w.useRef)(null),C=(0,w.useRef)(void 0),[E,D]=(0,w.useState)(!1),O=c===`streaming`,k=F(e,t),A=(0,w.useMemo)(()=>new Set(p),[p]),j=0,M=e.split(`
3
- `).map(e=>{let t={content:e,offset:j};return j+=e.length+1,t}),N=n??{bash:`Bash`,diff:`Diff`,json:`JSON`,python:`Python`,text:`Text`,tsx:`TSX`,typescript:`TypeScript`}[t];(0,w.useEffect)(()=>()=>{C.current&&window.clearTimeout(C.current)},[]),(0,w.useLayoutEffect)(()=>{let e=S.current;if(!e||!O)return;let t=requestAnimationFrame(()=>{e.scrollHeight<=e.clientHeight||(typeof e.scrollTo==`function`?e.scrollTo({top:e.scrollHeight,behavior:x?`auto`:`smooth`}):e.scrollTop=e.scrollHeight)});return()=>cancelAnimationFrame(t)});let P=(0,w.useCallback)(async()=>{y?await y():await navigator.clipboard?.writeText(e),D(!0),C.current&&window.clearTimeout(C.current),C.current=window.setTimeout(()=>D(!1),1600)},[e,y]);return(0,T.jsxs)(`div`,{"data-state":c,"aria-busy":O,className:s(`w-full overflow-hidden rounded-2xl bg-muted/80 text-sm`,b),children:[(0,T.jsxs)(`div`,{className:`flex h-10 items-center gap-2.5 px-3`,children:[(0,T.jsx)(m,{"aria-hidden":`true`,className:`size-3.5 shrink-0 text-muted-foreground/70`}),a?(0,T.jsx)(`span`,{className:`min-w-0 truncate font-mono text-xs text-foreground/80`,children:a}):null,(0,T.jsx)(`span`,{className:`text-[10px] font-medium uppercase tracking-wide text-muted-foreground/55`,children:N}),u?(0,T.jsxs)(`span`,{className:s(`ml-auto inline-flex shrink-0 items-center gap-1 text-[10px] font-medium`,O?`text-blue-600 dark:text-blue-400`:`text-emerald-600 dark:text-emerald-400`),children:[O?(0,T.jsx)(f,{className:s(`size-3`,!x&&`animate-spin`)}):(0,T.jsx)(l,{className:`size-3`}),O?`Writing`:`Ready`]}):null,v||y?(0,T.jsx)(r.button,{type:`button`,"aria-label":E?`Copied`:`Copy code`,title:E?`Copied`:`Copy code`,onClick:P,whileTap:x?void 0:{scale:.9},transition:i,className:s(`grid size-7 shrink-0 place-items-center rounded-full text-muted-foreground outline-none transition-colors hover:bg-background/70 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,!u&&`ml-auto`),children:E?(0,T.jsx)(l,{className:`size-3.5`}):(0,T.jsx)(h,{className:`size-3.5`})}):null]}),(0,T.jsx)(`div`,{ref:S,role:O?`log`:void 0,"aria-live":O?`polite`:void 0,className:`overflow-auto border-t border-foreground/[0.06] py-2 [scrollbar-color:color-mix(in_oklab,var(--muted-foreground)_35%,transparent)_transparent] [scrollbar-width:thin]`,style:{maxHeight:g},children:(0,T.jsx)(`pre`,{className:`m-0 min-w-max font-mono text-xs leading-5 text-foreground/85`,children:(0,T.jsx)(`code`,{children:M.map((e,t)=>{let n=t+1;return(0,T.jsxs)(`span`,{className:s(`grid min-h-5`,d?`grid-cols-[2.75rem_minmax(0,1fr)]`:`grid-cols-1`,A.has(n)&&`bg-blue-500/[0.07]`),children:[d?(0,T.jsx)(`span`,{className:`select-none pr-3 text-right tabular-nums text-muted-foreground/35`,children:n}):null,(0,T.jsx)(I,{code:e.content,tokens:k?.[t],className:s(`pr-4`,d?`pl-1`:`pl-4`,_?`whitespace-pre-wrap break-words`:`whitespace-pre`)})]},e.offset)})})})})]})}function z({value:e,type:t}){return e?(0,T.jsxs)(`span`,{className:s(`font-mono text-xs tabular-nums`,t===`added`?`text-emerald-600 dark:text-emerald-400`:`text-rose-600 dark:text-rose-400`),children:[t===`added`?`+`:`−`,e]}):null}function B({file:e,lines:t,status:n=`streaming`,open:c,defaultOpen:d=!0,onOpenChange:g,collapseOnComplete:_=!0,maxHeight:v=220,language:y=`typescript`,copyText:b,onCopy:C,className:E}){let D=o()??!1,O=(0,w.useId)(),k=`${O}-trigger`,A=`${O}-content`,j=(0,w.useRef)(null),M=(0,w.useRef)(n),N=(0,w.useRef)(void 0),[P,L]=(0,w.useState)(!1),[R,B]=(0,w.useState)(d),V=c??R,H=n===`streaming`,U=t.filter(e=>e.type===`added`).length,W=t.filter(e=>e.type===`removed`).length,G=!!(b||C),K=F(t.map(e=>e.content).join(`
4
- `),y),q=(0,w.useCallback)(e=>{c===void 0&&B(e),g?.(e)},[g,c]);(0,w.useEffect)(()=>{M.current!==`streaming`&&n===`streaming`&&q(!0),M.current===`streaming`&&n!==`streaming`&&_&&q(!1),M.current=n},[_,q,n]),(0,w.useEffect)(()=>()=>{N.current&&window.clearTimeout(N.current)},[]),(0,w.useLayoutEffect)(()=>{let e=j.current;if(!e||!V||!H)return;let t=requestAnimationFrame(()=>{e.scrollHeight<=e.clientHeight||(typeof e.scrollTo==`function`?e.scrollTo({top:e.scrollHeight,behavior:D?`auto`:`smooth`}):e.scrollTop=e.scrollHeight)});return()=>cancelAnimationFrame(t)});let J=(0,w.useCallback)(async()=>{C?await C():b&&await navigator.clipboard?.writeText(b),L(!0),N.current&&window.clearTimeout(N.current),N.current=window.setTimeout(()=>L(!1),1600)},[b,C]);return(0,T.jsxs)(`div`,{"data-state":n,"aria-busy":H,className:s(`w-full text-sm`,E),children:[(0,T.jsxs)(`button`,{id:k,type:`button`,"aria-expanded":V,"aria-controls":A,onClick:()=>q(!V),className:`group flex min-h-9 w-full items-center gap-2 rounded-md py-1 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background`,children:[(0,T.jsx)(m,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,T.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs text-foreground/80`,children:e}),(0,T.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2`,children:[(0,T.jsx)(z,{value:U,type:`added`}),(0,T.jsx)(z,{value:W,type:`removed`})]}),(0,T.jsx)(`span`,{className:`grid size-4 shrink-0 place-items-center text-muted-foreground/60`,children:H?(0,T.jsx)(f,{"aria-label":`Applying changes`,className:s(`size-3.5`,!D&&`animate-spin`)}):n===`error`?(0,T.jsx)(p,{"aria-label":`Changes failed`,className:`size-3.5`}):n===`cancelled`?(0,T.jsx)(S,{"aria-label":`Changes cancelled`,className:`size-3.5`}):(0,T.jsx)(l,{"aria-label":`Changes applied`,className:`size-3.5`})}),(0,T.jsx)(r.span,{"aria-hidden":`true`,animate:{rotate:V?180:0},transition:D?{duration:0}:a,className:`shrink-0 text-muted-foreground/45 transition-colors group-hover:text-muted-foreground`,children:(0,T.jsx)(u,{className:`size-3.5`})})]}),(0,T.jsx)(x,{id:A,role:`region`,"aria-labelledby":k,open:V,children:(0,T.jsx)(`div`,{className:`pl-6 pt-1.5`,children:(0,T.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-muted/80`,children:[(0,T.jsx)(`div`,{ref:j,"data-slot":`file-diff-viewport`,"aria-live":`polite`,className:`scrollbar-hide overflow-auto`,style:{maxHeight:v},children:(0,T.jsxs)(`div`,{className:`font-mono text-xs leading-5`,children:[(0,T.jsx)(`span`,{className:`sr-only`,children:`File changes`}),t.map((e,t)=>{let n=e.type??`context`;return(0,T.jsxs)(`div`,{className:s(`grid grid-cols-[2.25rem_2.25rem_1rem_minmax(0,1fr)]`,n===`added`&&`bg-emerald-500/[0.07]`,n===`removed`&&`bg-rose-500/[0.07]`),children:[(0,T.jsx)(`span`,{className:`select-none pr-2 text-right tabular-nums text-muted-foreground/40`,children:e.oldLine}),(0,T.jsx)(`span`,{className:`select-none pr-2 text-right tabular-nums text-muted-foreground/40`,children:e.newLine}),(0,T.jsx)(`span`,{className:s(`select-none text-center text-muted-foreground/45`,n===`added`&&`text-emerald-600 dark:text-emerald-400`,n===`removed`&&`text-rose-600 dark:text-rose-400`),children:n===`added`?`+`:n===`removed`?`−`:``}),(0,T.jsx)(I,{code:e.content,tokens:K?.[t],className:`min-w-0 whitespace-pre px-1.5`})]},e.id)})]})}),G?(0,T.jsx)(`div`,{className:`flex justify-end px-2 pb-1.5 pt-1`,children:(0,T.jsx)(r.button,{type:`button`,"aria-label":P?`Copied`:`Copy diff`,title:P?`Copied`:`Copy diff`,onClick:J,whileTap:D?void 0:{scale:.9},transition:i,className:`grid size-7 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-background/70 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,children:P?(0,T.jsx)(l,{className:`size-3.5`}):(0,T.jsx)(h,{className:`size-3.5`})})}):null]})})})]})}function V(e){return e===`running`?`Running`:e===`success`?`Completed`:e===`error`?`Failed`:`Cancelled`}function H(e,t){return typeof e==`string`||typeof e==`number`?String(e):t}function U(e){return e===`running`?`text-blue-600 dark:text-blue-400`:e===`success`?`text-emerald-600 dark:text-emerald-400`:e===`error`?`text-rose-600 dark:text-rose-400`:`text-muted-foreground`}function W({kind:e}){return e===`terminal`?(0,T.jsx)(v,{className:`size-4`}):e===`request`?(0,T.jsx)(C,{className:`size-4`}):(0,T.jsx)(y,{className:`size-4`})}function G({status:e,reduce:t}){return e===`running`?(0,T.jsx)(f,{className:s(`size-3`,!t&&`animate-spin`)}):e===`success`?(0,T.jsx)(d,{className:`size-3`}):e===`error`?(0,T.jsx)(p,{className:`size-3`}):(0,T.jsx)(S,{className:`size-3`})}function K({label:e,onClick:t,children:n}){let a=o()??!1;return(0,T.jsx)(r.button,{type:`button`,"aria-label":e,title:e,onClick:t,whileTap:a?void 0:{scale:.9},transition:i,className:`grid size-7 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,children:n})}function q({children:e,language:t=`bash`,label:n,className:r}){return(0,T.jsxs)(`div`,{className:`space-y-1.5`,children:[n?(0,T.jsx)(`div`,{className:`px-0.5 text-[10px] font-medium uppercase tracking-[0.12em] text-muted-foreground/60`,children:n}):null,(0,T.jsx)(`pre`,{className:s(`m-0 whitespace-pre-wrap break-words font-mono text-xs leading-5 text-foreground/80`,r),children:(0,T.jsx)(`code`,{children:e})})]})}function J({tool:e,title:t,children:n,status:i=`running`,kind:c=`custom`,meta:d,icon:f,open:p,defaultOpen:m=!0,onOpenChange:v,collapseOnComplete:y=!0,maxHeight:b=220,copyText:S,onCopy:C,onRetry:E,className:D,contentClassName:O}){let k=o()??!1,A=(0,w.useId)(),j=`${A}-trigger`,M=`${A}-content`,N=(0,w.useRef)(null),P=(0,w.useRef)(i),F=(0,w.useRef)(void 0),[I,L]=(0,w.useState)(!1),[R,z]=(0,w.useState)(m),B=p??R,q=i===`running`,J=!!(S||C),Y=H(t,i),X=H(d,`${i}-meta`),Z=H(e,`${i}-tool`),Q=V(i),$=(0,w.useCallback)(e=>{p===void 0&&z(e),v?.(e)},[v,p]);(0,w.useEffect)(()=>{P.current!==`running`&&i===`running`&&$(!0),P.current===`running`&&i!==`running`&&y&&$(!1),P.current=i},[y,$,i]),(0,w.useEffect)(()=>()=>{F.current&&window.clearTimeout(F.current)},[]),(0,w.useLayoutEffect)(()=>{let e=N.current;if(!e||!B||!q)return;let t=requestAnimationFrame(()=>{typeof e.scrollTo==`function`?e.scrollTo({top:e.scrollHeight,behavior:k?`auto`:`smooth`}):e.scrollTop=e.scrollHeight});return()=>cancelAnimationFrame(t)});let ee=(0,w.useCallback)(async()=>{C?await C():S&&await navigator.clipboard?.writeText(S),L(!0),F.current&&window.clearTimeout(F.current),F.current=window.setTimeout(()=>L(!1),1600)},[S,C]);return(0,T.jsxs)(`div`,{"data-state":i,"aria-busy":q,className:s(`w-full text-sm`,D),children:[(0,T.jsxs)(`button`,{id:j,type:`button`,"aria-expanded":B,"aria-controls":M,onClick:()=>$(!B),className:`group flex min-h-9 w-full items-center gap-2 rounded-md py-1 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background`,children:[(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`grid size-4 shrink-0 place-items-center text-muted-foreground`,children:f??(0,T.jsx)(W,{kind:c})}),(0,T.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-baseline gap-2`,children:[(0,T.jsx)(`span`,{className:`min-w-0 truncate font-medium text-foreground/90`,children:(0,T.jsx)(g,{value:Y,children:t})}),d?(0,T.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground/60`,children:(0,T.jsx)(g,{value:X,children:d})}):null,(0,T.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[11px] text-muted-foreground/55`,children:(0,T.jsx)(g,{value:Z,children:e})})]}),(0,T.jsxs)(`span`,{className:s(`inline-flex shrink-0 items-center gap-1 text-[11px] font-medium`,U(i)),children:[(0,T.jsx)(G,{status:i,reduce:k}),(0,T.jsx)(g,{value:i,children:Q})]}),(0,T.jsx)(r.span,{"aria-hidden":`true`,animate:{rotate:B?180:0},transition:k?{duration:0}:a,className:`shrink-0 text-muted-foreground/50 transition-colors group-hover:text-muted-foreground`,children:(0,T.jsx)(u,{className:`size-3.5`})})]}),(0,T.jsx)(x,{id:M,role:`region`,"aria-labelledby":j,open:B,children:(0,T.jsx)(`div`,{className:`pl-6 pt-1.5`,children:(0,T.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-muted/80`,children:[(0,T.jsx)(`div`,{ref:N,role:`log`,"aria-live":`polite`,className:`scrollbar-hide overflow-y-auto`,style:{maxHeight:b},children:(0,T.jsx)(`div`,{className:s(`p-3`,O),children:n})}),J||E?(0,T.jsxs)(`div`,{className:`flex items-center gap-0.5 px-2 pb-1.5`,children:[J?(0,T.jsx)(K,{label:I?`Copied`:`Copy result`,onClick:ee,children:I?(0,T.jsx)(l,{className:`size-3.5`}):(0,T.jsx)(h,{className:`size-3.5`})}):null,E?(0,T.jsx)(K,{label:`Run again`,onClick:E,children:(0,T.jsx)(_,{className:`size-3.5`})}):null,(0,T.jsx)(`span`,{className:`ml-auto text-[11px] text-muted-foreground/55`,children:(0,T.jsx)(g,{value:i,children:Q})})]}):null]})})})]})}export{R as i,q as n,B as r,J as t};
@@ -1 +0,0 @@
1
- var e=`fleet-prime:v1:ui-preferences`,t={density:`comfortable`,motion:`system`,transcript:`follow`,confirmSessionDelete:!0};function n(){if(typeof window>`u`)return t;try{let e=JSON.parse(window.localStorage.getItem(`fleet-prime:v1:ui-preferences`)??`null`);return{...t,...e}}catch{return t}}export{e as n,n as r,t};
@@ -1,17 +0,0 @@
1
- // web/app/dist/server/assets/session-label-BM7_LlXx.js
2
- var SECRET_VALUE_PATTERNS = [
3
- /\bsk-[A-Za-z0-9._-]{8,}\b/g,
4
- /\b(?:github_pat_|gh[pousr]_)[A-Za-z0-9_]{8,}\b/g,
5
- /\bxox[baprs]-[A-Za-z0-9-]{8,}\b/g,
6
- /\bAIza[A-Za-z0-9_-]{20,}\b/g
7
- ];
8
- var NAMED_SECRET_PATTERN = /\b(api[ _-]?key|access[ _-]?token|auth[ _-]?token|bearer|password|secret)\s*([:=])\s*(?:"[^"]*"|'[^']*'|[^\s,;]+)/gi;
9
- function redactSessionLabelSecrets(label) {
10
- let redacted = label.replace(NAMED_SECRET_PATTERN, (_match, name, separator) => `${name}${separator} [redacted]`);
11
- for (const pattern of SECRET_VALUE_PATTERNS) redacted = redacted.replace(pattern, "[redacted]");
12
- return redacted;
13
- }
14
-
15
- export {
16
- redactSessionLabelSecrets
17
- };
@@ -1,75 +0,0 @@
1
- import {
2
- notify
3
- } from "./chunk-WYL2DW5R.js";
4
- import "./chunk-KOUEJ3NU.js";
5
- import "./chunk-TNL4YV63.js";
6
- import "./chunk-LZ4Q5KUJ.js";
7
- import {
8
- X
9
- } from "./chunk-JBLHIEVG.js";
10
- import "./chunk-C5X6G26O.js";
11
- import "./chunk-HFQZLPU2.js";
12
- import "./chunk-4ZIEVI5O.js";
13
- import {
14
- cn
15
- } from "./chunk-DJMHPJBP.js";
16
- import "./chunk-JDCCC7A7.js";
17
- import "./chunk-L547YHC4.js";
18
- import "./chunk-MLKGABMK.js";
19
-
20
- // web/app/dist/server/assets/fleet-message-queue-BxycG26e.js
21
- import { jsx, jsxs } from "react/jsx-runtime";
22
- var LANES = [{
23
- key: "steering",
24
- label: "Next"
25
- }, {
26
- key: "followUp",
27
- label: "After run"
28
- }];
29
- function FleetMessageQueue({ queue, onDelete, className }) {
30
- const count = queue.steering.length + queue.followUp.length;
31
- if (count === 0) return null;
32
- const handleDelete = async (lane, index, text) => {
33
- try {
34
- if (await onDelete?.(lane, index, text) === false) notify.error("Unable to remove queued message");
35
- } catch {
36
- notify.error("Unable to remove queued message");
37
- }
38
- };
39
- return /* @__PURE__ */ jsx("section", {
40
- "aria-label": "Queued messages",
41
- className: cn("mx-auto mb-2 w-full max-w-an px-3", className),
42
- children: /* @__PURE__ */ jsxs("div", {
43
- className: "rounded-xl border border-border/60 bg-muted/30 p-2",
44
- children: [/* @__PURE__ */ jsxs("div", {
45
- className: "mb-1 flex items-baseline justify-between px-1 text-xs text-muted-foreground",
46
- children: [/* @__PURE__ */ jsxs("span", { children: [count, " queued"] }), /* @__PURE__ */ jsx("span", { children: "Sent when the run reaches its lane" })]
47
- }), /* @__PURE__ */ jsx("div", {
48
- className: "space-y-1",
49
- children: LANES.flatMap(({ key, label }) => queue[key].map((text, index) => /* @__PURE__ */ jsxs("div", {
50
- className: "flex min-w-0 items-center gap-2 rounded-lg bg-background/80 px-2 py-1.5 text-sm",
51
- children: [
52
- /* @__PURE__ */ jsx("span", {
53
- className: "shrink-0 text-[10px] font-medium uppercase tracking-wide text-muted-foreground",
54
- children: label
55
- }),
56
- /* @__PURE__ */ jsx("span", {
57
- className: "min-w-0 flex-1 truncate text-foreground/80",
58
- children: text
59
- }),
60
- onDelete ? /* @__PURE__ */ jsx("button", {
61
- type: "button",
62
- "aria-label": `Remove queued message: ${text}`,
63
- onClick: () => void handleDelete(key, index, text),
64
- className: "grid size-6 shrink-0 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
65
- children: /* @__PURE__ */ jsx(X, { className: "size-3.5" })
66
- }) : null
67
- ]
68
- }, `${key}:${index}:${text}`)))
69
- })]
70
- })
71
- });
72
- }
73
- export {
74
- FleetMessageQueue
75
- };