agent-relay-server 0.36.2 → 0.38.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.
- package/docs/openapi.json +1 -1
- package/package.json +2 -2
- package/public/assets/{activity-C3mkM6AU.js → activity-ClpDglG8.js} +2 -2
- package/public/assets/{activity-C3mkM6AU.js.map → activity-ClpDglG8.js.map} +1 -1
- package/public/assets/{agent-profiles-DS4_jLPT.js → agent-profiles-kb5H23CF.js} +2 -2
- package/public/assets/{agent-profiles-DS4_jLPT.js.map → agent-profiles-kb5H23CF.js.map} +1 -1
- package/public/assets/{agents-CAhQO7JH.js → agents-CHmEJvqV.js} +2 -2
- package/public/assets/{agents-CAhQO7JH.js.map → agents-CHmEJvqV.js.map} +1 -1
- package/public/assets/{analytics-BwihhhNn.js → analytics-2kTjXIj1.js} +3 -3
- package/public/assets/{analytics-BwihhhNn.js.map → analytics-2kTjXIj1.js.map} +1 -1
- package/public/assets/{automation-BLXToUiU.js → automation-B5U_g-1P.js} +2 -2
- package/public/assets/{automation-BLXToUiU.js.map → automation-B5U_g-1P.js.map} +1 -1
- package/public/assets/{branch-state-badge-D8-T2c1K.js → branch-state-badge-B1K7aIzF.js} +2 -2
- package/public/assets/{branch-state-badge-D8-T2c1K.js.map → branch-state-badge-B1K7aIzF.js.map} +1 -1
- package/public/assets/{channels-ppN8k4hu.js → channels-DyPw9JsY.js} +2 -2
- package/public/assets/{channels-ppN8k4hu.js.map → channels-DyPw9JsY.js.map} +1 -1
- package/public/assets/chat-zPXWB-03.js +2 -0
- package/public/assets/chat-zPXWB-03.js.map +1 -0
- package/public/assets/{connectors-CL9BALhF.js → connectors-k7JYCrrl.js} +2 -2
- package/public/assets/{connectors-CL9BALhF.js.map → connectors-k7JYCrrl.js.map} +1 -1
- package/public/assets/display-ConJ9cJB.js.map +1 -1
- package/public/assets/{formatted-body-impl-BHH0wzY7.js → formatted-body-impl-tmf8IBfr.js} +2 -2
- package/public/assets/{formatted-body-impl-BHH0wzY7.js.map → formatted-body-impl-tmf8IBfr.js.map} +1 -1
- package/public/assets/index-B1QUkb_O.js +21 -0
- package/public/assets/index-B1QUkb_O.js.map +1 -0
- package/public/assets/index-Bins8N_5.css +2 -0
- package/public/assets/{integrations-DX55ARy0.js → integrations-BEkyjBAs.js} +2 -2
- package/public/assets/{integrations-DX55ARy0.js.map → integrations-BEkyjBAs.js.map} +1 -1
- package/public/assets/{maintenance-9n_rJCHT.js → maintenance-Tn23oWBF.js} +2 -2
- package/public/assets/{maintenance-9n_rJCHT.js.map → maintenance-Tn23oWBF.js.map} +1 -1
- package/public/assets/{managed-agents-Rp2-xpBx.js → managed-agents-CasacvJX.js} +2 -2
- package/public/assets/{managed-agents-Rp2-xpBx.js.map → managed-agents-CasacvJX.js.map} +1 -1
- package/public/assets/{markdown-preview-impl-YfJsGh6I.js → markdown-preview-impl-D4UIjB3I.js} +2 -2
- package/public/assets/{markdown-preview-impl-YfJsGh6I.js.map → markdown-preview-impl-D4UIjB3I.js.map} +1 -1
- package/public/assets/{memory-BQONtGQS.js → memory-SVCob0fo.js} +2 -2
- package/public/assets/{memory-BQONtGQS.js.map → memory-SVCob0fo.js.map} +1 -1
- package/public/assets/{messages-DGqpkH72.js → messages-CHK24Uxx.js} +2 -2
- package/public/assets/{messages-DGqpkH72.js.map → messages-CHK24Uxx.js.map} +1 -1
- package/public/assets/{orchestrators-b8k9QoGv.js → orchestrators-CQcJb6VE.js} +2 -2
- package/public/assets/{orchestrators-b8k9QoGv.js.map → orchestrators-CQcJb6VE.js.map} +1 -1
- package/public/assets/{overview-DSU_CggA.js → overview-DbyX7k-7.js} +2 -2
- package/public/assets/{overview-DSU_CggA.js.map → overview-DbyX7k-7.js.map} +1 -1
- package/public/assets/{pairs-DGocNC1U.js → pairs-CaL0_ZfW.js} +2 -2
- package/public/assets/{pairs-DGocNC1U.js.map → pairs-CaL0_ZfW.js.map} +1 -1
- package/public/assets/{security-BSh0QxOl.js → security-BogsfkbT.js} +2 -2
- package/public/assets/{security-BSh0QxOl.js.map → security-BogsfkbT.js.map} +1 -1
- package/public/assets/{settings-C03CAJgO.js → settings-BOsnUh5f.js} +2 -2
- package/public/assets/{settings-C03CAJgO.js.map → settings-BOsnUh5f.js.map} +1 -1
- package/public/assets/{store-DKVWC6Uh.js → store-Bo72e9My.js} +2 -2
- package/public/assets/{store-DKVWC6Uh.js.map → store-Bo72e9My.js.map} +1 -1
- package/public/assets/{tasks-rKbuUPOk.js → tasks-CCxQovOv.js} +2 -2
- package/public/assets/{tasks-rKbuUPOk.js.map → tasks-CCxQovOv.js.map} +1 -1
- package/public/assets/{terminal-viewer-impl-CA8u4jh3.js → terminal-viewer-impl-BDikdsxs.js} +2 -2
- package/public/assets/{terminal-viewer-impl-CA8u4jh3.js.map → terminal-viewer-impl-BDikdsxs.js.map} +1 -1
- package/public/assets/{work-queue-DOsA9s4M.js → work-queue-fM-tu0iP.js} +2 -2
- package/public/assets/{work-queue-DOsA9s4M.js.map → work-queue-fM-tu0iP.js.map} +1 -1
- package/public/assets/{workspaces-CoC2nflZ.js → workspaces-Df0xJuIo.js} +2 -2
- package/public/assets/{workspaces-CoC2nflZ.js.map → workspaces-Df0xJuIo.js.map} +1 -1
- package/public/index.html +3 -3
- package/runner/src/adapter.ts +7 -0
- package/scripts/orchestrator-spawn-smoke.ts +65 -33
- package/src/agent-ref.ts +28 -1
- package/src/automations.ts +17 -2
- package/src/bus.ts +52 -41
- package/src/cli/index.ts +1 -1
- package/src/cli/workspace.ts +36 -3
- package/src/compaction-watch.ts +7 -0
- package/src/config-store.ts +46 -0
- package/src/index.ts +23 -6
- package/src/lifecycle-manager.ts +33 -71
- package/src/maintenance.ts +6 -1
- package/src/mcp.ts +106 -309
- package/src/routes/agent-sessions.ts +38 -3
- package/src/routes/agents-spawn.ts +43 -174
- package/src/routes/commands.ts +7 -19
- package/src/routes/messages.ts +24 -87
- package/src/routes/workspaces.ts +4 -1
- package/src/security.ts +7 -0
- package/src/services/auth-context.ts +109 -0
- package/src/services/dispatch-command.ts +60 -0
- package/src/services/errors.ts +26 -0
- package/src/services/managed-running.ts +130 -0
- package/src/services/parity-harness.ts +135 -0
- package/src/services/register-agent.ts +74 -0
- package/src/services/send-message.ts +177 -0
- package/src/services/shutdown-agent.ts +234 -0
- package/src/services/spawn-agent.ts +284 -0
- package/src/workspace-actions.ts +5 -1
- package/src/workspace-merge.ts +102 -3
- package/src/workspace-phase.ts +15 -1
- package/public/assets/chat-8iIPyww9.js +0 -2
- package/public/assets/chat-8iIPyww9.js.map +0 -1
- package/public/assets/index-3pO43nJo.css +0 -2
- package/public/assets/index-CaauKXl9.js +0 -21
- package/public/assets/index-CaauKXl9.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{An as t,Hn as n,O as r,On as i,c as a,dn as o,en as s,g as c,h as l,in as u,jn as d,rn as f,vt as p,wt as m}from"./lucide-react-DLQFnqNm.js";import{t as h}from"./react-dom-CzfKBOnw.js";import{c as g,o as _,t as v}from"./store-DKVWC6Uh.js";import{o as y,r as b}from"./dist-BQ52MnS1.js";import{t as x}from"./dist-DRlgXPi_.js";import{i as S,n as C,t as w}from"./dist-SqFV12iO.js";import{a as T,i as E,n as D,o as O,r as ee,t as k}from"./dist-CrBurS6i.js";import{t as A}from"./dist-BgfF2Rlm.js";import{a as te,i as ne,n as re,o as ie,r as ae,s as j,t as oe}from"./es2015-iucXYTIE.js";import{t as se}from"./dist-CnJzBTp1.js";import{t as ce}from"./dist-D6iXJzms.js";import{r as M,t as N}from"./switch-W2_mhdrR.js";import{t as le}from"./dist-CVTST7Gc.js";import{t as P}from"./button-BsMqBNJb.js";import{t as F}from"./input-dPzf0luy.js";import{r as I,z as ue}from"./index-CaauKXl9.js";var L=e(n(),1),de=e(h(),1),R=t(),fe=[` `,`Enter`,`ArrowUp`,`ArrowDown`],pe=[` `,`Enter`],z=`Select`,[me,B,he]=O(z),[V,ge]=S(z,[he,T]),_e=T(),[ve,H]=V(z),[ye,be]=V(z),xe=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m}=e,h=_e(t),[g,_]=L.useState(null),[v,y]=L.useState(null),[b,x]=L.useState(!1),S=se(l),[C,w]=A({prop:r,defaultProp:i??!1,onChange:a,caller:z}),[T,D]=A({prop:o,defaultProp:s,onChange:c,caller:z}),O=L.useRef(null),ee=g?m||!!g.closest(`form`):!0,[k,te]=L.useState(new Set),ne=Array.from(k).map(e=>e.props.value).join(`;`);return(0,R.jsx)(E,{...h,children:(0,R.jsxs)(ve,{required:p,scope:t,trigger:g,onTriggerChange:_,valueNode:v,onValueNodeChange:y,valueNodeHasChildren:b,onValueNodeHasChildrenChange:x,contentId:j(),value:T,onValueChange:D,open:C,onOpenChange:w,dir:S,triggerPointerDownPosRef:O,disabled:f,children:[(0,R.jsx)(me.Provider,{scope:t,children:(0,R.jsx)(ye,{scope:e.__scopeSelect,onNativeOptionAdd:L.useCallback(e=>{te(t=>new Set(t).add(e))},[]),onNativeOptionRemove:L.useCallback(e=>{te(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),ee?(0,R.jsxs)(ft,{"aria-hidden":!0,required:p,tabIndex:-1,name:u,autoComplete:d,value:T,onChange:e=>D(e.target.value),disabled:f,form:m,children:[T===void 0?(0,R.jsx)(`option`,{value:``}):null,Array.from(k)]},ne):null]})})};xe.displayName=z;var Se=`SelectTrigger`,Ce=L.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=_e(n),o=H(Se,n),s=o.disabled||r,c=y(t,o.onTriggerChange),l=B(n),u=L.useRef(`touch`),[d,f,p]=mt(e=>{let t=l().filter(e=>!e.disabled),n=ht(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),m=e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,R.jsx)(k,{asChild:!0,...a,children:(0,R.jsx)(x.button,{type:`button`,role:`combobox`,"aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":pt(o.value)?``:void 0,...i,ref:c,onClick:C(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:C(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:C(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&fe.includes(e.key)&&(m(),e.preventDefault())})})})});Ce.displayName=Se;var we=`SelectValue`,Te=L.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=H(we,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=y(t,c.onValueNodeChange);return w(()=>{l(u)},[l,u]),(0,R.jsx)(x.span,{...s,ref:d,style:{pointerEvents:`none`},children:pt(c.value)?(0,R.jsx)(R.Fragment,{children:o}):a})});Te.displayName=we;var Ee=`SelectIcon`,De=L.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,R.jsx)(x.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});De.displayName=Ee;var Oe=`SelectPortal`,ke=e=>(0,R.jsx)(ne,{asChild:!0,...e});ke.displayName=Oe;var U=`SelectContent`,Ae=L.forwardRef((e,t)=>{let n=H(U,e.__scopeSelect),[r,i]=L.useState();if(w(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?de.createPortal((0,R.jsx)(je,{scope:e.__scopeSelect,children:(0,R.jsx)(me.Slot,{scope:e.__scopeSelect,children:(0,R.jsx)(`div`,{children:e.children})})}),t):null}return(0,R.jsx)(Pe,{...e,ref:t})});Ae.displayName=U;var W=10,[je,G]=V(U),Me=`SelectContentImpl`,Ne=b(`SelectContent.RemoveScroll`),Pe=L.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=H(U,n),[b,x]=L.useState(null),[S,w]=L.useState(null),T=y(t,e=>x(e)),[E,D]=L.useState(null),[O,ee]=L.useState(null),k=B(n),[A,ne]=L.useState(!1),j=L.useRef(!1);L.useEffect(()=>{if(b)return oe(b)},[b]),ae();let se=L.useCallback(e=>{let[t,...n]=k().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&S&&(S.scrollTop=0),n===r&&S&&(S.scrollTop=S.scrollHeight),n?.focus(),document.activeElement!==i))return},[k,S]),ce=L.useCallback(()=>se([E,b]),[se,E,b]);L.useEffect(()=>{A&&ce()},[A,ce]);let{onOpenChange:M,triggerPointerDownPosRef:N}=v;L.useEffect(()=>{if(b){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(N.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(N.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():b.contains(n.target)||M(!1),document.removeEventListener(`pointermove`,t),N.current=null};return N.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[b,M,N]),L.useEffect(()=>{let e=()=>M(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[M]);let[le,P]=mt(e=>{let t=k().filter(e=>!e.disabled),n=ht(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),F=L.useCallback((e,t,n)=>{let r=!j.current&&!n;(v.value!==void 0&&v.value===t||r)&&(D(e),r&&(j.current=!0))},[v.value]),I=L.useCallback(()=>b?.focus(),[b]),ue=L.useCallback((e,t,n)=>{let r=!j.current&&!n;(v.value!==void 0&&v.value===t||r)&&ee(e)},[v.value]),de=r===`popper`?Re:Ie,fe=de===Re?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,R.jsx)(je,{scope:n,content:b,viewport:S,onViewportChange:w,itemRefCallback:F,selectedItem:E,onItemLeave:I,itemTextRefCallback:ue,focusSelectedItem:ce,selectedItemText:O,position:r,isPositioned:A,searchRef:le,children:(0,R.jsx)(re,{as:Ne,allowPinchZoom:!0,children:(0,R.jsx)(te,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:C(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,R.jsx)(ie,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,R.jsx)(de,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...fe,onPlaced:()=>ne(!0),ref:T,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:C(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&P(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=k().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>se(t)),e.preventDefault()}})})})})})})});Pe.displayName=Me;var Fe=`SelectItemAlignedPosition`,Ie=L.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=H(U,n),o=G(U,n),[s,c]=L.useState(null),[l,u]=L.useState(null),d=y(t,e=>u(e)),f=B(n),p=L.useRef(!1),m=L.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,b=L.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-W,d=le(a,[W,Math.max(W,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-W,d=le(a,[W,Math.max(W,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-W*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-W,D=c-E,O=g.offsetHeight/2,ee=g.offsetTop+O,k=m+v+ee,A=x-k;if(k<=E){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=k+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+h.offsetTop+(e?w:0)+O)+A;s.style.height=t+`px`,h.scrollTop=k-E+h.offsetTop}s.style.margin=`${W}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);w(()=>b(),[b]);let[S,C]=L.useState();return w(()=>{l&&C(window.getComputedStyle(l).zIndex)},[l]),(0,R.jsx)(ze,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:L.useCallback(e=>{e&&m.current===!0&&(b(),v?.(),m.current=!1)},[b,v]),children:(0,R.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:S},children:(0,R.jsx)(x.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});Ie.displayName=Fe;var Le=`SelectPopperPosition`,Re=L.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=W,...a}=e,o=_e(n);return(0,R.jsx)(ee,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Re.displayName=Le;var[ze,Be]=V(U,{}),Ve=`SelectViewport`,He=L.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=G(Ve,n),o=Be(Ve,n),s=y(t,a.onViewportChange),c=L.useRef(0);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,R.jsx)(me.Slot,{scope:n,children:(0,R.jsx)(x.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:C(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-W*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})});He.displayName=Ve;var Ue=`SelectGroup`,[We,Ge]=V(Ue),Ke=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=j();return(0,R.jsx)(We,{scope:n,id:i,children:(0,R.jsx)(x.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});Ke.displayName=Ue;var qe=`SelectLabel`,Je=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Ge(qe,n);return(0,R.jsx)(x.div,{id:i.id,...r,ref:t})});Je.displayName=qe;var Ye=`SelectItem`,[Xe,Ze]=V(Ye),Qe=L.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=H(Ye,n),c=G(Ye,n),l=s.value===r,[u,d]=L.useState(a??``),[f,p]=L.useState(!1),m=y(t,e=>c.itemRefCallback?.(e,r,i)),h=j(),g=L.useRef(`touch`),_=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,R.jsx)(Xe,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:L.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,R.jsx)(me.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,R.jsx)(x.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:C(o.onFocus,()=>p(!0)),onBlur:C(o.onBlur,()=>p(!1)),onClick:C(o.onClick,()=>{g.current!==`mouse`&&_()}),onPointerUp:C(o.onPointerUp,()=>{g.current===`mouse`&&_()}),onPointerDown:C(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:C(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:C(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:C(o.onKeyDown,e=>{c.searchRef?.current!==``&&e.key===` `||(pe.includes(e.key)&&_(),e.key===` `&&e.preventDefault())})})})})});Qe.displayName=Ye;var K=`SelectItemText`,$e=L.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=H(K,n),s=G(K,n),c=Ze(K,n),l=be(K,n),[u,d]=L.useState(null),f=y(t,e=>d(e),c.onItemTextChange,e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=u?.textContent,m=L.useMemo(()=>(0,R.jsx)(`option`,{value:c.value,disabled:c.disabled,children:p},c.value),[c.disabled,c.value,p]),{onNativeOptionAdd:h,onNativeOptionRemove:g}=l;return w(()=>(h(m),()=>g(m)),[h,g,m]),(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(x.span,{id:c.textId,...a,ref:f}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren?de.createPortal(a.children,o.valueNode):null]})});$e.displayName=K;var et=`SelectItemIndicator`,tt=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return Ze(et,n).isSelected?(0,R.jsx)(x.span,{"aria-hidden":!0,...r,ref:t}):null});tt.displayName=et;var nt=`SelectScrollUpButton`,rt=L.forwardRef((e,t)=>{let n=G(nt,e.__scopeSelect),r=Be(nt,e.__scopeSelect),[i,a]=L.useState(!1),o=y(t,r.onScrollButtonChange);return w(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,R.jsx)(ot,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});rt.displayName=nt;var it=`SelectScrollDownButton`,at=L.forwardRef((e,t)=>{let n=G(it,e.__scopeSelect),r=Be(it,e.__scopeSelect),[i,a]=L.useState(!1),o=y(t,r.onScrollButtonChange);return w(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,R.jsx)(ot,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});at.displayName=it;var ot=L.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=G(`SelectScrollButton`,n),o=L.useRef(null),s=B(n),c=L.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return L.useEffect(()=>()=>c(),[c]),w(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,R.jsx)(x.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:C(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:C(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:C(i.onPointerLeave,()=>{c()})})}),st=`SelectSeparator`,ct=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,R.jsx)(x.div,{"aria-hidden":!0,...r,ref:t})});ct.displayName=st;var lt=`SelectArrow`,ut=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=_e(n),a=H(lt,n),o=G(lt,n);return a.open&&o.position===`popper`?(0,R.jsx)(D,{...i,...r,ref:t}):null});ut.displayName=lt;var dt=`SelectBubbleInput`,ft=L.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let i=L.useRef(null),a=y(r,i),o=M(t);return L.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,R.jsx)(x.select,{...n,style:{...ue,...n.style},ref:a,defaultValue:t})});ft.displayName=dt;function pt(e){return e===``||e===void 0}function mt(e){let t=ce(e),n=L.useRef(``),r=L.useRef(0),i=L.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=L.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return L.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function ht(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=gt(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function gt(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var _t=xe,vt=Ce,yt=Te,bt=De,xt=ke,St=Ae,Ct=He,wt=Qe,Tt=$e,Et=tt,Dt=rt,Ot=at;function q({...e}){return(0,R.jsx)(_t,{"data-slot":`select`,...e})}function J({...e}){return(0,R.jsx)(yt,{"data-slot":`select-value`,...e})}function Y({className:e,size:t=`default`,children:n,...r}){return(0,R.jsxs)(vt,{"data-slot":`select-trigger`,"data-size":t,className:i(`flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[n,(0,R.jsx)(bt,{asChild:!0,children:(0,R.jsx)(f,{className:`pointer-events-none size-4 text-muted-foreground`})})]})}function X({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...a}){return(0,R.jsx)(xt,{children:(0,R.jsxs)(St,{"data-slot":`select-content`,"data-align-trigger":n===`item-aligned`,className:i(`relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...a,children:[(0,R.jsx)(kt,{}),(0,R.jsx)(Ct,{"data-position":n,className:i(`data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)`,n===`popper`&&``),children:t}),(0,R.jsx)(At,{})]})})}function Z({className:e,children:t,...n}){return(0,R.jsxs)(wt,{"data-slot":`select-item`,className:i(`relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,R.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`,children:(0,R.jsx)(Et,{children:(0,R.jsx)(u,{className:`pointer-events-none`})})}),(0,R.jsx)(Tt,{children:t})]})}function kt({className:e,...t}){return(0,R.jsx)(Dt,{"data-slot":`select-scroll-up-button`,className:i(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,R.jsx)(s,{})})}function At({className:e,...t}){return(0,R.jsx)(Ot,{"data-slot":`select-scroll-down-button`,className:i(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,R.jsx)(f,{})})}var jt=[`claude`,`codex`];function Mt(){let[e,t]=(0,L.useState)({}),[n,i]=(0,L.useState)(`claude`),[a,o]=(0,L.useState)(``);(0,L.useEffect)(()=>{d(`GET`,`/providers/config`).then(t).catch(e=>o(e.message))},[]);let s=e[n],u=r=>{s&&t({...e,[n]:{...s,...r}})};async function f(){if(!s)return;let r=await d(`PUT`,`/providers/${n}/config`,s);t({...e,[n]:r}),o(`${n} saved`)}async function p(){let e=await d(`POST`,`/providers/${n}/config/test`);o(e.ok?`${n} command: ${e.path||`found`}`:e.error||`command not found`)}return(0,R.jsxs)(`div`,{className:`space-y-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h1`,{className:`text-xl font-semibold`,children:`Settings`}),(0,R.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Provider runner configuration`})]}),(0,R.jsx)(`div`,{className:`flex gap-2`,children:jt.map(e=>(0,R.jsxs)(P,{variant:n===e?`default`:`outline`,onClick:()=>i(e),children:[(0,R.jsx)(c,{className:`w-4 h-4`}),e]},e))})]}),s&&(0,R.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-[minmax(0,1fr)_minmax(280px,360px)]`,children:[(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(Q,{label:`Command`,children:(0,R.jsx)(F,{value:s.command,onChange:e=>u({command:e.target.value})})}),(0,R.jsx)(Q,{label:`Default arguments`,children:(0,R.jsx)(I,{rows:3,value:s.defaultArgs.join(`
|
|
1
|
+
import{r as e}from"./chunk-CilyBKbf.js";import{An as t,Hn as n,O as r,On as i,c as a,dn as o,en as s,g as c,h as l,in as u,jn as d,rn as f,vt as p,wt as m}from"./lucide-react-DLQFnqNm.js";import{t as h}from"./react-dom-CzfKBOnw.js";import{c as g,o as _,t as v}from"./store-Bo72e9My.js";import{o as y,r as b}from"./dist-BQ52MnS1.js";import{t as x}from"./dist-DRlgXPi_.js";import{i as S,n as C,t as w}from"./dist-SqFV12iO.js";import{a as T,i as E,n as D,o as O,r as ee,t as k}from"./dist-CrBurS6i.js";import{t as A}from"./dist-BgfF2Rlm.js";import{a as te,i as ne,n as re,o as ie,r as ae,s as j,t as oe}from"./es2015-iucXYTIE.js";import{t as se}from"./dist-CnJzBTp1.js";import{t as ce}from"./dist-D6iXJzms.js";import{r as M,t as N}from"./switch-W2_mhdrR.js";import{t as le}from"./dist-CVTST7Gc.js";import{t as P}from"./button-BsMqBNJb.js";import{t as F}from"./input-dPzf0luy.js";import{B as ue,r as I}from"./index-B1QUkb_O.js";var L=e(n(),1),de=e(h(),1),R=t(),fe=[` `,`Enter`,`ArrowUp`,`ArrowDown`],pe=[` `,`Enter`],z=`Select`,[me,B,he]=O(z),[V,ge]=S(z,[he,T]),_e=T(),[ve,H]=V(z),[ye,be]=V(z),xe=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m}=e,h=_e(t),[g,_]=L.useState(null),[v,y]=L.useState(null),[b,x]=L.useState(!1),S=se(l),[C,w]=A({prop:r,defaultProp:i??!1,onChange:a,caller:z}),[T,D]=A({prop:o,defaultProp:s,onChange:c,caller:z}),O=L.useRef(null),ee=g?m||!!g.closest(`form`):!0,[k,te]=L.useState(new Set),ne=Array.from(k).map(e=>e.props.value).join(`;`);return(0,R.jsx)(E,{...h,children:(0,R.jsxs)(ve,{required:p,scope:t,trigger:g,onTriggerChange:_,valueNode:v,onValueNodeChange:y,valueNodeHasChildren:b,onValueNodeHasChildrenChange:x,contentId:j(),value:T,onValueChange:D,open:C,onOpenChange:w,dir:S,triggerPointerDownPosRef:O,disabled:f,children:[(0,R.jsx)(me.Provider,{scope:t,children:(0,R.jsx)(ye,{scope:e.__scopeSelect,onNativeOptionAdd:L.useCallback(e=>{te(t=>new Set(t).add(e))},[]),onNativeOptionRemove:L.useCallback(e=>{te(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),ee?(0,R.jsxs)(ft,{"aria-hidden":!0,required:p,tabIndex:-1,name:u,autoComplete:d,value:T,onChange:e=>D(e.target.value),disabled:f,form:m,children:[T===void 0?(0,R.jsx)(`option`,{value:``}):null,Array.from(k)]},ne):null]})})};xe.displayName=z;var Se=`SelectTrigger`,Ce=L.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=_e(n),o=H(Se,n),s=o.disabled||r,c=y(t,o.onTriggerChange),l=B(n),u=L.useRef(`touch`),[d,f,p]=mt(e=>{let t=l().filter(e=>!e.disabled),n=ht(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),m=e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,R.jsx)(k,{asChild:!0,...a,children:(0,R.jsx)(x.button,{type:`button`,role:`combobox`,"aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":pt(o.value)?``:void 0,...i,ref:c,onClick:C(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:C(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:C(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&fe.includes(e.key)&&(m(),e.preventDefault())})})})});Ce.displayName=Se;var we=`SelectValue`,Te=L.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=H(we,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=y(t,c.onValueNodeChange);return w(()=>{l(u)},[l,u]),(0,R.jsx)(x.span,{...s,ref:d,style:{pointerEvents:`none`},children:pt(c.value)?(0,R.jsx)(R.Fragment,{children:o}):a})});Te.displayName=we;var Ee=`SelectIcon`,De=L.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,R.jsx)(x.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});De.displayName=Ee;var Oe=`SelectPortal`,ke=e=>(0,R.jsx)(ne,{asChild:!0,...e});ke.displayName=Oe;var U=`SelectContent`,Ae=L.forwardRef((e,t)=>{let n=H(U,e.__scopeSelect),[r,i]=L.useState();if(w(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?de.createPortal((0,R.jsx)(je,{scope:e.__scopeSelect,children:(0,R.jsx)(me.Slot,{scope:e.__scopeSelect,children:(0,R.jsx)(`div`,{children:e.children})})}),t):null}return(0,R.jsx)(Pe,{...e,ref:t})});Ae.displayName=U;var W=10,[je,G]=V(U),Me=`SelectContentImpl`,Ne=b(`SelectContent.RemoveScroll`),Pe=L.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=H(U,n),[b,x]=L.useState(null),[S,w]=L.useState(null),T=y(t,e=>x(e)),[E,D]=L.useState(null),[O,ee]=L.useState(null),k=B(n),[A,ne]=L.useState(!1),j=L.useRef(!1);L.useEffect(()=>{if(b)return oe(b)},[b]),ae();let se=L.useCallback(e=>{let[t,...n]=k().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&S&&(S.scrollTop=0),n===r&&S&&(S.scrollTop=S.scrollHeight),n?.focus(),document.activeElement!==i))return},[k,S]),ce=L.useCallback(()=>se([E,b]),[se,E,b]);L.useEffect(()=>{A&&ce()},[A,ce]);let{onOpenChange:M,triggerPointerDownPosRef:N}=v;L.useEffect(()=>{if(b){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(N.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(N.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():b.contains(n.target)||M(!1),document.removeEventListener(`pointermove`,t),N.current=null};return N.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[b,M,N]),L.useEffect(()=>{let e=()=>M(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[M]);let[le,P]=mt(e=>{let t=k().filter(e=>!e.disabled),n=ht(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),F=L.useCallback((e,t,n)=>{let r=!j.current&&!n;(v.value!==void 0&&v.value===t||r)&&(D(e),r&&(j.current=!0))},[v.value]),ue=L.useCallback(()=>b?.focus(),[b]),I=L.useCallback((e,t,n)=>{let r=!j.current&&!n;(v.value!==void 0&&v.value===t||r)&&ee(e)},[v.value]),de=r===`popper`?Re:Ie,fe=de===Re?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,R.jsx)(je,{scope:n,content:b,viewport:S,onViewportChange:w,itemRefCallback:F,selectedItem:E,onItemLeave:ue,itemTextRefCallback:I,focusSelectedItem:ce,selectedItemText:O,position:r,isPositioned:A,searchRef:le,children:(0,R.jsx)(re,{as:Ne,allowPinchZoom:!0,children:(0,R.jsx)(te,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:C(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,R.jsx)(ie,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,R.jsx)(de,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...fe,onPlaced:()=>ne(!0),ref:T,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:C(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&P(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=k().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>se(t)),e.preventDefault()}})})})})})})});Pe.displayName=Me;var Fe=`SelectItemAlignedPosition`,Ie=L.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=H(U,n),o=G(U,n),[s,c]=L.useState(null),[l,u]=L.useState(null),d=y(t,e=>u(e)),f=B(n),p=L.useRef(!1),m=L.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,b=L.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-W,d=le(a,[W,Math.max(W,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-W,d=le(a,[W,Math.max(W,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-W*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-W,D=c-E,O=g.offsetHeight/2,ee=g.offsetTop+O,k=m+v+ee,A=x-k;if(k<=E){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=k+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+h.offsetTop+(e?w:0)+O)+A;s.style.height=t+`px`,h.scrollTop=k-E+h.offsetTop}s.style.margin=`${W}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);w(()=>b(),[b]);let[S,C]=L.useState();return w(()=>{l&&C(window.getComputedStyle(l).zIndex)},[l]),(0,R.jsx)(ze,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:L.useCallback(e=>{e&&m.current===!0&&(b(),v?.(),m.current=!1)},[b,v]),children:(0,R.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:S},children:(0,R.jsx)(x.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});Ie.displayName=Fe;var Le=`SelectPopperPosition`,Re=L.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=W,...a}=e,o=_e(n);return(0,R.jsx)(ee,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Re.displayName=Le;var[ze,Be]=V(U,{}),Ve=`SelectViewport`,He=L.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=G(Ve,n),o=Be(Ve,n),s=y(t,a.onViewportChange),c=L.useRef(0);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,R.jsx)(me.Slot,{scope:n,children:(0,R.jsx)(x.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:C(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-W*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})});He.displayName=Ve;var Ue=`SelectGroup`,[We,Ge]=V(Ue),Ke=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=j();return(0,R.jsx)(We,{scope:n,id:i,children:(0,R.jsx)(x.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});Ke.displayName=Ue;var qe=`SelectLabel`,Je=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Ge(qe,n);return(0,R.jsx)(x.div,{id:i.id,...r,ref:t})});Je.displayName=qe;var Ye=`SelectItem`,[Xe,Ze]=V(Ye),Qe=L.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=H(Ye,n),c=G(Ye,n),l=s.value===r,[u,d]=L.useState(a??``),[f,p]=L.useState(!1),m=y(t,e=>c.itemRefCallback?.(e,r,i)),h=j(),g=L.useRef(`touch`),_=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,R.jsx)(Xe,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:L.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,R.jsx)(me.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,R.jsx)(x.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:C(o.onFocus,()=>p(!0)),onBlur:C(o.onBlur,()=>p(!1)),onClick:C(o.onClick,()=>{g.current!==`mouse`&&_()}),onPointerUp:C(o.onPointerUp,()=>{g.current===`mouse`&&_()}),onPointerDown:C(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:C(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:C(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:C(o.onKeyDown,e=>{c.searchRef?.current!==``&&e.key===` `||(pe.includes(e.key)&&_(),e.key===` `&&e.preventDefault())})})})})});Qe.displayName=Ye;var K=`SelectItemText`,$e=L.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=H(K,n),s=G(K,n),c=Ze(K,n),l=be(K,n),[u,d]=L.useState(null),f=y(t,e=>d(e),c.onItemTextChange,e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=u?.textContent,m=L.useMemo(()=>(0,R.jsx)(`option`,{value:c.value,disabled:c.disabled,children:p},c.value),[c.disabled,c.value,p]),{onNativeOptionAdd:h,onNativeOptionRemove:g}=l;return w(()=>(h(m),()=>g(m)),[h,g,m]),(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(x.span,{id:c.textId,...a,ref:f}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren?de.createPortal(a.children,o.valueNode):null]})});$e.displayName=K;var et=`SelectItemIndicator`,tt=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return Ze(et,n).isSelected?(0,R.jsx)(x.span,{"aria-hidden":!0,...r,ref:t}):null});tt.displayName=et;var nt=`SelectScrollUpButton`,rt=L.forwardRef((e,t)=>{let n=G(nt,e.__scopeSelect),r=Be(nt,e.__scopeSelect),[i,a]=L.useState(!1),o=y(t,r.onScrollButtonChange);return w(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,R.jsx)(ot,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});rt.displayName=nt;var it=`SelectScrollDownButton`,at=L.forwardRef((e,t)=>{let n=G(it,e.__scopeSelect),r=Be(it,e.__scopeSelect),[i,a]=L.useState(!1),o=y(t,r.onScrollButtonChange);return w(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,R.jsx)(ot,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});at.displayName=it;var ot=L.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=G(`SelectScrollButton`,n),o=L.useRef(null),s=B(n),c=L.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return L.useEffect(()=>()=>c(),[c]),w(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,R.jsx)(x.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:C(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:C(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:C(i.onPointerLeave,()=>{c()})})}),st=`SelectSeparator`,ct=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,R.jsx)(x.div,{"aria-hidden":!0,...r,ref:t})});ct.displayName=st;var lt=`SelectArrow`,ut=L.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=_e(n),a=H(lt,n),o=G(lt,n);return a.open&&o.position===`popper`?(0,R.jsx)(D,{...i,...r,ref:t}):null});ut.displayName=lt;var dt=`SelectBubbleInput`,ft=L.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let i=L.useRef(null),a=y(r,i),o=M(t);return L.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,R.jsx)(x.select,{...n,style:{...ue,...n.style},ref:a,defaultValue:t})});ft.displayName=dt;function pt(e){return e===``||e===void 0}function mt(e){let t=ce(e),n=L.useRef(``),r=L.useRef(0),i=L.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=L.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return L.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function ht(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=gt(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function gt(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var _t=xe,vt=Ce,yt=Te,bt=De,xt=ke,St=Ae,Ct=He,wt=Qe,Tt=$e,Et=tt,Dt=rt,Ot=at;function q({...e}){return(0,R.jsx)(_t,{"data-slot":`select`,...e})}function J({...e}){return(0,R.jsx)(yt,{"data-slot":`select-value`,...e})}function Y({className:e,size:t=`default`,children:n,...r}){return(0,R.jsxs)(vt,{"data-slot":`select-trigger`,"data-size":t,className:i(`flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[n,(0,R.jsx)(bt,{asChild:!0,children:(0,R.jsx)(f,{className:`pointer-events-none size-4 text-muted-foreground`})})]})}function X({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...a}){return(0,R.jsx)(xt,{children:(0,R.jsxs)(St,{"data-slot":`select-content`,"data-align-trigger":n===`item-aligned`,className:i(`relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...a,children:[(0,R.jsx)(kt,{}),(0,R.jsx)(Ct,{"data-position":n,className:i(`data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)`,n===`popper`&&``),children:t}),(0,R.jsx)(At,{})]})})}function Z({className:e,children:t,...n}){return(0,R.jsxs)(wt,{"data-slot":`select-item`,className:i(`relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,R.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`,children:(0,R.jsx)(Et,{children:(0,R.jsx)(u,{className:`pointer-events-none`})})}),(0,R.jsx)(Tt,{children:t})]})}function kt({className:e,...t}){return(0,R.jsx)(Dt,{"data-slot":`select-scroll-up-button`,className:i(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,R.jsx)(s,{})})}function At({className:e,...t}){return(0,R.jsx)(Ot,{"data-slot":`select-scroll-down-button`,className:i(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,R.jsx)(f,{})})}var jt=[`claude`,`codex`];function Mt(){let[e,t]=(0,L.useState)({}),[n,i]=(0,L.useState)(`claude`),[a,o]=(0,L.useState)(``);(0,L.useEffect)(()=>{d(`GET`,`/providers/config`).then(t).catch(e=>o(e.message))},[]);let s=e[n],u=r=>{s&&t({...e,[n]:{...s,...r}})};async function f(){if(!s)return;let r=await d(`PUT`,`/providers/${n}/config`,s);t({...e,[n]:r}),o(`${n} saved`)}async function p(){let e=await d(`POST`,`/providers/${n}/config/test`);o(e.ok?`${n} command: ${e.path||`found`}`:e.error||`command not found`)}return(0,R.jsxs)(`div`,{className:`space-y-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h1`,{className:`text-xl font-semibold`,children:`Settings`}),(0,R.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Provider runner configuration`})]}),(0,R.jsx)(`div`,{className:`flex gap-2`,children:jt.map(e=>(0,R.jsxs)(P,{variant:n===e?`default`:`outline`,onClick:()=>i(e),children:[(0,R.jsx)(c,{className:`w-4 h-4`}),e]},e))})]}),s&&(0,R.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-[minmax(0,1fr)_minmax(280px,360px)]`,children:[(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(Q,{label:`Command`,children:(0,R.jsx)(F,{value:s.command,onChange:e=>u({command:e.target.value})})}),(0,R.jsx)(Q,{label:`Default arguments`,children:(0,R.jsx)(I,{rows:3,value:s.defaultArgs.join(`
|
|
2
2
|
`),onChange:e=>u({defaultArgs:$(e.target.value)})})}),(0,R.jsx)(Q,{label:`Plugin directories`,children:(0,R.jsx)(I,{rows:3,value:s.pluginDirs.join(`
|
|
3
3
|
`),onChange:e=>u({pluginDirs:$(e.target.value)})})}),(0,R.jsx)(Q,{label:`Environment`,children:(0,R.jsx)(I,{rows:5,value:Bt(s.env),onChange:e=>u({env:Vt(e.target.value)})})})]}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(Q,{label:`Capabilities`,children:(0,R.jsx)(I,{rows:3,value:s.defaultCapabilities.join(`
|
|
4
4
|
`),onChange:e=>u({defaultCapabilities:$(e.target.value)})})}),(0,R.jsx)(Q,{label:`Tags`,children:(0,R.jsx)(I,{rows:3,value:s.defaultTags.join(`
|
|
@@ -7,4 +7,4 @@ import{r as e}from"./chunk-CilyBKbf.js";import{An as t,Hn as n,O as r,On as i,c
|
|
|
7
7
|
`),onChange:n=>t({...e,symlinkPaths:$(n.target.value)})})}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,R.jsxs)(P,{onClick:a,children:[(0,R.jsx)(r,{className:`w-4 h-4`}),`Save`]}),n&&(0,R.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n})]})]})}function Ft(){let e=v(e=>e.showReasoning),t=v(e=>e.set);return(0,R.jsx)(`section`,{className:`space-y-3 rounded-lg border p-4`,children:(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(o,{className:`w-4 h-4`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Show reasoning details`}),(0,R.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Show the agent's internal thinking inline in chat, alongside its narration and tool steps. Off by default — narration is always shown either way.`})]})]}),(0,R.jsx)(N,{checked:e,onCheckedChange:e=>t({showReasoning:e})})]})})}function It(){let e=v(e=>e.voiceTtsEnabled),t=v(e=>e.setVoiceTtsEnabled),n=v(e=>e.voiceTtsMode),r=v(e=>e.setVoiceTtsMode),i=v(e=>e.voiceTtsKokoroVoice),o=v(e=>e.setVoiceTtsKokoroVoice),s=v(e=>e.voiceTtsBrowserVoice),c=v(e=>e.setVoiceTtsBrowserVoice),l=v(e=>e.voiceInputMode),u=v(e=>e.setVoiceInputMode),[d,f]=(0,L.useState)(()=>g());(0,L.useEffect)(()=>{if(typeof window>`u`||!(`speechSynthesis`in window))return;let e=()=>f(g());return e(),window.speechSynthesis.addEventListener?.(`voiceschanged`,e),()=>window.speechSynthesis.removeEventListener?.(`voiceschanged`,e)},[]);let p=_.some(e=>e.id===i)?_:[..._,{id:i,label:i}];return(0,R.jsxs)(`section`,{className:`space-y-3 rounded-lg border p-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(a,{className:`w-4 h-4`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Voice`}),(0,R.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Speak agent responses aloud in the active chat, and how push-to-talk behaves.`})]})]}),(0,R.jsx)(N,{checked:e,onCheckedChange:t})]}),(0,R.jsx)(Q,{label:`Speech engine`,children:(0,R.jsxs)(q,{value:n,onValueChange:e=>r(e),children:[(0,R.jsx)(Y,{children:(0,R.jsx)(J,{})}),(0,R.jsxs)(X,{children:[(0,R.jsx)(Z,{value:`kokoro`,children:`Kokoro (server, natural — falls back to browser)`}),(0,R.jsx)(Z,{value:`browser`,children:`Browser (Web Speech API)`})]})]})}),(0,R.jsx)(Q,{label:`Kokoro voice`,children:(0,R.jsxs)(q,{value:i,onValueChange:o,children:[(0,R.jsx)(Y,{children:(0,R.jsx)(J,{})}),(0,R.jsx)(X,{children:p.map(e=>(0,R.jsx)(Z,{value:e.id,children:e.label},e.id))})]})}),(0,R.jsx)(Q,{label:`Browser voice`,children:(0,R.jsxs)(q,{value:s||`__default__`,onValueChange:e=>c(e===`__default__`?``:e),children:[(0,R.jsx)(Y,{children:(0,R.jsx)(J,{})}),(0,R.jsxs)(X,{children:[(0,R.jsx)(Z,{value:`__default__`,children:`System default`}),d.map(e=>(0,R.jsx)(Z,{value:e.uri,children:e.label},e.uri))]})]})}),(0,R.jsx)(Q,{label:`Push-to-talk input`,children:(0,R.jsxs)(q,{value:l,onValueChange:e=>u(e),children:[(0,R.jsx)(Y,{children:(0,R.jsx)(J,{})}),(0,R.jsxs)(X,{children:[(0,R.jsx)(Z,{value:`compose`,children:`Fill the message box (review, then Enter)`}),(0,R.jsx)(Z,{value:`autosend`,children:`Send immediately (speak-and-send)`})]})]})})]})}var Lt=[`low`,`medium`,`high`,`xhigh`,`max`],Rt={enabled:!1,provider:`claude`,permissionMode:`open`,keepaliveSeconds:300};function zt(){let[e,t]=(0,L.useState)(Rt),[n,i]=(0,L.useState)(``);(0,L.useEffect)(()=>{d(`GET`,`/steward-config`).then(e=>t({...Rt,...e.value})).catch(e=>i(e.message))},[]);let a=e=>t(t=>({...t,...e}));async function o(){try{let n=await d(`PUT`,`/steward-config`,e);t({...Rt,...n.value}),i(`Steward config saved`)}catch(e){i(e.message)}}return(0,R.jsxs)(`section`,{className:`space-y-3 rounded-lg border p-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(p,{className:`w-4 h-4`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Stewards`}),(0,R.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Auto-resolve merge conflicts & diverged branches across all repos. Provider-independent — applies to every repo's steward.`})]})]}),(0,R.jsx)(N,{checked:e.enabled,onCheckedChange:e=>a({enabled:e})})]}),(0,R.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,R.jsx)(Q,{label:`Provider`,children:(0,R.jsxs)(q,{value:e.provider,onValueChange:e=>a({provider:e}),children:[(0,R.jsx)(Y,{children:(0,R.jsx)(J,{})}),(0,R.jsx)(X,{children:jt.map(e=>(0,R.jsx)(Z,{value:e,children:e},e))})]})}),(0,R.jsx)(Q,{label:`Model (optional)`,children:(0,R.jsx)(F,{value:e.model??``,placeholder:`e.g. gpt-5.5`,onChange:e=>a({model:e.target.value.trim()||void 0})})}),(0,R.jsx)(Q,{label:`Effort`,children:(0,R.jsxs)(q,{value:e.effort??`default`,onValueChange:e=>a({effort:e===`default`?void 0:e}),children:[(0,R.jsx)(Y,{children:(0,R.jsx)(J,{})}),(0,R.jsxs)(X,{children:[(0,R.jsx)(Z,{value:`default`,children:`Provider default`}),Lt.map(e=>(0,R.jsx)(Z,{value:e,children:e},e))]})]})}),(0,R.jsx)(Q,{label:`Idle timeout (seconds)`,children:(0,R.jsx)(F,{type:`number`,value:e.keepaliveSeconds,onChange:e=>a({keepaliveSeconds:Number(e.target.value)||300})})})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,R.jsxs)(P,{onClick:o,children:[(0,R.jsx)(r,{className:`w-4 h-4`}),`Save`]}),n&&(0,R.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n})]})]})}function Q({label:e,children:t}){return(0,R.jsxs)(`label`,{className:`block space-y-1.5 text-sm`,children:[(0,R.jsx)(`span`,{className:`text-muted-foreground`,children:e}),t]})}function $(e){return e.split(`
|
|
8
8
|
`).map(e=>e.trim()).filter(Boolean)}function Bt(e){return Object.entries(e).map(([e,t])=>`${e}=${t}`).join(`
|
|
9
9
|
`)}function Vt(e){return Object.fromEntries($(e).map(e=>{let t=e.indexOf(`=`);return t>=0?[e.slice(0,t).trim(),e.slice(t+1)]:[e,``]}))}export{Mt as SettingsView};
|
|
10
|
-
//# sourceMappingURL=settings-
|
|
10
|
+
//# sourceMappingURL=settings-BOsnUh5f.js.map
|