@nextclaw/ui 0.11.7 → 0.11.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/assets/{ChannelsList-B5qf0xhV.js → ChannelsList-dsxeZk5v.js} +1 -1
  3. package/dist/assets/{ChatPage-CSKgAkAj.js → ChatPage-CWK4Bckz.js} +3 -3
  4. package/dist/assets/{DocBrowser-DVf0dNDK.js → DocBrowser-B9RfxWIh.js} +1 -1
  5. package/dist/assets/{LogoBadge-CjflvkiJ.js → LogoBadge-iVDzhkNu.js} +1 -1
  6. package/dist/assets/{MarketplacePage-BuaJoa1g.js → MarketplacePage-4MZIcD0K.js} +1 -1
  7. package/dist/assets/{McpMarketplacePage-B_CgbggZ.js → McpMarketplacePage-cwLMty-D.js} +1 -1
  8. package/dist/assets/{ModelConfig-DBd5AZd4.js → ModelConfig-CNICBWzw.js} +1 -1
  9. package/dist/assets/{ProvidersList-DRny22PF.js → ProvidersList-CEHGsRSL.js} +1 -1
  10. package/dist/assets/{RemoteAccessPage-D8w9gegZ.js → RemoteAccessPage-uYxoaQ8V.js} +1 -1
  11. package/dist/assets/{RuntimeConfig-B7YGx-tX.js → RuntimeConfig-CYQq4S_m.js} +1 -1
  12. package/dist/assets/{SearchConfig-CYfBuDKk.js → SearchConfig-CaFAgBMN.js} +1 -1
  13. package/dist/assets/{SecretsConfig-x2wjudLu.js → SecretsConfig-DzWq8hGZ.js} +1 -1
  14. package/dist/assets/{SessionsConfig-D38IEjwE.js → SessionsConfig-CJJTcxyQ.js} +1 -1
  15. package/dist/assets/{index-CmUXqYBT.js → index-BlrweCCh.js} +2 -2
  16. package/dist/assets/index-Bro-iRcb.css +1 -0
  17. package/dist/assets/{label-DUP7zBqn.js → label-DtssWSI4.js} +1 -1
  18. package/dist/assets/{ncp-session-adapter-BO_kDsJR.js → ncp-session-adapter-C-jqQqcV.js} +1 -1
  19. package/dist/assets/{page-layout-YfOVwslF.js → page-layout-DnRqSldv.js} +1 -1
  20. package/dist/assets/{popover-D3DIXnQO.js → popover-Un2VFGcS.js} +1 -1
  21. package/dist/assets/{security-config-BpDorUQD.js → security-config-B7Bkebpm.js} +1 -1
  22. package/dist/assets/{skeleton-ATAzNDF-.js → skeleton-DTFzTqqO.js} +1 -1
  23. package/dist/assets/{status-dot-IK6hDwPV.js → status-dot-DOJX6vii.js} +1 -1
  24. package/dist/assets/{switch-HPdfKWmj.js → switch-utBdpBRv.js} +1 -1
  25. package/dist/assets/{tabs-custom-nkje9L_8.js → tabs-custom-ExyfvfgG.js} +1 -1
  26. package/dist/assets/{useConfirmDialog-Cvinc6iP.js → useConfirmDialog-DjNtKs4n.js} +1 -1
  27. package/dist/index.html +2 -2
  28. package/package.json +4 -4
  29. package/dist/assets/index-DbiQF_x_.css +0 -1
@@ -1,4 +1,4 @@
1
- var Ha=Object.defineProperty;var Ua=(e,t,n)=>t in e?Ha(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ne=(e,t,n)=>Ua(e,typeof t!="symbol"?t+"":t,n);import{r as k,j as h,ae as Ui,v as St,X as Va,af as $a,f as Ka,e as ht,t as qa,c as Wa,y as Qa,z as Ga,h as Vi,I as Xa,i as Vt,n as Ya,o as $i,V as Ja,q as Ki,s as Za,w as el,k as qi,l as tl,m as Wi,a as nl,ag as rl,B as Kn,G as qn,ah as il,ai as sl,aj as al,F as ll,ak as ol,al as ul,_ as cl,am as Qi,an as Gi,ao as hl,ap as dl,aq as fl,ar as pl,as as ml,at as gl,au as xl,av as yl,d as $t,aw as bl,A as Wn,ax as Sl,a0 as kl,a3 as wl,a1 as vl,a2 as Cl,M as Tl,ay as Xi,az as Il,aA as Ml,aB as Nl,u as El,a4 as Ll,aC as Al,aD as Rl}from"./vendor-BEQcLDx6.js";import{t as C,c as ve,I as Qn,B as Oe,i as Kt,j as Yi,k as jl,l as Pl,m as Gn,n as Dl,T as br,L as Sr,o as Ol,p as kr,q as Fl,r as wr,h as dt,A as Ji,s as _l,v as zl,w as Bl,x as Hl,S as Ul,e as Vl,f as $l,g as Kl,C as ql,y as Wl,z as Ql,u as Gl,a as Xl,E as Yl,F as Jl,G as Zl}from"./index-CmUXqYBT.js";import{T as eo,a as to,b as no,c as ro,P as io,R as so,d as ao,e as lo,C as Zi,M as oo,u as uo}from"./MarketplacePage-BuaJoa1g.js";import{R as co,A as ho,P as fo,C as es,T as po,a as mo,b as go,c as xo}from"./popover-D3DIXnQO.js";import{S as yo,a as bo,c as vr,b as So,d as ko,s as wo}from"./ncp-session-adapter-BO_kDsJR.js";import{u as ts}from"./useConfirmDialog-Cvinc6iP.js";import{P as vo,a as Co}from"./page-layout-YfOVwslF.js";import{b as To,c as Io,r as Mo}from"./provider-models-BOeNnjk9.js";import"./tabs-custom-nkje9L_8.js";import"./skeleton-ATAzNDF-.js";import"./marketplace-localization-Dk31LJJJ.js";var ee=(e=>(e.EndpointReady="endpoint.ready",e.EndpointError="endpoint.error",e.MessageRequest="message.request",e.MessageStreamRequest="message.stream-request",e.MessageSent="message.sent",e.MessageAccepted="message.accepted",e.MessageIncoming="message.incoming",e.MessageCompleted="message.completed",e.MessageFailed="message.failed",e.MessageAbort="message.abort",e.MessageTextStart="message.text-start",e.MessageTextDelta="message.text-delta",e.MessageTextEnd="message.text-end",e.MessageReasoningStart="message.reasoning-start",e.MessageReasoningDelta="message.reasoning-delta",e.MessageReasoningEnd="message.reasoning-end",e.MessageToolCallStart="message.tool-call-start",e.MessageToolCallArgs="message.tool-call-args",e.MessageToolCallArgsDelta="message.tool-call-args-delta",e.MessageToolCallEnd="message.tool-call-end",e.MessageToolCallResult="message.tool-call-result",e.MessageRead="message.read",e.MessageDelivered="message.delivered",e.MessageRecalled="message.recalled",e.MessageReaction="message.reaction",e.RunStarted="run.started",e.RunFinished="run.finished",e.RunError="run.error",e.RunMetadata="run.metadata",e.TypingStart="typing.start",e.TypingEnd="typing.end",e.PresenceUpdated="presence.updated",e))(ee||{}),Cr=/\[\[\s*reply_to_current\s*\]\]/gi,Tr=/\[\[\s*reply_to\s*:\s*([^\]]+?)\s*\]\]/i;function Nn(e){if(typeof e!="string")return;const t=e.trim();return t.length>0?t:void 0}function No(e,t){var s;let n=e,r;Cr.test(n)&&(r=Nn(t),n=n.replace(Cr,"").trim());const i=(s=n.match(Tr))==null?void 0:s[1];return i&&(r=Nn(i),n=n.replace(Tr,"").trim()),r?{content:n,replyTo:r}:{content:n}}function Eo(e,t=e.id){if(e.role!=="assistant")return{...e,parts:[...e.parts],metadata:e.metadata?{...e.metadata}:void 0};const n=e.parts.findIndex(d=>d.type==="text"),r=e.metadata?{...e.metadata}:void 0,i=Nn(r==null?void 0:r.reply_to);if(n<0)return{...e,parts:[...e.parts],metadata:r};const s=e.parts[n];if(!s||s.type!=="text")return{...e,parts:[...e.parts],metadata:r};const{content:a,replyTo:l}=No(s.text,t),o=l??i,u=e.parts.flatMap((d,c)=>c!==n||d.type!=="text"?[d]:a.length===0?[]:[{...d,text:a}]);return o?{...e,parts:u,metadata:{...r,reply_to:o}}:{...e,parts:u,metadata:r}}function Ir(e){const t=e.split(/\r?\n/);let n="message";const r=[];for(const i of t){const s=i.trimEnd();if(!(!s||s.startsWith(":"))){if(s.startsWith("event:")){n=s.slice(6).trim()||"message";continue}s.startsWith("data:")&&r.push(s.slice(5).trimStart())}}return r.length===0?null:{event:n,data:r.join(`
1
+ var Ha=Object.defineProperty;var Ua=(e,t,n)=>t in e?Ha(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ne=(e,t,n)=>Ua(e,typeof t!="symbol"?t+"":t,n);import{r as k,j as h,ae as Ui,v as St,X as Va,af as $a,f as Ka,e as ht,t as qa,c as Wa,y as Qa,z as Ga,h as Vi,I as Xa,i as Vt,n as Ya,o as $i,V as Ja,q as Ki,s as Za,w as el,k as qi,l as tl,m as Wi,a as nl,ag as rl,B as Kn,G as qn,ah as il,ai as sl,aj as al,F as ll,ak as ol,al as ul,_ as cl,am as Qi,an as Gi,ao as hl,ap as dl,aq as fl,ar as pl,as as ml,at as gl,au as xl,av as yl,d as $t,aw as bl,A as Wn,ax as Sl,a0 as kl,a3 as wl,a1 as vl,a2 as Cl,M as Tl,ay as Xi,az as Il,aA as Ml,aB as Nl,u as El,a4 as Ll,aC as Al,aD as Rl}from"./vendor-BEQcLDx6.js";import{t as C,c as ve,I as Qn,B as Oe,i as Kt,j as Yi,k as jl,l as Pl,m as Gn,n as Dl,T as br,L as Sr,o as Ol,p as kr,q as Fl,r as wr,h as dt,A as Ji,s as _l,v as zl,w as Bl,x as Hl,S as Ul,e as Vl,f as $l,g as Kl,C as ql,y as Wl,z as Ql,u as Gl,a as Xl,E as Yl,F as Jl,G as Zl}from"./index-BlrweCCh.js";import{T as eo,a as to,b as no,c as ro,P as io,R as so,d as ao,e as lo,C as Zi,M as oo,u as uo}from"./MarketplacePage-4MZIcD0K.js";import{R as co,A as ho,P as fo,C as es,T as po,a as mo,b as go,c as xo}from"./popover-Un2VFGcS.js";import{S as yo,a as bo,c as vr,b as So,d as ko,s as wo}from"./ncp-session-adapter-C-jqQqcV.js";import{u as ts}from"./useConfirmDialog-DjNtKs4n.js";import{P as vo,a as Co}from"./page-layout-DnRqSldv.js";import{b as To,c as Io,r as Mo}from"./provider-models-BOeNnjk9.js";import"./tabs-custom-ExyfvfgG.js";import"./skeleton-DTFzTqqO.js";import"./marketplace-localization-Dk31LJJJ.js";var ee=(e=>(e.EndpointReady="endpoint.ready",e.EndpointError="endpoint.error",e.MessageRequest="message.request",e.MessageStreamRequest="message.stream-request",e.MessageSent="message.sent",e.MessageAccepted="message.accepted",e.MessageIncoming="message.incoming",e.MessageCompleted="message.completed",e.MessageFailed="message.failed",e.MessageAbort="message.abort",e.MessageTextStart="message.text-start",e.MessageTextDelta="message.text-delta",e.MessageTextEnd="message.text-end",e.MessageReasoningStart="message.reasoning-start",e.MessageReasoningDelta="message.reasoning-delta",e.MessageReasoningEnd="message.reasoning-end",e.MessageToolCallStart="message.tool-call-start",e.MessageToolCallArgs="message.tool-call-args",e.MessageToolCallArgsDelta="message.tool-call-args-delta",e.MessageToolCallEnd="message.tool-call-end",e.MessageToolCallResult="message.tool-call-result",e.MessageRead="message.read",e.MessageDelivered="message.delivered",e.MessageRecalled="message.recalled",e.MessageReaction="message.reaction",e.RunStarted="run.started",e.RunFinished="run.finished",e.RunError="run.error",e.RunMetadata="run.metadata",e.TypingStart="typing.start",e.TypingEnd="typing.end",e.PresenceUpdated="presence.updated",e))(ee||{}),Cr=/\[\[\s*reply_to_current\s*\]\]/gi,Tr=/\[\[\s*reply_to\s*:\s*([^\]]+?)\s*\]\]/i;function Nn(e){if(typeof e!="string")return;const t=e.trim();return t.length>0?t:void 0}function No(e,t){var s;let n=e,r;Cr.test(n)&&(r=Nn(t),n=n.replace(Cr,"").trim());const i=(s=n.match(Tr))==null?void 0:s[1];return i&&(r=Nn(i),n=n.replace(Tr,"").trim()),r?{content:n,replyTo:r}:{content:n}}function Eo(e,t=e.id){if(e.role!=="assistant")return{...e,parts:[...e.parts],metadata:e.metadata?{...e.metadata}:void 0};const n=e.parts.findIndex(d=>d.type==="text"),r=e.metadata?{...e.metadata}:void 0,i=Nn(r==null?void 0:r.reply_to);if(n<0)return{...e,parts:[...e.parts],metadata:r};const s=e.parts[n];if(!s||s.type!=="text")return{...e,parts:[...e.parts],metadata:r};const{content:a,replyTo:l}=No(s.text,t),o=l??i,u=e.parts.flatMap((d,c)=>c!==n||d.type!=="text"?[d]:a.length===0?[]:[{...d,text:a}]);return o?{...e,parts:u,metadata:{...r,reply_to:o}}:{...e,parts:u,metadata:r}}function Ir(e){const t=e.split(/\r?\n/);let n="message";const r=[];for(const i of t){const s=i.trimEnd();if(!(!s||s.startsWith(":"))){if(s.startsWith("event:")){n=s.slice(6).trim()||"message";continue}s.startsWith("data:")&&r.push(s.slice(5).trimStart())}}return r.length===0?null:{event:n,data:r.join(`
2
2
  `)}}async function*Lo(e){const t=e.getReader(),n=new TextDecoder;let r="";try{for(;;){const{value:s,done:a}=await t.read();if(a)break;r+=n.decode(s,{stream:!0});const{frames:l,rest:o}=Mr(r);r=o;for(const u of l)yield u}r+=n.decode();const{frames:i}=Mr(r,!0);for(const s of i)yield s}finally{t.releaseLock()}}function Mr(e,t=!1){const n=e.split(/\r?\n\r?\n/),r=n.pop()??"",i=[];for(const s of n){const a=Ir(s);a&&i.push(a)}if(t&&r.trim()){const s=Ir(r);return s&&i.push(s),{frames:i,rest:""}}return{frames:i,rest:r}}var Nr="/ncp/agent",Ao="ncp-http-agent-client",ns=class extends Error{constructor(t,n=!1){super(t.message);ne(this,"ncpError");ne(this,"alreadyPublished");this.name=`NcpHttpAgentClientError(${t.code})`,this.ncpError=t,this.alreadyPublished=n}};function Ro(e){const t=e.trim();if(!t)throw new Error("NcpHttpAgentClient requires a non-empty baseUrl.");return new URL(t)}function jo(e){if(e)return e;if(typeof globalThis.fetch=="function")return globalThis.fetch.bind(globalThis);throw new Error("No fetch implementation found. Pass options.fetchImpl explicitly.")}function Po(e){const t=(e??Nr).trim();if(!t)return Nr;const n=t.startsWith("/")?t:`/${t}`;return n.endsWith("/")?n.slice(0,-1):n}async function Er(e){try{return(await e.text()).trim()}catch{return""}}function Lr(e){if(rs(e))return e.ncpError;if(Do(e))return e;const t=e instanceof Error?e.message:String(e??"Unknown error");return{code:is(void 0),message:t,...e instanceof Error&&e.stack?{details:{stack:e.stack}}:{}}}function tn(e,t={}){return new ns(e,t.alreadyPublished??!1)}function Do(e){return Xn(e)&&typeof e.code=="string"&&typeof e.message=="string"}function Xn(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function rs(e){return e instanceof ns}var Oo={"config-error":"config-error","auth-error":"auth-error","runtime-error":"runtime-error","timeout-error":"timeout-error","abort-error":"abort-error"};function is(e){if(!e)return"runtime-error";const t=Oo[e];if(t)return t;const n=e.toLowerCase();return n.includes("timeout")?"timeout-error":n.includes("abort")||n.includes("cancel")?"abort-error":n.includes("auth")?"auth-error":n.includes("config")?"config-error":"runtime-error"}function Fo(e){const t=ss(e);return!t||typeof t.type!="string"||!t.type.trim()?null:t}function _o(e){const t=ss(e);if(!t)return{code:"runtime-error",message:e||"Unknown stream error."};const n=typeof t.code=="string"?t.code:void 0,r=is(n),i=Xn(t.details)?t.details:{};return n&&n!==r&&(i.originalCode=n),{code:r,message:typeof t.message=="string"&&t.message?t.message:"Unknown stream error.",...Object.keys(i).length>0?{details:i}:{}}}function ss(e){try{const t=JSON.parse(e);return Xn(t)?t:null}catch{return null}}var zo=["text","file","source","step-start","reasoning","tool-invocation","card","rich-text","action","extension"],Bo=class{constructor(e){ne(this,"manifest");ne(this,"baseUrl");ne(this,"basePath");ne(this,"fetchImpl");ne(this,"defaultHeaders");ne(this,"subscribers",new Set);ne(this,"activeControllers",new Set);ne(this,"started",!1);var t;this.baseUrl=Ro(e.baseUrl),this.basePath=Po(e.basePath),this.fetchImpl=jo(e.fetchImpl),this.defaultHeaders=e.headers??{},this.manifest={endpointKind:"custom",endpointId:((t=e.endpointId)==null?void 0:t.trim())||Ao,version:"0.1.0",supportsStreaming:!0,supportsAbort:!0,supportsProactiveMessages:!1,supportsLiveSessionStream:!0,supportedPartTypes:zo,expectedLatency:"seconds",metadata:{transport:"http+sse",scope:"agent"}}}async start(){this.started||(this.started=!0,this.publish({type:ee.EndpointReady}))}async stop(){if(this.started){this.started=!1;for(const e of this.activeControllers)e.abort();this.activeControllers.clear()}}async emit(e){switch(e.type){case"message.request":await this.send(e.payload);return;case"message.stream-request":await this.stream(e.payload);return;case"message.abort":await this.abort(e.payload);return;default:this.publish(e);return}}subscribe(e){return this.subscribers.add(e),()=>{this.subscribers.delete(e)}}async send(e){await this.ensureStarted(),await this.streamRequest({path:"/send",method:"POST",body:e})}async stream(e){await this.ensureStarted();const t=new URLSearchParams({sessionId:e.sessionId});await this.streamRequest({path:`/stream?${t.toString()}`,method:"GET"})}async abort(e){await this.ensureStarted();const t=new AbortController;this.activeControllers.add(t);try{const n=await this.fetchImpl(this.resolveUrl("/abort"),{method:"POST",headers:{...this.defaultHeaders,"content-type":"application/json",accept:"application/json"},body:JSON.stringify(e),signal:t.signal});if(!n.ok)throw new Error(`Abort request failed with HTTP ${n.status}: ${await Er(n)}`)}catch(n){if(t.signal.aborted)return;const r=Lr(n);throw this.publish({type:ee.EndpointError,payload:r}),tn(r)}finally{this.activeControllers.delete(t)}}async ensureStarted(){this.started||await this.start()}publish(e){for(const t of this.subscribers)t(e)}resolveUrl(e){return new URL(`${this.basePath}${e}`,this.baseUrl)}async streamRequest(e){const t=new AbortController;this.activeControllers.add(t);try{const n=await this.fetchImpl(this.resolveUrl(e.path),{method:e.method,headers:{...this.defaultHeaders,accept:"text/event-stream",...e.body!==void 0?{"content-type":"application/json"}:{}},body:e.body===void 0?void 0:JSON.stringify(e.body),signal:t.signal});if(!n.ok)throw new Error(`NCP stream request failed with HTTP ${n.status}: ${await Er(n)}`);if(!n.body)throw new Error("NCP stream response has no body.");for await(const r of Lo(n.body)){if(t.signal.aborted)return;this.handleSseFrame(r)}}catch(n){if(t.signal.aborted)return;if(rs(n))throw n;const r=Lr(n);throw this.publish({type:ee.EndpointError,payload:r}),tn(r)}finally{this.activeControllers.delete(t)}}handleSseFrame(e){if(e.event==="ncp-event"){const t=Fo(e.data);if(!t){this.publish({type:ee.EndpointError,payload:{code:"runtime-error",message:"Received malformed ncp-event frame."}});return}this.publish(t);return}if(e.event==="error"){const t=_o(e.data);throw this.publish({type:ee.EndpointError,payload:t}),tn(t,{alreadyPublished:!0})}}};function Pt(e){return{...e,parts:[...e.parts],metadata:e.metadata?{...e.metadata}:void 0}}function nn(e){return Pt(Eo(e))}function Ho(e){var n;const t=(n=e.error)==null?void 0:n.trim();return{code:"runtime-error",message:t&&t.length>0?t:"Agent run failed.",details:{sessionId:e.sessionId,messageId:e.messageId,threadId:e.threadId,runId:e.runId}}}function Uo(e,t){return t.trim()?e.id.startsWith("tool-")?!0:e.parts.some(n=>n.type==="tool-invocation"):!1}function Vo(e,t,n){for(const[r,i]of e)i===t&&e.set(r,n)}function rn(e,t,n){for(const[r,i]of e)i===n&&(e.delete(r),t.delete(r))}function En(e,t){for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(r.type==="tool-invocation"&&r.toolCallId===t)return r}return null}function Ar(e,t){const n=En(e,t);return(n==null?void 0:n.toolName)??null}function st(e,t){const n=[...e];for(let r=n.length-1;r>=0;r-=1){const i=n[r];if(i.type==="tool-invocation"&&i.toolCallId===t.toolCallId)return n[r]={...i,...t},n}return n.push(t),n}var $o="assistant",Ko=class{constructor(){ne(this,"messages",[]);ne(this,"streamingMessage",null);ne(this,"error",null);ne(this,"activeRun",null);ne(this,"listeners",new Set);ne(this,"toolCallMessageIdByCallId",new Map);ne(this,"toolCallArgsRawByCallId",new Map);ne(this,"snapshotCache",null);ne(this,"snapshotVersion",-1);ne(this,"stateVersion",0)}getSnapshot(){if(this.snapshotCache&&this.snapshotVersion===this.stateVersion)return this.snapshotCache;const e={messages:this.messages.map(t=>Pt(t)),streamingMessage:this.streamingMessage?Pt(this.streamingMessage):null,error:this.error?{...this.error,details:this.error.details?{...this.error.details}:void 0}:null,activeRun:this.activeRun?{...this.activeRun}:null};return this.snapshotCache=e,this.snapshotVersion=this.stateVersion,e}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}reset(){this.messages.length===0&&!this.streamingMessage&&!this.error&&!this.activeRun&&this.toolCallMessageIdByCallId.size===0&&this.toolCallArgsRawByCallId.size===0||(this.messages=[],this.streamingMessage=null,this.error=null,this.activeRun=null,this.toolCallMessageIdByCallId.clear(),this.toolCallArgsRawByCallId.clear(),this.stateVersion+=1,this.notifyListeners())}hydrate(e){this.messages=e.messages.map(t=>nn(t)),this.streamingMessage=null,this.error=null,this.activeRun=e.activeRun?{...e.activeRun,sessionId:e.activeRun.sessionId??e.sessionId,abortDisabledReason:e.activeRun.abortDisabledReason??null}:null,this.toolCallMessageIdByCallId.clear(),this.toolCallArgsRawByCallId.clear(),this.stateVersion+=1,this.notifyListeners()}async dispatch(e){const t=this.stateVersion;switch(e.type){case ee.MessageSent:this.handleMessageSent(e.payload);break;case ee.MessageAbort:this.handleMessageAbort(e.payload);break;case ee.MessageTextStart:this.handleMessageTextStart(e.payload);break;case ee.MessageTextDelta:this.handleMessageTextDelta(e.payload);break;case ee.MessageTextEnd:this.handleMessageTextEnd(e.payload);break;case ee.MessageReasoningStart:this.handleMessageReasoningStart(e.payload);break;case ee.MessageReasoningDelta:this.handleMessageReasoningDelta(e.payload);break;case ee.MessageReasoningEnd:this.handleMessageReasoningEnd(e.payload);break;case ee.MessageToolCallStart:this.handleMessageToolCallStart(e.payload);break;case ee.MessageToolCallArgs:this.handleMessageToolCallArgs(e.payload);break;case ee.MessageToolCallArgsDelta:this.handleMessageToolCallArgsDelta(e.payload);break;case ee.MessageToolCallEnd:this.handleMessageToolCallEnd(e.payload);break;case ee.MessageToolCallResult:this.handleMessageToolCallResult(e.payload);break;case ee.RunStarted:this.handleRunStarted(e.payload);break;case ee.RunFinished:this.handleRunFinished(e.payload);break;case ee.RunError:this.handleRunError(e.payload);break;case ee.RunMetadata:this.handleRunMetadata(e.payload);break;case ee.EndpointError:this.handleEndpointError(e.payload);break}this.stateVersion!==t&&this.notifyListeners()}handleMessageSent(e){this.upsertMessage(e.message),this.setError(null)}handleMessageAbort(e){var n;const t=(n=e.messageId)==null?void 0:n.trim();if(this.clearActiveRun(),this.setError(null),this.streamingMessage&&(!t||this.streamingMessage.id===t)){const r=this.streamingMessage.id;this.upsertMessage({...this.streamingMessage,status:"final"}),this.replaceStreamingMessage(null),t?rn(this.toolCallMessageIdByCallId,this.toolCallArgsRawByCallId,t):rn(this.toolCallMessageIdByCallId,this.toolCallArgsRawByCallId,r)}}handleMessageTextStart(e){this.ensureStreamingMessage(e.sessionId,e.messageId,"streaming"),this.setError(null)}handleMessageTextDelta(e){if(!e.delta)return;const t=this.ensureStreamingMessage(e.sessionId,e.messageId,"streaming"),n=[...t.parts],r=n[n.length-1];(r==null?void 0:r.type)==="text"?n[n.length-1]={type:"text",text:`${r.text}${e.delta}`}:n.push({type:"text",text:e.delta}),this.replaceStreamingMessage({...t,parts:n,status:"streaming"})}handleMessageTextEnd(e){var t;((t=this.streamingMessage)==null?void 0:t.id)===e.messageId&&this.streamingMessage.status==="streaming"&&this.replaceStreamingMessage({...this.streamingMessage,status:"pending"})}handleMessageReasoningStart(e){this.ensureStreamingMessage(e.sessionId,e.messageId,"streaming")}handleMessageReasoningDelta(e){if(!e.delta)return;const t=this.ensureStreamingMessage(e.sessionId,e.messageId,"streaming"),n=[...t.parts],r=n[n.length-1];(r==null?void 0:r.type)==="reasoning"?n[n.length-1]={type:"reasoning",text:`${r.text}${e.delta}`}:n.push({type:"reasoning",text:e.delta}),this.replaceStreamingMessage({...t,parts:n,status:"streaming"})}handleMessageReasoningEnd(e){var t;(t=this.streamingMessage)==null||t.id,e.messageId}handleMessageToolCallStart(e){const t=this.resolveToolCallTargetMessage(e.sessionId,e.toolCallId,e.messageId);this.toolCallArgsRawByCallId.set(e.toolCallId,"");const n=st(t.parts,{type:"tool-invocation",toolCallId:e.toolCallId,toolName:e.toolName,state:"partial-call",args:""});this.replaceStreamingMessage({...t,parts:n,status:"streaming"}),this.setError(null)}handleMessageToolCallArgs(e){this.toolCallArgsRawByCallId.set(e.toolCallId,e.args),this.applyToolCallArgs(e.sessionId,e.toolCallId,e.args)}handleMessageToolCallArgsDelta(e){const n=`${this.toolCallArgsRawByCallId.get(e.toolCallId)??""}${e.delta}`;this.toolCallArgsRawByCallId.set(e.toolCallId,n),this.applyToolCallArgs(e.sessionId,e.toolCallId,n,e.messageId)}handleMessageToolCallEnd(e){const t=this.resolveToolCallTargetMessage(e.sessionId,e.toolCallId),n=this.toolCallArgsRawByCallId.get(e.toolCallId)??"",r=st(t.parts,{type:"tool-invocation",toolCallId:e.toolCallId,toolName:Ar(t.parts,e.toolCallId)??"unknown",state:"call",args:n});this.replaceStreamingMessage({...t,parts:r,status:"streaming"})}handleMessageToolCallResult(e){if(!this.updateMessageContainingToolCall(e.toolCallId,(n,r)=>{const i={type:"tool-invocation",toolCallId:e.toolCallId,toolName:r.toolName,state:"result",args:r.args,result:e.content};return st(n.parts,i)})){const n=this.resolveToolCallTargetMessage(e.sessionId,e.toolCallId),r=st(n.parts,{type:"tool-invocation",toolCallId:e.toolCallId,toolName:"unknown",state:"result",result:e.content});this.replaceStreamingMessage({...n,parts:r,status:"streaming"})}}handleRunStarted(e){this.setError(null),this.activeRun={runId:e.runId??null,sessionId:e.sessionId},this.stateVersion+=1}handleRunFinished(e){this.settleStreamingMessage("final"),this.setError(null),this.clearActiveRun()}handleRunError(e){this.settleStreamingMessage("error"),this.setError(Ho(e)),this.clearActiveRun()}handleRunMetadata(e){var n,r;const t=e.metadata;if((t==null?void 0:t.kind)==="ready"){const i=t;this.activeRun={runId:i.runId??((n=this.activeRun)==null?void 0:n.runId)??null,sessionId:i.sessionId??((r=this.activeRun)==null?void 0:r.sessionId),abortDisabledReason:i.supportsAbort===!1?i.abortDisabledReason??"Unsupported":null},this.stateVersion+=1}else(t==null?void 0:t.kind)==="final"&&this.clearActiveRun()}handleEndpointError(e){var t,n,r;if(e.code==="abort-error"){this.handleMessageAbort({sessionId:((t=this.activeRun)==null?void 0:t.sessionId)??((n=this.streamingMessage)==null?void 0:n.sessionId)??"",...(r=this.streamingMessage)!=null&&r.id?{messageId:this.streamingMessage.id}:{}});return}this.settleStreamingMessage("error"),this.clearActiveRun(),this.setError(e)}applyToolCallArgs(e,t,n,r){const i=this.resolveToolCallTargetMessage(e,t,r),s=Ar(i.parts,t)??"unknown",a=st(i.parts,{type:"tool-invocation",toolCallId:t,toolName:s,state:"partial-call",args:n});this.replaceStreamingMessage({...i,parts:a,status:"streaming"})}ensureStreamingMessage(e,t,n){var a;if(((a=this.streamingMessage)==null?void 0:a.id)===t){if(this.streamingMessage.status===n)return this.streamingMessage;const l={...this.streamingMessage,status:n};return this.replaceStreamingMessage(l),l}const r=this.messages.findIndex(l=>l.id===t);if(r>=0){const l=Pt(this.messages[r]),o=[...this.messages];o.splice(r,1),this.messages=o,this.stateVersion+=1;const u={...l,sessionId:e,status:n};return this.replaceStreamingMessage(u),u}const i=this.streamingMessage;if(i&&i.id!==t&&i.sessionId===e&&Uo(i,t)){const l={...i,id:t,sessionId:e,status:n};return Vo(this.toolCallMessageIdByCallId,i.id,t),this.replaceStreamingMessage(l),l}const s={id:t,sessionId:e,role:$o,status:n,parts:[],timestamp:new Date().toISOString()};return this.replaceStreamingMessage(s),s}resolveToolCallTargetMessage(e,t,n){var i;const r=(n==null?void 0:n.trim())||this.toolCallMessageIdByCallId.get(t)||((i=this.streamingMessage)==null?void 0:i.id)||`tool-${t}`;return this.toolCallMessageIdByCallId.set(t,r),this.ensureStreamingMessage(e,r,"streaming")}updateMessageContainingToolCall(e,t){if(this.streamingMessage){const n=En(this.streamingMessage.parts,e);if(n){const r=t(this.streamingMessage,n);return this.replaceStreamingMessage({...this.streamingMessage,parts:r}),!0}}for(let n=this.messages.length-1;n>=0;n-=1){const r=this.messages[n],i=En(r.parts,e);if(!i)continue;const s=[...this.messages];return s[n]={...r,parts:t(r,i)},this.messages=s,this.stateVersion+=1,!0}return!1}upsertMessage(e){const t=nn(e),n=this.messages.findIndex(i=>i.id===t.id);if(n<0){this.messages=[...this.messages,t],this.stateVersion+=1;return}const r=[...this.messages];r[n]=t,this.messages=r,this.stateVersion+=1}replaceStreamingMessage(e){!e&&!this.streamingMessage||(this.streamingMessage=e?nn(e):null,this.stateVersion+=1)}setError(e){var n,r,i,s;((n=this.error)==null?void 0:n.code)===(e==null?void 0:e.code)&&((r=this.error)==null?void 0:r.message)===(e==null?void 0:e.message)&&((i=this.error)==null?void 0:i.details)===(e==null?void 0:e.details)&&((s=this.error)==null?void 0:s.cause)===(e==null?void 0:e.cause)||(this.error=e?{...e,details:e.details?{...e.details}:void 0}:null,this.stateVersion+=1)}clearActiveRun(){this.activeRun&&(this.activeRun=null,this.stateVersion+=1)}settleStreamingMessage(e){if(!this.streamingMessage)return;const t={...this.streamingMessage,status:e};this.upsertMessage(t),this.replaceStreamingMessage(null),rn(this.toolCallMessageIdByCallId,this.toolCallArgsRawByCallId,t.id)}notifyListeners(){const e=this.getSnapshot();for(const t of this.listeners)t(e)}};function qo(e,t){const n="payload"in e?e.payload:null;return!n||typeof n!="object"||!("sessionId"in n)||typeof n.sessionId!="string"?!0:n.sessionId===t}function Wo(e){return e.parts.some(t=>t.type==="text"||t.type==="rich-text"||t.type==="reasoning"?t.text.trim().length>0:!0)}function Qo(e,t){if(typeof e=="string"){const n=e.trim();return n?{sessionId:t,message:{id:`user-${Date.now().toString(36)}`,sessionId:t,role:"user",status:"final",parts:[{type:"text",text:n}],timestamp:new Date().toISOString()}}:null}return Wo(e.message)?{...e,sessionId:e.sessionId,message:{...e.message,sessionId:e.message.sessionId||e.sessionId}}:null}function Go(e){const t=k.useRef();return(!t.current||t.current.sessionId!==e)&&(t.current={sessionId:e,manager:new Ko}),t.current.manager}function Xo({sessionId:e,client:t,manager:n}){var p;const r=k.useSyncExternalStore(f=>n.subscribe(()=>f()),()=>n.getSnapshot(),()=>n.getSnapshot()),[i,s]=k.useState(!1);k.useEffect(()=>{s(!1)},[e]),k.useEffect(()=>{const f=t.subscribe(m=>{qo(m,e)&&n.dispatch(m)});return()=>{f(),t.stop()}},[t,n,e]);const a=r.streamingMessage?[...r.messages,r.streamingMessage]:r.messages,l=((p=r.activeRun)==null?void 0:p.runId)??null,o=!!r.activeRun;return{snapshot:r,visibleMessages:a,activeRunId:l,isRunning:o,isSending:i,send:async f=>{if(i||o)return;const m=Qo(f,e);if(m){s(!0),await n.dispatch({type:ee.MessageSent,payload:{sessionId:e,message:m.message,metadata:m.metadata}});try{await t.send(m)}finally{s(!1)}}},abort:async()=>{r.activeRun&&await t.abort({sessionId:e})},streamRun:async()=>{r.activeRun&&await t.stream({sessionId:e})}}}function Rr(e){return e instanceof Error?e:new Error(String(e))}function Yo(e){return e.isHydrating||e.hydratedSessionId!==e.sessionId}function Jo({sessionId:e,client:t,loadSeed:n,autoResumeRunningSession:r=!0}){const i=Go(e),s=Xo({sessionId:e,client:t,manager:i}),[a,l]=k.useState(!0),[o,u]=k.useState(null),[d,c]=k.useState(null),p=k.useRef({requestId:0,controller:null}),f=k.useCallback(async()=>{var S;(S=p.current.controller)==null||S.abort();const m=new AbortController,y=p.current.requestId+1;p.current={requestId:y,controller:m},await t.stop(),i.reset(),u(null),l(!0);try{const g=await n(e,m.signal);if(m.signal.aborted||p.current.requestId!==y)return;i.hydrate({sessionId:e,messages:g.messages,activeRun:g.status==="running"?{runId:null,sessionId:e,abortDisabledReason:null}:null}),u(null),c(e),l(!1),g.status==="running"&&r&&t.stream({sessionId:e}).catch(I=>{p.current.requestId===y&&u(Rr(I))})}catch(g){if(m.signal.aborted||p.current.requestId!==y)return;u(Rr(g)),c(e),l(!1)}finally{p.current.controller===m&&(p.current.controller=null)}},[r,t,n,i,e]);return k.useEffect(()=>(f(),()=>{var m;(m=p.current.controller)==null||m.abort(),p.current.controller=null}),[f]),{...s,isHydrating:Yo({sessionId:e,hydratedSessionId:d,isHydrating:a}),hydrateError:o,reloadSeed:f}}var as=200*1024*1024,Zo="application/octet-stream";function ls(e){const t=e.type.trim().toLowerCase();return t.length>0?t:Zo}function eu(e,t){const n=t.acceptedMimeTypes&&t.acceptedMimeTypes.length>0?new Set(t.acceptedMimeTypes.map(s=>s.trim().toLowerCase())):null,r=t.maxBytes??as,i=ls(e);return n&&!n.has(i)?{ok:!1,rejected:{fileName:e.name,mimeType:i,sizeBytes:e.size,reason:"unsupported-type"}}:e.size>r?{ok:!1,rejected:{fileName:e.name,mimeType:i,sizeBytes:e.size,reason:"too-large"}}:{ok:!0,mimeType:i}}function tu(e){var i;const t=e.parts&&e.parts.length>0?e.parts.map(s=>structuredClone(s)):[...((i=e.text)==null?void 0:i.trim())??""?[{type:"text",text:e.text.trim()}]:[],...(e.attachments??[]).map(s=>{var a,l,o;return{type:"file",name:s.name,mimeType:s.mimeType,...(a=s.assetUri)!=null&&a.trim()?{assetUri:s.assetUri.trim()}:{},...(l=s.url)!=null&&l.trim()?{url:s.url.trim()}:{},...(o=s.contentBase64)!=null&&o.trim()?{contentBase64:s.contentBase64.trim()}:{},sizeBytes:s.sizeBytes}})];if(t.length===0)return null;const n=e.timestamp??new Date().toISOString(),r=e.messageId??`user-${Date.now().toString(36)}`;return{sessionId:e.sessionId,message:{id:r,sessionId:e.sessionId,role:"user",status:"final",parts:t,timestamp:n,...e.metadata?{metadata:e.metadata}:{}},...e.metadata?{metadata:e.metadata}:{}}}async function nu(e,t){const n=[],r=[];for(const i of e){const s=eu(i,t);if(!s.ok){r.push(s.rejected);continue}n.push(i)}if(n.length===0)return{attachments:[],rejected:r};try{return{attachments:await t.uploadBatch(n),rejected:r}}catch{return r.push(...n.map(i=>({fileName:i.name,mimeType:ls(i),sizeBytes:i.size,reason:"read-failed"}))),{attachments:[],rejected:r}}}const ru={connected:{dotClass:"bg-emerald-500"},disconnected:{dotClass:"h-2.5 w-2.5 rounded-full border border-gray-400 bg-transparent"},connecting:{dotClass:"text-amber-600"}};function iu({status:e,className:t}){const n=ru[e],r=e==="connected"?C("connected"):e==="disconnected"?C("disconnected"):C("connecting");return h.jsx(eo,{delayDuration:250,children:h.jsxs(to,{children:[h.jsx(no,{asChild:!0,children:h.jsx("span",{role:"status","aria-label":r,className:ve("inline-flex h-5 w-5 items-center justify-center",t),children:e==="connecting"?h.jsx(Ui,{className:ve("h-3 w-3 animate-spin",n.dotClass)}):h.jsx("span",{className:ve(e==="connected"?"h-2 w-2 rounded-full":"",n.dotClass)})})}),h.jsx(ro,{side:"bottom",className:"text-xs",children:r})]})})}function su(e){const{session:t,active:n,runStatus:r,sessionTypeLabel:i,title:s,isEditing:a,draftLabel:l,isSaving:o,onSelect:u,onStartEditing:d,onDraftLabelChange:c,onSave:p,onCancel:f}=e;return h.jsx("div",{className:ve("w-full rounded-xl px-3 py-2 text-left transition-all text-[13px]",n?"bg-gray-200 text-gray-900 font-semibold shadow-sm":"text-gray-700 hover:bg-gray-200/60 hover:text-gray-900"),children:a?h.jsxs("div",{className:"space-y-2",children:[h.jsx(Qn,{value:l,onChange:m=>c(m.target.value),onKeyDown:m=>{m.key==="Enter"?(m.preventDefault(),p()):m.key==="Escape"&&(m.preventDefault(),f())},placeholder:C("sessionsLabelPlaceholder"),className:"h-8 rounded-lg border-gray-300 bg-white text-xs",autoFocus:!0,disabled:o}),h.jsxs("div",{className:"flex items-center justify-between gap-2",children:[h.jsx("div",{className:"min-w-0 text-[11px] text-gray-400 truncate",children:t.key}),h.jsxs("div",{className:"flex items-center gap-1",children:[h.jsx(Oe,{type:"button",size:"icon",variant:"ghost",className:"h-7 w-7 rounded-lg text-gray-500 hover:bg-white hover:text-gray-900",onClick:()=>void p(),disabled:o,"aria-label":C("save"),children:h.jsx(St,{className:"h-3.5 w-3.5"})}),h.jsx(Oe,{type:"button",size:"icon",variant:"ghost",className:"h-7 w-7 rounded-lg text-gray-500 hover:bg-white hover:text-gray-900",onClick:f,disabled:o,"aria-label":C("cancel"),children:h.jsx(Va,{className:"h-3.5 w-3.5"})})]})]})]}):h.jsxs("div",{className:"group/session relative",children:[h.jsxs("button",{type:"button",onClick:u,className:"w-full text-left",children:[h.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_0.875rem] items-center gap-1.5 pr-8",children:[h.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[h.jsx("span",{className:"truncate font-medium",children:s}),i?h.jsx("span",{className:ve("shrink-0 rounded-full border px-1.5 py-0.5 text-[10px] font-semibold leading-none",n?"border-gray-300 bg-white/80 text-gray-700":"border-gray-200 bg-gray-100 text-gray-500"),children:i}):null]}),h.jsx("span",{className:"inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:r?h.jsx(yo,{status:r}):null})]}),h.jsxs("div",{className:"mt-0.5 text-[11px] text-gray-400 truncate",children:[t.messageCount," · ",Kt(t.updatedAt)]})]}),h.jsx("button",{type:"button",onClick:m=>{m.stopPropagation(),d()},className:ve("absolute right-0 top-0 inline-flex h-7 w-7 items-center justify-center rounded-lg text-gray-400 transition-all hover:bg-white hover:text-gray-900",n?"opacity-100":"opacity-0 group-hover/session:opacity-100 group-focus-within/session:opacity-100"),"aria-label":C("edit"),children:h.jsx($a,{className:"h-3.5 w-3.5"})})]})})}function au(){const e=Ka();return async t=>{try{await Yi(t.sessionKey,{label:t.label}),e.invalidateQueries({queryKey:["ncp-sessions"]}),e.invalidateQueries({queryKey:["ncp-session-messages",t.sessionKey]}),ht.success(C("configSavedApplied"))}catch(n){throw ht.error(C("configSaveFailed")+": "+(n instanceof Error?n.message:String(n))),n}}}const os=k.createContext(null);function lu({presenter:e,children:t}){return h.jsx(os.Provider,{value:e,children:t})}function Yn(){const e=k.useContext(os);if(!e)throw new Error("usePresenter must be used inside ChatPresenterProvider");return e}const ou=e=>`[data-item-index="${e}"]`;function us(e){const t=e.getItemSelector??ou;k.useEffect(()=>{if(!e.isEnabled||e.itemCount===0)return;const n=e.containerRef.current;if(!n)return;const r=n.querySelector(t(e.activeIndex));r==null||r.scrollIntoView({block:"nearest",inline:"nearest"})},[t,e.activeIndex,e.containerRef,e.isEnabled,e.itemCount])}function uu(){const e=k.useRef(null),[t,n]=k.useState(null);return k.useEffect(()=>{const r=e.current;if(!r||typeof ResizeObserver>"u")return;const i=()=>{n(r.getBoundingClientRect().width)};i();const s=new ResizeObserver(()=>i());return s.observe(r),()=>s.disconnect()},[]),{elementRef:e,width:t}}function Q(...e){return qa(Wa(e))}const cs=k.forwardRef(({className:e,type:t,...n},r)=>h.jsx("input",{type:t,className:Q("flex h-9 w-full rounded-xl border border-gray-200/80 bg-white px-3.5 py-2 text-sm text-gray-900 file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-300 placeholder:font-normal focus:outline-none focus:ring-1 focus:ring-primary/40 focus:border-primary/40 transition-colors disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...n}));cs.displayName="ChatInput";const cu=co,hu=po,du=ho,hs=k.forwardRef(({className:e,sideOffset:t=8,align:n="start",...r},i)=>h.jsx(fo,{children:h.jsx(es,{ref:i,sideOffset:t,align:n,className:Q("z-[var(--z-popover,50)] w-72 overflow-hidden rounded-2xl border border-gray-200/50 bg-white p-4 shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r})}));hs.displayName=es.displayName;const fu=Qa,pu=Ga,ds=k.forwardRef(({className:e,children:t,...n},r)=>h.jsxs(Vi,{ref:r,className:Q("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-xl border border-gray-200/80 bg-white px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary/40 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,h.jsx(Xa,{asChild:!0,children:h.jsx(Vt,{className:"h-4 w-4 opacity-50"})})]}));ds.displayName=Vi.displayName;const fs=k.forwardRef(({className:e,...t},n)=>h.jsx(qi,{ref:n,className:Q("flex cursor-default items-center justify-center py-1",e),...t,children:h.jsx(tl,{className:"h-4 w-4"})}));fs.displayName=qi.displayName;const ps=k.forwardRef(({className:e,...t},n)=>h.jsx(Wi,{ref:n,className:Q("flex cursor-default items-center justify-center py-1",e),...t,children:h.jsx(Vt,{className:"h-4 w-4"})}));ps.displayName=Wi.displayName;const ms=k.forwardRef(({className:e,children:t,position:n="popper",...r},i)=>h.jsx(Ya,{children:h.jsxs($i,{ref:i,className:Q("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md bg-white text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[h.jsx(fs,{}),h.jsx(Ja,{className:Q("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),h.jsx(ps,{})]})}));ms.displayName=$i.displayName;const gs=k.forwardRef(({className:e,children:t,...n},r)=>h.jsxs(Ki,{ref:r,className:Q("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-gray-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 hover:bg-gray-100",e),...n,children:[h.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:h.jsx(Za,{children:h.jsx(St,{className:"h-4 w-4"})})}),h.jsx(el,{children:t})]}));gs.displayName=Ki.displayName;const mu=io,gu=so,xu=ao,xs=k.forwardRef(({className:e,sideOffset:t=4,...n},r)=>h.jsx(lo,{children:h.jsx(Zi,{ref:r,sideOffset:t,className:Q("z-[var(--z-tooltip)] overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));xs.displayName=Zi.displayName;const kt={Popover:cu,PopoverAnchor:du,PopoverContent:hs,PopoverTrigger:hu,Input:cs,Select:fu,SelectContent:ms,SelectItem:gs,SelectTrigger:ds,SelectValue:pu,Tooltip:gu,TooltipContent:xs,TooltipProvider:mu,TooltipTrigger:xu},yu=680,bu=.82,Su=560;function ku(e){const{Popover:t,PopoverAnchor:n,PopoverContent:r}=kt,{elementRef:i,width:s}=uu(),a=k.useRef(null),{isOpen:l,isLoading:o,items:u,activeIndex:d,activeItem:c,texts:p,onSelectItem:f,onOpenChange:m,onSetActiveIndex:y}=e,S=k.useMemo(()=>{if(s)return Math.min(s>Su?s*bu:s,yu)},[s]);return us({containerRef:a,activeIndex:d,itemCount:u.length,isEnabled:l&&!o,getItemSelector:g=>`[data-slash-index="${g}"]`}),h.jsxs(t,{open:l,onOpenChange:m,children:[h.jsx(n,{asChild:!0,children:h.jsx("div",{ref:i,className:"pointer-events-none absolute bottom-full left-3 right-3 h-0"})}),h.jsx(r,{side:"top",align:"start",sideOffset:10,className:"z-[70] max-w-[calc(100vw-1.5rem)] overflow-hidden rounded-2xl border border-gray-200 bg-white/95 p-0 shadow-2xl backdrop-blur-md",onOpenAutoFocus:g=>g.preventDefault(),style:S?{width:`${S}px`}:void 0,children:h.jsxs("div",{className:"grid min-h-[240px] grid-cols-[minmax(220px,300px)_minmax(0,1fr)]",children:[h.jsx("div",{ref:a,role:"listbox","aria-label":p.slashSectionLabel,className:"custom-scrollbar max-h-[320px] overflow-y-auto border-r border-gray-200 p-2.5",children:o?h.jsx("div",{className:"p-2 text-xs text-gray-500",children:p.slashLoadingLabel}):h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"mb-2 px-2 text-[11px] font-semibold uppercase tracking-wide text-gray-500",children:p.slashSectionLabel}),u.length===0?h.jsx("div",{className:"px-2 text-xs text-gray-400",children:p.slashEmptyLabel}):h.jsx("div",{className:"space-y-1",children:u.map((g,I)=>{const M=I===d;return h.jsxs("button",{type:"button",role:"option","aria-selected":M,"data-slash-index":I,onMouseEnter:()=>y(I),onClick:()=>f(g),className:`flex w-full items-start gap-2 rounded-lg px-2 py-1.5 text-left transition ${M?"bg-gray-100 text-gray-900":"text-gray-700 hover:bg-gray-50"}`,children:[h.jsx("span",{className:"truncate text-xs font-semibold",children:g.title}),h.jsx("span",{className:"truncate text-xs text-gray-500",children:g.subtitle})]},g.key)})})]})}),h.jsx("div",{className:"max-w-[320px] p-3.5",children:c?h.jsxs("div",{className:"space-y-3",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("span",{className:"inline-flex rounded-full bg-primary/10 px-2 py-0.5 text-[11px] font-semibold text-primary",children:c.subtitle}),h.jsx("span",{className:"text-sm font-semibold text-gray-900",children:c.title})]}),h.jsx("p",{className:"text-xs leading-5 text-gray-600",children:c.description}),h.jsx("div",{className:"space-y-1",children:c.detailLines.map(g=>h.jsx("div",{className:"rounded-md bg-gray-50 px-2 py-1 text-[11px] text-gray-600",children:g},g))}),h.jsx("div",{className:"pt-1 text-[11px] text-gray-500",children:p.slashSkillHintLabel})]}):h.jsx("div",{className:"text-xs text-gray-500",children:p.slashHintLabel})})]})})]})}const wu=nl("inline-flex items-center justify-center whitespace-nowrap rounded-full text-sm font-medium ring-offset-background transition-all duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-gray-200 bg-white hover:bg-gray-50 hover:text-gray-800 text-gray-600",secondary:"bg-gray-100 text-gray-700 hover:bg-gray-200/80",ghost:"hover:bg-gray-100/80 hover:text-gray-800",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",subtle:"bg-gray-100 text-gray-600 hover:bg-gray-200/80","primary-outline":"border border-primary/30 text-primary hover:bg-primary hover:text-primary-foreground"},size:{default:"h-9 px-4 py-2",sm:"h-8 px-3 text-xs",lg:"h-11 px-5 text-[14px]",xl:"h-12 px-6 text-[15px]",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),Dt=k.forwardRef(({className:e,variant:t,size:n,...r},i)=>h.jsx("button",{className:Q(wu({variant:t,size:n,className:e})),ref:i,...r}));Dt.displayName="ChatButton";function jr(){return h.jsx("span",{"aria-hidden":"true","data-testid":"chat-stop-icon",className:"block h-3 w-3 rounded-[2px] bg-gray-700 shadow-[inset_0_0_0_1px_rgba(17,24,39,0.06)]"})}function vu(e){var s;const{Tooltip:t,TooltipContent:n,TooltipProvider:r,TooltipTrigger:i}=kt;return h.jsxs("div",{className:"flex flex-col items-end gap-1",children:[(s=e.sendError)!=null&&s.trim()?h.jsx("div",{className:"max-w-[420px] text-right text-[11px] text-red-600",children:e.sendError}):null,h.jsx("div",{className:"flex items-center gap-2",children:e.isSending?e.canStopGeneration?h.jsx(Dt,{size:"icon",variant:"outline",className:"h-8 w-8 rounded-full","aria-label":e.stopButtonLabel,onClick:()=>void e.onStop(),disabled:e.stopDisabled,children:h.jsx(jr,{})}):h.jsx(r,{children:h.jsxs(t,{children:[h.jsx(i,{asChild:!0,children:h.jsx("span",{children:h.jsx(Dt,{size:"icon",variant:"outline",className:"h-8 w-8 rounded-full","aria-label":e.stopButtonLabel,disabled:!0,children:h.jsx(jr,{})})})}),h.jsx(n,{side:"top",children:h.jsx("p",{className:"text-xs",children:e.stopHint})})]})}):h.jsx(Dt,{size:"icon",className:"h-8 w-8 rounded-full","aria-label":e.sendButtonLabel,onClick:()=>void e.onSend(),disabled:e.sendDisabled,children:h.jsx(rl,{className:"h-5 w-5"})})})]})}function Cu(e,t){const n=t.trim().toLowerCase();return n?e.filter(r=>[r.label,r.key,r.description].filter(s=>typeof s=="string"&&s.trim().length>0).join(" ").toLowerCase().includes(n)):e}function Tu(e){const{Input:t,Popover:n,PopoverContent:r,PopoverTrigger:i}=kt,{picker:s}=e,a=k.useRef(null),l=k.useId(),[o,u]=k.useState(""),[d,c]=k.useState(0),p=k.useMemo(()=>new Set(s.selectedKeys),[s.selectedKeys]),f=s.selectedKeys.length,m=k.useMemo(()=>Cu(s.options,o),[s.options,o]);k.useEffect(()=>{c(0)},[o]),k.useEffect(()=>{c(g=>m.length===0?0:Math.min(g,m.length-1))},[m.length]),us({containerRef:a,activeIndex:d,itemCount:m.length,isEnabled:m.length>0,getItemSelector:g=>`[data-skill-index="${g}"]`});const y=g=>{if(p.has(g)){s.onSelectedKeysChange(s.selectedKeys.filter(I=>I!==g));return}s.onSelectedKeysChange([...s.selectedKeys,g])},S=g=>{if(m.length!==0){if(g.key==="ArrowDown"){g.preventDefault(),c(I=>Math.min(I+1,m.length-1));return}if(g.key==="ArrowUp"){g.preventDefault(),c(I=>Math.max(I-1,0));return}if(g.key==="Enter"){g.preventDefault();const I=m[d];I&&y(I.key)}}};return h.jsxs(n,{children:[h.jsx(i,{asChild:!0,children:h.jsxs("button",{type:"button","aria-haspopup":"listbox",className:"inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900",children:[h.jsx(Kn,{className:"h-4 w-4"}),h.jsx("span",{children:s.title}),f>0?h.jsx("span",{className:"ml-0.5 flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-primary/10 text-[10px] font-semibold text-primary",children:f}):null]})}),h.jsxs(r,{side:"top",align:"start",className:"w-[360px] p-0",children:[h.jsxs("div",{className:"space-y-2 border-b border-gray-100 px-4 py-3",children:[h.jsx("div",{className:"text-sm font-semibold text-gray-900",children:s.title}),h.jsxs("div",{className:"relative",children:[h.jsx(qn,{className:"pointer-events-none absolute left-3 top-2.5 h-3.5 w-3.5 text-gray-400"}),h.jsx(t,{value:o,onChange:g=>u(g.target.value),onKeyDown:S,placeholder:s.searchPlaceholder,role:"combobox","aria-controls":l,"aria-expanded":"true","aria-autocomplete":"list","aria-activedescendant":m[d]?`${l}-option-${d}`:void 0,className:"h-8 rounded-lg pl-8 text-xs"})]})]}),h.jsx("div",{ref:a,id:l,role:"listbox","aria-multiselectable":"true",className:"custom-scrollbar max-h-[320px] overflow-y-auto",children:s.isLoading?h.jsx("div",{className:"p-4 text-xs text-gray-500",children:s.loadingLabel}):m.length===0?h.jsx("div",{className:"p-4 text-center text-xs text-gray-500",children:s.emptyLabel}):h.jsx("div",{className:"py-1",children:m.map((g,I)=>{const M=p.has(g.key),D=I===d;return h.jsxs("button",{type:"button",id:`${l}-option-${I}`,role:"option","aria-selected":M,"data-skill-index":I,onClick:()=>y(g.key),onMouseEnter:()=>c(I),className:`flex w-full items-center gap-3 px-4 py-2.5 text-left transition-colors ${D?"bg-gray-50":"hover:bg-gray-50"}`,children:[h.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-gray-100 text-gray-500",children:h.jsx(il,{className:"h-4 w-4"})}),h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsxs("div",{className:"flex items-center gap-1.5",children:[h.jsx("span",{className:"truncate text-sm text-gray-900",children:g.label}),g.badgeLabel?h.jsx("span",{className:"shrink-0 rounded-full bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium text-primary",children:g.badgeLabel}):null]}),h.jsx("div",{className:"mt-0.5 truncate text-xs text-gray-500",children:g.description||g.key})]}),h.jsx("div",{className:"ml-3 shrink-0",children:h.jsx("span",{className:M?"inline-flex h-5 w-5 items-center justify-center rounded-full bg-primary text-white":"inline-flex h-5 w-5 items-center justify-center rounded-full border border-gray-300 bg-white",children:M?h.jsx(St,{className:"h-3 w-3"}):null})})]},g.key)})})}),s.manageHref&&s.manageLabel?h.jsx("div",{className:"border-t border-gray-100 px-4 py-2.5",children:h.jsxs("a",{href:s.manageHref,className:"inline-flex items-center gap-1.5 text-xs font-medium text-primary transition-colors hover:text-primary/80",children:[s.manageLabel,h.jsx(sl,{className:"h-3 w-3"})]})}):null]})]})}function ys({icon:e}){return e==="sparkles"?h.jsx(ll,{className:"h-3.5 w-3.5 shrink-0 text-primary"}):e==="brain"?h.jsx(ol,{className:"h-3.5 w-3.5 shrink-0 text-gray-500"}):null}function Iu({icon:e}){return e==="paperclip"?h.jsx(al,{className:"h-4 w-4"}):h.jsx(ys,{icon:e})}function Mu(e){return e==="model"?"min-w-[220px]":e==="session-type"?"min-w-[140px]":e==="thinking"?"min-w-[150px]":""}function Nu(e){return e==="model"?"w-[320px]":e==="session-type"?"w-[220px]":e==="thinking"?"w-[180px]":""}function Eu({item:e}){const{Select:t,SelectContent:n,SelectItem:r,SelectTrigger:i,SelectValue:s}=kt;return h.jsxs(t,{value:e.value,onValueChange:e.onValueChange,disabled:e.disabled,children:[h.jsx(i,{className:`h-8 w-auto rounded-lg border-0 bg-transparent px-3 text-xs font-medium text-gray-600 shadow-none hover:bg-gray-100 focus:ring-0 ${Mu(e.key)}`,children:e.selectedLabel?h.jsxs("div",{className:"flex min-w-0 items-center gap-2 text-left",children:[h.jsx(ys,{icon:e.icon}),h.jsx("span",{className:"truncate text-xs font-semibold text-gray-700",children:e.selectedLabel})]}):e.loading?h.jsx("div",{className:"h-3 w-24 animate-pulse rounded bg-gray-200"}):h.jsx(s,{placeholder:e.placeholder})}),h.jsxs(n,{className:Nu(e.key),children:[e.options.length===0?e.loading?h.jsxs("div",{className:"space-y-2 px-3 py-2",children:[h.jsx("div",{className:"h-3 w-36 animate-pulse rounded bg-gray-200"}),h.jsx("div",{className:"h-3 w-28 animate-pulse rounded bg-gray-200"}),h.jsx("div",{className:"h-3 w-32 animate-pulse rounded bg-gray-200"})]}):e.emptyLabel?h.jsx("div",{className:"px-3 py-2 text-xs text-gray-500",children:e.emptyLabel}):null:null,e.options.map(a=>h.jsx(r,{value:a.value,className:"py-2",children:a.description?h.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[h.jsx("span",{className:"truncate text-xs font-semibold text-gray-800",children:a.label}),h.jsx("span",{className:"truncate text-[11px] text-gray-500",children:a.description})]}):h.jsx("span",{className:"truncate text-xs font-semibold text-gray-800",children:a.label})},a.value))]})]})}function Lu(e){var s;const{Tooltip:t,TooltipContent:n,TooltipProvider:r,TooltipTrigger:i}=kt;return h.jsxs("div",{className:"flex items-center justify-between px-3 pb-3",children:[h.jsxs("div",{className:"flex items-center gap-1",children:[e.skillPicker?h.jsx(Tu,{picker:e.skillPicker}):null,e.selects.map(a=>h.jsx(Eu,{item:a},a.key)),(s=e.accessories)==null?void 0:s.map(a=>{const l=h.jsxs("button",{type:"button",className:`inline-flex items-center rounded-lg py-1.5 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900 disabled:cursor-not-allowed disabled:text-gray-400 ${a.iconOnly?"h-8 w-8 justify-center px-0":"gap-1.5 px-3"}`,onClick:a.onClick,disabled:a.disabled,"aria-label":a.label,children:[h.jsx(Iu,{icon:a.icon}),a.iconOnly?null:h.jsx("span",{children:a.label})]});if(!a.tooltip)return h.jsx("div",{children:l},a.key);const o=a.disabled?h.jsx("span",{className:"inline-flex",children:l}):l;return h.jsx(r,{children:h.jsxs(t,{children:[h.jsx(i,{asChild:!0,children:o}),h.jsx(n,{side:"top",children:h.jsx("p",{className:"text-xs",children:a.tooltip})})]})},a.key)})]}),h.jsx(vu,{...e.actions})]})}const Au="";function bs(){return`composer-${Math.random().toString(36).slice(2,10)}`}function gt(e=""){return{id:bs(),type:"text",text:e}}function Jn(e){return{id:bs(),type:"token",tokenKind:e.tokenKind,tokenKey:e.tokenKey,label:e.label}}function wt(e){return e.type==="text"?e.text.length:1}function Zn(){return[gt("")]}function Ru(e){return[gt(e)]}function Je(e){const t=[];for(const n of e){if(n.type==="text"){if(n.text.length===0)continue;const r=t[t.length-1];if((r==null?void 0:r.type)==="text"){t[t.length-1]={...r,text:r.text+n.text};continue}}t.push(n)}return t.length===0?Zn():t}function ju(e){return e.map(t=>t.type==="text"?t.text:Au).join("")}function Pu(e){return e.filter(t=>t.type==="text").map(t=>t.text).join("")}function qt(e,t){const n=[],r=new Set;for(const i of e)i.type!=="token"||i.tokenKind!==t||r.has(i.tokenKey)||(r.add(i.tokenKey),n.push(i.tokenKey));return n}function Du(e,t,n,r){const i=Math.max(0,n-t),s=Math.max(0,t+e.text.length-r),a=[];return i>0&&a.push({...e,text:e.text.slice(0,i)}),s>0&&a.push({...e,text:e.text.slice(e.text.length-s)}),a}function Ou(e,t,n,r){return t<=n||e>=r}function Fu(e,t,n,r,i){return!n&&r>=i?(e.push(...t),!0):n}function _u(e,t,n,r,i,s,a){const l=Du(t,n,r,i);l[0]&&e.push(l[0]);let o=a;return o||(e.push(...s),o=!0),l[1]&&e.push(l[1]),o}function zu(e,t,n,r,i,s){return!r&&i<=s?(e.push(...n),!0):(e.push(t),r)}function sn(e,t,n,r){const i=Math.max(0,t),s=Math.max(i,n),a=[];let l=0,o=!1;for(const u of e){const d=wt(u),c=l,p=l+d;if(Ou(c,p,i,s)){o=Fu(a,r,o,c,s),a.push(u),l=p;continue}u.type==="text"?o=_u(a,u,c,i,s,r,o):o=zu(a,u,r,o,i,c),l=p}return o||a.push(...r),Je(a)}function er(e,t){return Je(e.filter(n=>n.type!=="token"||!t(n)))}function Bu(e,t){if(!t||t.start!==t.end)return null;const n=ju(e),r=t.end,i=n.slice(0,r),s=/(?:^|\s)\/([^\s\uFFFC]*)$/.exec(i);if(!s)return null;const a=r-s[0].length+(s[0].startsWith("/")?0:1);return{query:(s[1]??"").trim().toLowerCase(),start:a,end:r}}function Hu(e,t,n){return e?e.start<n&&e.end>t:!1}function Ss(e){const t=new Map;let n=0;for(const r of e)t.set(r.id,n),n+=wt(r);return t}function ks(e,t){let n=t;for(;n&&n.parentNode!==e;)n=n.parentNode;return n?Array.prototype.indexOf.call(e.childNodes,n):e.childNodes.length}function Uu(e,t,n){if(e instanceof HTMLElement){const r=e.dataset.composerNodeId;if(r)return n.find(i=>i.id===r)}return n[t]}function ws(e,t,n){let r=0;for(let i=0;i<n;i+=1){const s=Uu(e.childNodes[i],i,t);s&&(r+=wt(s))}return r}function Vu(e,t,n,r){var l;const i=ks(e,t),s=ws(e,r,i),a=r[i];return(a==null?void 0:a.type)==="text"?s+Math.min(n,a.text.length):s+Math.min(n,((l=t.textContent)==null?void 0:l.length)??0)}function $u(e,t,n,r,i){return n.type==="text"?e.nodeType===Node.TEXT_NODE?r+Math.min(t,n.text.length):e===i?r+(t>0?n.text.length:0):r+n.text.length:e===i?r+(t>0?1:0):r+1}function Ln(e,t,n,r,i){var u;if(t===e)return ws(e,r,n);if(t.nodeType===Node.TEXT_NODE&&t.parentNode===e)return Vu(e,t,n,r);const s=t instanceof HTMLElement?t.closest("[data-composer-node-id]"):((u=t.parentElement)==null?void 0:u.closest("[data-composer-node-id]"))??null;if(!(s instanceof HTMLElement)){const d=ks(e,t);return Ln(e,e,d,r,i)}const a=s.dataset.composerNodeId;if(!a)return 0;const l=r.find(d=>d.id===a),o=i.get(a)??0;return l?$u(t,n,l,o,s):o}function vs(e,t){const n=window.getSelection();if(!n||n.rangeCount===0)return null;const r=n.getRangeAt(0);if(!e.contains(r.startContainer)||!e.contains(r.endContainer))return null;const i=Ss(t),s=Ln(e,r.startContainer,r.startOffset,t,i),a=Ln(e,r.endContainer,r.endOffset,t,i);return{start:Math.min(s,a),end:Math.max(s,a)}}function Ku(e,t,n){if(!n)return;const r=window.getSelection();if(!r)return;const i=o=>{let u=0;for(let d=0;d<t.length;d+=1){const c=t[d],p=wt(c),f=u,m=u+p,y=e.childNodes[d];if(!y){u=m;continue}if(c.type==="text"){if(o<=m)return{container:y.firstChild??y,offset:Math.max(0,Math.min(o-f,c.text.length))}}else{if(o<=f)return{container:e,offset:d};if(o<=m)return{container:e,offset:d+1}}u=m}return{container:e,offset:e.childNodes.length}},s=i(n.start),a=i(n.end),l=document.createRange();l.setStart(s.container,s.offset),l.setEnd(a.container,a.offset),r.removeAllRanges(),r.addRange(l)}function qu(e){const t=[];for(const n of Array.from(e.childNodes)){if(n.nodeType===Node.TEXT_NODE){t.push(gt(n.textContent??""));continue}if(!(n instanceof HTMLElement))continue;if(n.dataset.composerNodeType==="token"){const s=n.dataset.composerTokenKind,a=n.dataset.composerTokenKey,l=n.dataset.composerLabel;s&&a&&l&&t.push({id:n.dataset.composerNodeId??Jn({tokenKind:s,tokenKey:a,label:l}).id,type:"token",tokenKind:s,tokenKey:a,label:l});continue}const i=n.textContent??"";t.push({id:n.dataset.composerNodeId??gt(i).id,type:"text",text:i})}return Je(t)}function Pr(e){const t=qu(e);return{nodes:t,selection:vs(e,t)}}class Wu{constructor(){this.nodes=Zn(),this.selection=null,this.sync=(t,n)=>(this.nodes=Je(t),this.selection=n,this.getSnapshot()),this.setSelection=t=>(this.selection=t,this.getSnapshot()),this.replaceDocument=(t,n)=>(this.nodes=Je(t),this.selection=n,this.getSnapshot()),this.insertText=t=>{const n=this.selection??{start:0,end:0};this.nodes=sn(this.nodes,n.start,n.end,[gt(t)]);const r=n.start+t.length;return this.selection={start:r,end:r},this.getSnapshot()},this.insertFileToken=(t,n)=>this.insertToken("file",t,n),this.insertSkillToken=(t,n)=>this.getSelectedSkillKeys().includes(t)?this.getSnapshot():this.insertToken("skill",t,n,this.getSlashTrigger()),this.syncSelectedSkills=(t,n)=>{const r=this.getSelectedSkillKeys(),i=new Map(n.map(l=>[l.key,l])),s=t.find(l=>!r.includes(l));if(s){const l=i.get(s);return this.insertSkillToken(s,(l==null?void 0:l.label)??s)}const a=r.find(l=>!t.includes(l));return a&&(this.nodes=er(this.nodes,l=>l.tokenKind==="skill"&&l.tokenKey===a)),this.getSnapshot()},this.deleteContent=t=>{const n=this.getDocumentLength(),r=this.selection??{start:n,end:n};let i=r.start,s=r.end;if(r.start===r.end)if(t==="backward"&&r.start>0)i=r.start-1;else if(t==="forward")s=r.end+1;else return this.getSnapshot();return this.nodes=sn(this.nodes,i,s,[]),this.selection={start:i,end:i},this.getSnapshot()},this.getSnapshot=()=>({nodes:this.nodes,selection:this.selection,nodeStartMap:Ss(this.nodes),documentLength:this.getDocumentLength(),selectedSkillKeys:this.getSelectedSkillKeys(),slashTrigger:this.getSlashTrigger()}),this.getDocumentLength=()=>this.nodes.reduce((t,n)=>t+wt(n),0),this.getSelectedSkillKeys=()=>qt(this.nodes,"skill"),this.insertToken=(t,n,r,i=null)=>{var o,u;const s=this.getDocumentLength(),a=(i==null?void 0:i.start)??((o=this.selection)==null?void 0:o.start)??s,l=(i==null?void 0:i.end)??((u=this.selection)==null?void 0:u.end)??a;return this.nodes=sn(this.nodes,a,l,[Jn({tokenKind:t,tokenKey:n,label:r})]),this.selection={start:a+1,end:a+1},this.getSnapshot()},this.getSlashTrigger=()=>Bu(this.nodes,this.selection)}}function Qu(e){const{key:t,shiftKey:n,isComposing:r,isSlashMenuOpen:i,slashItemCount:s,activeSlashIndex:a,isSending:l,canStopGeneration:o}=e;if(i&&s>0){if(t==="ArrowDown")return{type:"move-slash-index",index:(a+1)%s};if(t==="ArrowUp")return{type:"move-slash-index",index:(a-1+s)%s};if(t==="Enter"&&!n||t==="Tab")return{type:"insert-active-slash-item"}}return t==="Escape"?i?{type:"close-slash"}:l&&o?{type:"stop-generation"}:{type:"noop"}:t==="Enter"&&n?{type:"insert-line-break"}:t==="Enter"?{type:"send-message"}:!r&&(t==="Backspace"||t==="Delete")?{type:"delete-content",direction:t==="Backspace"?"backward":"forward"}:{type:"noop"}}const Dr="http://www.w3.org/2000/svg";class Gu{constructor(){this.render=(t,n)=>{if(!t)return;const r=document.createDocumentFragment();for(const i of n.nodes){const s=i.type==="text"?this.createTextNodeElement(i):this.createTokenNodeElement(i,n.selectedRange,n.nodeStartMap);s&&r.appendChild(s)}t.replaceChildren(r)},this.createTextNodeElement=t=>{if(t.text.length===0)return null;const n=document.createElement("span");return n.dataset.composerNodeId=t.id,n.dataset.composerNodeType="text",n.textContent=t.text,n},this.createTokenNodeElement=(t,n,r)=>{const i=r.get(t.id)??0,s=Hu(n,i,i+1),a=document.createElement("span");a.contentEditable="false",a.dataset.composerNodeId=t.id,a.dataset.composerNodeType="token",a.dataset.composerTokenKind=t.tokenKind,a.dataset.composerTokenKey=t.tokenKey,a.dataset.composerLabel=t.label,a.title=t.label,a.className=this.buildTokenClassName(t.tokenKind,s),a.append(this.createTokenIcon(t.tokenKind));const l=document.createElement("span");return l.className=t.tokenKind==="file"?"min-w-0 flex-1 truncate text-[12px] font-medium text-slate-700":"truncate",l.textContent=t.label,a.append(l),a},this.buildTokenClassName=(t,n)=>t==="file"?["mx-[2px]","inline-flex","h-7","max-w-[min(100%,17rem)]","items-center","gap-1.5","rounded-lg","border","px-2","align-baseline","transition-[border-color,background-color,box-shadow,color]","duration-150",n?"border-slate-300 bg-slate-100 text-slate-800 shadow-[0_0_0_2px_rgba(148,163,184,0.14)]":"border-slate-200/80 bg-slate-50 text-slate-700"].join(" "):["mx-[2px]","inline-flex","h-7","max-w-full","items-center","gap-1.5","rounded-lg","border","px-2","align-baseline","text-[11px]","font-medium","transition",n?"border-primary/30 bg-primary/18 text-primary":"border-primary/12 bg-primary/8 text-primary"].join(" "),this.createTokenIcon=t=>{const n=document.createElement("span");return n.className=t==="file"?"inline-flex h-4.5 w-4.5 shrink-0 items-center justify-center rounded-md bg-white text-slate-500 ring-1 ring-black/5":"inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center text-primary/70",n.append(t==="file"?this.createFileIcon():this.createSkillIcon()),n},this.createSkillIcon=()=>this.createSvgIcon([{tag:"path",attrs:{d:"M8.5 2.75 2.75 6l5.75 3.25L14.25 6 8.5 2.75Z"}},{tag:"path",attrs:{d:"M2.75 10 8.5 13.25 14.25 10"}},{tag:"path",attrs:{d:"M2.75 6v4l5.75 3.25V9.25L2.75 6Z"}},{tag:"path",attrs:{d:"M14.25 6v4L8.5 13.25V9.25L14.25 6Z"}}]),this.createFileIcon=()=>this.createSvgIcon([{tag:"path",attrs:{d:"M3.25 4.25A1.5 1.5 0 0 1 4.75 2.75h6.5a1.5 1.5 0 0 1 1.5 1.5v7.5a1.5 1.5 0 0 1-1.5 1.5h-6.5a1.5 1.5 0 0 1-1.5-1.5v-7.5Z"}},{tag:"path",attrs:{d:"m4.75 10 2.25-2.5 1.75 1.75 1.25-1.25 2 2"}},{tag:"path",attrs:{d:"M9.75 6.25h.01"}}]),this.createSvgIcon=t=>{const n=document.createElementNS(Dr,"svg");n.setAttribute("viewBox","0 0 16 16"),n.setAttribute("fill","none"),n.setAttribute("stroke","currentColor"),n.setAttribute("stroke-width","1.25"),n.setAttribute("stroke-linecap","round"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("aria-hidden","true"),n.setAttribute("class","h-3 w-3");for(const r of t){const i=document.createElementNS(Dr,r.tag);for(const[s,a]of Object.entries(r.attrs))i.setAttribute(s,a);n.append(i)}return n}}}const Or=188;class Xu{constructor(t){this.controller=t,this.surfaceRenderer=new Gu,this.sync=(n,r)=>this.controller.sync(n,r),this.syncSelectionFromRoot=n=>this.controller.setSelection(vs(n,this.controller.getSnapshot().nodes)),this.restoreSelectionIfFocused=(n,r)=>{!n||document.activeElement!==n||Ku(n,this.controller.getSnapshot().nodes,r)},this.syncViewport=n=>{n&&(n.style.maxHeight=`${Or}px`,n.style.overflowY=n.scrollHeight>Or?"auto":"hidden")},this.renderSurface=n=>{this.surfaceRenderer.render(n.root,{nodes:n.snapshot.nodes,selectedRange:n.selectedRange,nodeStartMap:n.snapshot.nodeStartMap})},this.insertSlashItem=(n,r)=>{n.value&&r(this.controller.insertSkillToken(n.value,n.title))},this.syncSelectedSkills=(n,r,i)=>{i(this.controller.syncSelectedSkills(n,r))},this.handleBeforeInput=n=>{const{event:r,disabled:i,isComposing:s,commitSnapshot:a}=n,l=r.nativeEvent;i||s||l.isComposing||!(l.inputType==="insertText"||l.inputType==="insertReplacementText")||!l.data||(r.preventDefault(),a(this.controller.insertText(l.data)))},this.handleInput=n=>{const{event:r,isComposing:i,commitSnapshot:s}=n,a=r.nativeEvent;if(i||a.isComposing)return;const l=r.currentTarget,o=Pr(l);s(this.controller.replaceDocument(o.nodes,o.selection))},this.handleCompositionEnd=n=>{const{event:r,commitSnapshot:i}=n,s=r.currentTarget,a=Pr(s);i(this.controller.replaceDocument(a.nodes,a.selection))},this.handleKeyDown=n=>{const{event:r,slashItems:i,activeSlashIndex:s,activeSlashItem:a,actions:l,commitSnapshot:o,insertSkillToken:u,onSlashActiveIndexChange:d,onSlashQueryChange:c,onSlashOpenChange:p}=n,f=this.controller.getSnapshot(),m=Qu({key:r.key,shiftKey:r.shiftKey,isComposing:r.nativeEvent.isComposing,isSlashMenuOpen:f.slashTrigger!==null,slashItemCount:i.length,activeSlashIndex:s,isSending:l.isSending,canStopGeneration:l.canStopGeneration});if(m.type!=="noop"){if(r.preventDefault(),m.type==="move-slash-index"){d(m.index);return}if(m.type==="insert-active-slash-item"){a&&u(a.value??a.key,a.title);return}if(m.type==="close-slash"){c==null||c(null),p(!1);return}if(m.type==="stop-generation"){l.onStop();return}if(m.type==="insert-line-break"){o(this.controller.insertText(`
3
3
  `));return}if(m.type==="send-message"){l.onSend();return}m.type==="delete-content"&&o(this.controller.deleteContent(m.direction))}},this.handlePaste=n=>{const{event:r,onFilesAdd:i,commitSnapshot:s}=n,a=Array.from(r.clipboardData.files??[]);if(a.length>0&&i){r.preventDefault(),i(a);return}const l=r.clipboardData.getData("text/plain");l&&(r.preventDefault(),s(this.controller.insertText(l)))},this.handleBlur=n=>{const{clearSelectedRange:r,onSlashQueryChange:i,onSlashOpenChange:s}=n;r(),i==null||i(null),s(!1)}}}class Yu{constructor(){this.controller=new Wu,this.viewController=new Xu(this.controller),this.rootElement=null,this.selection=null,this.selectedRange=null,this.snapshot=this.controller.getSnapshot(),this.config=null,this.isComposing=!1,this.bindRootElement=t=>{this.rootElement=t},this.update=t=>(this.config=t,this.snapshot=this.viewController.sync(t.nodes,this.selectedRange),{snapshot:this.snapshot,selectedRange:this.selectedRange,bindRootElement:this.bindRootElement,handleBeforeInput:this.handleBeforeInput,handleInput:this.handleInput,handleCompositionStart:this.handleCompositionStart,handleCompositionEnd:this.handleCompositionEnd,handleKeyDown:this.handleKeyDown,handlePaste:this.handlePaste,handleBlur:this.handleBlur,syncSelectionState:this.syncSelectionState,imperativeHandle:this.createHandle()}),this.createHandle=()=>({insertSlashItem:t=>{this.viewController.insertSlashItem(t,this.commitSnapshot)},insertFileToken:(t,n)=>{this.commitSnapshot(this.controller.insertFileToken(t,n)),this.focusComposerSoon()},insertFileTokens:t=>{let n=null;for(const r of t)n=this.controller.insertFileToken(r.tokenKey,r.label);n&&(this.commitSnapshot(n),this.focusComposerSoon())},focusComposer:()=>{this.focusComposer()},syncSelectedSkills:(t,n)=>{this.viewController.syncSelectedSkills(t,n,this.commitSnapshot)}}),this.restoreDomAfterCommit=()=>{this.isComposing||this.viewController.restoreSelectionIfFocused(this.rootElement,this.selection)},this.renderSurface=()=>{this.isComposing||this.viewController.renderSurface({root:this.rootElement,snapshot:this.snapshot,selectedRange:this.selectedRange})},this.syncViewport=()=>{this.viewController.syncViewport(this.rootElement)},this.syncSelectionState=()=>{if(!this.rootElement||this.isComposing)return;const t=this.viewController.syncSelectionFromRoot(this.rootElement);this.selection=t.selection,this.selectedRange=t.selection,this.syncSlashState(t),this.requestRender()},this.handleBeforeInput=t=>{this.viewController.handleBeforeInput({event:t,disabled:this.requireConfig().disabled,isComposing:this.isComposing,commitSnapshot:this.commitSnapshot})},this.handleInput=t=>{this.viewController.handleInput({event:t,isComposing:this.isComposing,commitSnapshot:this.commitSnapshot})},this.handleCompositionStart=()=>{this.isComposing=!0},this.handleCompositionEnd=t=>{this.isComposing=!1,this.viewController.handleCompositionEnd({event:t,commitSnapshot:this.commitSnapshot})},this.handleKeyDown=t=>{const n=this.requireConfig();if(this.rootElement&&!this.isComposing){const i=this.viewController.syncSelectionFromRoot(this.rootElement);this.selection=i.selection,this.selectedRange=i.selection,this.snapshot=i}const r=n.slashItems[n.activeSlashIndex]??null;this.viewController.handleKeyDown({event:t,slashItems:n.slashItems,activeSlashIndex:n.activeSlashIndex,activeSlashItem:r,actions:n.actions,commitSnapshot:this.commitSnapshot,insertSkillToken:this.insertSkillToken,onSlashActiveIndexChange:n.onSlashActiveIndexChange,onSlashQueryChange:n.onSlashQueryChange,onSlashOpenChange:n.onSlashOpenChange})},this.handlePaste=t=>{this.viewController.handlePaste({event:t,onFilesAdd:this.requireConfig().onFilesAdd,commitSnapshot:this.commitSnapshot})},this.handleBlur=()=>{const t=this.requireConfig();this.isComposing=!1,this.viewController.handleBlur({clearSelectedRange:this.clearSelectedRange,onSlashQueryChange:t.onSlashQueryChange,onSlashOpenChange:t.onSlashOpenChange})},this.setSelectedRange=t=>{this.selectedRange=t,this.selection=t,this.requestRender()},this.clearSelectedRange=()=>{this.selectedRange=null,this.requestRender()},this.commitSnapshot=t=>{const n=this.requireConfig();this.selection=t.selection,this.selectedRange=t.selection,this.snapshot=t,n.onNodesChange(t.nodes),this.syncSlashState(t)},this.insertSkillToken=(t,n)=>{this.commitSnapshot(this.controller.insertSkillToken(t,n))},this.syncSlashState=t=>{var r,i,s;const n=this.requireConfig();(r=n.onSlashTriggerChange)==null||r.call(n,t.slashTrigger),(s=n.onSlashQueryChange)==null||s.call(n,((i=t.slashTrigger)==null?void 0:i.query)??null),n.onSlashOpenChange(t.slashTrigger!==null)},this.requestRender=()=>{this.requireConfig().requestRender()},this.focusComposerSoon=()=>{if(typeof requestAnimationFrame=="function"){requestAnimationFrame(()=>this.focusComposer());return}this.focusComposer()},this.focusComposer=()=>{if(!this.rootElement)return;const t=this.selection;this.rootElement.focus();const n=()=>{this.rootElement&&(this.selection=t,this.selectedRange=t,this.viewController.restoreSelectionIfFocused(this.rootElement,t))};if(typeof requestAnimationFrame=="function"){requestAnimationFrame(n);return}n()},this.requireConfig=()=>{if(!this.config)throw new Error("ChatComposerRuntime is not configured.");return this.config}}}const Ju=k.forwardRef(function(t,n){const{nodes:r,placeholder:i,disabled:s,slashItems:a,actions:l,onNodesChange:o,onFilesAdd:u,onSlashQueryChange:d,onSlashTriggerChange:c,onSlashOpenChange:p,onSlashActiveIndexChange:f,activeSlashIndex:m}=t,[y,S]=k.useState(0),[g]=k.useState(()=>new Yu),{snapshot:I,bindRootElement:M,handleBeforeInput:D,handleInput:O,handleCompositionStart:T,handleCompositionEnd:_,handleKeyDown:z,handlePaste:B,handleBlur:w,syncSelectionState:E,imperativeHandle:L}=g.update({nodes:r,disabled:s,slashItems:a,actions:l,onNodesChange:o,onFilesAdd:u,onSlashQueryChange:d,onSlashTriggerChange:c,onSlashOpenChange:p,onSlashActiveIndexChange:f,activeSlashIndex:m,requestRender:()=>S(H=>H+1)});return k.useImperativeHandle(n,()=>L,[L]),k.useLayoutEffect(()=>{g.renderSurface(),g.restoreDomAfterCommit(),g.syncViewport()},[g,I.nodes,I.nodeStartMap,y]),h.jsx("div",{className:"px-4 py-2.5",children:h.jsx("div",{className:"min-h-[60px]",children:h.jsx("div",{ref:M,contentEditable:!s,suppressContentEditableWarning:!0,role:"textbox","aria-multiline":"true","data-placeholder":i,onBeforeInput:D,onInput:O,onCompositionStart:T,onCompositionEnd:_,onKeyDown:z,onKeyUp:E,onMouseUp:E,onFocus:E,onBlur:w,onPaste:B,className:"min-h-7 max-h-[188px] w-full overflow-y-auto whitespace-pre-wrap break-words bg-transparent py-0.5 text-sm leading-6 text-gray-800 outline-none empty:before:pointer-events-none empty:before:text-gray-400 empty:before:content-[attr(data-placeholder)]"})})})});function Zu({hint:e}){if(!e)return null;if(e.loading)return h.jsx("div",{className:"px-4 pb-2",children:h.jsxs("div",{className:"inline-flex items-center gap-2 rounded-lg border border-gray-200 bg-gray-50 px-3 py-2",children:[h.jsx("span",{className:"h-3 w-28 animate-pulse rounded bg-gray-200"}),h.jsx("span",{className:"h-3 w-16 animate-pulse rounded bg-gray-200"})]})});const t=e.tone==="warning"?"border-amber-200 bg-amber-50 text-amber-800":"border-gray-200 bg-gray-50 text-gray-700";return h.jsx("div",{className:"px-4 pb-2",children:h.jsxs("div",{className:`inline-flex items-center gap-2 rounded-lg px-3 py-1.5 text-xs ${t}`,children:[e.text?h.jsx("span",{children:e.text}):null,e.actionLabel&&e.onAction?h.jsx("button",{type:"button",onClick:e.onAction,className:"font-semibold underline-offset-2 hover:underline",children:e.actionLabel}):null]})})}const Cs=k.forwardRef(function(t,n){const r=k.useRef(null),[i,s]=k.useState(null),[a,l]=k.useState(0),[o,u]=k.useState(null),[d,c]=k.useState(null),p=o!==null&&d!==o,f=t.slashMenu.items[a]??null;k.useEffect(()=>{l(y=>t.slashMenu.items.length===0?0:Math.min(y,t.slashMenu.items.length-1))},[t.slashMenu.items.length]),k.useEffect(()=>{i!==null&&l(0)},[i]),k.useEffect(()=>{o===null&&d!==null&&c(null)},[o,d]);const m=k.useMemo(()=>t.toolbar.skillPicker?{...t.toolbar,skillPicker:{...t.toolbar.skillPicker,onSelectedKeysChange:y=>{var S,g;(g=r.current)==null||g.syncSelectedSkills(y,((S=t.toolbar.skillPicker)==null?void 0:S.options)??[])}}}:t.toolbar,[t.toolbar]);return k.useImperativeHandle(n,()=>({insertFileToken:(y,S)=>{var g;return(g=r.current)==null?void 0:g.insertFileToken(y,S)},insertFileTokens:y=>{var S;return(S=r.current)==null?void 0:S.insertFileTokens(y)},focusComposer:()=>{var y;return(y=r.current)==null?void 0:y.focusComposer()}}),[]),h.jsx("div",{className:"border-t border-gray-200/80 bg-white p-4",children:h.jsx("div",{className:"mx-auto w-full max-w-[min(1120px,100%)]",children:h.jsxs("div",{className:"overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-card",children:[h.jsxs("div",{className:"relative",children:[h.jsx(Ju,{ref:r,nodes:t.composer.nodes,placeholder:t.composer.placeholder,disabled:t.composer.disabled,slashItems:t.slashMenu.items,actions:t.toolbar.actions,activeSlashIndex:a,onNodesChange:t.composer.onNodesChange,onFilesAdd:t.composer.onFilesAdd,onSlashQueryChange:y=>{var S,g;s(y),(g=(S=t.composer).onSlashQueryChange)==null||g.call(S,y)},onSlashTriggerChange:y=>{u((y==null?void 0:y.start)??null)},onSlashOpenChange:y=>{!y&&o!==null&&c(o)},onSlashActiveIndexChange:l}),h.jsx(ku,{isOpen:p,isLoading:t.slashMenu.isLoading,items:t.slashMenu.items,activeIndex:a,activeItem:f,texts:t.slashMenu.texts,onSelectItem:y=>{var S;c(null),(S=r.current)==null||S.insertSlashItem(y)},onOpenChange:y=>{!y&&o!==null&&c(o)},onSetActiveIndex:l})]}),h.jsx(Zu,{hint:t.hint}),h.jsx(Lu,{...m})]})})})});Cs.displayName="ChatInputBar";function an({role:e}){return e==="user"?h.jsx("div",{"data-testid":"chat-message-avatar-user",className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary text-white shadow-sm",children:h.jsx(ul,{className:"h-4 w-4"})}):e==="tool"?h.jsx("div",{"data-testid":"chat-message-avatar-tool",className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-amber-100 text-amber-700 shadow-sm",children:h.jsx(cl,{className:"h-4 w-4"})}):h.jsx("div",{"data-testid":"chat-message-avatar-assistant",className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-gray-200/80 bg-gray-900 text-white shadow-sm",children:h.jsx(Qi,{className:"h-4 w-4"})})}function ec(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const tc=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,nc=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,rc={};function Fr(e,t){return(rc.jsx?nc:tc).test(e)}const ic=/[ \t\n\f\r]/g;function sc(e){return typeof e=="object"?e.type==="text"?_r(e.value):!1:_r(e)}function _r(e){return e.replace(ic,"")===""}class vt{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}vt.prototype.normal={};vt.prototype.property={};vt.prototype.space=void 0;function Ts(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new vt(n,r,t)}function An(e){return e.toLowerCase()}class fe{constructor(t,n){this.attribute=n,this.property=t}}fe.prototype.attribute="";fe.prototype.booleanish=!1;fe.prototype.boolean=!1;fe.prototype.commaOrSpaceSeparated=!1;fe.prototype.commaSeparated=!1;fe.prototype.defined=!1;fe.prototype.mustUseProperty=!1;fe.prototype.number=!1;fe.prototype.overloadedBoolean=!1;fe.prototype.property="";fe.prototype.spaceSeparated=!1;fe.prototype.space=void 0;let ac=0;const V=qe(),ie=qe(),Rn=qe(),A=qe(),Z=qe(),Ye=qe(),xe=qe();function qe(){return 2**++ac}const jn=Object.freeze(Object.defineProperty({__proto__:null,boolean:V,booleanish:ie,commaOrSpaceSeparated:xe,commaSeparated:Ye,number:A,overloadedBoolean:Rn,spaceSeparated:Z},Symbol.toStringTag,{value:"Module"})),ln=Object.keys(jn);class tr extends fe{constructor(t,n,r,i){let s=-1;if(super(t,n),zr(this,"space",i),typeof r=="number")for(;++s<ln.length;){const a=ln[s];zr(this,ln[s],(r&jn[a])===jn[a])}}}tr.prototype.defined=!0;function zr(e,t,n){n&&(e[t]=n)}function et(e){const t={},n={};for(const[r,i]of Object.entries(e.properties)){const s=new tr(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(s.mustUseProperty=!0),t[r]=s,n[An(r)]=r,n[An(s.attribute)]=r}return new vt(t,n,e.space)}const Is=et({properties:{ariaActiveDescendant:null,ariaAtomic:ie,ariaAutoComplete:null,ariaBusy:ie,ariaChecked:ie,ariaColCount:A,ariaColIndex:A,ariaColSpan:A,ariaControls:Z,ariaCurrent:null,ariaDescribedBy:Z,ariaDetails:null,ariaDisabled:ie,ariaDropEffect:Z,ariaErrorMessage:null,ariaExpanded:ie,ariaFlowTo:Z,ariaGrabbed:ie,ariaHasPopup:null,ariaHidden:ie,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Z,ariaLevel:A,ariaLive:null,ariaModal:ie,ariaMultiLine:ie,ariaMultiSelectable:ie,ariaOrientation:null,ariaOwns:Z,ariaPlaceholder:null,ariaPosInSet:A,ariaPressed:ie,ariaReadOnly:ie,ariaRelevant:null,ariaRequired:ie,ariaRoleDescription:Z,ariaRowCount:A,ariaRowIndex:A,ariaRowSpan:A,ariaSelected:ie,ariaSetSize:A,ariaSort:null,ariaValueMax:A,ariaValueMin:A,ariaValueNow:A,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function Ms(e,t){return t in e?e[t]:t}function Ns(e,t){return Ms(e,t.toLowerCase())}const lc=et({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Ye,acceptCharset:Z,accessKey:Z,action:null,allow:null,allowFullScreen:V,allowPaymentRequest:V,allowUserMedia:V,alt:null,as:null,async:V,autoCapitalize:null,autoComplete:Z,autoFocus:V,autoPlay:V,blocking:Z,capture:null,charSet:null,checked:V,cite:null,className:Z,cols:A,colSpan:null,content:null,contentEditable:ie,controls:V,controlsList:Z,coords:A|Ye,crossOrigin:null,data:null,dateTime:null,decoding:null,default:V,defer:V,dir:null,dirName:null,disabled:V,download:Rn,draggable:ie,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:V,formTarget:null,headers:Z,height:A,hidden:Rn,high:A,href:null,hrefLang:null,htmlFor:Z,httpEquiv:Z,id:null,imageSizes:null,imageSrcSet:null,inert:V,inputMode:null,integrity:null,is:null,isMap:V,itemId:null,itemProp:Z,itemRef:Z,itemScope:V,itemType:Z,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:V,low:A,manifest:null,max:null,maxLength:A,media:null,method:null,min:null,minLength:A,multiple:V,muted:V,name:null,nonce:null,noModule:V,noValidate:V,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:V,optimum:A,pattern:null,ping:Z,placeholder:null,playsInline:V,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:V,referrerPolicy:null,rel:Z,required:V,reversed:V,rows:A,rowSpan:A,sandbox:Z,scope:null,scoped:V,seamless:V,selected:V,shadowRootClonable:V,shadowRootDelegatesFocus:V,shadowRootMode:null,shape:null,size:A,sizes:null,slot:null,span:A,spellCheck:ie,src:null,srcDoc:null,srcLang:null,srcSet:null,start:A,step:null,style:null,tabIndex:A,target:null,title:null,translate:null,type:null,typeMustMatch:V,useMap:null,value:ie,width:A,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Z,axis:null,background:null,bgColor:null,border:A,borderColor:null,bottomMargin:A,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:V,declare:V,event:null,face:null,frame:null,frameBorder:null,hSpace:A,leftMargin:A,link:null,longDesc:null,lowSrc:null,marginHeight:A,marginWidth:A,noResize:V,noHref:V,noShade:V,noWrap:V,object:null,profile:null,prompt:null,rev:null,rightMargin:A,rules:null,scheme:null,scrolling:ie,standby:null,summary:null,text:null,topMargin:A,valueType:null,version:null,vAlign:null,vLink:null,vSpace:A,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:V,disableRemotePlayback:V,prefix:null,property:null,results:A,security:null,unselectable:null},space:"html",transform:Ns}),oc=et({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:xe,accentHeight:A,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:A,amplitude:A,arabicForm:null,ascent:A,attributeName:null,attributeType:null,azimuth:A,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:A,by:null,calcMode:null,capHeight:A,className:Z,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:A,diffuseConstant:A,direction:null,display:null,dur:null,divisor:A,dominantBaseline:null,download:V,dx:null,dy:null,edgeMode:null,editable:null,elevation:A,enableBackground:null,end:null,event:null,exponent:A,externalResourcesRequired:null,fill:null,fillOpacity:A,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Ye,g2:Ye,glyphName:Ye,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:A,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:A,horizOriginX:A,horizOriginY:A,id:null,ideographic:A,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:A,k:A,k1:A,k2:A,k3:A,k4:A,kernelMatrix:xe,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:A,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:A,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:A,overlineThickness:A,paintOrder:null,panose1:null,path:null,pathLength:A,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Z,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:A,pointsAtY:A,pointsAtZ:A,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:xe,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:xe,rev:xe,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:xe,requiredFeatures:xe,requiredFonts:xe,requiredFormats:xe,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:A,specularExponent:A,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:A,strikethroughThickness:A,string:null,stroke:null,strokeDashArray:xe,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:A,strokeOpacity:A,strokeWidth:null,style:null,surfaceScale:A,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:xe,tabIndex:A,tableValues:null,target:null,targetX:A,targetY:A,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:xe,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:A,underlineThickness:A,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:A,values:null,vAlphabetic:A,vMathematical:A,vectorEffect:null,vHanging:A,vIdeographic:A,version:null,vertAdvY:A,vertOriginX:A,vertOriginY:A,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:A,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Ms}),Es=et({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),Ls=et({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Ns}),As=et({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),uc={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},cc=/[A-Z]/g,Br=/-[a-z]/g,hc=/^data[-\w.:]+$/i;function dc(e,t){const n=An(t);let r=t,i=fe;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&hc.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace(Br,pc);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!Br.test(s)){let a=s.replace(cc,fc);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}i=tr}return new i(r,t)}function fc(e){return"-"+e.toLowerCase()}function pc(e){return e.charAt(1).toUpperCase()}const mc=Ts([Is,lc,Es,Ls,As],"html"),nr=Ts([Is,oc,Es,Ls,As],"svg");function gc(e){return e.join(" ").trim()}var Qe={},on,Hr;function xc(){if(Hr)return on;Hr=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,l=/^\s+|\s+$/g,o=`
4
4
  `,u="/",d="*",c="",p="comment",f="declaration";function m(S,g){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];g=g||{};var I=1,M=1;function D(P){var v=P.match(t);v&&(I+=v.length);var j=P.lastIndexOf(o);M=~j?P.length-j:M+P.length}function O(){var P={line:I,column:M};return function(v){return v.position=new T(P),B(),v}}function T(P){this.start=P,this.end={line:I,column:M},this.source=g.source}T.prototype.content=S;function _(P){var v=new Error(g.source+":"+I+":"+M+": "+P);if(v.reason=P,v.filename=g.source,v.line=I,v.column=M,v.source=S,!g.silent)throw v}function z(P){var v=P.exec(S);if(v){var j=v[0];return D(j),S=S.slice(j.length),v}}function B(){z(n)}function w(P){var v;for(P=P||[];v=E();)v!==!1&&P.push(v);return P}function E(){var P=O();if(!(u!=S.charAt(0)||d!=S.charAt(1))){for(var v=2;c!=S.charAt(v)&&(d!=S.charAt(v)||u!=S.charAt(v+1));)++v;if(v+=2,c===S.charAt(v-1))return _("End of comment missing");var j=S.slice(2,v-2);return M+=2,D(j),S=S.slice(v),M+=2,P({type:p,comment:j})}}function L(){var P=O(),v=z(r);if(v){if(E(),!z(i))return _("property missing ':'");var j=z(s),$=P({type:f,property:y(v[0].replace(e,c)),value:j?y(j[0].replace(e,c)):c});return z(a),$}}function H(){var P=[];w(P);for(var v;v=L();)v!==!1&&(P.push(v),w(P));return P}return B(),H()}function y(S){return S?S.replace(l,c):c}return on=m,on}var Ur;function yc(){if(Ur)return Qe;Ur=1;var e=Qe&&Qe.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Qe,"__esModule",{value:!0}),Qe.default=n;const t=e(xc());function n(r,i){let s=null;if(!r||typeof r!="string")return s;const a=(0,t.default)(r),l=typeof i=="function";return a.forEach(o=>{if(o.type!=="declaration")return;const{property:u,value:d}=o;l?i(u,d,o):d&&(s=s||{},s[u]=d)}),s}return Qe}var at={},Vr;function bc(){if(Vr)return at;Vr=1,Object.defineProperty(at,"__esModule",{value:!0}),at.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,s=function(u){return!u||n.test(u)||e.test(u)},a=function(u,d){return d.toUpperCase()},l=function(u,d){return"".concat(d,"-")},o=function(u,d){return d===void 0&&(d={}),s(u)?u:(u=u.toLowerCase(),d.reactCompat?u=u.replace(i,l):u=u.replace(r,l),u.replace(t,a))};return at.camelCase=o,at}var lt,$r;function Sc(){if($r)return lt;$r=1;var e=lt&&lt.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},t=e(yc()),n=bc();function r(i,s){var a={};return!i||typeof i!="string"||(0,t.default)(i,function(l,o){l&&o&&(a[(0,n.camelCase)(l,s)]=o)}),a}return r.default=r,lt=r,lt}var kc=Sc();const wc=Gi(kc),Rs=js("end"),rr=js("start");function js(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function vc(e){const t=rr(e),n=Rs(e);if(t&&n)return{start:t,end:n}}function ft(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Kr(e.position):"start"in e||"end"in e?Kr(e):"line"in e||"column"in e?Pn(e):""}function Pn(e){return qr(e&&e.line)+":"+qr(e&&e.column)}function Kr(e){return Pn(e&&e.start)+"-"+Pn(e&&e.end)}function qr(e){return e&&typeof e=="number"?e:1}class ue extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},a=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof t=="string"?i=t:!s.cause&&t&&(a=!0,i=t.message,s.cause=t),!s.ruleId&&!s.source&&typeof r=="string"){const o=r.indexOf(":");o===-1?s.ruleId=r:(s.source=r.slice(0,o),s.ruleId=r.slice(o+1))}if(!s.place&&s.ancestors&&s.ancestors){const o=s.ancestors[s.ancestors.length-1];o&&(s.place=o.position)}const l=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=l?l.line:void 0,this.name=ft(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=a&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}ue.prototype.file="";ue.prototype.name="";ue.prototype.reason="";ue.prototype.message="";ue.prototype.stack="";ue.prototype.column=void 0;ue.prototype.line=void 0;ue.prototype.ancestors=void 0;ue.prototype.cause=void 0;ue.prototype.fatal=void 0;ue.prototype.place=void 0;ue.prototype.ruleId=void 0;ue.prototype.source=void 0;const ir={}.hasOwnProperty,Cc=new Map,Tc=/[A-Z]/g,Ic=new Set(["table","tbody","thead","tfoot","tr"]),Mc=new Set(["td","th"]),Ps="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Nc(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=Oc(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=Dc(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?nr:mc,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=Ds(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function Ds(e,t,n){if(t.type==="element")return Ec(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Lc(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Rc(e,t,n);if(t.type==="mdxjsEsm")return Ac(e,t);if(t.type==="root")return jc(e,t,n);if(t.type==="text")return Pc(e,t)}function Ec(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=nr,e.schema=i),e.ancestors.push(t);const s=Fs(e,t.tagName,!1),a=Fc(e,t);let l=ar(e,t);return Ic.has(t.tagName)&&(l=l.filter(function(o){return typeof o=="string"?!sc(o):!0})),Os(e,a,s,t),sr(a,l),e.ancestors.pop(),e.schema=r,e.create(t,s,a,n)}function Lc(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}xt(e,t.position)}function Ac(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);xt(e,t.position)}function Rc(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=nr,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:Fs(e,t.name,!0),a=_c(e,t),l=ar(e,t);return Os(e,a,s,t),sr(a,l),e.ancestors.pop(),e.schema=r,e.create(t,s,a,n)}function jc(e,t,n){const r={};return sr(r,ar(e,t)),e.create(t,e.Fragment,r,n)}function Pc(e,t){return t.value}function Os(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function sr(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function Dc(e,t,n){return r;function r(i,s,a,l){const u=Array.isArray(a.children)?n:t;return l?u(s,a,l):u(s,a)}}function Oc(e,t){return n;function n(r,i,s,a){const l=Array.isArray(s.children),o=rr(r);return t(i,s,a,l,{columnNumber:o?o.column-1:void 0,fileName:e,lineNumber:o?o.line:void 0},void 0)}}function Fc(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&ir.call(t.properties,i)){const s=zc(e,i,t.properties[i]);if(s){const[a,l]=s;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&Mc.has(t.tagName)?r=l:n[a]=l}}if(r){const s=n.style||(n.style={});s[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function _c(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const s=r.data.estree.body[0];s.type;const a=s.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else xt(e,t.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,s=e.evaluater.evaluateExpression(l.expression)}else xt(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function ar(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:Cc;for(;++r<t.children.length;){const s=t.children[r];let a;if(e.passKeys){const o=s.type==="element"?s.tagName:s.type==="mdxJsxFlowElement"||s.type==="mdxJsxTextElement"?s.name:void 0;if(o){const u=i.get(o)||0;a=o+"-"+u,i.set(o,u+1)}}const l=Ds(e,s,a);l!==void 0&&n.push(l)}return n}function zc(e,t,n){const r=dc(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?ec(n):gc(n)),r.property==="style"){let i=typeof n=="object"?n:Bc(e,String(n));return e.stylePropertyNameCase==="css"&&(i=Hc(i)),["style",i]}return[e.elementAttributeNameCase==="react"&&r.space?uc[r.property]||r.property:r.attribute,n]}}function Bc(e,t){try{return wc(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,i=new ue("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw i.file=e.filePath||void 0,i.url=Ps+"#cannot-parse-style-attribute",i}}function Fs(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const i=t.split(".");let s=-1,a;for(;++s<i.length;){const l=Fr(i[s])?{type:"Identifier",name:i[s]}:{type:"Literal",value:i[s]};a=a?{type:"MemberExpression",object:a,property:l,computed:!!(s&&l.type==="Literal"),optional:!1}:l}r=a}else r=Fr(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const i=r.value;return ir.call(e.components,i)?e.components[i]:i}if(e.evaluater)return e.evaluater.evaluateExpression(r);xt(e)}function xt(e,t){const n=new ue("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=Ps+"#cannot-handle-mdx-estrees-without-createevaluater",n}function Hc(e){const t={};let n;for(n in e)ir.call(e,n)&&(t[Uc(n)]=e[n]);return t}function Uc(e){let t=e.replace(Tc,Vc);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function Vc(e){return"-"+e.toLowerCase()}const un={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},$c={};function lr(e,t){const n=$c,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return _s(e,r,i)}function _s(e,t,n){if(Kc(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return Wr(e.children,t,n)}return Array.isArray(e)?Wr(e,t,n):""}function Wr(e,t,n){const r=[];let i=-1;for(;++i<e.length;)r[i]=_s(e[i],t,n);return r.join("")}function Kc(e){return!!(e&&typeof e=="object")}const Qr=document.createElement("i");function or(e){const t="&"+e+";";Qr.innerHTML=t;const n=Qr.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function ye(e,t,n,r){const i=e.length;let s=0,a;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);s<r.length;)a=r.slice(s,s+1e4),a.unshift(t,0),e.splice(...a),s+=1e4,t+=1e4}function be(e,t){return e.length>0?(ye(e,e.length,0,t),e):t}const Gr={}.hasOwnProperty;function zs(e){const t={};let n=-1;for(;++n<e.length;)qc(t,e[n]);return t}function qc(e,t){let n;for(n in t){const i=(Gr.call(e,n)?e[n]:void 0)||(e[n]={}),s=t[n];let a;if(s)for(a in s){Gr.call(i,a)||(i[a]=[]);const l=s[a];Wc(i[a],Array.isArray(l)?l:l?[l]:[])}}}function Wc(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);ye(e,0,0,r)}function Bs(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ce(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ce=Be(/[A-Za-z]/),oe=Be(/[\dA-Za-z]/),Qc=Be(/[#-'*+\--9=?A-Z^-~]/);function _t(e){return e!==null&&(e<32||e===127)}const Dn=Be(/\d/),Gc=Be(/[\dA-Fa-f]/),Xc=Be(/[!-/:-@[-`{-~]/);function F(e){return e!==null&&e<-2}function J(e){return e!==null&&(e<0||e===32)}function q(e){return e===-2||e===-1||e===32}const Wt=Be(new RegExp("\\p{P}|\\p{S}","u")),Ke=Be(/\s/);function Be(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function tt(e){const t=[];let n=-1,r=0,i=0;for(;++n<e.length;){const s=e.charCodeAt(n);let a="";if(s===37&&oe(e.charCodeAt(n+1))&&oe(e.charCodeAt(n+2)))i=2;else if(s<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(s))||(a=String.fromCharCode(s));else if(s>55295&&s<57344){const l=e.charCodeAt(n+1);s<56320&&l>56319&&l<57344?(a=String.fromCharCode(s,l),i=1):a="�"}else a=String.fromCharCode(s);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function G(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return a;function a(o){return q(o)?(e.enter(n),l(o)):t(o)}function l(o){return q(o)&&s++<i?(e.consume(o),l):(e.exit(n),t(o))}}const Yc={tokenize:Jc};function Jc(e){const t=e.attempt(this.parser.constructs.contentInitial,r,i);let n;return t;function r(l){if(l===null){e.consume(l);return}return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),G(e,t,"linePrefix")}function i(l){return e.enter("paragraph"),s(l)}function s(l){const o=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=o),n=o,a(l)}function a(l){if(l===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(l);return}return F(l)?(e.consume(l),e.exit("chunkText"),s):(e.consume(l),a)}}const Zc={tokenize:eh},Xr={tokenize:th};function eh(e){const t=this,n=[];let r=0,i,s,a;return l;function l(M){if(r<n.length){const D=n[r];return t.containerState=D[1],e.attempt(D[0].continuation,o,u)(M)}return u(M)}function o(M){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&I();const D=t.events.length;let O=D,T;for(;O--;)if(t.events[O][0]==="exit"&&t.events[O][1].type==="chunkFlow"){T=t.events[O][1].end;break}g(r);let _=D;for(;_<t.events.length;)t.events[_][1].end={...T},_++;return ye(t.events,O+1,0,t.events.slice(D)),t.events.length=_,u(M)}return l(M)}function u(M){if(r===n.length){if(!i)return p(M);if(i.currentConstruct&&i.currentConstruct.concrete)return m(M);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Xr,d,c)(M)}function d(M){return i&&I(),g(r),p(M)}function c(M){return t.parser.lazy[t.now().line]=r!==n.length,a=t.now().offset,m(M)}function p(M){return t.containerState={},e.attempt(Xr,f,m)(M)}function f(M){return r++,n.push([t.currentConstruct,t.containerState]),p(M)}function m(M){if(M===null){i&&I(),g(0),e.consume(M);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:i,contentType:"flow",previous:s}),y(M)}function y(M){if(M===null){S(e.exit("chunkFlow"),!0),g(0),e.consume(M);return}return F(M)?(e.consume(M),S(e.exit("chunkFlow")),r=0,t.interrupt=void 0,l):(e.consume(M),y)}function S(M,D){const O=t.sliceStream(M);if(D&&O.push(null),M.previous=s,s&&(s.next=M),s=M,i.defineSkip(M.start),i.write(O),t.parser.lazy[M.start.line]){let T=i.events.length;for(;T--;)if(i.events[T][1].start.offset<a&&(!i.events[T][1].end||i.events[T][1].end.offset>a))return;const _=t.events.length;let z=_,B,w;for(;z--;)if(t.events[z][0]==="exit"&&t.events[z][1].type==="chunkFlow"){if(B){w=t.events[z][1].end;break}B=!0}for(g(r),T=_;T<t.events.length;)t.events[T][1].end={...w},T++;ye(t.events,z+1,0,t.events.slice(_)),t.events.length=T}}function g(M){let D=n.length;for(;D-- >M;){const O=n[D];t.containerState=O[1],O[0].exit.call(t,e)}n.length=M}function I(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function th(e,t,n){return G(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ze(e){if(e===null||J(e)||Ke(e))return 1;if(Wt(e))return 2}function Qt(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const s=e[i].resolveAll;s&&!r.includes(s)&&(t=s(t,n),r.push(s))}return t}const On={name:"attention",resolveAll:nh,tokenize:rh};function nh(e,t){let n=-1,r,i,s,a,l,o,u,d;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;o=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const c={...e[r][1].end},p={...e[n][1].start};Yr(c,-o),Yr(p,o),a={type:o>1?"strongSequence":"emphasisSequence",start:c,end:{...e[r][1].end}},l={type:o>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:p},s={type:o>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:o>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=be(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=be(u,[["enter",i,t],["enter",a,t],["exit",a,t],["enter",s,t]]),u=be(u,Qt(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=be(u,[["exit",s,t],["enter",l,t],["exit",l,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=be(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,ye(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function rh(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Ze(r);let s;return a;function a(o){return s=o,e.enter("attentionSequence"),l(o)}function l(o){if(o===s)return e.consume(o),l;const u=e.exit("attentionSequence"),d=Ze(o),c=!d||d===2&&i||n.includes(o),p=!i||i===2&&d||n.includes(r);return u._open=!!(s===42?c:c&&(i||!p)),u._close=!!(s===42?p:p&&(d||!c)),t(o)}}function Yr(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const ih={name:"autolink",tokenize:sh};function sh(e,t,n){let r=0;return i;function i(f){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(f),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),s}function s(f){return ce(f)?(e.consume(f),a):f===64?n(f):u(f)}function a(f){return f===43||f===45||f===46||oe(f)?(r=1,l(f)):u(f)}function l(f){return f===58?(e.consume(f),r=0,o):(f===43||f===45||f===46||oe(f))&&r++<32?(e.consume(f),l):(r=0,u(f))}function o(f){return f===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(f),e.exit("autolinkMarker"),e.exit("autolink"),t):f===null||f===32||f===60||_t(f)?n(f):(e.consume(f),o)}function u(f){return f===64?(e.consume(f),d):Qc(f)?(e.consume(f),u):n(f)}function d(f){return oe(f)?c(f):n(f)}function c(f){return f===46?(e.consume(f),r=0,d):f===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(f),e.exit("autolinkMarker"),e.exit("autolink"),t):p(f)}function p(f){if((f===45||oe(f))&&r++<63){const m=f===45?p:c;return e.consume(f),m}return n(f)}}const Ct={partial:!0,tokenize:ah};function ah(e,t,n){return r;function r(s){return q(s)?G(e,i,"linePrefix")(s):i(s)}function i(s){return s===null||F(s)?t(s):n(s)}}const Hs={continuation:{tokenize:oh},exit:uh,name:"blockQuote",tokenize:lh};function lh(e,t,n){const r=this;return i;function i(a){if(a===62){const l=r.containerState;return l.open||(e.enter("blockQuote",{_container:!0}),l.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(a),e.exit("blockQuoteMarker"),s}return n(a)}function s(a){return q(a)?(e.enter("blockQuotePrefixWhitespace"),e.consume(a),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(a))}}function oh(e,t,n){const r=this;return i;function i(a){return q(a)?G(e,s,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a):s(a)}function s(a){return e.attempt(Hs,t,n)(a)}}function uh(e){e.exit("blockQuote")}const Us={name:"characterEscape",tokenize:ch};function ch(e,t,n){return r;function r(s){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(s),e.exit("escapeMarker"),i}function i(s){return Xc(s)?(e.enter("characterEscapeValue"),e.consume(s),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(s)}}const Vs={name:"characterReference",tokenize:hh};function hh(e,t,n){const r=this;let i=0,s,a;return l;function l(c){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(c),e.exit("characterReferenceMarker"),o}function o(c){return c===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(c),e.exit("characterReferenceMarkerNumeric"),u):(e.enter("characterReferenceValue"),s=31,a=oe,d(c))}function u(c){return c===88||c===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(c),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),s=6,a=Gc,d):(e.enter("characterReferenceValue"),s=7,a=Dn,d(c))}function d(c){if(c===59&&i){const p=e.exit("characterReferenceValue");return a===oe&&!or(r.sliceSerialize(p))?n(c):(e.enter("characterReferenceMarker"),e.consume(c),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return a(c)&&i++<s?(e.consume(c),d):n(c)}}const Jr={partial:!0,tokenize:fh},Zr={concrete:!0,name:"codeFenced",tokenize:dh};function dh(e,t,n){const r=this,i={partial:!0,tokenize:O};let s=0,a=0,l;return o;function o(T){return u(T)}function u(T){const _=r.events[r.events.length-1];return s=_&&_[1].type==="linePrefix"?_[2].sliceSerialize(_[1],!0).length:0,l=T,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),d(T)}function d(T){return T===l?(a++,e.consume(T),d):a<3?n(T):(e.exit("codeFencedFenceSequence"),q(T)?G(e,c,"whitespace")(T):c(T))}function c(T){return T===null||F(T)?(e.exit("codeFencedFence"),r.interrupt?t(T):e.check(Jr,y,D)(T)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),p(T))}function p(T){return T===null||F(T)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),c(T)):q(T)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),G(e,f,"whitespace")(T)):T===96&&T===l?n(T):(e.consume(T),p)}function f(T){return T===null||F(T)?c(T):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),m(T))}function m(T){return T===null||F(T)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),c(T)):T===96&&T===l?n(T):(e.consume(T),m)}function y(T){return e.attempt(i,D,S)(T)}function S(T){return e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),g}function g(T){return s>0&&q(T)?G(e,I,"linePrefix",s+1)(T):I(T)}function I(T){return T===null||F(T)?e.check(Jr,y,D)(T):(e.enter("codeFlowValue"),M(T))}function M(T){return T===null||F(T)?(e.exit("codeFlowValue"),I(T)):(e.consume(T),M)}function D(T){return e.exit("codeFenced"),t(T)}function O(T,_,z){let B=0;return w;function w(v){return T.enter("lineEnding"),T.consume(v),T.exit("lineEnding"),E}function E(v){return T.enter("codeFencedFence"),q(v)?G(T,L,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):L(v)}function L(v){return v===l?(T.enter("codeFencedFenceSequence"),H(v)):z(v)}function H(v){return v===l?(B++,T.consume(v),H):B>=a?(T.exit("codeFencedFenceSequence"),q(v)?G(T,P,"whitespace")(v):P(v)):z(v)}function P(v){return v===null||F(v)?(T.exit("codeFencedFence"),_(v)):z(v)}}}function fh(e,t,n){const r=this;return i;function i(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s)}function s(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const cn={name:"codeIndented",tokenize:mh},ph={partial:!0,tokenize:gh};function mh(e,t,n){const r=this;return i;function i(u){return e.enter("codeIndented"),G(e,s,"linePrefix",5)(u)}function s(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?a(u):n(u)}function a(u){return u===null?o(u):F(u)?e.attempt(ph,a,o)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||F(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),l)}function o(u){return e.exit("codeIndented"),t(u)}}function gh(e,t,n){const r=this;return i;function i(a){return r.parser.lazy[r.now().line]?n(a):F(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):G(e,s,"linePrefix",5)(a)}function s(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):F(a)?i(a):n(a)}}const xh={name:"codeText",previous:bh,resolve:yh,tokenize:Sh};function yh(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(i=r):(r===t||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function bh(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function Sh(e,t,n){let r=0,i,s;return a;function a(c){return e.enter("codeText"),e.enter("codeTextSequence"),l(c)}function l(c){return c===96?(e.consume(c),r++,l):(e.exit("codeTextSequence"),o(c))}function o(c){return c===null?n(c):c===32?(e.enter("space"),e.consume(c),e.exit("space"),o):c===96?(s=e.enter("codeTextSequence"),i=0,d(c)):F(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),o):(e.enter("codeTextData"),u(c))}function u(c){return c===null||c===32||c===96||F(c)?(e.exit("codeTextData"),o(c)):(e.consume(c),u)}function d(c){return c===96?(e.consume(c),i++,d):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(c)):(s.type="codeTextData",u(c))}}class kh{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&ot(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),ot(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),ot(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);ot(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);ot(this.left,n.reverse())}}}function ot(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function $s(e){const t={};let n=-1,r,i,s,a,l,o,u;const d=new kh(e);for(;++n<d.length;){for(;n in t;)n=t[n];if(r=d.get(n),n&&r[1].type==="chunkFlow"&&d.get(n-1)[1].type==="listItemPrefix"&&(o=r[1]._tokenizer.events,s=0,s<o.length&&o[s][1].type==="lineEndingBlank"&&(s+=2),s<o.length&&o[s][1].type==="content"))for(;++s<o.length&&o[s][1].type!=="content";)o[s][1].type==="chunkText"&&(o[s][1]._isInFirstContentOfListItem=!0,s++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,wh(d,n)),n=t[n],u=!0);else if(r[1]._container){for(s=n,i=void 0;s--;)if(a=d.get(s),a[1].type==="lineEnding"||a[1].type==="lineEndingBlank")a[0]==="enter"&&(i&&(d.get(i)[1].type="lineEndingBlank"),a[1].type="lineEnding",i=s);else if(!(a[1].type==="linePrefix"||a[1].type==="listItemIndent"))break;i&&(r[1].end={...d.get(i)[1].start},l=d.slice(i,n),l.unshift(r),d.splice(i,n-i+1,l))}}return ye(e,0,Number.POSITIVE_INFINITY,d.slice(0)),!u}function wh(e,t){const n=e.get(t)[1],r=e.get(t)[2];let i=t-1;const s=[];let a=n._tokenizer;a||(a=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(a._contentTypeTextTrailing=!0));const l=a.events,o=[],u={};let d,c,p=-1,f=n,m=0,y=0;const S=[y];for(;f;){for(;e.get(++i)[1]!==f;);s.push(i),f._tokenizer||(d=r.sliceStream(f),f.next||d.push(null),c&&a.defineSkip(f.start),f._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=!0),a.write(d),f._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=void 0)),c=f,f=f.next}for(f=n;++p<l.length;)l[p][0]==="exit"&&l[p-1][0]==="enter"&&l[p][1].type===l[p-1][1].type&&l[p][1].start.line!==l[p][1].end.line&&(y=p+1,S.push(y),f._tokenizer=void 0,f.previous=void 0,f=f.next);for(a.events=[],f?(f._tokenizer=void 0,f.previous=void 0):S.pop(),p=S.length;p--;){const g=l.slice(S[p],S[p+1]),I=s.pop();o.push([I,I+g.length-1]),e.splice(I,2,g)}for(o.reverse(),p=-1;++p<o.length;)u[m+o[p][0]]=m+o[p][1],m+=o[p][1]-o[p][0]-1;return u}const vh={resolve:Th,tokenize:Ih},Ch={partial:!0,tokenize:Mh};function Th(e){return $s(e),e}function Ih(e,t){let n;return r;function r(l){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),i(l)}function i(l){return l===null?s(l):F(l)?e.check(Ch,a,s)(l):(e.consume(l),i)}function s(l){return e.exit("chunkContent"),e.exit("content"),t(l)}function a(l){return e.consume(l),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function Mh(e,t,n){const r=this;return i;function i(a){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),G(e,s,"linePrefix")}function s(a){if(a===null||F(a))return n(a);const l=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function Ks(e,t,n,r,i,s,a,l,o){const u=o||Number.POSITIVE_INFINITY;let d=0;return c;function c(g){return g===60?(e.enter(r),e.enter(i),e.enter(s),e.consume(g),e.exit(s),p):g===null||g===32||g===41||_t(g)?n(g):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),y(g))}function p(g){return g===62?(e.enter(s),e.consume(g),e.exit(s),e.exit(i),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),f(g))}function f(g){return g===62?(e.exit("chunkString"),e.exit(l),p(g)):g===null||g===60||F(g)?n(g):(e.consume(g),g===92?m:f)}function m(g){return g===60||g===62||g===92?(e.consume(g),f):f(g)}function y(g){return!d&&(g===null||g===41||J(g))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(g)):d<u&&g===40?(e.consume(g),d++,y):g===41?(e.consume(g),d--,y):g===null||g===32||g===40||_t(g)?n(g):(e.consume(g),g===92?S:y)}function S(g){return g===40||g===41||g===92?(e.consume(g),y):y(g)}}function qs(e,t,n,r,i,s){const a=this;let l=0,o;return u;function u(f){return e.enter(r),e.enter(i),e.consume(f),e.exit(i),e.enter(s),d}function d(f){return l>999||f===null||f===91||f===93&&!o||f===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(f):f===93?(e.exit(s),e.enter(i),e.consume(f),e.exit(i),e.exit(r),t):F(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),c(f))}function c(f){return f===null||f===91||f===93||F(f)||l++>999?(e.exit("chunkString"),d(f)):(e.consume(f),o||(o=!q(f)),f===92?p:c)}function p(f){return f===91||f===92||f===93?(e.consume(f),l++,c):c(f)}}function Ws(e,t,n,r,i,s){let a;return l;function l(p){return p===34||p===39||p===40?(e.enter(r),e.enter(i),e.consume(p),e.exit(i),a=p===40?41:p,o):n(p)}function o(p){return p===a?(e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):(e.enter(s),u(p))}function u(p){return p===a?(e.exit(s),o(a)):p===null?n(p):F(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),G(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===a||p===null||F(p)?(e.exit("chunkString"),u(p)):(e.consume(p),p===92?c:d)}function c(p){return p===a||p===92?(e.consume(p),d):d(p)}}function pt(e,t){let n;return r;function r(i){return F(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):q(i)?G(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const Nh={name:"definition",tokenize:Lh},Eh={partial:!0,tokenize:Ah};function Lh(e,t,n){const r=this;let i;return s;function s(f){return e.enter("definition"),a(f)}function a(f){return qs.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(f)}function l(f){return i=Ce(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),f===58?(e.enter("definitionMarker"),e.consume(f),e.exit("definitionMarker"),o):n(f)}function o(f){return J(f)?pt(e,u)(f):u(f)}function u(f){return Ks(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(f)}function d(f){return e.attempt(Eh,c,c)(f)}function c(f){return q(f)?G(e,p,"whitespace")(f):p(f)}function p(f){return f===null||F(f)?(e.exit("definition"),r.parser.defined.push(i),t(f)):n(f)}}function Ah(e,t,n){return r;function r(l){return J(l)?pt(e,i)(l):n(l)}function i(l){return Ws(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function s(l){return q(l)?G(e,a,"whitespace")(l):a(l)}function a(l){return l===null||F(l)?t(l):n(l)}}const Rh={name:"hardBreakEscape",tokenize:jh};function jh(e,t,n){return r;function r(s){return e.enter("hardBreakEscape"),e.consume(s),i}function i(s){return F(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const Ph={name:"headingAtx",resolve:Dh,tokenize:Oh};function Dh(e,t){let n=e.length-2,r=3,i,s;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},s={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ye(e,r,n-r+1,[["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t]])),e}function Oh(e,t,n){let r=0;return i;function i(d){return e.enter("atxHeading"),s(d)}function s(d){return e.enter("atxHeadingSequence"),a(d)}function a(d){return d===35&&r++<6?(e.consume(d),a):d===null||J(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),o(d)):d===null||F(d)?(e.exit("atxHeading"),t(d)):q(d)?G(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function o(d){return d===35?(e.consume(d),o):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||J(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const Fh=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],ei=["pre","script","style","textarea"],_h={concrete:!0,name:"htmlFlow",resolveTo:Hh,tokenize:Uh},zh={partial:!0,tokenize:$h},Bh={partial:!0,tokenize:Vh};function Hh(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function Uh(e,t,n){const r=this;let i,s,a,l,o;return u;function u(b){return d(b)}function d(b){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(b),c}function c(b){return b===33?(e.consume(b),p):b===47?(e.consume(b),s=!0,y):b===63?(e.consume(b),i=3,r.interrupt?t:x):ce(b)?(e.consume(b),a=String.fromCharCode(b),S):n(b)}function p(b){return b===45?(e.consume(b),i=2,f):b===91?(e.consume(b),i=5,l=0,m):ce(b)?(e.consume(b),i=4,r.interrupt?t:x):n(b)}function f(b){return b===45?(e.consume(b),r.interrupt?t:x):n(b)}function m(b){const he="CDATA[";return b===he.charCodeAt(l++)?(e.consume(b),l===he.length?r.interrupt?t:L:m):n(b)}function y(b){return ce(b)?(e.consume(b),a=String.fromCharCode(b),S):n(b)}function S(b){if(b===null||b===47||b===62||J(b)){const he=b===47,Te=a.toLowerCase();return!he&&!s&&ei.includes(Te)?(i=1,r.interrupt?t(b):L(b)):Fh.includes(a.toLowerCase())?(i=6,he?(e.consume(b),g):r.interrupt?t(b):L(b)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(b):s?I(b):M(b))}return b===45||oe(b)?(e.consume(b),a+=String.fromCharCode(b),S):n(b)}function g(b){return b===62?(e.consume(b),r.interrupt?t:L):n(b)}function I(b){return q(b)?(e.consume(b),I):w(b)}function M(b){return b===47?(e.consume(b),w):b===58||b===95||ce(b)?(e.consume(b),D):q(b)?(e.consume(b),M):w(b)}function D(b){return b===45||b===46||b===58||b===95||oe(b)?(e.consume(b),D):O(b)}function O(b){return b===61?(e.consume(b),T):q(b)?(e.consume(b),O):M(b)}function T(b){return b===null||b===60||b===61||b===62||b===96?n(b):b===34||b===39?(e.consume(b),o=b,_):q(b)?(e.consume(b),T):z(b)}function _(b){return b===o?(e.consume(b),o=null,B):b===null||F(b)?n(b):(e.consume(b),_)}function z(b){return b===null||b===34||b===39||b===47||b===60||b===61||b===62||b===96||J(b)?O(b):(e.consume(b),z)}function B(b){return b===47||b===62||q(b)?M(b):n(b)}function w(b){return b===62?(e.consume(b),E):n(b)}function E(b){return b===null||F(b)?L(b):q(b)?(e.consume(b),E):n(b)}function L(b){return b===45&&i===2?(e.consume(b),j):b===60&&i===1?(e.consume(b),$):b===62&&i===4?(e.consume(b),le):b===63&&i===3?(e.consume(b),x):b===93&&i===5?(e.consume(b),pe):F(b)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(zh,se,H)(b)):b===null||F(b)?(e.exit("htmlFlowData"),H(b)):(e.consume(b),L)}function H(b){return e.check(Bh,P,se)(b)}function P(b){return e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),v}function v(b){return b===null||F(b)?H(b):(e.enter("htmlFlowData"),L(b))}function j(b){return b===45?(e.consume(b),x):L(b)}function $(b){return b===47?(e.consume(b),a="",te):L(b)}function te(b){if(b===62){const he=a.toLowerCase();return ei.includes(he)?(e.consume(b),le):L(b)}return ce(b)&&a.length<8?(e.consume(b),a+=String.fromCharCode(b),te):L(b)}function pe(b){return b===93?(e.consume(b),x):L(b)}function x(b){return b===62?(e.consume(b),le):b===45&&i===2?(e.consume(b),x):L(b)}function le(b){return b===null||F(b)?(e.exit("htmlFlowData"),se(b)):(e.consume(b),le)}function se(b){return e.exit("htmlFlow"),t(b)}}function Vh(e,t,n){const r=this;return i;function i(a){return F(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):n(a)}function s(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function $h(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Ct,t,n)}}const Kh={name:"htmlText",tokenize:qh};function qh(e,t,n){const r=this;let i,s,a;return l;function l(x){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(x),o}function o(x){return x===33?(e.consume(x),u):x===47?(e.consume(x),O):x===63?(e.consume(x),M):ce(x)?(e.consume(x),z):n(x)}function u(x){return x===45?(e.consume(x),d):x===91?(e.consume(x),s=0,m):ce(x)?(e.consume(x),I):n(x)}function d(x){return x===45?(e.consume(x),f):n(x)}function c(x){return x===null?n(x):x===45?(e.consume(x),p):F(x)?(a=c,$(x)):(e.consume(x),c)}function p(x){return x===45?(e.consume(x),f):c(x)}function f(x){return x===62?j(x):x===45?p(x):c(x)}function m(x){const le="CDATA[";return x===le.charCodeAt(s++)?(e.consume(x),s===le.length?y:m):n(x)}function y(x){return x===null?n(x):x===93?(e.consume(x),S):F(x)?(a=y,$(x)):(e.consume(x),y)}function S(x){return x===93?(e.consume(x),g):y(x)}function g(x){return x===62?j(x):x===93?(e.consume(x),g):y(x)}function I(x){return x===null||x===62?j(x):F(x)?(a=I,$(x)):(e.consume(x),I)}function M(x){return x===null?n(x):x===63?(e.consume(x),D):F(x)?(a=M,$(x)):(e.consume(x),M)}function D(x){return x===62?j(x):M(x)}function O(x){return ce(x)?(e.consume(x),T):n(x)}function T(x){return x===45||oe(x)?(e.consume(x),T):_(x)}function _(x){return F(x)?(a=_,$(x)):q(x)?(e.consume(x),_):j(x)}function z(x){return x===45||oe(x)?(e.consume(x),z):x===47||x===62||J(x)?B(x):n(x)}function B(x){return x===47?(e.consume(x),j):x===58||x===95||ce(x)?(e.consume(x),w):F(x)?(a=B,$(x)):q(x)?(e.consume(x),B):j(x)}function w(x){return x===45||x===46||x===58||x===95||oe(x)?(e.consume(x),w):E(x)}function E(x){return x===61?(e.consume(x),L):F(x)?(a=E,$(x)):q(x)?(e.consume(x),E):B(x)}function L(x){return x===null||x===60||x===61||x===62||x===96?n(x):x===34||x===39?(e.consume(x),i=x,H):F(x)?(a=L,$(x)):q(x)?(e.consume(x),L):(e.consume(x),P)}function H(x){return x===i?(e.consume(x),i=void 0,v):x===null?n(x):F(x)?(a=H,$(x)):(e.consume(x),H)}function P(x){return x===null||x===34||x===39||x===60||x===61||x===96?n(x):x===47||x===62||J(x)?B(x):(e.consume(x),P)}function v(x){return x===47||x===62||J(x)?B(x):n(x)}function j(x){return x===62?(e.consume(x),e.exit("htmlTextData"),e.exit("htmlText"),t):n(x)}function $(x){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),te}function te(x){return q(x)?G(e,pe,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(x):pe(x)}function pe(x){return e.enter("htmlTextData"),a(x)}}const ur={name:"labelEnd",resolveAll:Xh,resolveTo:Yh,tokenize:Jh},Wh={tokenize:Zh},Qh={tokenize:ed},Gh={tokenize:td};function Xh(e){let t=-1;const n=[];for(;++t<e.length;){const r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){const i=r.type==="labelImage"?4:2;r.type="data",t+=i}}return e.length!==n.length&&ye(e,0,e.length,n),e}function Yh(e,t){let n=e.length,r=0,i,s,a,l;for(;n--;)if(i=e[n][1],s){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(a){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(s=n,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(a=n);const o={type:e[s][1].type==="labelLink"?"link":"image",start:{...e[s][1].start},end:{...e[e.length-1][1].end}},u={type:"label",start:{...e[s][1].start},end:{...e[a][1].end}},d={type:"labelText",start:{...e[s+r+2][1].end},end:{...e[a-2][1].start}};return l=[["enter",o,t],["enter",u,t]],l=be(l,e.slice(s+1,s+r+3)),l=be(l,[["enter",d,t]]),l=be(l,Qt(t.parser.constructs.insideSpan.null,e.slice(s+r+4,a-3),t)),l=be(l,[["exit",d,t],e[a-2],e[a-1],["exit",u,t]]),l=be(l,e.slice(a+1)),l=be(l,[["exit",o,t]]),ye(e,s,e.length,l),e}function Jh(e,t,n){const r=this;let i=r.events.length,s,a;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){s=r.events[i][1];break}return l;function l(p){return s?s._inactive?c(p):(a=r.parser.defined.includes(Ce(r.sliceSerialize({start:s.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(p),e.exit("labelMarker"),e.exit("labelEnd"),o):n(p)}function o(p){return p===40?e.attempt(Wh,d,a?d:c)(p):p===91?e.attempt(Qh,d,a?u:c)(p):a?d(p):c(p)}function u(p){return e.attempt(Gh,d,c)(p)}function d(p){return t(p)}function c(p){return s._balanced=!0,n(p)}}function Zh(e,t,n){return r;function r(c){return e.enter("resource"),e.enter("resourceMarker"),e.consume(c),e.exit("resourceMarker"),i}function i(c){return J(c)?pt(e,s)(c):s(c)}function s(c){return c===41?d(c):Ks(e,a,l,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(c)}function a(c){return J(c)?pt(e,o)(c):d(c)}function l(c){return n(c)}function o(c){return c===34||c===39||c===40?Ws(e,u,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(c):d(c)}function u(c){return J(c)?pt(e,d)(c):d(c)}function d(c){return c===41?(e.enter("resourceMarker"),e.consume(c),e.exit("resourceMarker"),e.exit("resource"),t):n(c)}}function ed(e,t,n){const r=this;return i;function i(l){return qs.call(r,e,s,a,"reference","referenceMarker","referenceString")(l)}function s(l){return r.parser.defined.includes(Ce(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(l):n(l)}function a(l){return n(l)}}function td(e,t,n){return r;function r(s){return e.enter("reference"),e.enter("referenceMarker"),e.consume(s),e.exit("referenceMarker"),i}function i(s){return s===93?(e.enter("referenceMarker"),e.consume(s),e.exit("referenceMarker"),e.exit("reference"),t):n(s)}}const nd={name:"labelStartImage",resolveAll:ur.resolveAll,tokenize:rd};function rd(e,t,n){const r=this;return i;function i(l){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(l),e.exit("labelImageMarker"),s}function s(l){return l===91?(e.enter("labelMarker"),e.consume(l),e.exit("labelMarker"),e.exit("labelImage"),a):n(l)}function a(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(l):t(l)}}const id={name:"labelStartLink",resolveAll:ur.resolveAll,tokenize:sd};function sd(e,t,n){const r=this;return i;function i(a){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelLink"),s}function s(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}const hn={name:"lineEnding",tokenize:ad};function ad(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),G(e,t,"linePrefix")}}const Ot={name:"thematicBreak",tokenize:ld};function ld(e,t,n){let r=0,i;return s;function s(u){return e.enter("thematicBreak"),a(u)}function a(u){return i=u,l(u)}function l(u){return u===i?(e.enter("thematicBreakSequence"),o(u)):r>=3&&(u===null||F(u))?(e.exit("thematicBreak"),t(u)):n(u)}function o(u){return u===i?(e.consume(u),r++,o):(e.exit("thematicBreakSequence"),q(u)?G(e,l,"whitespace")(u):l(u))}}const de={continuation:{tokenize:hd},exit:fd,name:"list",tokenize:cd},od={partial:!0,tokenize:pd},ud={partial:!0,tokenize:dd};function cd(e,t,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,a=0;return l;function l(f){const m=r.containerState.type||(f===42||f===43||f===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!r.containerState.marker||f===r.containerState.marker:Dn(f)){if(r.containerState.type||(r.containerState.type=m,e.enter(m,{_container:!0})),m==="listUnordered")return e.enter("listItemPrefix"),f===42||f===45?e.check(Ot,n,u)(f):u(f);if(!r.interrupt||f===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),o(f)}return n(f)}function o(f){return Dn(f)&&++a<10?(e.consume(f),o):(!r.interrupt||a<2)&&(r.containerState.marker?f===r.containerState.marker:f===41||f===46)?(e.exit("listItemValue"),u(f)):n(f)}function u(f){return e.enter("listItemMarker"),e.consume(f),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||f,e.check(Ct,r.interrupt?n:d,e.attempt(od,p,c))}function d(f){return r.containerState.initialBlankLine=!0,s++,p(f)}function c(f){return q(f)?(e.enter("listItemPrefixWhitespace"),e.consume(f),e.exit("listItemPrefixWhitespace"),p):n(f)}function p(f){return r.containerState.size=s+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(f)}}function hd(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Ct,i,s);function i(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,G(e,t,"listItemIndent",r.containerState.size+1)(l)}function s(l){return r.containerState.furtherBlankLines||!q(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(ud,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,G(e,e.attempt(de,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function dd(e,t,n){const r=this;return G(e,i,"listItemIndent",r.containerState.size+1);function i(s){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(s):n(s)}}function fd(e){e.exit(this.containerState.type)}function pd(e,t,n){const r=this;return G(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const a=r.events[r.events.length-1];return!q(s)&&a&&a[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const ti={name:"setextUnderline",resolveTo:md,tokenize:gd};function md(e,t){let n=e.length,r,i,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",s?(e.splice(i,0,["enter",a,t]),e.splice(s+1,0,["exit",e[r][1],t]),e[r][1].end={...e[s][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function gd(e,t,n){const r=this;let i;return s;function s(u){let d=r.events.length,c;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){c=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||c)?(e.enter("setextHeadingLine"),i=u,a(u)):n(u)}function a(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===i?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),q(u)?G(e,o,"lineSuffix")(u):o(u))}function o(u){return u===null||F(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const xd={tokenize:yd};function yd(e){const t=this,n=e.attempt(Ct,r,e.attempt(this.parser.constructs.flowInitial,i,G(e,e.attempt(this.parser.constructs.flow,i,e.attempt(vh,i)),"linePrefix")));return n;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const bd={resolveAll:Gs()},Sd=Qs("string"),kd=Qs("text");function Qs(e){return{resolveAll:Gs(e==="text"?wd:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],s=n.attempt(i,a,l);return a;function a(d){return u(d)?s(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),o}function o(d){return u(d)?(n.exit("data"),s(d)):(n.consume(d),o)}function u(d){if(d===null)return!0;const c=i[d];let p=-1;if(c)for(;++p<c.length;){const f=c[p];if(!f.previous||f.previous.call(r,r.previous))return!0}return!1}}}function Gs(e){return t;function t(n,r){let i=-1,s;for(;++i<=n.length;)s===void 0?n[i]&&n[i][1].type==="data"&&(s=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==s+2&&(n[s][1].end=n[i-1][1].end,n.splice(s+2,i-s-2),i=s+2),s=void 0);return e?e(n,r):n}}function wd(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],i=t.sliceStream(r);let s=i.length,a=-1,l=0,o;for(;s--;){const u=i[s];if(typeof u=="string"){for(a=u.length;u.charCodeAt(a-1)===32;)l++,a--;if(a)break;a=-1}else if(u===-2)o=!0,l++;else if(u!==-1){s++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(l=0),l){const u={type:n===e.length||o||l<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:s?a:r.start._bufferIndex+a,_index:r.start._index+s,line:r.end.line,column:r.end.column-l,offset:r.end.offset-l},end:{...r.end}};r.end={...u.start},r.start.offset===r.end.offset?Object.assign(r,u):(e.splice(n,0,["enter",u,t],["exit",u,t]),n+=2)}n++}return e}const vd={42:de,43:de,45:de,48:de,49:de,50:de,51:de,52:de,53:de,54:de,55:de,56:de,57:de,62:Hs},Cd={91:Nh},Td={[-2]:cn,[-1]:cn,32:cn},Id={35:Ph,42:Ot,45:[ti,Ot],60:_h,61:ti,95:Ot,96:Zr,126:Zr},Md={38:Vs,92:Us},Nd={[-5]:hn,[-4]:hn,[-3]:hn,33:nd,38:Vs,42:On,60:[ih,Kh],91:id,92:[Rh,Us],93:ur,95:On,96:xh},Ed={null:[On,bd]},Ld={null:[42,95]},Ad={null:[]},Rd=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Ld,contentInitial:Cd,disable:Ad,document:vd,flow:Id,flowInitial:Td,insideSpan:Ed,string:Md,text:Nd},Symbol.toStringTag,{value:"Module"}));function jd(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0};const i={},s=[];let a=[],l=[];const o={attempt:_(O),check:_(T),consume:I,enter:M,exit:D,interrupt:_(T,{interrupt:!0})},u={code:null,containerState:{},defineSkip:y,events:[],now:m,parser:e,previous:null,sliceSerialize:p,sliceStream:f,write:c};let d=t.tokenize.call(u,o);return t.resolveAll&&s.push(t),u;function c(E){return a=be(a,E),S(),a[a.length-1]!==null?[]:(z(t,0),u.events=Qt(s,u.events,u),u.events)}function p(E,L){return Dd(f(E),L)}function f(E){return Pd(a,E)}function m(){const{_bufferIndex:E,_index:L,line:H,column:P,offset:v}=r;return{_bufferIndex:E,_index:L,line:H,column:P,offset:v}}function y(E){i[E.line]=E.column,w()}function S(){let E;for(;r._index<a.length;){const L=a[r._index];if(typeof L=="string")for(E=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===E&&r._bufferIndex<L.length;)g(L.charCodeAt(r._bufferIndex));else g(L)}}function g(E){d=d(E)}function I(E){F(E)?(r.line++,r.column=1,r.offset+=E===-3?2:1,w()):E!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===a[r._index].length&&(r._bufferIndex=-1,r._index++)),u.previous=E}function M(E,L){const H=L||{};return H.type=E,H.start=m(),u.events.push(["enter",H,u]),l.push(H),H}function D(E){const L=l.pop();return L.end=m(),u.events.push(["exit",L,u]),L}function O(E,L){z(E,L.from)}function T(E,L){L.restore()}function _(E,L){return H;function H(P,v,j){let $,te,pe,x;return Array.isArray(P)?se(P):"tokenize"in P?se([P]):le(P);function le(re){return me;function me(ke){const Le=ke!==null&&re[ke],Ae=ke!==null&&re.null,He=[...Array.isArray(Le)?Le:Le?[Le]:[],...Array.isArray(Ae)?Ae:Ae?[Ae]:[]];return se(He)(ke)}}function se(re){return $=re,te=0,re.length===0?j:b(re[te])}function b(re){return me;function me(ke){return x=B(),pe=re,re.partial||(u.currentConstruct=re),re.name&&u.parser.constructs.disable.null.includes(re.name)?Te():re.tokenize.call(L?Object.assign(Object.create(u),L):u,o,he,Te)(ke)}}function he(re){return E(pe,x),v}function Te(re){return x.restore(),++te<$.length?b($[te]):j}}}function z(E,L){E.resolveAll&&!s.includes(E)&&s.push(E),E.resolve&&ye(u.events,L,u.events.length-L,E.resolve(u.events.slice(L),u)),E.resolveTo&&(u.events=E.resolveTo(u.events,u))}function B(){const E=m(),L=u.previous,H=u.currentConstruct,P=u.events.length,v=Array.from(l);return{from:P,restore:j};function j(){r=E,u.previous=L,u.currentConstruct=H,u.events.length=P,l=v,w()}}function w(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function Pd(e,t){const n=t.start._index,r=t.start._bufferIndex,i=t.end._index,s=t.end._bufferIndex;let a;if(n===i)a=[e[n].slice(r,s)];else{if(a=e.slice(n,i),r>-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}s>0&&a.push(e[i].slice(0,s))}return a}function Dd(e,t){let n=-1;const r=[];let i;for(;++n<e.length;){const s=e[n];let a;if(typeof s=="string")a=s;else switch(s){case-5:{a="\r";break}case-4:{a=`
@@ -32,6 +32,6 @@ var Ha=Object.defineProperty;var Ua=(e,t,n)=>t in e?Ha(e,t,{enumerable:!0,config
32
32
  `)?t.slice(0,-1):t}function Rg(e){var n;const t=e?Lg.exec(e):null;return((n=t==null?void 0:t[1])==null?void 0:n.toLowerCase())||"text"}function jg(e){const t=k.useMemo(()=>Rg(e.className),[e.className]),n=k.useMemo(()=>Ag(e.children),[e.children]),{copied:r,copy:i}=Eg({text:n});return h.jsxs("div",{className:"chat-codeblock",children:[h.jsxs("div",{className:"chat-codeblock-toolbar",children:[h.jsx("span",{className:"chat-codeblock-language",children:t}),h.jsxs("button",{type:"button",className:"chat-codeblock-copy",onClick:()=>void i(),"aria-label":r?e.texts.copiedCodeLabel:e.texts.copyCodeLabel,children:[r?h.jsx(St,{className:"h-3.5 w-3.5"}):h.jsx(hl,{className:"h-3.5 w-3.5"}),h.jsx("span",{children:r?e.texts.copiedCodeLabel:e.texts.copyCodeLabel})]})]}),h.jsx("pre",{children:h.jsx("code",{className:e.className,children:n})})]})}const Mi=14e4,Pg=new Set(["http:","https:","mailto:","tel:"]);function Dg(e){return e.length<=Mi?e:`${e.slice(0,Mi)}
33
33
 
34
34
  ...`}function Ni(e){if(!e)return null;if(e.startsWith("#")||e.startsWith("/")||e.startsWith("./")||e.startsWith("../"))return e;try{const t=new URL(e);return Pg.has(t.protocol)?e:null}catch{return null}}function Og(e){return/^https?:\/\//i.test(e)}function Fg(e){const t=e.role==="user",n=k.useMemo(()=>({a:({href:r,children:i,...s})=>{const a=Ni(r);if(!a)return h.jsx("span",{className:"chat-link-invalid",children:i});const l=Og(a);return h.jsx("a",{...s,href:a,target:l?"_blank":void 0,rel:l?"noreferrer noopener":void 0,children:i})},table:({children:r,...i})=>h.jsx("div",{className:"chat-table-wrap",children:h.jsx("table",{...i,children:r})}),input:({type:r,checked:i,...s})=>r!=="checkbox"?h.jsx("input",{...s,type:r}):h.jsx("input",{...s,type:"checkbox",checked:i,readOnly:!0,disabled:!0,className:"chat-task-checkbox"}),img:({src:r,alt:i,...s})=>{const a=Ni(r);return a?h.jsx("img",{...s,src:a,alt:i||"",loading:"lazy",decoding:"async"}):null},code:({className:r,children:i,...s})=>{const a=String(i??"");return!r&&!a.includes(`
35
- `)?h.jsx("code",{...s,className:Q("chat-inline-code",r),children:i}):h.jsx(jg,{className:r,texts:e.texts,children:i})}}),[e.texts]);return h.jsx("div",{className:Q("chat-markdown",t?"chat-markdown-user":"chat-markdown-assistant"),children:h.jsx(hp,{skipHtml:!0,remarkPlugins:[Cg],components:n,children:Dg(e.text)})})}const La={archive:"Archive",audio:"Audio",code:"Code",data:"Data",document:"Document",generic:"File",image:"Image",pdf:"PDF",sheet:"Sheet",video:"Video"},Cn={archive:"border-amber-200/80 bg-amber-100 text-amber-700",audio:"border-fuchsia-200/80 bg-fuchsia-100 text-fuchsia-700",code:"border-cyan-200/80 bg-cyan-100 text-cyan-700",data:"border-slate-200/80 bg-slate-100 text-slate-700",document:"border-blue-200/80 bg-blue-100 text-blue-700",generic:"border-slate-200/80 bg-slate-100 text-slate-700",image:"border-emerald-200/80 bg-emerald-100 text-emerald-700",pdf:"border-rose-200/80 bg-rose-100 text-rose-700",sheet:"border-lime-200/80 bg-lime-100 text-lime-700",video:"border-violet-200/80 bg-violet-100 text-violet-700"},_g=new Set(["c","cpp","css","go","html","java","js","jsx","md","php","py","rb","rs","sh","sql","svg","ts","tsx"]),zg=new Set(["graphql","json","toml","xml","yaml","yml"]),Bg=new Set(["doc","docx","odt","pages","rtf","txt"]),Hg=new Set(["csv","numbers","ods","tsv","xls","xlsx"]),Ug=new Set(["7z","bz2","gz","rar","tar","tgz","zip"]);function Vg(e){if(!Number.isFinite(e)||e==null||e<0)return null;if(e===0)return"0 B";const t=["B","KB","MB","GB","TB"];let n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;const i=n>=10||r===0?0:1;return`${n.toFixed(i).replace(/\.0$/,"")} ${t[r]}`}function $g(e,t){var s;const n=/\.([a-z0-9]{1,12})$/i.exec(e.trim());if(n!=null&&n[1])return n[1].toUpperCase();const i=(s=(t.split("/")[1]??"").split(/[+.;-]/)[0])==null?void 0:s.trim();return i?i.slice(0,6).toUpperCase():"FILE"}function Kg(e,t){var i,s;const n=((s=(i=/\.([a-z0-9]{1,12})$/i.exec(e.trim()))==null?void 0:i[1])==null?void 0:s.toLowerCase())??"",r=t.toLowerCase();return r.startsWith("image/")?"image":r.startsWith("audio/")?"audio":r.startsWith("video/")?"video":r.includes("pdf")||n==="pdf"?"pdf":Ug.has(n)||/(zip|tar|gzip|rar|compressed|archive)/.test(r)?"archive":Hg.has(n)||/(spreadsheet|sheet|excel|csv)/.test(r)?"sheet":zg.has(n)||/(json|xml|yaml|toml)/.test(r)?"data":_g.has(n)||/(javascript|typescript|jsx|tsx|css|html)/.test(r)?"code":Bg.has(n)||/(msword|document|opendocument|rtf|text\/)/.test(r)?"document":"generic"}function qg(e){const t=Kg(e.label,e.mimeType),n=Vg(e.sizeBytes);return{category:t,extension:$g(e.label,e.mimeType),sizeLabel:n,metaBadges:[La[t],n].filter(r=>!!r)}}function Tn(e,t){return h.jsx("span",{className:Q("inline-flex items-center rounded-full border px-2.5 py-1 text-[11px] font-medium",t?"border-white/12 bg-white/10 text-white/82":"border-slate-200/80 bg-slate-950/[0.04] text-slate-600"),children:e},e)}function Ei(e,t){return h.jsx("div",{className:Q("truncate text-[11px]",t?"text-white/58":"text-slate-500"),children:e})}function Li(e,t,n){return h.jsx("span",{className:Q("inline-flex items-center rounded-full border px-2.5 py-1 text-[11px] font-medium",n?t?"border-white/14 bg-white/12 text-white":"border-slate-200/80 bg-white text-slate-700":t?"border-white/10 bg-white/6 text-white/62":"border-slate-200/70 bg-slate-100/80 text-slate-500"),children:e})}function Wg({file:e,isUser:t=!1}){const{category:n,extension:r,metaBadges:i,sizeLabel:s}=qg(e),a=!!e.dataUrl,l=a?e.isImage?"Open preview":"Open file":"Attached",o=r.slice(0,4),u=Q("block overflow-hidden rounded-[1.25rem] border transition duration-200",t?"border-white/12 bg-white/10 text-white shadow-[0_18px_40px_-28px_rgba(15,23,42,0.85)]":"border-slate-200/80 bg-white/95 text-slate-900 shadow-[0_20px_45px_-30px_rgba(15,23,42,0.28)]",a&&(t?"hover:border-white/18 hover:bg-white/13":"hover:border-slate-300 hover:bg-white hover:shadow-[0_24px_50px_-30px_rgba(15,23,42,0.3)]"));if(e.isImage&&e.dataUrl)return h.jsx("a",{href:e.dataUrl,target:"_blank",rel:"noreferrer","aria-label":`Open preview: ${e.label}`,className:Q(u,"group"),children:h.jsxs("figure",{children:[h.jsxs("div",{className:Q("relative overflow-hidden p-2",t?"bg-white/[0.04]":"bg-gradient-to-br from-slate-100 via-white to-slate-100"),children:[h.jsx("img",{src:e.dataUrl,alt:e.label,className:"block max-h-[22rem] w-full rounded-[1rem] object-cover shadow-[0_18px_40px_-26px_rgba(15,23,42,0.55)] transition duration-300 group-hover:scale-[1.01]"}),h.jsxs("div",{className:"pointer-events-none absolute inset-x-4 top-4 flex items-center justify-between",children:[s?Tn(s,t):h.jsx("span",{}),h.jsx("span",{className:Q("inline-flex items-center rounded-full border px-2.5 py-1 text-[11px] font-semibold tracking-[0.22em]",t?"border-white/12 bg-slate-950/20 text-white":Cn[n]),children:o})]})]}),h.jsxs("figcaption",{className:"flex items-start gap-3 p-4",children:[h.jsx("div",{className:Q("flex h-11 w-11 shrink-0 items-center justify-center rounded-[1rem] border text-[11px] font-semibold tracking-[0.22em]",t?"border-white/12 bg-white/10 text-white":Cn[n]),children:o}),h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("div",{className:"truncate text-sm font-semibold leading-5",children:e.label}),h.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:i.map(c=>Tn(c,t))}),h.jsx("div",{className:"mt-2",children:Ei(e.mimeType,t)})]}),Li(l,t,!0)]})]})});const d=h.jsxs("div",{className:"flex items-start gap-3 p-3.5",children:[h.jsx("div",{className:Q("flex h-14 w-14 shrink-0 items-center justify-center rounded-[1rem] border text-xs font-semibold tracking-[0.22em]",t?"border-white/12 bg-white/10 text-white":Cn[n]),children:o}),h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsxs("div",{className:"flex items-start gap-3",children:[h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("div",{className:"truncate text-sm font-semibold leading-5",children:e.label}),h.jsxs("div",{className:Q("mt-1 text-xs",t?"text-white/68":"text-slate-500"),children:[La[n]," attachment"]})]}),Li(l,t,a)]}),h.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:i.map(c=>Tn(c,t))}),h.jsx("div",{className:"mt-2",children:Ei(e.mimeType,t)})]})]});return a?h.jsx("a",{href:e.dataUrl,target:"_blank",rel:"noreferrer","aria-label":`Open file: ${e.label}`,className:Q(u,"group"),children:d}):h.jsx("div",{className:u,children:d})}function Qg(e){return h.jsxs("details",{className:"mt-3",open:!0,children:[h.jsx("summary",{className:Q("cursor-pointer text-xs",e.isUser?"text-primary-100":"text-gray-500"),children:e.label}),h.jsx("pre",{className:Q("mt-2 whitespace-pre-wrap break-words rounded-lg p-2 text-[11px]",e.isUser?"bg-primary-700/60":"bg-gray-100"),children:e.text})]})}function Jt({children:e,className:t}){return h.jsx("div",{className:Q("my-2 rounded-lg border border-amber-200/50 bg-amber-100/30 shadow-sm overflow-hidden text-[12px]","w-[280px] sm:w-[360px] md:w-[480px] min-w-full max-w-full transition-all flex flex-col",t),children:e})}function Zt({children:e,className:t}){return h.jsx("div",{className:Q("border-t border-amber-200/15 bg-amber-50/50 p-3 w-full overflow-hidden",t),children:e})}const Ai={running:{text:"text-amber-500/80",icon:Ui,spin:!0},success:{text:"text-amber-500/80",icon:St,spin:!1},error:{text:"text-amber-500/80",icon:fl,spin:!1},cancelled:{text:"text-amber-500/80",icon:dl,spin:!1}};function Gg({card:e}){const t=Ai[e.statusTone]||Ai.cancelled,n=t.icon;return h.jsxs("span",{className:Q("inline-flex items-center gap-1.5 text-[11px] font-medium leading-none shrink-0",t.text),children:[h.jsx(n,{className:Q("h-3.5 w-3.5",t.spin&&"animate-spin"),strokeWidth:3}),e.statusTone==="running"?e.statusLabel:null]})}function en({card:e,icon:t,expanded:n,canExpand:r,onToggle:i}){var a;const s=(a=e.summary)==null?void 0:a.replace(/^(command|path|args|query|input):\s*/i,"");return h.jsxs("div",{className:Q("flex items-center justify-between px-3 py-2.5 transition-colors bg-transparent",r?"cursor-pointer hover:bg-amber-100/30":""),onClick:i,children:[h.jsxs("div",{className:"flex items-center gap-2 font-mono min-w-0 max-w-[calc(100%-80px)] text-amber-950/80",children:[h.jsx(t,{className:"h-4 w-4 text-amber-600/80 shrink-0",strokeWidth:3}),h.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[h.jsx("span",{className:"font-bold shrink-0 tracking-tight",children:e.toolName}),s&&h.jsxs(h.Fragment,{children:[h.jsx("span",{className:"text-amber-300 font-bold select-none shrink-0",children:"›"}),h.jsx("span",{className:"truncate flex-1 min-w-0 font-normal",title:s,children:s})]})]})]}),h.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[h.jsx(Gg,{card:e}),r&&(n?h.jsx(Vt,{className:"h-4 w-4 text-amber-400/80",strokeWidth:3}):h.jsx(pl,{className:"h-4 w-4 text-amber-400/80",strokeWidth:3}))]})]})}function Xg({card:e}){var p,f,m;const t=((p=e.output)==null?void 0:p.trim())??"",n=e.statusTone==="running",r=!!((f=e.summary)!=null&&f.trim()||t.length>0),i=k.useRef(!r),[s,a]=k.useState(r&&(n||e.statusTone==="error"||t.length<500)),[l,o]=k.useState(!1),u=k.useRef(n);k.useEffect(()=>{i.current&&r&&n&&(a(!0),i.current=!1)},[r,n]),k.useEffect(()=>{u.current&&!n&&!l&&a(!1),u.current=n},[n,l]);const d=()=>{!t&&!n||(a(!s),o(!0))},c=(m=e.summary)==null?void 0:m.replace(/^(command|path|args|query|input):\s*/i,"");return h.jsxs(Jt,{children:[h.jsx(en,{card:e,icon:ml,expanded:s,canExpand:!!t||n,onToggle:d}),s&&h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"px-3 pb-0.5 font-mono w-full max-h-48 overflow-y-auto custom-scrollbar-amber min-h-0 text-[12px]",children:h.jsxs("div",{className:"flex items-start gap-2 leading-relaxed",children:[h.jsx("span",{className:"text-amber-500/50 font-medium shrink-0 select-none mt-[1px]",children:"$"}),h.jsx("div",{className:"flex-1 min-w-0",children:c?h.jsx("span",{className:"text-amber-950/80 break-words whitespace-pre-wrap tracking-tight font-medium",children:c}):h.jsx("div",{className:"h-3 w-32 bg-amber-200/30 rounded animate-pulse mt-2"})})]})}),(t||n&&r)&&h.jsx(Zt,{className:"mt-2",children:h.jsxs("pre",{className:"font-mono text-[12px] text-amber-950/70 whitespace-pre-wrap break-all w-full max-w-full max-h-64 overflow-y-auto overflow-x-hidden min-w-0 custom-scrollbar-amber leading-relaxed",children:[t,n&&h.jsx("span",{className:"inline-block w-1.5 h-3 ml-1 bg-amber-500/60 animate-pulse align-middle"})]})})]})]})}function Yg({card:e}){var y;const t=((y=e.output)==null?void 0:y.trim())??"",n=e.statusTone==="running",[r,i]=k.useState(!1),[s,a]=k.useState(!1),l=k.useRef(n);k.useEffect(()=>{l.current&&!n&&!s&&i(!1),l.current=n},[n,s]);const o=()=>{!t&&!n||(i(!r),a(!0))},u=e.toolName==="edit_file"||e.toolName==="write_file",d=(S,g)=>{if(u){if(S.startsWith("+")&&!S.startsWith("+++"))return h.jsxs("div",{className:"bg-emerald-500/10 text-emerald-700 px-2 py-0.5 w-full break-all whitespace-pre-wrap",children:[h.jsx("span",{className:"select-none opacity-40 mr-2 w-3 inline-block shrink-0",children:"+"}),h.jsx("span",{children:S.slice(1)})]},g);if(S.startsWith("-")&&!S.startsWith("---"))return h.jsxs("div",{className:"bg-rose-500/10 text-rose-700 px-2 py-0.5 w-full break-all whitespace-pre-wrap",children:[h.jsx("span",{className:"select-none opacity-40 mr-2 w-3 inline-block shrink-0",children:"-"}),h.jsx("span",{className:"line-through decoration-rose-400/50",children:S.slice(1)})]},g)}return h.jsxs("div",{className:"px-2 py-0.5 text-amber-950/80 w-full break-all whitespace-pre-wrap",children:[h.jsx("span",{className:"select-none opacity-0 mr-2 w-3 inline-block shrink-0",children:" "}),h.jsx("span",{children:S})]},g)},c=t.split(`
36
- `),p=15,f=c.length>p,m=!r&&f?c.slice(0,p):c;return h.jsxs(Jt,{children:[h.jsx(en,{card:e,icon:u?gl:xl,expanded:r,canExpand:!!t||n,onToggle:o}),r&&t&&h.jsx(Zt,{children:h.jsx("div",{className:"font-mono text-[12px] leading-relaxed py-2 max-h-48 overflow-y-auto overflow-x-hidden min-w-0 custom-scrollbar-amber text-amber-950/80 w-full px-1",children:m.map(d)})})]})}function Jg({card:e}){var u;const t=e.statusTone==="running",[n,r]=k.useState(t),[i,s]=k.useState(!1),a=k.useRef(t),l=((u=e.output)==null?void 0:u.trim())??"";k.useEffect(()=>{a.current&&!t&&!i&&r(!1),a.current=t},[t,i]);const o=()=>{!l&&!t||(r(!n),s(!0))};return h.jsxs(Jt,{children:[h.jsx(en,{card:e,icon:qn,expanded:n,canExpand:!!l||t,onToggle:o}),n&&l&&h.jsx(Zt,{children:h.jsx("pre",{className:"font-mono text-[12px] text-amber-950/70 whitespace-pre-wrap break-all w-full max-w-full max-h-64 overflow-y-auto overflow-x-hidden min-w-0 custom-scrollbar-amber py-2 leading-relaxed",children:l})})]})}function Zg({card:e}){var d;const t=((d=e.output)==null?void 0:d.trim())??"",n=e.statusTone==="running",[r,i]=k.useState(n),[s,a]=k.useState(!1),l=k.useRef(n),o=e.kind==="result"||e.hasResult;k.useEffect(()=>{l.current&&!n&&!s&&i(!1),l.current=n},[n,s]);const u=()=>{o&&(i(!r),a(!0))};return h.jsxs(Jt,{children:[h.jsx(en,{card:e,icon:yl,expanded:r,canExpand:o,onToggle:u}),r&&t&&h.jsx(Zt,{children:h.jsx("pre",{className:"mt-1 text-amber-950/80 whitespace-pre-wrap break-all overflow-y-auto overflow-x-hidden max-h-64 custom-scrollbar-amber py-1 w-full min-w-0 max-w-full leading-relaxed",children:t})})]})}function ex(e){const t=e.toLowerCase();return t==="exec"||t==="execute_command"||t==="bash"||t==="shell"||t.includes("run_")}function tx(e){const t=e.toLowerCase();return t==="read_file"||t==="write_file"||t==="edit_file"||t==="apply_patch"}function nx(e){const t=e.toLowerCase();return t==="grep_search"||t==="find_files"||t.includes("search")}function rx({card:e}){return ex(e.toolName)?h.jsx(Xg,{card:e}):tx(e.toolName)?h.jsx(Yg,{card:e}):nx(e.toolName)?h.jsx(Jg,{card:e}):h.jsx(Zg,{card:e})}function ix(e){return h.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-2.5 py-2 text-xs text-gray-600",children:[h.jsxs("div",{className:"font-semibold text-gray-700",children:[e.label,": ",e.rawType]}),e.text?h.jsx("pre",{className:"mt-1 whitespace-pre-wrap break-words text-[11px] text-gray-500",children:e.text}):null]})}function sx(e){const{message:t,texts:n}=e,{role:r}=t,i=r==="user";return h.jsx("div",{className:Q("inline-block w-fit max-w-full rounded-2xl border px-4 py-3 shadow-sm",i?"border-primary bg-primary text-white":r==="assistant"?"border-gray-200 bg-white text-gray-900":"border-orange-200/80 bg-orange-50/70 text-gray-900"),children:h.jsx("div",{className:"space-y-2",children:t.parts.map((s,a)=>s.type==="markdown"?h.jsx(Fg,{text:s.text,role:r,texts:n},`markdown-${a}`):s.type==="reasoning"?h.jsx(Qg,{label:s.label,text:s.text,isUser:i},`reasoning-${a}`):s.type==="tool-card"?h.jsx("div",{className:"mt-0.5",children:h.jsx(rx,{card:s.card})},`tool-${a}`):s.type==="file"?h.jsx(Wg,{file:s.file,isUser:i},`file-${a}`):s.type==="unknown"?h.jsx(ix,{label:s.label,rawType:s.rawType,text:s.text},`unknown-${a}`):null)})})}function ax(e){return h.jsxs("div",{className:Q("px-1 text-[11px] leading-4 text-gray-400",e.isUser?"text-right":"text-left"),children:[e.roleLabel," · ",e.timestampLabel]})}const lx=/\u200B|\u200C|\u200D|\u2060|\uFEFF/g;function ox(e){const t=e.trim();return t?t.replace(lx,"").trim().length>0:!1}function ux(e){return e.parts.some(t=>t.type==="markdown"||t.type==="reasoning"?ox(t.text):!0)}function cx(e){const t=e.messages.filter(ux),n=t.some(r=>r.role==="assistant"&&(r.status==="streaming"||r.status==="pending"));return h.jsxs("div",{className:Q("space-y-5",e.className),children:[t.map(r=>{const i=r.role==="user";return h.jsxs("div",{className:Q("flex gap-3",i?"justify-end":"justify-start"),children:[i?null:h.jsx(an,{role:r.role}),h.jsxs("div",{className:Q("w-fit max-w-[92%] space-y-2",i&&"flex flex-col items-end"),children:[h.jsx(sx,{message:r,texts:e.texts}),h.jsx(ax,{roleLabel:r.roleLabel,timestampLabel:r.timestampLabel,isUser:i})]}),i?h.jsx(an,{role:r.role}):null]},r.id)}),e.isSending&&!n?h.jsxs("div",{className:"flex justify-start gap-3",children:[h.jsx(an,{role:"assistant"}),h.jsx("div",{className:"rounded-2xl border border-gray-200 bg-white px-4 py-3 text-sm text-gray-500 shadow-sm",children:e.texts.typingLabel})]}):null]})}const hx=10;function Ri(e){e.scrollTop=e.scrollHeight}function dx(e){const t=k.useRef(!0),n=k.useRef(!1),r=k.useRef(null),i=k.useRef(!1),s=k.useCallback(()=>{if(n.current){n.current=!1;return}const a=e.scrollRef.current;if(!a)return;const l=a.scrollHeight-a.scrollTop-a.clientHeight;t.current=l<=(e.stickyThresholdPx??hx)},[e.scrollRef,e.stickyThresholdPx]);return k.useEffect(()=>{r.current!==e.resetKey&&(r.current=e.resetKey,t.current=!0,i.current=!0)},[e.resetKey]),k.useLayoutEffect(()=>{if(!i.current||e.isLoading||!e.hasContent)return;const a=e.scrollRef.current;a&&(i.current=!1,n.current=!0,Ri(a))},[e.hasContent,e.isLoading,e.scrollRef]),k.useLayoutEffect(()=>{if(!t.current||!e.hasContent)return;const a=e.scrollRef.current;a&&(n.current=!0,Ri(a))},[e.contentVersion,e.hasContent,e.scrollRef]),{onScroll:s}}function Aa(){return Zn()}function fx(e){return Ru(e)}function ji(e){return Pu(e)}function Pi(e){return qt(e,"skill")}function px(e){return qt(e,"file")}function mx(e,t,n){const r=new Set(t),i=er(e,o=>o.tokenKind==="skill"&&!r.has(o.tokenKey)),s=qt(i,"skill"),a=new Map(n.map(o=>[o.spec,o])),l=t.filter(o=>!s.includes(o)).map(o=>{var u;return Jn({tokenKind:"skill",tokenKey:o,label:((u=a.get(o))==null?void 0:u.label)||o})});return l.length===0?i:Je([...i,...l])}function Di(e,t){const n=new Set(t.map(r=>r.id));return er(e,r=>r.tokenKind==="file"&&!n.has(r.tokenKey))}function gx(e,t){const n=new Set(px(e));return t.filter(r=>n.has(r.id))}function xx(e,t){const n=new Map(t.map(i=>[i.id,i])),r=[];for(const i of e){if(i.type==="text"){i.text.length>0&&r.push({type:"text",text:i.text});continue}if(i.tokenKind!=="file")continue;const s=n.get(i.tokenKey);s&&r.push({type:"file",name:s.name,mimeType:s.mimeType,...s.assetUri?{assetUri:s.assetUri}:{},...s.url?{url:s.url}:{},...s.contentBase64?{contentBase64:s.contentBase64}:{},sizeBytes:s.sizeBytes})}return r}const yx={isProviderStateResolved:!1,composerNodes:Aa(),attachments:[],draft:"",pendingSessionType:"native",defaultSessionType:"native",canStopGeneration:!1,stopDisabledReason:null,sendError:null,isSending:!1,modelOptions:[],selectedModel:"",selectedThinkingLevel:null,sessionTypeOptions:[],selectedSessionType:void 0,stopSupported:!1,stopReason:void 0,canEditSessionType:!1,sessionTypeUnavailable:!1,skillRecords:[],isSkillsLoading:!1,selectedSkills:[]},Y=$t(e=>({snapshot:yx,setSnapshot:t=>e(n=>({snapshot:{...n.snapshot,...t}}))})),bx={sessionRunStatusByKey:new Map,isLocallyRunning:!1,activeBackendRunId:null},Un=$t(e=>({snapshot:bx,setSnapshot:t=>e(n=>({snapshot:{...n.snapshot,...t}}))})),Sx={sessions:[],selectedSessionKey:null,selectedAgentId:"main",query:"",isLoading:!1},ae=$t(e=>({snapshot:Sx,setSnapshot:t=>e(n=>({snapshot:{...n.snapshot,...t}}))}));function kx(e){const t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),r=n-864e5,i=n-7*864e5,s=[],a=[],l=[],o=[];for(const d of e){const c=new Date(d.updatedAt).getTime();c>=n?s.push(d):c>=r?a.push(d):c>=i?l.push(d):o.push(d)}const u=[];return s.length>0&&u.push({label:C("chatSidebarToday"),sessions:s}),a.length>0&&u.push({label:C("chatSidebarYesterday"),sessions:a}),l.length>0&&u.push({label:C("chatSidebarPrevious7Days"),sessions:l}),o.length>0&&u.push({label:C("chatSidebarOlder"),sessions:o}),u}function wx(e){if(e.label&&e.label.trim())return e.label.trim();const t=e.key.split(":");return t[t.length-1]||e.key}function vx(e,t){const n=e.trim().toLowerCase();if(!n||n==="native")return null;const r=t.find(i=>i.value.trim().toLowerCase()===n);return r!=null&&r.label.trim()?r.label.trim():n.split(/[-_]+/g).filter(Boolean).map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}function Cx(e){var t;return e.ready===!1?((t=e.reasonMessage)==null?void 0:t.trim())||C("statusSetup"):C("statusReady")}const Tx=[{target:"/cron",label:()=>C("chatSidebarScheduledTasks"),icon:Wn},{target:"/skills",label:()=>C("chatSidebarSkills"),icon:Kn}];function Ix(){var H,P;const e=Yn(),t=jl(),[n,r]=k.useState(!1),[i,s]=k.useState(null),[a,l]=k.useState(""),[o,u]=k.useState(null),d=Y(v=>v.snapshot),c=ae(v=>v.snapshot),p=Un(v=>v.snapshot),f=Pl(v=>v.connectionStatus),{language:m,setLanguage:y}=Gn(),{theme:S,setTheme:g}=Dl(),I=au(),M=C(((H=br.find(v=>v.value===S))==null?void 0:H.labelKey)??"themeWarm"),D=((P=Sr.find(v=>v.value===m))==null?void 0:P.label)??m,O=k.useMemo(()=>kx(c.sessions),[c.sessions]),T=d.defaultSessionType||"native",_=k.useMemo(()=>d.sessionTypeOptions.filter(v=>v.value!==T),[T,d.sessionTypeOptions]),z=v=>{m!==v&&(y(v),window.location.reload())},B=(v,j)=>{const{sessions:$}=ae.getState().snapshot;ae.getState().setSnapshot({sessions:$.map(te=>te.key===v?{...te,...j?{label:j}:{label:void 0}}:te)})},w=v=>{var j;s(v.key),l(((j=v.label)==null?void 0:j.trim())??"")},E=()=>{s(null),l(""),u(null)},L=async v=>{var te;const j=a.trim(),$=((te=v.label)==null?void 0:te.trim())??"";if(j===$){E();return}u(v.key);try{await I({sessionKey:v.key,label:j||null}),B(v.key,j||void 0),E()}catch{u(null)}};return h.jsxs("aside",{className:"w-[280px] shrink-0 flex flex-col h-full bg-secondary border-r border-gray-200/60",children:[h.jsx("div",{className:"px-5 pt-5 pb-3",children:h.jsx(Ol,{className:"flex items-center gap-2.5 min-w-0",suffix:h.jsx(iu,{status:f})})}),h.jsx("div",{className:"px-4 pb-3",children:h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsxs(Oe,{variant:"primary",className:ve("min-w-0 rounded-xl",_.length>0?"flex-1 rounded-r-md":"w-full"),onClick:()=>{r(!1),e.chatSessionListManager.createSession(T)},children:[h.jsx(bl,{className:"h-4 w-4 mr-2"}),C("chatSidebarNewTask")]}),_.length>0?h.jsxs(mo,{open:n,onOpenChange:r,children:[h.jsx(go,{asChild:!0,children:h.jsx(Oe,{variant:"primary",size:"icon",className:"h-9 w-10 shrink-0 rounded-xl rounded-l-md","aria-label":C("chatSessionTypeLabel"),children:h.jsx(Vt,{className:"h-4 w-4"})})}),h.jsxs(xo,{align:"end",className:"w-64 p-2",children:[h.jsx("div",{className:"px-2 py-1 text-[11px] font-medium uppercase tracking-wider text-gray-400",children:C("chatSessionTypeLabel")}),h.jsx("div",{className:"mt-1 space-y-1",children:_.map(v=>h.jsxs("button",{type:"button",onClick:()=>{e.chatSessionListManager.createSession(v.value),r(!1)},className:"w-full rounded-xl px-3 py-2 text-left transition-colors hover:bg-gray-100",children:[h.jsxs("div",{className:"flex items-center justify-between gap-3",children:[h.jsx("div",{className:"text-[13px] font-medium text-gray-900",children:v.label}),h.jsx("span",{className:ve("shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold",v.ready===!1?"bg-amber-100 text-amber-800":"bg-emerald-100 text-emerald-700"),children:v.ready===!1?C("statusSetup"):C("statusReady")})]}),h.jsx("div",{className:"mt-0.5 text-[11px] text-gray-500",children:Cx(v)})]},v.value))})]})]}):null]})}),h.jsx("div",{className:"px-4 pb-3",children:h.jsxs("div",{className:"relative",children:[h.jsx(qn,{className:"h-3.5 w-3.5 absolute left-3 top-2.5 text-gray-400"}),h.jsx(Qn,{value:c.query,onChange:v=>e.chatSessionListManager.setQuery(v.target.value),placeholder:C("chatSidebarSearchPlaceholder"),className:"pl-8 h-9 rounded-lg text-xs"})]})}),h.jsx("div",{className:"px-3 pb-2",children:h.jsx("ul",{className:"space-y-0.5",children:Tx.map(v=>h.jsx("li",{children:h.jsx(kr,{to:v.target,label:v.label(),icon:v.icon,density:"compact"})},v.target))})}),h.jsx("div",{className:"mx-4 border-t border-gray-200/60"}),h.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto custom-scrollbar px-3 py-2",children:c.isLoading?h.jsx("div",{className:"text-xs text-gray-500 p-3",children:C("sessionsLoading")}):O.length===0?h.jsxs("div",{className:"p-4 text-center",children:[h.jsx(Sl,{className:"h-6 w-6 mx-auto mb-2 text-gray-300"}),h.jsx("div",{className:"text-xs text-gray-500",children:C("sessionsEmpty")})]}):h.jsx("div",{className:"space-y-3",children:O.map(v=>h.jsxs("div",{children:[h.jsx("div",{className:"px-2 py-1 text-[11px] font-medium text-gray-400 uppercase tracking-wider",children:v.label}),h.jsx("div",{className:"space-y-0.5",children:v.sessions.map(j=>{const $=c.selectedSessionKey===j.key,te=p.sessionRunStatusByKey.get(j.key),pe=vx(j.sessionType,d.sessionTypeOptions),x=i===j.key,le=o===j.key;return h.jsx(su,{session:j,active:$,runStatus:te,sessionTypeLabel:pe,title:wx(j),isEditing:x,draftLabel:a,isSaving:le,onSelect:()=>e.chatSessionListManager.selectSession(j.key),onStartEditing:()=>w(j),onDraftLabelChange:l,onSave:()=>L(j),onCancel:E},j.key)})})]},v.label))})}),h.jsxs("div",{className:"px-3 py-3 border-t border-gray-200/60 space-y-0.5",children:[h.jsx(kr,{to:"/settings",label:C("settings"),icon:kl,density:"compact"}),h.jsx(Fl,{onClick:()=>t.open(void 0,{kind:"docs",newTab:!0,title:"Docs"}),icon:wl,label:C("docBrowserHelp"),density:"compact"}),h.jsx(wr,{value:S,onValueChange:v=>g(v),icon:vl,label:C("theme"),valueLabel:M,density:"compact",children:br.map(v=>h.jsx(dt,{value:v.value,className:"text-xs",children:C(v.labelKey)},v.value))}),h.jsx(wr,{value:m,onValueChange:v=>z(v),icon:Cl,label:C("language"),valueLabel:D,density:"compact",children:Sr.map(v=>h.jsx(dt,{value:v.value,className:"text-xs",children:v.label},v.value))})]})]})}function Mx(e,t){if(!e||typeof e!="object"||Array.isArray(e))return t;const n=e.error;if(!n||typeof n!="object"||Array.isArray(n))return t;const r=n.message;return typeof r=="string"&&r.trim().length>0?r:t}async function Nx(e){const t=new FormData;for(const i of e)t.append("files",i);const n=await fetch(`${Ji}/api/ncp/assets`,{method:"POST",body:t,credentials:"include"}),r=await n.json();if(!n.ok||!r.ok)throw new Error(Mx(r,"Failed to put assets."));return r.data.assets.map(i=>({id:i.id,name:i.name,mimeType:i.mimeType,sizeBytes:i.sizeBytes,assetUri:i.assetUri,url:i.url}))}const Me={exactSpec:1200,exactLabel:1150,prefixSpec:1e3,prefixLabel:950,prefixToken:900,containsSpec:800,containsLabel:760,containsDescription:500,subsequence:300,fallback:1};function jt(e){return(e??"").trim().toLowerCase()}function Oi(e,t){if(!e||!t)return!1;let n=0;for(const r of t)if(r===e[n]&&(n+=1,n>=e.length))return!0;return!1}function Ex(e,t){const n=jt(t);if(!n)return Me.fallback;const r=jt(e.key),i=jt(e.label||e.key),s=jt(`${e.descriptionZh??""} ${e.description??""}`),a=i.split(/[\s/_-]+/).filter(Boolean);return r===n?Me.exactSpec:i===n?Me.exactLabel:r.startsWith(n)?Me.prefixSpec:i.startsWith(n)?Me.prefixLabel:a.some(l=>l.startsWith(n))?Me.prefixToken:r.includes(n)?Me.containsSpec:i.includes(n)?Me.containsLabel:s.includes(n)?Me.containsDescription:Oi(n,i)||Oi(n,r)?Me.subsequence:0}function Lx(e,t,n){const r=new Intl.Collator(void 0,{sensitivity:"base",numeric:!0});return e.map((i,s)=>({record:i,order:s,score:Ex(i,t)})).filter(i=>i.score>0).sort((i,s)=>{if(s.score!==i.score)return s.score-i.score;const a=(i.record.label||i.record.key).trim(),l=(s.record.label||s.record.key).trim(),o=r.compare(a,l);return o!==0?o:i.order-s.order}).map(({record:i})=>({key:`skill:${i.key}`,title:i.label||i.key,subtitle:n.slashSkillSubtitle,description:(i.descriptionZh??i.description??"").trim()||n.noSkillDescription,detailLines:[`${n.slashSkillSpecLabel}: ${i.key}`],value:i.key}))}function Ax(e){return e.map(t=>({key:t.key,label:t.label,description:t.descriptionZh||t.description||"",badgeLabel:t.badgeLabel}))}function Rx(e){return{title:e.texts.title,searchPlaceholder:e.texts.searchPlaceholder,emptyLabel:e.texts.emptyLabel,loadingLabel:e.texts.loadingLabel,isLoading:e.isLoading,manageLabel:e.texts.manageLabel,manageHref:"/marketplace/skills",options:Ax(e.skillRecords),selectedKeys:e.selectedSkills,onSelectedKeysChange:e.onSelectedKeysChange}}function jx(e){return!e.isModelOptionsLoading&&!e.isModelOptionsEmpty?null:e.isModelOptionsLoading?{tone:"neutral",loading:!0}:{tone:"warning",text:e.texts.noModelOptionsLabel,actionLabel:e.texts.configureProviderLabel,onAction:e.onGoToProviders}}function Px(e){const t=e.modelOptions.find(s=>s.value===e.selectedModel),n=e.modelOptions[0],r=t??n;return{key:"model",value:e.hasModelOptions?r==null?void 0:r.value:void 0,placeholder:e.texts.modelSelectPlaceholder,selectedLabel:r?`${r.providerLabel}/${r.modelLabel}`:void 0,icon:"sparkles",options:e.modelOptions.map(s=>({value:s.value,label:s.modelLabel,description:s.providerLabel})),disabled:!e.hasModelOptions,loading:e.isModelOptionsLoading,emptyLabel:e.texts.modelNoOptionsLabel,onValueChange:e.onValueChange}}function Dx(e){const t=[];for(const n of["off",...e])t.includes(n)||t.push(n);return t}function Ox(e){if(e.supportedLevels.length===0)return null;const t=Dx(e.supportedLevels),n=t.includes("off")?"off":t[0],r=e.selectedThinkingLevel&&t.includes(e.selectedThinkingLevel)&&e.selectedThinkingLevel||e.defaultThinkingLevel&&t.includes(e.defaultThinkingLevel)&&e.defaultThinkingLevel||n;return{key:"thinking",value:r,placeholder:e.texts.thinkingLabels[r],selectedLabel:e.texts.thinkingLabels[r],icon:"brain",options:t.map(i=>({value:i,label:e.texts.thinkingLabels[i]})),onValueChange:i=>e.onValueChange(i)}}function Fx(){return{off:C("chatThinkingLevelOff"),minimal:C("chatThinkingLevelMinimal"),low:C("chatThinkingLevelLow"),medium:C("chatThinkingLevelMedium"),high:C("chatThinkingLevelHigh"),adaptive:C("chatThinkingLevelAdaptive"),xhigh:C("chatThinkingLevelXhigh")}}function _x(e,t){return e.map(n=>({key:n.spec,label:n.label||n.spec,description:n.description,descriptionZh:n.descriptionZh,badgeLabel:n.origin==="builtin"?t:void 0}))}function zx(e){return e.map(t=>({value:t.value,modelLabel:t.modelLabel,providerLabel:t.providerLabel,thinkingCapability:t.thinkingCapability?{supported:t.thinkingCapability.supported,default:t.thinkingCapability.default??null}:null}))}function Bx(){var w;const e=Yn(),{language:t}=Gn(),n=Y(E=>E.snapshot),[r,i]=k.useState(null),s=k.useRef(null),a=k.useRef(null),l=k.useMemo(()=>C("chatSkillsPickerOfficial"),[t]),o=k.useMemo(()=>({slashSkillSubtitle:C("chatSlashTypeSkill"),slashSkillSpecLabel:C("chatSlashSkillSpec"),noSkillDescription:C("chatSkillsPickerNoDescription")}),[t]),u=k.useMemo(()=>_x(n.skillRecords,l),[n.skillRecords,l]),d=k.useMemo(()=>zx(n.modelOptions),[n.modelOptions]),c=d.length>0,p=!n.isProviderStateResolved&&!c,f=n.isProviderStateResolved&&!c,m=(p||f)&&!n.isSending||n.sessionTypeUnavailable,y=typeof e.chatInputManager.addAttachments=="function",S=p?"":c?C("chatInputPlaceholder"):C("chatModelNoOptions"),g=k.useMemo(()=>Lx(u,r??"",o),[r,u,o]),I=d.find(E=>E.value===n.selectedModel),M=I==null?void 0:I.thinkingCapability,D=(M==null?void 0:M.supported)??[],O=n.stopDisabledReason==="__preparing__"?C("chatStopPreparing"):((w=n.stopDisabledReason)==null?void 0:w.trim())||C("chatStopUnavailable"),T=k.useCallback(E=>{if(E==="unsupported-type"){ht.error(C("chatInputAttachmentUnsupported"));return}if(E==="too-large"){ht.error(C("chatInputAttachmentTooLarge").replace("{maxMb}",String(as/(1024*1024))));return}ht.error(C("chatInputAttachmentReadFailed"))},[]),_=k.useCallback(async E=>{var H,P,v;if(!y||E.length===0)return;const L=await nu(E,{uploadBatch:Nx});if(L.attachments.length>0){const j=((P=(H=e.chatInputManager).addAttachments)==null?void 0:P.call(H,L.attachments))??[];j.length>0&&((v=s.current)==null||v.insertFileTokens(j.map($=>({tokenKey:$.id,label:$.name}))))}L.rejected.length>0&&T(L.rejected[0].reason)},[y,e.chatInputManager,T]),z=[Px({modelOptions:d,selectedModel:n.selectedModel,isModelOptionsLoading:p,hasModelOptions:c,onValueChange:e.chatInputManager.selectModel,texts:{modelSelectPlaceholder:C("chatSelectModel"),modelNoOptionsLabel:C("chatModelNoOptions")}}),Ox({supportedLevels:D,selectedThinkingLevel:n.selectedThinkingLevel,defaultThinkingLevel:(M==null?void 0:M.default)??null,onValueChange:E=>e.chatInputManager.selectThinkingLevel(E),texts:{thinkingLabels:Fx()}})].filter(E=>E!==null),B=Rx({skillRecords:u,selectedSkills:n.selectedSkills,isLoading:n.isSkillsLoading,onSelectedKeysChange:e.chatInputManager.selectSkills,texts:{title:C("chatSkillsPickerTitle"),searchPlaceholder:C("chatSkillsPickerSearchPlaceholder"),emptyLabel:C("chatSkillsPickerEmpty"),loadingLabel:C("sessionsLoading"),manageLabel:C("chatSkillsPickerManage")}});return h.jsxs(h.Fragment,{children:[h.jsx(Cs,{ref:s,composer:{nodes:n.composerNodes,placeholder:S,disabled:m,onNodesChange:e.chatInputManager.setComposerNodes,...y?{onFilesAdd:_}:{},onSlashQueryChange:i},slashMenu:{isLoading:n.isSkillsLoading,items:g,texts:{slashLoadingLabel:C("chatSlashLoading"),slashSectionLabel:C("chatSlashSectionSkills"),slashEmptyLabel:C("chatSlashNoResult"),slashHintLabel:C("chatSlashHint"),slashSkillHintLabel:C("chatSlashSkillHint")}},hint:jx({isModelOptionsLoading:p,isModelOptionsEmpty:f,onGoToProviders:e.chatInputManager.goToProviders,texts:{noModelOptionsLabel:C("chatModelNoOptions"),configureProviderLabel:C("chatGoConfigureProvider")}}),toolbar:{selects:z,accessories:[{key:"attach",label:C("chatInputAttach"),icon:"paperclip",iconOnly:!0,disabled:!y||m||n.isSending,...y?{onClick:()=>{var E;return(E=a.current)==null?void 0:E.click()}}:{tooltip:C("chatInputAttachComingSoon")}}],skillPicker:B,actions:{sendError:n.sendError,isSending:n.isSending,canStopGeneration:n.canStopGeneration,sendDisabled:n.draft.trim().length===0&&n.attachments.length===0||!c||n.sessionTypeUnavailable,stopDisabled:!n.canStopGeneration,stopHint:O,sendButtonLabel:C("chatSend"),stopButtonLabel:C("chatStop"),onSend:e.chatInputManager.send,onStop:e.chatInputManager.stop}}}),y?h.jsx("input",{ref:a,type:"file",multiple:!0,className:"hidden",onChange:async E=>{const L=Array.from(E.target.files??[]);E.currentTarget.value="",await _(L)}}):null]})}const Hx=["cmd","command","query","q","path","url","to","channel","agentId","sessionKey"];function Fi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Vn(e,t=2400){return e.length<=t?e:`${e.slice(0,t)}
35
+ `)?h.jsx("code",{...s,className:Q("chat-inline-code",r),children:i}):h.jsx(jg,{className:r,texts:e.texts,children:i})}}),[e.texts]);return h.jsx("div",{className:Q("chat-markdown",t?"chat-markdown-user":"chat-markdown-assistant"),children:h.jsx(hp,{skipHtml:!0,remarkPlugins:[Cg],components:n,children:Dg(e.text)})})}const La={archive:"Archive",audio:"Audio",code:"Code",data:"Data",document:"Document",generic:"File",image:"Image",pdf:"PDF",sheet:"Sheet",video:"Video"},Cn={archive:"border-amber-200/80 bg-amber-100 text-amber-700",audio:"border-fuchsia-200/80 bg-fuchsia-100 text-fuchsia-700",code:"border-cyan-200/80 bg-cyan-100 text-cyan-700",data:"border-slate-200/80 bg-slate-100 text-slate-700",document:"border-blue-200/80 bg-blue-100 text-blue-700",generic:"border-slate-200/80 bg-slate-100 text-slate-700",image:"border-emerald-200/80 bg-emerald-100 text-emerald-700",pdf:"border-rose-200/80 bg-rose-100 text-rose-700",sheet:"border-lime-200/80 bg-lime-100 text-lime-700",video:"border-violet-200/80 bg-violet-100 text-violet-700"},_g=new Set(["c","cpp","css","go","html","java","js","jsx","md","php","py","rb","rs","sh","sql","svg","ts","tsx"]),zg=new Set(["graphql","json","toml","xml","yaml","yml"]),Bg=new Set(["doc","docx","odt","pages","rtf","txt"]),Hg=new Set(["csv","numbers","ods","tsv","xls","xlsx"]),Ug=new Set(["7z","bz2","gz","rar","tar","tgz","zip"]);function Vg(e){if(!Number.isFinite(e)||e==null||e<0)return null;if(e===0)return"0 B";const t=["B","KB","MB","GB","TB"];let n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;const i=n>=10||r===0?0:1;return`${n.toFixed(i).replace(/\.0$/,"")} ${t[r]}`}function $g(e,t){var s;const n=/\.([a-z0-9]{1,12})$/i.exec(e.trim());if(n!=null&&n[1])return n[1].toUpperCase();const i=(s=(t.split("/")[1]??"").split(/[+.;-]/)[0])==null?void 0:s.trim();return i?i.slice(0,6).toUpperCase():"FILE"}function Kg(e,t){var i,s;const n=((s=(i=/\.([a-z0-9]{1,12})$/i.exec(e.trim()))==null?void 0:i[1])==null?void 0:s.toLowerCase())??"",r=t.toLowerCase();return r.startsWith("image/")?"image":r.startsWith("audio/")?"audio":r.startsWith("video/")?"video":r.includes("pdf")||n==="pdf"?"pdf":Ug.has(n)||/(zip|tar|gzip|rar|compressed|archive)/.test(r)?"archive":Hg.has(n)||/(spreadsheet|sheet|excel|csv)/.test(r)?"sheet":zg.has(n)||/(json|xml|yaml|toml)/.test(r)?"data":_g.has(n)||/(javascript|typescript|jsx|tsx|css|html)/.test(r)?"code":Bg.has(n)||/(msword|document|opendocument|rtf|text\/)/.test(r)?"document":"generic"}function qg(e){const t=Kg(e.label,e.mimeType),n=Vg(e.sizeBytes);return{category:t,extension:$g(e.label,e.mimeType),sizeLabel:n,metaBadges:[La[t],n].filter(r=>!!r)}}function Tn(e,t){return h.jsx("span",{className:Q("inline-flex items-center rounded-full border px-2.5 py-1 text-[11px] font-medium",t?"border-white/12 bg-white/10 text-white/82":"border-slate-200/80 bg-slate-950/[0.04] text-slate-600"),children:e},e)}function Ei(e,t){return h.jsx("div",{className:Q("truncate text-[11px]",t?"text-white/58":"text-slate-500"),children:e})}function Li(e,t,n){return h.jsx("span",{className:Q("inline-flex items-center rounded-full border px-2.5 py-1 text-[11px] font-medium",n?t?"border-white/14 bg-white/12 text-white":"border-slate-200/80 bg-white text-slate-700":t?"border-white/10 bg-white/6 text-white/62":"border-slate-200/70 bg-slate-100/80 text-slate-500"),children:e})}function Wg({file:e,isUser:t=!1}){const{category:n,extension:r,metaBadges:i,sizeLabel:s}=qg(e),a=!!e.dataUrl,l=a?e.isImage?"Open preview":"Open file":"Attached",o=r.slice(0,4),u=Q("block overflow-hidden rounded-[1.25rem] border transition duration-200",t?"border-white/12 bg-white/10 text-white shadow-[0_18px_40px_-28px_rgba(15,23,42,0.85)]":"border-slate-200/80 bg-white/95 text-slate-900 shadow-[0_20px_45px_-30px_rgba(15,23,42,0.28)]",a&&(t?"hover:border-white/18 hover:bg-white/13":"hover:border-slate-300 hover:bg-white hover:shadow-[0_24px_50px_-30px_rgba(15,23,42,0.3)]"));if(e.isImage&&e.dataUrl)return h.jsx("a",{href:e.dataUrl,target:"_blank",rel:"noreferrer","aria-label":`Open preview: ${e.label}`,className:Q(u,"group"),children:h.jsxs("figure",{children:[h.jsxs("div",{className:Q("relative overflow-hidden p-2",t?"bg-white/[0.04]":"bg-gradient-to-br from-slate-100 via-white to-slate-100"),children:[h.jsx("img",{src:e.dataUrl,alt:e.label,className:"block max-h-[22rem] w-full rounded-[1rem] object-cover shadow-[0_18px_40px_-26px_rgba(15,23,42,0.55)] transition duration-300 group-hover:scale-[1.01]"}),h.jsxs("div",{className:"pointer-events-none absolute inset-x-4 top-4 flex items-center justify-between",children:[s?Tn(s,t):h.jsx("span",{}),h.jsx("span",{className:Q("inline-flex items-center rounded-full border px-2.5 py-1 text-[11px] font-semibold tracking-[0.22em]",t?"border-white/12 bg-slate-950/20 text-white":Cn[n]),children:o})]})]}),h.jsxs("figcaption",{className:"flex items-start gap-3 p-4",children:[h.jsx("div",{className:Q("flex h-11 w-11 shrink-0 items-center justify-center rounded-[1rem] border text-[11px] font-semibold tracking-[0.22em]",t?"border-white/12 bg-white/10 text-white":Cn[n]),children:o}),h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("div",{className:"truncate text-sm font-semibold leading-5",children:e.label}),h.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:i.map(c=>Tn(c,t))}),h.jsx("div",{className:"mt-2",children:Ei(e.mimeType,t)})]}),Li(l,t,!0)]})]})});const d=h.jsxs("div",{className:"flex items-start gap-3 p-3.5",children:[h.jsx("div",{className:Q("flex h-14 w-14 shrink-0 items-center justify-center rounded-[1rem] border text-xs font-semibold tracking-[0.22em]",t?"border-white/12 bg-white/10 text-white":Cn[n]),children:o}),h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsxs("div",{className:"flex items-start gap-3",children:[h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("div",{className:"truncate text-sm font-semibold leading-5",children:e.label}),h.jsxs("div",{className:Q("mt-1 text-xs",t?"text-white/68":"text-slate-500"),children:[La[n]," attachment"]})]}),Li(l,t,a)]}),h.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:i.map(c=>Tn(c,t))}),h.jsx("div",{className:"mt-2",children:Ei(e.mimeType,t)})]})]});return a?h.jsx("a",{href:e.dataUrl,target:"_blank",rel:"noreferrer","aria-label":`Open file: ${e.label}`,className:Q(u,"group"),children:d}):h.jsx("div",{className:u,children:d})}function Qg(e){return h.jsxs("details",{className:"mt-3",open:!0,children:[h.jsx("summary",{className:Q("cursor-pointer text-xs",e.isUser?"text-primary-100":"text-gray-500"),children:e.label}),h.jsx("pre",{className:Q("mt-2 whitespace-pre-wrap break-words rounded-lg p-2 text-[11px]",e.isUser?"bg-primary-700/60":"bg-gray-100"),children:e.text})]})}function Jt({children:e,className:t}){return h.jsx("div",{className:Q("my-2 rounded-lg border border-amber-200/50 bg-amber-100/30 shadow-sm overflow-hidden text-[12px]","w-[280px] sm:w-[360px] md:w-[480px] min-w-full max-w-full transition-all flex flex-col",t),children:e})}function Zt({children:e,className:t}){return h.jsx("div",{className:Q("border-t border-amber-200/15 bg-amber-50/50 px-3 pt-1 pb-2 w-full overflow-hidden",t),children:e})}const Ai={running:{text:"text-amber-500/80",icon:Ui,spin:!0},success:{text:"text-amber-500/80",icon:St,spin:!1},error:{text:"text-amber-500/80",icon:fl,spin:!1},cancelled:{text:"text-amber-500/80",icon:dl,spin:!1}};function Gg({card:e}){const t=Ai[e.statusTone]||Ai.cancelled,n=t.icon;return h.jsxs("span",{className:Q("inline-flex items-center gap-1.5 text-[11px] font-medium leading-none shrink-0",t.text),children:[h.jsx(n,{className:Q("h-3.5 w-3.5",t.spin&&"animate-spin"),strokeWidth:3}),e.statusTone==="running"?e.statusLabel:null]})}function en({card:e,icon:t,expanded:n,canExpand:r,onToggle:i}){var a;const s=(a=e.summary)==null?void 0:a.replace(/^(command|path|args|query|input):\s*/i,"");return h.jsxs("div",{className:Q("flex items-center justify-between px-3 py-2.5 transition-colors bg-transparent",r?"cursor-pointer hover:bg-amber-100/30":""),onClick:i,children:[h.jsxs("div",{className:"flex items-center gap-2 font-mono min-w-0 max-w-[calc(100%-80px)] text-amber-950/80",children:[h.jsx(t,{className:"h-4 w-4 text-amber-600/80 shrink-0",strokeWidth:3}),h.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[h.jsx("span",{className:"font-bold shrink-0 tracking-tight",children:e.toolName}),s&&h.jsxs(h.Fragment,{children:[h.jsx("span",{className:"text-amber-300 font-bold select-none shrink-0",children:"›"}),h.jsx("span",{className:"truncate flex-1 min-w-0 font-normal",title:s,children:s})]})]})]}),h.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[h.jsx(Gg,{card:e}),r&&(n?h.jsx(Vt,{className:"h-4 w-4 text-amber-400/80",strokeWidth:3}):h.jsx(pl,{className:"h-4 w-4 text-amber-400/80",strokeWidth:3}))]})]})}function Xg({card:e}){var p,f,m;const t=((p=e.output)==null?void 0:p.trim())??"",n=e.statusTone==="running",r=!!((f=e.summary)!=null&&f.trim()||t.length>0),i=k.useRef(!r),[s,a]=k.useState(r&&(n||e.statusTone==="error"||t.length<500)),[l,o]=k.useState(!1),u=k.useRef(n);k.useEffect(()=>{i.current&&r&&n&&(a(!0),i.current=!1)},[r,n]),k.useEffect(()=>{u.current&&!n&&!l&&a(!1),u.current=n},[n,l]);const d=()=>{!t&&!n||(a(!s),o(!0))},c=(m=e.summary)==null?void 0:m.replace(/^(command|path|args|query|input):\s*/i,"");return h.jsxs(Jt,{children:[h.jsx(en,{card:e,icon:ml,expanded:s,canExpand:!!t||n,onToggle:d}),s&&h.jsxs(h.Fragment,{children:[h.jsx("div",{className:"px-3 pb-2 font-mono w-full max-h-48 overflow-y-auto custom-scrollbar-amber min-h-0 text-[12px]",children:h.jsxs("div",{className:"flex items-start gap-2 leading-relaxed",children:[h.jsx("span",{className:"text-amber-500/50 font-medium shrink-0 select-none mt-[1px]",children:"$"}),h.jsx("div",{className:"flex-1 min-w-0",children:c?h.jsxs("div",{className:"text-amber-950/80 break-words whitespace-pre-wrap tracking-tight font-medium inline-block",children:[c,n&&!t&&h.jsx("span",{className:"inline-block w-1.5 h-3 ml-1 bg-amber-500/60 animate-pulse align-middle"})]}):h.jsx("div",{className:"h-3 w-32 bg-amber-200/30 rounded animate-pulse mt-2"})})]})}),t&&h.jsx(Zt,{children:h.jsxs("pre",{className:"font-mono text-[12px] text-amber-950/70 whitespace-pre-wrap break-all w-full max-w-full max-h-64 overflow-y-auto overflow-x-hidden min-w-0 custom-scrollbar-amber leading-relaxed px-0",children:[t,n&&h.jsx("span",{className:"inline-block w-1.5 h-3 ml-1 bg-amber-500/60 animate-pulse align-middle"})]})})]})]})}function Yg({card:e}){var y;const t=((y=e.output)==null?void 0:y.trim())??"",n=e.statusTone==="running",[r,i]=k.useState(!1),[s,a]=k.useState(!1),l=k.useRef(n);k.useEffect(()=>{l.current&&!n&&!s&&i(!1),l.current=n},[n,s]);const o=()=>{!t&&!n||(i(!r),a(!0))},u=e.toolName==="edit_file"||e.toolName==="write_file",d=(S,g)=>{if(u){if(S.startsWith("+")&&!S.startsWith("+++"))return h.jsxs("div",{className:"bg-emerald-500/10 text-emerald-700 px-2 py-0.5 w-full break-all whitespace-pre-wrap",children:[h.jsx("span",{className:"select-none opacity-40 mr-2 w-3 inline-block shrink-0",children:"+"}),h.jsx("span",{children:S.slice(1)})]},g);if(S.startsWith("-")&&!S.startsWith("---"))return h.jsxs("div",{className:"bg-rose-500/10 text-rose-700 px-2 py-0.5 w-full break-all whitespace-pre-wrap",children:[h.jsx("span",{className:"select-none opacity-40 mr-2 w-3 inline-block shrink-0",children:"-"}),h.jsx("span",{className:"line-through decoration-rose-400/50",children:S.slice(1)})]},g)}return h.jsx("div",{className:"py-0.5 text-amber-950/80 w-full break-all whitespace-pre-wrap",children:h.jsx("span",{children:S})},g)},c=t.split(`
36
+ `),p=15,f=c.length>p,m=!r&&f?c.slice(0,p):c;return h.jsxs(Jt,{children:[h.jsx(en,{card:e,icon:u?gl:xl,expanded:r,canExpand:!!t||n,onToggle:o}),r&&t&&h.jsx(Zt,{children:h.jsx("div",{className:"font-mono text-[12px] leading-relaxed max-h-48 overflow-y-auto overflow-x-hidden min-w-0 custom-scrollbar-amber text-amber-950/80 w-full",children:m.map(d)})})]})}function Jg({card:e}){var u;const t=e.statusTone==="running",[n,r]=k.useState(t),[i,s]=k.useState(!1),a=k.useRef(t),l=((u=e.output)==null?void 0:u.trim())??"";k.useEffect(()=>{a.current&&!t&&!i&&r(!1),a.current=t},[t,i]);const o=()=>{!l&&!t||(r(!n),s(!0))};return h.jsxs(Jt,{children:[h.jsx(en,{card:e,icon:qn,expanded:n,canExpand:!!l||t,onToggle:o}),n&&l&&h.jsx(Zt,{children:h.jsx("pre",{className:"font-mono text-[12px] text-amber-950/70 whitespace-pre-wrap break-all w-full max-w-full max-h-64 overflow-y-auto overflow-x-hidden min-w-0 custom-scrollbar-amber leading-relaxed",children:l})})]})}function Zg({card:e}){var d;const t=((d=e.output)==null?void 0:d.trim())??"",n=e.statusTone==="running",[r,i]=k.useState(n),[s,a]=k.useState(!1),l=k.useRef(n),o=e.kind==="result"||e.hasResult;k.useEffect(()=>{l.current&&!n&&!s&&i(!1),l.current=n},[n,s]);const u=()=>{o&&(i(!r),a(!0))};return h.jsxs(Jt,{children:[h.jsx(en,{card:e,icon:yl,expanded:r,canExpand:o,onToggle:u}),r&&t&&h.jsx(Zt,{children:h.jsx("pre",{className:"text-amber-950/80 whitespace-pre-wrap break-all overflow-y-auto overflow-x-hidden max-h-64 custom-scrollbar-amber w-full min-w-0 max-w-full leading-relaxed",children:t})})]})}function ex(e){const t=e.toLowerCase();return t==="exec"||t==="execute_command"||t==="bash"||t==="shell"||t.includes("run_")}function tx(e){const t=e.toLowerCase();return t==="read_file"||t==="write_file"||t==="edit_file"||t==="apply_patch"}function nx(e){const t=e.toLowerCase();return t==="grep_search"||t==="find_files"||t.includes("search")}function rx({card:e}){return ex(e.toolName)?h.jsx(Xg,{card:e}):tx(e.toolName)?h.jsx(Yg,{card:e}):nx(e.toolName)?h.jsx(Jg,{card:e}):h.jsx(Zg,{card:e})}function ix(e){return h.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-2.5 py-2 text-xs text-gray-600",children:[h.jsxs("div",{className:"font-semibold text-gray-700",children:[e.label,": ",e.rawType]}),e.text?h.jsx("pre",{className:"mt-1 whitespace-pre-wrap break-words text-[11px] text-gray-500",children:e.text}):null]})}function sx(e){const{message:t,texts:n}=e,{role:r}=t,i=r==="user";return h.jsx("div",{className:Q("inline-block w-fit max-w-full rounded-2xl border px-4 py-3 shadow-sm",i?"border-primary bg-primary text-white":r==="assistant"?"border-gray-200 bg-white text-gray-900":"border-orange-200/80 bg-orange-50/70 text-gray-900"),children:h.jsx("div",{className:"space-y-2",children:t.parts.map((s,a)=>s.type==="markdown"?h.jsx(Fg,{text:s.text,role:r,texts:n},`markdown-${a}`):s.type==="reasoning"?h.jsx(Qg,{label:s.label,text:s.text,isUser:i},`reasoning-${a}`):s.type==="tool-card"?h.jsx("div",{className:"mt-0.5",children:h.jsx(rx,{card:s.card})},`tool-${a}`):s.type==="file"?h.jsx(Wg,{file:s.file,isUser:i},`file-${a}`):s.type==="unknown"?h.jsx(ix,{label:s.label,rawType:s.rawType,text:s.text},`unknown-${a}`):null)})})}function ax(e){return h.jsxs("div",{className:Q("px-1 text-[11px] leading-4 text-gray-400",e.isUser?"text-right":"text-left"),children:[e.roleLabel," · ",e.timestampLabel]})}const lx=/\u200B|\u200C|\u200D|\u2060|\uFEFF/g;function ox(e){const t=e.trim();return t?t.replace(lx,"").trim().length>0:!1}function ux(e){return e.parts.some(t=>t.type==="markdown"||t.type==="reasoning"?ox(t.text):!0)}function cx(e){const t=e.messages.filter(ux),n=t.some(r=>r.role==="assistant"&&(r.status==="streaming"||r.status==="pending"));return h.jsxs("div",{className:Q("space-y-5",e.className),children:[t.map(r=>{const i=r.role==="user";return h.jsxs("div",{className:Q("flex gap-3",i?"justify-end":"justify-start"),children:[i?null:h.jsx(an,{role:r.role}),h.jsxs("div",{className:Q("w-fit max-w-[92%] space-y-2",i&&"flex flex-col items-end"),children:[h.jsx(sx,{message:r,texts:e.texts}),h.jsx(ax,{roleLabel:r.roleLabel,timestampLabel:r.timestampLabel,isUser:i})]}),i?h.jsx(an,{role:r.role}):null]},r.id)}),e.isSending&&!n?h.jsxs("div",{className:"flex justify-start gap-3",children:[h.jsx(an,{role:"assistant"}),h.jsx("div",{className:"rounded-2xl border border-gray-200 bg-white px-4 py-3 text-sm text-gray-500 shadow-sm",children:e.texts.typingLabel})]}):null]})}const hx=10;function Ri(e){e.scrollTop=e.scrollHeight}function dx(e){const t=k.useRef(!0),n=k.useRef(!1),r=k.useRef(null),i=k.useRef(!1),s=k.useCallback(()=>{if(n.current){n.current=!1;return}const a=e.scrollRef.current;if(!a)return;const l=a.scrollHeight-a.scrollTop-a.clientHeight;t.current=l<=(e.stickyThresholdPx??hx)},[e.scrollRef,e.stickyThresholdPx]);return k.useEffect(()=>{r.current!==e.resetKey&&(r.current=e.resetKey,t.current=!0,i.current=!0)},[e.resetKey]),k.useLayoutEffect(()=>{if(!i.current||e.isLoading||!e.hasContent)return;const a=e.scrollRef.current;a&&(i.current=!1,n.current=!0,Ri(a))},[e.hasContent,e.isLoading,e.scrollRef]),k.useLayoutEffect(()=>{if(!t.current||!e.hasContent)return;const a=e.scrollRef.current;a&&(n.current=!0,Ri(a))},[e.contentVersion,e.hasContent,e.scrollRef]),{onScroll:s}}function Aa(){return Zn()}function fx(e){return Ru(e)}function ji(e){return Pu(e)}function Pi(e){return qt(e,"skill")}function px(e){return qt(e,"file")}function mx(e,t,n){const r=new Set(t),i=er(e,o=>o.tokenKind==="skill"&&!r.has(o.tokenKey)),s=qt(i,"skill"),a=new Map(n.map(o=>[o.spec,o])),l=t.filter(o=>!s.includes(o)).map(o=>{var u;return Jn({tokenKind:"skill",tokenKey:o,label:((u=a.get(o))==null?void 0:u.label)||o})});return l.length===0?i:Je([...i,...l])}function Di(e,t){const n=new Set(t.map(r=>r.id));return er(e,r=>r.tokenKind==="file"&&!n.has(r.tokenKey))}function gx(e,t){const n=new Set(px(e));return t.filter(r=>n.has(r.id))}function xx(e,t){const n=new Map(t.map(i=>[i.id,i])),r=[];for(const i of e){if(i.type==="text"){i.text.length>0&&r.push({type:"text",text:i.text});continue}if(i.tokenKind!=="file")continue;const s=n.get(i.tokenKey);s&&r.push({type:"file",name:s.name,mimeType:s.mimeType,...s.assetUri?{assetUri:s.assetUri}:{},...s.url?{url:s.url}:{},...s.contentBase64?{contentBase64:s.contentBase64}:{},sizeBytes:s.sizeBytes})}return r}const yx={isProviderStateResolved:!1,composerNodes:Aa(),attachments:[],draft:"",pendingSessionType:"native",defaultSessionType:"native",canStopGeneration:!1,stopDisabledReason:null,sendError:null,isSending:!1,modelOptions:[],selectedModel:"",selectedThinkingLevel:null,sessionTypeOptions:[],selectedSessionType:void 0,stopSupported:!1,stopReason:void 0,canEditSessionType:!1,sessionTypeUnavailable:!1,skillRecords:[],isSkillsLoading:!1,selectedSkills:[]},Y=$t(e=>({snapshot:yx,setSnapshot:t=>e(n=>({snapshot:{...n.snapshot,...t}}))})),bx={sessionRunStatusByKey:new Map,isLocallyRunning:!1,activeBackendRunId:null},Un=$t(e=>({snapshot:bx,setSnapshot:t=>e(n=>({snapshot:{...n.snapshot,...t}}))})),Sx={sessions:[],selectedSessionKey:null,selectedAgentId:"main",query:"",isLoading:!1},ae=$t(e=>({snapshot:Sx,setSnapshot:t=>e(n=>({snapshot:{...n.snapshot,...t}}))}));function kx(e){const t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),r=n-864e5,i=n-7*864e5,s=[],a=[],l=[],o=[];for(const d of e){const c=new Date(d.updatedAt).getTime();c>=n?s.push(d):c>=r?a.push(d):c>=i?l.push(d):o.push(d)}const u=[];return s.length>0&&u.push({label:C("chatSidebarToday"),sessions:s}),a.length>0&&u.push({label:C("chatSidebarYesterday"),sessions:a}),l.length>0&&u.push({label:C("chatSidebarPrevious7Days"),sessions:l}),o.length>0&&u.push({label:C("chatSidebarOlder"),sessions:o}),u}function wx(e){if(e.label&&e.label.trim())return e.label.trim();const t=e.key.split(":");return t[t.length-1]||e.key}function vx(e,t){const n=e.trim().toLowerCase();if(!n||n==="native")return null;const r=t.find(i=>i.value.trim().toLowerCase()===n);return r!=null&&r.label.trim()?r.label.trim():n.split(/[-_]+/g).filter(Boolean).map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}function Cx(e){var t;return e.ready===!1?((t=e.reasonMessage)==null?void 0:t.trim())||C("statusSetup"):C("statusReady")}const Tx=[{target:"/cron",label:()=>C("chatSidebarScheduledTasks"),icon:Wn},{target:"/skills",label:()=>C("chatSidebarSkills"),icon:Kn}];function Ix(){var H,P;const e=Yn(),t=jl(),[n,r]=k.useState(!1),[i,s]=k.useState(null),[a,l]=k.useState(""),[o,u]=k.useState(null),d=Y(v=>v.snapshot),c=ae(v=>v.snapshot),p=Un(v=>v.snapshot),f=Pl(v=>v.connectionStatus),{language:m,setLanguage:y}=Gn(),{theme:S,setTheme:g}=Dl(),I=au(),M=C(((H=br.find(v=>v.value===S))==null?void 0:H.labelKey)??"themeWarm"),D=((P=Sr.find(v=>v.value===m))==null?void 0:P.label)??m,O=k.useMemo(()=>kx(c.sessions),[c.sessions]),T=d.defaultSessionType||"native",_=k.useMemo(()=>d.sessionTypeOptions.filter(v=>v.value!==T),[T,d.sessionTypeOptions]),z=v=>{m!==v&&(y(v),window.location.reload())},B=(v,j)=>{const{sessions:$}=ae.getState().snapshot;ae.getState().setSnapshot({sessions:$.map(te=>te.key===v?{...te,...j?{label:j}:{label:void 0}}:te)})},w=v=>{var j;s(v.key),l(((j=v.label)==null?void 0:j.trim())??"")},E=()=>{s(null),l(""),u(null)},L=async v=>{var te;const j=a.trim(),$=((te=v.label)==null?void 0:te.trim())??"";if(j===$){E();return}u(v.key);try{await I({sessionKey:v.key,label:j||null}),B(v.key,j||void 0),E()}catch{u(null)}};return h.jsxs("aside",{className:"w-[280px] shrink-0 flex flex-col h-full bg-secondary border-r border-gray-200/60",children:[h.jsx("div",{className:"px-5 pt-5 pb-3",children:h.jsx(Ol,{className:"flex items-center gap-2.5 min-w-0",suffix:h.jsx(iu,{status:f})})}),h.jsx("div",{className:"px-4 pb-3",children:h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsxs(Oe,{variant:"primary",className:ve("min-w-0 rounded-xl",_.length>0?"flex-1 rounded-r-md":"w-full"),onClick:()=>{r(!1),e.chatSessionListManager.createSession(T)},children:[h.jsx(bl,{className:"h-4 w-4 mr-2"}),C("chatSidebarNewTask")]}),_.length>0?h.jsxs(mo,{open:n,onOpenChange:r,children:[h.jsx(go,{asChild:!0,children:h.jsx(Oe,{variant:"primary",size:"icon",className:"h-9 w-10 shrink-0 rounded-xl rounded-l-md","aria-label":C("chatSessionTypeLabel"),children:h.jsx(Vt,{className:"h-4 w-4"})})}),h.jsxs(xo,{align:"end",className:"w-64 p-2",children:[h.jsx("div",{className:"px-2 py-1 text-[11px] font-medium uppercase tracking-wider text-gray-400",children:C("chatSessionTypeLabel")}),h.jsx("div",{className:"mt-1 space-y-1",children:_.map(v=>h.jsxs("button",{type:"button",onClick:()=>{e.chatSessionListManager.createSession(v.value),r(!1)},className:"w-full rounded-xl px-3 py-2 text-left transition-colors hover:bg-gray-100",children:[h.jsxs("div",{className:"flex items-center justify-between gap-3",children:[h.jsx("div",{className:"text-[13px] font-medium text-gray-900",children:v.label}),h.jsx("span",{className:ve("shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold",v.ready===!1?"bg-amber-100 text-amber-800":"bg-emerald-100 text-emerald-700"),children:v.ready===!1?C("statusSetup"):C("statusReady")})]}),h.jsx("div",{className:"mt-0.5 text-[11px] text-gray-500",children:Cx(v)})]},v.value))})]})]}):null]})}),h.jsx("div",{className:"px-4 pb-3",children:h.jsxs("div",{className:"relative",children:[h.jsx(qn,{className:"h-3.5 w-3.5 absolute left-3 top-2.5 text-gray-400"}),h.jsx(Qn,{value:c.query,onChange:v=>e.chatSessionListManager.setQuery(v.target.value),placeholder:C("chatSidebarSearchPlaceholder"),className:"pl-8 h-9 rounded-lg text-xs"})]})}),h.jsx("div",{className:"px-3 pb-2",children:h.jsx("ul",{className:"space-y-0.5",children:Tx.map(v=>h.jsx("li",{children:h.jsx(kr,{to:v.target,label:v.label(),icon:v.icon,density:"compact"})},v.target))})}),h.jsx("div",{className:"mx-4 border-t border-gray-200/60"}),h.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto custom-scrollbar px-3 py-2",children:c.isLoading?h.jsx("div",{className:"text-xs text-gray-500 p-3",children:C("sessionsLoading")}):O.length===0?h.jsxs("div",{className:"p-4 text-center",children:[h.jsx(Sl,{className:"h-6 w-6 mx-auto mb-2 text-gray-300"}),h.jsx("div",{className:"text-xs text-gray-500",children:C("sessionsEmpty")})]}):h.jsx("div",{className:"space-y-3",children:O.map(v=>h.jsxs("div",{children:[h.jsx("div",{className:"px-2 py-1 text-[11px] font-medium text-gray-400 uppercase tracking-wider",children:v.label}),h.jsx("div",{className:"space-y-0.5",children:v.sessions.map(j=>{const $=c.selectedSessionKey===j.key,te=p.sessionRunStatusByKey.get(j.key),pe=vx(j.sessionType,d.sessionTypeOptions),x=i===j.key,le=o===j.key;return h.jsx(su,{session:j,active:$,runStatus:te,sessionTypeLabel:pe,title:wx(j),isEditing:x,draftLabel:a,isSaving:le,onSelect:()=>e.chatSessionListManager.selectSession(j.key),onStartEditing:()=>w(j),onDraftLabelChange:l,onSave:()=>L(j),onCancel:E},j.key)})})]},v.label))})}),h.jsxs("div",{className:"px-3 py-3 border-t border-gray-200/60 space-y-0.5",children:[h.jsx(kr,{to:"/settings",label:C("settings"),icon:kl,density:"compact"}),h.jsx(Fl,{onClick:()=>t.open(void 0,{kind:"docs",newTab:!0,title:"Docs"}),icon:wl,label:C("docBrowserHelp"),density:"compact"}),h.jsx(wr,{value:S,onValueChange:v=>g(v),icon:vl,label:C("theme"),valueLabel:M,density:"compact",children:br.map(v=>h.jsx(dt,{value:v.value,className:"text-xs",children:C(v.labelKey)},v.value))}),h.jsx(wr,{value:m,onValueChange:v=>z(v),icon:Cl,label:C("language"),valueLabel:D,density:"compact",children:Sr.map(v=>h.jsx(dt,{value:v.value,className:"text-xs",children:v.label},v.value))})]})]})}function Mx(e,t){if(!e||typeof e!="object"||Array.isArray(e))return t;const n=e.error;if(!n||typeof n!="object"||Array.isArray(n))return t;const r=n.message;return typeof r=="string"&&r.trim().length>0?r:t}async function Nx(e){const t=new FormData;for(const i of e)t.append("files",i);const n=await fetch(`${Ji}/api/ncp/assets`,{method:"POST",body:t,credentials:"include"}),r=await n.json();if(!n.ok||!r.ok)throw new Error(Mx(r,"Failed to put assets."));return r.data.assets.map(i=>({id:i.id,name:i.name,mimeType:i.mimeType,sizeBytes:i.sizeBytes,assetUri:i.assetUri,url:i.url}))}const Me={exactSpec:1200,exactLabel:1150,prefixSpec:1e3,prefixLabel:950,prefixToken:900,containsSpec:800,containsLabel:760,containsDescription:500,subsequence:300,fallback:1};function jt(e){return(e??"").trim().toLowerCase()}function Oi(e,t){if(!e||!t)return!1;let n=0;for(const r of t)if(r===e[n]&&(n+=1,n>=e.length))return!0;return!1}function Ex(e,t){const n=jt(t);if(!n)return Me.fallback;const r=jt(e.key),i=jt(e.label||e.key),s=jt(`${e.descriptionZh??""} ${e.description??""}`),a=i.split(/[\s/_-]+/).filter(Boolean);return r===n?Me.exactSpec:i===n?Me.exactLabel:r.startsWith(n)?Me.prefixSpec:i.startsWith(n)?Me.prefixLabel:a.some(l=>l.startsWith(n))?Me.prefixToken:r.includes(n)?Me.containsSpec:i.includes(n)?Me.containsLabel:s.includes(n)?Me.containsDescription:Oi(n,i)||Oi(n,r)?Me.subsequence:0}function Lx(e,t,n){const r=new Intl.Collator(void 0,{sensitivity:"base",numeric:!0});return e.map((i,s)=>({record:i,order:s,score:Ex(i,t)})).filter(i=>i.score>0).sort((i,s)=>{if(s.score!==i.score)return s.score-i.score;const a=(i.record.label||i.record.key).trim(),l=(s.record.label||s.record.key).trim(),o=r.compare(a,l);return o!==0?o:i.order-s.order}).map(({record:i})=>({key:`skill:${i.key}`,title:i.label||i.key,subtitle:n.slashSkillSubtitle,description:(i.descriptionZh??i.description??"").trim()||n.noSkillDescription,detailLines:[`${n.slashSkillSpecLabel}: ${i.key}`],value:i.key}))}function Ax(e){return e.map(t=>({key:t.key,label:t.label,description:t.descriptionZh||t.description||"",badgeLabel:t.badgeLabel}))}function Rx(e){return{title:e.texts.title,searchPlaceholder:e.texts.searchPlaceholder,emptyLabel:e.texts.emptyLabel,loadingLabel:e.texts.loadingLabel,isLoading:e.isLoading,manageLabel:e.texts.manageLabel,manageHref:"/marketplace/skills",options:Ax(e.skillRecords),selectedKeys:e.selectedSkills,onSelectedKeysChange:e.onSelectedKeysChange}}function jx(e){return!e.isModelOptionsLoading&&!e.isModelOptionsEmpty?null:e.isModelOptionsLoading?{tone:"neutral",loading:!0}:{tone:"warning",text:e.texts.noModelOptionsLabel,actionLabel:e.texts.configureProviderLabel,onAction:e.onGoToProviders}}function Px(e){const t=e.modelOptions.find(s=>s.value===e.selectedModel),n=e.modelOptions[0],r=t??n;return{key:"model",value:e.hasModelOptions?r==null?void 0:r.value:void 0,placeholder:e.texts.modelSelectPlaceholder,selectedLabel:r?`${r.providerLabel}/${r.modelLabel}`:void 0,icon:"sparkles",options:e.modelOptions.map(s=>({value:s.value,label:s.modelLabel,description:s.providerLabel})),disabled:!e.hasModelOptions,loading:e.isModelOptionsLoading,emptyLabel:e.texts.modelNoOptionsLabel,onValueChange:e.onValueChange}}function Dx(e){const t=[];for(const n of["off",...e])t.includes(n)||t.push(n);return t}function Ox(e){if(e.supportedLevels.length===0)return null;const t=Dx(e.supportedLevels),n=t.includes("off")?"off":t[0],r=e.selectedThinkingLevel&&t.includes(e.selectedThinkingLevel)&&e.selectedThinkingLevel||e.defaultThinkingLevel&&t.includes(e.defaultThinkingLevel)&&e.defaultThinkingLevel||n;return{key:"thinking",value:r,placeholder:e.texts.thinkingLabels[r],selectedLabel:e.texts.thinkingLabels[r],icon:"brain",options:t.map(i=>({value:i,label:e.texts.thinkingLabels[i]})),onValueChange:i=>e.onValueChange(i)}}function Fx(){return{off:C("chatThinkingLevelOff"),minimal:C("chatThinkingLevelMinimal"),low:C("chatThinkingLevelLow"),medium:C("chatThinkingLevelMedium"),high:C("chatThinkingLevelHigh"),adaptive:C("chatThinkingLevelAdaptive"),xhigh:C("chatThinkingLevelXhigh")}}function _x(e,t){return e.map(n=>({key:n.spec,label:n.label||n.spec,description:n.description,descriptionZh:n.descriptionZh,badgeLabel:n.origin==="builtin"?t:void 0}))}function zx(e){return e.map(t=>({value:t.value,modelLabel:t.modelLabel,providerLabel:t.providerLabel,thinkingCapability:t.thinkingCapability?{supported:t.thinkingCapability.supported,default:t.thinkingCapability.default??null}:null}))}function Bx(){var w;const e=Yn(),{language:t}=Gn(),n=Y(E=>E.snapshot),[r,i]=k.useState(null),s=k.useRef(null),a=k.useRef(null),l=k.useMemo(()=>C("chatSkillsPickerOfficial"),[t]),o=k.useMemo(()=>({slashSkillSubtitle:C("chatSlashTypeSkill"),slashSkillSpecLabel:C("chatSlashSkillSpec"),noSkillDescription:C("chatSkillsPickerNoDescription")}),[t]),u=k.useMemo(()=>_x(n.skillRecords,l),[n.skillRecords,l]),d=k.useMemo(()=>zx(n.modelOptions),[n.modelOptions]),c=d.length>0,p=!n.isProviderStateResolved&&!c,f=n.isProviderStateResolved&&!c,m=(p||f)&&!n.isSending||n.sessionTypeUnavailable,y=typeof e.chatInputManager.addAttachments=="function",S=p?"":c?C("chatInputPlaceholder"):C("chatModelNoOptions"),g=k.useMemo(()=>Lx(u,r??"",o),[r,u,o]),I=d.find(E=>E.value===n.selectedModel),M=I==null?void 0:I.thinkingCapability,D=(M==null?void 0:M.supported)??[],O=n.stopDisabledReason==="__preparing__"?C("chatStopPreparing"):((w=n.stopDisabledReason)==null?void 0:w.trim())||C("chatStopUnavailable"),T=k.useCallback(E=>{if(E==="unsupported-type"){ht.error(C("chatInputAttachmentUnsupported"));return}if(E==="too-large"){ht.error(C("chatInputAttachmentTooLarge").replace("{maxMb}",String(as/(1024*1024))));return}ht.error(C("chatInputAttachmentReadFailed"))},[]),_=k.useCallback(async E=>{var H,P,v;if(!y||E.length===0)return;const L=await nu(E,{uploadBatch:Nx});if(L.attachments.length>0){const j=((P=(H=e.chatInputManager).addAttachments)==null?void 0:P.call(H,L.attachments))??[];j.length>0&&((v=s.current)==null||v.insertFileTokens(j.map($=>({tokenKey:$.id,label:$.name}))))}L.rejected.length>0&&T(L.rejected[0].reason)},[y,e.chatInputManager,T]),z=[Px({modelOptions:d,selectedModel:n.selectedModel,isModelOptionsLoading:p,hasModelOptions:c,onValueChange:e.chatInputManager.selectModel,texts:{modelSelectPlaceholder:C("chatSelectModel"),modelNoOptionsLabel:C("chatModelNoOptions")}}),Ox({supportedLevels:D,selectedThinkingLevel:n.selectedThinkingLevel,defaultThinkingLevel:(M==null?void 0:M.default)??null,onValueChange:E=>e.chatInputManager.selectThinkingLevel(E),texts:{thinkingLabels:Fx()}})].filter(E=>E!==null),B=Rx({skillRecords:u,selectedSkills:n.selectedSkills,isLoading:n.isSkillsLoading,onSelectedKeysChange:e.chatInputManager.selectSkills,texts:{title:C("chatSkillsPickerTitle"),searchPlaceholder:C("chatSkillsPickerSearchPlaceholder"),emptyLabel:C("chatSkillsPickerEmpty"),loadingLabel:C("sessionsLoading"),manageLabel:C("chatSkillsPickerManage")}});return h.jsxs(h.Fragment,{children:[h.jsx(Cs,{ref:s,composer:{nodes:n.composerNodes,placeholder:S,disabled:m,onNodesChange:e.chatInputManager.setComposerNodes,...y?{onFilesAdd:_}:{},onSlashQueryChange:i},slashMenu:{isLoading:n.isSkillsLoading,items:g,texts:{slashLoadingLabel:C("chatSlashLoading"),slashSectionLabel:C("chatSlashSectionSkills"),slashEmptyLabel:C("chatSlashNoResult"),slashHintLabel:C("chatSlashHint"),slashSkillHintLabel:C("chatSlashSkillHint")}},hint:jx({isModelOptionsLoading:p,isModelOptionsEmpty:f,onGoToProviders:e.chatInputManager.goToProviders,texts:{noModelOptionsLabel:C("chatModelNoOptions"),configureProviderLabel:C("chatGoConfigureProvider")}}),toolbar:{selects:z,accessories:[{key:"attach",label:C("chatInputAttach"),icon:"paperclip",iconOnly:!0,disabled:!y||m||n.isSending,...y?{onClick:()=>{var E;return(E=a.current)==null?void 0:E.click()}}:{tooltip:C("chatInputAttachComingSoon")}}],skillPicker:B,actions:{sendError:n.sendError,isSending:n.isSending,canStopGeneration:n.canStopGeneration,sendDisabled:n.draft.trim().length===0&&n.attachments.length===0||!c||n.sessionTypeUnavailable,stopDisabled:!n.canStopGeneration,stopHint:O,sendButtonLabel:C("chatSend"),stopButtonLabel:C("chatStop"),onSend:e.chatInputManager.send,onStop:e.chatInputManager.stop}}}),y?h.jsx("input",{ref:a,type:"file",multiple:!0,className:"hidden",onChange:async E=>{const L=Array.from(E.target.files??[]);E.currentTarget.value="",await _(L)}}):null]})}const Hx=["cmd","command","query","q","path","url","to","channel","agentId","sessionKey"];function Fi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Vn(e,t=2400){return e.length<=t?e:`${e.slice(0,t)}
37
37
  …`}function Ut(e){if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(e==null)return"";try{return Vn(JSON.stringify(e,null,2))}catch{return String(e)}}function Ux(e){if(Fi(e))return e;if(typeof e!="string")return null;const t=e.trim();if(!t.startsWith("{")&&!t.startsWith("["))return null;try{const n=JSON.parse(t);return Fi(n)?n:null}catch{return null}}function Vx(e){const t=Ux(e);if(!t){const r=Ut(e).trim();return r?Vn(r,120):void 0}const n=[];for(const r of Hx){const i=t[r];if(typeof i=="string"&&i.trim()?n.push(`${r}: ${i.trim()}`):(typeof i=="number"||typeof i=="boolean")&&n.push(`${r}: ${String(i)}`),n.length>=2)break}return n.length>0?n.join(" · "):Vn(Ut(t),140)}const $x=/\u200B|\u200C|\u200D|\u2060|\uFEFF/g;function Ft(e){return typeof e=="object"&&e!==null}function In(e){if(typeof e!="string")return null;const t=e.trim();return t.length>0?t:null}function Ra(e){if(typeof e=="number"&&Number.isFinite(e)&&e>=0)return e;if(typeof e!="string")return null;const t=e.trim();if(!t)return null;const n=Number(t);return Number.isFinite(n)&&n>=0?n:null}function Kx(e,t){if(!Ft(e))return null;const n=Ft(e.asset)?e.asset:Array.isArray(e.assets)&&e.assets.length>0&&Ft(e.assets[0])?e.assets[0]:null;if(!n)return null;const r=In(n.url),i=In(n.mimeType)??"application/octet-stream",s=Ra(n.sizeBytes);return r?{type:"file",file:{label:In(n.name)??(i.startsWith("image/")?t.imageAttachmentLabel:t.fileAttachmentLabel),mimeType:i,dataUrl:r,...s!=null?{sizeBytes:s}:{},isImage:i.startsWith("image/")}}:null}function qx(e){return e.type==="text"&&typeof e.text=="string"}function Wx(e){return e.type==="reasoning"&&typeof e.reasoning=="string"}function Qx(e){return e.type==="file"&&typeof e.mimeType=="string"&&typeof e.data=="string"}function Gx(e){return e.type!=="tool-invocation"||!Ft(e.toolInvocation)?!1:typeof e.toolInvocation.toolName=="string"}function Xx(e){var n;const t=(n=e.meta)==null?void 0:n.timestamp;return t&&Number.isFinite(Date.parse(t))?t:new Date().toISOString()}function Yx(e,t){return e==="user"?t.user:e==="assistant"?t.assistant:e==="tool"?t.tool:e==="system"?t.system:t.fallback}function Jx(e){return e==="user"||e==="assistant"||e==="tool"||e==="system"?e:"message"}function Zx(e,t){return{kind:e.kind,toolName:e.name,summary:e.detail,output:e.text,hasResult:!!e.hasResult,statusTone:e.statusTone,statusLabel:e.statusLabel,titleLabel:e.kind==="call"?t.toolCallLabel:t.toolResultLabel,outputLabel:t.toolOutputLabel,emptyLabel:t.toolNoOutputLabel}}function ey(e){const t=typeof e.status=="string"?e.status.trim().toLowerCase():"",n=typeof e.error=="string"&&e.error.trim().length>0;return e.cancelled===!0||t==="cancelled"?{kind:"result",hasResult:!0,statusTone:"cancelled",statusLabel:e.texts.toolStatusCancelledLabel}:n||t==="error"?{kind:"result",hasResult:!0,statusTone:"error",statusLabel:e.texts.toolStatusFailedLabel}:t==="result"||e.result!=null?{kind:"result",hasResult:!0,statusTone:"success",statusLabel:e.texts.toolStatusCompletedLabel}:t==="partial-call"?{kind:"call",hasResult:!1,statusTone:"running",statusLabel:e.texts.toolStatusPreparingLabel}:{kind:"call",hasResult:!1,statusTone:"running",statusLabel:e.texts.toolStatusRunningLabel}}function _i(e){const t=e.trim();return t&&t.replace($x,"").trim()?t:null}function ty(e){return e.uiMessages.map(t=>{var n;return{id:t.id,role:Jx(t.role),roleLabel:Yx(t.role,e.texts.roleLabels),timestampLabel:e.formatTimestamp(Xx(t)),status:(n=t.meta)==null?void 0:n.status,parts:t.parts.map(r=>{if(qx(r)){const i=_i(r.text);return i?{type:"markdown",text:i}:null}if(Wx(r)){const i=_i(r.reasoning);return i?{type:"reasoning",text:i,label:e.texts.reasoningLabel}:null}if(Qx(r)){const i=r.mimeType.startsWith("image/"),s=Ra(r.sizeBytes);return{type:"file",file:{label:typeof r.name=="string"&&r.name.trim()?r.name.trim():i?e.texts.imageAttachmentLabel:e.texts.fileAttachmentLabel,mimeType:r.mimeType,dataUrl:typeof r.url=="string"&&r.url.trim().length>0?r.url.trim():`data:${r.mimeType};base64,${r.data}`,...s!=null?{sizeBytes:s}:{},isImage:i}}}if(Gx(r)){const i=r.toolInvocation,s=Kx(i.result,e.texts);if(s)return s;const a=ey({status:i.status,error:i.error,cancelled:i.cancelled,result:i.result,texts:e.texts}),l=Vx(i.parsedArgs??i.args),o=typeof i.error=="string"&&i.error.trim()?i.error.trim():i.result!=null?Ut(i.result).trim():"",u={kind:a.kind,name:i.toolName,detail:l,text:o||void 0,callId:i.toolCallId||void 0,hasResult:a.hasResult,statusTone:a.statusTone,statusLabel:a.statusLabel};return{type:"tool-card",card:Zx(u,e.texts)}}return{type:"unknown",label:e.texts.unknownPartLabel,rawType:typeof r.type=="string"?r.type:"unknown",text:Ut(r)}}).filter(r=>r!==null)}})}function ny(e){const{language:t}=Gn(),n=k.useMemo(()=>e.uiMessages.map(i=>{var s,a;return{id:i.id,role:i.role,meta:{timestamp:(s=i.meta)==null?void 0:s.timestamp,status:(a=i.meta)==null?void 0:a.status},parts:i.parts}}),[e.uiMessages]),r=k.useMemo(()=>ty({uiMessages:n,formatTimestamp:i=>Kt(i,t),texts:{roleLabels:{user:C("chatRoleUser"),assistant:C("chatRoleAssistant"),tool:C("chatRoleTool"),system:C("chatRoleSystem"),fallback:C("chatRoleMessage")},reasoningLabel:C("chatReasoning"),toolCallLabel:C("chatToolCall"),toolResultLabel:C("chatToolResult"),toolNoOutputLabel:C("chatToolNoOutput"),toolOutputLabel:C("chatToolOutput"),toolStatusPreparingLabel:C("chatToolStatusPreparing"),toolStatusRunningLabel:C("chatToolStatusRunning"),toolStatusCompletedLabel:C("chatToolStatusCompleted"),toolStatusFailedLabel:C("chatToolStatusFailed"),toolStatusCancelledLabel:C("chatToolStatusCancelled"),imageAttachmentLabel:C("chatImageAttachment"),fileAttachmentLabel:C("chatFileAttachment"),unknownPartLabel:C("chatUnknownPart")}}),[t,n]);return h.jsx(cx,{messages:r,isSending:e.isSending,hasAssistantDraft:e.uiMessages.some(i=>{var s,a;return i.role==="assistant"&&(((s=i.meta)==null?void 0:s.status)==="streaming"||((a=i.meta)==null?void 0:a.status)==="pending")}),className:e.className,texts:{copyCodeLabel:C("chatCodeCopy"),copiedCodeLabel:C("chatCodeCopied"),typingLabel:C("chatTyping")}})}const ry=[{icon:Tl,titleKey:"chatWelcomeCapability1Title",descKey:"chatWelcomeCapability1Desc"},{icon:Kn,titleKey:"chatWelcomeCapability2Title",descKey:"chatWelcomeCapability2Desc"},{icon:Wn,titleKey:"chatWelcomeCapability3Title",descKey:"chatWelcomeCapability3Desc"}];function iy({onCreateSession:e}){return h.jsx("div",{className:"h-full flex items-center justify-center p-8",children:h.jsxs("div",{className:"max-w-lg w-full text-center",children:[h.jsx("div",{className:"mx-auto mb-6 h-16 w-16 rounded-2xl bg-primary/10 flex items-center justify-center",children:h.jsx(Qi,{className:"h-8 w-8 text-primary"})}),h.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-2",children:C("chatWelcomeTitle")}),h.jsx("p",{className:"text-sm text-gray-500 mb-8",children:C("chatWelcomeSubtitle")}),h.jsx("div",{className:"grid grid-cols-3 gap-3",children:ry.map(t=>{const n=t.icon;return h.jsxs("button",{onClick:e,className:"rounded-2xl border border-gray-200 bg-white p-4 text-left shadow-card hover:shadow-card-hover transition-shadow cursor-pointer",children:[h.jsx("div",{className:"h-9 w-9 rounded-xl bg-primary/8 flex items-center justify-center mb-3",children:h.jsx(n,{className:"h-4.5 w-4.5 text-primary"})}),h.jsx("div",{className:"text-sm font-semibold text-gray-900 mb-1",children:C(t.titleKey)}),h.jsx("div",{className:"text-[11px] text-gray-500 leading-relaxed",children:C(t.descKey)})]},t.titleKey)})})]})})}const sy={isProviderStateResolved:!1,modelOptions:[],sessionTypeUnavailable:!1,sessionTypeUnavailableMessage:null,sessionTypeLabel:null,selectedSessionKey:null,sessionDisplayName:void 0,canDeleteSession:!1,isDeletePending:!1,threadRef:null,isHistoryLoading:!1,uiMessages:[],isSending:!1,isAwaitingAssistantOutput:!1},ct=$t(e=>({snapshot:sy,setSnapshot:t=>e(n=>({snapshot:{...n.snapshot,...t}}))}));function ay(){return h.jsxs("section",{className:"flex-1 min-h-0 flex flex-col overflow-hidden bg-gradient-to-b from-gray-50/60 to-white",children:[h.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto custom-scrollbar",children:h.jsx("div",{className:"mx-auto w-full max-w-[min(1120px,100%)] px-6 py-5",children:h.jsxs("div",{className:"space-y-4",children:[h.jsx("div",{className:"h-6 w-48 animate-pulse rounded bg-gray-200"}),h.jsx("div",{className:"h-24 w-[78%] animate-pulse rounded-2xl bg-gray-200/80"}),h.jsx("div",{className:"h-20 w-[62%] animate-pulse rounded-2xl bg-gray-200/80"}),h.jsx("div",{className:"h-28 w-[84%] animate-pulse rounded-2xl bg-gray-200/80"})]})})}),h.jsx("div",{className:"border-t border-gray-200/80 bg-white p-4",children:h.jsx("div",{className:"mx-auto w-full max-w-[min(1120px,100%)]",children:h.jsxs("div",{className:"rounded-2xl border border-gray-200 bg-white shadow-card p-4",children:[h.jsx("div",{className:"h-16 w-full animate-pulse rounded-xl bg-gray-200/80"}),h.jsxs("div",{className:"mt-3 flex items-center justify-between",children:[h.jsx("div",{className:"h-8 w-36 animate-pulse rounded-lg bg-gray-200/80"}),h.jsx("div",{className:"h-8 w-20 animate-pulse rounded-lg bg-gray-200/80"})]})]})})})]})}function ly(){var c;const e=Yn(),t=ct(p=>p.snapshot),n=k.useRef(null),r=t.threadRef??n,i=!!(t.selectedSessionKey||t.sessionTypeLabel),s=t.sessionDisplayName||t.selectedSessionKey||C("chatSidebarNewTask"),a=!t.selectedSessionKey&&t.uiMessages.length===0&&!t.isSending,l=t.modelOptions.length>0,o=t.isProviderStateResolved&&!l,u=t.isHistoryLoading&&t.uiMessages.length===0&&!t.isSending&&!t.isAwaitingAssistantOutput,{onScroll:d}=dx({scrollRef:r,resetKey:t.selectedSessionKey,isLoading:t.isHistoryLoading,hasContent:t.uiMessages.length>0,contentVersion:t.uiMessages});return t.isProviderStateResolved?h.jsxs("section",{className:"flex-1 min-h-0 flex flex-col overflow-hidden bg-gradient-to-b from-gray-50/60 to-white",children:[h.jsxs("div",{className:ve("px-5 border-b border-gray-200/60 bg-white/80 backdrop-blur-sm flex items-center justify-between shrink-0 overflow-hidden transition-all duration-200",i?"py-3 opacity-100":"h-0 py-0 opacity-0 border-b-0"),children:[h.jsxs("div",{className:"min-w-0 flex-1 flex items-center gap-2",children:[h.jsx("span",{className:"text-sm font-medium text-gray-700 truncate",children:s}),t.sessionTypeLabel?h.jsx("span",{className:"shrink-0 rounded-full border border-gray-200 bg-gray-100 px-2 py-0.5 text-[11px] font-medium text-gray-600",children:t.sessionTypeLabel}):null]}),t.selectedSessionKey?h.jsx(Oe,{variant:"ghost",size:"icon",className:"rounded-lg shrink-0 text-gray-400 hover:text-destructive",onClick:e.chatThreadManager.deleteSession,disabled:!t.canDeleteSession||t.isDeletePending,children:h.jsx(Xi,{className:"h-4 w-4"})}):null]}),o&&h.jsxs("div",{className:"px-5 py-2.5 border-b border-amber-200/70 bg-amber-50/70 flex items-center justify-between gap-3 shrink-0",children:[h.jsx("span",{className:"text-xs text-amber-800",children:C("chatModelNoOptions")}),h.jsx("button",{type:"button",onClick:e.chatThreadManager.goToProviders,className:"text-xs font-semibold text-amber-900 underline-offset-2 hover:underline",children:C("chatGoConfigureProvider")})]}),t.sessionTypeUnavailable&&((c=t.sessionTypeUnavailableMessage)==null?void 0:c.trim())&&h.jsx("div",{className:"px-5 py-2.5 border-b border-amber-200/70 bg-amber-50/70 shrink-0",children:h.jsx("span",{className:"text-xs text-amber-800",children:t.sessionTypeUnavailableMessage})}),h.jsx("div",{ref:r,onScroll:d,className:"flex-1 min-h-0 overflow-y-auto custom-scrollbar",children:a?h.jsx(iy,{onCreateSession:e.chatThreadManager.createSession}):u?h.jsx("div",{className:"h-full"}):t.uiMessages.length===0?h.jsx("div",{className:"px-5 py-5 text-sm text-gray-500",children:C("chatNoMessages")}):h.jsx("div",{className:"mx-auto w-full max-w-[min(1120px,100%)] px-6 py-5",children:h.jsx(ny,{uiMessages:t.uiMessages,isSending:t.isSending&&t.isAwaitingAssistantOutput})})}),h.jsx(Bx,{})]}):h.jsx(ay,{})}function zi(e){return Kt(e??void 0)}function oy(e){return typeof e!="number"||!Number.isFinite(e)?"-":Kt(new Date(e))}function uy(e){if(typeof e!="number"||!Number.isFinite(e))return"-";const t=Math.round(e/1e3);if(t<60)return`${t}s`;const n=Math.round(t/60);if(n<60)return`${n}m`;const r=Math.round(n/60);return r<24?`${r}h`:`${Math.round(r/24)}d`}function cy(e){const t=e.schedule;return t.kind==="cron"?t.expr?`cron ${t.expr}`:"cron":t.kind==="every"?`every ${uy(t.everyMs)}`:t.kind==="at"?`at ${oy(t.atMs)}`:"-"}function hy(e){if(!e.payload.deliver)return"-";const t=e.payload.channel??"-",n=e.payload.to??"-";return`${t}:${n}`}function dy(e,t){const n=t.trim().toLowerCase();return n?[e.id,e.name,e.payload.message,e.payload.channel??"",e.payload.to??""].join(" ").toLowerCase().includes(n):!0}function fy(e,t){return t==="all"?!0:t==="enabled"?e.enabled:!e.enabled}function py(){var m;const[e,t]=k.useState(""),[n,r]=k.useState("all"),i=_l({all:!0}),s=zl(),a=Bl(),l=Hl(),{confirm:o,ConfirmDialog:u}=ts(),d=k.useMemo(()=>{var S;return(((S=i.data)==null?void 0:S.jobs)??[]).filter(g=>dy(g,e)).filter(g=>fy(g,n))},[i.data,e,n]),c=async y=>{await o({title:`${C("cronDeleteConfirm")}?`,description:y.name?`${y.name} (${y.id})`:y.id,variant:"destructive",confirmLabel:C("delete")})&&s.mutate({id:y.id})},p=async y=>{const S=!y.enabled;await o({title:S?`${C("cronEnableConfirm")}?`:`${C("cronDisableConfirm")}?`,description:y.name?`${y.name} (${y.id})`:y.id,variant:S?"default":"destructive",confirmLabel:S?C("cronEnable"):C("cronDisable")})&&a.mutate({id:y.id,enabled:S})},f=async y=>{const S=!y.enabled;await o({title:S?`${C("cronRunForceConfirm")}?`:`${C("cronRunConfirm")}?`,description:y.name?`${y.name} (${y.id})`:y.id,confirmLabel:C("cronRunNow")})&&l.mutate({id:y.id,force:S})};return h.jsxs(vo,{fullHeight:!0,children:[h.jsx(Co,{title:C("cronPageTitle"),description:C("cronPageDescription"),actions:h.jsx(Oe,{variant:"ghost",size:"icon",className:"h-9 w-9 rounded-lg text-gray-400 hover:text-gray-700 hover:bg-gray-100",onClick:()=>i.refetch(),children:h.jsx(Il,{className:ve("h-4 w-4",i.isFetching&&"animate-spin")})})}),h.jsx("div",{className:"mb-6",children:h.jsxs("div",{className:"flex flex-wrap gap-3 items-center",children:[h.jsxs("div",{className:"relative flex-1 min-w-[240px]",children:[h.jsx(Qn,{value:e,onChange:y=>t(y.target.value),placeholder:C("cronSearchPlaceholder"),className:"pl-9"}),h.jsx(Wn,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400"})]}),h.jsx("div",{className:"min-w-[180px]",children:h.jsxs(Ul,{value:n,onValueChange:y=>r(y),children:[h.jsx(Vl,{className:"w-full",children:h.jsx($l,{placeholder:C("cronStatusLabel")})}),h.jsxs(Kl,{children:[h.jsx(dt,{value:"all",children:C("cronStatusAll")}),h.jsx(dt,{value:"enabled",children:C("cronStatusEnabled")}),h.jsx(dt,{value:"disabled",children:C("cronStatusDisabled")})]})]})}),h.jsxs("div",{className:"text-xs text-gray-500 ml-auto",children:[C("cronTotalLabel"),": ",((m=i.data)==null?void 0:m.total)??0," / ",d.length]})]})}),h.jsx("div",{className:"flex-1 overflow-auto custom-scrollbar",children:i.isLoading?h.jsx("div",{className:"text-sm text-gray-400 p-4 text-center",children:C("cronLoading")}):d.length===0?h.jsx("div",{className:"text-sm text-gray-400 p-4 text-center",children:C("cronEmpty")}):h.jsx("div",{className:"space-y-4",children:d.map(y=>h.jsx(ql,{className:"border border-gray-200",children:h.jsx(Wl,{className:"pt-5 pb-5",children:h.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[h.jsxs("div",{className:"min-w-[220px] flex-1",children:[h.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[h.jsx("span",{className:"text-sm font-semibold text-gray-900",children:y.name||y.id}),h.jsx("span",{className:"text-[10px] font-semibold px-2 py-0.5 rounded-full bg-gray-100 text-gray-500",children:y.id}),h.jsx("span",{className:ve("text-[10px] font-semibold px-2 py-0.5 rounded-full",y.enabled?"bg-emerald-50 text-emerald-700":"bg-gray-100 text-gray-500"),children:y.enabled?C("enabled"):C("disabled")}),y.deleteAfterRun&&h.jsx("span",{className:"text-[10px] font-semibold px-2 py-0.5 rounded-full bg-amber-50 text-amber-700",children:C("cronOneShot")})]}),h.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:[C("cronScheduleLabel"),": ",cy(y)]}),h.jsx("div",{className:"mt-2 text-sm text-gray-700 whitespace-pre-wrap break-words",children:y.payload.message}),h.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:[C("cronDeliverTo"),": ",hy(y)]})]}),h.jsxs("div",{className:"min-w-[220px] text-xs text-gray-500 space-y-2",children:[h.jsxs("div",{children:[h.jsxs("span",{className:"font-medium text-gray-700",children:[C("cronNextRun"),":"]})," ",zi(y.state.nextRunAt)]}),h.jsxs("div",{children:[h.jsxs("span",{className:"font-medium text-gray-700",children:[C("cronLastRun"),":"]})," ",zi(y.state.lastRunAt)]}),h.jsxs("div",{children:[h.jsxs("span",{className:"font-medium text-gray-700",children:[C("cronLastStatus"),":"]})," ",y.state.lastStatus??"-"]}),y.state.lastError&&h.jsx("div",{className:"text-[11px] text-red-500 break-words",children:y.state.lastError})]}),h.jsxs("div",{className:"flex items-start gap-2 flex-wrap justify-end",children:[h.jsxs(Oe,{variant:"subtle",size:"sm",onClick:()=>f(y),className:"gap-1",children:[h.jsx(Ml,{className:"h-3.5 w-3.5"}),C("cronRunNow")]}),h.jsxs(Oe,{variant:y.enabled?"outline":"primary",size:"sm",onClick:()=>p(y),className:"gap-1",children:[h.jsx(Nl,{className:"h-3.5 w-3.5"}),y.enabled?C("cronDisable"):C("cronEnable")]}),h.jsxs(Oe,{variant:"destructive",size:"sm",onClick:()=>c(y),className:"gap-1",children:[h.jsx(Xi,{className:"h-3.5 w-3.5"}),C("delete")]})]})]})})},y.id))})}),h.jsx(u,{})]})}function my(e){const{view:t,routeSessionKey:n,selectedSessionKey:r,selectedAgentId:i,setSelectedSessionKey:s,setSelectedAgentId:a,selectedSessionKeyRef:l,resetStreamState:o,resolveAgentIdFromSessionKey:u}=e;k.useEffect(()=>{if(t==="chat"){if(n){r!==n&&s(n);return}r!==null&&(s(null),o())}},[o,n,r,s,t]),k.useEffect(()=>{const d=r?u(r):null;d&&i!==d&&a(d)},[u,i,r,a]),k.useEffect(()=>{l.current=r},[r,l])}function gy({view:e,confirmDialog:t}){return h.jsxs("div",{className:"h-full flex",children:[h.jsx(Ix,{}),e==="chat"?h.jsx(ly,{}):h.jsx("section",{className:"flex-1 min-h-0 overflow-hidden bg-gradient-to-b from-gray-50/60 to-white",children:e==="cron"?h.jsx("div",{className:"h-full overflow-auto custom-scrollbar",children:h.jsx("div",{className:"mx-auto w-full max-w-[min(1120px,100%)] px-6 py-5",children:h.jsx(py,{})})}):h.jsx("div",{className:"h-full overflow-hidden",children:h.jsx("div",{className:"mx-auto flex h-full min-h-0 w-full max-w-[min(1120px,100%)] flex-col px-6 py-5",children:h.jsx(oo,{forcedType:"skills"})})})}),t]})}function xy(){return(e,t)=>fetch(e,{credentials:"include",...t})}const $n="sid_";function yy(e){var r;const t=/^agent:([^:]+):/i.exec(e.trim());if(!t)return null;const n=(r=t[1])==null?void 0:r.trim();return n||null}function by(e){const t=new TextEncoder().encode(e);let n="";for(const i of t)n+=String.fromCharCode(i);const r=btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"");return`${$n}${r}`}function Sy(e){if(!e.startsWith($n))return null;const t=e.slice($n.length).replace(/-/g,"+").replace(/_/g,"/"),n=t.length%4===0?"":"=".repeat(4-t.length%4);try{const r=atob(t+n),i=Uint8Array.from(r,s=>s.charCodeAt(0));return new TextDecoder().decode(i)}catch{return null}}function ky(e){if(!e)return null;const t=Sy(e);if(t)return t;try{return decodeURIComponent(e)}catch{return e}}function wy(e){return`/chat/${by(e)}`}const Se="native";function ze(e){return typeof e!="string"?Se:e.trim().toLowerCase()||Se}function bt(e,t){return e==="native"?C("chatSessionTypeNative"):e.trim().split(/[-_]+/g).filter(Boolean).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")||e}function vy(e){var n;const t=new Map;for(const r of e){const i=ze(r.value);t.set(i,{value:i,label:((n=r.label)==null?void 0:n.trim())||bt(i),ready:r.ready??!0,reason:r.reason??null,reasonMessage:r.reasonMessage??null,supportedModels:r.supportedModels,recommendedModel:r.recommendedModel??null,cta:r.cta??null})}return t.has(Se)||t.set(Se,{value:Se,label:bt(Se),ready:!0,reason:null,reasonMessage:null,supportedModels:void 0,recommendedModel:null,cta:null}),Array.from(t.values()).sort((r,i)=>r.value===Se?-1:i.value===Se?1:r.value.localeCompare(i.value))}function Cy(e){const{selectedSession:t,selectedSessionKey:n,pendingSessionType:r,setPendingSessionType:i,sessionTypesData:s}=e,a=k.useMemo(()=>vy((s==null?void 0:s.options)??[]),[s==null?void 0:s.options]),l=k.useMemo(()=>{const S=[...a],g=ze(t==null?void 0:t.sessionType);return S.some(I=>I.value===g)||S.push({value:g,label:bt(g),ready:!0,reason:null,reasonMessage:null,supportedModels:void 0,recommendedModel:null,cta:null}),S.sort((I,M)=>I.value===Se?-1:M.value===Se?1:I.value.localeCompare(M.value))},[a,t==null?void 0:t.sessionType]),o=k.useMemo(()=>ze((s==null?void 0:s.defaultType)??Se),[s==null?void 0:s.defaultType]),u=k.useRef(null),d=k.useMemo(()=>ze((t==null?void 0:t.sessionType)??r??o),[o,r,t==null?void 0:t.sessionType]),c=k.useMemo(()=>l.find(S=>S.value===d)??null,[d,l]);k.useEffect(()=>{if(n)return;const S=typeof r=="string"?r.trim():"",g=ze(r);(S.length===0||u.current===g||u.current===null&&g===Se)&&(u.current=o,g!==o&&i(o))},[o,r,n,i]);const p=!n||!!(t!=null&&t.sessionTypeMutable),f=k.useMemo(()=>new Set(a.map(S=>S.value)),[a]),m=k.useMemo(()=>t&&!f.has(ze(t.sessionType))?!0:(c==null?void 0:c.ready)===!1,[f,t,c==null?void 0:c.ready]),y=k.useMemo(()=>{var S;return t&&!f.has(ze(t.sessionType))?`${bt(d)} ${C("chatSessionTypeUnavailableSuffix")}`:(c==null?void 0:c.ready)===!1?((S=c.reasonMessage)==null?void 0:S.trim())||`${c.label} setup required`:null},[f,t,d,c]);return{sessionTypeOptions:l,selectedSessionTypeOption:c,defaultSessionType:o,selectedSessionType:d,canEditSessionType:p,sessionTypeUnavailable:m,sessionTypeUnavailableMessage:y}}function Bi(e){return(e==null?void 0:e.trim().toLowerCase())||"native"}function Ty(e,t){if(typeof t!="string")return!1;const n=t.trim();return n?e.some(r=>r.value===n):!1}function Iy(e,t){return typeof t=="string"&&e.includes(t)}function My(e){return e.length===0?null:e.includes("off")?"off":e[0]??null}function ja(e){const{currentValue:t,selectedSessionPreferredValue:n,fallbackPreferredValue:r,defaultValue:i,isValueSupported:s,firstAvailableValue:a,preferSessionPreferredValue:l=!1,preserveCurrentValueOnSessionChange:o=!1}=e;return s(t)&&(!l||o)?t:s(n)?n:s(r)?r:s(i)?i:a}function Ny(e){var n;const{modelOptions:t}=e;return t.length===0?"":ja({currentValue:e.currentSelectedModel,selectedSessionPreferredValue:e.selectedSessionPreferredModel,fallbackPreferredValue:e.fallbackPreferredModel,defaultValue:e.defaultModel,isValueSupported:r=>Ty(t,r),firstAvailableValue:((n=t[0])==null?void 0:n.value)??"",preferSessionPreferredValue:e.preferSessionPreferredModel,preserveCurrentValueOnSessionChange:e.preserveCurrentSelectedModelOnSessionChange})}function Ey(e){const{supportedThinkingLevels:t}=e;return t.length===0?null:ja({currentValue:e.currentSelectedThinkingLevel,selectedSessionPreferredValue:e.selectedSessionPreferredThinking,fallbackPreferredValue:e.fallbackPreferredThinking,defaultValue:e.defaultThinkingLevel,isValueSupported:n=>Iy(t,n),firstAvailableValue:My(t)??"off",preferSessionPreferredValue:e.preferSessionPreferredThinking,preserveCurrentValueOnSessionChange:e.preserveCurrentSelectedThinkingOnSessionChange})}function Pa(e){const t=Bi(e.sessionType);let n,r=Number.NEGATIVE_INFINITY;for(const i of e.sessions){if(i.key===e.selectedSessionKey||Bi(i.sessionType)!==t)continue;const s=e.readPreference(i);if(s==null)continue;const a=Date.parse(i.updatedAt),l=Number.isFinite(a)?a:Number.NEGATIVE_INFINITY;(n===void 0||l>r)&&(n=s,r=l)}return n}function Ly(e){return Pa({sessions:e.sessions,selectedSessionKey:e.selectedSessionKey,sessionType:e.sessionType,readPreference:t=>{var r;return((r=t.preferredModel)==null?void 0:r.trim())||void 0}})}function Ay(e){return Pa({sessions:e.sessions,selectedSessionKey:e.selectedSessionKey,sessionType:e.sessionType,readPreference:t=>t.preferredThinking??void 0})}function Da(e){const{isPreferenceAvailable:t,emptyValue:n,selectedSessionKey:r,selectedSessionExists:i=!1,setValue:s,resolveValue:a}=e,l=k.useRef(void 0),o=k.useRef(a);k.useEffect(()=>{o.current=a},[a]),k.useEffect(()=>{const u=l.current!==r;if(!t){s(n),l.current=r;return}s(d=>o.current({currentValue:d,sessionChanged:u,preserveCurrentValueOnSessionChange:u&&!!r&&!i})),l.current=r},[n,t,i,r,s])}function Ry(e){const{modelOptions:t,selectedSessionKey:n,selectedSessionExists:r=!1,selectedSessionPreferredModel:i,fallbackPreferredModel:s,defaultModel:a,setSelectedModel:l}=e;Da({isPreferenceAvailable:t.length>0,emptyValue:"",selectedSessionKey:n,selectedSessionExists:r,setValue:l,resolveValue:({currentValue:o,sessionChanged:u,preserveCurrentValueOnSessionChange:d})=>Ny({currentSelectedModel:o,modelOptions:t,selectedSessionPreferredModel:i,fallbackPreferredModel:s,defaultModel:a,preferSessionPreferredModel:u,preserveCurrentSelectedModelOnSessionChange:d})})}function jy(e){const{supportedThinkingLevels:t,selectedSessionKey:n,selectedSessionExists:r=!1,selectedSessionPreferredThinking:i,fallbackPreferredThinking:s,defaultThinkingLevel:a,setSelectedThinkingLevel:l}=e;Da({isPreferenceAvailable:t.length>0,emptyValue:null,selectedSessionKey:n,selectedSessionExists:r,setValue:l,resolveValue:({currentValue:o,sessionChanged:u,preserveCurrentValueOnSessionChange:d})=>Ey({currentSelectedThinkingLevel:o,supportedThinkingLevels:t,selectedSessionPreferredThinking:i,fallbackPreferredThinking:s,defaultThinkingLevel:a,preferSessionPreferredThinking:u,preserveCurrentSelectedThinkingOnSessionChange:d})})}function Py(){return El({queryKey:["ncp-session-types"],queryFn:Ql,staleTime:1e4,retry:!1})}function Dy(e,t){const n=t.trim().toLowerCase();return n?e.filter(r=>r.key.toLowerCase().includes(n)):e}function Oy(e){if(!e.supportedModels||e.supportedModels.length===0)return e.modelOptions;const t=new Set(e.supportedModels),n=e.modelOptions.filter(r=>t.has(r.value));return n.length>0?n:e.modelOptions}function Fy(e){var D,O,T,_,z,B,w,E;const t=Gl(),n=Xl(),r=Yl({limit:200}),i=Py(),s=uo("skill"),a=(t.isFetched||t.isSuccess)&&(n.isFetched||n.isSuccess),l=k.useMemo(()=>{const L=To({meta:n.data,config:t.data,onlyConfigured:!0}),H=new Set,P=[];for(const v of L)for(const j of v.models){const $=Io(v.prefix,j);!$||H.has($)||(H.add($),P.push({value:$,modelLabel:j,providerLabel:v.displayName,thinkingCapability:Mo(v.modelThinking,j,v.aliases)}))}return P.sort((v,j)=>{const $=v.providerLabel.localeCompare(j.providerLabel);return $!==0?$:v.modelLabel.localeCompare(j.modelLabel)})},[n.data,t.data]),o=k.useMemo(()=>{var L;return((L=r.data)==null?void 0:L.sessions)??[]},[(D=r.data)==null?void 0:D.sessions]),u=k.useMemo(()=>bo(o),[o]),d=k.useMemo(()=>Dy(u,e.query),[u,e.query]),c=k.useMemo(()=>u.find(L=>L.key===e.selectedSessionKey)??null,[u,e.selectedSessionKey]),p=k.useMemo(()=>{var L;return((L=s.data)==null?void 0:L.records)??[]},[(O=s.data)==null?void 0:O.records]),f=Cy({selectedSession:c,selectedSessionKey:e.selectedSessionKey,pendingSessionType:e.pendingSessionType,setPendingSessionType:e.setPendingSessionType,sessionTypesData:i.data}),m=k.useMemo(()=>{var L;return Oy({modelOptions:l,supportedModels:(L=f.selectedSessionTypeOption)==null?void 0:L.supportedModels})},[l,(T=f.selectedSessionTypeOption)==null?void 0:T.supportedModels]),y=k.useMemo(()=>Ly({sessions:u,selectedSessionKey:e.selectedSessionKey,sessionType:f.selectedSessionType}),[u,e.selectedSessionKey,f.selectedSessionType]),S=k.useMemo(()=>m.find(L=>L.value===e.currentSelectedModel),[m,e.currentSelectedModel]),g=k.useMemo(()=>{var L;return((L=S==null?void 0:S.thinkingCapability)==null?void 0:L.supported)??[]},[(_=S==null?void 0:S.thinkingCapability)==null?void 0:_.supported]),I=k.useMemo(()=>{var L;return((L=S==null?void 0:S.thinkingCapability)==null?void 0:L.default)??null},[(z=S==null?void 0:S.thinkingCapability)==null?void 0:z.default]),M=k.useMemo(()=>Ay({sessions:u,selectedSessionKey:e.selectedSessionKey,sessionType:f.selectedSessionType}),[u,e.selectedSessionKey,f.selectedSessionType]);return Ry({modelOptions:m,selectedSessionKey:e.selectedSessionKey,selectedSessionExists:!!c,selectedSessionPreferredModel:c==null?void 0:c.preferredModel,fallbackPreferredModel:((B=f.selectedSessionTypeOption)==null?void 0:B.recommendedModel)??y,defaultModel:((w=f.selectedSessionTypeOption)==null?void 0:w.recommendedModel)??((E=t.data)==null?void 0:E.agents.defaults.model),setSelectedModel:e.setSelectedModel}),jy({supportedThinkingLevels:g,selectedSessionKey:e.selectedSessionKey,selectedSessionExists:!!c,selectedSessionPreferredThinking:(c==null?void 0:c.preferredThinking)??null,fallbackPreferredThinking:M??null,defaultThinkingLevel:I,setSelectedThinkingLevel:e.setSelectedThinkingLevel}),{configQuery:t,configMetaQuery:n,sessionsQuery:r,sessionTypesQuery:i,installedSkillsQuery:s,isProviderStateResolved:a,modelOptions:m,sessionSummaries:o,sessions:d,skillRecords:p,selectedSession:c,...f}}function _y(e,t){if(e===t)return!0;if(e.size!==t.size)return!1;for(const[n,r]of e.entries())if(!Object.is(r,t.get(n)))return!1;return!0}class zy{constructor(){this.syncSnapshot=t=>{const n=Un.getState().snapshot,r=t.sessionRunStatusByKey;(!r||_y(n.sessionRunStatusByKey,r))&&(t.isLocallyRunning===void 0||Object.is(n.isLocallyRunning,t.isLocallyRunning))&&(t.activeBackendRunId===void 0||Object.is(n.activeBackendRunId,t.activeBackendRunId))||Un.getState().setSnapshot(t)}}}class By{constructor(t,n){this.uiManager=t,this.streamActionsManager=n,this.hasSnapshotChanges=r=>{const i=ae.getState().snapshot;for(const[s,a]of Object.entries(r))if(!Object.is(i[s],a))return!0;return!1},this.resolveUpdateValue=(r,i)=>typeof i=="function"?i(r):i,this.syncSnapshot=r=>{this.hasSnapshotChanges(r)&&ae.getState().setSnapshot(r)},this.setSelectedAgentId=r=>{const i=ae.getState().snapshot.selectedAgentId,s=this.resolveUpdateValue(i,r);s!==i&&ae.getState().setSnapshot({selectedAgentId:s})},this.setSelectedSessionKey=r=>{const i=ae.getState().snapshot.selectedSessionKey,s=this.resolveUpdateValue(i,r);s!==i&&ae.getState().setSnapshot({selectedSessionKey:s})},this.createSession=r=>{const{snapshot:i}=Y.getState(),{defaultSessionType:s}=i,a=s||"native",l=typeof r=="string"&&r.trim().length>0?r.trim():a;this.streamActionsManager.resetStreamState(),Y.getState().setSnapshot({pendingSessionType:l}),this.uiManager.goToChatRoot()},this.selectSession=r=>{this.uiManager.goToSession(r)},this.setQuery=r=>{const i=ae.getState().snapshot.query,s=this.resolveUpdateValue(i,r);s!==i&&ae.getState().setSnapshot({query:s})}}}const Mn=async()=>{},Hi=()=>{};class Hy{constructor(){this.actions={sendMessage:Mn,stopCurrentRun:Mn,resumeRun:Mn,resetStreamState:Hi,applyHistoryMessages:Hi},this.bind=t=>{this.actions={...this.actions,...t}},this.sendMessage=t=>this.actions.sendMessage(t),this.stopCurrentRun=()=>this.actions.stopCurrentRun(),this.resumeRun=t=>this.actions.resumeRun(t),this.resetStreamState=()=>this.actions.resetStreamState(),this.applyHistoryMessages=(t,n)=>this.actions.applyHistoryMessages(t,n)}}const Uy=async e=>!1;class Vy{constructor(){this.state={pathname:""},this.actions={navigate:null,confirm:Uy},this.syncState=t=>{this.state={...this.state,...t}},this.bindActions=t=>{this.actions={...this.actions,...t}},this.confirm=async t=>this.actions.confirm(t),this.navigateTo=(t,n)=>{this.actions.navigate&&(this.state.pathname===t&&!(n!=null&&n.replace)||(this.actions.navigate(t,n),this.state.pathname=t))},this.goToProviders=()=>{this.navigateTo("/providers")},this.goToChatRoot=t=>{this.navigateTo("/chat",t)},this.goToSession=(t,n)=>{this.navigateTo(wy(t),n)}}}function $y(e){const t=e.trim();return t.length>0?t:null}function Ky(e){return e??null}class qy{constructor(t){this.updateSession=t,this.inFlight=null,this.queued=null,this.syncSelectedSessionPreferences=()=>{const n=Y.getState().snapshot,i=ae.getState().snapshot.selectedSessionKey;i&&this.enqueue({sessionKey:i,patch:{preferredModel:$y(n.selectedModel),preferredThinking:Ky(n.selectedThinkingLevel)}})}}enqueue(t){this.queued=t,!this.inFlight&&this.startFlush()}startFlush(){this.inFlight=this.flush().catch(t=>{console.error(`Failed to sync chat session preferences: ${String(t)}`)}).finally(()=>{this.inFlight=null,this.queued&&this.startFlush()})}async flush(){for(;this.queued;){const t=this.queued;this.queued=null,await this.updateSession(t.sessionKey,t.patch)}}}class Wy{constructor(t,n,r){this.uiManager=t,this.streamActionsManager=n,this.getDraftSessionId=r,this.sessionPreferenceSync=new qy(Yi),this.buildAttachmentSignature=i=>[i.assetUri??"",i.url??"",i.name,i.mimeType,String(i.sizeBytes),i.contentBase64??""].join(":"),this.hasSnapshotChanges=i=>{const s=Y.getState().snapshot;for(const[a,l]of Object.entries(i))if(!Object.is(s[a],l))return!0;return!1},this.resolveUpdateValue=(i,s)=>typeof s=="function"?s(i):s,this.isSameStringArray=(i,s)=>i.length===s.length&&i.every((a,l)=>a===s[l]),this.syncComposerSnapshot=i=>{const s=Y.getState().snapshot.attachments,a=gx(i,s);Y.getState().setSnapshot({composerNodes:i,attachments:a,draft:ji(i),selectedSkills:Pi(i)})},this.syncComposerSnapshotWithAttachments=(i,s)=>{Y.getState().setSnapshot({composerNodes:i,attachments:s,draft:ji(i),selectedSkills:Pi(i)})},this.dedupeAttachments=i=>{const s=new Set,a=[];for(const l of i){const o=this.buildAttachmentSignature(l);s.has(o)||(s.add(o),a.push(l))}return a},this.syncSnapshot=i=>{if(this.hasSnapshotChanges(i)&&(Y.getState().setSnapshot(i),Object.prototype.hasOwnProperty.call(i,"modelOptions")||Object.prototype.hasOwnProperty.call(i,"selectedModel")||Object.prototype.hasOwnProperty.call(i,"selectedThinkingLevel"))){const{selectedModel:s}=Y.getState().snapshot;this.reconcileThinkingForModel(s)}},this.setDraft=i=>{const s=Y.getState().snapshot.draft,a=this.resolveUpdateValue(s,i);a!==s&&this.syncComposerSnapshot(fx(a))},this.setComposerNodes=i=>{const s=Y.getState().snapshot.composerNodes,a=this.resolveUpdateValue(s,i);Object.is(a,s)||this.syncComposerSnapshot(a)},this.addAttachments=i=>{if(i.length===0)return[];const s=Y.getState().snapshot,a=new Set(s.attachments.map(this.buildAttachmentSignature)),l=this.dedupeAttachments([...s.attachments,...i]),o=l.filter(d=>!a.has(this.buildAttachmentSignature(d)));if(o.length===0)return[];const u=Di(s.composerNodes,l);return this.syncComposerSnapshotWithAttachments(u,l),o},this.restoreComposerState=(i,s)=>{const a=this.dedupeAttachments(s),l=Di(i,a);this.syncComposerSnapshotWithAttachments(l,a)},this.setPendingSessionType=i=>{const s=Y.getState().snapshot.pendingSessionType,a=this.resolveUpdateValue(s,i);a!==s&&Y.getState().setSnapshot({pendingSessionType:a})},this.send=async()=>{const i=Y.getState().snapshot,s=ae.getState().snapshot,a=i.draft.trim(),l=i.attachments,o=xx(i.composerNodes,l);if(!o.some(f=>f.type!=="text"||f.text.trim().length>0))return;const{selectedSkills:d,composerNodes:c}=i,p=s.selectedSessionKey??this.getDraftSessionId();s.selectedSessionKey||this.uiManager.goToSession(p,{replace:!0}),this.setComposerNodes(Aa()),await this.streamActionsManager.sendMessage({message:a,sessionKey:p,agentId:s.selectedAgentId,sessionType:i.selectedSessionType,model:i.selectedModel||void 0,thinkingLevel:i.selectedThinkingLevel??void 0,stopSupported:!0,requestedSkills:d,attachments:l,parts:o,restoreDraftOnError:!0,composerNodes:c})},this.stop=async()=>{await this.streamActionsManager.stopCurrentRun()},this.goToProviders=()=>{this.uiManager.goToProviders()},this.setSelectedModel=i=>{const s=Y.getState().snapshot.selectedModel,a=this.resolveUpdateValue(s,i);a!==s&&(Y.getState().setSnapshot({selectedModel:a}),this.reconcileThinkingForModel(a))},this.setSelectedThinkingLevel=i=>{const s=Y.getState().snapshot.selectedThinkingLevel,a=this.resolveUpdateValue(s,i);a!==s&&Y.getState().setSnapshot({selectedThinkingLevel:a})},this.selectSessionType=i=>{const s=ze(i);Y.getState().setSnapshot({selectedSessionType:s,pendingSessionType:s})},this.setSelectedSkills=i=>{const s=Y.getState().snapshot,{selectedSkills:a}=s,l=this.resolveUpdateValue(a,i);this.isSameStringArray(l,a)||this.syncComposerSnapshot(mx(s.composerNodes,l,s.skillRecords))},this.selectModel=i=>{this.setSelectedModel(i),this.sessionPreferenceSync.syncSelectedSessionPreferences()},this.selectThinkingLevel=i=>{this.setSelectedThinkingLevel(i),this.sessionPreferenceSync.syncSelectedSessionPreferences()},this.selectSkills=i=>{this.setSelectedSkills(i)}}resolveThinkingForModel(t,n){const r=t==null?void 0:t.thinkingCapability;return!r||r.supported.length===0?null:n==="off"?"off":n&&r.supported.includes(n)?n:r.default&&r.supported.includes(r.default)?r.default:"off"}reconcileThinkingForModel(t){const n=Y.getState().snapshot,r=n.modelOptions.find(a=>a.value===t),{selectedThinkingLevel:i}=n,s=this.resolveThinkingForModel(r,i);s!==i&&Y.getState().setSnapshot({selectedThinkingLevel:s})}}const Qy=async()=>{};class Gy{constructor(t,n,r){this.uiManager=t,this.sessionListManager=n,this.streamActionsManager=r,this.actions={refetchSessions:Qy},this.bindActions=i=>{this.actions={...this.actions,...i}},this.hasSnapshotChanges=i=>{const s=ct.getState().snapshot;for(const[a,l]of Object.entries(i))if(!Object.is(s[a],l))return!0;return!1},this.syncSnapshot=i=>{this.hasSnapshotChanges(i)&&ct.getState().setSnapshot(i)},this.deleteSession=()=>{this.deleteCurrentSession()},this.createSession=()=>{this.sessionListManager.createSession()},this.goToProviders=()=>{this.uiManager.goToProviders()},this.deleteCurrentSession=async()=>{const{snapshot:{selectedSessionKey:i}}=ae.getState();if(!(!i||!await this.uiManager.confirm({title:C("chatDeleteSessionConfirm"),variant:"destructive",confirmLabel:C("delete")}))){ct.getState().setSnapshot({isDeletePending:!0});try{await Jl(i),this.streamActionsManager.resetStreamState(),this.uiManager.goToChatRoot({replace:!0}),await this.actions.refetchSessions()}finally{ct.getState().setSnapshot({isDeletePending:!1})}}}}}class Xy{constructor(){this.chatUiManager=new Vy,this.chatStreamActionsManager=new Hy,this.chatSessionListManager=new By(this.chatUiManager,this.chatStreamActionsManager),this.chatInputManager=new Wy(this.chatUiManager,this.chatStreamActionsManager,()=>this.getDraftSessionId()),this.chatRunStatusManager=new zy,this.chatThreadManager=new Gy(this.chatUiManager,this.chatSessionListManager,this.chatStreamActionsManager),this.draftSessionId="",this.setDraftSessionId=t=>{this.draftSessionId=t}}getDraftSessionId(){return this.draftSessionId}}function Yy(e){if(!Array.isArray(e))return[];const t=new Set;for(const n of e){const r=n.trim();r&&t.add(r)}return[...t]}function Jy(e){var r,i,s;const t={};(r=e.model)!=null&&r.trim()&&(t.model=e.model.trim(),t.preferred_model=e.model.trim()),(i=e.thinkingLevel)!=null&&i.trim()&&(t.thinking=e.thinkingLevel.trim(),t.preferred_thinking=e.thinkingLevel.trim()),(s=e.sessionType)!=null&&s.trim()&&(t.session_type=e.sessionType.trim());const n=Yy(e.requestedSkills);return n.length>0&&(t.requested_skills=n),t}function Zy(e){return e instanceof Error?e.message.includes("ncp session not found:"):!1}function eb({view:e}){var He,It,Mt;const[t]=k.useState(()=>new Xy),[n,r]=k.useState(()=>vr()),i=ae(K=>K.snapshot.query),s=ae(K=>K.snapshot.selectedSessionKey),a=ae(K=>K.snapshot.selectedAgentId),l=Y(K=>K.snapshot.pendingSessionType),o=Y(K=>K.snapshot.selectedModel),{confirm:u,ConfirmDialog:d}=ts(),c=Ll(),p=Al(),{sessionId:f}=Rl(),m=k.useRef(null),y=k.useRef(s),S=k.useMemo(()=>ky(f),[f]),{sessionsQuery:g,installedSkillsQuery:I,isProviderStateResolved:M,modelOptions:D,sessionSummaries:O,sessions:T,skillRecords:_,selectedSession:z,sessionTypeOptions:B,defaultSessionType:w,selectedSessionType:E,canEditSessionType:L,sessionTypeUnavailable:H,sessionTypeUnavailableMessage:P}=Fy({query:i,selectedSessionKey:s,currentSelectedModel:o,pendingSessionType:l,setPendingSessionType:t.chatInputManager.setPendingSessionType,setSelectedModel:t.chatInputManager.setSelectedModel,setSelectedThinkingLevel:t.chatInputManager.setSelectedThinkingLevel}),v=g.refetch,j=s??n,$=k.useRef(O);k.useEffect(()=>{$.current=O},[O]);const[te]=k.useState(()=>new Bo({baseUrl:Ji,basePath:"/api/ncp/agent",fetchImpl:xy()})),pe=k.useCallback(async(K,Ue)=>{Ue.throwIfAborted();let Ie=null;try{Ie=await Zl(K,300)}catch(je){if(!Zy(je))throw je}Ue.throwIfAborted();const Re=$.current.find(je=>je.sessionId===K)??null;return{messages:(Ie==null?void 0:Ie.messages)??[],status:(Re==null?void 0:Re.status)==="running"?"running":"idle"}},[]),x=Jo({sessionId:j,client:te,loadSeed:pe});k.useEffect(()=>{t.setDraftSessionId(n)},[n,t]),k.useEffect(()=>{if(s===null){const K=vr();r(K),t.setDraftSessionId(K)}},[t,s]);const le=k.useMemo(()=>So(x.visibleMessages),[x.visibleMessages]),se=x.isSending||x.isRunning,b=x.isRunning,he=x.isRunning,Te=x.isRunning?null:"__preparing__",re=((He=x.hydrateError)==null?void 0:He.message)??((It=x.snapshot.error)==null?void 0:It.message)??null,me=x.activeRunId,ke=k.useMemo(()=>ko({summaries:O,activeSessionId:j,isLocallyRunning:se||!!me}),[me,j,se,O]);k.useEffect(()=>{!se&&!me||v()},[me,se,v]),k.useEffect(()=>{t.chatStreamActionsManager.bind({sendMessage:async K=>{var Re,je;if(K.sessionKey!==j)return;const Ue=Jy({model:K.model,thinkingLevel:K.thinkingLevel,sessionType:K.sessionType,requestedSkills:K.requestedSkills}),Ie=tu({sessionId:K.sessionKey,text:K.message,attachments:K.attachments,parts:K.parts,metadata:Ue});if(Ie)try{g.refetch(),await x.send(Ie),await g.refetch()}catch(Nt){throw K.restoreDraftOnError&&(K.composerNodes&&K.composerNodes.length>0?(je=(Re=t.chatInputManager).restoreComposerState)==null||je.call(Re,K.composerNodes,K.attachments??[]):t.chatInputManager.setDraft(nt=>nt.trim().length===0?K.message:nt)),Nt}},stopCurrentRun:async()=>{await x.abort(),await g.refetch()},resumeRun:async K=>{K.sessionKey===j&&await x.streamRun()},resetStreamState:()=>{y.current=null},applyHistoryMessages:()=>{}})},[j,x,t,g]),my({view:e,routeSessionKey:S,selectedSessionKey:s,selectedAgentId:a,setSelectedSessionKey:t.chatSessionListManager.setSelectedSessionKey,setSelectedAgentId:t.chatSessionListManager.setSelectedAgentId,selectedSessionKeyRef:y,resetStreamState:t.chatStreamActionsManager.resetStreamState,resolveAgentIdFromSessionKey:yy}),k.useEffect(()=>{t.chatUiManager.syncState({pathname:c.pathname}),t.chatUiManager.bindActions({navigate:p,confirm:u})},[u,c.pathname,p,t]);const Le=z?wo(z):void 0,Ae=((Mt=B.find(K=>K.value===E))==null?void 0:Mt.label)??bt(E);return k.useEffect(()=>{t.chatThreadManager.bindActions({refetchSessions:g.refetch})},[t,g.refetch]),k.useEffect(()=>{t.chatInputManager.syncSnapshot({isProviderStateResolved:M,defaultSessionType:w,canStopGeneration:he,stopDisabledReason:Te,stopSupported:!0,stopReason:void 0,sendError:re,isSending:se,modelOptions:D,sessionTypeOptions:B,selectedSessionType:E,canEditSessionType:L,sessionTypeUnavailable:H,skillRecords:_,isSkillsLoading:I.isLoading}),t.chatSessionListManager.syncSnapshot({sessions:T,query:i,isLoading:g.isLoading}),t.chatRunStatusManager.syncSnapshot({sessionRunStatusByKey:ke,isLocallyRunning:se||!!me,activeBackendRunId:me}),t.chatThreadManager.syncSnapshot({isProviderStateResolved:M,modelOptions:D,sessionTypeUnavailable:H,sessionTypeUnavailableMessage:P,sessionTypeLabel:Ae,selectedSessionKey:s,sessionDisplayName:Le,canDeleteSession:!!z,threadRef:m,isHistoryLoading:x.isHydrating,uiMessages:le,isSending:se,isAwaitingAssistantOutput:b})},[me,x.isHydrating,L,he,Le,Ae,w,I.isLoading,b,M,se,re,D.length,D,t,i,z,s,E,ke,B,H,P,T,g.isLoading,_,Te,m,le]),h.jsx(lu,{presenter:t,children:h.jsx(gy,{view:e,confirmDialog:h.jsx(d,{})})})}function fb({view:e}){return h.jsx(eb,{view:e})}export{fb as ChatPage};