agent-tower 0.2.4 → 0.2.5

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 (51) hide show
  1. package/dist/executors/claude-code.executor.d.ts +2 -2
  2. package/dist/executors/claude-code.executor.d.ts.map +1 -1
  3. package/dist/executors/claude-code.executor.js +1 -1
  4. package/dist/executors/claude-code.executor.js.map +1 -1
  5. package/dist/executors/codex.executor.d.ts +8 -0
  6. package/dist/executors/codex.executor.d.ts.map +1 -1
  7. package/dist/executors/codex.executor.js +90 -5
  8. package/dist/executors/codex.executor.js.map +1 -1
  9. package/dist/executors/image-utils.d.ts +8 -0
  10. package/dist/executors/image-utils.d.ts.map +1 -1
  11. package/dist/executors/image-utils.js +25 -0
  12. package/dist/executors/image-utils.js.map +1 -1
  13. package/dist/executors/providers.d.ts +2 -2
  14. package/dist/executors/providers.d.ts.map +1 -1
  15. package/dist/executors/providers.js +6 -0
  16. package/dist/executors/providers.js.map +1 -1
  17. package/dist/output/codex-parser.d.ts +22 -3
  18. package/dist/output/codex-parser.d.ts.map +1 -1
  19. package/dist/output/codex-parser.js +106 -11
  20. package/dist/output/codex-parser.js.map +1 -1
  21. package/dist/routes/providers.js +2 -2
  22. package/dist/routes/providers.js.map +1 -1
  23. package/dist/web/assets/{AgentDemoPage-DbReHEIF.js → AgentDemoPage-Cmy-EiZu.js} +1 -1
  24. package/dist/web/assets/{DemoPage-U0U06JBX.js → DemoPage-CClZiSGx.js} +1 -1
  25. package/dist/web/assets/{NotificationSettingsPage-CdbIEiFm.js → NotificationSettingsPage-8cqUXvOG.js} +1 -1
  26. package/dist/web/assets/{ProfileSettingsPage-DXdb0LKC.js → ProfileSettingsPage-JEyIen1G.js} +1 -1
  27. package/dist/web/assets/{ProjectKanbanPage-DmTUqq3c.js → ProjectKanbanPage-x3ZQWJIh.js} +3 -3
  28. package/dist/web/assets/{ProjectSettingsPage-X9m7tZ5R.js → ProjectSettingsPage-xf1CbrXn.js} +1 -1
  29. package/dist/web/assets/ProviderSettingsPage-CeQaBzbI.js +54 -0
  30. package/dist/web/assets/{api-client-DEke6rQ4.js → api-client-DFUgF1Wk.js} +1 -1
  31. package/dist/web/assets/{chevron-down-CpFVmwPg.js → chevron-down-CnBRB9Kw.js} +1 -1
  32. package/dist/web/assets/{circle-alert-Gs_wxunt.js → circle-alert-C0IstPDE.js} +1 -1
  33. package/dist/web/assets/{circle-check-BPbbKebL.js → circle-check-CxBTrMyF.js} +1 -1
  34. package/dist/web/assets/{code-block-OCS4YCEC-B9uttJeR.js → code-block-OCS4YCEC-DSyU4l-o.js} +1 -1
  35. package/dist/web/assets/{folder-picker-q3bDqZNK.js → folder-picker-DzxoO22w.js} +1 -1
  36. package/dist/web/assets/{index-yP6NT0d4.js → index-07aAg9ym.js} +2 -2
  37. package/dist/web/assets/{loader-circle-BPfuUlPS.js → loader-circle-Bvk8FQAZ.js} +1 -1
  38. package/dist/web/assets/{mermaid-NOHMQCX5-tkavilGV.js → mermaid-NOHMQCX5-ChxsXQpo.js} +3 -3
  39. package/dist/web/assets/{modal-Cm1qLsdb.js → modal-C7KrtU5D.js} +1 -1
  40. package/dist/web/assets/{pencil-BJvmRaTF.js → pencil-CsqG0Xhe.js} +1 -1
  41. package/dist/web/assets/{query-keys-DfqkAgsV.js → query-keys-B6523SEW.js} +1 -1
  42. package/dist/web/assets/{select-Dchwldvd.js → select-KkfOjJ3x.js} +1 -1
  43. package/dist/web/assets/{use-profiles-DVKFw38N.js → use-profiles-D1Hr_8cE.js} +1 -1
  44. package/dist/web/assets/{use-projects-CYLR7Ikg.js → use-projects-Dr_iaKHc.js} +1 -1
  45. package/dist/web/assets/{use-providers-Ce2CzdA7.js → use-providers-M5eJE3zA.js} +1 -1
  46. package/dist/web/assets/{x-C1fyolLz.js → x-B8R7wzdZ.js} +1 -1
  47. package/dist/web/index.html +1 -1
  48. package/node_modules/@agent-tower/shared/dist/types.d.ts +2 -2
  49. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  50. package/package.json +2 -1
  51. package/dist/web/assets/ProviderSettingsPage-rrgndhUT.js +0 -1
@@ -1 +1 @@
1
- import{c as f,r as a,j as e}from"./index-yP6NT0d4.js";import{c as i}from"./api-client-DEke6rQ4.js";import{X as x}from"./x-C1fyolLz.js";const y=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],j=f("trash-2",y),b=({isOpen:t,onClose:r,title:d,children:c,action:l,className:u})=>{const[m,n]=a.useState(!1);a.useEffect(()=>{if(t)n(!0),document.body.style.overflow="hidden";else{const o=setTimeout(()=>n(!1),200);return document.body.style.overflow="unset",()=>clearTimeout(o)}},[t]);const s=a.useCallback(o=>{o.key==="Escape"&&r()},[r]);return a.useEffect(()=>{if(t)return document.addEventListener("keydown",s),()=>{document.removeEventListener("keydown",s)}},[t,s]),!m&&!t?null:e.jsxs("div",{className:i("fixed inset-0 z-50 flex items-center justify-center p-4 transition-opacity duration-200",t?"opacity-100":"opacity-0"),children:[e.jsx("div",{className:"absolute inset-0 bg-white/80 backdrop-blur-sm",onClick:r}),e.jsxs("div",{className:i("relative w-full max-w-lg bg-white rounded-xl shadow-2xl shadow-neutral-200/50 border border-neutral-100 transform transition-all duration-200",t?"scale-100 translate-y-0":"scale-95 translate-y-2",u),children:[e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-neutral-50",children:[e.jsx("h3",{className:"font-semibold text-neutral-900",children:d}),e.jsx("button",{onClick:r,className:"text-neutral-400 hover:text-neutral-900 transition-colors",children:e.jsx(x,{size:18})})]}),e.jsx("div",{className:"p-6",children:c}),l?e.jsx("div",{className:"px-6 py-4 bg-neutral-50 rounded-b-xl border-t border-neutral-100 flex justify-end gap-3",children:l}):null]})]})},w=Object.freeze(Object.defineProperty({__proto__:null,Modal:b},Symbol.toStringTag,{value:"Module"}));export{b as M,j as T,w as m};
1
+ import{c as f,r as a,j as e}from"./index-07aAg9ym.js";import{c as i}from"./api-client-DFUgF1Wk.js";import{X as x}from"./x-B8R7wzdZ.js";const y=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],j=f("trash-2",y),b=({isOpen:t,onClose:r,title:d,children:c,action:l,className:u})=>{const[m,n]=a.useState(!1);a.useEffect(()=>{if(t)n(!0),document.body.style.overflow="hidden";else{const o=setTimeout(()=>n(!1),200);return document.body.style.overflow="unset",()=>clearTimeout(o)}},[t]);const s=a.useCallback(o=>{o.key==="Escape"&&r()},[r]);return a.useEffect(()=>{if(t)return document.addEventListener("keydown",s),()=>{document.removeEventListener("keydown",s)}},[t,s]),!m&&!t?null:e.jsxs("div",{className:i("fixed inset-0 z-50 flex items-center justify-center p-4 transition-opacity duration-200",t?"opacity-100":"opacity-0"),children:[e.jsx("div",{className:"absolute inset-0 bg-white/80 backdrop-blur-sm",onClick:r}),e.jsxs("div",{className:i("relative w-full max-w-lg bg-white rounded-xl shadow-2xl shadow-neutral-200/50 border border-neutral-100 transform transition-all duration-200",t?"scale-100 translate-y-0":"scale-95 translate-y-2",u),children:[e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-neutral-50",children:[e.jsx("h3",{className:"font-semibold text-neutral-900",children:d}),e.jsx("button",{onClick:r,className:"text-neutral-400 hover:text-neutral-900 transition-colors",children:e.jsx(x,{size:18})})]}),e.jsx("div",{className:"p-6",children:c}),l?e.jsx("div",{className:"px-6 py-4 bg-neutral-50 rounded-b-xl border-t border-neutral-100 flex justify-end gap-3",children:l}):null]})]})},w=Object.freeze(Object.defineProperty({__proto__:null,Modal:b},Symbol.toStringTag,{value:"Module"}));export{b as M,j as T,w as m};
@@ -1 +1 @@
1
- import{c as a}from"./index-yP6NT0d4.js";const c=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],o=a("pencil",c);export{o as P};
1
+ import{c as a}from"./index-07aAg9ym.js";const c=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],o=a("pencil",c);export{o as P};
@@ -1 +1 @@
1
- import{a as G,p as K,b as d,d as w,e as y,n as M,f as P,h as A,t as Y,k as C,l as Z,m as $,o as B,q as I,v as H,w as q,r as c,x as _,u as J}from"./index-yP6NT0d4.js";var tt=class extends G{constructor(t,e){super(),this.options=e,this.#s=t,this.#o=null,this.#n=K(),this.bindMethods(),this.setOptions(e)}#s;#t=void 0;#i=void 0;#e=void 0;#r;#a;#n;#o;#m;#d;#f;#c;#u;#h;#p=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),W(this.#t,this.options)?this.#l():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return k(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return k(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#R(),this.#S(),this.#t.removeObserver(this)}setOptions(t){const e=this.options,s=this.#t;if(this.options=this.#s.defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof d(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#O(),this.#t.setOptions(this.options),e._defaulted&&!w(this.options,e)&&this.#s.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const i=this.hasListeners();i&&z(this.#t,s,this.options,e)&&this.#l(),this.updateResult(),i&&(this.#t!==s||d(this.options.enabled,this.#t)!==d(e.enabled,this.#t)||y(this.options.staleTime,this.#t)!==y(e.staleTime,this.#t))&&this.#v();const r=this.#b();i&&(this.#t!==s||d(this.options.enabled,this.#t)!==d(e.enabled,this.#t)||r!==this.#h)&&this.#g(r)}getOptimisticResult(t){const e=this.#s.getQueryCache().build(this.#s,t),s=this.createResult(e,t);return st(this,s)&&(this.#e=s,this.#a=this.options,this.#r=this.#t.state),s}getCurrentResult(){return this.#e}trackResult(t,e){return new Proxy(t,{get:(s,i)=>(this.trackProp(i),e?.(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&this.#n.status==="pending"&&this.#n.reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(s,i))})}trackProp(t){this.#p.add(t)}getCurrentQuery(){return this.#t}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const e=this.#s.defaultQueryOptions(t),s=this.#s.getQueryCache().build(this.#s,e);return s.fetch().then(()=>this.createResult(s,e))}fetch(t){return this.#l({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#e))}#l(t){this.#O();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(M)),e}#v(){this.#R();const t=y(this.options.staleTime,this.#t);if(P||this.#e.isStale||!A(t))return;const s=Y(this.#e.dataUpdatedAt,t)+1;this.#c=C.setTimeout(()=>{this.#e.isStale||this.updateResult()},s)}#b(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#g(t){this.#S(),this.#h=t,!(P||d(this.options.enabled,this.#t)===!1||!A(this.#h)||this.#h===0)&&(this.#u=C.setInterval(()=>{(this.options.refetchIntervalInBackground||Z.isFocused())&&this.#l()},this.#h))}#y(){this.#v(),this.#g(this.#b())}#R(){this.#c&&(C.clearTimeout(this.#c),this.#c=void 0)}#S(){this.#u&&(C.clearInterval(this.#u),this.#u=void 0)}createResult(t,e){const s=this.#t,i=this.options,r=this.#e,u=this.#r,a=this.#a,v=t!==s?t.state:this.#i,{state:h}=t;let n={...h},b=!1,o;if(e._optimisticResults){const l=this.hasListeners(),g=!l&&W(t,e),S=l&&z(t,s,e,i);(g||S)&&(n={...n,...$(h.data,t.options)}),e._optimisticResults==="isRestoring"&&(n.fetchStatus="idle")}let{error:R,errorUpdatedAt:D,status:m}=n;o=n.data;let F=!1;if(e.placeholderData!==void 0&&o===void 0&&m==="pending"){let l;r?.isPlaceholderData&&e.placeholderData===a?.placeholderData?(l=r.data,F=!0):l=typeof e.placeholderData=="function"?e.placeholderData(this.#f?.state.data,this.#f):e.placeholderData,l!==void 0&&(m="success",o=B(r?.data,l,e),b=!0)}if(e.select&&o!==void 0&&!F)if(r&&o===u?.data&&e.select===this.#m)o=this.#d;else try{this.#m=e.select,o=e.select(o),o=B(r?.data,o,e),this.#d=o,this.#o=null}catch(l){this.#o=l}this.#o&&(R=this.#o,o=this.#d,D=Date.now(),m="error");const T=n.fetchStatus==="fetching",x=m==="pending",Q=m==="error",j=x&&T,L=o!==void 0,p={status:m,fetchStatus:n.fetchStatus,isPending:x,isSuccess:m==="success",isError:Q,isInitialLoading:j,isLoading:j,data:o,dataUpdatedAt:n.dataUpdatedAt,error:R,errorUpdatedAt:D,failureCount:n.fetchFailureCount,failureReason:n.fetchFailureReason,errorUpdateCount:n.errorUpdateCount,isFetched:n.dataUpdateCount>0||n.errorUpdateCount>0,isFetchedAfterMount:n.dataUpdateCount>v.dataUpdateCount||n.errorUpdateCount>v.errorUpdateCount,isFetching:T,isRefetching:T&&!x,isLoadingError:Q&&!L,isPaused:n.fetchStatus==="paused",isPlaceholderData:b,isRefetchError:Q&&L,isStale:U(t,e),refetch:this.refetch,promise:this.#n,isEnabled:d(e.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const l=p.data!==void 0,g=p.status==="error"&&!l,S=E=>{g?E.reject(p.error):l&&E.resolve(p.data)},N=()=>{const E=this.#n=p.promise=K();S(E)},O=this.#n;switch(O.status){case"pending":t.queryHash===s.queryHash&&S(O);break;case"fulfilled":(g||p.data!==O.value)&&N();break;case"rejected":(!g||p.error!==O.reason)&&N();break}}return p}updateResult(){const t=this.#e,e=this.createResult(this.#t,this.options);if(this.#r=this.#t.state,this.#a=this.options,this.#r.data!==void 0&&(this.#f=this.#t),w(e,t))return;this.#e=e;const s=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,r=typeof i=="function"?i():i;if(r==="all"||!r&&!this.#p.size)return!0;const u=new Set(r??this.#p);return this.options.throwOnError&&u.add("error"),Object.keys(this.#e).some(a=>{const f=a;return this.#e[f]!==t[f]&&u.has(f)})};this.#E({listeners:s()})}#O(){const t=this.#s.getQueryCache().build(this.#s,this.options);if(t===this.#t)return;const e=this.#t;this.#t=t,this.#i=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#E(t){I.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(this.#e)}),this.#s.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function et(t,e){return d(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function W(t,e){return et(t,e)||t.state.data!==void 0&&k(t,e,e.refetchOnMount)}function k(t,e,s){if(d(e.enabled,t)!==!1&&y(e.staleTime,t)!=="static"){const i=typeof s=="function"?s(t):s;return i==="always"||i!==!1&&U(t,e)}return!1}function z(t,e,s,i){return(t!==e||d(i.enabled,t)===!1)&&(!s.suspense||t.state.status!=="error")&&U(t,s)}function U(t,e){return d(e.enabled,t)!==!1&&t.isStaleByTime(y(e.staleTime,t))}function st(t,e){return!w(t.getCurrentResult(),e)}var it=class extends G{#s;#t=void 0;#i;#e;constructor(t,e){super(),this.#s=t,this.setOptions(e),this.bindMethods(),this.#r()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){const e=this.options;this.options=this.#s.defaultMutationOptions(t),w(this.options,e)||this.#s.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#i,observer:this}),e?.mutationKey&&this.options.mutationKey&&H(e.mutationKey)!==H(this.options.mutationKey)?this.reset():this.#i?.state.status==="pending"&&this.#i.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#i?.removeObserver(this)}onMutationUpdate(t){this.#r(),this.#a(t)}getCurrentResult(){return this.#t}reset(){this.#i?.removeObserver(this),this.#i=void 0,this.#r(),this.#a()}mutate(t,e){return this.#e=e,this.#i?.removeObserver(this),this.#i=this.#s.getMutationCache().build(this.#s,this.options),this.#i.addObserver(this),this.#i.execute(t)}#r(){const t=this.#i?.state??q();this.#t={...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset}}#a(t){I.batch(()=>{if(this.#e&&this.hasListeners()){const e=this.#t.variables,s=this.#t.context,i={client:this.#s,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#e.onSuccess?.(t.data,e,s,i)}catch(r){Promise.reject(r)}try{this.#e.onSettled?.(t.data,null,e,s,i)}catch(r){Promise.reject(r)}}else if(t?.type==="error"){try{this.#e.onError?.(t.error,e,s,i)}catch(r){Promise.reject(r)}try{this.#e.onSettled?.(void 0,t.error,e,s,i)}catch(r){Promise.reject(r)}}}this.listeners.forEach(e=>{e(this.#t)})})}},X=c.createContext(!1),rt=()=>c.useContext(X);X.Provider;function at(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}var nt=c.createContext(at()),ot=()=>c.useContext(nt),ht=(t,e,s)=>{const i=s?.state.error&&typeof t.throwOnError=="function"?_(t.throwOnError,[s.state.error,s]):t.throwOnError;(t.suspense||t.experimental_prefetchInRender||i)&&(e.isReset()||(t.retryOnMount=!1))},ct=t=>{c.useEffect(()=>{t.clearReset()},[t])},ut=({result:t,errorResetBoundary:e,throwOnError:s,query:i,suspense:r})=>t.isError&&!e.isReset()&&!t.isFetching&&i&&(r&&t.data===void 0||_(s,[t.error,i])),lt=t=>{if(t.suspense){const s=r=>r==="static"?r:Math.max(r??1e3,1e3),i=t.staleTime;t.staleTime=typeof i=="function"?(...r)=>s(i(...r)):s(i),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3))}},dt=(t,e)=>t.isLoading&&t.isFetching&&!e,ft=(t,e)=>t?.suspense&&e.isPending,V=(t,e,s)=>e.fetchOptimistic(t).catch(()=>{s.clearReset()});function pt(t,e,s){const i=rt(),r=ot(),u=J(),a=u.defaultQueryOptions(t);u.getDefaultOptions().queries?._experimental_beforeQuery?.(a);const f=u.getQueryCache().get(a.queryHash);a._optimisticResults=i?"isRestoring":"optimistic",lt(a),ht(a,r,f),ct(r);const v=!u.getQueryCache().get(a.queryHash),[h]=c.useState(()=>new e(u,a)),n=h.getOptimisticResult(a),b=!i&&t.subscribed!==!1;if(c.useSyncExternalStore(c.useCallback(o=>{const R=b?h.subscribe(I.batchCalls(o)):M;return h.updateResult(),R},[h,b]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),c.useEffect(()=>{h.setOptions(a)},[a,h]),ft(a,n))throw V(a,h,r);if(ut({result:n,errorResetBoundary:r,throwOnError:a.throwOnError,query:f,suspense:a.suspense}))throw n.error;return u.getDefaultOptions().queries?._experimental_afterQuery?.(a,n),a.experimental_prefetchInRender&&!P&&dt(n,i)&&(v?V(a,h,r):f?.promise)?.catch(M).finally(()=>{h.updateResult()}),a.notifyOnChangeProps?n:h.trackResult(n)}function bt(t,e){return pt(t,tt)}function gt(t,e){const s=J(),[i]=c.useState(()=>new it(s,t));c.useEffect(()=>{i.setOptions(t)},[i,t]);const r=c.useSyncExternalStore(c.useCallback(a=>i.subscribe(I.batchCalls(a)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),u=c.useCallback((a,f)=>{i.mutate(a,f).catch(M)},[i]);if(r.error&&_(i.options.throwOnError,[r.error]))throw r.error;return{...r,mutate:u,mutateAsync:r.mutate}}const yt={projects:{all:["projects"],list:t=>["projects","list",t],detail:t=>["projects","detail",t]},tasks:{all:["tasks"],list:(t,e)=>["tasks","list",t,e],detail:t=>["tasks","detail",t],stats:t=>["tasks","stats",t]},workspaces:{all:["workspaces"],list:t=>["workspaces","list",t],detail:t=>["workspaces","detail",t],diff:t=>["workspaces","diff",t],gitStatus:t=>["workspaces","gitStatus",t]},sessions:{all:["sessions"],detail:t=>["sessions","detail",t]},files:{all:["files"],tree:(t,e)=>["files","tree",t,e],content:(t,e)=>["files","content",t,e]},git:{all:["git"],changes:t=>["git","changes",t],diff:(t,e,s)=>["git","diff",t,e,s],log:t=>["git","log",t],commitFiles:(t,e)=>["git","commitFiles",t,e],commitDiff:(t,e,s)=>["git","commitDiff",t,e,s]},profiles:{all:["profiles"],defaults:["profiles","defaults"],agent:t=>["profiles","agent",t],variant:(t,e)=>["profiles","variant",t,e]},providers:{all:["providers"],detail:t=>["providers","detail",t]},tunnel:{status:["tunnel","status"]},notifications:{settings:["notifications","settings"]}};export{tt as Q,gt as a,rt as b,ot as c,ht as d,lt as e,ct as f,V as g,ut as h,pt as i,yt as q,ft as s,bt as u,dt as w};
1
+ import{a as G,p as K,b as d,d as w,e as y,n as M,f as P,h as A,t as Y,k as C,l as Z,m as $,o as B,q as I,v as H,w as q,r as c,x as _,u as J}from"./index-07aAg9ym.js";var tt=class extends G{constructor(t,e){super(),this.options=e,this.#s=t,this.#o=null,this.#n=K(),this.bindMethods(),this.setOptions(e)}#s;#t=void 0;#i=void 0;#e=void 0;#r;#a;#n;#o;#m;#d;#f;#c;#u;#h;#p=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),W(this.#t,this.options)?this.#l():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return k(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return k(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#R(),this.#S(),this.#t.removeObserver(this)}setOptions(t){const e=this.options,s=this.#t;if(this.options=this.#s.defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof d(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#O(),this.#t.setOptions(this.options),e._defaulted&&!w(this.options,e)&&this.#s.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const i=this.hasListeners();i&&z(this.#t,s,this.options,e)&&this.#l(),this.updateResult(),i&&(this.#t!==s||d(this.options.enabled,this.#t)!==d(e.enabled,this.#t)||y(this.options.staleTime,this.#t)!==y(e.staleTime,this.#t))&&this.#v();const r=this.#b();i&&(this.#t!==s||d(this.options.enabled,this.#t)!==d(e.enabled,this.#t)||r!==this.#h)&&this.#g(r)}getOptimisticResult(t){const e=this.#s.getQueryCache().build(this.#s,t),s=this.createResult(e,t);return st(this,s)&&(this.#e=s,this.#a=this.options,this.#r=this.#t.state),s}getCurrentResult(){return this.#e}trackResult(t,e){return new Proxy(t,{get:(s,i)=>(this.trackProp(i),e?.(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&this.#n.status==="pending"&&this.#n.reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(s,i))})}trackProp(t){this.#p.add(t)}getCurrentQuery(){return this.#t}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const e=this.#s.defaultQueryOptions(t),s=this.#s.getQueryCache().build(this.#s,e);return s.fetch().then(()=>this.createResult(s,e))}fetch(t){return this.#l({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#e))}#l(t){this.#O();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(M)),e}#v(){this.#R();const t=y(this.options.staleTime,this.#t);if(P||this.#e.isStale||!A(t))return;const s=Y(this.#e.dataUpdatedAt,t)+1;this.#c=C.setTimeout(()=>{this.#e.isStale||this.updateResult()},s)}#b(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#g(t){this.#S(),this.#h=t,!(P||d(this.options.enabled,this.#t)===!1||!A(this.#h)||this.#h===0)&&(this.#u=C.setInterval(()=>{(this.options.refetchIntervalInBackground||Z.isFocused())&&this.#l()},this.#h))}#y(){this.#v(),this.#g(this.#b())}#R(){this.#c&&(C.clearTimeout(this.#c),this.#c=void 0)}#S(){this.#u&&(C.clearInterval(this.#u),this.#u=void 0)}createResult(t,e){const s=this.#t,i=this.options,r=this.#e,u=this.#r,a=this.#a,v=t!==s?t.state:this.#i,{state:h}=t;let n={...h},b=!1,o;if(e._optimisticResults){const l=this.hasListeners(),g=!l&&W(t,e),S=l&&z(t,s,e,i);(g||S)&&(n={...n,...$(h.data,t.options)}),e._optimisticResults==="isRestoring"&&(n.fetchStatus="idle")}let{error:R,errorUpdatedAt:D,status:m}=n;o=n.data;let F=!1;if(e.placeholderData!==void 0&&o===void 0&&m==="pending"){let l;r?.isPlaceholderData&&e.placeholderData===a?.placeholderData?(l=r.data,F=!0):l=typeof e.placeholderData=="function"?e.placeholderData(this.#f?.state.data,this.#f):e.placeholderData,l!==void 0&&(m="success",o=B(r?.data,l,e),b=!0)}if(e.select&&o!==void 0&&!F)if(r&&o===u?.data&&e.select===this.#m)o=this.#d;else try{this.#m=e.select,o=e.select(o),o=B(r?.data,o,e),this.#d=o,this.#o=null}catch(l){this.#o=l}this.#o&&(R=this.#o,o=this.#d,D=Date.now(),m="error");const T=n.fetchStatus==="fetching",x=m==="pending",Q=m==="error",j=x&&T,L=o!==void 0,p={status:m,fetchStatus:n.fetchStatus,isPending:x,isSuccess:m==="success",isError:Q,isInitialLoading:j,isLoading:j,data:o,dataUpdatedAt:n.dataUpdatedAt,error:R,errorUpdatedAt:D,failureCount:n.fetchFailureCount,failureReason:n.fetchFailureReason,errorUpdateCount:n.errorUpdateCount,isFetched:n.dataUpdateCount>0||n.errorUpdateCount>0,isFetchedAfterMount:n.dataUpdateCount>v.dataUpdateCount||n.errorUpdateCount>v.errorUpdateCount,isFetching:T,isRefetching:T&&!x,isLoadingError:Q&&!L,isPaused:n.fetchStatus==="paused",isPlaceholderData:b,isRefetchError:Q&&L,isStale:U(t,e),refetch:this.refetch,promise:this.#n,isEnabled:d(e.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const l=p.data!==void 0,g=p.status==="error"&&!l,S=E=>{g?E.reject(p.error):l&&E.resolve(p.data)},N=()=>{const E=this.#n=p.promise=K();S(E)},O=this.#n;switch(O.status){case"pending":t.queryHash===s.queryHash&&S(O);break;case"fulfilled":(g||p.data!==O.value)&&N();break;case"rejected":(!g||p.error!==O.reason)&&N();break}}return p}updateResult(){const t=this.#e,e=this.createResult(this.#t,this.options);if(this.#r=this.#t.state,this.#a=this.options,this.#r.data!==void 0&&(this.#f=this.#t),w(e,t))return;this.#e=e;const s=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,r=typeof i=="function"?i():i;if(r==="all"||!r&&!this.#p.size)return!0;const u=new Set(r??this.#p);return this.options.throwOnError&&u.add("error"),Object.keys(this.#e).some(a=>{const f=a;return this.#e[f]!==t[f]&&u.has(f)})};this.#E({listeners:s()})}#O(){const t=this.#s.getQueryCache().build(this.#s,this.options);if(t===this.#t)return;const e=this.#t;this.#t=t,this.#i=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#E(t){I.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(this.#e)}),this.#s.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function et(t,e){return d(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function W(t,e){return et(t,e)||t.state.data!==void 0&&k(t,e,e.refetchOnMount)}function k(t,e,s){if(d(e.enabled,t)!==!1&&y(e.staleTime,t)!=="static"){const i=typeof s=="function"?s(t):s;return i==="always"||i!==!1&&U(t,e)}return!1}function z(t,e,s,i){return(t!==e||d(i.enabled,t)===!1)&&(!s.suspense||t.state.status!=="error")&&U(t,s)}function U(t,e){return d(e.enabled,t)!==!1&&t.isStaleByTime(y(e.staleTime,t))}function st(t,e){return!w(t.getCurrentResult(),e)}var it=class extends G{#s;#t=void 0;#i;#e;constructor(t,e){super(),this.#s=t,this.setOptions(e),this.bindMethods(),this.#r()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){const e=this.options;this.options=this.#s.defaultMutationOptions(t),w(this.options,e)||this.#s.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#i,observer:this}),e?.mutationKey&&this.options.mutationKey&&H(e.mutationKey)!==H(this.options.mutationKey)?this.reset():this.#i?.state.status==="pending"&&this.#i.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#i?.removeObserver(this)}onMutationUpdate(t){this.#r(),this.#a(t)}getCurrentResult(){return this.#t}reset(){this.#i?.removeObserver(this),this.#i=void 0,this.#r(),this.#a()}mutate(t,e){return this.#e=e,this.#i?.removeObserver(this),this.#i=this.#s.getMutationCache().build(this.#s,this.options),this.#i.addObserver(this),this.#i.execute(t)}#r(){const t=this.#i?.state??q();this.#t={...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset}}#a(t){I.batch(()=>{if(this.#e&&this.hasListeners()){const e=this.#t.variables,s=this.#t.context,i={client:this.#s,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#e.onSuccess?.(t.data,e,s,i)}catch(r){Promise.reject(r)}try{this.#e.onSettled?.(t.data,null,e,s,i)}catch(r){Promise.reject(r)}}else if(t?.type==="error"){try{this.#e.onError?.(t.error,e,s,i)}catch(r){Promise.reject(r)}try{this.#e.onSettled?.(void 0,t.error,e,s,i)}catch(r){Promise.reject(r)}}}this.listeners.forEach(e=>{e(this.#t)})})}},X=c.createContext(!1),rt=()=>c.useContext(X);X.Provider;function at(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}var nt=c.createContext(at()),ot=()=>c.useContext(nt),ht=(t,e,s)=>{const i=s?.state.error&&typeof t.throwOnError=="function"?_(t.throwOnError,[s.state.error,s]):t.throwOnError;(t.suspense||t.experimental_prefetchInRender||i)&&(e.isReset()||(t.retryOnMount=!1))},ct=t=>{c.useEffect(()=>{t.clearReset()},[t])},ut=({result:t,errorResetBoundary:e,throwOnError:s,query:i,suspense:r})=>t.isError&&!e.isReset()&&!t.isFetching&&i&&(r&&t.data===void 0||_(s,[t.error,i])),lt=t=>{if(t.suspense){const s=r=>r==="static"?r:Math.max(r??1e3,1e3),i=t.staleTime;t.staleTime=typeof i=="function"?(...r)=>s(i(...r)):s(i),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3))}},dt=(t,e)=>t.isLoading&&t.isFetching&&!e,ft=(t,e)=>t?.suspense&&e.isPending,V=(t,e,s)=>e.fetchOptimistic(t).catch(()=>{s.clearReset()});function pt(t,e,s){const i=rt(),r=ot(),u=J(),a=u.defaultQueryOptions(t);u.getDefaultOptions().queries?._experimental_beforeQuery?.(a);const f=u.getQueryCache().get(a.queryHash);a._optimisticResults=i?"isRestoring":"optimistic",lt(a),ht(a,r,f),ct(r);const v=!u.getQueryCache().get(a.queryHash),[h]=c.useState(()=>new e(u,a)),n=h.getOptimisticResult(a),b=!i&&t.subscribed!==!1;if(c.useSyncExternalStore(c.useCallback(o=>{const R=b?h.subscribe(I.batchCalls(o)):M;return h.updateResult(),R},[h,b]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),c.useEffect(()=>{h.setOptions(a)},[a,h]),ft(a,n))throw V(a,h,r);if(ut({result:n,errorResetBoundary:r,throwOnError:a.throwOnError,query:f,suspense:a.suspense}))throw n.error;return u.getDefaultOptions().queries?._experimental_afterQuery?.(a,n),a.experimental_prefetchInRender&&!P&&dt(n,i)&&(v?V(a,h,r):f?.promise)?.catch(M).finally(()=>{h.updateResult()}),a.notifyOnChangeProps?n:h.trackResult(n)}function bt(t,e){return pt(t,tt)}function gt(t,e){const s=J(),[i]=c.useState(()=>new it(s,t));c.useEffect(()=>{i.setOptions(t)},[i,t]);const r=c.useSyncExternalStore(c.useCallback(a=>i.subscribe(I.batchCalls(a)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),u=c.useCallback((a,f)=>{i.mutate(a,f).catch(M)},[i]);if(r.error&&_(i.options.throwOnError,[r.error]))throw r.error;return{...r,mutate:u,mutateAsync:r.mutate}}const yt={projects:{all:["projects"],list:t=>["projects","list",t],detail:t=>["projects","detail",t]},tasks:{all:["tasks"],list:(t,e)=>["tasks","list",t,e],detail:t=>["tasks","detail",t],stats:t=>["tasks","stats",t]},workspaces:{all:["workspaces"],list:t=>["workspaces","list",t],detail:t=>["workspaces","detail",t],diff:t=>["workspaces","diff",t],gitStatus:t=>["workspaces","gitStatus",t]},sessions:{all:["sessions"],detail:t=>["sessions","detail",t]},files:{all:["files"],tree:(t,e)=>["files","tree",t,e],content:(t,e)=>["files","content",t,e]},git:{all:["git"],changes:t=>["git","changes",t],diff:(t,e,s)=>["git","diff",t,e,s],log:t=>["git","log",t],commitFiles:(t,e)=>["git","commitFiles",t,e],commitDiff:(t,e,s)=>["git","commitDiff",t,e,s]},profiles:{all:["profiles"],defaults:["profiles","defaults"],agent:t=>["profiles","agent",t],variant:(t,e)=>["profiles","variant",t,e]},providers:{all:["providers"],detail:t=>["providers","detail",t]},tunnel:{status:["tunnel","status"]},notifications:{settings:["notifications","settings"]}};export{tt as Q,gt as a,rt as b,ot as c,ht as d,lt as e,ct as f,V as g,ut as h,pt as i,yt as q,ft as s,bt as u,dt as w};
@@ -1 +1 @@
1
- import{r as n,j as t}from"./index-yP6NT0d4.js";import{c as r}from"./api-client-DEke6rQ4.js";import{C as h,a as p}from"./chevron-down-CpFVmwPg.js";function j({value:l,onChange:i,options:o,placeholder:d="Select...",disabled:m=!1,className:f}){const[s,a]=n.useState(!1),c=n.useRef(null),u=o.find(e=>e.value===l);n.useEffect(()=>{if(!s)return;const e=b=>{c.current&&!c.current.contains(b.target)&&a(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[s]);const x=n.useCallback(e=>{e.key==="Escape"&&a(!1)},[]);return t.jsxs("div",{ref:c,className:r("relative",f),onKeyDown:x,children:[t.jsxs("button",{type:"button",disabled:m,onClick:()=>a(e=>!e),className:r("flex items-center justify-between w-full h-9 px-3 border rounded-lg text-sm transition-colors","bg-white border-neutral-200 hover:border-neutral-300","focus:outline-none focus:border-neutral-400","disabled:opacity-50 disabled:cursor-not-allowed",s&&"border-neutral-400",!u&&"text-neutral-400"),children:[t.jsx("span",{className:"truncate",children:u?u.label:d}),t.jsx(h,{size:14,className:r("ml-2 shrink-0 text-neutral-400 transition-transform duration-150",s&&"rotate-180")})]}),s&&t.jsx("div",{className:"absolute z-50 mt-1 w-full min-w-[160px] bg-white border border-neutral-200 rounded-lg shadow-lg shadow-neutral-200/50 py-1 max-h-[200px] overflow-y-auto",children:o.length===0?t.jsx("div",{className:"px-3 py-2 text-sm text-neutral-400",children:"No options"}):o.map(e=>t.jsxs("button",{type:"button",disabled:e.disabled,onClick:()=>{i(e.value),a(!1)},className:r("flex items-center w-full px-3 py-1.5 text-sm text-left transition-colors","hover:bg-neutral-50",e.value===l?"text-neutral-900 font-medium":"text-neutral-600",e.disabled&&"opacity-40 cursor-not-allowed"),children:[t.jsx(p,{size:14,className:r("mr-2 shrink-0",e.value===l?"opacity-100":"opacity-0")}),t.jsx("span",{className:"truncate",children:e.label})]},e.value))})]})}export{j as S};
1
+ import{r as n,j as t}from"./index-07aAg9ym.js";import{c as r}from"./api-client-DFUgF1Wk.js";import{C as h,a as p}from"./chevron-down-CnBRB9Kw.js";function j({value:l,onChange:i,options:o,placeholder:d="Select...",disabled:m=!1,className:f}){const[s,a]=n.useState(!1),c=n.useRef(null),u=o.find(e=>e.value===l);n.useEffect(()=>{if(!s)return;const e=b=>{c.current&&!c.current.contains(b.target)&&a(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[s]);const x=n.useCallback(e=>{e.key==="Escape"&&a(!1)},[]);return t.jsxs("div",{ref:c,className:r("relative",f),onKeyDown:x,children:[t.jsxs("button",{type:"button",disabled:m,onClick:()=>a(e=>!e),className:r("flex items-center justify-between w-full h-9 px-3 border rounded-lg text-sm transition-colors","bg-white border-neutral-200 hover:border-neutral-300","focus:outline-none focus:border-neutral-400","disabled:opacity-50 disabled:cursor-not-allowed",s&&"border-neutral-400",!u&&"text-neutral-400"),children:[t.jsx("span",{className:"truncate",children:u?u.label:d}),t.jsx(h,{size:14,className:r("ml-2 shrink-0 text-neutral-400 transition-transform duration-150",s&&"rotate-180")})]}),s&&t.jsx("div",{className:"absolute z-50 mt-1 w-full min-w-[160px] bg-white border border-neutral-200 rounded-lg shadow-lg shadow-neutral-200/50 py-1 max-h-[200px] overflow-y-auto",children:o.length===0?t.jsx("div",{className:"px-3 py-2 text-sm text-neutral-400",children:"No options"}):o.map(e=>t.jsxs("button",{type:"button",disabled:e.disabled,onClick:()=>{i(e.value),a(!1)},className:r("flex items-center w-full px-3 py-1.5 text-sm text-left transition-colors","hover:bg-neutral-50",e.value===l?"text-neutral-900 font-medium":"text-neutral-600",e.disabled&&"opacity-40 cursor-not-allowed"),children:[t.jsx(p,{size:14,className:r("mr-2 shrink-0",e.value===l?"opacity-100":"opacity-0")}),t.jsx("span",{className:"truncate",children:e.label})]},e.value))})]})}export{j as S};
@@ -1 +1 @@
1
- import{u as i,a as n,q as r}from"./query-keys-DfqkAgsV.js";import{u as a}from"./index-yP6NT0d4.js";import{a as u}from"./api-client-DEke6rQ4.js";function y(){return i({queryKey:r.profiles.all,queryFn:()=>u.get("/profiles")})}function c(){return i({queryKey:r.profiles.defaults,queryFn:()=>u.get("/profiles/defaults")})}function q(e){return i({queryKey:r.profiles.agent(e),queryFn:()=>u.get(`/profiles/${e}`),enabled:!!e})}function d(){const e=a();return n({mutationFn:({agentType:s,variant:t,config:o})=>u.put(`/profiles/${s}/${t}`,o),onSuccess:()=>{e.invalidateQueries({queryKey:r.profiles.all})}})}function m(){const e=a();return n({mutationFn:({agentType:s,variant:t})=>u.delete(`/profiles/${s}/${t}`),onSuccess:()=>{e.invalidateQueries({queryKey:r.profiles.all})}})}export{c as a,d as b,m as c,q as d,y as u};
1
+ import{u as i,a as n,q as r}from"./query-keys-B6523SEW.js";import{u as a}from"./index-07aAg9ym.js";import{a as u}from"./api-client-DFUgF1Wk.js";function y(){return i({queryKey:r.profiles.all,queryFn:()=>u.get("/profiles")})}function c(){return i({queryKey:r.profiles.defaults,queryFn:()=>u.get("/profiles/defaults")})}function q(e){return i({queryKey:r.profiles.agent(e),queryFn:()=>u.get(`/profiles/${e}`),enabled:!!e})}function d(){const e=a();return n({mutationFn:({agentType:s,variant:t,config:o})=>u.put(`/profiles/${s}/${t}`,o),onSuccess:()=>{e.invalidateQueries({queryKey:r.profiles.all})}})}function m(){const e=a();return n({mutationFn:({agentType:s,variant:t})=>u.delete(`/profiles/${s}/${t}`),onSuccess:()=>{e.invalidateQueries({queryKey:r.profiles.all})}})}export{c as a,d as b,m as c,q as d,y as u};
@@ -1 +1 @@
1
- import{c as u,u as n}from"./index-yP6NT0d4.js";import{u as i,a as o,q as a}from"./query-keys-DfqkAgsV.js";import{a as r}from"./api-client-DEke6rQ4.js";const c=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],j=u("file",c);const l=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],f=u("folder",l);function m(e){const t={};return e?.page!=null&&(t.page=String(e.page)),e?.limit!=null&&(t.limit=String(e.limit)),i({queryKey:a.projects.list(e),queryFn:()=>r.get("/projects",{params:t})})}function q(e){return i({queryKey:a.projects.detail(e),queryFn:()=>r.get(`/projects/${e}`),enabled:!!e})}function g(){const e=n();return o({mutationFn:t=>r.post("/projects",t),onSuccess:()=>{e.invalidateQueries({queryKey:a.projects.all})}})}function F(){const e=n();return o({mutationFn:({id:t,...s})=>r.put(`/projects/${t}`,s),onSuccess:(t,s)=>{e.invalidateQueries({queryKey:a.projects.all}),e.invalidateQueries({queryKey:a.projects.detail(s.id)})}})}export{f as F,j as a,F as b,q as c,g as d,m as u};
1
+ import{c as u,u as n}from"./index-07aAg9ym.js";import{u as i,a as o,q as a}from"./query-keys-B6523SEW.js";import{a as r}from"./api-client-DFUgF1Wk.js";const c=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],j=u("file",c);const l=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],f=u("folder",l);function m(e){const t={};return e?.page!=null&&(t.page=String(e.page)),e?.limit!=null&&(t.limit=String(e.limit)),i({queryKey:a.projects.list(e),queryFn:()=>r.get("/projects",{params:t})})}function q(e){return i({queryKey:a.projects.detail(e),queryFn:()=>r.get(`/projects/${e}`),enabled:!!e})}function g(){const e=n();return o({mutationFn:t=>r.post("/projects",t),onSuccess:()=>{e.invalidateQueries({queryKey:a.projects.all})}})}function F(){const e=n();return o({mutationFn:({id:t,...s})=>r.put(`/projects/${t}`,s),onSuccess:(t,s)=>{e.invalidateQueries({queryKey:a.projects.all}),e.invalidateQueries({queryKey:a.projects.detail(s.id)})}})}export{f as F,j as a,F as b,q as c,g as d,m as u};
@@ -1 +1 @@
1
- import{u as c,a as n,q as E}from"./query-keys-DfqkAgsV.js";import{u as o}from"./index-yP6NT0d4.js";import{a as i}from"./api-client-DEke6rQ4.js";var u;(function(r){r.TODO="TODO",r.IN_PROGRESS="IN_PROGRESS",r.IN_REVIEW="IN_REVIEW",r.DONE="DONE",r.CANCELLED="CANCELLED"})(u||(u={}));var C;(function(r){r.ACTIVE="ACTIVE",r.MERGED="MERGED",r.ABANDONED="ABANDONED"})(C||(C={}));var a;(function(r){r.CLAUDE_CODE="CLAUDE_CODE",r.GEMINI_CLI="GEMINI_CLI",r.CURSOR_AGENT="CURSOR_AGENT",r.CODEX="CODEX"})(a||(a={}));var N;(function(r){r.PENDING="PENDING",r.RUNNING="RUNNING",r.COMPLETED="COMPLETED",r.FAILED="FAILED",r.CANCELLED="CANCELLED"})(N||(N={}));var D;(function(r){r.CHAT="CHAT",r.COMMIT_MSG="COMMIT_MSG"})(D||(D={}));var s;(function(r){r.REBASE="REBASE",r.MERGE="MERGE"})(s||(s={}));function A(){return c({queryKey:E.providers.all,queryFn:()=>i.get("/providers")})}function R(){const r=o();return n({mutationFn:e=>i.post("/providers",e),onSuccess:()=>{r.invalidateQueries({queryKey:E.providers.all})}})}function d(){const r=o();return n({mutationFn:({id:e,data:t})=>i.put(`/providers/${e}`,t),onSuccess:()=>{r.invalidateQueries({queryKey:E.providers.all})}})}function G(){const r=o();return n({mutationFn:e=>i.delete(`/providers/${e}`),onSuccess:()=>{r.invalidateQueries({queryKey:E.providers.all})}})}export{a as A,s as C,N as S,u as T,R as a,d as b,G as c,A as u};
1
+ import{u as c,a as n,q as E}from"./query-keys-B6523SEW.js";import{u as o}from"./index-07aAg9ym.js";import{a as i}from"./api-client-DFUgF1Wk.js";var u;(function(r){r.TODO="TODO",r.IN_PROGRESS="IN_PROGRESS",r.IN_REVIEW="IN_REVIEW",r.DONE="DONE",r.CANCELLED="CANCELLED"})(u||(u={}));var C;(function(r){r.ACTIVE="ACTIVE",r.MERGED="MERGED",r.ABANDONED="ABANDONED"})(C||(C={}));var a;(function(r){r.CLAUDE_CODE="CLAUDE_CODE",r.GEMINI_CLI="GEMINI_CLI",r.CURSOR_AGENT="CURSOR_AGENT",r.CODEX="CODEX"})(a||(a={}));var N;(function(r){r.PENDING="PENDING",r.RUNNING="RUNNING",r.COMPLETED="COMPLETED",r.FAILED="FAILED",r.CANCELLED="CANCELLED"})(N||(N={}));var D;(function(r){r.CHAT="CHAT",r.COMMIT_MSG="COMMIT_MSG"})(D||(D={}));var s;(function(r){r.REBASE="REBASE",r.MERGE="MERGE"})(s||(s={}));function A(){return c({queryKey:E.providers.all,queryFn:()=>i.get("/providers")})}function R(){const r=o();return n({mutationFn:e=>i.post("/providers",e),onSuccess:()=>{r.invalidateQueries({queryKey:E.providers.all})}})}function d(){const r=o();return n({mutationFn:({id:e,data:t})=>i.put(`/providers/${e}`,t),onSuccess:()=>{r.invalidateQueries({queryKey:E.providers.all})}})}function G(){const r=o();return n({mutationFn:e=>i.delete(`/providers/${e}`),onSuccess:()=>{r.invalidateQueries({queryKey:E.providers.all})}})}export{a as A,s as C,N as S,u as T,R as a,d as b,G as c,A as u};
@@ -1 +1 @@
1
- import{c as o}from"./index-yP6NT0d4.js";const e=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],s=o("plus",e);const t=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],a=o("x",t);export{s as P,a as X};
1
+ import{c as o}from"./index-07aAg9ym.js";const e=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],s=o("plus",e);const t=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],a=o("x",t);export{s as P,a as X};
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
7
7
  <title>web</title>
8
- <script type="module" crossorigin src="/assets/index-yP6NT0d4.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-07aAg9ym.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-Bdp1rkP7.css">
10
10
  </head>
11
11
  <body>
@@ -45,8 +45,8 @@ export interface Provider {
45
45
  agentType: AgentType | string;
46
46
  env: Record<string, string>;
47
47
  config: Record<string, unknown>;
48
- /** CLI 原生配置(如 Claude Code settings.json 覆盖) */
49
- settings?: Record<string, unknown>;
48
+ /** CLI 原生配置字符串(Claude Code: JSON, Codex: TOML) */
49
+ settings?: string;
50
50
  isDefault: boolean;
51
51
  builtIn?: boolean;
52
52
  createdAt?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-tower",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "AI Agent Task Management Dashboard",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -32,6 +32,7 @@
32
32
  "fastify": "^4.26.0",
33
33
  "node-pty": "^1.0.0",
34
34
  "simple-git": "^3.22.0",
35
+ "smol-toml": "^1.6.0",
35
36
  "socket.io": "^4.8.3",
36
37
  "zod": "^3.22.4",
37
38
  "prisma": "^5.9.1"
@@ -1 +0,0 @@
1
- import{c as T,r as h,j as e}from"./index-yP6NT0d4.js";import{u as A,a as O,b as _,c as S,A as x}from"./use-providers-Ce2CzdA7.js";import{B as N}from"./api-client-DEke6rQ4.js";import{T as I,M as L}from"./modal-Cm1qLsdb.js";import{S as k}from"./select-Dchwldvd.js";import"./log-adapter-50wgehrc.js";import{P as w}from"./x-C1fyolLz.js";import{P as U}from"./pencil-BJvmRaTF.js";import{C as F}from"./circle-check-BPbbKebL.js";import{C as G}from"./chevron-down-CpFVmwPg.js";import"./query-keys-DfqkAgsV.js";const R=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],M=T("circle-x",R),E={CLAUDE_CODE:"Claude Code",GEMINI_CLI:"Gemini CLI",CURSOR_AGENT:"Cursor Agent",CODEX:"Codex"},f={key:"appendPrompt",label:"追加 Prompt",type:"textarea",rows:3,placeholder:"追加到每次 prompt 末尾的文本"},D={[x.CLAUDE_CODE]:[{key:"dangerouslySkipPermissions",label:"跳过权限确认",type:"switch"},{key:"model",label:"模型",type:"input",placeholder:"claude-sonnet-4-20250514"},f],[x.GEMINI_CLI]:[{key:"yolo",label:"跳过权限确认",type:"switch"},{key:"model",label:"模型",type:"input",placeholder:"gemini-2.5-pro"},f],[x.CURSOR_AGENT]:[{key:"force",label:"强制执行",type:"switch"},{key:"model",label:"模型",type:"select",options:[{value:"",label:"默认 (auto)"},{value:"claude-sonnet-4-20250514",label:"Claude Sonnet 4"},{value:"claude-sonnet-4-5-20250514",label:"Claude Sonnet 4.5"},{value:"gpt-4o",label:"GPT-4o"}]},f],[x.CODEX]:[{key:"fullAuto",label:"全自动模式",type:"switch"},{key:"model",label:"模型",type:"input",placeholder:"o3"},f]},v=JSON.stringify({env:{ANTHROPIC_API_KEY:"",ANTHROPIC_BASE_URL:""}},null,2),z=Object.values(D).flat().reduce((l,o)=>(l[o.key]||(l[o.key]=o.label),l),{});function B(l){return typeof l=="boolean"?l?"是":"否":typeof l=="string"&&l?l:String(l)}function H({type:l}){return l==="LOGIN_DETECTED"||l==="INSTALLATION_FOUND"?e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs text-green-700 bg-green-50 rounded",children:[e.jsx(F,{size:12}),"可用"]}):e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs text-neutral-500 bg-neutral-50 rounded",children:[e.jsx(M,{size:12}),"不可用"]})}function C({title:l,defaultOpen:o=!1,children:c}){const[d,a]=h.useState(o);return e.jsxs("div",{className:"border border-neutral-200 rounded-lg",children:[e.jsxs("button",{type:"button",onClick:()=>a(t=>!t),className:"w-full flex items-center justify-between px-4 py-2.5 text-sm font-medium text-neutral-700 hover:bg-neutral-50 transition-colors rounded-lg",children:[l,e.jsx(G,{size:14,className:`transition-transform ${d?"rotate-180":""}`})]}),d&&e.jsx("div",{className:"px-4 pb-4 space-y-3",children:c})]})}function J({agentType:l,config:o,onChange:c}){const d=D[l]??[];if(d.length===0)return e.jsx("p",{className:"text-xs text-neutral-400",children:"该类型暂无运行配置"});const a=(t,i)=>{c({...o,[t]:i})};return e.jsx("div",{className:"space-y-3",children:d.map(t=>t.type==="textarea"?e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm text-neutral-700 mb-1",children:t.label}),e.jsx("textarea",{value:o[t.key]??"",onChange:i=>a(t.key,i.target.value||void 0),placeholder:t.placeholder,rows:t.rows??3,className:"w-full px-3 py-1.5 text-sm border border-neutral-200 rounded focus:outline-none focus:ring-1 focus:ring-neutral-900"})]},t.key):e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("label",{className:"text-sm text-neutral-700 w-32 shrink-0",children:t.label}),t.type==="switch"&&e.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:!!o[t.key],onChange:i=>a(t.key,i.target.checked),className:"sr-only peer"}),e.jsx("div",{className:"w-9 h-5 bg-neutral-200 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-neutral-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-neutral-900"})]}),t.type==="input"&&e.jsx("input",{type:"text",value:o[t.key]??"",onChange:i=>a(t.key,i.target.value||void 0),placeholder:t.placeholder,className:"flex-1 px-3 py-1.5 text-sm border border-neutral-200 rounded focus:outline-none focus:ring-1 focus:ring-neutral-900"}),t.type==="select"&&t.options&&e.jsx(k,{value:o[t.key]??"",onChange:i=>a(t.key,i||void 0),options:t.options,placeholder:"选择..."})]},t.key))})}function X({isOpen:l,onClose:o,initialData:c,onSave:d}){const[a,t]=h.useState(c??{name:"",agentType:x.CLAUDE_CODE,config:{},settings:"",isDefault:!1}),[i,m]=h.useState("");h.useEffect(()=>{!c&&a.agentType===x.CLAUDE_CODE&&!a.settings&&t(r=>({...r,settings:v}))},[]);const b=r=>{t(n=>({...n,agentType:r,config:{},settings:r===x.CLAUDE_CODE?v:""}))},j=()=>{m("");const r={};for(const[g,u]of Object.entries(a.config))u!==void 0&&u!==""&&(r[g]=u);let n;const s=a.settings.trim();if(s)try{n=JSON.parse(s)}catch{m("JSON 语法错误");return}const p={name:a.name,agentType:a.agentType,config:r,settings:n,isDefault:a.isDefault};d(p)};if(!l)return null;const y=a.agentType===x.CLAUDE_CODE;return e.jsx(L,{isOpen:l,onClose:o,title:c?"编辑 Provider":"新建 Provider",className:"max-w-2xl",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-neutral-700 mb-1",children:"名称"}),e.jsx("input",{type:"text",value:a.name,onChange:r=>t(n=>({...n,name:r.target.value})),className:"w-full px-3 py-2 text-sm border border-neutral-200 rounded focus:outline-none focus:ring-1 focus:ring-neutral-900",placeholder:"例如: Claude Code (官方)"})]}),!c&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-neutral-700 mb-1",children:"Agent 类型"}),e.jsx(k,{value:a.agentType,onChange:r=>b(r),options:Object.values(x).map(r=>({value:r,label:E[r]??r})),placeholder:"选择 Agent 类型"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"checkbox",id:"isDefault",checked:a.isDefault,onChange:r=>t(n=>({...n,isDefault:r.target.checked})),className:"w-4 h-4"}),e.jsx("label",{htmlFor:"isDefault",className:"text-sm text-neutral-700",children:"设为该类型的默认 Provider"})]}),e.jsx(C,{title:"运行配置",defaultOpen:!0,children:e.jsx(J,{agentType:a.agentType,config:a.config,onChange:r=>t(n=>({...n,config:r}))})}),y&&e.jsxs(C,{title:"CLI 原生配置 (settings.json)",children:[e.jsxs("p",{className:"text-xs text-neutral-500 mb-2",children:["对应 Claude Code 的 ",e.jsx("code",{className:"bg-neutral-100 px-1 rounded",children:"~/.claude/settings.json"}),", 通过 ",e.jsx("code",{className:"bg-neutral-100 px-1 rounded",children:"--settings"})," 参数注入。 在 ",e.jsx("code",{className:"bg-neutral-100 px-1 rounded",children:"env"})," 中设置 ANTHROPIC_API_KEY、ANTHROPIC_BASE_URL 等。"]}),e.jsx("textarea",{value:a.settings,onChange:r=>{t(n=>({...n,settings:r.target.value})),m("")},rows:10,className:"w-full px-3 py-2 text-sm font-mono border border-neutral-200 rounded focus:outline-none focus:ring-1 focus:ring-neutral-900 bg-neutral-50",placeholder:v}),i&&e.jsx("p",{className:"mt-1 text-xs text-red-600",children:i})]}),e.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[e.jsx(N,{variant:"outline",onClick:o,children:"取消"}),e.jsx(N,{onClick:j,disabled:!a.name.trim(),children:"保存"})]})]})})}function ne(){const{data:l,isLoading:o}=A(),c=O(),d=_(),a=S(),[t,i]=h.useState(null),m=n=>{c.mutate(n,{onSuccess:()=>i(null)})},b=(n,s)=>{d.mutate({id:n,data:s},{onSuccess:()=>i(null)})},j=(n,s,p)=>{if(p){alert("内置 Provider 不可删除");return}confirm(`确定删除 "${s}"?`)&&a.mutate(n)},y=n=>{const s=n.provider;i({id:s.id,data:{name:s.name,agentType:s.agentType,config:{...s.config},settings:s.settings?JSON.stringify(s.settings,null,2):"",isDefault:s.isDefault}})};if(o)return e.jsx("div",{className:"p-6 text-sm text-neutral-400",children:"加载中..."});const r=l??[];return e.jsxs("div",{className:"px-10 py-6 mx-auto w-full max-w-4xl",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-neutral-900",children:"Provider 配置"}),e.jsx("p",{className:"text-sm text-neutral-500 mt-1",children:"管理 AI Agent 的连接配置和运行参数"})]}),e.jsxs(N,{onClick:()=>i({}),children:[e.jsx(w,{size:14,className:"mr-1"}),"新建 Provider"]})]}),r.length===0?e.jsx("div",{className:"text-center py-12 text-sm text-neutral-400",children:"暂无 Provider 配置"}):e.jsx("div",{className:"space-y-3",children:r.map(n=>{const s=n.provider,p=n.availability,g=Object.entries(s.config).filter(([u])=>u!=="cmd");return e.jsx("div",{className:"border border-neutral-200 rounded-lg p-4 hover:border-neutral-300 transition-colors",children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h3",{className:"text-sm font-medium text-neutral-900",children:s.name}),e.jsx(H,{type:p.type}),s.isDefault&&e.jsx("span",{className:"px-2 py-0.5 text-xs text-blue-700 bg-blue-50 rounded",children:"默认"}),s.builtIn&&e.jsx("span",{className:"px-2 py-0.5 text-xs text-neutral-500 bg-neutral-50 rounded",children:"内置"})]}),e.jsx("p",{className:"text-xs text-neutral-500 mb-2",children:E[s.agentType]??s.agentType}),g.length>0&&e.jsx("div",{className:"text-xs text-neutral-600 mb-1",children:g.map(([u,P])=>e.jsxs("span",{className:"inline-flex items-center mr-3",children:[e.jsxs("span",{className:"font-medium",children:[z[u]??u,":"]})," ",B(P)]},u))}),s.settings&&Object.keys(s.settings).length>0&&e.jsxs("div",{className:"text-xs text-neutral-600",children:[e.jsx("span",{className:"font-medium",children:"CLI 配置:"})," 已配置"]}),Object.keys(s.env).length>0&&!s.settings&&e.jsxs("div",{className:"text-xs text-neutral-600",children:[e.jsx("span",{className:"font-medium",children:"环境变量:"})," ",Object.keys(s.env).join(", ")]})]}),e.jsxs("div",{className:"flex items-center gap-1 ml-4",children:[e.jsx("button",{onClick:()=>y(n),className:"p-2 text-neutral-400 hover:text-neutral-900 transition-colors",title:"编辑",children:e.jsx(U,{size:14})}),e.jsx("button",{onClick:()=>j(s.id,s.name,s.builtIn),className:"p-2 text-neutral-400 hover:text-red-600 transition-colors",title:"删除",disabled:s.builtIn,children:e.jsx(I,{size:14})})]})]})},s.id)})}),t&&e.jsx(X,{isOpen:!0,onClose:()=>i(null),initialData:t.data,onSave:n=>{t.id?b(t.id,n):m(n)}})]})}export{ne as ProviderSettingsPage};