@yxp934/prompt-tree 0.3.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +8 -6
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/react-loadable-manifest.json +9 -1
- package/.next/standalone/.next/routes-manifest.json +12 -0
- package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/agent/route.js +2 -2
- package/.next/standalone/.next/server/app/api/agent/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-step/route.js +5 -0
- package/.next/standalone/.next/server/app/api/agent-step/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/agent-step/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/chat/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/embeddings/route.js +1 -0
- package/.next/standalone/.next/server/app/api/embeddings/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/embeddings/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/providers/health/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/providers/models/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/providers/test/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/mcp/call-tool/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/mcp/list-tools/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/mcp/test/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/python/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +2 -2
- package/.next/standalone/.next/server/app/index.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page.js +7 -3
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js +5 -2
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +8 -6
- package/.next/standalone/.next/server/chunks/270.js +2 -0
- package/.next/standalone/.next/server/chunks/471.js +4 -4
- package/.next/standalone/.next/server/chunks/732.js +4 -4
- package/.next/standalone/.next/server/chunks/734.js +1 -1
- package/.next/standalone/.next/server/chunks/815.js +1 -0
- package/.next/standalone/.next/server/functions-config-manifest.json +2 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/static/chunks/379-4a9ebb3f3e23a072.js +1 -0
- package/.next/standalone/.next/static/chunks/618-fe65295d23f513e9.js +30 -0
- package/.next/standalone/.next/static/chunks/619.cfe242be4c0b83c0.js +1 -0
- package/.next/standalone/.next/static/chunks/991-3901e4f7973e3bc4.js +4 -0
- package/.next/standalone/.next/static/chunks/9b0008ae.ebbbe0264e8b748d.js +2 -0
- package/.next/standalone/.next/static/chunks/app/_global-error/page-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-step/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/chat/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/embeddings/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/providers/health/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/providers/models/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/providers/test/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/mcp/call-tool/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/mcp/list-tools/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/mcp/test/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/python/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/search/route-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/{layout-7950581b06dcfcd2.js → layout-a6642f336c41f8a8.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/page-86696f7cf6c50ff2.js +3 -0
- package/.next/standalone/.next/static/chunks/app/settings/page-4b5b4a44edd184b3.js +4 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-0eb119f31700800c.js +1 -0
- package/.next/standalone/.next/static/chunks/webpack-d7f56a24ad86f880.js +1 -0
- package/.next/standalone/.next/static/css/06344f8f74fa92db.css +1 -0
- package/.next/standalone/.next/static/x3zkptkvP5NCSRahifp2M/_buildManifest.js +1 -0
- package/.next/standalone/package.json +2 -1
- package/README.md +27 -6
- package/README.zh-CN.md +27 -6
- package/package.json +2 -1
- package/.next/standalone/.next/server/chunks/689.js +0 -1
- package/.next/standalone/.next/static/chunks/308-9aca2a7bf1797568.js +0 -2
- package/.next/standalone/.next/static/chunks/394-dc41566095beafcf.js +0 -30
- package/.next/standalone/.next/static/chunks/787-12058ee9986bdbfc.js +0 -1
- package/.next/standalone/.next/static/chunks/app/_global-error/page-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/providers/health/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/providers/models/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/providers/test/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/mcp/call-tool/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/mcp/list-tools/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/mcp/test/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/python/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/search/route-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-c273f2f3b7ce1609.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/page-76e3d482410f0adc.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f941084711d16ad3.js +0 -1
- package/.next/standalone/.next/static/chunks/webpack-03a911206b5adca4.js +0 -1
- package/.next/standalone/.next/static/css/100bba9d1b2ebade.css +0 -1
- package/.next/standalone/.next/static/i6P3teUAVQJ-hEG3Y6KV0/_buildManifest.js +0 -1
- /package/.next/standalone/.next/static/{i6P3teUAVQJ-hEG3Y6KV0 → x3zkptkvP5NCSRahifp2M}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
package/.next/standalone/.next/static/chunks/app/api/providers/health/route-0eb119f31700800c.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
package/.next/standalone/.next/static/chunks/app/api/providers/models/route-0eb119f31700800c.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
package/.next/standalone/.next/static/chunks/app/api/tools/mcp/call-tool/route-0eb119f31700800c.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
package/.next/standalone/.next/static/chunks/app/api/tools/mcp/list-tools/route-0eb119f31700800c.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46,164,167,233,276,348,429,669,703,777,779,819,851,856,895,896,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{1010:(e,t,r)=>{"use strict";let n;r.d(t,{A:()=>s});let o="u">typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),u=new Uint8Array(16),l=[];for(let e=0;e<256;++e)l.push((e+256).toString(16).slice(1));let s=function(e,t,r){if(o&&!t&&!e)return o();var s=e,a=r;let c=(s=s||{}).random??s.rng?.()??function(){if(!n){if("u"<typeof crypto||!crypto.getRandomValues)throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");n=crypto.getRandomValues.bind(crypto)}return n(u)}();if(c.length<16)throw Error("Random bytes length must be >= 16");if(c[6]=15&c[6]|64,c[8]=63&c[8]|128,t){if((a=a||0)<0||a+16>t.length)throw RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[a+e]=c[e];return t}return function(e,t=0){return(l[e[t+0]]+l[e[t+1]]+l[e[t+2]]+l[e[t+3]]+"-"+l[e[t+4]]+l[e[t+5]]+"-"+l[e[t+6]]+l[e[t+7]]+"-"+l[e[t+8]]+l[e[t+9]]+"-"+l[e[t+10]]+l[e[t+11]]+l[e[t+12]]+l[e[t+13]]+l[e[t+14]]+l[e[t+15]]).toLowerCase()}(c)}},1535:(e,t,r)=>{"use strict";r.d(t,{P:()=>u});var n=r(2115);let o=e=>e;function u(e,t=o){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r}},1743:()=>{},4151:(e,t,r)=>{"use strict";r.d(t,{default:()=>c});var n=r(5155),o=r(2115),u=r(
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{1010:(e,t,r)=>{"use strict";let n;r.d(t,{A:()=>s});let o="u">typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),u=new Uint8Array(16),l=[];for(let e=0;e<256;++e)l.push((e+256).toString(16).slice(1));let s=function(e,t,r){if(o&&!t&&!e)return o();var s=e,a=r;let c=(s=s||{}).random??s.rng?.()??function(){if(!n){if("u"<typeof crypto||!crypto.getRandomValues)throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");n=crypto.getRandomValues.bind(crypto)}return n(u)}();if(c.length<16)throw Error("Random bytes length must be >= 16");if(c[6]=15&c[6]|64,c[8]=63&c[8]|128,t){if((a=a||0)<0||a+16>t.length)throw RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[a+e]=c[e];return t}return function(e,t=0){return(l[e[t+0]]+l[e[t+1]]+l[e[t+2]]+l[e[t+3]]+"-"+l[e[t+4]]+l[e[t+5]]+"-"+l[e[t+6]]+l[e[t+7]]+"-"+l[e[t+8]]+l[e[t+9]]+"-"+l[e[t+10]]+l[e[t+11]]+l[e[t+12]]+l[e[t+13]]+l[e[t+14]]+l[e[t+15]]).toLowerCase()}(c)}},1535:(e,t,r)=>{"use strict";r.d(t,{P:()=>u});var n=r(2115);let o=e=>e;function u(e,t=o){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r}},1743:()=>{},4151:(e,t,r)=>{"use strict";r.d(t,{default:()=>c});var n=r(5155),o=r(2115),u=r(8618);function l(){let e=(0,u.CU)(e=>e.theme);return(0,o.useEffect)(()=>{let t=document.documentElement;t.dataset.theme=e,t.style.colorScheme=e},[e]),null}function s(){let e=(0,u.CU)(e=>e.locale);return(0,o.useEffect)(()=>{document.documentElement.lang=e},[e]),null}function a(){return(0,o.useEffect)(()=>{let e=u.jL.getState();e.hydrateUiFromStorage(),e.hydrateToolsFromStorage(),e.loadProviders(),e.hydrateLLMSettingsFromStorage(),e.hydrateLongTermMemorySettingsFromStorage()},[]),null}function c(){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a,{}),(0,n.jsx)(l,{}),(0,n.jsx)(s,{})]})}},5867:(e,t,r)=>{"use strict";r.d(t,{y:()=>o});let n=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,u={setState:n,getState:o,getInitialState:()=>l,subscribe:e=>(r.add(e),()=>r.delete(e))},l=t=e(n,o,u);return u},o=e=>e?n(e):n},9965:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,1743,23)),Promise.resolve().then(r.bind(r,4151))}},e=>{e.O(0,[334,618,441,794,358],()=>e(e.s=9965)),_N_E=e.O()}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{109:(e,t,r)=>{Promise.resolve().then(r.bind(r,6794))},6794:(e,t,r)=>{"use strict";r.d(t,{default:()=>eH});var n=r(5155),o=r(2115),a=r(513),s=r(8353),l=r(3308),i=r(1115),d=r(8618),c=r(6728);function m({variant:e="primary",className:t="",...r}){return(0,n.jsx)("button",{type:"button",className:`inline-flex items-center justify-center rounded-[10px] px-4 py-2 font-body text-[0.85rem] font-medium transition-all duration-150 disabled:cursor-not-allowed disabled:opacity-60 ${{primary:"bg-ink text-cream hover:bg-charcoal",secondary:"border border-parchment bg-paper text-ink hover:border-copper hover:bg-copper-glow",ghost:"bg-transparent text-clay hover:bg-paper hover:text-ink"}[e]} ${t}`,...r})}var p=r(966);function u(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",className:"h-full w-full",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13"})})}function x(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",className:"h-full w-full",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M5 12h14M12 5l7 7-7 7"})})}function h({onSend:e,onAttachFiles:t,disabled:r,modelLabel:l,temperatureLabel:i,tokenLabel:d,modelOptions:c=[],selectedModels:h=[],onSelectedModelsChange:f,selectedTools:g=[],onSelectedToolsChange:b,toolSettings:v}){let j=(0,a.k)(),[y,w]=(0,o.useState)(""),[k,N]=(0,o.useState)(!1),[C,S]=(0,o.useState)(!1),_=(0,o.useRef)(null),M=(0,o.useRef)(null),U=(0,o.useRef)(null),E=(0,o.useRef)(null);(0,o.useEffect)(()=>{_.current&&(_.current.style.height="auto",_.current.style.height=`${Math.min(_.current.scrollHeight,180)}px`)},[y]);let T=async()=>{let t=y.trim();t&&(await e(t),w(""))},I=(0,o.useMemo)(()=>new Set(h.map(s.R)),[h]),A=(0,o.useMemo)(()=>new Set(g),[g]),L=(0,o.useMemo)(()=>[{id:"web_search",title:j("chat.input.tool.webSearch"),subtitle:"Exa / Tavily"},{id:"python",title:j("chat.input.tool.python"),subtitle:j("chat.input.tool.pythonSubtitle")},...(v?.mcp.servers??[]).map(e=>({id:`mcp:${e.id}`,title:e.name||e.id,subtitle:`MCP \xb7 ${e.transport} \xb7 ${e.id}`}))],[j,v?.mcp.servers]);return(0,o.useEffect)(()=>{if(!k&&!C)return;let e=e=>{let t=e.target;M.current&&M.current.contains(t)||U.current&&U.current.contains(t)||(N(!1),S(!1))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[k,C]),(0,n.jsxs)("div",{className:"input-area-gradient shrink-0 px-8 pb-6 pt-5",children:[(0,n.jsxs)("div",{className:"relative max-w-[680px]",children:[(0,n.jsx)("textarea",{ref:_,className:"min-h-[60px] max-h-[180px] w-full resize-none rounded-2xl border border-parchment bg-paper px-6 py-4 pr-[120px] font-body text-[0.95rem] text-ink outline-none transition-all duration-200 placeholder:text-sand focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)]",placeholder:j("chat.input.placeholder"),rows:1,value:y,disabled:r,onChange:e=>w(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),T())}}),(0,n.jsxs)("div",{className:"absolute bottom-3 right-3 flex gap-2",children:[(0,n.jsx)("button",{type:"button",className:"flex h-9 w-9 items-center justify-center rounded-[10px] bg-transparent text-sand transition-all duration-150 hover:bg-cream hover:text-ink disabled:opacity-50",disabled:r,"aria-label":j("chat.input.attach"),onClick:()=>E.current?.click(),children:(0,n.jsx)("div",{className:"h-[18px] w-[18px]",children:(0,n.jsx)(u,{})})}),(0,n.jsx)("input",{ref:E,className:"hidden",type:"file",multiple:!0,accept:(0,p.X)(),onChange:e=>{let r=Array.from(e.target.files??[]);r.length>0&&t?.(r),e.target.value=""}}),(0,n.jsx)(m,{variant:"primary",className:"h-10 w-10 rounded-[10px] px-0 hover:scale-105",disabled:r||!y.trim(),"aria-label":j("chat.input.send"),onClick:()=>void T(),children:(0,n.jsx)("div",{className:"h-7 w-7",children:(0,n.jsx)(x,{})})})]})]}),(0,n.jsxs)("div",{className:"mt-2 flex max-w-[680px] items-center gap-3 px-1 font-mono text-[0.7rem] text-sand",children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,n.jsx)("div",{className:"h-[32px] min-w-0 flex-1 overflow-y-auto whitespace-normal break-words pr-1 leading-[1.25]",children:l?j("chat.input.modelMeta",{model:l,tempPart:i?j("chat.input.tempPart",{temp:i}):""}):j("chat.input.modelMetaNone")}),c.length>0&&f?(0,n.jsxs)("div",{ref:M,className:"relative shrink-0",children:[(0,n.jsxs)("button",{type:"button",className:"flex w-[118px] items-center justify-between rounded-[10px] border border-parchment bg-paper px-3 py-1.5 text-[0.7rem] text-sand transition-all duration-150 hover:border-copper hover:text-ink",onClick:()=>N(e=>!e),disabled:r,children:[(0,n.jsx)("span",{children:j("chat.input.models")}),(0,n.jsxs)("span",{className:"rounded-full bg-cream px-2 py-0.5 font-mono text-[0.65rem] text-clay",children:[h.length,"/",c.length]})]}),k&&(0,n.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-[260px] rounded-xl border border-parchment bg-paper p-3 shadow-[0_16px_40px_rgba(35,31,28,0.18)]",children:[(0,n.jsxs)("div",{className:"mb-2 flex items-center justify-between text-[0.65rem] uppercase tracking-[0.12em] text-sand",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{children:j("chat.input.enabledModels")}),(0,n.jsxs)("span",{className:"rounded-full bg-cream px-2 py-0.5 font-mono text-[0.65rem] text-clay",children:[h.length,"/",c.length]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{type:"button",className:"rounded-md border border-parchment px-2 py-1 text-[0.6rem] text-sand hover:border-copper hover:text-ink",onClick:()=>f(c.map(e=>({providerId:e.providerId,modelId:e.modelId}))),children:j("common.selectAll")}),(0,n.jsx)("button",{type:"button",className:"rounded-md border border-parchment px-2 py-1 text-[0.6rem] text-sand hover:border-copper hover:text-ink",onClick:()=>f([]),children:j("common.clear")})]})]}),(0,n.jsx)("div",{className:"max-h-[240px] space-y-2 overflow-y-auto pr-1",children:c.map(e=>{let t=I.has((0,s.R)(e));return(0,n.jsxs)("button",{type:"button",className:`flex w-full items-center gap-3 rounded-lg border px-3 py-2 text-left transition-all ${t?"border-copper/50 bg-copper/10":"border-parchment/30 bg-shoji-white hover:border-copper/40"}`,onClick:()=>(e=>{if(!f)return;let t=(0,s.R)(e);f(I.has(t)?h.filter(e=>(0,s.R)(e)!==t):[...h,{providerId:e.providerId,modelId:e.modelId}])})(e),children:[(0,n.jsx)("span",{className:`flex h-4.5 w-4.5 items-center justify-center rounded border text-[0.6rem] ${t?"border-copper bg-copper text-white":"border-parchment bg-transparent text-transparent"}`,children:"✓"}),(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsx)("div",{className:"font-mono text-[0.75rem] text-ink",children:e.modelId}),(0,n.jsx)("div",{className:"text-[0.65rem] text-sand",children:e.providerName})]})]},`${e.providerId}-${e.modelId}`)})})]})]}):null,b?(0,n.jsxs)("div",{ref:U,className:"relative shrink-0",children:[(0,n.jsxs)("button",{type:"button",className:"flex w-[118px] items-center justify-between rounded-[10px] border border-parchment bg-paper px-3 py-1.5 text-[0.7rem] text-sand transition-all duration-150 hover:border-copper hover:text-ink",onClick:()=>S(e=>!e),disabled:r,children:[(0,n.jsx)("span",{children:j("common.tools")}),(0,n.jsx)("span",{className:"rounded-full bg-cream px-2 py-0.5 font-mono text-[0.65rem] text-clay",children:g.length})]}),C&&(0,n.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-[240px] rounded-xl border border-parchment bg-paper p-3 shadow-[0_16px_40px_rgba(35,31,28,0.18)]",children:[(0,n.jsxs)("div",{className:"mb-2 flex items-center justify-between text-[0.65rem] uppercase tracking-[0.12em] text-sand",children:[(0,n.jsx)("span",{children:j("chat.input.toolUse")}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{type:"button",className:"rounded-md border border-parchment px-2 py-1 text-[0.6rem] text-sand hover:border-copper hover:text-ink",onClick:()=>{b&&b(L.map(e=>e.id))},children:j("common.selectAll")}),(0,n.jsx)("button",{type:"button",className:"rounded-md border border-parchment px-2 py-1 text-[0.6rem] text-sand hover:border-copper hover:text-ink",onClick:()=>b([]),children:j("common.clear")})]})]}),(0,n.jsx)("div",{className:"max-h-[240px] space-y-2 overflow-y-auto pr-1",children:L.map(e=>{let t=A.has(e.id);return(0,n.jsxs)("button",{type:"button",className:`flex w-full items-center gap-3 rounded-lg border px-3 py-2 text-left transition-all ${t?"border-copper/50 bg-copper/10":"border-parchment/30 bg-shoji-white hover:border-copper/40"}`,onClick:()=>{var t;return t=e.id,void(!b||b(A.has(t)?g.filter(e=>e!==t):[...g,t]))},children:[(0,n.jsx)("span",{className:`flex h-4.5 w-4.5 items-center justify-center rounded border text-[0.6rem] ${t?"border-copper bg-copper text-white":"border-parchment bg-transparent text-transparent"}`,children:"✓"}),(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsx)("div",{className:"font-mono text-[0.75rem] text-ink",children:e.title}),(0,n.jsx)("div",{className:"text-[0.65rem] text-sand",children:e.subtitle})]})]},e.id)})})]})]}):null]}),(0,n.jsx)("span",{className:"shrink-0 whitespace-nowrap",children:d??""})]})]})}var f=r(1766),g=r(7348);let b=["think","analysis","reasoning","thinking","thought","thoughts"],v=RegExp(`<\\s*(${b.join("|")})\\b[^>]*>`,"gi");function j(e){return function(e){let t=e.split(/\r?\n/),r=[],n=[],o=!1,a=[],s=()=>{if(0===a.length)return;let e=a.join("\n");a=[];let t=function(e){let t=[],r="",n=0;for(;;){v.lastIndex=n;let o=v.exec(e);if(!o)break;let a=o.index,s=a+o[0].length,l=(o[1]??"").toLowerCase();r+=e.slice(n,a);let i=RegExp(`</\\s*${l}\\s*>`,"gi");i.lastIndex=s;let d=i.exec(e);if(!d){t.push(e.slice(s)),n=e.length;break}t.push(e.slice(s,d.index)),n=d.index+d[0].length}return r+=e.slice(n),{visible:r=r.replace(RegExp(`</\\s*(${b.join("|")})\\s*>`,"gi"),""),thinkingBlocks:t}}(e);r.push(t.visible),n.push(...t.thinkingBlocks)};for(let e of t){if(e.trimStart().startsWith("```")){o||s(),o=!o,r.push(e);continue}if(o){r.push(e);continue}a.push(e)}return s(),{visible:r.join("\n"),thinkingBlocks:n}}(e)}var y=r(8426),w=r(2957);function k({content:e}){return(0,n.jsx)(y.oz,{remarkPlugins:[w.A],components:{p:({children:e,...t})=>(0,n.jsx)("p",{className:"whitespace-pre-wrap",...t,children:e}),li:({children:e,...t})=>(0,n.jsx)("li",{className:"whitespace-pre-wrap",...t,children:e})},children:e})}function N(){return(0,n.jsxs)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M8 8h9a2 2 0 012 2v9a2 2 0 01-2 2H8a2 2 0 01-2-2v-9a2 2 0 012-2z"}),(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M6 16H5a2 2 0 01-2-2V5a2 2 0 012-2h9a2 2 0 012 2v1"})]})}function C(){return(0,n.jsxs)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M3 12a9 9 0 0115.3-6.36M21 12a9 9 0 01-15.3 6.36"}),(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M3 4v6h6M21 20v-6h-6"})]})}function S(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M5 12l5 5L19 7"})})}function _(e,t=1800){if("string"==typeof e)return e.length>t?`${e.slice(0,t)}…`:e;try{let r=JSON.stringify(e,null,2);return r.length>t?`${r.slice(0,t)}…`:r}catch{return"[unserializable]"}}function M({node:e}){let t,r,s=(0,a.k)(),l=(0,d.CU)(e=>e.isSending),i=(r=(t=e.type===c.Z.ASSISTANT?e.metadata.modelName??s("node.author.assistant"):e.type===c.Z.USER?s("node.author.you"):e.type===c.Z.SYSTEM?s("node.author.system"):s("node.author.compressed")).trim()?t.trim()[0].toUpperCase():"?",{role:e.type===c.Z.USER?"human":e.type===c.Z.ASSISTANT?"machine":"system",author:t,avatar:r}),m=(0,g.GP)(new Date(e.createdAt),"HH:mm"),p=e.type===c.Z.COMPRESSED?e.summary??e.content:e.content,u=e.type===c.Z.ASSISTANT?j(p):null,x=u?u.visible:p,h=e.type===c.Z.ASSISTANT,f=e.type===c.Z.USER,b=(0,d.CU)(e=>e.retryAssistant),v=(0,d.CU)(e=>e.toolSettings.mcp.servers),[y,w]=(0,o.useState)(!1),[M,U]=(0,o.useState)(!1),E=(0,o.useRef)(null),T=e.metadata.toolLogs??[];return(0,o.useEffect)(()=>()=>{E.current&&window.clearTimeout(E.current)},[]),(0,n.jsxs)("div",{className:"animate-message-in mb-8 max-w-[680px]",children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center gap-3",children:[(0,n.jsx)("div",{className:`flex h-8 w-8 items-center justify-center rounded-full font-display text-[0.9rem] italic text-cream ${"human"===i.role?"bg-human":"machine"===i.role?"bg-machine":"bg-system"}`,children:i.avatar}),(0,n.jsx)("span",{className:"text-[0.9rem] font-medium text-ink",children:i.author}),(0,n.jsx)("span",{className:"font-mono text-[0.7rem] text-sand",children:m})]}),f&&e.metadata.toolUses&&e.metadata.toolUses.length>0?(0,n.jsx)("div",{className:"-mt-1 mb-3 flex flex-wrap gap-2 pl-11",children:e.metadata.toolUses.map(e=>(0,n.jsx)("span",{className:"rounded-full border border-parchment bg-paper px-2.5 py-1 font-mono text-[0.65rem] text-sand",title:s("chat.message.toolUseEnabledTitle"),children:(()=>{if("web_search"===e)return s("chat.input.tool.webSearch");if("python"===e)return s("chat.input.tool.python");if("mcp"===e)return"MCP";if(e.startsWith("mcp:")){let t=e.slice(4).trim(),r=v.find(e=>e.id===t)??null;return r?`MCP \xb7 ${r.name}`:`MCP \xb7 ${t||e}`}return e})()},e))}):null,(0,n.jsx)("div",{className:"prose-prompt-tree pl-11 text-[0.95rem] leading-relaxed text-charcoal",children:h&&l&&!x.trim()?(0,n.jsx)("span",{className:"font-mono text-[0.85rem] text-sand",children:s("chat.thinking")}):(0,n.jsx)(k,{content:x})}),h&&T.length>0?(0,n.jsxs)("div",{className:"mt-4 pl-11",children:[(0,n.jsxs)("button",{type:"button",className:"flex items-center gap-2 rounded-xl border border-parchment bg-paper px-4 py-2 text-left font-mono text-[0.7rem] text-sand transition-all duration-150 hover:border-copper hover:text-ink",onClick:()=>U(e=>!e),children:[(0,n.jsx)("span",{className:"font-semibold text-ink",children:s("common.tools")}),(0,n.jsx)("span",{className:"rounded-full bg-cream px-2 py-0.5 text-[0.65rem] text-clay",children:T.length}),(0,n.jsx)("span",{className:"ml-auto text-[0.65rem] text-sand",children:M?s("common.hide"):s("common.show")})]}),M?(0,n.jsx)("div",{className:"mt-2 space-y-2",children:T.map(e=>{let t="number"==typeof e.endedAt?`${Math.max(0,e.endedAt-e.startedAt)}ms`:"running"===e.status?s("chat.tool.status.running"):"",r="success"===e.status?s("chat.tool.status.ok"):"error"===e.status?s("chat.tool.status.error"):s("chat.tool.status.running");return(0,n.jsxs)("div",{className:"rounded-xl border border-parchment bg-shoji-white px-4 py-3",children:[(0,n.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3",children:[(0,n.jsx)("div",{className:"font-mono text-[0.75rem] text-ink",children:e.tool}),(0,n.jsxs)("div",{className:"flex items-center gap-2 font-mono text-[0.65rem] text-sand",children:[(0,n.jsx)("span",{className:"error"===e.status?"text-red-500":"",children:r}),t?(0,n.jsx)("span",{children:t}):null]})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mb-1 font-mono text-[0.65rem] uppercase tracking-[0.12em] text-sand",children:s("chat.tool.args")}),(0,n.jsx)("pre",{className:"max-h-[180px] overflow-auto rounded-lg bg-paper px-3 py-2 font-mono text-[0.7rem] text-ink",children:_(e.args)})]}),"error"===e.status?(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mb-1 font-mono text-[0.65rem] uppercase tracking-[0.12em] text-sand",children:s("chat.tool.error")}),(0,n.jsx)("pre",{className:"max-h-[180px] overflow-auto rounded-lg bg-red-50 px-3 py-2 font-mono text-[0.7rem] text-red-700",children:e.error??s("chat.tool.unknownError")})]}):null,"success"===e.status?(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mb-1 font-mono text-[0.65rem] uppercase tracking-[0.12em] text-sand",children:s("chat.tool.result")}),(0,n.jsx)("pre",{className:"max-h-[220px] overflow-auto rounded-lg bg-paper px-3 py-2 font-mono text-[0.7rem] text-ink",children:_(e.result)})]}):null]})]},e.id)})}):null]}):null,h?(0,n.jsxs)("div",{className:"mt-3 flex justify-end gap-2 pl-11",children:[(0,n.jsxs)("button",{type:"button",className:"flex items-center gap-1.5 rounded-full border border-parchment px-3 py-1 text-[0.65rem] text-sand transition-all duration-150 hover:border-copper hover:text-ink disabled:opacity-50",onClick:()=>{(async()=>{try{await navigator.clipboard.writeText(x),w(!0),E.current&&window.clearTimeout(E.current),E.current=window.setTimeout(()=>{w(!1)},1600)}catch{}})()},disabled:l,"aria-label":s("chat.message.copyResponseAria"),children:[(0,n.jsx)("div",{className:"h-3.5 w-3.5",children:y?(0,n.jsx)(S,{}):(0,n.jsx)(N,{})}),y?s("common.copied"):s("common.copy")]}),(0,n.jsxs)("button",{type:"button",className:"flex items-center gap-1.5 rounded-full border border-parchment px-3 py-1 text-[0.65rem] text-sand transition-all duration-150 hover:border-copper hover:text-ink disabled:opacity-50",onClick:()=>void b(e.id),disabled:l,"aria-label":s("chat.message.retryResponseAria"),children:[(0,n.jsx)("div",{className:"h-3.5 w-3.5",children:(0,n.jsx)(C,{})}),s("chat.message.retry")]})]}):null]})}function U(){let e=(0,a.k)();return(0,n.jsxs)("div",{className:"mb-8 max-w-[680px]",children:[(0,n.jsx)("div",{className:"mb-3 flex items-center gap-3",children:(0,n.jsx)("div",{className:"flex h-8 w-8 items-center justify-center rounded-full bg-machine font-display text-[0.9rem] italic text-cream",children:"…"})}),(0,n.jsxs)("div",{className:"flex items-center gap-3 pl-11 text-[0.85rem] text-sand",children:[(0,n.jsxs)("div",{className:"flex gap-1",children:[(0,n.jsx)("span",{className:"animate-typing h-1.5 w-1.5 rounded-full bg-copper"}),(0,n.jsx)("span",{className:"animate-typing animate-typing-delay-1 h-1.5 w-1.5 rounded-full bg-copper"}),(0,n.jsx)("span",{className:"animate-typing animate-typing-delay-2 h-1.5 w-1.5 rounded-full bg-copper"})]}),(0,n.jsx)("span",{children:e("chat.thinking")})]})]})}function E({messages:e,isSending:t,error:r}){let s=(0,a.k)(),l=(0,o.useRef)(null),i=(0,o.useRef)(!0),d=(()=>{for(let t=e.length-1;t>=0;t-=1)if(e[t]?.type===c.Z.USER)return t;return -1})(),m=d>=0?e.slice(d+1).some(e=>e.type===c.Z.ASSISTANT):e.some(e=>e.type===c.Z.ASSISTANT),p=t&&!m;return(0,o.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>{i.current=e.scrollHeight-e.scrollTop-e.clientHeight<96};return e.addEventListener("scroll",t,{passive:!0}),t(),()=>e.removeEventListener("scroll",t)},[]),(0,o.useEffect)(()=>{let e=l.current;if(!e||!i.current)return;let r=window.requestAnimationFrame(()=>{e.scrollTo({top:e.scrollHeight,behavior:t?"auto":"smooth"})});return()=>window.cancelAnimationFrame(r)},[e,t]),(0,n.jsxs)("div",{ref:l,className:"min-h-0 overflow-y-auto p-8",children:[e.map(e=>(0,n.jsx)(M,{node:e},e.id)),r?(0,n.jsx)("div",{className:"mb-6 max-w-[680px] rounded-xl border border-[#e74c3c]/30 bg-[#e74c3c]/10 p-4 font-body text-[0.85rem] text-[#b1382c]",children:(0,f.d)(r)?s(r):r}):null,p?(0,n.jsx)(U,{}):null]})}function T(){let e=(0,a.k)(),t=(0,d.CU)(e=>e.locale),r=(0,d.CU)(e=>e.nodes),m=(0,d.CU)(e=>e.activeNodeId),p=(0,d.CU)(e=>e.getCurrentTree()),u=(0,d.CU)(e=>e.folders),x=(0,d.CU)(e=>e.isLoading),f=(0,d.CU)(e=>e.isSending),g=(0,d.CU)(e=>e.llmError??e.error),b=(0,d.CU)(e=>e.providers),v=(0,d.CU)(e=>e.model),j=(0,d.CU)(e=>e.temperature),y=(0,d.CU)(e=>e.contextBox),w=(0,d.CU)(e=>e.selectedModels),k=(0,d.CU)(e=>e.setSelectedModels),N=(0,d.CU)(e=>e.toolSettings),C=(0,d.CU)(e=>e.draftToolUses),S=(0,d.CU)(e=>e.setDraftToolUses),_=(0,d.CU)(e=>e.addFilesToContext),M=(0,d.CU)(e=>e.sendMessage),U=(0,o.useMemo)(()=>(function(e,t){let r=function(e,t){if(!t)return[];let r=new Set,n=[],o=e.get(t)??null;for(;o&&!r.has(o.id)&&(r.add(o.id),n.unshift(o),o.parentId);)o=e.get(o.parentId)??null;return n}(e,t);if(0===r.length)return[];let n=[...r].reverse().findIndex(e=>e.type===c.Z.USER);if(-1===n)return r;let o=r.length-1-n,a=r[o],s=Array.from(e.values()).filter(e=>e.parentId===a.id&&e.type===c.Z.ASSISTANT).sort((e,t)=>e.createdAt-t.createdAt);return s.length<=1?r:[...r.slice(0,o+1),...s]})(r,m).filter(e=>e.type!==c.Z.SYSTEM),[r,m]),T=(0,o.useMemo)(()=>(0,s.n)(b),[b]),I=(0,o.useMemo)(()=>{let e=p?.folderId??null;if(!e)return T;let t=u.get(e)??null,r=t?.enabledModels;if(null==r)return T;let n=new Set(r.map(s.R));return T.filter(e=>n.has((0,s.R)(e)))},[p?.folderId,T,u]);(0,o.useEffect)(()=>{let e=p?.folderId??null;if(!e)return;let t=u.get(e)??null;if(null==t?.enabledModels)return;let r=new Set(I.map(s.R)),n=w.filter(e=>r.has((0,s.R)(e)));n.length!==w.length&&k(n)},[p?.folderId,I,u,w,k]);let A=(0,o.useMemo)(()=>{if(0===w.length)return v;let e=new Map(T.map(e=>[(0,s.R)(e),e]));return w.map(t=>{let r=e.get((0,s.R)(t));return r?.modelId??t.modelId}).join(", ")},[w,T,v]),L=(0,o.useMemo)(()=>(0,i.d)(C,N).reduce((e,t)=>e+(0,l.b)(t.content),0),[C,N]),R=y&&y.maxTokens?e("chat.contextTokens",{used:(y.totalTokens+L).toLocaleString(t),max:y.maxTokens.toLocaleString(t)}):"";return p?(0,n.jsxs)("div",{className:"grid min-h-0 flex-1 grid-rows-[minmax(0,1fr)_auto] overflow-hidden",children:[(0,n.jsx)(E,{messages:U,isSending:f,error:g}),(0,n.jsx)(h,{onSend:async e=>{await M(e)},onAttachFiles:async e=>{await _(e)},disabled:x||f,modelLabel:A,temperatureLabel:j.toFixed(1),tokenLabel:R,modelOptions:I,selectedModels:w,onSelectedModelsChange:k,selectedTools:C,onSelectedToolsChange:S,toolSettings:N})]}):(0,n.jsx)("div",{className:"flex min-h-0 flex-1 items-center justify-center p-8 text-sand",children:e(x?"common.loading":"chat.noConversationLoaded")})}var I=r(8500),A=r.n(I),L=r(7734),R=r(6623),D=r(4395),P=r(1379);function F({open:e,title:t,description:r,confirmText:o,cancelText:s,confirmDisabled:l=!1,onConfirm:i,onClose:d}){let c=(0,a.k)(),p=o??c("common.delete"),u=s??c("common.cancel");return(0,n.jsxs)(P.a,{open:e,title:t,onClose:d,children:[r?(0,n.jsx)("div",{className:"text-[0.9rem] leading-relaxed text-clay",children:r}):null,(0,n.jsxs)("div",{className:"mt-6 flex items-center justify-end gap-2",children:[(0,n.jsx)(m,{variant:"secondary",onClick:d,disabled:l,children:u}),(0,n.jsx)(m,{className:"bg-[#e74c3c] text-white hover:bg-[#d64533]",onClick:i,disabled:l,children:p})]})]})}function $({className:e="",...t}){return(0,n.jsx)("input",{className:`w-full rounded-xl border border-parchment bg-paper px-4 py-3 font-body text-[0.9rem] text-ink outline-none transition-all duration-200 placeholder:text-sand focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)] ${e}`,...t})}function B({className:e=""}){return(0,n.jsx)("svg",{className:e,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M3 6h18M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"})})}var z=r(6492),W=r(297),Z=r(4138),O=r(7369),K=r(2672),V=r(51);let H=new(r(279)).w,Y=new Map;async function q(e,t=60){let r=await H.read(e);if(!r)return[];let n=[r],o=[r.id],a=new Set([r.id]);for(;o.length>0&&n.length<t;){let e=o.shift();if(e)for(let r of(await H.getChildren(e))){if(n.length>=t)break;a.has(r.id)||(a.add(r.id),n.push(r),o.push(r.id))}}return n}function X({treeId:e,rootId:t,revision:r,className:s=""}){let l=(0,a.k)(),i=Y.get(e),d=i?.revision===r?i.geometry:null,[c,m]=(0,o.useState)(d);(0,o.useEffect)(()=>{if(d)return void m(d);let n=!1;return m(null),(async()=>{let o=function(e,t){let r=(0,V.$u)(e,t,{xSpacing:160,ySpacing:90}),n=function(e){let t=1/0,r=-1/0,n=1/0,o=-1/0;for(let a of e.values())t=Math.min(t,a.x),r=Math.max(r,a.x),n=Math.min(n,a.y),o=Math.max(o,a.y);return Number.isFinite(t)&&Number.isFinite(n)?{minX:t,maxX:r,minY:n,maxY:o}:null}(r);if(!n)return{circles:[],lines:[]};let o=Math.max(1,n.maxX-n.minX),a=Math.max(1,n.maxY-n.minY),s=e=>({x:14+(e.x-n.minX)/o*172,y:14+(e.y-n.minY)/a*92}),l=new Set(e.map(e=>e.id)),i=[],d=[];for(let n of e){let e=r.get(n.id);if(!e)continue;let o=s(e);if(i.push({x:o.x,y:o.y,r:n.id===t?4:3,kind:n.id===t?"root":"node"}),n.parentId&&l.has(n.parentId)){let e=r.get(n.parentId);if(!e)continue;let t=s(e);d.push({x1:t.x,y1:t.y,x2:o.x,y2:o.y})}}return{circles:i,lines:d}}(await q(t),t);n||(Y.set(e,{revision:r,geometry:o}),m(o))})(),()=>{n=!0}},[d,r,t,e]);let p=(0,o.useMemo)(()=>c?(0,n.jsxs)("svg",{viewBox:"0 0 200 120",className:"h-full w-full",children:[(0,n.jsx)("g",{className:"stroke-parchment/80",strokeWidth:"1.25",children:c.lines.map((e,t)=>(0,n.jsx)("line",{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2},`${e.x1}-${e.y1}-${e.x2}-${e.y2}-${t}`))}),(0,n.jsx)("g",{children:c.circles.map((e,t)=>(0,n.jsx)("circle",{cx:e.x,cy:e.y,r:e.r,className:"root"===e.kind?"fill-copper stroke-ink/10":"fill-ink/60 stroke-ink/10"},`${e.x}-${e.y}-${t}`))})]}):null,[c]);return(0,n.jsx)("div",{className:`relative h-[74px] w-[124px] overflow-hidden rounded-xl border border-parchment bg-cream/60 ${s}`,"aria-label":l("folder.threadPreviewAria"),children:p??(0,n.jsx)("div",{className:"h-full w-full animate-pulse bg-parchment/25"})})}function J(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",className:"h-4 w-4",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 4v16m8-8H4"})})}function G({open:e}){return(0,n.jsx)("svg",{width:"16",height:"16",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",className:`transition-transform duration-200 ${e?"rotate-180":""}`,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M19 9l-7 7-7-7"})})}function Q(){let e=(0,a.k)(),t=(0,d.CU)(e=>e.locale),r=(0,d.CU)(e=>e.currentFolderId),l=(0,d.CU)(e=>e.getCurrentFolder()),i=(0,d.CU)(e=>e.folders),c=(0,d.CU)(e=>e.trees),p=(0,d.CU)(e=>e.loadTree),u=(0,d.CU)(e=>e.createTreeInFolder),x=(0,d.CU)(e=>e.deleteTree),h=(0,d.CU)(e=>e.deleteFolder),f=(0,d.CU)(e=>e.updateFolderName),g=(0,d.CU)(e=>e.updateFolderSystemPrompt),b=(0,d.CU)(e=>e.updateFolderEnabledModels),v=(0,d.CU)(e=>e.updateFolderMemoryRag),j=(0,d.CU)(e=>e.getCurrentTree()),y=(0,d.CU)(e=>e.contextBox),w=(0,d.CU)(e=>e.upsertFileBlock),k=(0,d.CU)(e=>e.removeFromContext),N=(0,d.CU)(e=>e.longTermMemorySettings),C=(0,d.CU)(e=>e.providers),S=(0,o.useMemo)(()=>(0,s.n)(C),[C]),_=(0,o.useMemo)(()=>r?Array.from(c.values()).filter(e=>(e.folderId??null)===r).slice().sort((e,t)=>t.updatedAt-e.updatedAt):[],[r,c]),[M,U]=(0,o.useState)(""),[E,T]=(0,o.useState)(""),[I,V]=(0,o.useState)(!1),[H,Y]=(0,o.useState)(!1),[q,Q]=(0,o.useState)(!0),[ee,et]=(0,o.useState)(!0),[er,en]=(0,o.useState)(!0),[eo,ea]=(0,o.useState)(!1),[es,el]=(0,o.useState)(new Set),ei=(0,o.useRef)(!0),ed=(0,o.useRef)(null),ec=(0,o.useRef)(null),em=(0,o.useRef)(null);ed.current||(ed.current=new O.g),ec.current||(ec.current=new K.$),em.current||(em.current=new z.r);let[ep,eu]=(0,o.useState)(5),[ex,eh]=(0,o.useState)(5),[ef,eg]=(0,o.useState)(""),[eb,ev]=(0,o.useState)(""),[ej,ey]=(0,o.useState)(null),[ew,ek]=(0,o.useState)(null),[eN,eC]=(0,o.useState)(""),[eS,e_]=(0,o.useState)("active"),[eM,eU]=(0,o.useState)(!1),[eE,eT]=(0,o.useState)([]),[eI,eA]=(0,o.useState)(null),[eL,eR]=(0,o.useState)(!1),[eD,eP]=(0,o.useState)(null),[eF,e$]=(0,o.useState)(""),[eB,ez]=(0,o.useState)(""),[eW,eZ]=(0,o.useState)(null),[eO,eK]=(0,o.useState)(!1),[eV,eH]=(0,o.useState)(null),[eY,eq]=(0,o.useState)(!1);(0,o.useEffect)(()=>(ei.current=!0,()=>{ei.current=!1}),[]),(0,o.useEffect)(()=>{U(l?.name??""),T(l?.systemPrompt??"")},[l?.id,l?.name,l?.systemPrompt]),(0,o.useEffect)(()=>{eu(l?.memoryRag?.topKFolder??5),eh(l?.memoryRag?.topKUser??5)},[l?.id,l?.memoryRag?.topKFolder,l?.memoryRag?.topKUser]),(0,o.useEffect)(()=>{if(!r)return;let e=!1;return(async()=>{try{let t=await ed.current.read(r);if(e)return;eg(JSON.stringify(t.data,null,2)),ev((0,Z.Q)(t)),ey(null)}catch(t){if(e)return;ey(t instanceof Error?t.message:"Failed to load folder doc.")}})(),()=>{e=!0}},[r]);let eX=(0,o.useMemo)(()=>{if(!l)return[];if(null==l.enabledModels)return S;let e=new Set(l.enabledModels.map(s.R));return S.filter(t=>e.has((0,s.R)(t)))},[S,l]),eJ=(0,o.useMemo)(()=>l?null==l.enabledModels?e("folder.models.allEnabled"):0===eX.length?e("folder.models.none"):e("folder.models.selectedCount",{count:eX.length}):"",[l,eX.length,e]),eG=eV?.kind==="folder"?e("sidebar.confirmDeleteFolderTitle"):e("sidebar.confirmDeleteThreadTitle"),eQ=eV&&"folder"===eV.kind&&eV.threadCount>0?e("sidebar.confirmDeleteFolderThreadNote",{count:eV.threadCount}):"",e0=eV&&"folder"===eV.kind?e("sidebar.confirmDeleteFolderBody",{name:eV.name,threadNote:eQ}):eV&&"thread"===eV.kind?e("sidebar.confirmDeleteThreadBody",{title:eV.title}):null,e2=async()=>{if(r){eU(!0),eA(null);try{let e=await ec.current.list({scope:"folder",folderId:r,..."all"===eS?{}:{status:eS}});eT(e)}catch(e){eA(e instanceof Error?e.message:"Failed to load folder memories.")}finally{eU(!1)}}};(0,o.useEffect)(()=>{e2()},[r,eS]);let e1=(0,o.useMemo)(()=>{let e=eN.trim().toLowerCase();return e?eE.filter(t=>`${t.text}
|
|
2
|
+
${t.tags.join(" ")}
|
|
3
|
+
${t.status}`.toLowerCase().includes(e)):eE},[eE,eN]),e5=()=>{eO||(eR(!1),eP(null))},e4=async e=>{if(!j||!y)return;let t=(0,W.fP)(e.id),r=(0,W.G3)(e.id),n=y.blocks.some(e=>"file"===e.kind&&e.id===r),o=y.blocks.some(e=>"file"===e.kind&&e.id===t);(n||o)&&(n&&o&&k(t),await w((0,W.W4)({item:e,pinned:n}),j.rootId))},e3=async()=>{if(eD&&!eO){eK(!0),eZ(null);try{let t=eF.trim(),r=eB.split(",").map(e=>e.trim()).filter(Boolean);if(!t||0===r.length)return void eZ(e("settings.memory.memories.editor.invalid"));let n=await ec.current.edit({id:eD.id,text:t,tags:r});await e4(n),await e2(),eR(!1),eP(null)}catch(e){eZ(e instanceof Error?e.message:"Failed to save memory.")}finally{eK(!1)}}},e6=async e=>{try{await ec.current.softDelete(e.id),k((0,W.fP)(e.id)),k((0,W.G3)(e.id)),await e2()}catch(e){eA(e instanceof Error?e.message:"Failed to delete memory.")}},e7=async e=>{try{await ec.current.restore(e.id),await e2()}catch(e){eA(e instanceof Error?e.message:"Failed to restore memory.")}},[e8,e9]=(0,o.useState)(!1),te=async t=>{let r=N.embeddingModel;if(r){e9(!0);try{let n=await em.current.embedWithSelection({providers:C,selection:r,text:t.text});if(!n)throw Error(e("errors.missingApiKey"));await ec.current.updateEmbedding({id:t.id,embedding:n.embedding,embeddingModelKey:n.embeddingModelKey}),await e2(),eA(null)}catch(e){eA(e instanceof Error?e.message:"Embedding failed.")}finally{e9(!1)}}},tt=async()=>{if(r){ey(null);try{let t=JSON.parse(ef);if("object"!=typeof t||null===t||Array.isArray(t))return void ey(e("folder.folderDoc.invalidJson"));let n=await ed.current.replaceData(r,t);eg(JSON.stringify(n.data,null,2));let o=(0,Z.Q)(n);ev(o),ek(Date.now());let a=(0,W.TH)(r),s=y?.blocks.some(e=>"file"===e.kind&&e.id===a)??!1;j&&j.folderId===r&&s&&await w((0,W.hr)({folderId:r,markdown:o}),j.rootId)}catch(t){ey(t instanceof Error?t.message:e("folder.folderDoc.invalidJson"))}}},tr=()=>{l&&(el(new Set(null==l.enabledModels?S.map(s.R):l.enabledModels.map(s.R))),ea(!0))};return r?l||i.has(r)?(0,n.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-paper",children:[(0,n.jsx)("div",{className:"border-b border-parchment bg-paper px-6 py-6 lg:px-8",children:(0,n.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mb-2 font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:e("folder.label")}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,n.jsx)("div",{className:"min-w-[220px] flex-1",children:(0,n.jsx)($,{value:M,placeholder:e("folder.namePlaceholder",{count:20}),className:"h-[46px] py-0",onChange:e=>{var t;let r;U((t=e.target.value,(r=Array.from(t)).length<=20?t:r.slice(0,20).join("")))},onBlur:()=>{l&&M!==l.name&&f(l.id,M)}})}),(0,n.jsxs)(m,{className:"h-[46px] shrink-0 gap-2 px-5",onClick:()=>void u(r),children:[(0,n.jsx)(J,{}),e("folder.newThread")]}),(0,n.jsxs)(m,{variant:"secondary",className:"h-[46px] shrink-0 gap-2 px-5 border-[#e74c3c]/40 text-[#e74c3c] hover:border-[#e74c3c] hover:bg-[#e74c3c]/10",onClick:()=>{l&&eH({kind:"folder",id:l.id,name:l.name,threadCount:_.length})},children:[(0,n.jsx)(B,{}),e("folder.deleteFolder")]})]})]}),(0,n.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,n.jsxs)("div",{className:"rounded-2xl border border-parchment bg-cream p-4 shadow-[0_10px_28px_rgba(26,24,22,0.06)]",children:[(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-3 text-left",onClick:()=>V(e=>!e),children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:e("folder.systemPrompt.title")}),I?(0,n.jsx)("div",{className:"mt-1 line-clamp-1 text-[0.85rem] text-clay",children:E.trim()?E.trim():e("folder.systemPrompt.collapsedEmpty")}):null]}),(0,n.jsx)("div",{className:"text-sand",children:(0,n.jsx)(G,{open:!I})})]}),I?null:(0,n.jsxs)("div",{className:"mt-3",children:[(0,n.jsx)("textarea",{value:E,placeholder:e("folder.systemPrompt.placeholder"),onChange:e=>T(e.target.value),onBlur:()=>{l&&E!==l.systemPrompt&&g(l.id,E)},className:"min-h-[120px] w-full resize-none rounded-xl border border-parchment bg-paper px-4 py-3 font-body text-[0.9rem] leading-relaxed text-ink outline-none transition-all duration-200 placeholder:text-sand focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)]"}),(0,n.jsx)("div",{className:"mt-2 font-mono text-[0.7rem] text-sand",children:e("folder.systemPrompt.note")})]})]}),(0,n.jsxs)("div",{className:"rounded-2xl border border-parchment bg-cream p-4 shadow-[0_10px_28px_rgba(26,24,22,0.06)]",children:[(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-3 text-left",onClick:()=>Y(e=>!e),children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:e("folder.models.title")}),H?(0,n.jsx)("div",{className:"mt-1 text-[0.85rem] text-clay",children:eJ}):null]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 text-sand",children:[(0,n.jsx)("span",{className:"rounded-full border border-parchment bg-paper px-2 py-0.5 font-mono text-[0.65rem] text-clay",children:eX.length}),(0,n.jsx)(G,{open:!H})]})]}),H?null:(0,n.jsx)("div",{className:"mt-3",children:0===S.length?(0,n.jsxs)("div",{className:"rounded-xl border border-parchment bg-paper p-4 text-[0.85rem] text-clay",children:[e("folder.models.noneEnabled")," ",(0,n.jsx)(A(),{href:"/settings",className:"text-ink underline underline-offset-2",children:e("folder.models.configureInSettings")}),"."]}):(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:e("folder.models.help")}),(0,n.jsx)("button",{type:"button",className:"rounded-lg border border-parchment bg-paper px-3 py-2 text-[0.75rem] text-ink transition-all duration-150 hover:border-copper hover:bg-copper-glow",onClick:e=>{e.stopPropagation(),tr()},children:e("common.edit")})]}),(0,n.jsx)("button",{type:"button",className:"flex w-full flex-wrap gap-2 rounded-xl border border-parchment bg-paper p-4 text-left transition-all duration-150 hover:border-copper",onClick:()=>tr(),children:0===eX.length?(0,n.jsx)("span",{className:"text-[0.85rem] text-clay",children:e("folder.models.noneSelected")}):eX.map(e=>(0,n.jsx)("span",{className:"rounded-full border border-parchment bg-cream px-3 py-1 font-mono text-[0.7rem] text-ink",title:e.label,children:e.label},`${e.providerId}:${e.modelId}`))})]})})]})]}),(0,n.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,n.jsxs)("div",{className:"rounded-2xl border border-parchment bg-cream p-4 shadow-[0_10px_28px_rgba(26,24,22,0.06)]",children:[(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-3 text-left",onClick:()=>Q(e=>!e),children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:e("folder.memoryRag.title")}),q?(0,n.jsx)("div",{className:"mt-1 text-[0.85rem] text-clay",children:e("folder.memoryRag.summary",{folder:ep,user:ex})}):null]}),(0,n.jsx)("div",{className:"text-sand",children:(0,n.jsx)(G,{open:!q})})]}),q?null:(0,n.jsxs)("div",{className:"mt-4 space-y-4",children:[(0,n.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,n.jsxs)("label",{className:"space-y-2",children:[(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:e("folder.memoryRag.topKFolder")}),(0,n.jsx)("input",{type:"number",min:0,max:20,className:"w-full rounded-xl border border-parchment bg-paper px-4 py-3 font-body text-[0.9rem] text-ink outline-none transition-all duration-200 focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)]",value:ep,onChange:e=>eu(Number(e.target.value)),onBlur:()=>{if(!l)return;let e=Math.max(0,Math.min(20,Math.round(ep||0))),t=Math.max(0,Math.min(20,Math.round(ex||0)));eu(e),eh(t);let r=l.memoryRag?.topKFolder??5,n=l.memoryRag?.topKUser??5;(e!==r||t!==n)&&v(l.id,{topKFolder:e,topKUser:t})}})]}),(0,n.jsxs)("label",{className:"space-y-2",children:[(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:e("folder.memoryRag.topKUser")}),(0,n.jsx)("input",{type:"number",min:0,max:20,className:"w-full rounded-xl border border-parchment bg-paper px-4 py-3 font-body text-[0.9rem] text-ink outline-none transition-all duration-200 focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)]",value:ex,onChange:e=>eh(Number(e.target.value)),onBlur:()=>{if(!l)return;let e=Math.max(0,Math.min(20,Math.round(ep||0))),t=Math.max(0,Math.min(20,Math.round(ex||0)));eu(e),eh(t);let r=l.memoryRag?.topKFolder??5,n=l.memoryRag?.topKUser??5;(e!==r||t!==n)&&v(l.id,{topKFolder:e,topKUser:t})}})]})]}),(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:e("folder.memoryRag.note")})]})]}),(0,n.jsxs)("div",{className:"rounded-2xl border border-parchment bg-cream p-4 shadow-[0_10px_28px_rgba(26,24,22,0.06)]",children:[(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-3 text-left",onClick:()=>et(e=>!e),children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:e("folder.folderDoc.title")}),ee?(0,n.jsx)("div",{className:"mt-1 line-clamp-1 text-[0.85rem] text-clay",children:eb.trim()?eb.split("\n")[0]:"…"}):null]}),(0,n.jsx)("div",{className:"text-sand",children:(0,n.jsx)(G,{open:!ee})})]}),ee?null:(0,n.jsxs)("div",{className:"mt-4 space-y-4",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:ew?new Date(ew).toLocaleString(t):""}),(0,n.jsx)("button",{type:"button",className:"rounded-lg bg-matcha-green px-4 py-2 text-sm text-shoji-white transition-all duration-200 hover:bg-matcha-green/90",onClick:()=>void tt(),children:e("folder.folderDoc.save")})]}),ej?(0,n.jsx)("div",{className:"rounded-xl border border-[#e74c3c]/30 bg-[#e74c3c]/10 p-3 text-sm text-[#b1382c]",children:ej}):null,(0,n.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,n.jsxs)("label",{className:"space-y-2",children:[(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:e("folder.folderDoc.json")}),(0,n.jsx)("textarea",{value:ef,onChange:e=>eg(e.target.value),className:"min-h-[220px] w-full resize-none rounded-xl border border-parchment bg-paper px-4 py-3 font-mono text-[0.75rem] leading-relaxed text-ink outline-none transition-all duration-200 focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)]"})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:e("folder.folderDoc.markdown")}),(0,n.jsx)("pre",{className:"min-h-[220px] overflow-auto rounded-xl border border-parchment bg-paper p-4 font-mono text-[0.75rem] text-ink",children:eb})]})]})]})]})]}),(0,n.jsxs)("div",{className:"rounded-2xl border border-parchment bg-cream p-4 shadow-[0_10px_28px_rgba(26,24,22,0.06)]",children:[(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-3 text-left",onClick:()=>en(e=>!e),children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:e("folder.folderMemories.title")}),er?(0,n.jsx)("div",{className:"mt-1 text-[0.85rem] text-clay",children:eM?e("common.loading"):e("folder.folderMemories.summary",{count:e1.length,total:eE.length})}):null]}),(0,n.jsx)("div",{className:"text-sand",children:(0,n.jsx)(G,{open:!er})})]}),er?null:(0,n.jsxs)("div",{className:"mt-4 space-y-4",children:[(0,n.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[(0,n.jsx)("input",{className:"w-full rounded-xl border border-parchment bg-paper px-4 py-3 font-body text-[0.9rem] text-ink outline-none transition-all duration-200 focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)] md:col-span-1",value:eN,placeholder:e("folder.folderMemories.searchPlaceholder"),onChange:e=>eC(e.target.value)}),(0,n.jsxs)("select",{className:"w-full rounded-xl border border-parchment bg-paper px-4 py-3 font-body text-[0.9rem] text-ink outline-none transition-all duration-200 focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)]",value:eS,onChange:e=>e_("deleted"===e.target.value?"deleted":"superseded"===e.target.value?"superseded":"active"===e.target.value?"active":"all"),children:[(0,n.jsx)("option",{value:"all",children:e("settings.memory.memories.status.all")}),(0,n.jsx)("option",{value:"active",children:e("settings.memory.memories.status.active")}),(0,n.jsx)("option",{value:"deleted",children:e("settings.memory.memories.status.deleted")}),(0,n.jsx)("option",{value:"superseded",children:e("settings.memory.memories.status.superseded")})]}),(0,n.jsx)("button",{type:"button",className:"rounded-lg border border-parchment bg-paper px-3 py-2 text-[0.85rem] text-ink transition-all duration-150 hover:border-copper hover:bg-copper-glow disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>void e2(),disabled:eM,children:e("common.refresh")})]}),eI?(0,n.jsx)("div",{className:"rounded-xl border border-[#e74c3c]/30 bg-[#e74c3c]/10 p-3 text-sm text-[#b1382c]",children:eI}):null,0===e1.length?(0,n.jsx)("div",{className:"rounded-xl border border-parchment bg-paper p-4 text-[0.85rem] text-clay",children:e("folder.folderMemories.empty")}):(0,n.jsx)("div",{className:"space-y-3",children:e1.map(r=>(0,n.jsxs)("div",{className:"rounded-2xl border border-parchment bg-paper p-4",children:[(0,n.jsxs)("div",{className:"mb-2 flex flex-wrap items-center justify-between gap-3 font-mono text-[0.7rem] text-sand",children:[(0,n.jsx)("span",{children:r.status}),(0,n.jsx)("span",{children:new Date(r.updatedAt).toLocaleString(t)})]}),(0,n.jsx)("div",{className:"line-clamp-3 whitespace-pre-wrap text-[0.9rem] leading-relaxed text-ink",children:r.text}),r.tags.length?(0,n.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:r.tags.slice(0,8).map(e=>(0,n.jsx)("span",{className:"rounded-full border border-parchment bg-cream px-3 py-1 font-mono text-[0.65rem] text-ink",children:e},e))}):null,(0,n.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[(0,n.jsx)("button",{type:"button",className:"rounded-lg border border-parchment bg-cream px-3 py-2 text-[0.8rem] text-ink transition-all duration-150 hover:border-copper hover:bg-copper-glow",onClick:()=>{eP(r),e$(r.text),ez(r.tags.join(", ")),eZ(null),eR(!0)},children:e("common.edit")}),"deleted"===r.status?(0,n.jsx)("button",{type:"button",className:"rounded-lg border border-parchment bg-cream px-3 py-2 text-[0.8rem] text-ink transition-all duration-150 hover:border-copper hover:bg-copper-glow",onClick:()=>void e7(r),children:e("settings.memory.memories.restore")}):(0,n.jsx)("button",{type:"button",className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-[0.8rem] text-red-600 transition-all duration-150 hover:bg-red-100",onClick:()=>void e6(r),children:e("settings.memory.memories.delete")}),N.embeddingModel?(0,n.jsx)("button",{type:"button",className:"rounded-lg border border-parchment bg-cream px-3 py-2 text-[0.8rem] text-ink transition-all duration-150 hover:border-copper hover:bg-copper-glow disabled:cursor-not-allowed disabled:opacity-50",disabled:e8,onClick:()=>void te(r),children:e("settings.memory.memories.reembed")}):null]})]},r.id))})]})]})]})}),(0,n.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:[(0,n.jsx)("div",{className:"border-b border-parchment bg-paper/50 px-6 py-3 lg:px-8",children:(0,n.jsx)("div",{className:"font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:e("folder.threads.title",{count:_.length})})}),(0,n.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 lg:px-8",children:0===_.length?(0,n.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-4 rounded-2xl border border-dashed border-parchment bg-cream p-10 text-center",children:[(0,n.jsx)("div",{className:"font-display text-[1.2rem] text-ink",children:e("folder.threads.empty.title")}),(0,n.jsx)("div",{className:"max-w-[42ch] text-[0.9rem] leading-relaxed text-clay",children:e("folder.threads.empty.description")}),(0,n.jsxs)(m,{className:"gap-2",onClick:()=>void u(r),children:[(0,n.jsx)(J,{}),e("folder.threads.empty.action")]})]}):(0,n.jsx)("div",{className:"space-y-3",children:_.map(r=>{let o=(0,L.m)(new Date(r.updatedAt),{addSuffix:!0,locale:"zh-CN"===t?R.g:D.c});return(0,n.jsxs)("div",{className:"group relative",children:[(0,n.jsxs)("button",{type:"button",className:"flex w-full items-stretch justify-between gap-5 rounded-2xl border border-parchment bg-paper p-4 text-left shadow-[0_8px_24px_rgba(26,24,22,0.05)] transition-all duration-200 hover:-translate-y-px hover:border-copper hover:shadow-[0_14px_38px_rgba(184,115,51,0.12)]",onClick:()=>void p(r.id),children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"mb-1 flex items-start justify-between gap-3",children:(0,n.jsx)("div",{className:"truncate text-[0.95rem] font-medium text-ink",children:r.title})}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-3 font-mono text-[0.7rem] text-sand",children:[(0,n.jsx)("span",{children:o}),(0,n.jsxs)("span",{className:"opacity-70",children:["id: ",r.id.slice(0,8)]})]})]}),(0,n.jsx)(X,{treeId:r.id,rootId:r.rootId,revision:r.updatedAt,className:"shrink-0"})]}),(0,n.jsx)("button",{type:"button",className:"absolute right-4 top-4 z-10 rounded-md p-1 text-sand opacity-0 transition-all duration-150 hover:bg-paper hover:text-[#e74c3c] group-hover:opacity-100","aria-label":e("folder.deleteThreadAria"),onClick:()=>eH({kind:"thread",id:r.id,title:r.title}),children:(0,n.jsx)(B,{})})]},r.id)})})})]}),(0,n.jsx)(P.a,{open:eo,title:e("folder.models.picker.title"),onClose:()=>ea(!1),children:(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:e("folder.models.picker.description")}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{type:"button",className:"rounded-lg border border-parchment bg-paper px-3 py-2 text-[0.75rem] text-sand transition-all duration-150 hover:border-copper hover:text-ink",onClick:()=>el(new Set(S.map(s.R))),children:e("common.selectAll")}),(0,n.jsx)("button",{type:"button",className:"rounded-lg border border-parchment bg-paper px-3 py-2 text-[0.75rem] text-sand transition-all duration-150 hover:border-copper hover:text-ink",onClick:()=>el(new Set),children:e("common.clear")})]})]}),(0,n.jsx)("div",{className:"max-h-[52vh] space-y-2 overflow-y-auto rounded-xl border border-parchment bg-paper p-3",children:S.map(e=>{let t=(0,s.R)(e),r=es.has(t);return(0,n.jsxs)("button",{type:"button",className:`flex w-full items-center gap-3 rounded-lg border px-3 py-2 text-left transition-all ${r?"border-copper/50 bg-copper/10":"border-parchment/30 bg-shoji-white hover:border-copper/40"}`,onClick:()=>{let t;return t=(0,s.R)(e),void el(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},children:[(0,n.jsx)("span",{className:`flex h-4.5 w-4.5 items-center justify-center rounded border text-[0.6rem] ${r?"border-copper bg-copper text-white":"border-parchment bg-transparent text-transparent"}`,children:"✓"}),(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsx)("div",{className:"font-mono text-[0.8rem] text-ink",children:e.modelId}),(0,n.jsx)("div",{className:"text-[0.65rem] text-sand",children:e.providerName})]})]},t)})}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{className:"font-mono text-[0.75rem] text-sand",children:[e("folder.models.picker.selected")," ",(0,n.jsx)("span",{className:"font-medium text-ink",children:es.size})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(m,{variant:"secondary",onClick:()=>ea(!1),children:e("common.cancel")}),(0,n.jsx)(m,{onClick:()=>{if(!l)return;let e=new Set(S.map(s.R)),t=Array.from(es).filter(t=>e.has(t)),r=S.filter(e=>es.has((0,s.R)(e))).map(e=>({providerId:e.providerId,modelId:e.modelId})),n=t.length===e.size?null:r;b(l.id,n),ea(!1)},children:e("common.save")})]})]})]})}),(0,n.jsx)(P.a,{open:eL,title:e("settings.memory.memories.editor.title"),onClose:e5,children:(0,n.jsxs)("div",{className:"space-y-4",children:[eW?(0,n.jsx)("div",{className:"rounded-xl border border-[#e74c3c]/30 bg-[#e74c3c]/10 p-3 text-sm text-[#b1382c]",children:eW}):null,(0,n.jsxs)("label",{className:"space-y-2",children:[(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:e("settings.memory.memories.editor.text")}),(0,n.jsx)("textarea",{value:eF,onChange:e=>e$(e.target.value),className:"min-h-[160px] w-full resize-none rounded-xl border border-parchment bg-paper px-4 py-3 font-body text-[0.9rem] leading-relaxed text-ink outline-none transition-all duration-200 focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)]"})]}),(0,n.jsxs)("label",{className:"space-y-2",children:[(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:e("settings.memory.memories.editor.tags")}),(0,n.jsx)("input",{value:eB,onChange:e=>ez(e.target.value),className:"w-full rounded-xl border border-parchment bg-paper px-4 py-3 font-body text-[0.9rem] text-ink outline-none transition-all duration-200 focus:border-copper focus:shadow-[0_0_0_3px_var(--copper-glow)]"})]}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-2",children:[(0,n.jsx)(m,{variant:"secondary",onClick:e5,disabled:eO,children:e("common.cancel")}),(0,n.jsx)(m,{onClick:()=>void e3(),disabled:eO,children:eO?e("common.loading"):e("common.save")})]})]})}),(0,n.jsx)(F,{open:null!=eV,title:eG,description:e0,confirmText:e("common.delete"),cancelText:e("common.cancel"),confirmDisabled:eY,onConfirm:()=>{eV&&!eY&&(eq(!0),(async()=>{try{"thread"===eV.kind?await x(eV.id):await h(eV.id),ei.current&&eH(null)}finally{ei.current&&eq(!1)}})())},onClose:()=>{eY||eH(null)}})]}):(0,n.jsx)("div",{className:"flex min-h-0 flex-1 items-center justify-center p-10 text-sand",children:e("folder.empty.notFound")}):(0,n.jsx)("div",{className:"flex min-h-0 flex-1 items-center justify-center p-10 text-sand",children:e("folder.empty.selectFolder")})}var ee=r(7650),et=r(6161),er=r(9157),en=r(125);r(3235);let eo="application/x-prompt-tree-node-id";function ea(){return(0,n.jsx)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M8 6h.01M8 12h.01M8 18h.01M16 6h.01M16 12h.01M16 18h.01"})})}let es=(0,o.memo)(function({data:e}){let t=(0,a.k)(),r=(0,d.CU)(e=>e.locale),s=e.node,l=s.type===c.Z.COMPRESSED,i=s.metadata.collapsed??!1,m=s.type===c.Z.ASSISTANT?s.metadata.modelName??t("node.author.assistant"):s.type===c.Z.USER?t("node.author.you"):s.type===c.Z.SYSTEM?t("node.author.system"):t("node.author.compressed"),p=(0,o.useMemo)(()=>{if(s.type===c.Z.COMPRESSED)return s.summary??t("tree.node.emptySummary");let e=s.content.trim()?s.content:t("tree.node.emptyContent");return s.type===c.Z.ASSISTANT?j(e).visible:e},[s,t]),u=e.isActive?"shadow-[0_10px_36px_rgba(184,115,51,0.32),0_0_0_2px_var(--copper)]":e.isSelected?"shadow-[0_8px_28px_rgba(26,24,22,0.18),0_0_0_2px_rgba(196,189,180,0.9)]":e.isInActivePath?"shadow-[0_8px_28px_rgba(26,24,22,0.14),0_0_0_1px_rgba(184,115,51,0.35)]":"shadow-[0_8px_28px_rgba(26,24,22,0.12),0_0_0_1px_rgba(255,255,255,0.08)]";return(0,n.jsxs)("div",{className:`node-transition group relative w-[200px] cursor-pointer rounded-[18px] px-4 py-3 ${function(e){switch(e){case c.Z.SYSTEM:return"bg-gradient-to-br from-system to-[#3d4a5c] text-cream";case c.Z.USER:return"bg-gradient-to-br from-human to-[#5a4a3f] text-cream";case c.Z.ASSISTANT:return"bg-gradient-to-br from-machine to-[#3a5432] text-cream";case c.Z.COMPRESSED:return"bg-gradient-to-br from-copper to-[#9a5e2a] text-cream"}}(s.type)} ${u}`,"data-prompt-tree-node-type":s.type,"data-node-id":s.id,children:[(0,n.jsx)(et.h7,{type:"target",position:et.yX.Left,className:"!h-2.5 !w-2.5 !border-0 !bg-[rgba(250,249,247,0.55)] opacity-0 transition-opacity duration-150 group-hover:opacity-100"}),(0,n.jsx)(et.h7,{type:"source",position:et.yX.Right,className:"!h-2.5 !w-2.5 !border-0 !bg-[rgba(250,249,247,0.55)] opacity-0 transition-opacity duration-150 group-hover:opacity-100"}),(0,n.jsxs)("div",{className:"mb-1 flex items-center gap-2",children:[(0,n.jsx)("button",{className:"flex h-6 w-6 items-center justify-center rounded-md bg-[rgba(255,255,255,0.12)] text-cream opacity-0 transition-opacity duration-150 group-hover:opacity-100",draggable:!0,"aria-label":t("tree.node.dragToContextAria"),onPointerDown:e=>{e.stopPropagation()},onDragStart:e=>{e.dataTransfer.setData(eo,s.id),e.dataTransfer.setData("text/plain",s.id),e.dataTransfer.effectAllowed="copy"},children:(0,n.jsx)(ea,{})}),(0,n.jsx)("div",{className:"flex-1",children:(0,n.jsx)("div",{className:"font-mono text-[0.65rem] uppercase tracking-wide opacity-75",children:m})}),l&&(0,n.jsx)("button",{type:"button",className:"flex h-5 w-5 items-center justify-center rounded-full border border-[rgba(255,255,255,0.4)] text-[0.7rem] font-semibold text-cream/80 transition-colors hover:border-[rgba(255,255,255,0.7)]",onPointerDown:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),e.onToggleCollapse?.(s.id)},"aria-label":i?t("tree.node.expandCompressedAria"):t("tree.node.collapseCompressedAria"),children:i?"+":"−"}),(0,n.jsx)("div",{className:"font-mono text-[0.7rem] opacity-80",children:s.tokenCount.toLocaleString(r)})]}),(0,n.jsx)("div",{className:"line-clamp-2 text-[0.85rem] leading-snug opacity-95",children:p})]})});function el(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M20 12H4"})})}function ei(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M12 4v16m8-8H4"})})}function ed(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})})}function ec(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M4 6h16M4 12h10M4 18h16"})})}function em({onAutoLayout:e}){let t=(0,a.k)(),{fitView:r,zoomIn:o,zoomOut:s}=(0,et.VH)();return(0,n.jsxs)("div",{"data-tree-controls":!0,className:"pointer-events-none absolute bottom-5 left-8 z-20 flex gap-2",children:[(0,n.jsx)("button",{className:"pointer-events-auto flex h-10 w-10 items-center justify-center rounded-[10px] border border-parchment bg-paper text-clay transition-all duration-150 hover:border-copper hover:text-copper",onClick:()=>void s?.(),"aria-label":t("tree.controls.zoomOut"),type:"button",children:(0,n.jsx)("div",{className:"h-[18px] w-[18px]",children:(0,n.jsx)(el,{})})}),(0,n.jsx)("button",{className:"pointer-events-auto flex h-10 w-10 items-center justify-center rounded-[10px] border border-parchment bg-paper text-clay transition-all duration-150 hover:border-copper hover:text-copper",onClick:()=>void o?.(),"aria-label":t("tree.controls.zoomIn"),type:"button",children:(0,n.jsx)("div",{className:"h-[18px] w-[18px]",children:(0,n.jsx)(ei,{})})}),(0,n.jsx)("button",{className:"pointer-events-auto flex h-10 w-10 items-center justify-center rounded-[10px] border border-parchment bg-paper text-clay transition-all duration-150 hover:border-copper hover:text-copper",onClick:()=>void r?.({padding:.25}),"aria-label":t("tree.controls.fitView"),type:"button",children:(0,n.jsx)("div",{className:"h-[18px] w-[18px]",children:(0,n.jsx)(ed,{})})}),(0,n.jsx)("button",{className:"pointer-events-auto flex h-10 w-10 items-center justify-center rounded-[10px] border border-parchment bg-paper text-clay transition-all duration-150 hover:border-copper hover:text-copper",onClick:e,"aria-label":t("tree.controls.autoLayout"),type:"button",children:(0,n.jsx)("div",{className:"h-[18px] w-[18px]",children:(0,n.jsx)(ec,{})})})]})}es.displayName="TreeNode";let ep={treeNode:es},eu={treeEdge:function({id:e,sourceX:t,sourceY:r,targetX:o,targetY:a,data:s}){let[l]=(0,et.Fp)({sourceX:t,sourceY:r,targetX:o,targetY:a}),i=s?.isInActivePath??!1;return(0,n.jsx)(et.tE,{id:e,path:l,style:{stroke:i?"var(--copper)":"var(--parchment)",strokeWidth:i?2.6:2}})}};function ex({children:e,onClick:t,disabled:r}){return(0,n.jsx)("button",{className:`w-full rounded-lg px-3 py-2 text-left text-[0.85rem] transition-colors duration-150 ${r?"cursor-not-allowed opacity-40":"hover:bg-cream hover:text-ink"}`,onClick:t,disabled:r,type:"button",children:e})}function eh({fitViewOnInit:e=!0,fitViewTrigger:t}){let r=(0,a.k)(),s=(0,d.CU)(e=>e.getCurrentTree()),l=(0,d.CU)(e=>e.nodes),i=(0,d.CU)(e=>e.activeNodeId),p=(0,d.CU)(e=>e.selectedNodeIds),u=(0,o.useRef)(!1),x=(0,d.CU)(e=>e.setActiveNode),h=(0,d.CU)(e=>e.setSelectedNodeIds),f=(0,d.CU)(e=>e.clearSelection),g=(0,d.CU)(e=>e.addToContext),b=(0,d.CU)(e=>e.deleteNode),v=(0,d.CU)(e=>e.updateNode),j=(0,d.CU)(e=>e.openCompression),y=(0,d.CU)(e=>e.decompressNode),[w,k,N]=(0,et.ck)([]),[C,S,_]=(0,et.fM)([]),[M,U]=(0,o.useState)(null),E=(0,o.useCallback)(e=>{if(!s)return;let t=e??l.values(),r=(0,V.$u)(t,s.rootId);k(e=>e.map(e=>({...e,position:r.get(e.id)??e.position}))),(async()=>{for(let[e,t]of r)await v(e,{position:t})})()},[s,l,k,v]),T=(0,o.useCallback)(async e=>{let t=l.get(e);if(!t||t.type!==c.Z.COMPRESSED)return;u.current=!0;let r=t.metadata.collapsed??!1,n=t.metadata.compressedNodeIds??[],o=n[n.length-1]??null,a=(o?l.get(o)?.position??null:null)??t.position??null,s=!r,i=a&&!s?{x:a.x,y:a.y-96}:a&&s?{...a}:null;try{await v(e,{metadata:{...t.metadata,collapsed:s},...i?{position:i}:{}})}catch{u.current=!1;return}if(E(d.jL.getState().nodes.values()),s){let t=d.jL.getState().activeNodeId;t&&n.includes(t)&&x(e),f()}window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{u.current=!1})})},[E,f,l,x,v]);(0,o.useEffect)(()=>{if(!s){k([]),S([]);return}let e=(0,V.bz)({nodes:l.values(),rootId:s.rootId,activeNodeId:i,selectedNodeIds:p,onToggleCollapse:T});k(e.nodes),S(e.edges)},[i,s,l,p,S,k,T]);let I=(0,o.useCallback)((e,t)=>{x(t.id)},[x]),A=(0,o.useCallback)(({nodes:e})=>{if(u.current)return;let t=e.map(e=>e.id);if(t.length===p.length){let e=new Set(t);if(p.every(t=>e.has(t)))return}h(t)},[p,h]),[L,R]=(0,o.useState)(null),D=(0,o.useRef)(null),[F,$]=(0,o.useState)(!1),[B,z]=(0,o.useState)(null),[W,Z]=(0,o.useState)(""),O=(0,o.useCallback)(()=>{R(null)},[]),[K,H]=(0,o.useState)(()=>new Map),Y=(0,o.useCallback)(e=>{let t=l.get(e);if(!t)return;let r=t.type===c.Z.COMPRESSED?t.summary??"":t.content??"";z(e),Z(r),$(!0)},[l]),q=(0,o.useCallback)(()=>{O(),f()},[O,f]),X=(0,o.useCallback)((e,t)=>{e.preventDefault(),R({nodeId:t.id,x:e.clientX+8,y:e.clientY+8})},[]);(0,o.useEffect)(()=>{if(!L)return;let e=e=>{let t=D.current;t&&t.contains(e.target)||R(null)},t=e=>{"Escape"===e.key&&R(null)};return document.addEventListener("mousedown",e,!0),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e,!0),document.removeEventListener("keydown",t)}},[L]),(0,o.useEffect)(()=>{if(!L)return;let e=D.current;if(!e)return;let t=window.requestAnimationFrame(()=>{let t=e.getBoundingClientRect(),r=window.innerWidth-t.width-8,n=window.innerHeight-t.height-8,o=Math.min(Math.max(L.x,8),r),a=Math.min(Math.max(L.y,8),n);(o!==L.x||a!==L.y)&&R(e=>e?{...e,x:o,y:a}:e)});return()=>window.cancelAnimationFrame(t)},[L]);let J=(0,o.useCallback)((e,t)=>{H(e=>{let r=new Map(e);return r.set(t.id,{...t.position}),r})},[]),G=(0,o.useCallback)((e,t)=>{let r=document.querySelector('[data-testid="context-dropzone"]'),n=K.get(t.id),o=e?.clientX??null,a=e?.clientY??null;if(r&&null!==o&&null!==a){let e=r.getBoundingClientRect();if(o>=e.left&&o<=e.right&&a>=e.top&&a<=e.bottom){let e=Array.from(r.querySelectorAll("[data-context-card-id]")),o=0;if(e.length>0){o=e.length;for(let t=0;t<e.length;t+=1){let r=e[t]?.getBoundingClientRect();if(r&&a<r.top+r.height/2){o=t;break}}}g(t.id,o),n&&(k(e=>e.map(e=>e.id===t.id?{...e,position:n}:e)),v(t.id,{position:n})),H(e=>{let r=new Map(e);return r.delete(t.id),r});return}}if(null!==o&&null!==a){let e=Array.from(document.querySelectorAll("[data-node-id]")).find(e=>{let r=e.getAttribute("data-node-id");if(!r||r===t.id)return!1;let n=e.getBoundingClientRect();return o>=n.left&&o<=n.right&&a>=n.top&&a<=n.bottom}),r=e?.getAttribute("data-node-id")??null;if(r){let e=l.get(r)??null,n=!1;for(;e?.parentId;){if(e.parentId===t.id){n=!0;break}e=l.get(e.parentId)??null}if(!n){v(t.id,{parentId:r,position:t.position}),H(e=>{let r=new Map(e);return r.delete(t.id),r});return}}}v(t.id,{position:t.position}),H(e=>{let r=new Map(e);return r.delete(t.id),r})},[g,K,l,k,v]),Q=L?l.get(L.nodeId)??null:null,eo=!!(Q&&s&&Q.id===s.rootId),ea=(0,o.useMemo)(()=>Q&&s?(0,V.VK)(l,Q.id).filter(e=>e!==s.rootId):[],[s,Q,l]),es=ea.length>=2,el=!!(Q&&Q.type===c.Z.COMPRESSED);return(0,o.useEffect)(()=>{if(!M||"number"!=typeof t)return;let e=window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{M.fitView({padding:.25})})});return()=>window.cancelAnimationFrame(e)},[t,M]),(0,n.jsxs)("div",{className:"relative h-full w-full",children:[(0,n.jsxs)(et.Gc,{nodes:w,edges:C,nodeTypes:ep,edgeTypes:eu,onInit:U,onNodesChange:N,onEdgesChange:_,onNodeClick:I,onNodeContextMenu:X,onSelectionChange:A,onNodeDragStart:J,onNodeDragStop:G,onPaneClick:q,fitView:e,minZoom:.2,maxZoom:2,panOnDrag:!1,panOnScroll:!1,autoPanOnNodeDrag:!1,selectionOnDrag:!0,children:[(0,n.jsx)(er.V,{color:"var(--parchment)",gap:48,size:1}),(0,n.jsx)(en.o,{pannable:!0,zoomable:!0,className:"!rounded-xl !bg-paper/70 !backdrop-blur-sm",maskColor:"transparent",maskStrokeColor:"transparent",nodeColor:e=>{let t=e.data.node.type;return t===c.Z.SYSTEM?"var(--system)":t===c.Z.USER?"var(--human)":t===c.Z.ASSISTANT?"var(--machine)":"var(--copper)"}}),(0,n.jsx)(em,{onAutoLayout:E})]}),L&&(0,ee.createPortal)((0,n.jsxs)("div",{ref:D,className:"fixed z-[60] w-52 rounded-xl border border-parchment bg-paper p-2 shadow-[0_16px_38px_rgba(26,24,22,0.12)]",style:{left:L.x,top:L.y},onContextMenu:e=>e.preventDefault(),children:[(0,n.jsx)(ex,{onClick:()=>{x(L.nodeId),O()},children:r("tree.menu.continueFromHere")}),(0,n.jsx)(ex,{disabled:!es,onClick:()=>{es&&(h(ea),j(),O())},children:r("tree.menu.compressBranch")}),(0,n.jsx)(ex,{disabled:!el,onClick:()=>{Q&&el&&window.confirm(r("tree.menu.decompressConfirm"))&&(y(Q.id),O())},children:r("tree.menu.decompress")}),(0,n.jsx)(ex,{onClick:()=>{g(L.nodeId),O()},children:r("tree.menu.addToContext")}),(0,n.jsx)(ex,{onClick:()=>{Y(L.nodeId),O()},children:r("tree.menu.editNode")}),(0,n.jsx)(ex,{disabled:eo,onClick:()=>{eo||(b(L.nodeId),O())},children:r("tree.menu.deleteSubtree")})]}),document.body),(0,n.jsx)(P.a,{open:F,title:r("tree.editor.title"),onClose:()=>$(!1),children:(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)("textarea",{className:"h-48 w-full resize-none rounded-xl border border-parchment bg-paper p-3 font-body text-[0.9rem] leading-relaxed text-ink outline-none focus:border-copper",value:W,onChange:e=>Z(e.target.value)}),(0,n.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,n.jsx)(m,{variant:"secondary",onClick:()=>{$(!1)},children:r("common.cancel")}),(0,n.jsx)(m,{variant:"primary",onClick:()=>{if(!B)return;let e=l.get(B);e&&(v(B,e.type===c.Z.COMPRESSED?{summary:W}:{content:W}),$(!1))},children:r("common.save")})]})]})})]})}function ef(){let[e,t]=(0,o.useState)(0),r=(0,o.useCallback)(()=>{window.setTimeout(()=>{t(e=>e+1)},220)},[]);return(0,n.jsx)("div",{className:"pointer-events-none absolute right-6 top-6 z-20 lg:right-8 lg:top-6",children:(0,n.jsx)("div",{className:"group pointer-events-auto relative h-[110px] w-[170px] overflow-hidden rounded-xl transition-all duration-200 lg:h-[130px] lg:w-[210px] lg:hover:h-[min(640px,62vh)] lg:hover:w-[min(920px,calc(100vw_-_3rem))] lg:focus-within:h-[min(640px,62vh)] lg:focus-within:w-[min(920px,calc(100vw_-_3rem))] lg:hover:bg-paper lg:focus-within:bg-paper",onMouseEnter:()=>r(),onFocusCapture:()=>r(),children:(0,n.jsx)("div",{className:"relative h-full w-full [&_.react-flow__attribution]:hidden [&_.react-flow__background]:opacity-0 [&_.react-flow__background]:transition-opacity [&_.react-flow__background]:duration-200 [&_.react-flow__renderer]:pointer-events-none [&_.react-flow__renderer]:opacity-0 [&_.react-flow__renderer]:transition-opacity [&_.react-flow__renderer]:duration-200 [&_.react-flow__panel]:!m-0 [&_.react-flow__minimap]:!inset-0 [&_.react-flow__minimap]:!h-full [&_.react-flow__minimap]:!w-full [&_.react-flow__minimap]:overflow-hidden [&_.react-flow__minimap_svg]:!h-full [&_.react-flow__minimap_svg]:!w-full [&_[data-tree-controls]]:hidden lg:group-hover:[&_.react-flow__background]:opacity-100 lg:group-hover:[&_.react-flow__renderer]:pointer-events-auto lg:group-hover:[&_.react-flow__renderer]:opacity-100 lg:group-hover:[&_.react-flow__minimap]:!top-auto lg:group-hover:[&_.react-flow__minimap]:!left-auto lg:group-hover:[&_.react-flow__minimap]:!right-4 lg:group-hover:[&_.react-flow__minimap]:!bottom-4 lg:group-hover:[&_.react-flow__minimap]:!h-[150px] lg:group-hover:[&_.react-flow__minimap]:!w-[210px] lg:group-hover:[&_.react-flow__minimap_svg]:!h-[150px] lg:group-hover:[&_.react-flow__minimap_svg]:!w-[210px] lg:group-hover:[&_[data-tree-controls]]:!flex lg:group-focus-within:[&_.react-flow__background]:opacity-100 lg:group-focus-within:[&_.react-flow__renderer]:pointer-events-auto lg:group-focus-within:[&_.react-flow__renderer]:opacity-100 lg:group-focus-within:[&_.react-flow__minimap]:!top-auto lg:group-focus-within:[&_.react-flow__minimap]:!left-auto lg:group-focus-within:[&_.react-flow__minimap]:!right-4 lg:group-focus-within:[&_.react-flow__minimap]:!bottom-4 lg:group-focus-within:[&_.react-flow__minimap]:!h-[150px] lg:group-focus-within:[&_.react-flow__minimap]:!w-[210px] lg:group-focus-within:[&_.react-flow__minimap_svg]:!h-[150px] lg:group-focus-within:[&_.react-flow__minimap_svg]:!w-[210px] lg:group-focus-within:[&_[data-tree-controls]]:!flex",children:(0,n.jsx)(eh,{fitViewOnInit:!1,fitViewTrigger:e})})})})}var eg=r(5772);function eb(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2z"})})}function ev(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})})}function ej(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M13 10V3L4 14h7v7l9-11h-7z"})})}function ey(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})})}function ew(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M14.7 6.3a4 4 0 0 1-5.65 5.65L3 18v3h3l6.05-6.05a4 4 0 0 1 5.65-5.65l-2.1 2.1 1.4 1.4 2.1-2.1Z"})})}function ek(){return(0,n.jsxs)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z"}),(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M14 2v6h6"})]})}function eN(){return(0,n.jsx)("svg",{width:"10",height:"10",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M6 18L18 6M6 6l12 12"})})}function eC(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"})})}function eS(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"})})}function e_(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",className:"h-4 w-4",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M9 5l7 7-7 7"})})}function eM({pinned:e}){return e?(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M9 3l6 0m-6 0l0 6-2 3v2h10v-2l-2-3V3m-3 13v5m0-5l-3 3"})}):(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M9 3h6m-6 0v6l-2 3v2h10v-2l-2-3V3m-3 13v5"})})}function eU({card:e,onRemove:t,onTogglePin:r,onClick:o,draggable:s,onDragStart:l,onDragEnter:i,onDragEnd:d}){let c=(0,a.k)(),m="compressed"===e.type;return(0,n.jsxs)("div",{className:`context-card-hover relative mb-2.5 rounded-xl border p-3.5 transition-all duration-200 ${s?"cursor-grab active:cursor-grabbing":"cursor-default"} ${m?"border-copper bg-copper-glow":"border-parchment bg-paper"}`,"data-context-card-id":e.id,draggable:s,onClick:o,onDragStart:e=>{s&&(e.dataTransfer.effectAllowed="move",l?.())},onDragEnter:()=>i?.(),onDragOver:e=>{s&&e.preventDefault()},onDragEnd:()=>d?.(),children:[(0,n.jsxs)("div",{className:"absolute right-2.5 top-2.5 flex items-center gap-1.5",children:[e.ltmMemory&&r?(0,n.jsx)("button",{className:"context-card-remove flex h-5 w-5 items-center justify-center rounded-full bg-cream opacity-0 text-sand transition-all duration-150 hover:bg-copper hover:text-white",onClick:t=>{t.stopPropagation(),r(e.ltmMemory.memoryId)},"aria-label":c(e.ltmMemory.pinned?"context.unpinAria":"context.pinAria"),title:c(e.ltmMemory.pinned?"context.unpin":"context.pin"),children:(0,n.jsx)("div",{className:"h-3 w-3",children:(0,n.jsx)(eM,{pinned:e.ltmMemory.pinned})})}):null,(0,n.jsx)("button",{className:"context-card-remove flex h-5 w-5 items-center justify-center rounded-full bg-cream opacity-0 text-sand transition-all duration-150 hover:bg-[#e74c3c] hover:text-white",onClick:r=>{r.stopPropagation(),t(e.id)},"aria-label":c("context.removeFromContextAria"),children:(0,n.jsx)(eN,{})})]}),(0,n.jsxs)("div",{className:"mb-2 flex items-center gap-2.5",children:[(0,n.jsx)("div",{className:`flex h-6 w-6 items-center justify-center rounded-md text-cream ${function(e){switch(e){case"system":return"bg-system";case"human":return"bg-human";case"machine":return"bg-machine";case"compressed":case"tool":case"file":return"bg-copper"}}(e.type)}`,children:(0,n.jsx)("div",{className:"h-3 w-3",children:function(e){switch(e){case"system":return(0,n.jsx)(eb,{});case"human":return(0,n.jsx)(ev,{});case"machine":return(0,n.jsx)(ej,{});case"compressed":return(0,n.jsx)(ey,{});case"tool":return(0,n.jsx)(ew,{});case"file":return(0,n.jsx)(ek,{})}}(e.type)})}),(0,n.jsx)("span",{className:"flex-1 text-[0.8rem] font-medium text-ink",children:e.title}),(0,n.jsx)("span",{className:"font-mono text-[0.7rem] text-sand",children:e.tokens})]}),(0,n.jsx)("div",{className:"line-clamp-2 text-[0.8rem] leading-snug text-clay",children:e.preview})]})}function eE(){let e=(0,a.k)(),t=(0,d.CU)(e=>e.locale),r=(0,d.CU)(e=>e.nodes),s=(0,d.CU)(e=>e.contextBox),u=(0,d.CU)(e=>e.getCurrentTree()),x=(0,d.CU)(e=>e.activeNodeId),h=(0,d.CU)(e=>e.selectedNodeIds),g=(0,d.CU)(e=>e.addToContext),b=(0,d.CU)(e=>e.addFilesToContext),v=(0,d.CU)(e=>e.removeFromContext),y=(0,d.CU)(e=>e.clearContext),w=(0,d.CU)(e=>e.reorderContext),k=(0,d.CU)(e=>e.buildContextContent),N=(0,d.CU)(e=>e.togglePinLongTermMemory),C=(0,d.CU)(e=>e.toolSettings),S=(0,d.CU)(e=>e.draftToolUses),_=(0,d.CU)(e=>e.toggleDraftToolUse),M=(0,d.CU)(e=>e.compressionOpen),U=(0,d.CU)(e=>e.openCompression),E=(0,d.CU)(e=>e.closeCompression),T=(0,d.CU)(e=>e.compressNodes),I=(0,d.CU)(e=>e.generateCompressionSuggestion),A=(0,d.CU)(e=>e.isCompressing),L=(0,d.CU)(e=>e.compressionError),[R,D]=(0,o.useState)(null),[F,B]=(0,o.useState)(null),z=(0,o.useMemo)(()=>F??s?.blocks?.map(e=>e.id)??[],[F,s?.blocks]),Z=(0,o.useMemo)(()=>new Map(s?.blocks?.map(e=>[e.id,e])??[]),[s?.blocks]),O=(0,o.useMemo)(()=>{if(!s)return[];let t=[];for(let n of z){let o=Z.get(n);if(!o)continue;if("file"===o.kind){let r=(0,W.TY)(o.id),n=o.id===W.gz,a=o.id.startsWith("ltm.folderDoc:"),s="image"===o.fileKind?`${o.mimeType} \xb7 ${(o.size/1024).toFixed(1)} KB`:o.content.trim().slice(0,160)+(o.truncated?"…":"");t.push({id:o.id,type:"file",title:n?e("context.ltm.profile"):a?e("context.ltm.folderDoc"):r?r.pinned?e("context.ltm.memoryPinned"):e("context.ltm.memory"):o.filename,preview:s||("image"===o.fileKind?e("common.data"):e("tree.node.emptyContent")),tokens:o.tokenCount,...r?{ltmMemory:r}:{}});continue}let a=r.get(o.nodeId);if(!a)continue;let s=a.type===c.Z.SYSTEM?"system":a.type===c.Z.USER?"human":a.type===c.Z.ASSISTANT?"machine":"compressed",l="system"===s?e("context.card.system"):"human"===s?e("context.card.user"):"machine"===s?a.metadata.modelName??e("node.author.assistant"):e("context.card.compressed"),i=a.type===c.Z.COMPRESSED?a.summary??a.content:a.content,d=a.type===c.Z.ASSISTANT?j(i).visible:i;t.push({id:o.id,type:s,title:l,preview:d,tokens:a.tokenCount})}return t},[s,z,Z,r,e]),K=(0,o.useMemo)(()=>(0,i.d)(S,C),[S,C]),H=(0,o.useMemo)(()=>K.map(e=>({id:e.id,type:"tool",title:e.title,preview:e.content,tokens:(0,l.b)(e.content)})),[K]),Y=H.reduce((e,t)=>e+t.tokens,0),q=(s?.totalTokens??0)+Y,X=s?.maxTokens??8192,J=X>0?q/X*100:0,G=(0,o.useRef)(null),[Q,ee]=(0,o.useState)(!1),[et,er]=(0,o.useState)(!1),[en,ea]=(0,o.useState)(null),[es,el]=(0,o.useState)(null),ei=(0,o.useRef)(null),ed=(0,o.useMemo)(()=>{let e=u?.rootId??null,t=s?.blocks?.filter(e=>"node"===e.kind).map(e=>e.nodeId)??[];return e?t.filter(t=>t!==e):t},[s?.blocks,u?.rootId]),ec=x??ed[ed.length-1]??null,em=h.length>=2&&!!(ec&&h.includes(ec))&&h.every(e=>ed.includes(e)),ep=(0,o.useMemo)(()=>em?h:ed,[em,h,ed]),eu=ep.length>=2,ex=em?e("context.compress.selected",{count:h.length}):e("context.compress.context",{count:ed.length}),{compressionNodeIds:eh,compressionSelectionError:ef}=(0,o.useMemo)(()=>{if(!M)return{compressionNodeIds:[],compressionSelectionError:null};try{return{compressionNodeIds:function(e,t,r,n){let o=Array.from(new Set(e)).filter(e=>t.has(e));if(o.length<2)throw Error("context.compress.errors.minTwoNodes");let a=new Set(o),s=null;if(n&&t.has(n)){let e=(0,V.VK)(t,n);if(!o.every(t=>e.includes(t)))throw Error("context.compress.errors.noGaps");s=e}else for(let e of o){let r=(0,V.VK)(t,e);if(o.every(e=>r.includes(e))){if(s)throw Error("context.compress.errors.noBranches");s=r}}if(!s)throw Error("context.compress.errors.noGaps");let l=s.findIndex(e=>a.has(e));if(-1===l)throw Error("context.compress.errors.noGaps");let i=s.slice(l);if(r&&(i=i.filter(e=>e!==r)),i.length<2)throw Error("context.compress.errors.minTwoNodes");return i}(ep,r,u?.rootId??null,em?null:ec),compressionSelectionError:null}}catch(e){return{compressionNodeIds:[],compressionSelectionError:e instanceof Error?e.message:"context.compress.errors.invalidSelection"}}},[M,ep,r,ec,u?.rootId,em]),[eb,ev]=(0,o.useState)(""),[ej,ew]=(0,o.useState)(""),[ek,eN]=(0,o.useState)(""),[eM,eE]=(0,o.useState)(""),eT=async()=>{er(!0),ea(null);try{let e=await k();ea(e)}catch(r){let t=r instanceof Error?r.message:"context.preview.failed";ea((0,f.d)(t)?e(t):t)}},eI=ef&&(0,f.d)(ef)?e(ef):ef,eA=L&&(0,f.d)(L)?e(L):L,eL=e=>{let t=G.current;if(!t)return O.length;let r=Array.from(t.querySelectorAll("[data-context-card-id]"));if(0===r.length)return 0;for(let t=0;t<r.length;t+=1){let n=r[t]?.getBoundingClientRect();if(n&&e<n.top+n.height/2)return t}return r.length};return(0,n.jsxs)("aside",{className:"flex h-full min-h-0 flex-col overflow-hidden border-l border-parchment bg-cream",children:[(0,n.jsxs)("div",{className:"border-b border-parchment px-6 pb-5 pt-7",children:[(0,n.jsx)("div",{className:"font-display text-[1.1rem] text-ink",children:e("context.title")}),(0,n.jsx)("div",{className:"mt-1 font-mono text-[0.7rem] uppercase tracking-widest text-sand",children:e("context.subtitle")})]}),(0,n.jsxs)("div",{className:"border-b border-parchment p-6",children:[(0,n.jsxs)("div",{className:"mb-4 flex items-baseline justify-between",children:[(0,n.jsx)("span",{className:"font-mono text-[0.7rem] uppercase tracking-widest text-sand",children:e("context.tokenUsage")}),(0,n.jsxs)("span",{className:"font-mono text-[0.85rem] text-ink",children:[(0,n.jsx)("strong",{className:"font-medium text-copper",children:q.toLocaleString(t)})," ","/ ",X.toLocaleString(t)]})]}),(0,n.jsx)("div",{className:"h-1.5 overflow-hidden rounded-sm bg-paper",children:(0,n.jsx)("div",{className:"h-full rounded-sm bg-gradient-to-r from-copper to-copper-light transition-all duration-500",style:{width:`${Math.min(100,J)}%`}})}),(0,n.jsxs)("div",{className:"mt-2 flex justify-between font-mono text-[0.65rem] text-sand",children:[(0,n.jsx)("span",{children:"0"}),(0,n.jsx)("span",{children:"4K"}),(0,n.jsx)("span",{children:"8K"})]})]}),(0,n.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col p-5",children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center justify-between font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:[(0,n.jsx)("span",{children:e("context.activeNodes")}),(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)("button",{className:"border-none bg-transparent font-body text-[0.75rem] normal-case tracking-normal text-copper hover:underline",onClick:()=>ei.current?.click(),children:e("chat.input.attach")}),(0,n.jsx)("button",{className:"border-none bg-transparent font-body text-[0.75rem] normal-case tracking-normal text-copper hover:underline",onClick:y,children:e("context.clearAll")}),(0,n.jsx)("input",{ref:ei,className:"hidden",type:"file",multiple:!0,accept:(0,p.X)(),onChange:e=>{let t=Array.from(e.target.files??[]);t.length>0&&b(t),e.target.value=""}})]})]}),H.length>0?(0,n.jsxs)("div",{className:"mb-4",children:[(0,n.jsx)("div",{className:"mb-3 font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:e("context.toolBlocks")}),(0,n.jsx)("div",{className:"max-h-[140px] overflow-y-auto pr-1",children:H.map(e=>(0,n.jsx)(eU,{card:e,onRemove:e=>{("web_search"===e||"python"===e||"mcp"===e||e.startsWith("mcp:")&&e.slice(4).trim())&&_(e)}},e.id))})]}):null,(0,n.jsx)("div",{ref:G,className:`flex-1 min-h-0 overflow-y-auto pr-1 transition-colors duration-150 ${Q?"rounded-xl bg-copper-glow":""}`,"data-testid":"context-dropzone",onDragOver:e=>{e.preventDefault(),R||ee(!0)},onDragLeave:()=>ee(!1),onDrop:e=>{if(e.preventDefault(),ee(!1),R)return;let t=Array.from(e.dataTransfer.files??[]);if(t.length>0)return void b(t,eL(e.clientY));let r=e.dataTransfer.getData(eo)||e.dataTransfer.getData("text/plain");r&&g(r,eL(e.clientY))},children:0===O.length?(0,n.jsx)("div",{className:"flex h-full items-center justify-center rounded-xl border border-parchment bg-paper/60 p-4 text-center text-sand",children:(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsx)("div",{className:"mx-auto flex h-9 w-9 items-center justify-center rounded-xl bg-paper text-sand",children:(0,n.jsx)("div",{className:"h-5 w-5",children:(0,n.jsx)(eC,{})})}),(0,n.jsx)("div",{className:"text-[0.85rem] text-clay",children:e("context.dropzone.title")}),(0,n.jsx)("div",{className:"text-[0.75rem]",children:e("context.dropzone.subtitle")})]})}):O.map(e=>(0,n.jsx)(eU,{card:e,onRemove:v,onTogglePin:e=>void N(e),onClick:()=>{let t=Z.get(e.id)??null;t&&"file"===t.kind&&el(t)},draggable:!0,onDragStart:()=>{D(e.id),B(z)},onDragEnter:()=>{R&&B(t=>{let r=t??z,n=r.indexOf(R),o=r.indexOf(e.id);return -1===n||-1===o||n===o?r:((e,t,r)=>{if(t===r)return e;let n=e.slice(),[o]=n.splice(t,1);return o?(n.splice(r,0,o),n):e})(r,n,o)})},onDragEnd:()=>{w(F??z),D(null),B(null)}},e.id))})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-2.5 border-t border-parchment p-5",children:[(0,n.jsxs)("button",{className:`flex w-full items-center gap-3 rounded-[10px] border border-parchment bg-paper px-5 py-3.5 font-body text-[0.85rem] text-ink transition-all duration-150 ${eu?"hover:border-copper hover:bg-copper-glow":"cursor-not-allowed opacity-60"}`,disabled:!eu,onClick:()=>{eu&&(ev(""),ew(""),eN(""),eE(""),U())},children:[(0,n.jsx)("div",{className:"h-[18px] w-[18px] text-copper",children:(0,n.jsx)(ey,{})}),ex]}),(0,n.jsxs)("button",{className:"flex w-full items-center gap-3 rounded-[10px] border border-parchment bg-paper px-5 py-3.5 font-body text-[0.85rem] text-ink opacity-60 transition-all duration-150",disabled:!0,children:[(0,n.jsx)("div",{className:"h-[18px] w-[18px] text-copper",children:(0,n.jsx)(eS,{})}),e("context.optimize")]})]}),(0,n.jsxs)("button",{className:"flex items-center justify-between border-t border-parchment bg-transparent px-5 py-4 font-body text-[0.85rem] text-clay transition-all duration-150 hover:bg-paper hover:text-ink",onClick:()=>void eT(),children:[(0,n.jsx)("span",{children:e("context.preview.button")}),(0,n.jsx)(e_,{})]}),(0,n.jsx)(P.a,{open:et,title:e("context.preview.title"),onClose:()=>er(!1),children:(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)("div",{className:"max-h-[50vh] overflow-auto rounded-xl border border-parchment bg-paper p-4 font-mono text-[0.75rem] leading-relaxed text-ink",children:en??e("context.preview.building")}),(0,n.jsx)("div",{className:"flex justify-end",children:(0,n.jsx)(m,{variant:"secondary",onClick:()=>er(!1),children:e("common.close")})})]})}),(0,n.jsx)(P.a,{open:M,title:e("context.compress.title"),onClose:()=>{E(),ev(""),ew(""),eN(""),eE("")},children:(0,n.jsxs)("div",{className:"space-y-4",children:[eI&&(0,n.jsx)("div",{className:"rounded-xl border border-[#e74c3c]/40 bg-[#fff5f2] p-3 text-[0.85rem] text-[#b73c2b]",children:eI}),eA&&(0,n.jsx)("div",{className:"rounded-xl border border-[#e74c3c]/40 bg-[#fff5f2] p-3 text-[0.85rem] text-[#b73c2b]",children:eA}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mb-2 font-mono text-[0.7rem] uppercase tracking-widest text-sand",children:e("context.compress.selection",{count:eh.length})}),(0,n.jsx)("div",{className:"max-h-44 space-y-2 overflow-auto rounded-xl border border-parchment bg-paper p-3 text-[0.8rem] text-clay",children:0===eh.length?(0,n.jsx)("div",{className:"text-sand",children:e("context.compress.noneSelected")}):eh.map(e=>r.get(e)).filter(e=>!!e).map(t=>(0,n.jsxs)("div",{className:"rounded-lg bg-cream p-2",children:[(0,n.jsxs)("div",{className:"mb-1 flex items-center justify-between font-mono text-[0.65rem] uppercase tracking-wide text-sand",children:[(0,n.jsx)("span",{children:(t=>{switch(t){case c.Z.SYSTEM:return e("node.type.system");case c.Z.USER:return e("node.type.user");case c.Z.ASSISTANT:return e("node.type.assistant");case c.Z.COMPRESSED:return e("node.type.compressed")}})(t.type)}),(0,n.jsx)("span",{children:t.tokenCount})]}),(0,n.jsx)("div",{className:"line-clamp-2 whitespace-pre-wrap",children:t.type===c.Z.COMPRESSED?t.summary??t.content:t.content})]},t.id))})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mb-2 font-mono text-[0.7rem] uppercase tracking-widest text-sand",children:e("context.compress.summary")}),(0,n.jsx)("textarea",{className:"h-32 w-full resize-none rounded-xl border border-parchment bg-paper p-3 font-body text-[0.9rem] leading-relaxed text-ink outline-none focus:border-copper",value:eb,onChange:e=>ev(e.target.value),placeholder:e("context.compress.summaryPlaceholder")})]}),(0,n.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mb-2 font-mono text-[0.7rem] uppercase tracking-widest text-sand",children:e("context.compress.language")}),(0,n.jsx)($,{value:ej,onChange:e=>ew(e.target.value),placeholder:e("context.compress.languagePlaceholder"),autoComplete:"off"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mb-2 font-mono text-[0.7rem] uppercase tracking-widest text-sand",children:e("context.compress.format")}),(0,n.jsx)($,{value:ek,onChange:e=>eN(e.target.value),placeholder:e("context.compress.formatPlaceholder"),autoComplete:"off"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mb-2 font-mono text-[0.7rem] uppercase tracking-widest text-sand",children:e("context.compress.role")}),(0,n.jsx)($,{value:eM,onChange:e=>eE(e.target.value),placeholder:e("context.compress.rolePlaceholder"),autoComplete:"off"})]})]}),(0,n.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,n.jsx)(m,{variant:"secondary",onClick:()=>E(),disabled:A,children:e("common.cancel")}),(0,n.jsx)(m,{variant:"ghost",onClick:()=>{(async()=>{if(!(eh.length<2))try{let e=await I(eh);ev(e.summary),ew(e.metaInstructions.language??""),eN(e.metaInstructions.format??""),eE(e.metaInstructions.role??"")}catch{}})()},disabled:A||eh.length<2,children:e("context.compress.generate")}),(0,n.jsx)(m,{variant:"primary",onClick:()=>{(async()=>{if(eh.length<2||ef)return;let e={};ej.trim()&&(e.language=ej.trim()),ek.trim()&&(e.format=ek.trim()),eM.trim()&&(e.role=eM.trim());try{await T(eh,{summary:eb,metaInstructions:e}),E()}catch{}})()},disabled:A||!!ef,children:e("context.compress.confirm")})]})]})}),(0,n.jsx)(P.a,{open:!!es,title:es?.kind==="file"?es.filename:e("context.preview.title"),onClose:()=>el(null),children:es?.kind==="file"?"image"===es.fileKind?(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsx)(eg.default,{src:es.dataUrl,alt:es.filename,width:1200,height:900,unoptimized:!0,className:"max-h-[60vh] w-full rounded-xl border border-parchment bg-paper object-contain"}),(0,n.jsxs)("div",{className:"font-mono text-[0.7rem] text-sand",children:[es.mimeType," \xb7 ",(es.size/1024).toFixed(1)," KB"]})]}):(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsx)("div",{className:"max-h-[60vh] overflow-auto rounded-xl border border-parchment bg-paper p-4 font-mono text-[0.75rem] leading-relaxed text-ink",children:es.content}),es.truncated?(0,n.jsx)("div",{className:"font-mono text-[0.7rem] text-sand",children:"[Truncated]"}):null]}):null})]})}function eT(){return(0,n.jsxs)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"3",strokeWidth:"1.5"})]})}function eI(){let e=(0,a.k)(),t=(0,d.CU)(e=>e.currentView),r=(0,d.CU)(e=>e.getCurrentTree()),s=(0,d.CU)(e=>e.getCurrentFolder()),l=(0,d.CU)(e=>e.currentFolderId),i=(0,d.CU)(e=>e.trees),c=(0,d.CU)(e=>e.nodes.size),m=(0,d.CU)(e=>e.nodes),p=(0,d.CU)(e=>e.theme),u=(0,d.CU)(e=>e.toggleTheme),x=(0,d.CU)(e=>e.toggleSidebar),h=(0,d.CU)(e=>e.toggleContextPanel),f=(0,o.useMemo)(()=>"tree"===t&&r?(0,V.qi)(m.values(),r.rootId):0,[r,t,m]),g=(0,o.useMemo)(()=>{if("folder"!==t||!l)return 0;let e=0;for(let t of i.values())(t.folderId??null)===l&&(e+=1);return e},[l,t,i]),b="folder"===t?s?.name??e("header.fallback.folder"):r?.title??e("header.fallback.loading");return(0,n.jsxs)("header",{className:"flex flex-col gap-4 border-b border-parchment bg-paper px-6 py-4 lg:flex-row lg:items-center lg:justify-between lg:px-8 lg:py-5",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)("button",{type:"button",className:"rounded-full border border-parchment px-3 py-1 text-[0.65rem] font-semibold uppercase tracking-[0.2em] text-clay transition-all duration-150 hover:border-copper hover:text-ink lg:hidden",onClick:()=>x(),"aria-label":e("header.menu"),children:e("header.menu")}),(0,n.jsx)("h2",{className:"font-display text-[1.35rem] font-normal text-ink",children:b})]}),(0,n.jsx)("button",{type:"button",className:"rounded-full border border-parchment px-3 py-1 text-[0.65rem] font-semibold uppercase tracking-[0.2em] text-clay transition-all duration-150 hover:border-copper hover:text-ink lg:hidden",onClick:()=>h(),"aria-label":e("header.context"),children:e("header.context")})]}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-4 lg:gap-6",children:["folder"===t?(0,n.jsx)("div",{className:"flex flex-wrap gap-4 font-mono text-[0.75rem] text-sand",children:(0,n.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("span",{className:"font-medium text-ink",children:g})," ",e("header.threads")]})}):(0,n.jsxs)("div",{className:"flex flex-wrap gap-4 font-mono text-[0.75rem] text-sand",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("span",{className:"font-medium text-ink",children:c})," ",e("header.nodes")]}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("span",{className:"font-medium text-ink",children:f})," ",e("header.branches")]})]}),(0,n.jsxs)(A(),{href:"/settings",className:"flex items-center gap-1.5 rounded-full border border-parchment px-3 py-1 text-[0.65rem] font-semibold uppercase tracking-[0.2em] text-clay transition-all duration-150 hover:border-copper hover:text-ink",children:[(0,n.jsx)(eT,{}),e("common.settings")]}),(0,n.jsx)("button",{type:"button",className:"flex items-center gap-2 rounded-full border border-parchment px-3 py-1 text-[0.65rem] font-semibold uppercase tracking-[0.2em] text-clay transition-all duration-150 hover:border-copper hover:text-ink",onClick:()=>u(),"aria-label":e("header.toggleTheme"),children:e("light"===p?"header.theme.light":"header.theme.dark")})]})]})}var eA=r(3653),eL=r(9),eR=r(4833);async function eD(e){if("u"<typeof indexedDB||0===e.length)return{};let t=(await (0,eA.xA)()).transaction([eR.w.stores.nodes.name],"readonly"),r=t.objectStore(eR.w.stores.nodes.name),n=await (0,eL.k7)(r.getAll());await (0,eL.PE)(t);let o=new Set,a=new Map;for(let e of n??[]){if(o.add(e.id),!e.parentId)continue;let t=a.get(e.parentId);t?t.push(e.id):a.set(e.parentId,[e.id])}let s={};for(let t of e){let e=t.rootId;if(!o.has(e))continue;let r=0,n=[e],l=new Set;for(;n.length>0;){let e=n.pop();if(!(!e||l.has(e))){if(l.add(e),o.has(e))for(let t of(r+=1,a.get(e)??[]))n.push(t)}}s[t.id]=r}return s}function eP(){return(0,n.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"10",strokeWidth:"2"}),(0,n.jsx)("path",{strokeWidth:"2",d:"M12 6v6l4 2"})]})}function eF(){return(0,n.jsx)("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",className:"h-4 w-4",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 4v16m8-8H4"})})}function e$(){return(0,n.jsx)("svg",{width:"18",height:"18",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M3 7a2 2 0 012-2h5l2 2h7a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"})})}function eB(){return(0,n.jsxs)("svg",{width:"18",height:"18",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"3",strokeWidth:"1.5"})]})}function ez({tree:e,isActive:t,nodeCount:r,onClick:s,onDelete:l}){let i=(0,a.k)(),d=(0,o.useMemo)(()=>(0,L.m)(new Date(e.updatedAt),{addSuffix:!0}),[e.updatedAt]);return(0,n.jsxs)("div",{className:`group relative mb-1 cursor-pointer rounded-[10px] p-4 transition-all duration-150 ${t?"bg-paper":"hover:bg-paper"}`,onClick:s,children:[(0,n.jsx)("button",{type:"button",className:"absolute right-3 top-3 rounded-md p-1 text-sand opacity-0 transition-all duration-150 hover:bg-paper hover:text-[#e74c3c] group-hover:opacity-100","aria-label":i("sidebar.deleteThreadAria"),onClick:e=>{e.stopPropagation(),l()},children:(0,n.jsx)(B,{})}),(0,n.jsx)("div",{className:`absolute left-0 top-1/2 w-[3px] -translate-y-1/2 rounded-r-sm bg-copper transition-all duration-200 ${t?"h-6":"h-0"}`}),(0,n.jsx)("div",{className:"mb-1.5 text-[0.9rem] font-medium leading-tight text-ink",children:e.title}),(0,n.jsxs)("div",{className:"flex items-center gap-3 font-mono text-[0.7rem] text-sand",children:[(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,n.jsx)(eP,{}),d]}),(0,n.jsx)("span",{children:i("sidebar.nodeCount",{count:r??"—"})})]})]})}function eW({folder:e,isActive:t,threadCount:r,activityAt:s,onClick:l,onDelete:i}){let d=(0,a.k)(),c=(0,o.useMemo)(()=>(0,L.m)(new Date(s),{addSuffix:!0}),[s]);return(0,n.jsxs)("div",{className:`group relative mb-1 cursor-pointer rounded-[10px] p-4 transition-all duration-150 ${t?"bg-paper":"hover:bg-paper"}`,onClick:l,children:[(0,n.jsx)("div",{className:`absolute left-0 top-1/2 w-[3px] -translate-y-1/2 rounded-r-sm bg-copper transition-all duration-200 ${t?"h-6":"h-0"}`}),(0,n.jsxs)("div",{className:"mb-1.5 flex items-center justify-between gap-3",children:[(0,n.jsx)("div",{className:"text-[0.9rem] font-medium leading-tight text-ink",children:e.name}),(0,n.jsxs)("div",{className:"flex items-center gap-2 text-sand",children:[(0,n.jsx)("button",{type:"button",className:"rounded-md p-1 text-sand opacity-0 transition-all duration-150 hover:bg-paper hover:text-[#e74c3c] group-hover:opacity-100","aria-label":d("sidebar.deleteFolderAria"),onClick:e=>{e.stopPropagation(),i()},children:(0,n.jsx)(B,{})}),(0,n.jsx)(e$,{})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-3 font-mono text-[0.7rem] text-sand",children:[(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,n.jsx)(eP,{}),c]}),(0,n.jsx)("span",{children:d("sidebar.threadCount",{count:r})})]})]})}function eZ(){let e=(0,a.k)(),t=(0,d.CU)(e=>e.trees),r=(0,d.CU)(e=>e.folders),s=(0,d.CU)(e=>e.currentTreeId),l=(0,d.CU)(e=>e.getCurrentTree()),i=(0,d.CU)(e=>e.currentView),c=(0,d.CU)(e=>e.currentFolderId),m=(0,d.CU)(e=>e.nodes.size),p=(0,d.CU)(e=>e.createTree),u=(0,d.CU)(e=>e.createFolder),x=(0,d.CU)(e=>e.deleteTree),h=(0,d.CU)(e=>e.deleteFolder),f=(0,d.CU)(e=>e.loadTree),g=(0,d.CU)(e=>e.loadFolder),b=(0,o.useMemo)(()=>Array.from(t.values()),[t]),v=(0,o.useMemo)(()=>Array.from(r.values()),[r]),[j,y]=(0,o.useState)({}),[w,k]=(0,o.useState)(null),[N,C]=(0,o.useState)(!1),S=(0,o.useMemo)(()=>{let e=b.filter(e=>(e.folderId??null)===null).map(e=>({kind:"thread",id:e.id,activityAt:e.updatedAt,tree:e})),t=new Map;for(let e of b){let r=e.folderId??null;if(!r)continue;let n=t.get(r);n?n.push(e):t.set(r,[e])}return[...v.map(e=>{let r=t.get(e.id)??[],n=r.reduce((e,t)=>Math.max(e,t.updatedAt),-1/0);return{kind:"folder",id:e.id,activityAt:Math.max(e.updatedAt,n),folder:e,threadCount:r.length}}),...e].sort((e,t)=>t.activityAt-e.activityAt)},[v,b]);(0,o.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await eD(b);if(e)return;y(t)}catch{}})(),()=>{e=!0}},[b]),(0,o.useEffect)(()=>{s&&y(e=>e[s]===m?e:{...e,[s]:m})},[m,s]);let _=e(w?.kind==="folder"?"sidebar.confirmDeleteFolderTitle":"sidebar.confirmDeleteThreadTitle"),M=w&&"folder"===w.kind&&w.threadCount>0?e("sidebar.confirmDeleteFolderThreadNote",{count:w.threadCount}):"",U=w&&"folder"===w.kind?e("sidebar.confirmDeleteFolderBody",{name:w.name,threadNote:M}):w&&"thread"===w.kind?e("sidebar.confirmDeleteThreadBody",{title:w.title}):null;return(0,n.jsxs)("aside",{className:"flex h-full min-h-0 flex-col border-r border-parchment bg-cream",children:[(0,n.jsxs)("div",{className:"border-b border-parchment px-7 pb-6 pt-8",children:[(0,n.jsx)("h1",{className:"brand-dot flex items-baseline gap-2 font-display text-[1.75rem] font-normal tracking-tight text-ink",children:e("common.appName")}),(0,n.jsx)("div",{className:"mt-1 font-mono text-[0.7rem] uppercase tracking-widest text-sand",children:e("sidebar.tagline")})]}),(0,n.jsxs)("div",{className:"mx-5 mt-5 grid grid-cols-2 gap-3",children:[(0,n.jsxs)("button",{className:"flex items-center justify-center gap-2.5 rounded-lg bg-ink px-4 py-3.5 font-body text-[0.85rem] font-medium text-cream transition-all duration-200 hover:-translate-y-px hover:bg-charcoal",onClick:()=>void p(),children:[(0,n.jsx)(eF,{}),e("sidebar.newThread")]}),(0,n.jsxs)("button",{className:"flex items-center justify-center gap-2.5 rounded-lg border border-parchment bg-paper px-4 py-3.5 font-body text-[0.85rem] font-medium text-ink transition-all duration-200 hover:-translate-y-px hover:border-copper hover:bg-copper-glow",onClick:()=>void u(),children:[(0,n.jsx)(e$,{}),e("sidebar.newFolder")]})]}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto px-3 py-5",children:[(0,n.jsx)("div",{className:"mb-3 px-4 font-mono text-[0.65rem] uppercase tracking-[0.15em] text-sand",children:e("sidebar.library")}),S.map(e=>"folder"===e.kind?(0,n.jsx)(eW,{folder:e.folder,threadCount:e.threadCount,activityAt:e.activityAt,isActive:"folder"===i&&c===e.folder.id||"tree"===i&&(l?.folderId??null)===e.folder.id,onClick:()=>g(e.folder.id),onDelete:()=>k({kind:"folder",id:e.folder.id,name:e.folder.name,threadCount:e.threadCount})},e.id):(0,n.jsx)(ez,{tree:e.tree,isActive:"tree"===i&&s===e.tree.id,nodeCount:"tree"===i&&s===e.tree.id?m:j[e.tree.id]??null,onClick:()=>void f(e.tree.id),onDelete:()=>k({kind:"thread",id:e.tree.id,title:e.tree.title})},e.id))]}),(0,n.jsx)("div",{className:"border-t border-parchment p-5",children:(0,n.jsxs)(A(),{href:"/settings",className:"flex w-full items-center gap-2.5 rounded-lg border border-parchment bg-transparent px-4 py-3 font-body text-[0.85rem] text-clay transition-all duration-150 hover:border-sand hover:text-ink",children:[(0,n.jsx)(eB,{}),e("common.settings")]})}),(0,n.jsx)(F,{open:null!=w,title:_,description:U,confirmText:e("common.delete"),cancelText:e("common.cancel"),confirmDisabled:N,onConfirm:()=>{w&&!N&&(C(!0),(async()=>{try{"thread"===w.kind?await x(w.id):await h(w.id),k(null)}finally{C(!1)}})())},onClose:()=>{N||k(null)}})]})}let eO="prompt-tree.layout.v1",eK="cortex.layout.v1";function eV(e,t,r){return Math.min(Math.max(e,t),r)}function eH(){let e=(0,a.k)(),t=(0,d.CU)(e=>e.initialize),r=(0,d.CU)(e=>e.currentView),s=(0,d.CU)(e=>e.sidebarOpen),l=(0,d.CU)(e=>e.setSidebarOpen),i=(0,d.CU)(e=>e.contextPanelOpen),c=(0,d.CU)(e=>e.setContextPanelOpen),m=(0,o.useRef)(null),[p,u]=(0,o.useState)(280),[x,h]=(0,o.useState)(340),[f,g]=(0,o.useState)(null);(0,o.useEffect)(()=>{t()},[t]),(0,o.useEffect)(()=>{let e=window.matchMedia("(min-width: 1024px)"),t=()=>{e.matches?(l(!0),c(!0)):(l(!1),c(!1))};return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[c,l]),(0,o.useEffect)(()=>{let e=window.localStorage.getItem(eO),t=e?null:window.localStorage.getItem(eK),r=e??t;if(r)try{let e=JSON.parse(r);"number"==typeof e.sidebarWidth&&u(e.sidebarWidth),"number"==typeof e.contextWidth&&h(e.contextWidth),t&&(window.localStorage.setItem(eO,r),window.localStorage.removeItem(eK))}catch{return}},[]);let b=(0,o.useCallback)(e=>{if(!m.current)return;let t=m.current.getBoundingClientRect();if("sidebar"===f){let r=Math.max(220,t.width-360-x-16);u(eV(e.clientX-t.left,220,r));return}if("context"===f){let r=Math.max(260,t.width-360-p-16);h(eV(t.right-e.clientX,260,r));return}},[x,f,p]);(0,o.useEffect)(()=>{if(!f)return;let e=()=>g(null);return window.addEventListener("pointermove",b),window.addEventListener("pointerup",e),document.body.style.userSelect="none",document.body.style.cursor="col-resize",()=>{window.removeEventListener("pointermove",b),window.removeEventListener("pointerup",e),document.body.style.userSelect="",document.body.style.cursor=""}},[f,b]),(0,o.useEffect)(()=>{f||window.localStorage.setItem(eO,JSON.stringify({sidebarWidth:p,contextWidth:x}))},[x,f,p]),(0,o.useEffect)(()=>{let e=()=>{if(!m.current)return;let e=m.current.getBoundingClientRect(),t=Math.max(220,e.width-360-x-16);p>t&&u(t);let r=Math.max(260,e.width-360-p-16);x>r&&h(r)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[x,p]);let v={gridTemplateColumns:`${p}px 8px minmax(0, 1fr) 8px ${x}px`};return(0,n.jsxs)("div",{ref:m,className:"relative flex h-screen min-h-0 flex-col lg:grid lg:grid-rows-[minmax(0,1fr)]",style:v,children:[(0,n.jsx)("div",{className:`fixed inset-y-0 left-0 z-40 min-h-0 w-[82vw] max-w-[280px] -translate-x-full bg-cream transition-transform duration-200 lg:static lg:z-auto lg:h-full lg:w-full lg:max-w-none lg:translate-x-0 ${s?"translate-x-0":""}`,children:(0,n.jsx)(eZ,{})}),(0,n.jsx)("div",{role:"separator","aria-orientation":"vertical",className:"group hidden h-full cursor-col-resize select-none touch-none items-center justify-center border-r border-parchment/60 bg-paper/40 transition-colors lg:flex",onPointerDown:e=>{0===e.button&&(e.preventDefault(),g("sidebar"))},children:(0,n.jsx)("div",{className:"h-12 w-[3px] rounded-full bg-parchment transition-colors group-hover:bg-copper"})}),s?(0,n.jsx)("button",{type:"button",className:"fixed inset-0 z-30 bg-ink/30 lg:hidden","aria-label":e("layout.closeSidebarAria"),onClick:()=>l(!1)}):null,(0,n.jsxs)("main",{className:"relative flex min-h-0 flex-1 flex-col overflow-hidden bg-paper",children:[(0,n.jsx)(eI,{}),"folder"===r?(0,n.jsx)(Q,{}):(0,n.jsxs)("div",{className:"relative flex min-h-0 flex-1 flex-col",children:[(0,n.jsx)(ef,{}),(0,n.jsx)(T,{})]})]}),(0,n.jsx)("div",{role:"separator","aria-orientation":"vertical",className:"group hidden h-full cursor-col-resize select-none touch-none items-center justify-center border-l border-parchment/60 bg-paper/40 transition-colors lg:flex",onPointerDown:e=>{0===e.button&&(e.preventDefault(),g("context"))},children:(0,n.jsx)("div",{className:"h-12 w-[3px] rounded-full bg-parchment transition-colors group-hover:bg-copper"})}),(0,n.jsx)("div",{className:`fixed inset-y-0 right-0 z-40 min-h-0 w-[90vw] max-w-[360px] translate-x-full bg-cream transition-transform duration-200 lg:static lg:z-auto lg:h-full lg:w-full lg:max-w-none lg:translate-x-0 ${i?"translate-x-0":""}`,children:(0,n.jsx)(eE,{})}),i?(0,n.jsx)("button",{type:"button",className:"fixed inset-0 z-30 bg-ink/30 lg:hidden","aria-label":e("layout.closeContextPanelAria"),onClick:()=>c(!1)}):null]})}}},e=>{e.O(0,[642,702,307,991,618,379,441,794,358],()=>e(e.s=109)),_N_E=e.O()}]);
|