opencami 1.8.7 → 1.8.8
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/README.md +0 -1
- package/dist/client/assets/{CSPContext-KDlbpvjX.js → CSPContext-nHSyQniZ.js} +1 -1
- package/dist/client/assets/{DirectionContext-DZNUWW6F.js → DirectionContext-B1cuzwIr.js} +1 -1
- package/dist/client/assets/_sessionKey-CNw4O2rY.js +19 -0
- package/dist/client/assets/agents-C6Ev94B1.js +2 -0
- package/dist/client/assets/agents-screen-DpNSh5Ok.js +1 -0
- package/dist/client/assets/bots-B2_u-OmP.js +2 -0
- package/dist/client/assets/{bots-screen-CvbAVMk0.js → bots-screen-Qh_IK9hC.js} +1 -1
- package/dist/client/assets/button-DdG8c-XQ.js +1 -0
- package/dist/client/assets/{composite-t7Eu0qB0.js → composite-Cx-QHT9o.js} +1 -1
- package/dist/client/assets/{connect-Btonx7l6.js → connect-CSbeSBTn.js} +1 -1
- package/dist/client/assets/{dashboard-Dz6Uyyke.js → dashboard-DA1fTRcH.js} +1 -1
- package/dist/client/assets/event-Dwf9IDxK.js +1 -0
- package/dist/client/assets/file-explorer-screen-DzDX4HcB.js +1 -0
- package/dist/client/assets/files-PsZnGOUx.js +2 -0
- package/dist/client/assets/follow-up-suggestions-BYWq-d8P.js +5 -0
- package/dist/client/assets/{index-yPOt98v7.js → index-B551ln24.js} +1 -1
- package/dist/client/assets/{index-nheqha2z.js → index-BxsgifDH.js} +1 -1
- package/dist/client/assets/keyboard-shortcuts-dialog-BX-hH4Wf.js +1 -0
- package/dist/client/assets/main-DBmooBKx.js +210 -0
- package/dist/client/assets/markdown-Bpat4kTr.js +87 -0
- package/dist/client/assets/memory-Bs8hOoEv.js +2 -0
- package/dist/client/assets/memory-screen-1DgDLyZf.js +1 -0
- package/dist/client/assets/menu-ByR1BVmq.js +1 -0
- package/dist/client/assets/{opencami-logo-CoCA2JIf.js → opencami-logo-BV1uPYe6.js} +1 -1
- package/dist/client/assets/popupStateMapping-CGDLUl5Y.js +1 -0
- package/dist/client/assets/proxy-DYrSkM35.js +9 -0
- package/dist/client/assets/{react-DzPMbcP8.js → react-dSDkXQu6.js} +1 -1
- package/dist/client/assets/search-dialog-B3XJLq-O.js +1 -0
- package/dist/client/assets/{search-sources-badge-DOd5AI-i.js → search-sources-badge-CTd0gLuz.js} +1 -1
- package/dist/client/assets/session-export-dialog-Cib97JLm.js +1 -0
- package/dist/client/assets/settings-dialog-B4NLq1ZS.js +1 -0
- package/dist/client/assets/{skills-panel-_M5k5dty.js → skills-panel-Cj7yHGbX.js} +1 -1
- package/dist/client/assets/skills-pueagQNc.js +2 -0
- package/dist/client/assets/styles-Ce2xZzc4.css +1 -0
- package/dist/client/assets/switch-kXs1I0oW.js +1 -0
- package/dist/client/assets/tabs-B6GW7TBf.js +1 -0
- package/dist/client/assets/thinking-DTP9JDQl.js +1 -0
- package/dist/client/assets/tooltip-CtHpm-sQ.js +1 -0
- package/dist/client/assets/use-file-explorer-state-C-D2CShe.js +12 -0
- package/dist/client/assets/{useBaseUiId-CMJ8I9al.js → useBaseUiId-Ckx_aJky.js} +1 -1
- package/dist/client/assets/{useCompositeItem-CSriPK0T.js → useCompositeItem-CkvfeGmG.js} +1 -1
- package/dist/client/assets/{useControlled-KFa25CcD.js → useControlled-8D4PSDAL.js} +1 -1
- package/dist/client/assets/{useMutation-Bd89JWif.js → useMutation-DckvFKPC.js} +1 -1
- package/dist/client/assets/{useQuery-DhR_UXNX.js → useQuery-CtUiG53w.js} +1 -1
- package/dist/server/assets/{_sessionKey-BzM-igv7.js → _sessionKey-LV6xK9IM.js} +47 -148
- package/dist/server/assets/{_tanstack-start-manifest_v-Bfnqdswf.js → _tanstack-start-manifest_v-qVhiIEVc.js} +1 -1
- package/dist/server/assets/{follow-up-suggestions-DhBZIszK.js → follow-up-suggestions-CSSc4PDe.js} +2 -2
- package/dist/server/assets/{index-DCMpnyEo.js → index-DMKS4aeI.js} +1 -1
- package/dist/server/assets/{router-BqPDQeCx.js → router-Cr2xCvGA.js} +3 -3
- package/dist/server/assets/{search-dialog-DtYc9e4N.js → search-dialog-DR6zBnui.js} +2 -2
- package/dist/server/assets/{settings-dialog-BQzn6fyF.js → settings-dialog-DEMlCMCP.js} +2 -2
- package/dist/server/assets/{thinking-D6q1tJkk.js → thinking-BpAc3itF.js} +2 -2
- package/dist/server/server.js +38 -195
- package/package.json +2 -6
- package/dist/client/assets/_sessionKey-CPRycepq.js +0 -19
- package/dist/client/assets/agents-Bp6Cn1BH.js +0 -2
- package/dist/client/assets/agents-screen-Du8b4SRW.js +0 -1
- package/dist/client/assets/bots-Dl65yZDx.js +0 -2
- package/dist/client/assets/button-BxDVif49.js +0 -1
- package/dist/client/assets/event-DeooaZzN.js +0 -1
- package/dist/client/assets/file-explorer-screen-BnOINWSL.js +0 -1
- package/dist/client/assets/files-Cf87gXsq.js +0 -2
- package/dist/client/assets/follow-up-suggestions-DP_84nA2.js +0 -5
- package/dist/client/assets/keyboard-shortcuts-dialog-BzL7ZJUb.js +0 -1
- package/dist/client/assets/main-DJgQwVqD.js +0 -210
- package/dist/client/assets/markdown-CFbW7h0Q.js +0 -87
- package/dist/client/assets/memory-kYdhgbRR.js +0 -2
- package/dist/client/assets/memory-screen-BKYBnY-V.js +0 -1
- package/dist/client/assets/menu-CnihCZ4y.js +0 -1
- package/dist/client/assets/proxy-C2vtPufK.js +0 -9
- package/dist/client/assets/search-dialog-CDAdFAQI.js +0 -1
- package/dist/client/assets/session-export-dialog-Cf8eisLM.js +0 -1
- package/dist/client/assets/settings-dialog-CB1OiRWU.js +0 -1
- package/dist/client/assets/skills-D6MaebJh.js +0 -2
- package/dist/client/assets/styles-BNkOWk4R.css +0 -1
- package/dist/client/assets/switch-LzFh8co4.js +0 -1
- package/dist/client/assets/tabs-D9o7Irvl.js +0 -1
- package/dist/client/assets/thinking-BqZoM6BP.js +0 -1
- package/dist/client/assets/tooltip-D64CzFXa.js +0 -1
- package/dist/client/assets/use-file-explorer-state-Tzex8EEL.js +0 -12
- package/dist/client/assets/useOnFirstRender-DqnUCnnL.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as V,ab as _,ac as Y,ad as j,ae as D}from"./button-
|
|
1
|
+
import{C as V,ab as _,ac as Y,ad as j,ae as D}from"./button-DdG8c-XQ.js";import{r as l,v as x}from"./main-DBmooBKx.js";const g=x[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],G=g&&g!==l.useLayoutEffect?g:e=>e();function k(e){const t=V(J).current;return t.next=e,G(t.effect),t.trampoline}function J(){const e={next:void 0,callback:X,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function X(){}function m(){return typeof window<"u"}function E(e){return I(e)?(e.nodeName||"").toLowerCase():"#document"}function d(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function q(e){var t;return(t=(I(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function I(e){return m()?e instanceof Node||e instanceof d(e).Node:!1}function T(e){return m()?e instanceof Element||e instanceof d(e).Element:!1}function h(e){return m()?e instanceof HTMLElement||e instanceof d(e).HTMLElement:!1}function N(e){return!m()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof d(e).ShadowRoot}const z=new Set(["inline","contents"]);function L(e){const{overflow:t,overflowX:n,overflowY:r,display:s}=O(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!z.has(s)}const Q=new Set(["table","td","th"]);function he(e){return Q.has(E(e))}const Z=[":popover-open",":modal"];function ee(e){return Z.some(t=>{try{return e.matches(t)}catch{return!1}})}const te=["transform","translate","scale","rotate","perspective"],ne=["transform","translate","scale","rotate","perspective","filter"],oe=["paint","layout","strict","content"];function se(e){const t=re(),n=T(e)?O(e):e;return te.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||ne.some(r=>(n.willChange||"").includes(r))||oe.some(r=>(n.contain||"").includes(r))}function Ce(e){let t=y(e);for(;h(t)&&!B(t);){if(se(t))return t;if(ee(t))return null;t=y(t)}return null}function re(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const ae=new Set(["html","body","#document"]);function B(e){return ae.has(E(e))}function O(e){return d(e).getComputedStyle(e)}function De(e){return T(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function y(e){if(E(e)==="html")return e;const t=e.assignedSlot||e.parentNode||N(e)&&e.host||q(e);return N(t)?t.host:t}function R(e){const t=y(e);return B(t)?e.ownerDocument?e.ownerDocument.body:e.body:h(t)&&L(t)?t:R(t)}function S(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const s=R(e),a=s===((r=e.ownerDocument)==null?void 0:r.body),i=d(s);if(a){const u=ie(i);return t.concat(i,i.visualViewport||[],L(s)?s:[],u&&n?S(u):[])}return t.concat(s,S(s,[],n))}function ie(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}const ce=()=>{},le=typeof document<"u"?l.useLayoutEffect:ce,ue={...x};let P=0;function fe(e,t="mui"){const[n,r]=l.useState(e),s=e||n;return l.useEffect(()=>{n==null&&(P+=1,r(`${t}-${P}`))},[n,t]),s}const v=ue.useId;function de(e,t){if(v!==void 0){const n=v();return e??(t?`${t}-${n}`:n)}return fe(e,t)}const ke="none",Ne="trigger-press",Se="trigger-hover",Pe="trigger-focus",ve="outside-press",xe="item-press",Ie="close-press",Te="focus-out",Le="escape-key",Be="list-navigation",Oe="cancel-open",Re="sibling-open",Ke="disabled",Me="imperative-action";function Fe(e,t,n,r){let s=!1,a=!1;const i=r??_;return{reason:e,event:t??new Event("base-ui"),cancel(){s=!0},allowPropagation(){a=!0},get isCanceled(){return s},get isPropagationAllowed(){return a},trigger:n,...i}}const pe=l.createContext(void 0);function be(e=!1){const t=l.useContext(pe);if(t===void 0&&!e)throw new Error(Y(16));return t}function me(e){const{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:s=0,isNativeButton:a}=e,i=r&&t!==!1,u=r&&t===!1;return{props:l.useMemo(()=>{const f={onKeyDown(b){n&&t&&b.key!=="Tab"&&b.preventDefault()}};return r||(f.tabIndex=s,!a&&n&&(f.tabIndex=t?s:-1)),(a&&(t||i)||!a&&n)&&(f["aria-disabled"]=n),a&&(!t||u)&&(f.disabled=n),f},[r,n,t,i,u,a,s])}}function Ue(e={}){const{disabled:t=!1,focusableWhenDisabled:n,tabIndex:r=0,native:s=!0}=e,a=l.useRef(null),i=be(!0)!==void 0,u=k(()=>{const c=a.current;return!!(c?.tagName==="A"&&c?.href)}),{props:p}=me({focusableWhenDisabled:n,disabled:t,composite:i,tabIndex:r,isNativeButton:s}),f=l.useCallback(()=>{const c=a.current;we(c)&&i&&t&&p.disabled===void 0&&c.disabled&&(c.disabled=!1)},[t,p.disabled,i]);le(f,[f]);const b=l.useCallback((c={})=>{const{onClick:w,onMouseDown:M,onKeyUp:F,onKeyDown:U,onPointerDown:W,...A}=c;return j({type:s?"button":void 0,onClick(o){if(t){o.preventDefault();return}w?.(o)},onMouseDown(o){t||M?.(o)},onKeyDown(o){if(t||(D(o),U?.(o)),o.baseUIHandlerPrevented)return;const H=o.target===o.currentTarget&&!s&&!u()&&!t,C=o.key==="Enter",$=o.key===" ";H&&(($||C)&&o.preventDefault(),C&&w?.(o))},onKeyUp(o){t||(D(o),F?.(o)),!o.baseUIHandlerPrevented&&o.target===o.currentTarget&&!s&&!t&&o.key===" "&&w?.(o)},onPointerDown(o){if(t){o.preventDefault();return}W?.(o)}},s?void 0:{role:"button"},p,A)},[t,p,s,u]),K=k(c=>{a.current=c,f()});return{getButtonProps:b,buttonRef:K}}function we(e){return h(e)&&e.tagName==="BUTTON"}function We(e){return de(e,"base-ui")}export{L as A,E as B,pe as C,Ie as D,S as E,q as F,ie as G,re as H,ee as I,he as J,se as K,Ce as L,De as M,Ke as N,I as O,k as a,be as b,N as c,We as d,T as e,Ue as f,Fe as g,O as h,h as i,Te as j,xe as k,Be as l,Se as m,ke as n,ve as o,de as p,Pe as q,Le as r,Re as s,Ne as t,le as u,Me as v,B as w,y as x,Oe as y,d as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as S}from"./DirectionContext-
|
|
1
|
+
import{f as S}from"./DirectionContext-B1cuzwIr.js";import{A as j,s as D,a as H,b as y,c as k}from"./event-Dwf9IDxK.js";import{r as R,j as B}from"./main-DBmooBKx.js";import{C as G,E as V}from"./button-DdG8c-XQ.js";import{u as L,a as T,b as I}from"./useBaseUiId-Ckx_aJky.js";function p(e,i,o){return Math.floor(e/i)!==o}function x(e,i){return i<0||i>=e.current.length}function et(e,i){return E(e,{disabledIndices:i})}function nt(e,i){return E(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:i})}function E(e,{startingIndex:i=-1,decrement:o=!1,disabledIndices:s,amount:m=1}={}){let t=i;do t+=o?-m:m;while(t>=0&&t<=e.current.length-1&&z(e,t,s));return t}function rt(e,{event:i,orientation:o,loopFocus:s,rtl:m,cols:t,disabledIndices:a,minIndex:O,maxIndex:g,prevIndex:u,stopEvent:c=!1}){let r=u;const d=[],w={};let C=!1;{let n=null,l=-1;e.current.forEach((h,f)=>{if(h==null)return;const M=h.closest('[role="row"]');M&&(C=!0),(M!==n||l===-1)&&(n=M,l+=1,d[l]=[]),d[l].push(f),w[f]=l})}const N=C&&d.length>0&&d.some(n=>n.length!==t);function b(n){if(!N||u===-1)return;const l=w[u];if(l==null)return;const h=d[l].indexOf(u);let f=n==="up"?l-1:l+1;s&&(f<0?f=d.length-1:f>=d.length&&(f=0));const M=new Set;for(;f>=0&&f<d.length&&!M.has(f);){M.add(f);const _=d[f];if(_.length===0){f=n==="up"?f-1:f+1;continue}const W=Math.min(h,_.length-1);for(let P=W;P>=0;P-=1){const A=_[P];if(!z(e,A,a))return A}f=n==="up"?f-1:f+1,s&&(f<0?f=d.length-1:f>=d.length&&(f=0))}}if(i.key===j){const n=b("up");if(n!==void 0)c&&D(i),r=n;else{if(c&&D(i),u===-1)r=g;else if(r=E(e,{startingIndex:r,amount:t,decrement:!0,disabledIndices:a}),s&&(u-t<O||r<0)){const l=u%t,h=g%t,f=g-(h-l);h===l?r=g:r=h>l?f:f-t}x(e,r)&&(r=u)}}if(i.key===H){const n=b("down");n!==void 0?(c&&D(i),r=n):(c&&D(i),u===-1?r=O:(r=E(e,{startingIndex:u,amount:t,disabledIndices:a}),s&&u+t>g&&(r=E(e,{startingIndex:u%t-t,amount:t,disabledIndices:a}))),x(e,r)&&(r=u))}if(o==="both"){const n=S(u/t);i.key===(m?y:k)&&(c&&D(i),u%t!==t-1?(r=E(e,{startingIndex:u,disabledIndices:a}),s&&p(r,t,n)&&(r=E(e,{startingIndex:u-u%t-1,disabledIndices:a}))):s&&(r=E(e,{startingIndex:u-u%t-1,disabledIndices:a})),p(r,t,n)&&(r=u)),i.key===(m?k:y)&&(c&&D(i),u%t!==0?(r=E(e,{startingIndex:u,decrement:!0,disabledIndices:a}),s&&p(r,t,n)&&(r=E(e,{startingIndex:u+(t-u%t),decrement:!0,disabledIndices:a}))):s&&(r=E(e,{startingIndex:u+(t-u%t),decrement:!0,disabledIndices:a})),p(r,t,n)&&(r=u));const l=S(g/t)===n;x(e,r)&&(s&&l?r=i.key===(m?k:y)?g:E(e,{startingIndex:u-u%t-1,disabledIndices:a}):r=u)}return r}function it(e,i,o){const s=[];let m=0;return e.forEach(({width:t,height:a},O)=>{let g=!1;for(o&&(m=0);!g;){const u=[];for(let c=0;c<t;c+=1)for(let r=0;r<a;r+=1)u.push(m+c+r*i);m%i+t<=i&&u.every(c=>s[c]==null)?(u.forEach(c=>{s[c]=O}),g=!0):m+=1}}),[...s]}function ut(e,i,o,s,m){if(e===-1)return-1;const t=o.indexOf(e),a=i[e];switch(m){case"tl":return t;case"tr":return a?t+a.width-1:t;case"bl":return a?t+(a.height-1)*s:t;case"br":return o.lastIndexOf(e);default:return-1}}function st(e,i){return i.flatMap((o,s)=>e.includes(o)?[s]:[])}function z(e,i,o){if(typeof o=="function")return o(i);if(o)return o.includes(i);const s=e.current[i];return s?s.hasAttribute("disabled")||s.getAttribute("aria-disabled")==="true":!1}const U=R.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function Y(){return R.useContext(U)}let q=(function(e){return e[e.None=0]="None",e[e.GuessFromOrder=1]="GuessFromOrder",e})({});function J(e={}){const{label:i,metadata:o,textRef:s,indexGuessBehavior:m,index:t}=e,{register:a,unregister:O,subscribeMapChange:g,elementsRef:u,labelsRef:c,nextIndexRef:r}=Y(),d=R.useRef(-1),[w,C]=R.useState(t??(m===q.GuessFromOrder?()=>{if(d.current===-1){const n=r.current;r.current+=1,d.current=n}return d.current}:-1)),N=R.useRef(null),b=R.useCallback(n=>{if(N.current=n,w!==-1&&n!==null&&(u.current[w]=n,c)){const l=i!==void 0;c.current[w]=l?i:s?.current?.textContent??n.textContent}},[w,u,c,i,s]);return L(()=>{if(t!=null)return;const n=N.current;if(n)return a(n,o),()=>{O(n)}},[t,a,O,o]),L(()=>{if(t==null)return g(n=>{const l=N.current?n.get(N.current)?.index:null;l!=null&&C(l)})},[t,g,C]),R.useMemo(()=>({ref:b,index:w}),[w,b])}function ot(e){const{children:i,elementsRef:o,labelsRef:s,onMapChange:m}=e,t=T(m),a=R.useRef(0),O=G(Q).current,g=G(K).current,[u,c]=R.useState(0),r=R.useRef(u),d=T((n,l)=>{g.set(n,l??null),r.current+=1,c(r.current)}),w=T(n=>{g.delete(n),r.current+=1,c(r.current)}),C=R.useMemo(()=>{const n=new Map;return Array.from(g.keys()).filter(h=>h.isConnected).sort(X).forEach((h,f)=>{const M=g.get(h)??{};n.set(h,{...M,index:f})}),n},[g,u]);L(()=>{if(typeof MutationObserver!="function"||C.size===0)return;const n=new MutationObserver(l=>{const h=new Set,f=M=>h.has(M)?h.delete(M):h.add(M);l.forEach(M=>{M.removedNodes.forEach(f),M.addedNodes.forEach(f)}),h.size===0&&(r.current+=1,c(r.current))});return C.forEach((l,h)=>{h.parentElement&&n.observe(h.parentElement,{childList:!0})}),()=>{n.disconnect()}},[C]),L(()=>{r.current===u&&(o.current.length!==C.size&&(o.current.length=C.size),s&&s.current.length!==C.size&&(s.current.length=C.size),a.current=C.size),t(C)},[t,C,o,s,u]),L(()=>()=>{o.current=[]},[o]),L(()=>()=>{s&&(s.current=[])},[s]);const N=T(n=>(O.add(n),()=>{O.delete(n)}));L(()=>{O.forEach(n=>n(C))},[O,C]);const b=R.useMemo(()=>({register:d,unregister:w,subscribeMapChange:N,elementsRef:o,labelsRef:s,nextIndexRef:a}),[d,w,N,o,s,a]);return B.jsx(U.Provider,{value:b,children:i})}function K(){return new Map}function Q(){return new Set}function X(e,i){const o=e.compareDocumentPosition(i);return o&Node.DOCUMENT_POSITION_FOLLOWING||o&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:o&Node.DOCUMENT_POSITION_PRECEDING||o&Node.DOCUMENT_POSITION_CONTAINS?1:0}function ft(e={}){const{highlightItemOnHover:i,highlightedIndex:o,onHighlightedIndexChange:s}=I(),{ref:m,index:t}=J(e),a=o===t,O=R.useRef(null),g=V(m,O);return{compositeProps:R.useMemo(()=>({tabIndex:a?0:-1,onFocus(){s(t)},onMouseMove(){const c=O.current;if(!i||!c)return;const r=c.hasAttribute("disabled")||c.ariaDisabled==="true";!a&&!r&&c.focus()}}),[a,s,t,i]),compositeRef:g,index:t}}export{ot as C,nt as a,rt as b,it as c,ut as d,st as e,E as f,et as g,x as h,z as i,J as j,ft as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./main-
|
|
1
|
+
import{r as e}from"./main-DBmooBKx.js";function d({controlled:t,default:s,name:c,state:f="value"}){const{current:a}=e.useRef(t!==void 0),[o,u]=e.useState(s),l=a?t:o,n=e.useCallback(r=>{a||u(r)},[]);return[l,n]}export{d as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as l,s as d,h as a,g as p,n as h,u as b,r as o,b as m,c as v}from"./main-
|
|
1
|
+
import{S as l,s as d,h as a,g as p,n as h,u as b,r as o,b as m,c as v}from"./main-DBmooBKx.js";var y=class extends l{#s;#i=void 0;#t;#e;constructor(t,s){super(),this.#s=t,this.setOptions(s),this.bindMethods(),this.#r()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){const s=this.options;this.options=this.#s.defaultMutationOptions(t),d(this.options,s)||this.#s.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#t,observer:this}),s?.mutationKey&&this.options.mutationKey&&a(s.mutationKey)!==a(this.options.mutationKey)?this.reset():this.#t?.state.status==="pending"&&this.#t.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#t?.removeObserver(this)}onMutationUpdate(t){this.#r(),this.#o(t)}getCurrentResult(){return this.#i}reset(){this.#t?.removeObserver(this),this.#t=void 0,this.#r(),this.#o()}mutate(t,s){return this.#e=s,this.#t?.removeObserver(this),this.#t=this.#s.getMutationCache().build(this.#s,this.options),this.#t.addObserver(this),this.#t.execute(t)}#r(){const t=this.#t?.state??p();this.#i={...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset}}#o(t){h.batch(()=>{if(this.#e&&this.hasListeners()){const s=this.#i.variables,r=this.#i.context,e={client:this.#s,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#e.onSuccess?.(t.data,s,r,e)}catch(i){Promise.reject(i)}try{this.#e.onSettled?.(t.data,null,s,r,e)}catch(i){Promise.reject(i)}}else if(t?.type==="error"){try{this.#e.onError?.(t.error,s,r,e)}catch(i){Promise.reject(i)}try{this.#e.onSettled?.(void 0,t.error,s,r,e)}catch(i){Promise.reject(i)}}}this.listeners.forEach(s=>{s(this.#i)})})}};function O(t,s){const r=b(),[e]=o.useState(()=>new y(r,t));o.useEffect(()=>{e.setOptions(t)},[e,t]);const i=o.useSyncExternalStore(o.useCallback(n=>e.subscribe(h.batchCalls(n)),[e]),()=>e.getCurrentResult(),()=>e.getCurrentResult()),u=o.useCallback((n,c)=>{e.mutate(n,c).catch(m)},[e]);if(i.error&&v(e.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:u,mutateAsync:i.mutate}}export{O as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as G,p as N,e as l,s as Q,f as g,b as M,i as x,k as B,t as J,l as C,m as X,o as Y,q as A,n as z,r as d,c as V,u as Z}from"./main-
|
|
1
|
+
import{S as G,p as N,e as l,s as Q,f as g,b as M,i as x,k as B,t as J,l as C,m as X,o as Y,q as A,n as z,r as d,c as V,u as Z}from"./main-DBmooBKx.js";var $=class extends G{constructor(t,e){super(),this.options=e,this.#s=t,this.#i=null,this.#r=N(),this.bindMethods(),this.setOptions(e)}#s;#t=void 0;#p=void 0;#e=void 0;#a;#u;#r;#i;#b;#l;#d;#o;#h;#n;#f=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),j(this.#t,this.options)?this.#c():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return _(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return _(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#y(),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 l(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&&!Q(this.options,e)&&this.#s.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const r=this.hasListeners();r&&H(this.#t,s,this.options,e)&&this.#c(),this.updateResult(),r&&(this.#t!==s||l(this.options.enabled,this.#t)!==l(e.enabled,this.#t)||g(this.options.staleTime,this.#t)!==g(e.staleTime,this.#t))&&this.#R();const i=this.#v();r&&(this.#t!==s||l(this.options.enabled,this.#t)!==l(e.enabled,this.#t)||i!==this.#n)&&this.#m(i)}getOptimisticResult(t){const e=this.#s.getQueryCache().build(this.#s,t),s=this.createResult(e,t);return tt(this,s)&&(this.#e=s,this.#u=this.options,this.#a=this.#t.state),s}getCurrentResult(){return this.#e}trackResult(t,e){return new Proxy(t,{get:(s,r)=>(this.trackProp(r),e?.(r),r==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&this.#r.status==="pending"&&this.#r.reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(s,r))})}trackProp(t){this.#f.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.#c({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#e))}#c(t){this.#O();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(M)),e}#R(){this.#y();const t=g(this.options.staleTime,this.#t);if(x||this.#e.isStale||!B(t))return;const s=J(this.#e.dataUpdatedAt,t)+1;this.#o=C.setTimeout(()=>{this.#e.isStale||this.updateResult()},s)}#v(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#m(t){this.#S(),this.#n=t,!(x||l(this.options.enabled,this.#t)===!1||!B(this.#n)||this.#n===0)&&(this.#h=C.setInterval(()=>{(this.options.refetchIntervalInBackground||X.isFocused())&&this.#c()},this.#n))}#g(){this.#R(),this.#m(this.#v())}#y(){this.#o&&(C.clearTimeout(this.#o),this.#o=void 0)}#S(){this.#h&&(C.clearInterval(this.#h),this.#h=void 0)}createResult(t,e){const s=this.#t,r=this.options,i=this.#e,u=this.#a,a=this.#u,R=t!==s?t.state:this.#p,{state:h}=t;let n={...h},v=!1,o;if(e._optimisticResults){const c=this.hasListeners(),m=!c&&j(t,e),S=c&&H(t,s,e,r);(m||S)&&(n={...n,...Y(h.data,t.options)}),e._optimisticResults==="isRestoring"&&(n.fetchStatus="idle")}let{error:y,errorUpdatedAt:U,status:b}=n;o=n.data;let D=!1;if(e.placeholderData!==void 0&&o===void 0&&b==="pending"){let c;i?.isPlaceholderData&&e.placeholderData===a?.placeholderData?(c=i.data,D=!0):c=typeof e.placeholderData=="function"?e.placeholderData(this.#d?.state.data,this.#d):e.placeholderData,c!==void 0&&(b="success",o=A(i?.data,c,e),v=!0)}if(e.select&&o!==void 0&&!D)if(i&&o===u?.data&&e.select===this.#b)o=this.#l;else try{this.#b=e.select,o=e.select(o),o=A(i?.data,o,e),this.#l=o,this.#i=null}catch(c){this.#i=c}this.#i&&(y=this.#i,o=this.#l,U=Date.now(),b="error");const I=n.fetchStatus==="fetching",T=b==="pending",w=b==="error",F=T&&I,k=o!==void 0,p={status:b,fetchStatus:n.fetchStatus,isPending:T,isSuccess:b==="success",isError:w,isInitialLoading:F,isLoading:F,data:o,dataUpdatedAt:n.dataUpdatedAt,error:y,errorUpdatedAt:U,failureCount:n.fetchFailureCount,failureReason:n.fetchFailureReason,errorUpdateCount:n.errorUpdateCount,isFetched:n.dataUpdateCount>0||n.errorUpdateCount>0,isFetchedAfterMount:n.dataUpdateCount>R.dataUpdateCount||n.errorUpdateCount>R.errorUpdateCount,isFetching:I,isRefetching:I&&!T,isLoadingError:w&&!k,isPaused:n.fetchStatus==="paused",isPlaceholderData:v,isRefetchError:w&&k,isStale:P(t,e),refetch:this.refetch,promise:this.#r,isEnabled:l(e.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const c=p.data!==void 0,m=p.status==="error"&&!c,S=E=>{m?E.reject(p.error):c&&E.resolve(p.data)},L=()=>{const E=this.#r=p.promise=N();S(E)},O=this.#r;switch(O.status){case"pending":t.queryHash===s.queryHash&&S(O);break;case"fulfilled":(m||p.data!==O.value)&&L();break;case"rejected":(!m||p.error!==O.reason)&&L();break}}return p}updateResult(){const t=this.#e,e=this.createResult(this.#t,this.options);if(this.#a=this.#t.state,this.#u=this.options,this.#a.data!==void 0&&(this.#d=this.#t),Q(e,t))return;this.#e=e;const s=()=>{if(!t)return!0;const{notifyOnChangeProps:r}=this.options,i=typeof r=="function"?r():r;if(i==="all"||!i&&!this.#f.size)return!0;const u=new Set(i??this.#f);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.#p=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#E(t){z.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(this.#e)}),this.#s.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function q(t,e){return l(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function j(t,e){return q(t,e)||t.state.data!==void 0&&_(t,e,e.refetchOnMount)}function _(t,e,s){if(l(e.enabled,t)!==!1&&g(e.staleTime,t)!=="static"){const r=typeof s=="function"?s(t):s;return r==="always"||r!==!1&&P(t,e)}return!1}function H(t,e,s,r){return(t!==e||l(r.enabled,t)===!1)&&(!s.suspense||t.state.status!=="error")&&P(t,s)}function P(t,e){return l(e.enabled,t)!==!1&&t.isStaleByTime(g(e.staleTime,t))}function tt(t,e){return!Q(t.getCurrentResult(),e)}var K=d.createContext(!1),et=()=>d.useContext(K);K.Provider;function st(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}var rt=d.createContext(st()),it=()=>d.useContext(rt),nt=(t,e,s)=>{const r=s?.state.error&&typeof t.throwOnError=="function"?V(t.throwOnError,[s.state.error,s]):t.throwOnError;(t.suspense||t.experimental_prefetchInRender||r)&&(e.isReset()||(t.retryOnMount=!1))},at=t=>{d.useEffect(()=>{t.clearReset()},[t])},ot=({result:t,errorResetBoundary:e,throwOnError:s,query:r,suspense:i})=>t.isError&&!e.isReset()&&!t.isFetching&&r&&(i&&t.data===void 0||V(s,[t.error,r])),ht=t=>{if(t.suspense){const s=i=>i==="static"?i:Math.max(i??1e3,1e3),r=t.staleTime;t.staleTime=typeof r=="function"?(...i)=>s(r(...i)):s(r),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3))}},ct=(t,e)=>t.isLoading&&t.isFetching&&!e,ut=(t,e)=>t?.suspense&&e.isPending,W=(t,e,s)=>e.fetchOptimistic(t).catch(()=>{s.clearReset()});function lt(t,e,s){const r=et(),i=it(),u=Z(),a=u.defaultQueryOptions(t);u.getDefaultOptions().queries?._experimental_beforeQuery?.(a);const f=u.getQueryCache().get(a.queryHash);a._optimisticResults=r?"isRestoring":"optimistic",ht(a),nt(a,i,f),at(i);const R=!u.getQueryCache().get(a.queryHash),[h]=d.useState(()=>new e(u,a)),n=h.getOptimisticResult(a),v=!r&&t.subscribed!==!1;if(d.useSyncExternalStore(d.useCallback(o=>{const y=v?h.subscribe(z.batchCalls(o)):M;return h.updateResult(),y},[h,v]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),d.useEffect(()=>{h.setOptions(a)},[a,h]),ut(a,n))throw W(a,h,i);if(ot({result:n,errorResetBoundary:i,throwOnError:a.throwOnError,query:f,suspense:a.suspense}))throw n.error;return u.getDefaultOptions().queries?._experimental_afterQuery?.(a,n),a.experimental_prefetchInRender&&!x&&ct(n,r)&&(R?W(a,h,i):f?.promise)?.catch(M).finally(()=>{h.updateResult()}),a.notifyOnChangeProps?n:h.trackResult(n)}function pt(t,e){return lt(t,$)}export{pt as u};
|
|
@@ -4,7 +4,7 @@ import * as React from "react";
|
|
|
4
4
|
import React__default, { useState, useCallback, memo, useDeferredValue, useMemo, Suspense, lazy, useRef, useEffect, useLayoutEffect, createContext, useContext } from "react";
|
|
5
5
|
import { useQueryClient, useMutation, useQuery } from "@tanstack/react-query";
|
|
6
6
|
import { T as TooltipProvider, a as TooltipRoot, b as TooltipTrigger, c as TooltipContent, s as setChatUiState, d as chatUiQueryKey, g as getChatUiState } from "./tooltip-DgsSPocE.js";
|
|
7
|
-
import { Tick01Icon, Cancel01Icon, MoreHorizontalIcon, Pen01Icon, Upload01Icon, Delete01Icon, BotIcon, Clock01Icon, Chat01Icon, ArrowRight01Icon, SidebarLeft01Icon, PencilEdit02Icon, Folder01Icon, AiBrain01Icon, PackageOpenIcon, SmartPhone01Icon, DashboardCircleIcon, Search01Icon, Settings01Icon, Menu01Icon, Tick02Icon, Copy01Icon, Loading02Icon, StopIcon, VolumeHighIcon, Loading03Icon, ArrowDown01Icon, File01Icon,
|
|
7
|
+
import { Tick01Icon, Cancel01Icon, MoreHorizontalIcon, Pen01Icon, Upload01Icon, Delete01Icon, BotIcon, Clock01Icon, Chat01Icon, ArrowRight01Icon, SidebarLeft01Icon, PencilEdit02Icon, Folder01Icon, AiBrain01Icon, PackageOpenIcon, SmartPhone01Icon, DashboardCircleIcon, Search01Icon, Settings01Icon, Menu01Icon, Tick02Icon, Copy01Icon, Loading02Icon, StopIcon, VolumeHighIcon, Loading03Icon, ArrowDown01Icon, File01Icon, CommandIcon, Attachment01Icon, Mic02Icon, ArrowUp02Icon } from "@hugeicons/core-free-icons";
|
|
8
8
|
import { HugeiconsIcon } from "@hugeicons/react";
|
|
9
9
|
import { motion, AnimatePresence } from "motion/react";
|
|
10
10
|
import { AlertDialog } from "@base-ui/react/alert-dialog";
|
|
@@ -19,7 +19,7 @@ import { u as useChatSettings$1 } from "./index-BEWnDAH6.js";
|
|
|
19
19
|
import { createPortal } from "react-dom";
|
|
20
20
|
import { create } from "zustand";
|
|
21
21
|
import { persist } from "zustand/middleware";
|
|
22
|
-
import { a as Route } from "./router-
|
|
22
|
+
import { a as Route } from "./router-Cr2xCvGA.js";
|
|
23
23
|
function deriveFriendlyIdFromKey(key) {
|
|
24
24
|
if (!key) return "main";
|
|
25
25
|
const trimmed = key.trim();
|
|
@@ -1681,7 +1681,7 @@ function areSidebarSessionsEqual(prev, next) {
|
|
|
1681
1681
|
return true;
|
|
1682
1682
|
}
|
|
1683
1683
|
const SettingsDialog = lazy(
|
|
1684
|
-
() => import("./settings-dialog-
|
|
1684
|
+
() => import("./settings-dialog-DEMlCMCP.js").then((m) => ({ default: m.SettingsDialog }))
|
|
1685
1685
|
);
|
|
1686
1686
|
const SessionExportDialog = lazy(
|
|
1687
1687
|
() => import("./session-export-dialog-C53RRAah.js").then((m) => ({
|
|
@@ -2828,7 +2828,7 @@ function Tool({ toolPart, defaultOpen = false }) {
|
|
|
2828
2828
|
] }) });
|
|
2829
2829
|
}
|
|
2830
2830
|
const Thinking = lazy(
|
|
2831
|
-
() => import("./thinking-
|
|
2831
|
+
() => import("./thinking-BpAc3itF.js").then((m) => ({
|
|
2832
2832
|
default: m.Thinking
|
|
2833
2833
|
}))
|
|
2834
2834
|
);
|
|
@@ -3469,7 +3469,7 @@ function TypingIndicator({ className }) {
|
|
|
3469
3469
|
] });
|
|
3470
3470
|
}
|
|
3471
3471
|
const FollowUpSuggestions = lazy(
|
|
3472
|
-
() => import("./follow-up-suggestions-
|
|
3472
|
+
() => import("./follow-up-suggestions-CSSc4PDe.js").then((m) => ({
|
|
3473
3473
|
default: m.FollowUpSuggestions
|
|
3474
3474
|
}))
|
|
3475
3475
|
);
|
|
@@ -3965,138 +3965,6 @@ function PromptInputAction({
|
|
|
3965
3965
|
/* @__PURE__ */ jsx(TooltipContent, { side, className, children: tooltip })
|
|
3966
3966
|
] });
|
|
3967
3967
|
}
|
|
3968
|
-
const STORAGE_KEY = "opencami-selected-model";
|
|
3969
|
-
function getStoredModel() {
|
|
3970
|
-
if (typeof window === "undefined") return null;
|
|
3971
|
-
try {
|
|
3972
|
-
return localStorage.getItem(STORAGE_KEY);
|
|
3973
|
-
} catch {
|
|
3974
|
-
return null;
|
|
3975
|
-
}
|
|
3976
|
-
}
|
|
3977
|
-
function setStoredModel(modelId) {
|
|
3978
|
-
if (typeof window === "undefined") return;
|
|
3979
|
-
try {
|
|
3980
|
-
localStorage.setItem(STORAGE_KEY, modelId);
|
|
3981
|
-
} catch {
|
|
3982
|
-
}
|
|
3983
|
-
}
|
|
3984
|
-
function ModelSelector({ className, onModelChange }) {
|
|
3985
|
-
const [models, setModels] = useState([]);
|
|
3986
|
-
const [selectedModel, setSelectedModel] = useState("");
|
|
3987
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
3988
|
-
const [error, setError] = useState(null);
|
|
3989
|
-
const abortControllerRef = useRef(null);
|
|
3990
|
-
useEffect(() => {
|
|
3991
|
-
let mounted = true;
|
|
3992
|
-
async function fetchModels() {
|
|
3993
|
-
abortControllerRef.current?.abort();
|
|
3994
|
-
const controller = new AbortController();
|
|
3995
|
-
abortControllerRef.current = controller;
|
|
3996
|
-
try {
|
|
3997
|
-
setIsLoading(true);
|
|
3998
|
-
setError(null);
|
|
3999
|
-
const response = await fetch("/api/models", { signal: controller.signal });
|
|
4000
|
-
if (!response.ok) {
|
|
4001
|
-
throw new Error("Failed to fetch models");
|
|
4002
|
-
}
|
|
4003
|
-
const data = await response.json();
|
|
4004
|
-
if (!mounted) return;
|
|
4005
|
-
if (data.ok && data.models.length > 0) {
|
|
4006
|
-
setModels(data.models);
|
|
4007
|
-
const storedModel = getStoredModel();
|
|
4008
|
-
const initialModel = storedModel && data.models.some((m) => m.id === storedModel) ? storedModel : data.defaultModel;
|
|
4009
|
-
setSelectedModel(initialModel);
|
|
4010
|
-
onModelChange?.(initialModel);
|
|
4011
|
-
} else {
|
|
4012
|
-
throw new Error("No models available");
|
|
4013
|
-
}
|
|
4014
|
-
} catch (err) {
|
|
4015
|
-
if (err instanceof Error && err.name === "AbortError") return;
|
|
4016
|
-
if (!mounted) return;
|
|
4017
|
-
console.error("[model-selector] Error fetching models:", err);
|
|
4018
|
-
setError(err instanceof Error ? err.message : "Failed to load models");
|
|
4019
|
-
setModels([{ id: "default", name: "Default Model" }]);
|
|
4020
|
-
setSelectedModel("default");
|
|
4021
|
-
} finally {
|
|
4022
|
-
if (mounted) {
|
|
4023
|
-
setIsLoading(false);
|
|
4024
|
-
}
|
|
4025
|
-
}
|
|
4026
|
-
}
|
|
4027
|
-
fetchModels();
|
|
4028
|
-
return () => {
|
|
4029
|
-
mounted = false;
|
|
4030
|
-
abortControllerRef.current?.abort();
|
|
4031
|
-
};
|
|
4032
|
-
}, [onModelChange]);
|
|
4033
|
-
function handleModelSelect(modelId) {
|
|
4034
|
-
setSelectedModel(modelId);
|
|
4035
|
-
setStoredModel(modelId);
|
|
4036
|
-
onModelChange?.(modelId);
|
|
4037
|
-
}
|
|
4038
|
-
if (isLoading) {
|
|
4039
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2 text-xs text-primary-500", className), children: [
|
|
4040
|
-
/* @__PURE__ */ jsx(HugeiconsIcon, { icon: ArtificialIntelligence02Icon, size: 14 }),
|
|
4041
|
-
/* @__PURE__ */ jsx("span", { children: "Loading..." })
|
|
4042
|
-
] });
|
|
4043
|
-
}
|
|
4044
|
-
if (error || models.length === 0) {
|
|
4045
|
-
return null;
|
|
4046
|
-
}
|
|
4047
|
-
const selectedModelInfo = models.find((m) => m.id === selectedModel);
|
|
4048
|
-
const displayName = selectedModelInfo?.name || "Select Model";
|
|
4049
|
-
const shortDisplayName = (() => {
|
|
4050
|
-
if (!selectedModelInfo?.name) return displayName;
|
|
4051
|
-
const name = selectedModelInfo.name;
|
|
4052
|
-
const clean = name.replace(/\s*\([^)]*\)\s*$/, "").trim();
|
|
4053
|
-
const words = clean.split(/\s+/);
|
|
4054
|
-
if (words.length > 3) return words.slice(0, 3).join(" ");
|
|
4055
|
-
return clean;
|
|
4056
|
-
})();
|
|
4057
|
-
if (models.length === 1) {
|
|
4058
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2 text-xs text-primary-500", className), children: [
|
|
4059
|
-
/* @__PURE__ */ jsx(HugeiconsIcon, { icon: ArtificialIntelligence02Icon, size: 14 }),
|
|
4060
|
-
/* @__PURE__ */ jsx("span", { className: "font-[450] md:hidden", children: shortDisplayName }),
|
|
4061
|
-
/* @__PURE__ */ jsx("span", { className: "font-[450] hidden md:inline", children: displayName })
|
|
4062
|
-
] });
|
|
4063
|
-
}
|
|
4064
|
-
return /* @__PURE__ */ jsxs(MenuRoot, { children: [
|
|
4065
|
-
/* @__PURE__ */ jsxs(
|
|
4066
|
-
MenuTrigger,
|
|
4067
|
-
{
|
|
4068
|
-
className: cn(
|
|
4069
|
-
"inline-flex h-7 items-center gap-2 rounded-md px-2 text-xs font-[450] text-primary-600 hover:text-primary-900 hover:bg-primary-100",
|
|
4070
|
-
className
|
|
4071
|
-
),
|
|
4072
|
-
children: [
|
|
4073
|
-
/* @__PURE__ */ jsx(HugeiconsIcon, { icon: ArtificialIntelligence02Icon, size: 14 }),
|
|
4074
|
-
/* @__PURE__ */ jsx("span", { className: "md:hidden", children: shortDisplayName }),
|
|
4075
|
-
/* @__PURE__ */ jsx("span", { className: "hidden md:inline", children: displayName })
|
|
4076
|
-
]
|
|
4077
|
-
}
|
|
4078
|
-
),
|
|
4079
|
-
/* @__PURE__ */ jsx(MenuContent, { side: "top", align: "start", children: models.map((model) => /* @__PURE__ */ jsxs(
|
|
4080
|
-
MenuItem,
|
|
4081
|
-
{
|
|
4082
|
-
onClick: () => handleModelSelect(model.id),
|
|
4083
|
-
className: "justify-between min-w-[180px]",
|
|
4084
|
-
children: [
|
|
4085
|
-
/* @__PURE__ */ jsx("span", { children: model.name }),
|
|
4086
|
-
selectedModel === model.id && /* @__PURE__ */ jsx(
|
|
4087
|
-
HugeiconsIcon,
|
|
4088
|
-
{
|
|
4089
|
-
icon: Tick02Icon,
|
|
4090
|
-
size: 14,
|
|
4091
|
-
className: "text-primary-600"
|
|
4092
|
-
}
|
|
4093
|
-
)
|
|
4094
|
-
]
|
|
4095
|
-
},
|
|
4096
|
-
model.id
|
|
4097
|
-
)) })
|
|
4098
|
-
] });
|
|
4099
|
-
}
|
|
4100
3968
|
const PERSONAS_ENABLED_KEY = "opencami-personas-enabled";
|
|
4101
3969
|
const ACTIVE_PERSONA_KEY = "opencami-active-persona";
|
|
4102
3970
|
function isPersonasEnabled() {
|
|
@@ -4854,6 +4722,7 @@ function ChatComposerComponent({
|
|
|
4854
4722
|
const [isRecording, setIsRecording] = useState(false);
|
|
4855
4723
|
const [recordingTime, setRecordingTime] = useState(0);
|
|
4856
4724
|
const [sttLoading, setSttLoading] = useState(false);
|
|
4725
|
+
const [micError, setMicError] = useState(null);
|
|
4857
4726
|
const mediaRecorderRef = useRef(null);
|
|
4858
4727
|
const recordingChunksRef = useRef([]);
|
|
4859
4728
|
const recordingTimerRef = useRef(null);
|
|
@@ -4886,6 +4755,9 @@ function ChatComposerComponent({
|
|
|
4886
4755
|
promptRef.current?.focus();
|
|
4887
4756
|
});
|
|
4888
4757
|
}, []);
|
|
4758
|
+
const showMicError = useCallback((message) => {
|
|
4759
|
+
setMicError(message);
|
|
4760
|
+
}, []);
|
|
4889
4761
|
const reset = useCallback(() => {
|
|
4890
4762
|
setValue("");
|
|
4891
4763
|
setAttachments([]);
|
|
@@ -5109,11 +4981,12 @@ ${template}`;
|
|
|
5109
4981
|
setRecordingTime(0);
|
|
5110
4982
|
}, []);
|
|
5111
4983
|
const startRecording = useCallback(async () => {
|
|
4984
|
+
setMicError(null);
|
|
5112
4985
|
const provider = getSttProvider();
|
|
5113
4986
|
if (provider === "browser") {
|
|
5114
4987
|
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
|
|
5115
4988
|
if (!SpeechRecognition) {
|
|
5116
|
-
|
|
4989
|
+
showMicError("Web Speech API is not supported in this browser.");
|
|
5117
4990
|
return;
|
|
5118
4991
|
}
|
|
5119
4992
|
const recognition = new SpeechRecognition();
|
|
@@ -5145,6 +5018,7 @@ ${template}`;
|
|
|
5145
5018
|
setRecordingTime(0);
|
|
5146
5019
|
if (recordingTimerRef.current) clearInterval(recordingTimerRef.current);
|
|
5147
5020
|
if (transcript.trim()) {
|
|
5021
|
+
setMicError(null);
|
|
5148
5022
|
setValue((prev) => prev + (prev ? " " : "") + transcript.trim());
|
|
5149
5023
|
focusPrompt();
|
|
5150
5024
|
}
|
|
@@ -5153,6 +5027,7 @@ ${template}`;
|
|
|
5153
5027
|
setIsRecording(false);
|
|
5154
5028
|
setRecordingTime(0);
|
|
5155
5029
|
if (recordingTimerRef.current) clearInterval(recordingTimerRef.current);
|
|
5030
|
+
showMicError("Speech recognition failed. Try the Browser provider again or switch providers in Settings.");
|
|
5156
5031
|
};
|
|
5157
5032
|
recognition.start();
|
|
5158
5033
|
return;
|
|
@@ -5181,16 +5056,17 @@ ${template}`;
|
|
|
5181
5056
|
const res = await fetch("/api/stt", { method: "POST", body: formData, signal: controller.signal });
|
|
5182
5057
|
const data = await res.json();
|
|
5183
5058
|
if (data.ok && data.text) {
|
|
5059
|
+
setMicError(null);
|
|
5184
5060
|
setValue((prev) => prev + (prev ? " " : "") + data.text);
|
|
5185
5061
|
focusPrompt();
|
|
5186
5062
|
} else if (!data.ok) {
|
|
5187
5063
|
console.warn("STT failed:", data.error);
|
|
5188
|
-
|
|
5064
|
+
showMicError(data.error || "Speech-to-text failed. Try the Browser provider in Settings.");
|
|
5189
5065
|
}
|
|
5190
5066
|
} catch (err) {
|
|
5191
5067
|
if (err instanceof Error && err.name === "AbortError") return;
|
|
5192
5068
|
console.warn("STT request failed:", err);
|
|
5193
|
-
|
|
5069
|
+
showMicError("Could not reach speech-to-text service.");
|
|
5194
5070
|
} finally {
|
|
5195
5071
|
setSttLoading(false);
|
|
5196
5072
|
}
|
|
@@ -5213,18 +5089,18 @@ ${template}`;
|
|
|
5213
5089
|
try {
|
|
5214
5090
|
const status = await navigator.permissions.query({ name: "microphone" });
|
|
5215
5091
|
if (status.state === "denied") {
|
|
5216
|
-
|
|
5092
|
+
showMicError("Microphone access is blocked. Please enable it in your browser/app settings.");
|
|
5217
5093
|
} else {
|
|
5218
|
-
|
|
5094
|
+
showMicError("Microphone permission was not granted. Please try again and allow access when prompted.");
|
|
5219
5095
|
}
|
|
5220
5096
|
} catch {
|
|
5221
|
-
|
|
5097
|
+
showMicError("Could not access microphone. Please check your browser settings and allow microphone access for this site.");
|
|
5222
5098
|
}
|
|
5223
5099
|
} else {
|
|
5224
|
-
|
|
5100
|
+
showMicError("Could not access microphone: " + msg);
|
|
5225
5101
|
}
|
|
5226
5102
|
}
|
|
5227
|
-
}, [getSttProvider, stopRecording, focusPrompt]);
|
|
5103
|
+
}, [getSttProvider, stopRecording, focusPrompt, showMicError]);
|
|
5228
5104
|
const handleMicClick = useCallback(() => {
|
|
5229
5105
|
if (isRecording) {
|
|
5230
5106
|
stopRecording();
|
|
@@ -5260,6 +5136,15 @@ ${template}`;
|
|
|
5260
5136
|
onRemove: handleRemoveAttachment
|
|
5261
5137
|
}
|
|
5262
5138
|
),
|
|
5139
|
+
micError && /* @__PURE__ */ jsx(
|
|
5140
|
+
"div",
|
|
5141
|
+
{
|
|
5142
|
+
className: "mx-3 mt-3 rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-red-900/40 dark:bg-red-950/40 dark:text-red-200",
|
|
5143
|
+
role: "alert",
|
|
5144
|
+
"aria-live": "polite",
|
|
5145
|
+
children: micError
|
|
5146
|
+
}
|
|
5147
|
+
),
|
|
5263
5148
|
showSlashCommands && filteredSlashCommands.length > 0 && /* @__PURE__ */ jsx(
|
|
5264
5149
|
SlashCommandMenu,
|
|
5265
5150
|
{
|
|
@@ -5278,7 +5163,6 @@ ${template}`;
|
|
|
5278
5163
|
),
|
|
5279
5164
|
/* @__PURE__ */ jsxs(PromptInputActions, { className: "justify-between px-3", children: [
|
|
5280
5165
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
5281
|
-
/* @__PURE__ */ jsx(ModelSelector, { onModelChange: setSelectedModel }),
|
|
5282
5166
|
/* @__PURE__ */ jsx(ThinkingLevelSelector, {}),
|
|
5283
5167
|
/* @__PURE__ */ jsx(PersonaPicker, { onSelect: handlePersonaSelect }),
|
|
5284
5168
|
/* @__PURE__ */ jsx(CommandHelp, { onCommandSelect: (cmd) => handleValueChange(cmd + " ") })
|
|
@@ -5546,10 +5430,25 @@ function useChatSessions({
|
|
|
5546
5430
|
isNewChat,
|
|
5547
5431
|
forcedSessionKey
|
|
5548
5432
|
}) {
|
|
5433
|
+
const [isDocumentVisible, setIsDocumentVisible] = useState(() => {
|
|
5434
|
+
if (typeof document === "undefined") return true;
|
|
5435
|
+
return document.visibilityState === "visible";
|
|
5436
|
+
});
|
|
5437
|
+
useEffect(() => {
|
|
5438
|
+
if (typeof document === "undefined") return void 0;
|
|
5439
|
+
const handleVisibilityChange = () => {
|
|
5440
|
+
setIsDocumentVisible(document.visibilityState === "visible");
|
|
5441
|
+
};
|
|
5442
|
+
handleVisibilityChange();
|
|
5443
|
+
document.addEventListener("visibilitychange", handleVisibilityChange);
|
|
5444
|
+
return () => {
|
|
5445
|
+
document.removeEventListener("visibilitychange", handleVisibilityChange);
|
|
5446
|
+
};
|
|
5447
|
+
}, []);
|
|
5549
5448
|
const sessionsQuery = useQuery({
|
|
5550
5449
|
queryKey: chatQueryKeys.sessions,
|
|
5551
5450
|
queryFn: fetchSessions,
|
|
5552
|
-
refetchInterval: 3e4
|
|
5451
|
+
refetchInterval: isDocumentVisible ? 3e4 : false
|
|
5553
5452
|
});
|
|
5554
5453
|
const sessions = useMemo(() => {
|
|
5555
5454
|
const rawSessions = sessionsQuery.data ?? [];
|
|
@@ -6267,7 +6166,7 @@ const KeyboardShortcutsDialog = lazy(
|
|
|
6267
6166
|
}))
|
|
6268
6167
|
);
|
|
6269
6168
|
const SearchDialog = lazy(
|
|
6270
|
-
() => import("./search-dialog-
|
|
6169
|
+
() => import("./search-dialog-DR6zBnui.js").then((m) => ({
|
|
6271
6170
|
default: m.SearchDialog
|
|
6272
6171
|
}))
|
|
6273
6172
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "/root/opencami/src/routes/__root.tsx", "children": ["/", "/agents", "/bots", "/connect", "/dashboard", "/files", "/memory", "/new", "/skills", "/api/agents", "/api/cron", "/api/follow-ups", "/api/history", "/api/llm-features", "/api/models", "/api/paths", "/api/personas", "/api/ping", "/api/send", "/api/sessions", "/api/skills", "/api/stream", "/api/stt", "/api/tts", "/chat/$sessionKey", "/api/dashboard/crons", "/api/dashboard/gateway", "/api/dashboard/system", "/api/files/delete", "/api/files/download", "/api/files/info", "/api/files/list", "/api/files/mkdir", "/api/files/read", "/api/files/rename", "/api/files/save", "/api/files/upload"], "preloads": ["/assets/main-
|
|
1
|
+
const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "/root/opencami/src/routes/__root.tsx", "children": ["/", "/agents", "/bots", "/connect", "/dashboard", "/files", "/memory", "/new", "/skills", "/api/agents", "/api/cron", "/api/follow-ups", "/api/history", "/api/llm-features", "/api/models", "/api/paths", "/api/personas", "/api/ping", "/api/send", "/api/sessions", "/api/skills", "/api/stream", "/api/stt", "/api/tts", "/chat/$sessionKey", "/api/dashboard/crons", "/api/dashboard/gateway", "/api/dashboard/system", "/api/files/delete", "/api/files/download", "/api/files/info", "/api/files/list", "/api/files/mkdir", "/api/files/read", "/api/files/rename", "/api/files/save", "/api/files/upload"], "preloads": ["/assets/main-DBmooBKx.js"], "assets": [] }, "/": { "filePath": "/root/opencami/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-B551ln24.js"] }, "/agents": { "filePath": "/root/opencami/src/routes/agents.tsx", "assets": [], "preloads": ["/assets/agents-C6Ev94B1.js"] }, "/bots": { "filePath": "/root/opencami/src/routes/bots.tsx", "assets": [], "preloads": ["/assets/bots-B2_u-OmP.js"] }, "/connect": { "filePath": "/root/opencami/src/routes/connect.tsx", "assets": [], "preloads": ["/assets/connect-CSbeSBTn.js", "/assets/index-BxsgifDH.js", "/assets/button-DdG8c-XQ.js", "/assets/react-dSDkXQu6.js"] }, "/dashboard": { "filePath": "/root/opencami/src/routes/dashboard.tsx", "assets": [], "preloads": ["/assets/dashboard-DA1fTRcH.js", "/assets/useQuery-CtUiG53w.js"] }, "/files": { "filePath": "/root/opencami/src/routes/files.tsx", "assets": [], "preloads": ["/assets/files-PsZnGOUx.js"] }, "/memory": { "filePath": "/root/opencami/src/routes/memory.tsx", "assets": [], "preloads": ["/assets/memory-Bs8hOoEv.js"] }, "/new": { "filePath": "/root/opencami/src/routes/new.tsx", "assets": [], "preloads": ["/assets/new-DLlBm66g.js"] }, "/skills": { "filePath": "/root/opencami/src/routes/skills.tsx", "assets": [], "preloads": ["/assets/skills-pueagQNc.js"] }, "/api/agents": { "filePath": "/root/opencami/src/routes/api/agents.ts" }, "/api/cron": { "filePath": "/root/opencami/src/routes/api/cron.ts" }, "/api/follow-ups": { "filePath": "/root/opencami/src/routes/api/follow-ups.ts" }, "/api/history": { "filePath": "/root/opencami/src/routes/api/history.ts" }, "/api/llm-features": { "filePath": "/root/opencami/src/routes/api/llm-features.ts" }, "/api/models": { "filePath": "/root/opencami/src/routes/api/models.ts" }, "/api/paths": { "filePath": "/root/opencami/src/routes/api/paths.ts" }, "/api/personas": { "filePath": "/root/opencami/src/routes/api/personas.ts" }, "/api/ping": { "filePath": "/root/opencami/src/routes/api/ping.ts" }, "/api/send": { "filePath": "/root/opencami/src/routes/api/send.ts" }, "/api/sessions": { "filePath": "/root/opencami/src/routes/api/sessions.ts" }, "/api/skills": { "filePath": "/root/opencami/src/routes/api/skills.ts" }, "/api/stream": { "filePath": "/root/opencami/src/routes/api/stream.ts" }, "/api/stt": { "filePath": "/root/opencami/src/routes/api/stt.ts" }, "/api/tts": { "filePath": "/root/opencami/src/routes/api/tts.ts" }, "/chat/$sessionKey": { "filePath": "/root/opencami/src/routes/chat/$sessionKey.tsx", "assets": [], "preloads": ["/assets/_sessionKey-CNw4O2rY.js", "/assets/useQuery-CtUiG53w.js", "/assets/tooltip-CtHpm-sQ.js", "/assets/button-DdG8c-XQ.js", "/assets/useMutation-DckvFKPC.js", "/assets/use-file-explorer-state-C-D2CShe.js", "/assets/useBaseUiId-Ckx_aJky.js", "/assets/useControlled-8D4PSDAL.js", "/assets/popupStateMapping-CGDLUl5Y.js", "/assets/event-Dwf9IDxK.js", "/assets/CSPContext-nHSyQniZ.js", "/assets/DirectionContext-B1cuzwIr.js", "/assets/menu-ByR1BVmq.js", "/assets/opencami-logo-BV1uPYe6.js", "/assets/proxy-DYrSkM35.js", "/assets/markdown-Bpat4kTr.js", "/assets/index-BxsgifDH.js", "/assets/react-dSDkXQu6.js"] }, "/api/dashboard/crons": { "filePath": "/root/opencami/src/routes/api/dashboard/crons.ts" }, "/api/dashboard/gateway": { "filePath": "/root/opencami/src/routes/api/dashboard/gateway.ts" }, "/api/dashboard/system": { "filePath": "/root/opencami/src/routes/api/dashboard/system.ts" }, "/api/files/delete": { "filePath": "/root/opencami/src/routes/api/files/delete.ts" }, "/api/files/download": { "filePath": "/root/opencami/src/routes/api/files/download.ts" }, "/api/files/info": { "filePath": "/root/opencami/src/routes/api/files/info.ts" }, "/api/files/list": { "filePath": "/root/opencami/src/routes/api/files/list.ts" }, "/api/files/mkdir": { "filePath": "/root/opencami/src/routes/api/files/mkdir.ts" }, "/api/files/read": { "filePath": "/root/opencami/src/routes/api/files/read.ts" }, "/api/files/rename": { "filePath": "/root/opencami/src/routes/api/files/rename.ts" }, "/api/files/save": { "filePath": "/root/opencami/src/routes/api/files/save.ts" }, "/api/files/upload": { "filePath": "/root/opencami/src/routes/api/files/upload.ts" } }, "clientEntry": "/assets/main-DBmooBKx.js" });
|
|
2
2
|
export {
|
|
3
3
|
tsrStartManifest
|
|
4
4
|
};
|
package/dist/server/assets/{follow-up-suggestions-DhBZIszK.js → follow-up-suggestions-CSSc4PDe.js}
RENAMED
|
@@ -2,7 +2,7 @@ import { jsxs, jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState, useRef, useEffect, memo } from "react";
|
|
3
3
|
import { HugeiconsIcon } from "@hugeicons/react";
|
|
4
4
|
import { Loading03Icon, ArrowRight01Icon } from "@hugeicons/core-free-icons";
|
|
5
|
-
import { a as useLlmSettingsStore, b as getLlmHeaders } from "./_sessionKey-
|
|
5
|
+
import { a as useLlmSettingsStore, b as getLlmHeaders } from "./_sessionKey-LV6xK9IM.js";
|
|
6
6
|
import { c as cn } from "./button-CwY2OHFj.js";
|
|
7
7
|
import "@tanstack/react-router";
|
|
8
8
|
import "@tanstack/react-query";
|
|
@@ -26,7 +26,7 @@ import "remark-gfm";
|
|
|
26
26
|
import "./index-BEWnDAH6.js";
|
|
27
27
|
import "zustand/middleware";
|
|
28
28
|
import "react-dom";
|
|
29
|
-
import "./router-
|
|
29
|
+
import "./router-Cr2xCvGA.js";
|
|
30
30
|
import "node:crypto";
|
|
31
31
|
import "node:fs";
|
|
32
32
|
import "node:os";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect } from "react";
|
|
3
|
-
import { R as Route } from "./router-
|
|
3
|
+
import { R as Route } from "./router-Cr2xCvGA.js";
|
|
4
4
|
import "@tanstack/react-router";
|
|
5
5
|
import "@tanstack/react-query";
|
|
6
6
|
import "node:crypto";
|
|
@@ -12,7 +12,7 @@ import { execFile, execSync } from "node:child_process";
|
|
|
12
12
|
import { promisify } from "node:util";
|
|
13
13
|
import { readFile, mkdir, writeFile, rename, stat, readdir, rm, realpath, lstat } from "node:fs/promises";
|
|
14
14
|
import { posix } from "path";
|
|
15
|
-
const appCss = "/assets/styles-
|
|
15
|
+
const appCss = "/assets/styles-Ce2xZzc4.css";
|
|
16
16
|
const swRegisterScript = `
|
|
17
17
|
(() => {
|
|
18
18
|
// Skip PWA service worker inside Capacitor native shell — they conflict
|
|
@@ -370,11 +370,11 @@ const $$splitComponentImporter$2 = () => import("./agents-CmQ4vvXm.js");
|
|
|
370
370
|
const Route$t = createFileRoute("/agents")({
|
|
371
371
|
component: lazyRouteComponent($$splitComponentImporter$2, "component")
|
|
372
372
|
});
|
|
373
|
-
const $$splitComponentImporter$1 = () => import("./index-
|
|
373
|
+
const $$splitComponentImporter$1 = () => import("./index-DMKS4aeI.js");
|
|
374
374
|
const Route$s = createFileRoute("/")({
|
|
375
375
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
376
376
|
});
|
|
377
|
-
const $$splitComponentImporter = () => import("./_sessionKey-
|
|
377
|
+
const $$splitComponentImporter = () => import("./_sessionKey-LV6xK9IM.js").then((n) => n.$);
|
|
378
378
|
const Route$r = createFileRoute("/chat/$sessionKey")({
|
|
379
379
|
component: lazyRouteComponent($$splitComponentImporter, "component")
|
|
380
380
|
});
|
|
@@ -5,7 +5,7 @@ import { HugeiconsIcon } from "@hugeicons/react";
|
|
|
5
5
|
import { Search01Icon, Cancel01Icon, Loading03Icon } from "@hugeicons/core-free-icons";
|
|
6
6
|
import { D as DialogRoot, a as DialogContent } from "./use-file-explorer-state-s7CS50ho.js";
|
|
7
7
|
import { useQueryClient } from "@tanstack/react-query";
|
|
8
|
-
import { c as chatQueryKeys } from "./_sessionKey-
|
|
8
|
+
import { c as chatQueryKeys } from "./_sessionKey-LV6xK9IM.js";
|
|
9
9
|
import { c as cn } from "./button-CwY2OHFj.js";
|
|
10
10
|
import "@base-ui/react/dialog";
|
|
11
11
|
import "zustand";
|
|
@@ -26,7 +26,7 @@ import "remark-gfm";
|
|
|
26
26
|
import "./index-BEWnDAH6.js";
|
|
27
27
|
import "zustand/middleware";
|
|
28
28
|
import "react-dom";
|
|
29
|
-
import "./router-
|
|
29
|
+
import "./router-Cr2xCvGA.js";
|
|
30
30
|
import "node:crypto";
|
|
31
31
|
import "node:fs";
|
|
32
32
|
import "node:os";
|
|
@@ -8,7 +8,7 @@ import { D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescr
|
|
|
8
8
|
import { S as Switch } from "./switch-BbkUeVDV.js";
|
|
9
9
|
import { T as Tabs, a as TabsList, b as TabsTab } from "./tabs-DDFZob0m.js";
|
|
10
10
|
import { u as useChatSettings } from "./index-BEWnDAH6.js";
|
|
11
|
-
import { u as useLlmSettings, g as getLlmProviderDefaults } from "./_sessionKey-
|
|
11
|
+
import { u as useLlmSettings, g as getLlmProviderDefaults } from "./_sessionKey-LV6xK9IM.js";
|
|
12
12
|
import "@base-ui/react/merge-props";
|
|
13
13
|
import "@base-ui/react/use-render";
|
|
14
14
|
import "class-variance-authority";
|
|
@@ -35,7 +35,7 @@ import "react-markdown";
|
|
|
35
35
|
import "remark-breaks";
|
|
36
36
|
import "remark-gfm";
|
|
37
37
|
import "react-dom";
|
|
38
|
-
import "./router-
|
|
38
|
+
import "./router-Cr2xCvGA.js";
|
|
39
39
|
import "node:crypto";
|
|
40
40
|
import "node:fs";
|
|
41
41
|
import "node:os";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect } from "react";
|
|
3
|
-
import { C as Collapsible, d as CollapsibleTrigger, e as CollapsiblePanel } from "./_sessionKey-
|
|
3
|
+
import { C as Collapsible, d as CollapsibleTrigger, e as CollapsiblePanel } from "./_sessionKey-LV6xK9IM.js";
|
|
4
4
|
import { HugeiconsIcon } from "@hugeicons/react";
|
|
5
5
|
import { ArrowDown01Icon } from "@hugeicons/core-free-icons";
|
|
6
6
|
import { B as Button } from "./button-CwY2OHFj.js";
|
|
@@ -26,7 +26,7 @@ import "remark-gfm";
|
|
|
26
26
|
import "./index-BEWnDAH6.js";
|
|
27
27
|
import "zustand/middleware";
|
|
28
28
|
import "react-dom";
|
|
29
|
-
import "./router-
|
|
29
|
+
import "./router-Cr2xCvGA.js";
|
|
30
30
|
import "node:crypto";
|
|
31
31
|
import "node:fs";
|
|
32
32
|
import "node:os";
|