@m6d/cortex-react 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -112,6 +112,7 @@ export type CortexConfig = {
112
112
  export type CortexReactConfig = CortexConfig & {
113
113
  toolComponents?: Record<string, ComponentType<CortexToolComponentInputs>>;
114
114
  };
115
+ /** The chat widget: the thread list, the open conversation and its composer, for the agent `config` points at. */
115
116
  export declare function CortexChatWidget({ config, className, }: {
116
117
  config: CortexReactConfig;
117
118
  /** Sizing classes for the host. */
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- var B2=Object.create;var{getPrototypeOf:D2,defineProperty:J0,getOwnPropertyNames:H2}=Object;var U2=Object.prototype.hasOwnProperty;var D_=(_,N,$)=>{$=_!=null?B2(D2(_)):{};let J=N||!_||!_.__esModule?J0($,"default",{value:_,enumerable:!0}):$;for(let X of H2(_))if(!U2.call(J,X))J0(J,X,{get:()=>_[X],enumerable:!0});return J};var H_=((_)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(_,{get:(N,$)=>(typeof require<"u"?require:N)[$]}):_)(function(_){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+_+'" is not supported')});import{useEffect as x8,useRef as G2,useState as t_}from"react";var e_=["en","ar"];var _1=["image/png","image/jpeg","image/webp","application/pdf"];var X0=5;function Y0(_,N){if(!_1.some(($)=>$===_))return"type";if(N>10485760)return"size";return"ok"}function N1(_){return{..._,role:_.role==="trigger"?"user":_.role}}var Q0="clientToolAnswers",$1="X-Cortex-Timezone";function J1(_){let N=_.getHeaders();return N instanceof Promise?N.then(G0):Promise.resolve(G0(N))}function G0(_){let N={..._},$=F2(),J=Object.keys(N).some((X)=>X.toLowerCase()===$1.toLowerCase());if($&&!J)N[$1]=$;return N}function F2(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function L2(_,N){let $=_.baseUrl;return(typeof $==="string"?$:$()).replace(/\/$/,"")+N}function k2(_){let N=_?.match(/filename\*\s*=\s*[^']*'[^']*'([^;\r\n]+)/i)?.[1]?.trim().replace(/^"|"$/g,"");if(N)try{return decodeURIComponent(N)}catch{}return _?.match(/filename\s*=\s*"?([^";\r\n]+)"?/i)?.[1]}function X1(_){function N(){return J1(_())}function $(X){return L2(_(),X)}async function J(X,Y){let Q=new Headers(await N());if(new Headers(Y?.headers).forEach(function(V,z){Q.set(z,V)}),Y?.body instanceof FormData)Q.delete("Content-Type");else if(!Q.has("Content-Type"))Q.set("Content-Type","application/json");let Z=await fetch($(X),{...Y,headers:Q});if(!Z.ok)throw Error(`HTTP ${Z.status}: ${Z.statusText}`);let G=await Z.text();return G?JSON.parse(G):void 0}return{getCapabilities(){return J("/capabilities")},listThreads(){return J("/threads")},createThread(){return J("/threads",{method:"POST"})},deleteThread(X){return J(`/threads/${X}`,{method:"DELETE"})},listMessages(X){return J(`/threads/${X}/messages`)},listLlmRequests(X){return J(`/messages/${X}/llm-requests`)},abortStream(X){return J(`/chat/${X}/abort`,{method:"POST"})},initiateToolCall(X,Y){return J(`/chat/${X}/tools/${Y}/initiate`,{method:"POST"})},async uploadAttachment(X,Y){let Q=new FormData;return Q.append("file",Y),await J(`/threads/${X}/files`,{method:"POST",body:Q})},deleteAttachment(X){return J(`/files/${X}`,{method:"DELETE"})},async downloadAttachment(X){let Y=await fetch($(`/files/${X}`),{headers:await N()});if(!Y.ok)throw Error(`HTTP ${Y.status}: ${Y.statusText}`);return{blob:await Y.blob(),name:k2(Y.headers.get("Content-Disposition"))??X}},resolveHeaders:N,resolveUrl:$}}var O2={complete:"success",error:"error","approval-requested":"approval","approval-responded":"approval","awaiting-input":"pending","input-streaming":"pending","input-complete":"pending"},M2={"awaiting-input":"translate_calling","input-streaming":"translate_calling","input-complete":"translate_input_ready","approval-requested":"translate_needs_approval","approval-responded":"translate_responded",complete:"translate_completed",error:"translate_error"};function Y1(_){let{state:N,approval:$}=_;return{modifier:O2[N],labelKey:$?.approved===!1?"translate_declined":N==="approval-responded"&&$?.approved?"translate_approved":M2[N],pulse:N==="awaiting-input"||N==="input-streaming"?"default":N==="approval-requested"?"violet":void 0}}function Q1(_){let N=_.output;if(N===void 0||N===null)return"";if(typeof N==="string")return N;return JSON.stringify(N,null,2)}var Z0={code:"javascript",query:"cypher"};function G1(_){let N=_&&typeof _==="object"?_:null,$=N?Object.entries(Z0).flatMap(([X,Y])=>{let Q=N[X];return typeof Q==="string"?[{key:X,lang:Y,value:Q.replace(/\\n/g,`
2
- `)}]:[]}):[],J=_;if(N){let X=Object.fromEntries(Object.entries(N).filter(([Y])=>!Object.hasOwn(Z0,Y)));J=Object.keys(X).length>0?X:null}return{codeSnippets:$,remainingInput:J,remainingInputText:J?JSON.stringify(J,null,2):""}}var V0=10,P2={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function A2(_){let N=0;for(let $=0;$<_.length;$++)N=N*31+_.charCodeAt($)|0;return Math.abs(N)%V0}function E2(_){let N=_.input;if(!N||typeof N!=="object"||!("status"in N))return;let $=N.status;return typeof $==="string"&&$.trim()?$.trim():void 0}function R2(_){let N=_.output;if(typeof N==="string")try{N=JSON.parse(N)}catch{return!1}return!!N&&typeof N==="object"&&"error"in N&&N.error===!0}function y2(_){let N=_.output;if(!N||typeof N!=="object"||!("rowCount"in N))return;return typeof N.rowCount==="number"?N.rowCount:void 0}function w2(_,N,$){if($)return"translate_declined";if(N==="error")return"translate_tool_error";if(N==="approval")return"translate_needs_approval";let J=_.name==="readAttachment"?"attachment":"tool",X=J==="tool"?`_${A2(_.id)}`:"";return`translate_${J}_${N==="complete"?"done":"status"}${X}`}function U_(_){let N=_.approval?.approved===!1,J=N||_.state==="complete"&&R2(_)?"error":P2[_.state]??"processing";return{state:J,active:J==="starting"||J==="processing",gated:_.approval!==void 0,titleKey:w2(_,J,N),statement:E2(_),rowCount:J==="complete"?y2(_):void 0}}function Z1(_,N){let $=_.metadata;if(!$||typeof $!=="object"||!("cortex"in $))return;return($.cortex??void 0)?.approval?.[N]||void 0}function V1(_){return Array.from({length:V0},(N,$)=>`translate_${_}_${$}`)}function F_(_,N){return _.filter(($,J)=>{if($.type==="tool-result")return!1;if(N.debugMode)return!0;if(N.fold?.get($)?.kind==="hidden")return!1;if($.type==="text"&&!$.content.trim())return!1;let X=J===_.length-1;return $.type!=="thinking"||N.isStreaming&&X})}function z1(_){return _.filter((N)=>N.type==="text").map((N)=>N.content).join(`
1
+ var L2=Object.create;var{getPrototypeOf:k2,defineProperty:z0,getOwnPropertyNames:M2}=Object;var O2=Object.prototype.hasOwnProperty;var H_=(_,$,X)=>{X=_!=null?L2(k2(_)):{};let N=$||!_||!_.__esModule?z0(X,"default",{value:_,enumerable:!0}):X;for(let Y of M2(_))if(!O2.call(N,Y))z0(N,Y,{get:()=>_[Y],enumerable:!0});return N};var B_=((_)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(_,{get:($,X)=>(typeof require<"u"?require:$)[X]}):_)(function(_){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+_+'" is not supported')});import{useEffect as d8,useRef as W2,useState as t_}from"react";var e_=["en","ar"];var _1=["image/png","image/jpeg","image/webp","application/pdf"];var V0=5;function K0(_,$){if(!_1.some((X)=>X===_))return"type";if($>10485760)return"size";return"ok"}function $1(_){return{..._,role:_.role==="trigger"?"user":_.role}}var W0="clientToolAnswers";function D0(_){return _.approval?.id??`approval_${_.id}`}var X1="X-Cortex-Timezone";function N1(_){let $=_.getHeaders();return $ instanceof Promise?$.then(H0):Promise.resolve(H0($))}function H0(_){let $={..._},X=P2(),N=Object.keys($).some((Y)=>Y.toLowerCase()===X1.toLowerCase());if(X&&!N)$[X1]=X;return $}function P2(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function A2(_,$){let X=_.baseUrl;return(typeof X==="string"?X:X()).replace(/\/$/,"")+$}function E2(_){let $=_?.match(/filename\*\s*=\s*[^']*'[^']*'([^;\r\n]+)/i)?.[1]?.trim().replace(/^"|"$/g,"");if($)try{return decodeURIComponent($)}catch{}return _?.match(/filename\s*=\s*"?([^";\r\n]+)"?/i)?.[1]}function Y1(_){function $(){return N1(_())}function X(Y){return A2(_(),Y)}async function N(Y,Q){let Z=new Headers(await $());if(new Headers(Q?.headers).forEach((z,V)=>{Z.set(V,z)}),Q?.body instanceof FormData)Z.delete("Content-Type");else if(!Z.has("Content-Type"))Z.set("Content-Type","application/json");let G=await fetch(X(Y),{...Q,headers:Z});if(!G.ok)throw Error(`HTTP ${G.status}: ${G.statusText}`);let J=await G.text();return J?JSON.parse(J):void 0}return{getCapabilities(){return N("/capabilities")},listThreads(){return N("/threads")},createThread(){return N("/threads",{method:"POST"})},deleteThread(Y){return N(`/threads/${Y}`,{method:"DELETE"})},listMessages(Y){return N(`/threads/${Y}/messages`)},listLlmRequests(Y){return N(`/messages/${Y}/llm-requests`)},abortStream(Y){return N(`/chat/${Y}/abort`,{method:"POST"})},initiateToolCall(Y,Q){return N(`/chat/${Y}/tools/${Q}/initiate`,{method:"POST"})},uploadAttachment(Y,Q){let Z=new FormData;return Z.append("file",Q),N(`/threads/${Y}/files`,{method:"POST",body:Z})},deleteAttachment(Y){return N(`/files/${Y}`,{method:"DELETE"})},async downloadAttachment(Y){let Q=await fetch(X(`/files/${Y}`),{headers:await $()});if(!Q.ok)throw Error(`HTTP ${Q.status}: ${Q.statusText}`);return{blob:await Q.blob(),name:E2(Q.headers.get("Content-Disposition"))??Y}},resolveHeaders:$,resolveUrl:X}}var y2={complete:"success",error:"error","approval-requested":"approval","approval-responded":"approval","awaiting-input":"pending","input-streaming":"pending","input-complete":"pending"},R2={"awaiting-input":"translate_calling","input-streaming":"translate_calling","input-complete":"translate_input_ready","approval-requested":"translate_needs_approval","approval-responded":"translate_responded",complete:"translate_completed",error:"translate_error"};function Q1(_){let{state:$,approval:X}=_;return{modifier:y2[$],labelKey:X?.approved===!1?"translate_declined":$==="approval-responded"&&X?.approved?"translate_approved":R2[$],pulse:$==="awaiting-input"||$==="input-streaming"?"default":$==="approval-requested"?"violet":void 0}}function Z1(_){let $=_.output;if($===void 0||$===null)return"";if(typeof $==="string")return $;return JSON.stringify($,null,2)}var B0={code:"javascript",query:"cypher"};function G1(_){let $=_&&typeof _==="object"?_:null,X=$?Object.entries(B0).flatMap(([Y,Q])=>{let Z=$[Y];return typeof Z==="string"?[{key:Y,lang:Q,value:Z.replace(/\\n/g,`
2
+ `)}]:[]}):[],N=_;if($){let Y=Object.fromEntries(Object.entries($).filter(([Q])=>!Object.hasOwn(B0,Q)));N=Object.keys(Y).length>0?Y:null}return{codeSnippets:X,remainingInput:N,remainingInputText:N?JSON.stringify(N,null,2):""}}var q0=10,w2={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function I2(_){let $=0;for(let X=0;X<_.length;X++)$=$*31+_.charCodeAt(X)|0;return Math.abs($)%q0}function b2(_){let $=_.input;if(!$||typeof $!=="object"||!("status"in $))return;let X=$.status;return typeof X==="string"&&X.trim()?X.trim():void 0}function C2(_){let $=_.output;if(typeof $==="string")try{$=JSON.parse($)}catch{return!1}return!!$&&typeof $==="object"&&"error"in $&&$.error===!0}function S2(_){let $=_.output;if(!$||typeof $!=="object"||!("rowCount"in $))return;return typeof $.rowCount==="number"?$.rowCount:void 0}function v2(_,$,X){if(X)return"translate_declined";if($==="error")return"translate_tool_error";if($==="approval")return"translate_needs_approval";let N=_.name==="readAttachment"?"attachment":"tool",Y=N==="tool"?`_${I2(_.id)}`:"";return`translate_${N}_${$==="complete"?"done":"status"}${Y}`}function q_(_){let $=_.approval?.approved===!1,N=$||_.state==="complete"&&C2(_)?"error":w2[_.state]??"processing";return{state:N,active:N==="starting"||N==="processing",gated:_.approval!==void 0,titleKey:v2(_,N,$),statement:b2(_),rowCount:N==="complete"?S2(_):void 0}}function J1(_,$){let X=_.metadata;if(!X||typeof X!=="object"||!("cortex"in X))return;return X.cortex?.approval?.[$]||void 0}function z1(_){return Array.from({length:q0},($,X)=>`translate_${_}_${X}`)}function F_(_,$){return _.filter((X,N)=>{if(X.type==="tool-result")return!1;if($.debugMode)return!0;if($.fold?.get(X)?.kind==="hidden")return!1;if(X.type==="text"&&!X.content.trim())return!1;let Y=N===_.length-1;return X.type!=="thinking"||$.isStreaming&&Y})}function V1(_){return _.filter(($)=>$.type==="text").map(($)=>$.content).join(`
3
3
 
4
- `)}var b2=new Set(["complete","error"]);function m(_){return b2.has(_)}function o(_){return(I2(_)?.parts??[]).filter(($)=>$.type==="tool-call"&&!m($.state))}function K1(_){let N=_.at(-1);if(N?.role!=="assistant")return;let $=N.parts.at(-1),J=$?.type==="tool-call"||$?.type==="tool-result",X=N.parts.every((Y)=>Y.type!=="tool-call"||m(Y.state));return J&&X?void 0:N}function I2(_){for(let N=_.length-1;N>=0;N-=1){let $=_[N];if($?.role==="assistant")return $}return}function q1(){let _=new Map;return(N,$)=>{let J=new Map;for(let[X,Y]of C2(N,$)){let Q=_.get(X);J.set(X,Q&&v2(Q,Y)?Q:Y)}return _=J,J}}function C2(_,N){let $=new Map;if(N.debugMode)return $;let X=N.agentWorking||o(_).length>0?S2(_):_,Y=[];function Q(){let Z=Y[0]?.part.id;if(Y.length>1&&Z&&!N.opened.has(Z))for(let[G,{messageId:V,part:z}]of Y.entries()){let q=$.get(V)??new Map;$.set(V,q);let L=G===Y.length-1;q.set(z,L?{kind:"more",count:Y.length-1,runId:Z}:{kind:"hidden"})}Y=[]}for(let Z of X){if(Z.role!=="assistant"){Q();continue}let G=F_(Z.parts,{debugMode:!1,isStreaming:!1});for(let V of G)if(V.type==="tool-call"&&m(V.state)&&N.foldable(V))Y.push({messageId:Z.id,part:V});else Q()}return Q(),$}function S2(_){let N=_.map(($)=>$.role).lastIndexOf("user");return N<0?[]:_.slice(0,N)}function v2(_,N){if(_.size!==N.size)return!1;for(let[$,J]of _){let X=N.get($);if(!X||X.kind!==J.kind)return!1;if(J.kind==="more"&&X.kind==="more"){if(J.count!==X.count||J.runId!==X.runId)return!1}}return!0}import{EventType as q0}from"@tanstack/ai";import{fetchServerSentEvents as z0}from"@tanstack/ai-client";function T2(_){for(let N=_.length-1;N>=0;N-=1){let $=_[N],J="parts"in $&&$.parts.some((X)=>X.type==="tool-result"||X.type==="tool-call"&&X.state==="approval-responded");if($.role==="user"||J)return _.slice(N,N+1)}return _.slice(-1)}function f2(_){if(_.state==="approval-responded"){let N=_.approval?.approved;if(N===void 0)return null;return{toolCallId:_.id,output:null,state:N?"approved":"denied"}}if(!m(_.state))return null;return{toolCallId:_.id,output:_.output??null,state:_.state==="error"?"error":"complete"}}function g2(_){let[N]=_;if(!N||N.role!=="assistant"||!("parts"in N))return null;let $=N.parts.flatMap((J)=>{let X=J.type==="tool-call"?f2(J):null;return X?[X]:[]});return $.length>0?$:null}async function*K0(_,N,$){for await(let J of _){if(J.type!==q0.MESSAGES_SNAPSHOT){yield J;continue}let X=N.localMessages(),Y=X.findIndex((G)=>G.id===$),Q=Y===-1?[]:X.slice(Y+1).filter((G)=>G.role==="user");N.onTranscriptCarried?.(J.timestamp??Date.now()),yield{...J,messages:[...J.messages,...Q]}}}function W1(_){let{api:N,thread:$}=_,J=async()=>({headers:await N.resolveHeaders()}),X=z0(()=>N.resolveUrl("/chat"),J),Y=function(G,V,z,q){let L=T2(G),U=g2(L),F=U?X.connect([],{...V,[Q0]:U},z,q):X.connect(L,V,z,q);return K0(F,_,G.at(-1)?.id)},Q=z0(()=>N.resolveUrl(`/chat/${$.id}/stream`),J),Z=[];return{connect:Y,async*joinRun(G,V){yield{type:q0.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:Z},yield*K0(Q.joinRun(G,V),_,Z.at(-1)?.id)},hydrate:async()=>{let G=await j2(_);return Z=G.messages,G}}}async function j2(_){let{api:N,thread:$,mode:J}=_,X=$.isRunning?{runId:$.id}:null;if(J==="skip")return{messages:[],activeRun:X,interrupts:null};if(J==="load")_.setLoadingMessages?.(!0);try{let Q=(await N.listMessages($.id)).map(N1);return _.onHydrated?.(Q),{messages:Q,activeRun:X,interrupts:null}}finally{_.setLoadingMessages?.(!1)}}async function B1(_){if(_.isStale?.()||_.isStreaming())return;try{let N=await _.api.listMessages(_.threadId);if(_.isStale?.()||_.isStreaming())return;let $=N.map(N1);return _.setMessages($),$}catch{return}}function L_(){if(typeof crypto.randomUUID==="function")return crypto.randomUUID();let _=crypto.getRandomValues(new Uint8Array(16));_[6]=_[6]&15|64,_[8]=_[8]&63|128;let N=Array.from(_,($)=>$.toString(16).padStart(2,"0")).join("");return`${N.slice(0,8)}-${N.slice(8,12)}-${N.slice(12,16)}-${N.slice(16,20)}-${N.slice(20)}`}function D1(_){let{api:N}=_,$=new Set,J=new Set,X=[],Y=[];function Q(){return X}function Z(W){return $.add(W),()=>{$.delete(W)}}function G(W){X=W;for(let K of $)K()}function V(W,K){G(X.map((B)=>B.localId===W?{...B,...K}:B))}function z(W){if(J.delete(W))return;V(W,{status:"error"})}function q(W){let K=[];for(let B of W){let M=Y0(B.type,B.size)!=="ok"||X.filter((j)=>j.status!=="error").length>=X0,S=L_();if(G([...X,{localId:S,filename:B.name,status:M?"error":"uploading"}]),!M)K.push({localId:S,file:B})}if(!K.length)return;_.ensureThread().then((B)=>{for(let{localId:M,file:S}of K){if(J.delete(M))continue;V(M,{threadId:B}),N.uploadAttachment(B,S).then((j)=>{if(J.delete(M)){N.deleteAttachment(j.id).catch(()=>{});return}V(M,{status:"ready",attachmentId:j.id,summary:j})},()=>z(M))}},()=>{for(let{localId:B}of K)z(B)})}function L(W){let K=X.find((B)=>B.localId===W);if(!K)return;if(K.status==="uploading"){J.add(W),G(X.filter((B)=>B.localId!==W));return}if(K.attachmentId){V(W,{status:"deleting"}),N.deleteAttachment(K.attachmentId).then(()=>G(X.filter((B)=>B.localId!==W)),()=>V(W,{status:"error"}));return}G(X.filter((B)=>B.localId!==W))}function U(W){let K=[];for(let B of X){if(B.threadId!==void 0&&B.threadId!==W){K.push(B);continue}if(B.status==="uploading")J.add(B.localId);else if(B.status==="ready"&&B.threadId===W&&B.attachmentId)N.deleteAttachment(B.attachmentId).catch(()=>{})}G(K)}function F(){let W=X.flatMap((K)=>K.status==="ready"&&K.summary?[{...K,status:"ready",summary:K.summary}]:[]);return G(X.filter((K)=>K.status!=="ready")),Y=W,W}function k(W){let K=Y;if(Y=[],K.some((B)=>B.threadId!==W))return;G([...K.map((B)=>({...B,status:"error"})),...X])}function O(){Y=[]}return{getState:Q,subscribe:Z,accept:q,remove:L,clear:U,consumeReady:F,restoreConsumed:k,discardConsumed:O}}function H1(_){return{uploading:_.some((N)=>N.status==="uploading"),busy:_.some((N)=>N.status==="uploading"||N.status==="deleting"),hasReady:_.some((N)=>N.status==="ready")}}var m2=["completed","cancelled","failed"],W0="requestLocation";function B0(_,N,$){if(N!==$)return null;if(typeof _!=="object"||_===null)return null;let J=_;if(J.type!=="cortex:client-tool")return null;let X=m2.find((Q)=>Q===J.status);if(!X)return null;let Y=J.reference;return{type:"cortex:client-tool",status:X,...typeof Y==="string"?{reference:Y}:{},...J.result!==void 0?{result:J.result}:{}}}function U1(_,N,$){try{return new URL(_).origin===N&&!$?"allow-scripts allow-forms allow-popups":"allow-scripts allow-forms allow-popups allow-same-origin"}catch{return"allow-scripts allow-forms allow-popups"}}function F1(_,N,$){try{return $===!0&&new URL(_).origin===N}catch{return!1}}function L1(_,N){try{return _.contentWindow?.location.origin===N}catch{return!1}}function k1(_){let N=!1,$=!1,J,X;function Y(G){if(!N)_.onState(G)}function Q(){if(N)return;$=!1,Y({phase:"error"})}function Z(G){if(N||$)return;$=!0,Y({phase:"settling"});try{let V=_.submit(G);if(V instanceof Promise)V.catch(Q)}catch{Q()}}return{async start(){Y({phase:"initiating"});try{let G=await _.initiate();if(!G.embed){Y({phase:"unavailable"});return}if(!/^https?:$/.test(new URL(G.embedUrl).protocol)){Y({phase:"error"});return}J=G.embedOrigin,Y({phase:"embedded",embedUrl:G.embedUrl,surface:G.surface,embedOrigin:G.embedOrigin})}catch(G){let V=G instanceof Error?G.message:"";Y({phase:/HTTP 404/.test(V)?"unavailable":"error"})}},setSource(G){if(G!==null&&G!==void 0)X=G},handleMessage(G){if(!J)return;if(X===void 0||G.source!==X)return;let V=B0(G.data,G.origin,J);if(!V)return;Z({status:V.status,reference:V.reference,result:V.result})},cancel(){Z({status:"cancelled"})},terminate(){if(N||$)return;J=void 0,X=void 0,Y({phase:"error"})},dispose(){N=!0}}}function O1(_,N,$){let J=_.interrupts.find((X)=>X.id===N);if(!J||!("resolveInterrupt"in J))return _.addToolApprovalResponse({id:N,approved:$});return J.resolveInterrupt({approved:$}),Promise.resolve()}async function k_(_,N){let $=await import("leaflet"),J=!N.interactive,X=$.map(_,{center:N.center,zoom:N.zoom,zoomControl:!J,dragging:!J,scrollWheelZoom:!J,doubleClickZoom:!J,touchZoom:!J,boxZoom:!J,keyboard:!J});$.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(X);let Y=new ResizeObserver(()=>X.invalidateSize());return Y.observe(_),{leaflet:$,map:X,dispose(){Y.disconnect(),X.remove()}}}var C_={position:void 0,locating:!1,locateFailed:!1,mapFailed:!1,submitting:!1,deliveryFailed:!1},c2={center:{lat:20,lng:0},zoom:2},x2=13,H0=16,u2=1e4;function M1(_,N){let $=C_,J=!1,X=!1,Y,Q,Z,G=0;function V(U){if($={...$,...U},!J)N.onState($)}function z(){let U=$.position;if(!Y||!U)return;let{leaflet:F,map:k}=Y;if(Q)Q.setLatLng(U);else{let O=F.marker(U,{draggable:!$.submitting}).addTo(k);O.on("dragend",()=>{let{lat:W,lng:K}=O.getLatLng();q({lat:W,lng:D0(K)})}),Q=O}Z?.remove(),Z=U.accuracy?F.circle(U,{radius:U.accuracy}).addTo(k):void 0}function q(U){if($.submitting)return;G+=1,V({position:U,locating:!1,locateFailed:!1}),z()}function L(U){if(J||X)return;X=!0,G+=1,Q?.dragging?.disable(),V({submitting:!0,locating:!1,deliveryFailed:!1});let F=()=>{X=!1,Q?.dragging?.enable(),V({submitting:!1,deliveryFailed:!0})};try{let k=N.submit(U);if(k instanceof Promise)k.catch(F)}catch{F()}}return{async start(){let U=N.center?{center:N.center,zoom:x2}:c2,F;try{F=await k_(_,{...U,interactive:!0})}catch{V({mapFailed:!0});return}if(J){F.dispose();return}Y=F,F.map.on("click",(k)=>q({lat:k.latlng.lat,lng:D0(k.latlng.lng)})),z()},locate(){if($.locating||$.submitting)return;if(!navigator.geolocation){V({locateFailed:!0});return}G+=1;let U=G;V({locating:!0,locateFailed:!1}),navigator.geolocation.getCurrentPosition(({coords:F})=>{if(J||U!==G)return;let k={lat:F.latitude,lng:F.longitude,accuracy:Math.round(F.accuracy)};q(k),Y?.map.setView(k,H0)},()=>{if(U===G)V({locating:!1,locateFailed:!0})},{enableHighAccuracy:!0,timeout:u2})},confirm(){if($.position)L({status:"completed",result:$.position})},cancel(){L({status:"cancelled"})},dispose(){J=!0,Y?.dispose()}}}function P1(_,N,$){let J=!1,X;return k_(_,{center:N,zoom:H0,interactive:!1}).then((Y)=>{if(J){Y.dispose();return}X=Y.dispose,Y.leaflet.marker(N).addTo(Y.map)},()=>{if(!J)$()}),()=>{J=!0,X?.()}}function D0(_){if(_>=-180&&_<=180)return _;return((_+180)%360+360)%360-180}function U0(_){if(!_||typeof _!=="object")return!1;let{lat:N,lng:$}=_;return typeof N==="number"&&typeof $==="number"&&Math.abs(N)<=90&&Math.abs($)<=180}function A1(_){let N=_&&typeof _==="object"?_.center:void 0;return U0(N)?N:void 0}function E1(_){if(!_||typeof _!=="object")return;let{status:N,result:$}=_;if(N!=="completed"||!U0($))return;let{accuracy:J}=$;return{...$,...typeof J==="number"?{accuracy:J}:{}}}function S_(_){let N=`${_.lat.toFixed(4)}, ${_.lng.toFixed(4)}`;return _.accuracy?`${N} ±${_.accuracy} m`:N}function R1(_){return Math.min(1000*2**(_-1),30000)}var h2=1e4;function y1(_){let N,$,J=0,X=!1;function Y(){let{wsUrl:Z,transport:G}=_.getConfig();if(Z===!1)return;let V=l2(Z,G.baseUrl);J1(G).then((z)=>{if(X)return;N=new WebSocket(p2(V,z)),N.addEventListener("open",()=>{let q=N;setTimeout(()=>{if(N===q&&!X)J=0},h2),_.onOpen?.()}),N.addEventListener("message",(q)=>{let L=q.data;if(typeof L!=="string")return;let U;try{U=JSON.parse(L)}catch{return}_.onEvent(U)}),N.addEventListener("close",Q)}).catch(Q)}function Q(){if(X||$)return;J+=1,$=setTimeout(()=>{$=void 0,Y()},R1(J))}return Y(),{close(){X=!0,clearTimeout($),N?.close()}}}function l2(_,N){if(_)return _;let $=typeof N==="string"?N:N(),J=new URL($,window.location.origin);return J.protocol=J.protocol==="https:"?"wss:":"ws:",J.pathname=J.pathname.replace(/\/$/,"")+"/ws",J.toString()}function p2(_,N){let $=N.Authorization??N.authorization;if(!$?.startsWith("Bearer "))return _;let J=new URL(_,window.location.origin);if(J.searchParams.has("token"))return J.toString();return J.searchParams.set("token",$.slice(7)),J.toString()}function w1(_,N,$=R1){let J=!1,X,Y=0;function Q(){_.getCapabilities().then((Z)=>{if(!J)N(Z)},()=>{if(J)return;Y+=1,X=setTimeout(Q,$(Y))})}return Q(),function(){J=!0,clearTimeout(X)}}function v_(_){return[..._].sort((N,$)=>{let J=Date.parse($.updatedAt)-Date.parse(N.updatedAt);if(J!==0)return J;return Date.parse($.createdAt)-Date.parse(N.createdAt)})}function O_(_,N){let $=[..._],J=$.findIndex((X)=>X.id===N.id);if(J===-1)$.push(N);else $[J]={...$[J],...N};return v_($)}function T_(_,N){return _.filter(($)=>$.id!==N)}function b1(_,N){switch(N.type){case"thread:deleted":return T_(_,N.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return O_(_,N.payload.thread);default:return _}}import{marked as n2}from"marked";import d2 from"dompurify";function I1(_){if(!_)return"";let N=n2.parse(_,{async:!1});return N=N.replace(/<table>/g,'<div style="overflow-x:auto"><table style="width:auto">').replace(/<\/table>/g,"</table></div>").replace(/<(t[hd])([\s>])/g,'<$1 style="padding:0.5rem 1rem"$2'),d2.sanitize(N,{FORBID_TAGS:["img","picture","source"]})}function F0(){let _=null;return(N)=>{let $=/^ {0,3}(`{3,}|~{3,})(.*)$/.exec(N),J=$?.[1],X=$?.[2]??"";if(J){let Y=J.charAt(0);if(_){if(Y===_.marker&&J.length>=_.length&&X.trim()==="")return _=null,"close";return"inside"}if(Y==="`"&&X.includes("`"))return"outside";return _={marker:Y,length:J.length},"open"}return _?"inside":"outside"}}var i2=/^\s*!\[([^\]]*)\]\(attachment#([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)\s*$/i,r2=/^\s*(`{3,}|~{3,})/;function C1(_,N){let $=[],J=[],X=null;function Y(){if(J.length)$.push({kind:"markdown",text:J.join(`
5
- `)});J=[]}function Q(V){if(X)$.push({kind:"media",...X,source:X.source.join(`
6
- `),closed:V});X=null}let Z=F0(),G=_.split(`
7
- `);for(let[V,z]of G.entries()){let q=Z(z);if(X){if(q==="close")Q(!0);else X.source.push(z);continue}if(q==="open"&&V===G.length-1)break;let L=o2(z,q,N);if(!L){J.push(z);continue}if(Y(),L.kind==="media")X={language:L.language,source:[]};else $.push(L)}return Q(!1),Y(),$}function o2(_,N,$){if(N==="open"){let X=_.replace(r2,"").trim().split(/\s+/)[0],Y=$.find((Q)=>Q===X);return Y?{kind:"media",language:Y}:void 0}let J=N==="outside"?i2.exec(_):null;return J?{kind:"attachment",alt:J[1]??"",id:(J[2]??"").toLowerCase()}:void 0}var a2=new Set(["flatten","fold","density","impute","regression","loess","quantile","sample"]);function O0(_,N){if(_==="url")return"Charts may only use inline data and no URLs.";if(_==="sequence"||_==="graticule")return"Charts may only use inline data.";if(a2.has(_))return"Charts may not use transforms that generate rows.";if(_==="params"||_==="selection"||_==="signals"||_==="on")return"Charts may not be interactive.";if(_==="expr")return"Charts may not carry expressions.";if(t2.has(_)&&typeof N==="string"&&!s2(N))return"Charts may only use simple expressions over datum.";if(_==="usermeta")return"Charts may not carry usermeta.";if(typeof N==="string"&&f_(N))return"Charts may not reference URLs.";if((_==="width"||_==="height")&&e2(N)>4000)return"Charts may be at most 4000 pixels wide or tall.";return}var t2=new Set(["calculate","filter","test","signal","labelExpr"]),L0=new Set(["abs","ceil","floor","round","min","max","sqrt","pow","log","exp","year","month","date","day","hours","minutes","toNumber","toString","toDate","isValid","isNaN","if","indexof","length"]);function s2(_){if(_.length>500||/[\\`]/.test(_))return!1;let N=_.replace(/'[^']*'|"[^"]*"/g,'""');for(let[,J]of N.matchAll(/([A-Za-z_$][\w$]*)\s*\(/g))if(!L0.has(J??""))return!1;let $=N.replace(/(datum|parent)(\s*\.[\w$]+|\s*\[\s*""\s*\])+|\b\d[\w.]*/g,"").matchAll(/[A-Za-z_$][\w$]*/g);for(let[J]of $)if(!L0.has(J)&&!["true","false","null"].includes(J))return!1;return!0}function e2(_){if(typeof _==="number")return _;let N=_?.step;return typeof N==="number"?N:0}function k0(_,N){let $=_?.features,J=Array.isArray(_)?_.length:Array.isArray($)?$.length:-1;if(J<0)return O0(N,_)??v1(S1(_,N),M_);return J>200?"Charts may hold at most 200 rows.":void 0}function M_(_,N=""){if(N==="values")return k0(_,N);if(N==="datasets")return v1(S1(_),k0);return O0(N,_)??v1(S1(_,N),($,J)=>M_($,J))}function S1(_,N=""){if(Array.isArray(_))return _.map(($)=>[N,$]);return _&&typeof _==="object"?Object.entries(_):[]}function v1(_,N){for(let[$,J]of _){let X=N(J,$);if(X)return X}return}var M0=/url\(([^)]*)\)/gi,T1=/\b(url|src|image|image-set|-webkit-image-set|cross-fade|element)\(/i,_4=/\b(src|image|image-set|-webkit-image-set|cross-fade|element)\(/i,N4=/\b(src|image|image-set|-webkit-image-set|cross-fade|element)\([^)]*\)/gi,$4=/\\([0-9a-f]{1,6})\s?|\\(.)/gi;function J4(_){return _.replace($4,(N,$,J)=>{if(!$)return J??"";let X=parseInt($,16),Y=X===0||X>=55296&&X<=57343||X>1114111;return String.fromCodePoint(Y?65533:X)})}function P0(_){return _.trim().replace(/^(['"])(.*)\1$/s,"$2").trim()}function f_(_){if(_.includes("\\")||_4.test(_))return!0;for(let[,N]of _.matchAll(M0))if(!P0(N??"").startsWith("#"))return!0;return!1}function f1(_){return J4(_).replace(N4,"none").replace(M0,(N,$)=>P0($).startsWith("#")?N:"none")}var b0={async mermaid(_,N,{scheme:$}){let[{default:J},{default:X}]=await Promise.all([import("mermaid"),import("dompurify")]);if(T1.test(N)||N.includes("\\"))throw Error("Diagrams may not reference URLs.");if(/%%\{/.test(N))throw Error("Diagrams may not carry init directives.");if(/^\s*---\s*$/m.test(N))throw Error("Diagrams may not carry frontmatter.");if(/\bimg\s*:/.test(N))throw Error("Diagrams may not embed images.");let Y=Q4(N);if(!Y4.test(Y))throw Error(`Unsupported diagram type: ${Y}`);let Q=A0.then(async()=>{if(!E0)J.initialize({startOnLoad:!1,securityLevel:"strict",htmlLabels:!1}),E0=!0;let V=`%%{init: {"theme": "${$==="dark"?"dark":"default"}"}}%%
8
- ${N}`;return await J.parse(V),(await J.render(`cortex-mermaid-${G4()}`,V,_)).svg});A0=Q.catch(()=>{return});let Z=await Q,G=document.createElement("div");return G.innerHTML=X.sanitize(Z,{USE_PROFILES:{svg:!0,svgFilters:!0}}),y0(G),_.replaceChildren(...G.childNodes),()=>{_.innerHTML=""}},async "vega-lite"(_,N,{scheme:$}){let J=JSON.parse(N),X=M_(J);if(X)throw Error(X);let[{default:Y},Q]=await Promise.all([import("vega-embed"),import("vega")]),Z=()=>Promise.reject(Error("Charts may only use inline data.")),G=document.createElement("div"),V=await Y(G,J,{actions:!1,renderer:"svg",mode:"vega-lite",loader:{...Q.loader(),load:Z,sanitize:Z},ast:!0,...$==="dark"?{theme:"dark"}:{},config:{background:"transparent"}});return y0(G),_.replaceChildren(G),()=>V.finalize()},async map(_,N){let $=V4(JSON.parse(N)),{leaflet:J,map:X,dispose:Y}=await k_(_,{...$,interactive:!0});for(let Q of $.markers){let Z=J.marker(Q.position).addTo(X);if(Q.label){let G=document.createElement("span");G.textContent=Q.label,Z.bindTooltip(G)}}return Y}};function g1(_){return Object.keys({...b0,..._})}function X4(_,N,$,J,X){let Y=X?.[_]??b0[_];if(!Y)return Promise.reject(Error(`No renderer for ${_}.`));return Y(N,$,J)}function j1(_,N){let $=_.appendChild(document.createElement("div")),J,X=!1;return X4(N.language,$,N.source,N.context,N.overrides).then((Y)=>{if(X)Y();else J=Y},(Y)=>{if(!X)N.onError(Y instanceof Error?Y.message:String(Y))}),()=>{X=!0,J?.(),$.remove()}}var Y4=/^(flowchart|graph|sequenceDiagram|stateDiagram(-v2)?|erDiagram|gantt|pie|classDiagram|journey|timeline|mindmap)$/;function Q4(_){let N=_.split(`
9
- `).find(($)=>/\S/.test($)&&!/^\s*%%/.test($));return/^\s*(\S+)/.exec(N??"")?.[1]??""}var A0=Promise.resolve(),E0=!1,R0=0;function G4(){return R0+=1,R0}var Z4=new Set(["image","use","feImage"]);function y0(_){for(let N of[_,..._.querySelectorAll("*")]){for(let $ of[...N.attributes])if(($.name==="href"||$.name==="xlink:href")&&Z4.has(N.tagName)&&!$.value.trim().startsWith("#")||f_($.value))N.removeAttribute($.name);if(N.tagName==="style"&&N.textContent)N.textContent=f1(N.textContent)}}function V4(_){if(!_||typeof _!=="object")throw Error("A map needs a JSON object.");let N=_,$=N.zoom??10;if(typeof $!=="number"||$<0||$>22)throw Error("zoom must be 0 to 22.");let J=N.markers??[];if(!Array.isArray(J))throw Error("markers must be a list.");return{center:w0(N.center,"center"),zoom:$,markers:J.map((X,Y)=>{let Q=X??{},Z=Q.label;return{position:w0(Q.position,`markers[${Y}].position`),label:typeof Z==="string"?Z:void 0}})}}function w0(_,N){let $=Array.isArray(_)?_:[],[J,X]=$;if(typeof J!=="number"||typeof X!=="number"||Math.abs(J)>90||Math.abs(X)>180)throw Error(`${N} must be [latitude, longitude].`);return{lat:J,lng:X}}function m1(_,N){if(_!=="system")return N(_??"light"),()=>{};let $=window.matchMedia("(prefers-color-scheme: dark)"),J=()=>N($.matches?"dark":"light");return J(),$.addEventListener("change",J),()=>$.removeEventListener("change",J)}import P_ from"highlight.js/lib/core";import z4 from"highlight.js/lib/languages/javascript";import K4 from"highlight.js/lib/languages/json";import q4 from"highlight.js/lib/languages/sql";var I0=!1;function W4(){if(I0)return;I0=!0,P_.registerLanguage("javascript",z4),P_.registerLanguage("json",K4),P_.registerLanguage("cypher",q4)}function c1(_,N){if(!_)return"";return W4(),P_.getLanguage(N)?P_.highlight(_,{language:N}).value:B4(_)}function B4(_){return _.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var C0={translate_new:"جديد",translate_history:"السجل",translate_back:"رجوع",translate_greeting:"بماذا يمكنني مساعدتك اليوم؟",translate_n_conversations:"{{count}} محادثات",translate_one_conversation:"محادثة واحدة",translate_no_threads_yet:"لا توجد محادثات بعد",translate_start_a_new_conversation:"ابدأ محادثة جديدة",translate_untitled:"بدون عنوان",translate_new_chat:"محادثة جديدة",translate_normal:"عادي",translate_debug:"تصحيح",translate_type_a_message:"اكتب رسالة...",translate_thinking:"جارٍ معالجة الطلب...",translate_completed:"مكتمل",translate_attach_files:"إرفاق ملفات",translate_drop_files_here:"أفلت ملفاتك هنا...",translate_remove_attachment:"إزالة المرفق",translate_attachment_rejected:"لا يمكن إرفاق هذا الملف",translate_attachment_caption:"من فضلك اطّلع على الملفات المرفقة.",translate_download:"تنزيل",translate_tool_status_0:"جارٍ جلب البيانات…",translate_tool_status_1:"جارٍ تحليل المعلومات…",translate_tool_status_2:"جارٍ معالجة الطلب…",translate_tool_status_3:"جارٍ تجميع النتائج…",translate_tool_status_4:"جارٍ تحضير الرد…",translate_tool_status_5:"جارٍ البحث…",translate_tool_status_6:"جارٍ فحص السجلات…",translate_tool_status_7:"جارٍ مراجعة التفاصيل…",translate_tool_status_8:"جارٍ إجراء الحسابات…",translate_tool_status_9:"جارٍ سحب المعلومات…",translate_tool_done_0:"تم جلب البيانات بنجاح",translate_tool_done_1:"تم التحليل بنجاح",translate_tool_done_2:"تمت معالجة الطلب بنجاح",translate_tool_done_3:"تم تجميع النتائج بنجاح",translate_tool_done_4:"تم تحضير الرد بنجاح",translate_tool_done_5:"تم البحث بنجاح",translate_tool_done_6:"تم فحص السجلات بنجاح",translate_tool_done_7:"تمت المراجعة بنجاح",translate_tool_done_8:"تمت الحسابات بنجاح",translate_tool_done_9:"تم استرجاع المعلومات بنجاح",translate_rows_read:"{{count}} صفوف",translate_one_more_step:"وخطوة أخرى",translate_n_more_steps:"و{{count}} خطوات أخرى",translate_tool_error:"حدث خطأ",translate_attachment_status:"جارٍ قراءة الملف المرفق…",translate_attachment_done:"تمت قراءة الملف المرفق",translate_graph_0:"جارٍ استكشاف الروابط...",translate_graph_1:"جارٍ رسم الخريطة...",translate_graph_2:"جارٍ اكتشاف العلاقات...",translate_graph_3:"جارٍ تتبع الروابط...",translate_graph_4:"جارٍ التنقل في المعرفة...",translate_graph_5:"جارٍ كشف الرؤى...",translate_graph_6:"جارٍ ربط النقاط...",translate_graph_7:"جارٍ تتبع المسار...",translate_graph_8:"جارٍ تجميع الأجزاء...",translate_graph_9:"جارٍ بناء الصورة...",translate_code_0:"جارٍ حساب الأرقام...",translate_code_1:"جارٍ معالجة البيانات...",translate_code_2:"جارٍ تنفيذ طلبك...",translate_code_3:"جارٍ تحليل الأرقام...",translate_code_4:"جارٍ تجميع كل شيء...",translate_code_5:"جارٍ تحليل النتائج...",translate_code_6:"جارٍ العمل خلف الكواليس...",translate_code_7:"جارٍ ترتيب التفاصيل...",translate_code_8:"جارٍ تحضير إجابتك...",translate_code_9:"أوشك على الانتهاء...",translate_reasoning_0:"جارٍ التفكير...",translate_reasoning_1:"جارٍ دراسة الخيارات...",translate_reasoning_2:"جارٍ تقييم الاحتمالات...",translate_reasoning_3:"جارٍ التأمل في هذا...",translate_reasoning_4:"جارٍ إيجاد الحل...",translate_reasoning_5:"جارٍ ترتيب الأفكار...",translate_reasoning_6:"جارٍ التمعن في الأمر...",translate_reasoning_7:"جارٍ إيجاد أفضل طريقة...",translate_reasoning_8:"جارٍ تنظيم أفكاري...",translate_reasoning_9:"أوشك على الانتهاء...",translate_running:"قيد التنفيذ",translate_aborted:"تم الإلغاء",translate_input:"المدخلات",translate_output:"المخرجات",translate_calling:"جارٍ الاستدعاء",translate_input_ready:"المدخلات جاهزة",translate_needs_approval:"بحاجة إلى موافقة",translate_approved:"تمت الموافقة",translate_responded:"تم الرد",translate_declined:"تم الرفض",translate_approve:"موافقة",translate_deny:"رفض",translate_approval_prompt:"يريد المساعد تنفيذ إجراء. هل تسمح بذلك؟",translate_error:"خطأ",translate_approval_requested:"طلب موافقة",translate_approval_response:"رد الموافقة",translate_waiting_for_approval:"في انتظار الموافقة لتنفيذ هذه الأداة.",translate_tool_approved:"تمت الموافقة.",translate_tool_response_received:"تم استلام الرد.",translate_tokens:"رمز",translate_fresh:"جديد",translate_cache_read:"قراءة من الذاكرة",translate_cache_write:"كتابة في الذاكرة",translate_n_percent_cached:"{{percent}}٪ مخزّن مؤقتًا",translate_text:"نص",translate_reasoning:"الاستنتاج",translate_read:"قراءة",translate_write:"كتابة",translate_total:"الإجمالي",translate_request:"الطلب",translate_response:"الرد",translate_step_n:"الخطوة {{number}}",translate_inspect_llm_requests:"فحص طلبات النموذج",translate_loading:"جارٍ التحميل…",translate_no_llm_requests:"لا توجد طلبات نموذج مسجّلة لهذه الرسالة.",translate_unhandled_type:"نوع غير مدعوم:",translate_client_tool_title:"أكمل هذه الخطوة للمتابعة",translate_client_tool_loading:"جارٍ تجهيز خطوة آمنة...",translate_client_tool_failed:"تعذّر تحميل هذه الخطوة",translate_client_tool_retry:"حاول مرة أخرى",translate_client_tool_cancel:"إلغاء",translate_location_hint:"انقر على الخريطة لتثبيت الدبوس",translate_location_locate:"استخدم موقعي",translate_location_locating:"جارٍ تحديد موقعك",translate_location_locate_failed:"موقعك غير متاح",translate_location_map_failed:"تعذّر تحميل الخريطة",translate_location_send_failed:"تعذّر الإرسال، حاول مرة أخرى",translate_location_skip:"ليس الآن",translate_location_send:"إرسال",translate_location_shared:"تمت مشاركة الموقع",translate_location_not_shared:"لم تتم مشاركة الموقع",translate_trigger_fired:"تم التشغيل بواسطة",translate_trigger_payload:"الحمولة",translate_messages_disabled:"يعمل هذا الوكيل من مشغّلاته فقط.",translate_streaming:"جارٍ البث",translate_done:"تم",translate_no_reasoning:"لا يوجد تفكير مسجّل.",translate_copy:"نسخ إلى الحافظة",translate_copied:"تم النسخ",translate_media_pending_mermaid:"جارٍ رسم المخطط",translate_media_pending_vega_lite:"جارٍ رسم الرسم البياني",translate_media_pending_map:"جارٍ رسم الخريطة",translate_media_cut_off:"انقطع هذا المقطع قبل اكتماله.",translate_media_failed:"تعذر عرض هذا المقطع.",translate_media_source:"المصدر",translate_media_pending:"جارٍ الرسم",translate_image_unavailable:"الصورة غير متاحة",translate_image_unavailable_alt:"الصورة غير متاحة: {{alt}}"};var S0={translate_new:"New",translate_history:"History",translate_back:"Back",translate_greeting:"What can I help you with today?",translate_n_conversations:"{{count}} conversations",translate_one_conversation:"1 conversation",translate_no_threads_yet:"No threads yet",translate_start_a_new_conversation:"Start a new conversation",translate_untitled:"Untitled",translate_new_chat:"New Chat",translate_normal:"Normal",translate_debug:"Debug",translate_type_a_message:"Type a message...",translate_thinking:"Thinking things through...",translate_completed:"Completed",translate_attach_files:"Attach files",translate_drop_files_here:"Drop your files here...",translate_remove_attachment:"Remove attachment",translate_attachment_rejected:"This file cannot be attached",translate_attachment_caption:"Please take a look at the attached files.",translate_download:"Download",translate_tool_status_0:"Fetching data...",translate_tool_status_1:"Analyzing information...",translate_tool_status_2:"Processing request...",translate_tool_status_3:"Gathering results...",translate_tool_status_4:"Preparing response...",translate_tool_status_5:"Looking things up...",translate_tool_status_6:"Checking records...",translate_tool_status_7:"Reviewing details...",translate_tool_status_8:"Running calculations...",translate_tool_status_9:"Pulling information...",translate_tool_done_0:"Data fetched successfully",translate_tool_done_1:"Analysis completed successfully",translate_tool_done_2:"Request processed successfully",translate_tool_done_3:"Results gathered successfully",translate_tool_done_4:"Response prepared successfully",translate_tool_done_5:"Lookup completed successfully",translate_tool_done_6:"Records checked successfully",translate_tool_done_7:"Review completed successfully",translate_tool_done_8:"Calculations completed successfully",translate_tool_done_9:"Information retrieved successfully",translate_rows_read:"{{count}} rows",translate_one_more_step:"and 1 more step",translate_n_more_steps:"and {{count}} more steps",translate_tool_error:"Something went wrong",translate_attachment_status:"Reading the attached file...",translate_attachment_done:"Finished reading the file",translate_graph_0:"Exploring connections...",translate_graph_1:"Mapping out the links...",translate_graph_2:"Discovering relationships...",translate_graph_3:"Tracing the connections...",translate_graph_4:"Navigating the knowledge...",translate_graph_5:"Uncovering insights...",translate_graph_6:"Connecting the dots...",translate_graph_7:"Following the trail...",translate_graph_8:"Piecing things together...",translate_graph_9:"Building the picture...",translate_code_0:"Running the numbers...",translate_code_1:"Working through the data...",translate_code_2:"Processing your request...",translate_code_3:"Crunching the figures...",translate_code_4:"Putting it all together...",translate_code_5:"Analyzing the results...",translate_code_6:"Working behind the scenes...",translate_code_7:"Sorting through the details...",translate_code_8:"Preparing your answer...",translate_code_9:"Almost ready...",translate_reasoning_0:"Thinking it through...",translate_reasoning_1:"Considering the options...",translate_reasoning_2:"Weighing the possibilities...",translate_reasoning_3:"Reflecting on this...",translate_reasoning_4:"Working it out...",translate_reasoning_5:"Putting thoughts together...",translate_reasoning_6:"Mulling it over...",translate_reasoning_7:"Finding the best approach...",translate_reasoning_8:"Organizing my thoughts...",translate_reasoning_9:"Almost there...",translate_running:"Running",translate_aborted:"Aborted",translate_input:"Input",translate_output:"Output",translate_calling:"Calling",translate_input_ready:"Input ready",translate_needs_approval:"Needs approval",translate_approved:"Approved",translate_responded:"Responded",translate_declined:"Declined",translate_approve:"Approve",translate_deny:"Deny",translate_approval_prompt:"The assistant wants to take an action. Allow it?",translate_error:"Error",translate_approval_requested:"Approval requested",translate_approval_response:"Approval response",translate_waiting_for_approval:"Waiting for approval to execute this tool.",translate_tool_approved:"Approved.",translate_tool_response_received:"Response received.",translate_tokens:"tokens",translate_fresh:"Fresh",translate_cache_read:"Cache read",translate_cache_write:"Cache write",translate_n_percent_cached:"{{percent}}% cached",translate_text:"Text",translate_reasoning:"Reasoning",translate_read:"Read",translate_write:"Write",translate_total:"Total",translate_request:"Request",translate_response:"Response",translate_step_n:"Step {{number}}",translate_inspect_llm_requests:"Inspect LLM requests",translate_loading:"loading…",translate_no_llm_requests:"No LLM requests recorded for this message.",translate_unhandled_type:"Unhandled type:",translate_client_tool_title:"Complete this step to continue",translate_client_tool_loading:"Preparing a secure step...",translate_client_tool_failed:"This step could not be loaded",translate_client_tool_retry:"Try again",translate_client_tool_cancel:"Cancel",translate_location_hint:"Tap the map to drop a pin",translate_location_locate:"Use my location",translate_location_locating:"Finding your location",translate_location_locate_failed:"Your location is not available",translate_location_map_failed:"The map could not be loaded",translate_location_send_failed:"Could not send, try again",translate_location_skip:"Not now",translate_location_send:"Send",translate_location_shared:"Location shared",translate_location_not_shared:"Location not shared",translate_trigger_fired:"Triggered by",translate_trigger_payload:"Payload",translate_messages_disabled:"This agent only runs from its triggers.",translate_streaming:"Streaming",translate_done:"Done",translate_no_reasoning:"No reasoning provided.",translate_copy:"Copy to clipboard",translate_copied:"Copied",translate_media_pending_mermaid:"Drawing diagram",translate_media_pending_vega_lite:"Drawing chart",translate_media_pending_map:"Drawing map",translate_media_cut_off:"This block was cut off before it finished.",translate_media_failed:"Could not render this block.",translate_media_source:"Source",translate_media_pending:"Drawing",translate_image_unavailable:"Image unavailable",translate_image_unavailable_alt:"Image unavailable: {{alt}}"};var U4={en:S0,ar:C0};function x1(_){return _&&e_.includes(_)?_:e_[0]}function u1(_,N,$){let J=U4[_][N];if(!$)return J;return J.replace(/\{\{\s*(\w+)\s*\}\}/g,(X,Y)=>(Y in $)?String($[Y]):X)}function Y_(_){if(typeof _==="string"){let N=_.trim();if(!(N.startsWith("{")&&N.endsWith("}")||N.startsWith("[")&&N.endsWith("]")))return _;try{return Y_(JSON.parse(N))}catch{return _}}if(Array.isArray(_))return _.map((N)=>Y_(N));if(_!==null&&typeof _==="object"){let N={};for(let[$,J]of Object.entries(_))N[$]=Y_(J);return N}return _}function h1(_,N){if(Array.isArray(_)){let $=_;return{kind:"container",open:"[",close:"]",summary:v0($.length,"item","items"),entries:$.map((J,X)=>({key:null,value:J,path:`${N}[${X}]`}))}}if(_!==null&&typeof _==="object"){let $=Object.entries(_);return{kind:"container",open:"{",close:"}",summary:v0($.length,"property","properties"),entries:$.map(([J,X])=>({key:J,value:X,path:`${N}.${J}`}))}}return{kind:"primitive",text:F4(_),className:L4(_)}}function v0(_,N,$){return`${_} ${_===1?N:$}`}function F4(_){if(_===null||_===void 0)return"null";if(typeof _==="string")return JSON.stringify(_);if(typeof _==="number"||typeof _==="boolean")return String(_);return JSON.stringify(_)??"null"}function L4(_){if(_===null||_===void 0)return"cortex-json-tree__null";if(typeof _==="string")return"cortex-json-tree__string";if(typeof _==="number")return"cortex-json-tree__number";if(typeof _==="boolean")return"cortex-json-tree__boolean";return""}function g_(_){if(!_)return null;try{return JSON.parse(_)}catch{return _}}function j_(_){if(!_)return"";try{return JSON.stringify(JSON.parse(_),null,2)}catch{return _}}function Q_(_,N){if(_===void 0||typeof _==="string"||Array.isArray(_))return _;let $=_;return $[N]??$.en??Object.values($)[0]}function h(_,N,$=Date.now()){let J=new Date(_);if(Number.isNaN(J.getTime()))return"";let X=J.toDateString()===new Date($).toDateString();return new Intl.DateTimeFormat(N,{...X?{}:{dateStyle:"medium"},timeStyle:"short"}).format(J)}function l1(_,N){let $=URL.createObjectURL(_),J=document.createElement("a");J.href=$,J.download=N,J.click(),URL.revokeObjectURL($)}class e{onUpdate;fullText="";displayedLength=0;animationFrameId=null;isDone=!1;static DRAIN_FRACTION=0.03;static MIN_CHARS_PER_FRAME=1;static DONE_DRAIN_FRACTION=0.1;constructor(_){this.onUpdate=_}seed(_){this.fullText=_,this.displayedLength=_.length,this.onUpdate(_)}update(_,N){if(this.fullText=_,this.isDone=N,this.displayedLength=Math.min(this.displayedLength,this.fullText.length),N&&this.displayedLength>=this.fullText.length){this.onUpdate(this.fullText),this.stopAnimation();return}if(!this.animationFrameId)this.scheduleFrame()}destroy(){this.stopAnimation()}scheduleFrame(){this.animationFrameId=requestAnimationFrame(()=>this.tick())}tick(){let _=this.fullText.length-this.displayedLength;if(_<=0){this.animationFrameId=null;return}let N=this.isDone?e.DONE_DRAIN_FRACTION:e.DRAIN_FRACTION,$=Math.max(e.MIN_CHARS_PER_FRAME,Math.ceil(_*N));if(this.displayedLength=Math.min(this.fullText.length,this.displayedLength+$),this.onUpdate(this.fullText.substring(0,this.displayedLength)),this.displayedLength<this.fullText.length)this.scheduleFrame();else this.animationFrameId=null}stopAnimation(){if(this.animationFrameId)cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null}}var k4=2;function p1(_){let N=!1,$=!1,J=!1,X=!1,Y=!1,Q=!1,Z,G=new Set,V=0,z=!1;function q(){if(N&&V===0)return!1;if(V+=1,!N)N=!0,_.setRunning(!0);return!0}function L(W){if(V-=1,W)z=!0;else if(V===0&&!z)N=!1,_.setRunning(!1)}async function U(W,K){for(let B=0;B<k4;B+=1){let M=await _.refreshMessages().catch(()=>{return});if(!_.isAlive())return!1;if(!M)continue;if(!o(M).some((S)=>S.id===W.id))return!0;if(await _.deliver(K).then(()=>!0,()=>!1))return!0}return!1}async function F(W,K){let B;try{let X_=K({toolCallId:W.id,toolName:W.name,input:W.input},{threadId:_.threadId});if(X_===null||X_===void 0)return;B=await Promise.resolve(X_)}catch{G.delete(W.id);return}if(B===null||B===void 0)return;if(!_.isAlive())return;let M=q(),S={toolCallId:W.id,tool:W.name,output:B},j=await _.deliver(S).then(()=>!0,()=>U(W,S));if(M)L(j);if(!j)G.delete(W.id)}function k(W){let K=o(W),B=_.onToolCall();if(!B)return K.length>0;for(let M of K){if(M.state!=="input-complete"||G.has(M.id))continue;G.add(M.id),F(M,B)}return K.length>0}async function O(W){let K=X;if(X=!1,!K&&N){if(k(W()))return;if(J)_.reloadThreads().catch(()=>{});else _.setRunning(!1)}if(Z===void 0&&(Q||K))return;Z=void 0;let B=await _.refreshMessages();if(!K&&N&&B)k(B)}return{chunkArrived(){$=!0},transcriptCarried(W){if(Q=!0,Z!==void 0&&Z<=W)Z=void 0},transcriptUpdated(W){if(!Y){_.refreshMessages();return}Z=Math.max(Z??0,Date.parse(W))},streamFailed(){if(J=!0,$)_.onTurnFinished();else _.onSendFailed()},loadingChanged(W,K){if(W){Y=!0,J=!1,Q=!1;return}if(!Y)return;Y=!1,_.onTurnFinished(),O(K)},hydrated(W,K){if(K)return;setTimeout(()=>{if(_.isAlive())k(W)},0)},sendStarted(){_.setRunning(!0),N=!0,$=!1},abortConfirmed(){X=!0,_.setRunning(!1)}}}function A_(_){if(_.input.total<=0)return null;return Math.round(_.input.cacheRead/_.input.total*100)}import{createContext as T0,useContext as f0}from"react";var n1=T0(void 0);function D(){let _=f0(n1);if(!_)throw Error("useCortex must be used inside <CortexChatWidget>");return _}var m_={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1},c_=T0(m_);function x_(){return f0(c_)}import{useEffect as O4,useState as M4}from"react";function g0(_,N){let[$,J]=M4();return O4(()=>{return J(void 0),w1(_,J)},[_,N]),$}import{useRef as I4}from"react";import{useRef as P4,useState as A4,useSyncExternalStore as E4}from"react";function j0(_,N){let $=P4(N);$.current=N;let[J]=A4(()=>D1({api:_,ensureThread:()=>$.current()})),X=E4(J.subscribe,J.getState,J.getState);return{store:J,value:{items:X,...H1(X),accept:J.accept,remove:J.remove,consumeReady:J.consumeReady}}}import{useEffect as R4,useRef as y4}from"react";function m0(_,N){let $=y4(void 0);R4(()=>{if(N===$.current)return;_.clear($.current),$.current=N},[N,_])}import{useRef as c0}from"react";function x0(_){let N=c0([]),$=c0(void 0);function J(){let Y=_.selectedRef.current;if(Y)return Promise.resolve(Y.id);return $.current??=_.api.createThread().then((Q)=>{return $.current=void 0,_.onCreated(Q),Q.id},(Q)=>{throw $.current=void 0,Q}),$.current}async function X(Y,Q=[]){let Z=_.sessionRef.current;if(Z){await Z.send(Y,Q);return}N.current.push({prompt:Y,attachments:Q});try{await J()}catch(G){throw N.current=[],G}}return{ensureThread:J,send:X,pendingSendRef:N}}import{useRef as w4,useState as b4}from"react";function u0(_){let[N,$]=b4(),J=N?.thread,X=J?_.threads?.find((V)=>V.id===J.id)??J:void 0,Y=w4(X);Y.current=X;function Q(V,z){if(Y.current?.id===V.id&&_.hasSession())return;let q=Y.current;if(Y.current=V,$({thread:V,mode:z,epoch:0}),q&&q.id!==V.id)_.getHooks()?.onThreadDeselected?.(q);_.getHooks()?.onThreadSelected?.(V)}function Z(){let V=Y.current;if(!V&&!_.hasSession())return;if(Y.current=void 0,$(void 0),V)_.getHooks()?.onThreadDeselected?.(V)}function G(V,z){$((q)=>({thread:V,mode:"reload",epoch:(q?.epoch??0)+1,initialMessages:z}))}return{session:N,selected:X,selectedRef:Y,select:Q,deselect:Z,remount:G}}function h0(_){let{api:N,threads:$}=_,J=I4(void 0),X=u0({threads:$.threads,getHooks:_.getHooks,hasSession:()=>J.current!==void 0}),Y=x0({api:N,sessionRef:J,selectedRef:X.selectedRef,onCreated:(V)=>{$.upsert(V),X.select(V,"skip")}}),Q=j0(N,Y.ensureThread);m0(Q.store,X.selected?.id);async function Z(V){if(X.selectedRef.current?.id===V)X.deselect();await $.remove(V)}function G(V){X.select(V,"load")}return{sessionRef:J,selection:X,queue:Q,deleteThread:Z,openThread:G,...Y}}import{useEffect as C4,useRef as S4}from"react";function l0(_){let N=S4(_);N.current=_,C4(()=>{N.current.onMount();let $=!1,J=y1({getConfig:()=>N.current.getConfig(),onEvent:(X)=>N.current.onEvent(X),onOpen:()=>{if($)N.current.onReconnect();$=!0}});return()=>J.close()},[])}function p0(_){let{threads:N,selectedRef:$,sessionRef:J}=_;function X(Q){N.applyEvent(Q);let Z=$.current?.id;switch(Q.type){case"thread:deleted":if(Z===Q.payload.threadId)_.deselect();break;case"thread:run-started":if(Z===Q.payload.thread.id)J.current?.reattach(Q.payload.thread);break;case"thread:messages-updated":J.current?.transcriptUpdated(Q.payload.thread.id,Q.payload.thread.updatedAt);break}}function Y(){_.onReconnect(),N.reload().then((Q)=>{let Z=$.current;if(!Z)return;J.current?.reattach(Q.find((G)=>G.id===Z.id)??Z)})}return{onEvent:X,onReconnect:Y}}function n0(_){return{abort:async()=>{await _.current?.abort()},addToolResult:(N,$,J)=>_.current?.addToolResult(N,$,J)??Promise.resolve(),respondToApproval:(N,$)=>_.current?.respondToApproval(N,$)??Promise.resolve()}}import{useState as v4}from"react";function d0(_){let[N,$]=v4();async function J(){let G=v_(await _.listThreads());return $(G),G}function X(G){$((V)=>O_(V??[],G))}function Y(G,V){$((z)=>{let q=z?.find((L)=>L.id===G);return q?O_(z??[],{...q,isRunning:V}):z})}async function Q(G){await _.deleteThread(G),$((V)=>V?T_(V,G):V)}function Z(G){$((V)=>{let z=b1(V??[],G);return V||z.length?z:V})}return{threads:N,reload:J,upsert:X,setRunning:Y,remove:Q,applyEvent:Z}}import{useState as i0}from"react";function r0(){let[_,N]=i0("chat"),[$,J]=i0(!1);return{screen:_,sidebarOpen:$,showChat:()=>{N("chat"),J(!1)},openHistory:()=>N("threads"),closeHistory:()=>N("chat"),toggleSidebar:()=>J((X)=>!X),closeSidebar:()=>J(!1)}}function H(..._){return _.filter(Boolean).join(" ")}import{jsx as l,jsxs as o0}from"react/jsx-runtime";function a0({onToggleSidebar:_,onToggleDebug:N,onOpenHistory:$}){let{config:J,locale:X,t:Y,debugMode:Q,selectedThread:Z}=D();return o0("div",{className:"cortex-widget__chat-header",children:[l("button",{onClick:_,className:"cortex-widget__sidebar-toggle-btn",children:l("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:l("path",{d:"M2.5 4h11M2.5 8h11M2.5 12h11",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),l("div",{className:"cortex-widget__chat-title-wrap",children:l("p",{className:"cortex-widget__chat-title",children:Z?.title??Q_(J.agentName,X)??Y("translate_new_chat")})}),J.showDebugButton&&l("button",{onClick:N,className:H("cortex-widget__debug-btn",Q?"cortex-widget__debug-btn--on":"cortex-widget__debug-btn--off"),children:Q?Y("translate_debug"):Y("translate_normal")}),l("button",{type:"button",onClick:$,"aria-label":Y("translate_history"),className:"cortex-widget__history-btn",children:o0("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[l("circle",{cx:"8",cy:"8",r:"5.75",stroke:"currentColor",strokeWidth:"1.3"}),l("path",{d:"M8 5v3l2 1.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})}var b={bubble:"M13.5 7.6c0 2.4-2.5 4.4-5.5 4.4-.6 0-1.2-.08-1.7-.23L3 13l.8-2.3C3 9.8 2.5 8.7 2.5 7.6 2.5 5.2 5 3.2 8 3.2s5.5 2 5.5 4.4Z",chevronDown:"M3 4.5L6 7.5L9 4.5",chevronDownLarge:"m5.75 8.25 4.25 4.25 4.25-4.25",file:["M4 1.5h5.172a2 2 0 0 1 1.414.586l2.328 2.328a2 2 0 0 1 .586 1.414V12.5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2Z","M9.5 1.5v2a2 2 0 0 0 2 2h2"]};import{forwardRef as x4,useEffect as u4,useImperativeHandle as h4,useRef as $6,useState as l4}from"react";import{useState as T4}from"react";function t0(_,N){let[$,J]=T4(!1);return{dragging:$,onDragOver:(X)=>{if(X.preventDefault(),_)J(!0)},onDragLeave:(X)=>{if(!X.currentTarget.contains(X.relatedTarget))J(!1)},onDrop:(X)=>{if(X.preventDefault(),J(!1),_)N([...X.dataTransfer.files])},onPaste:(X)=>{let Y=X.clipboardData.files;if(!_||!Y.length)return;X.preventDefault(),N([...Y])}}}import{jsx as p,jsxs as d1}from"react/jsx-runtime";function s0(){let{queue:_,t:N}=D();if(!_.items.length)return null;return p("div",{className:"cortex-attachment-queue",children:_.items.map(($)=>d1("div",{className:H("cortex-attachment-chip",$.status==="error"&&"cortex-attachment-chip--error"),title:$.status==="error"?N("translate_attachment_rejected"):"",children:[$.status==="uploading"||$.status==="deleting"?d1("svg",{className:"cortex-attachment-chip__spinner",viewBox:"0 0 16 16",fill:"none",children:[p("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",className:"cortex-attachment-chip__spinner-track"}),p("path",{d:"M14 8a6 6 0 0 0-6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):d1("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[p("path",{d:b.file[0],stroke:"currentColor",strokeWidth:"1.25"}),p("path",{d:b.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),p("span",{className:"cortex-attachment-chip__name",children:$.filename}),p("button",{type:"button",onClick:()=>_.remove($.localId),className:"cortex-attachment-chip__remove",disabled:$.status==="deleting","aria-label":N("translate_remove_attachment"),children:p("svg",{viewBox:"0 0 16 16",fill:"none",children:p("path",{d:"M4.5 4.5l7 7m0-7l-7 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},$.localId))})}import{useRef as f4}from"react";import{jsx as __,jsxs as e0,Fragment as j4}from"react/jsx-runtime";var g4=_1.join(",");function _6({attachmentsEnabled:_,canSend:N,onSend:$}){let{t:J,queue:X}=D(),Y=f4(null);return e0("div",{className:"cortex-widget__input-actions",children:[_?e0(j4,{children:[__("button",{type:"button",onClick:()=>Y.current?.click(),className:"cortex-widget__attach-btn","aria-label":J("translate_attach_files"),children:__("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:__("path",{d:"M10.5 5.5 6.2 9.8a1.4 1.4 0 0 0 2 2l4.6-4.6a2.8 2.8 0 0 0-4-4L4.2 7.8a4.2 4.2 0 0 0 6 6l4-4",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),__("input",{ref:Y,type:"file",multiple:!0,accept:g4,onChange:(Q)=>{X.accept([...Q.target.files??[]]),Q.target.value=""},className:"cortex-widget__file-input"})]}):null,__("button",{onClick:$,className:H("cortex-widget__send-btn",!N&&"cortex-widget__send-btn--empty",N&&"cortex-widget__send-btn--ready"),disabled:!N,children:__("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__send-icon",children:__("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}import{useLayoutEffect as m4}from"react";import{jsx as c4}from"react/jsx-runtime";function N6(_){let{t:N}=D();m4(()=>{let J=_.inputRef.current;if(!J)return;J.style.height="0px",J.style.height=`${J.scrollHeight}px`},[_.inputRef,_.value]);function $(J){if(J.key==="Enter"&&!J.shiftKey)J.preventDefault(),_.onSubmit()}return c4("textarea",{ref:_.inputRef,onKeyDown:$,onPaste:_.onPaste,value:_.value,onChange:(J)=>_.onChange(J.target.value),placeholder:_.dragging?N("translate_drop_files_here"):_.disabled?"":N("translate_type_a_message"),disabled:_.disabled,rows:1,className:H("cortex-widget__textarea",_.disabled&&"cortex-widget__textarea--disabled")})}import{jsx as G_,jsxs as i1}from"react/jsx-runtime";var J6=x4(function(N,$){let{t:J,queue:X,send:Y,abort:Q,capabilities:Z}=D(),{isAgentWorking:G}=x_(),V=Z?.attachments??!1,[z,q]=l4(""),L=t0(V,X.accept),U=$6(null);h4($,()=>({focusInput:()=>U.current?.focus()}));let F=$6(G);u4(()=>{if(F.current&&!G)U.current?.focus();F.current=G},[G]);let k=!X.busy&&(Boolean(z.trim())||X.hasReady);function O(){if(G||!k)return;let W=z.trim()||J("translate_attachment_caption"),K=X.consumeReady();q(""),Y(W,K.map((B)=>B.summary))}return i1("div",{className:"cortex-widget__input-area",onDragOver:L.onDragOver,onDragLeave:L.onDragLeave,onDrop:L.onDrop,children:[G_(s0,{}),i1("div",{className:H("cortex-widget__input-box",G&&"cortex-widget__input-box--disabled",!G&&"cortex-widget__input-box--enabled",L.dragging&&"cortex-widget__input-box--dragging"),children:[G_(N6,{inputRef:U,value:z,onChange:q,onSubmit:O,onPaste:L.onPaste,disabled:G,dragging:L.dragging}),G?i1("button",{onClick:()=>void Q(),className:"cortex-stop-btn",children:[G_("span",{className:"cortex-stop-btn__ring"}),G_("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"cortex-stop-btn__icon",children:G_("rect",{x:"1",y:"1",width:"10",height:"10",rx:"2.5",fill:"currentColor"})})]}):G_(_6,{attachmentsEnabled:V,canSend:k,onSend:O})]})]})});import{jsx as X6}from"react/jsx-runtime";function u_({capabilities:_,composerRef:N}){let{t:$}=D();if(_===void 0)return null;return _.messages===!1?X6("p",{className:"cortex-widget__messages-disabled",children:$("translate_messages_disabled")}):X6(J6,{ref:N})}import{jsx as u,jsxs as Y6}from"react/jsx-runtime";function Q6(_){let{locale:N,t:$,threads:J,send:X,capabilities:Y}=D(),Q=Y?.messages===!1,Z=Y!==void 0,G=Q_(Y?.suggestions,N),V=Q_(Y?.greeting,N)||$("translate_greeting");return Y6("div",{className:"cortex-widget__landing",children:[u("div",{className:"cortex-widget__landing-icon",children:u("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",children:u("path",{d:b.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),u("p",{className:"cortex-widget__landing-greeting",children:V}),Z&&!Q&&!!G?.length&&u("div",{className:"cortex-widget__landing-chips",children:G.map((z,q)=>u("button",{type:"button",onClick:()=>void X(z.prompt),className:"cortex-widget__landing-chip",children:z.title},q))}),u(u_,{capabilities:Y}),!!J?.length&&u("div",{className:"cortex-widget__landing-recent",children:J.slice(0,2).map((z)=>{let q=h(z.updatedAt,N);return Y6("button",{type:"button",onClick:()=>_.onThreadSelected(z),className:"cortex-widget__landing-recent-item",children:[u("p",{className:"cortex-widget__landing-recent-title",children:z.title??$("translate_untitled")}),q&&u("p",{className:"cortex-widget__landing-recent-time",children:q})]},z.id)})})]})}import{useCallback as A8,useEffect as o_,useMemo as E8,useRef as B_,useState as i6}from"react";import{jsx as h_,jsxs as G6}from"react/jsx-runtime";function Z6(){let{t:_}=D();return G6("div",{className:"cortex-widget__working",children:[G6("div",{className:"cortex-widget__working-dots",children:[h_("span",{className:"cortex-working-dot"}),h_("span",{className:"cortex-working-dot"}),h_("span",{className:"cortex-working-dot"})]}),h_("span",{className:"cortex-widget__working-text",children:_("translate_thinking")})]})}import{memo as M8}from"react";import{Fragment as L8}from"react";import{useRef as p4,useState as n4}from"react";import{jsx as Z_,jsxs as d4}from"react/jsx-runtime";function f({value:_,className:N}){let{t:$}=D(),[J,X]=n4(!1),Y=p4(null);async function Q(Z){Z.stopPropagation(),Z.preventDefault();try{if(await navigator.clipboard.writeText(_),X(!0),Y.current)clearTimeout(Y.current);Y.current=setTimeout(()=>X(!1),1500)}catch{}}return Z_("span",{className:H("cortex-copy-btn",N),children:Z_("button",{className:H("cortex-copy-btn__button",J&&"cortex-copy-btn__button--copied"),onClick:(Z)=>void Q(Z),"aria-label":J?$("translate_copied"):$("translate_copy"),type:"button",children:J?Z_("svg",{className:"cortex-copy-btn__icon cortex-copy-btn__icon--check",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:Z_("path",{d:"M5 13l4 4L19 7",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):d4("svg",{className:"cortex-copy-btn__icon",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:[Z_("rect",{x:"9",y:"9",width:"12",height:"12",rx:"2",stroke:"currentColor",strokeWidth:"2"}),Z_("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})})})}import{jsx as l_,jsxs as V6}from"react/jsx-runtime";function z6(){let{t:_}=D();return V6("div",{className:"cortex-aborted-flag",children:[l_("span",{className:"cortex-aborted-flag__line"}),V6("span",{className:"cortex-aborted-flag__label",children:[l_("svg",{className:"cortex-aborted-flag__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:l_("path",{d:"M6 1.5v5M6 8.75v.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),_("translate_aborted")]}),l_("span",{className:"cortex-aborted-flag__line"})]})}import{jsx as V_,jsxs as K6}from"react/jsx-runtime";function q6(_){let{api:N,t:$}=D();async function J(X){let{blob:Y,name:Q}=await N.downloadAttachment(X);l1(Y,Q)}return V_("div",{className:H("cortex-message-attachments",_.isUser&&"cortex-message-attachments--user"),children:_.attachments.map((X)=>K6("button",{type:"button",onClick:()=>void J(X.id),className:"cortex-message-attachment","aria-label":`${$("translate_download")}: ${X.filename}`,children:[K6("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__icon",fill:"none",children:[V_("path",{d:b.file[0],stroke:"currentColor",strokeWidth:"1.25"}),V_("path",{d:b.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),V_("span",{className:"cortex-message-attachment__name",children:X.filename}),V_("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__dl-icon",fill:"none",children:V_("path",{d:"M8 3v7m0 0L5.5 7.5M8 10l2.5-2.5M3 13h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},X.id))})}import{useRef as o4,useState as E_}from"react";import{useMemo as i4,useState as r4}from"react";import{jsx as T,jsxs as N_,Fragment as p_}from"react/jsx-runtime";function n({data:_,expandDepth:N,className:$}){let J=i4(()=>Y_(_),[_]),[X,Y]=r4({});function Q(G,V){return X[G]??V>=N}function Z(G,V){Y((z)=>({...z,[G]:!Q(G,V)}))}return T("div",{className:H("cortex-json-tree",$),children:T(W6,{value:J,path:"$",depth:0,isCollapsed:Q,toggle:Z})})}function W6({value:_,path:N,depth:$,isCollapsed:J,toggle:X}){let Y=h1(_,N);if(Y.kind==="primitive")return T("span",{className:Y.className,children:Y.text});if(Y.entries.length===0)return N_("span",{className:"cortex-json-tree__bracket",children:[Y.open,Y.close]});let Q=J(N,$);function Z(G){X(N,$),G.stopPropagation()}return N_(p_,{children:[N_("span",{className:"cortex-json-tree__toggle",onClick:Z,role:"button",children:[T("span",{className:H("cortex-json-tree__arrow",Q&&"cortex-json-tree__arrow--collapsed"),children:"▾"}),T("span",{className:"cortex-json-tree__bracket",children:Y.open})]}),Q?N_(p_,{children:[T("span",{className:"cortex-json-tree__collapsed-hint",onClick:Z,role:"button",children:Y.summary}),T("span",{className:"cortex-json-tree__bracket",children:Y.close})]}):N_(p_,{children:[T("div",{className:"cortex-json-tree__indent",children:Y.entries.map((G,V)=>N_("div",{className:"cortex-json-tree__line",children:[G.key!==null&&N_(p_,{children:[T("span",{className:"cortex-json-tree__key",children:`"${G.key}"`}),T("span",{className:"cortex-json-tree__colon",children:": "})]}),T(W6,{value:G.value,path:G.path,depth:$+1,isCollapsed:J,toggle:X}),V<Y.entries.length-1&&T("span",{className:"cortex-json-tree__comma",children:","})]},G.path))}),T("span",{className:"cortex-json-tree__bracket",children:Y.close})]})]})}function E(_){return _.toLocaleString("en-US")}import{jsx as z_,jsxs as K_}from"react/jsx-runtime";function B6({usage:_}){let{t:N}=D();return K_("div",{className:"cortex-llm-inspector__usage-rows",children:[K_("div",{className:"cortex-llm-inspector__usage-row",children:[z_("span",{className:"cortex-llm-inspector__usage-lbl",children:N("translate_input")}),z_("span",{className:"cortex-llm-inspector__usage-val",children:E(_.input.total)}),K_("span",{className:"cortex-llm-inspector__usage-detail",children:[N("translate_fresh")," ",E(_.input.noCache)," · ",N("translate_read")," ",E(_.input.cacheRead)," · ",N("translate_write")," ",E(_.input.cacheWrite)]})]}),K_("div",{className:"cortex-llm-inspector__usage-row",children:[z_("span",{className:"cortex-llm-inspector__usage-lbl",children:N("translate_output")}),z_("span",{className:"cortex-llm-inspector__usage-val",children:E(_.output.total)}),K_("span",{className:"cortex-llm-inspector__usage-detail",children:[N("translate_text")," ",E(_.output.text)," · ",N("translate_reasoning")," ",E(_.output.reasoning)]})]}),K_("div",{className:"cortex-llm-inspector__usage-row cortex-llm-inspector__usage-row--total",children:[z_("span",{className:"cortex-llm-inspector__usage-lbl",children:N("translate_total")}),z_("span",{className:"cortex-llm-inspector__usage-val",children:E(_.total)})]})]})}import{jsx as D6,jsxs as n_}from"react/jsx-runtime";function H6({usage:_}){let N=A_(_);return n_("span",{className:"cortex-llm-inspector__step-metrics",children:[n_("span",{className:"cortex-llm-inspector__metric",children:[D6("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--input"}),E(_.input.total)]}),n_("span",{className:"cortex-llm-inspector__metric",children:[D6("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--output"}),E(_.output.total)]}),N!==null?n_("span",{className:"cortex-llm-inspector__cache-pct",children:[N,"%"]}):null]})}import{jsx as y,jsxs as a}from"react/jsx-runtime";function U6({messageId:_}){let{t:N,api:$}=D(),[J,X]=E_(!1),[Y,Q]=E_(!1),[Z,G]=E_([]),[V,z]=E_(null),[q,L]=E_({}),U=o4(!1);async function F(){if(!U.current){Q(!0);try{G(await $.listLlmRequests(_))}finally{Q(!1),U.current=!0}}X((K)=>!K)}function k(K){z((B)=>B===K?null:K)}function O(K){return q[K]??"prompt"}function W(K,B){L((M)=>({...M,[K]:B}))}return a("div",{className:H("cortex-llm-inspector",J&&"cortex-llm-inspector--open"),children:[a("button",{className:"cortex-llm-inspector__trigger",onClick:()=>void F(),children:[y("svg",{className:"cortex-llm-inspector__icon",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:y("path",{d:"M6 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM0 6a6 6 0 1 1 10.89 3.477l4.817 4.816a1 1 0 0 1-1.414 1.414l-4.816-4.816A6 6 0 0 1 0 6Z",fill:"currentColor"})}),y("span",{children:N("translate_inspect_llm_requests")}),Y?y("span",{className:"cortex-llm-inspector__loading",children:N("translate_loading")}):Z.length>0?y("span",{className:"cortex-llm-inspector__badge",children:Z.length}):null,y("svg",{className:"cortex-llm-inspector__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:y("path",{d:b.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),y("div",{className:"cortex-llm-inspector__panel-wrapper",children:y("div",{className:"cortex-llm-inspector__panel-inner",children:a("div",{className:"cortex-llm-inspector__panel",children:[Z.length===0&&!Y?y("div",{className:"cortex-llm-inspector__empty",children:N("translate_no_llm_requests")}):null,Z.map((K,B)=>a("div",{className:H("cortex-llm-inspector__step",V===K.id&&"cortex-llm-inspector__step--expanded"),children:[a("button",{className:"cortex-llm-inspector__step-header",onClick:()=>k(K.id),children:[y("span",{className:"cortex-llm-inspector__step-label",children:N("translate_step_n",{number:B+1})}),K.tokenUsage?y(H6,{usage:K.tokenUsage}):null,y("svg",{className:"cortex-llm-inspector__step-chevron",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:y("path",{d:b.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),y("div",{className:"cortex-llm-inspector__step-body-wrapper",children:y("div",{className:"cortex-llm-inspector__step-body-inner",children:a("div",{className:"cortex-llm-inspector__step-body",children:[K.tokenUsage?y(B6,{usage:K.tokenUsage}):null,a("div",{className:"cortex-llm-inspector__tabs",children:[y("button",{className:H("cortex-llm-inspector__tab",O(K.id)==="prompt"&&"cortex-llm-inspector__tab--active"),onClick:()=>W(K.id,"prompt"),children:N("translate_request")}),y("button",{className:H("cortex-llm-inspector__tab",O(K.id)==="response"&&"cortex-llm-inspector__tab--active"),onClick:()=>W(K.id,"response"),children:N("translate_response")})]}),a("div",{className:"cortex-llm-inspector__json-pane",children:[y(f,{className:"cortex-llm-inspector__json-copy",value:O(K.id)==="prompt"?j_(K.prompt):j_(K.output)}),O(K.id)==="prompt"?y(n,{data:g_(K.prompt),expandDepth:2}):y(n,{data:g_(K.output),expandDepth:2})]})]})})})]},K.id))]})})})]})}import{useState as a4}from"react";import{jsx as P,jsxs as I}from"react/jsx-runtime";function F6({usage:_,modelId:N}){let{t:$}=D(),[J,X]=a4(!1),Y=A_(_)??0;return I("div",{className:H("cortex-token-usage",J&&"cortex-token-usage--expanded"),children:[I("button",{className:"cortex-token-usage__summary",onClick:()=>X((Q)=>!Q),children:[I("span",{className:"cortex-token-usage__total",children:[P("span",{className:"cortex-token-usage__total-number",children:E(_.total)}),P("span",{className:"cortex-token-usage__total-label",children:$("translate_tokens")})]}),N?P("span",{className:"cortex-token-usage__model",children:N}):null,I("span",{className:"cortex-token-usage__pills",children:[I("span",{className:"cortex-token-usage__pill",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),E(_.input.total)]}),I("span",{className:"cortex-token-usage__pill",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),E(_.output.total)]})]}),Y>0?I("span",{className:"cortex-token-usage__cache-badge",children:[Y,"%"]}):null,P("svg",{className:"cortex-token-usage__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:P("path",{d:b.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),P("div",{className:"cortex-token-usage__details",children:P("div",{className:"cortex-token-usage__details-inner",children:I("div",{className:"cortex-token-usage__columns",children:[I("div",{className:"cortex-token-usage__col",children:[I("div",{className:"cortex-token-usage__col-header",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),P("span",{className:"cortex-token-usage__col-label",children:$("translate_input")}),P("span",{className:"cortex-token-usage__col-total",children:E(_.input.total)})]}),I("div",{className:"cortex-token-usage__rows",children:[_.input.noCache?I("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:$("translate_fresh")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.input.noCache)})]}):null,_.input.cacheRead?I("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:$("translate_cache_read")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.input.cacheRead)})]}):null,_.input.cacheWrite?I("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:$("translate_cache_write")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.input.cacheWrite)})]}):null]}),Y>0?I("div",{className:"cortex-token-usage__cache-bar-row",children:[P("div",{className:"cortex-token-usage__cache-bar",children:P("div",{className:"cortex-token-usage__cache-fill",style:{width:`${Y}%`}})}),P("span",{className:"cortex-token-usage__cache-label",children:$("translate_n_percent_cached",{percent:Y})})]}):null]}),I("div",{className:"cortex-token-usage__col",children:[I("div",{className:"cortex-token-usage__col-header",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),P("span",{className:"cortex-token-usage__col-label",children:$("translate_output")}),P("span",{className:"cortex-token-usage__col-total",children:E(_.output.total)})]}),I("div",{className:"cortex-token-usage__rows",children:[_.output.text?I("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:$("translate_text")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.output.text)})]}):null,_.output.reasoning?I("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:$("translate_reasoning")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.output.reasoning)})]}):null]})]})]})})})]})}import{jsx as L6,jsxs as t4}from"react/jsx-runtime";function k6({messageId:_,isAssistant:N,metadata:$}){let J=$?.tokenUsage;if(!J&&!N)return null;return t4("div",{className:"cortex-message-debug-zone",children:[J&&L6(F6,{usage:J,modelId:$?.modelId}),N&&L6(U6,{messageId:_})]})}import{jsx as g,jsxs as R_}from"react/jsx-runtime";function O6(_){let{reasoningPart:N,streaming:$=!1}=_,{t:J}=D();return R_("details",{className:"cortex-reasoning-details",children:[R_("summary",{className:"cortex-reasoning-details__summary",children:[R_("div",{className:"cortex-reasoning-details__header",children:[g("span",{className:"cortex-reasoning-details__icon",children:R_("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:[g("path",{d:"M10 2C6.686 2 4 4.686 4 8c0 1.655.672 3.154 1.757 4.243.362.363.576.858.576 1.371V14.5a1 1 0 0 0 1 1h5.334a1 1 0 0 0 1-1v-.886c0-.513.214-1.008.576-1.371A5.978 5.978 0 0 0 16 8c0-3.314-2.686-6-6-6Z",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}),g("path",{d:"M7.5 17.5h5M8.5 8a2 2 0 0 1 2-2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}),g("div",{className:"cortex-reasoning-details__title-group",children:R_("div",{className:"cortex-reasoning-details__title-row",children:[g("div",{className:"cortex-reasoning-details__title",children:J("translate_reasoning")}),g("span",{className:H("cortex-reasoning-details__badge",$?"cortex-reasoning-details__badge--streaming":"cortex-reasoning-details__badge--done"),children:$?J("translate_streaming"):J("translate_done")})]})})]}),g("span",{className:"cortex-reasoning-details__chevron","aria-hidden":"true",children:g("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:g("path",{d:b.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),g("div",{className:"cortex-reasoning-details__body",children:g("div",{className:"cortex-reasoning-details__content",children:g("pre",{className:"cortex-reasoning-details__pre",children:N.content.trim()?N.content:J("translate_no_reasoning")})})})]})}import{useEffect as R6,useMemo as Q8,useRef as o1,useState as G8}from"react";import{useEffect as s4,useState as M6}from"react";import{jsx as r1,jsxs as e4}from"react/jsx-runtime";function P6(_){let{id:N,alt:$,attachment:J}=_,{api:X,t:Y}=D(),[Q,Z]=M6(),[G,V]=M6(!1);if(s4(()=>{let z,q=!1;return Z(void 0),V(!1),X.downloadAttachment(N).then(({blob:L})=>{if(q)return;z=URL.createObjectURL(L),Z(z)},()=>{if(!q)V(!0)}),()=>{if(q=!0,z)URL.revokeObjectURL(z)}},[X,N]),G)return r1("p",{className:"cortex-attachment-image__caption",children:$?Y("translate_image_unavailable_alt",{alt:$}):Y("translate_image_unavailable")});if(!Q)return null;return e4("figure",{className:"cortex-attachment-image",children:[r1("img",{src:Q,alt:$}),J&&r1("figcaption",{className:"cortex-attachment-image__caption",children:J.filename})]})}import{useEffect as _8,useRef as N8,useState as A6}from"react";import{jsx as d,jsxs as d_}from"react/jsx-runtime";var $8={mermaid:"translate_media_pending_mermaid","vega-lite":"translate_media_pending_vega_lite",map:"translate_media_pending_map"};function J8(_){return $8[_]??"translate_media_pending"}function X8(_){let{t:N}=D();if(!_.pending&&!_.debugMode)return null;return d_("div",{className:"cortex-media-block__head",children:[_.debugMode&&d("span",{className:"cortex-media-block__lang",children:_.language}),_.pending&&d("span",{className:"cortex-media-block__pending",children:N(J8(_.language))}),_.debugMode&&_.closed&&d_("span",{className:"cortex-media-block__actions",children:[_.onToggleSource&&d("button",{type:"button",className:"cortex-media-block__action","aria-pressed":_.sourceShown,onClick:_.onToggleSource,children:N("translate_media_source")}),d(f,{value:_.source})]})]})}function Y8(_){let{debugMode:N,t:$}=D();return d("div",{className:"cortex-media-block__body",children:d_("p",{className:"cortex-media-block__error",children:[_.cutOff?$("translate_media_cut_off"):$("translate_media_failed"),!_.cutOff&&N&&` ${_.reason}`]})})}function E6(_){let{language:N,source:$,closed:J,streaming:X}=_,{config:Y,debugMode:Q,scheme:Z}=D(),G=N8(null),[V,z]=A6(),[q,L]=A6(!1);_8(()=>{z(void 0);let O=G.current;if(!J||!Z||!O)return;return j1(O,{language:N,source:$,context:{scheme:Z},overrides:Y.mediaRenderers,onError:z})},[N,$,J,Z,Y.mediaRenderers]);let U=!J&&!X,F=U||Boolean(V);return d_("div",{className:"cortex-media-block",children:[d(X8,{language:N,source:$,pending:!J&&X,closed:J,debugMode:Q,sourceShown:q,onToggleSource:F?void 0:()=>L((O)=>!O)}),F&&d(Y8,{cutOff:U,reason:V}),d("div",{ref:G,hidden:F,className:H("cortex-media-block__body",`cortex-media-block__body--${N}`)}),Q&&(F||q)&&d("pre",{className:"cortex-media-block__source",children:$})]})}import{jsx as y_}from"react/jsx-runtime";function y6(_){let{role:N,textPart:$,streaming:J=!1,attachments:X=[]}=_,{config:Y}=D(),Q=N==="assistant"&&J?"":$.content,[Z,G]=G8(Q),V=o1(Q),z=o1(null),q=o1(!0);R6(()=>{function F(k){V.current=k,G(k)}if(N!=="assistant"||!J){z.current?.destroy(),z.current=null,F($.content),q.current=!1;return}if(!z.current)z.current=new e(F),z.current.seed(V.current);if(q.current){q.current=!1,z.current.seed($.content);return}z.current.update($.content,!1)},[N,J,$]),R6(()=>()=>{z.current?.destroy(),z.current=null},[]);let L=Q8(()=>{return(N==="assistant"?C1(Z,g1(Y.mediaRenderers)):[{kind:"markdown",text:Z}]).map((k)=>k.kind==="markdown"?{...k,html:{__html:I1(k.text)}}:k)},[N,Z,Y.mediaRenderers]),U=J||Z!==$.content;return y_("div",{className:H("cortex-text-part",N==="assistant"&&"cortex-text-part--assistant",N==="user"&&"cortex-text-part--user"),children:y_("div",{className:H("cortex-text-bubble",N==="assistant"&&"cortex-text-bubble--assistant",N==="user"&&"cortex-text-bubble--user"),children:L.map((F,k)=>{switch(F.kind){case"markdown":return y_("div",{dangerouslySetInnerHTML:F.html},k);case"media":return y_(E6,{...F,streaming:U},k);case"attachment":return y_(P6,{id:F.id,alt:F.alt,attachment:X.find((O)=>O.id.toLowerCase()===F.id)},k)}})})})}import{jsx as v,jsxs as t}from"react/jsx-runtime";function w6({toolCallPart:_}){let{t:N}=D(),{state:$,approval:J}=_,X=_.output,Y=Q1(_);function Q(){if($==="complete")return t("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--success",children:[t("div",{className:"cortex-debug-tool__section-bar",children:[v("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--success",children:N("translate_output")}),v("span",{className:"cortex-debug-tool__section-lang",children:"json"}),v(f,{value:Y})]}),v("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:v(n,{data:X,expandDepth:2})})]});if($==="error")return t("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--error",children:[t("div",{className:"cortex-debug-tool__section-bar",children:[v("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--error",children:N("translate_error")}),v(f,{value:Y})]}),v("pre",{dir:"ltr",className:"cortex-debug-tool__error-pre",children:Y})]});if($==="approval-requested")return t("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[t("div",{className:"cortex-debug-tool__section-bar",children:[v("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:N("translate_approval_requested")}),v("span",{className:"cortex-debug-tool__section-lang",children:J?.id})]}),v("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:N("translate_waiting_for_approval")})]});if($==="approval-responded")return t("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[t("div",{className:"cortex-debug-tool__section-bar",children:[v("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:N("translate_approval_response")}),v("span",{className:"cortex-debug-tool__section-lang",children:J?.id})]}),v("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:N(J?.approved?"translate_tool_approved":"translate_tool_response_received")})]});return null}return Q()}import{jsx as Z8,jsxs as V8}from"react/jsx-runtime";function b6({toolCallPart:_}){let{t:N}=D(),$=Y1(_);return V8("span",{className:H("cortex-debug-tool__state",$.modifier&&`cortex-debug-tool__state--${$.modifier}`),children:[$.pulse&&Z8("span",{className:H("cortex-debug-tool__pulse",$.pulse==="violet"&&"cortex-debug-tool__pulse--violet")}),N($.labelKey)]})}import{jsx as C,jsxs as i}from"react/jsx-runtime";function I6({toolCallPart:_}){let{t:N}=D(),{codeSnippets:$,remainingInput:J,remainingInputText:X}=G1(_.input);return i("details",{className:"cortex-debug-tool","data-state":_.state,children:[C("summary",{className:"cortex-debug-tool__summary",children:i("div",{className:"cortex-debug-tool__header",children:[i("div",{className:"cortex-debug-tool__meta",children:[C("div",{className:"cortex-debug-tool__title-row",children:C("span",{className:"cortex-debug-tool__name",title:_.name,children:_.name})}),C("div",{className:"cortex-debug-tool__id-row",children:C("span",{className:"cortex-debug-tool__id",children:_.id})})]}),i("div",{className:"cortex-debug-tool__actions",children:[C(b6,{toolCallPart:_}),C("svg",{className:"cortex-debug-tool__chevron",width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:C("path",{d:b.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),i("div",{className:"cortex-debug-tool__body",children:[$.map((Y)=>i("div",{className:"cortex-debug-tool__section",children:[i("div",{className:"cortex-debug-tool__section-bar",children:[C("span",{className:"cortex-debug-tool__section-label",children:Y.key}),C("span",{className:"cortex-debug-tool__section-lang",children:Y.lang}),C(f,{value:Y.value})]}),C("pre",{dir:"ltr",className:"cortex-debug-tool__pre",children:C("code",{className:"hljs",dangerouslySetInnerHTML:{__html:c1(Y.value,Y.lang)}})})]},Y.key)),!!J&&i("div",{className:"cortex-debug-tool__section",children:[i("div",{className:"cortex-debug-tool__section-bar",children:[C("span",{className:"cortex-debug-tool__section-label",children:N("translate_input")}),C("span",{className:"cortex-debug-tool__section-lang",children:"json"}),C(f,{value:X})]}),C("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:C(n,{data:J,expandDepth:2})})]}),C(w6,{toolCallPart:_})]})]})}import{useEffect as z8,useRef as K8,useState as C6}from"react";import{jsx as w_,jsxs as S6}from"react/jsx-runtime";function b_({activity:_,className:N}){let{t:$}=D(),J=V1(_),[X,Y]=C6(0),[Q,Z]=C6("idle"),G=K8(J.length);return G.current=J.length,z8(()=>{let V,z;function q(){V=setTimeout(()=>{Z("exiting"),V=setTimeout(()=>{Y((L)=>(L+1)%G.current),Z("enter-start"),z=requestAnimationFrame(()=>{Z("entering"),V=setTimeout(()=>{Z("idle"),q()},300)})},300)},2000)}return q(),()=>{if(V)clearTimeout(V);if(z)cancelAnimationFrame(z)}},[]),S6("div",{className:H("cortex-subtle-activity",N),children:[S6("div",{className:"cortex-subtle-activity__dots",children:[w_("span",{className:"cortex-subtle-activity__dot"}),w_("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d1"}),w_("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d2"})]}),w_("div",{className:"cortex-subtle-activity__label-mask",children:w_("span",{className:H("cortex-subtle-activity__label",`cortex-subtle-activity__label--${Q}`),children:$(J[X])})})]})}import{useEffect as m6,useRef as a1,useState as j6}from"react";import{useEffect as T6,useRef as i_,useState as f6}from"react";import{jsx as w,jsxs as c}from"react/jsx-runtime";function g6({toolCallPart:_,setOutput:N}){let{t:$}=D(),{state:J,id:X,input:Y}=_;if(J==="complete"||J==="error"){let Q=E1(_.output);return Q?w(W8,{position:Q}):c("div",{className:"cortex-tool-pill",children:[w("span",{className:"cortex-tool-pill__icon",children:w("svg",{className:H("cortex-tool-pill__svg cortex-tool-pill__svg--visible",J==="error"&&"cortex-tool-pill__svg--error"),viewBox:"0 0 20 20",fill:"none",children:w("path",{d:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}),w("span",{className:"cortex-tool-pill__title",children:$("translate_location_not_shared")})]})}if(J!=="input-complete")return null;return w(q8,{center:A1(Y),submit:N},X)}function q8({center:_,submit:N}){let{t:$}=D(),J=i_(null),X=i_(void 0),[Y,Q]=f6(C_),Z=i_({center:_,submit:N});return Z.current={center:_,submit:N},T6(()=>{let G=J.current;if(!G)return;let V=M1(G,{center:Z.current.center,onState:Q,submit:(z)=>Z.current.submit(z)});return X.current=V,V.start(),()=>{if(V.dispose(),X.current===V)X.current=void 0}},[]),c("div",{className:"cortex-location-input",children:[c("div",{className:"cortex-location-input__map",children:[w("div",{className:"cortex-location-input__canvas",ref:J}),w("button",{type:"button",className:"cortex-location-input__locate","aria-label":$("translate_location_locate"),title:$("translate_location_locate"),disabled:Y.locating||Y.submitting,onClick:()=>X.current?.locate(),children:w(B8,{})})]}),c("div",{className:"cortex-location-input__foot",children:[Y.position&&!Y.deliveryFailed?w("span",{className:"cortex-location-input__coords",children:S_(Y.position)}):c("span",{className:H("cortex-location-input__hint",v6(Y).failed&&"cortex-location-input__hint--failed"),children:[Y.locating&&w("span",{className:"cortex-location-input__spinner"}),$(v6(Y).key)]}),c("span",{className:"cortex-location-input__actions",children:[w("button",{type:"button",className:"cortex-location-input__skip",disabled:Y.submitting,onClick:()=>X.current?.cancel(),children:$("translate_location_skip")}),w("button",{type:"button",className:"cortex-location-input__send",disabled:!Y.position||Y.submitting,onClick:()=>X.current?.confirm(),children:$("translate_location_send")})]})]})]})}function v6(_){if(_.locating)return{key:"translate_location_locating",failed:!1};if(_.deliveryFailed)return{key:"translate_location_send_failed",failed:!0};if(_.locateFailed)return{key:"translate_location_locate_failed",failed:!0};if(_.mapFailed)return{key:"translate_location_map_failed",failed:!0};return{key:"translate_location_hint",failed:!1}}function W8({position:_}){let{t:N}=D(),$=i_(null),[J,X]=f6(!1),{lat:Y,lng:Q}=_;return T6(()=>{let Z=$.current;if(!Z)return;return X(!1),P1(Z,{lat:Y,lng:Q},()=>X(!0))},[Y,Q]),c("div",{className:"cortex-location-input cortex-location-input--settled",children:[c("div",{className:"cortex-location-input__map cortex-location-input__map--still",children:[w("div",{className:"cortex-location-input__canvas",ref:$,hidden:J}),J&&w("span",{className:"cortex-location-input__still-failed",children:N("translate_location_map_failed")})]}),c("div",{className:"cortex-location-input__body",children:[c("span",{className:"cortex-location-input__title",children:[w("svg",{viewBox:"0 0 20 20",fill:"none",children:w("path",{d:"M5.5 10.5 L8.5 13.5 L14.5 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),N("translate_location_shared")]}),w("span",{className:"cortex-location-input__coords",children:S_(_)})]})]})}function B8(){return c("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:[w("circle",{cx:"10",cy:"10",r:"5.5"}),w("circle",{cx:"10",cy:"10",r:"1.6",fill:"currentColor",stroke:"none"}),w("path",{d:"M10 1.5v3M10 15.5v3M1.5 10h3M15.5 10h3"})]})}import{jsx as R,jsxs as q_}from"react/jsx-runtime";var D8={[W0]:g6};function c6({message:_,toolCallPart:N,agentWorking:$}){let{config:J,addToolResult:X}=D(),Y=N.state==="input-complete"&&!$,Q=N.state==="approval-requested"&&!$,Z=J.toolComponents?.[N.name]??(Y||m(N.state)?D8[N.name]:void 0);return R("div",{className:"cortex-tool-call-animated",children:Z?R(Z,{toolCallPart:N,message:_,setOutput:(G)=>X(N.id,N.name,G)}):Y?R(H8,{toolCallPart:N}):R(x6,{toolCallPart:N,asking:Q})})}function H8({toolCallPart:_}){let{api:N,t:$,addToolResult:J,selectedThread:X,config:Y}=D(),Q=X?.id,[Z,G]=j6({phase:"initiating"}),[V]=j6(Y.trustSameOriginEmbeds),z=a1(void 0),q=a1({api:N,addToolResult:J,toolName:_.name});if(q.current={api:N,addToolResult:J,toolName:_.name},m6(()=>{if(!Q)return;let U=k1({initiate:()=>q.current.api.initiateToolCall(Q,_.id),onState:G,submit:(k)=>q.current.addToolResult(_.id,q.current.toolName,k)});z.current=U,U.start();let F=(k)=>U.handleMessage(k);return window.addEventListener("message",F),()=>{if(window.removeEventListener("message",F),U.dispose(),z.current===U)z.current=void 0}},[_.id,Q]),!Q||Z.phase==="unavailable"||Z.phase==="settling")return R(x6,{toolCallPart:_});let L=q_("div",{className:"cortex-client-tool-embed",children:[q_("div",{className:"cortex-client-tool-embed__bar",children:[R("span",{children:$("translate_client_tool_title")}),R("button",{type:"button",className:"cortex-client-tool-embed__cancel",onClick:()=>z.current?.cancel(),children:$("translate_client_tool_cancel")})]}),Z.phase==="embedded"?R("iframe",{className:"cortex-client-tool-embed__frame",src:Z.embedUrl,sandbox:U1(Z.embedUrl,window.location.origin,V),title:$("translate_client_tool_title"),ref:(U)=>z.current?.setSource(U?.contentWindow),onLoad:(U)=>{if(!F1(Z.embedUrl,window.location.origin,V)&&L1(U.currentTarget,window.location.origin))z.current?.terminate()}}):Z.phase==="error"?q_("div",{className:"cortex-client-tool-embed__status",children:[R("span",{children:$("translate_client_tool_failed")}),R("button",{type:"button",className:"cortex-client-tool-embed__retry",onClick:()=>void z.current?.start(),children:$("translate_client_tool_retry")})]}):R("div",{className:"cortex-client-tool-embed__status",children:$("translate_client_tool_loading")})]});return Z.phase==="embedded"&&Z.surface==="modal"?R(U8,{label:$("translate_client_tool_title"),onCancel:()=>z.current?.cancel(),children:L}):L}function U8({label:_,onCancel:N,children:$}){let J=a1(null);return m6(()=>{let X=J.current;return X?.showModal(),()=>X?.close()},[]),R("dialog",{ref:J,className:"cortex-client-tool-embed-dialog","aria-label":_,onCancel:(X)=>{X.preventDefault(),N()},children:$})}function x6({toolCallPart:_,asking:N=!1}){let{t:$,locale:J,respondToApproval:X}=D(),{state:Y,active:Q,gated:Z,titleKey:G,statement:V,rowCount:z}=U_(_),q=_.approval?.id??`approval_${_.id}`;return q_("div",{className:H("cortex-tool-pill",Z&&"cortex-tool-pill--gated",N&&"cortex-tool-pill--asking"),children:[q_("span",{className:"cortex-tool-pill__icon",children:[N?R("span",{className:"cortex-tool-pill__dot"}):null,R("span",{className:H("cortex-tool-pill__spinner",Q&&"cortex-tool-pill__spinner--visible")}),R("svg",{className:H("cortex-tool-pill__svg","cortex-tool-pill__svg--check",Y==="complete"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:R("path",{d:"M5.5 10.5 L8.5 13.5 L14.5 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),R("svg",{className:H("cortex-tool-pill__svg","cortex-tool-pill__svg--error",Y==="error"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:R("path",{d:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]}),R("span",{className:H("cortex-tool-pill__title",Y==="error"&&"cortex-tool-pill__title--error",Y==="starting"&&V&&"cortex-tool-pill__title--pending"),children:N?Z1(_,J)??$("translate_approval_prompt"):V??$(G)}),z!==void 0?R("span",{className:"cortex-tool-pill__meta",children:$("translate_rows_read",{count:z})}):null,N?q_("span",{className:"cortex-tool-pill__actions",children:[R("button",{type:"button",className:"cortex-tool-pill__action cortex-tool-pill__action--approve",onClick:()=>void X(q,!0),children:$("translate_approve")}),R("button",{type:"button",className:"cortex-tool-pill__action",onClick:()=>void X(q,!1),children:$("translate_deny")})]}):null]})}import{jsx as t1}from"react/jsx-runtime";function u6({message:_,toolCallPart:N,agentWorking:$}){if(!m(N.state)&&!U_(N).statement){if(N.name==="queryGraph")return t1(b_,{activity:"graph"});if(N.name==="executeCode")return t1(b_,{activity:"code"})}return t1(c6,{toolCallPart:N,message:_,agentWorking:$})}import{jsx as W_,jsxs as F8}from"react/jsx-runtime";function h6(_){let{message:N,part:$,debugMode:J,animate:X,streaming:Y,agentWorking:Q,attachments:Z}=_,{t:G}=D();function V(){switch($.type){case"text":return W_(y6,{textPart:$,role:N.role,streaming:Y,attachments:Z});case"thinking":return J?W_(O6,{reasoningPart:$,streaming:Y}):W_(b_,{activity:"reasoning",className:"cortex-reasoning-animated"});case"tool-call":return J?W_(I6,{toolCallPart:$}):W_(u6,{toolCallPart:$,message:N,agentWorking:Q});default:return F8("p",{className:"cortex-unhandled-type",children:[G("translate_unhandled_type")," ",$.type]})}}return W_("div",{className:H("cortex-message-part",X&&"cortex-message-part--animated"),children:V()})}import{jsx as r,jsxs as s1}from"react/jsx-runtime";function k8({isUser:_,clipboardText:N,createdAt:$}){let{locale:J}=D();return s1("div",{className:H("cortex-message-actions",_&&"cortex-message-actions--user"),children:[N&&r(f,{value:N}),$&&r("time",{className:"cortex-message-actions__time",dateTime:$,children:h($,J)})]})}function O8({count:_,animate:N,onOpen:$}){let{t:J}=D();return r("button",{type:"button",className:H("cortex-tool-fold",N&&"cortex-message-part--animated"),onClick:$,children:J(_===1?"translate_one_more_step":"translate_n_more_steps",{count:_})})}function l6(_){let{message:N,parts:$,metadata:J,debugMode:X,animate:Y,isStreaming:Q,agentWorking:Z,closesTurn:G,fold:V,onOpenRun:z}=_,q=N.role==="assistant",L=N.role==="user",U=Q?$.length-1:-1,F=J?.attachments??[],k=$.map((B)=>B.type).lastIndexOf("text"),O=(L||q)&&!Q&&k>=0,W=k<$.length-1?k:-1,K=O&&r(k8,{isUser:L,clipboardText:z1($),createdAt:J?.createdAt});return s1("div",{className:"cortex-message-parts",children:[$.map((B,M)=>{let S=V?.get(B);return s1(L8,{children:[r(h6,{part:B,message:N,debugMode:X,animate:Y,streaming:M===U,agentWorking:Z,attachments:F}),S?.kind==="more"&&r(O8,{count:S.count,animate:Y,onOpen:()=>z(S.runId)}),M===W&&K]},N.parts.indexOf(B))}),F.length>0&&r(q6,{attachments:F,isUser:L}),J?.isAborted&&r(z6,{}),W===-1&&K,X&&J&&G&&r(k6,{messageId:N.id,isAssistant:q,metadata:J})]})}import{jsx as $_,jsxs as e1}from"react/jsx-runtime";function p6({firing:_,debugMode:N}){let{t:$,locale:J}=D();return e1("div",{className:N?"cortex-trigger-block cortex-trigger-block--debug":"cortex-trigger-block",children:[e1("div",{className:"cortex-trigger-block__head",children:[$_("svg",{className:"cortex-trigger-block__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:$_("path",{d:"M6.75 1 2.5 6.75h3l-.25 4.25L9.5 5.25h-3z",fill:"currentColor"})}),N&&$_("span",{children:$("translate_trigger_fired")}),$_("span",{className:"cortex-trigger-block__name",children:_.name}),$_("time",{className:"cortex-trigger-block__time",dateTime:_.firedAt,children:h(_.firedAt,J)})]}),N&&e1("details",{className:"cortex-trigger-block__payload",children:[$_("summary",{children:$("translate_trigger_payload")}),$_(n,{data:_.payload,expandDepth:2})]})]})}import{jsx as I_}from"react/jsx-runtime";var n6=M8(function(N){let{message:$,metadata:J,isStreaming:X,agentWorking:Y,closesTurn:Q,debugMode:Z,animate:G,fold:V,onOpenRun:z}=N,q=F_($.parts,{debugMode:Z,isStreaming:X,fold:V});if(J?.trigger)return I_("div",{className:"cortex-message",children:I_(p6,{firing:J.trigger,debugMode:Z})});if(q.length===0&&!J?.attachments?.length)return I_("div",{className:"cortex-message"});return I_("div",{className:"cortex-message",children:I_(l6,{message:$,parts:q,metadata:J,debugMode:Z,animate:G,isStreaming:X,agentWorking:Y,closesTurn:Q,fold:V,onOpenRun:z})})});import{jsx as r_}from"react/jsx-runtime";var P8=[{role:"user",lines:[13,9]},{role:"assistant",lines:[16,18,12]},{role:"user",lines:[11]},{role:"assistant",lines:[14,15]}];function d6(){return r_("div",{className:"cortex-widget__messages-skeleton",children:P8.map((_,N)=>r_("div",{className:`cortex-widget__msg-skel cortex-widget__msg-skel--${_.role}`,children:r_("div",{className:`cortex-widget__msg-skel-bubble cortex-widget__msg-skel-bubble--${_.role}`,children:_.lines.map(($)=>r_("div",{className:"cortex-skeleton cortex-widget__msg-skel-line",style:{width:`${$}rem`}},$))})},N))})}import{jsx as J_,jsxs as I8,Fragment as b8}from"react/jsx-runtime";function R8(_,N,$){let J=B_(!0),X=B_(!0),Y=B_(!1);function Q(){if(Y.current)return;Y.current=!0,queueMicrotask(()=>{Y.current=!1;let Z=_.current;if(!Z)return;Z.scrollTop=Z.scrollHeight,X.current=!0,J.current=!1})}return o_(()=>{let Z=_.current,G=N.current;if(!$||!Z||!G)return;if(Q(),typeof ResizeObserver>"u")return;let V=0,z=new ResizeObserver(([q])=>{let L=q?.contentRect.height??0,U=L>V;if(V=L,U&&(J.current||X.current))Q()});return z.observe(G),()=>z.disconnect()},[$]),{settlePinned:()=>{if(J.current)Q()},pin:()=>{J.current=!0},onScroll:()=>{let Z=_.current;if(Z)X.current=Z.scrollHeight-Z.scrollTop-Z.clientHeight<100}}}function y8(_,N,$){let[J,X]=i6(!1);o_(()=>{X(!1),_.pin(),queueMicrotask(()=>X(!0))},[N]);let Y=$[$.length-1],Q=Y?.role==="user"?Y.id:void 0;return o_(()=>{if(Q)_.pin()},[Q]),o_(()=>{_.settlePinned()},[$]),J}function w8(_,N,$){let{config:J}=D(),[X,Y]=i6(new Set),Q=A8((z)=>Y((q)=>new Set(q).add(z)),[]),Z=B_(q1()).current,G=J.toolComponents;return{folds:E8(()=>Z(_,{agentWorking:N,debugMode:$,opened:X,foldable:(z)=>!G?.[z.name]}),[Z,_,N,$,X,G]),openRun:Q}}function r6(_){let{selectedThread:N}=D(),{messages:$,isAgentWorking:J,isLoadingMessages:X,hasPendingToolCalls:Y}=x_(),{capabilities:Q,composerRef:Z}=_,G=B_(null),V=B_(null),z=!X||J,q=R8(G,V,z),L=y8(q,N?.id,$),U=J?K1($)?.id:void 0,{folds:F,openRun:k}=w8($,J,_.debugMode);return I8(b8,{children:[!z?J_(d6,{}):J_("div",{className:_.className,children:J_("div",{ref:G,className:"cortex-message-list",onScroll:q.onScroll,children:J_("div",{ref:V,className:"cortex-message-list__content",children:$.map((O,W)=>J_(n6,{message:O,metadata:O.metadata,isStreaming:O.id===U,agentWorking:J,fold:F.get(O.id),onOpenRun:k,closesTurn:O.role==="assistant"&&$[W+1]?.role!=="assistant",debugMode:_.debugMode,animate:L},O.id))})})}),J&&!Y&&J_(Z6,{}),!Y&&J_(u_,{capabilities:Q,composerRef:Z})]})}import{jsx as a_,jsxs as C8}from"react/jsx-runtime";function o6(_){let{debugMode:N,selectedThread:$}=D(),{screens:J}=_;return C8("div",{className:H("cortex-widget__screen",J.screen==="chat"&&"cortex-widget__screen--active",J.screen!=="chat"&&"cortex-widget__screen--right"),children:[a_(a0,{onToggleSidebar:J.toggleSidebar,onToggleDebug:_.onToggleDebug,onOpenHistory:J.openHistory}),$?a_(r6,{className:"cortex-widget__messages",debugMode:N,capabilities:_.capabilities,composerRef:_.composerRef}):a_(Q6,{onThreadSelected:_.onThreadSelected}),a_("div",{className:"cortex-widget__sidebar-backdrop",onClick:J.closeSidebar})]})}import{useState as g8}from"react";import{useEffect as _0,useRef as e6,useState as N0}from"react";import{useChat as f8}from"@tanstack/ai-react";import{useEffect as S8,useLayoutEffect as v8,useState as T8}from"react";function a6(_,N){let[$]=T8(_);return v8(()=>{return N.sessionRef.current=$,()=>{if(N.sessionRef.current===$)N.sessionRef.current=void 0}},[$]),S8(()=>{if(!N.pendingSendRef.current.length)return;let J=setTimeout(()=>{let X=N.pendingSendRef.current;N.pendingSendRef.current=[],(async()=>{for(let{prompt:Y,attachments:Q}of X)await $.send(Y,Q)})()});return()=>clearTimeout(J)},[$]),$}import{useRef as t6}from"react";function s6(_){let N=t6(_);N.current=_;let $=t6(Promise.resolve(void 0));async function J(X){let Y=N.current;if(!Y.isAlive()||X!==Y.threadId)return;return B1({api:Y.api,threadId:X,isStale:()=>!N.current.isAlive(),isStreaming:()=>N.current.isStreaming(),setMessages:(Q)=>N.current.setMessages(Q)})}return function(Y){return $.current=$.current.then(()=>J(Y)),$.current}}function _2(_){let{thread:N,api:$}=_,J=e6(!0),[X,Y]=N0(!1),Q=e6(null),Z=s6({api:$,threadId:N.id,isAlive:()=>J.current,isStreaming:()=>Q.current.chat.isLoading,setMessages:(K)=>Q.current.chat.setMessages(K)}),[G]=N0(()=>p1({threadId:N.id,isAlive:()=>J.current,onToolCall:()=>Q.current.props.configRef.current.hooks?.onToolCall,deliver:(K)=>Q.current.chat.addToolResult(K),setRunning:(K)=>Q.current.props.setRunning(N.id,K),reloadThreads:()=>Q.current.props.reloadThreads(),refreshMessages:()=>Z(N.id),onTurnFinished:()=>Q.current.props.onTurnFinished(),onSendFailed:()=>Q.current.props.onSendFailed()})),[V]=N0(()=>W1({api:$,thread:{id:N.id,isRunning:N.isRunning},mode:_.mode,localMessages:()=>Q.current.chat.messages,onHydrated:(K)=>{if(J.current)G.hydrated(K,N.isRunning)},onTranscriptCarried:(K)=>{if(J.current)G.transcriptCarried(K)},setLoadingMessages:(K)=>{if(J.current)Y(K)}})),z=f8({threadId:N.id,persistence:!0,initialMessages:_.initialMessages,connection:V,onChunk:()=>{if(J.current)G.chunkArrived()},onError:()=>{if(J.current)G.streamFailed()}});Q.current={chat:z,props:_};async function q(K,B){G.sendStarted();let M={id:L_(),role:"user",parts:[{type:"text",content:K}],metadata:{createdAt:new Date().toISOString(),attachments:B}};await Q.current.chat.append(M)}async function L(){if(!Q.current.chat.isLoading)return;let{aborted:K}=await $.abortStream(N.id).catch(()=>({aborted:!1}));if(!J.current)return;if(K)G.abortConfirmed();Q.current.chat.stop()}function U(K,B,M){return Q.current.chat.addToolResult({toolCallId:K,tool:B,output:M}).catch((S)=>{throw Z(N.id),S})}function F(K,B){return O1(Q.current.chat,K,B)}function k(K){if(Q.current.chat.isLoading)return;if(K.isRunning){Q.current.props.remount(K,Q.current.chat.messages);return}Z(K.id)}_0(()=>{return J.current=!0,()=>{J.current=!1}},[]),a6(()=>({threadId:N.id,send:q,abort:L,addToolResult:U,respondToApproval:F,reattach:k,transcriptUpdated:(K,B)=>{if(K===N.id)G.transcriptUpdated(B)}}),{sessionRef:_.sessionRef,pendingSendRef:_.pendingSendRef});let{messages:O,isLoading:W}=z;return _0(()=>{G.loadingChanged(W,()=>Q.current.chat.messages)},[G,W]),_0(()=>{Q.current.props.publish({messages:O,isAgentWorking:W,isLoadingMessages:X,hasPendingToolCalls:!W&&o(O).length>0})},[O,W,X]),null}import{jsx as N2,jsxs as j8}from"react/jsx-runtime";function $2({selection:_,threads:N,children:$,...J}){let{session:X}=_,[Y,Q]=g8();if(!X)return N2(c_.Provider,{value:m_,children:$});let Z=`${X.thread.id}:${X.epoch}`,G=Y&&(Y.key===Z||X.mode==="reload")?Y.value:m_;return j8(c_.Provider,{value:G,children:[N2(_2,{thread:X.thread,mode:X.mode,initialMessages:X.initialMessages,setRunning:N.setRunning,reloadThreads:N.reload,remount:_.remount,publish:(V)=>Q({key:Z,value:V}),...J},Z),$]})}import{jsx as A,jsxs as x,Fragment as m8}from"react/jsx-runtime";function J2(_){let{locale:N,t:$,threads:J,selectedThread:X,deleteThread:Y}=D();return x("div",{className:_.className,children:[x("div",{className:"cortex-widget__threads-header",children:[A("button",{type:"button",onClick:()=>_.onBackRequested(),"aria-label":$("translate_back"),className:"cortex-widget__back-btn",children:A("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"cortex-widget__back-icon",children:A("path",{d:"M10 3L5 8l5 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),x("div",{children:[A("h2",{className:"cortex-widget__threads-title",children:$("translate_history")}),A("p",{className:"cortex-widget__threads-count",children:$(J?.length===1?"translate_one_conversation":"translate_n_conversations",{count:J?.length??0})})]}),x("button",{onClick:()=>_.onNewChatRequested(),className:"cortex-widget__new-chat-btn",children:[A("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:A("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),$("translate_new")]})]}),A("div",{className:"cortex-widget__threads-list",children:J===void 0?[1,2,3,4].map((Q)=>x("div",{className:"cortex-widget__thread-skeleton",children:[A("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-icon"}),A("div",{className:"cortex-widget__thread-skeleton-lines",children:A("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-line",style:{width:`${40+Q*12}%`}})})]},Q)):x(m8,{children:[J.map((Q)=>{let Z=Q.id===X?.id,G=h(Q.updatedAt,N);return x("button",{onClick:()=>_.onThreadSelected(Q),className:H("cortex-widget__thread-item",Z&&"cortex-widget__thread-item--active"),children:[A("div",{className:H("cortex-widget__thread-icon",Z&&"cortex-widget__thread-icon--active"),children:A("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:A("path",{d:b.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),x("div",{className:"cortex-widget__thread-info",children:[x("div",{className:"cortex-widget__thread-title-row",children:[A("p",{className:H("cortex-widget__thread-title",Z&&"cortex-widget__thread-title--active"),children:Q.title??$("translate_untitled")}),Q.isRunning&&x("span",{className:H("cortex-widget__thread-running",Z&&"cortex-widget__thread-running--active"),children:[A("span",{className:"cortex-widget__thread-running-dot"}),$("translate_running")]})]}),G&&A("p",{className:"cortex-widget__thread-time",children:G})]}),A("span",{role:"button",tabIndex:0,onClick:(V)=>{V.stopPropagation(),Y(Q.id)},onKeyDown:(V)=>{if(V.key!=="Enter"&&V.key!==" ")return;V.preventDefault(),V.stopPropagation(),Y(Q.id)},className:H("cortex-widget__thread-delete",Z&&"cortex-widget__thread-delete--active"),children:A("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:A("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),A("svg",{className:H("cortex-widget__thread-arrow",Z&&"cortex-widget__thread-arrow--active"),width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:A("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},Q.id)}),!J.length&&x("div",{className:"cortex-widget__threads-empty",children:[A("div",{className:"cortex-widget__threads-empty-icon",children:A("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__threads-empty-svg",children:A("path",{d:b.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),A("p",{className:"cortex-widget__threads-empty-title",children:$("translate_no_threads_yet")}),A("p",{className:"cortex-widget__threads-empty-subtitle",children:$("translate_start_a_new_conversation")}),A("button",{onClick:()=>_.onNewChatRequested(),className:"cortex-widget__new-chat-btn cortex-widget__new-chat-btn--empty-state",children:$("translate_new_chat")})]})]})})]})}import{jsx as Y2,jsxs as c8}from"react/jsx-runtime";function X2(_){_.preventDefault()}function Q2(_){let{screens:N}=_;return Y2("div",{className:H("cortex-widget",_.className),"data-cortex-theme":_.theme,children:c8("div",{className:H("cortex-widget__container",_.viewMode==="full"&&"cortex-widget__container--full",N.sidebarOpen&&"cortex-widget__container--sidebar-open"),onDragOver:X2,onDrop:X2,children:[Y2(J2,{className:H("cortex-widget__screen",N.screen==="threads"&&"cortex-widget__screen--active",N.screen!=="threads"&&"cortex-widget__screen--left"),onThreadSelected:_.onThreadSelected,onNewChatRequested:_.onNewChat,onBackRequested:N.closeHistory}),_.children]})})}import{jsx as s_}from"react/jsx-runtime";function u8({config:_,className:N}){let $=G2(_);$.current=_;let[J]=t_(()=>X1(()=>$.current.transport)),X=d0(J),[Y,Q]=t_(!1),[Z,G]=t_();x8(()=>m1(_.theme,G),[_.theme]);let V=r0(),[z,q]=t_(0),L=g0(J,z),U=G2(null),F=h0({api:J,threads:X,getHooks:()=>$.current.hooks}),{sessionRef:k,selection:O,queue:W,send:K,pendingSendRef:B}=F,{selected:M,selectedRef:S}=O,j=p0({threads:X,selectedRef:S,sessionRef:k,deselect:O.deselect,onReconnect:()=>q((s)=>s+1)});l0({getConfig:()=>$.current,onEvent:j.onEvent,onMount:()=>void X.reload(),onReconnect:j.onReconnect});let X_=x1(_.locale),Z2={config:_,locale:X_,t:(s,W2)=>u1(X_,s,W2),api:J,debugMode:Y,scheme:Z,capabilities:L,threads:X.threads,selectedThread:M,deleteThread:F.deleteThread,send:K,...n0(k),queue:W.value};function V2(){W.store.discardConsumed(),setTimeout(()=>U.current?.focusInput())}function z2(){W.store.restoreConsumed(S.current?.id)}function $0(s){F.openThread(s),V.showChat()}function K2(){O.deselect(),V.showChat()}function q2(){Q((s)=>!s)}return s_(n1.Provider,{value:Z2,children:s_(Q2,{className:N,theme:_.theme,viewMode:_.viewMode??"helper",screens:V,onThreadSelected:$0,onNewChat:K2,children:s_($2,{selection:O,threads:X,api:J,configRef:$,sessionRef:k,pendingSendRef:B,onTurnFinished:V2,onSendFailed:z2,children:s_(o6,{screens:V,capabilities:L,composerRef:U,onToggleDebug:q2,onThreadSelected:$0})})})})}export{u8 as CortexChatWidget};
4
+ `)}var T2=new Set(["complete","error"]);function m(_){return T2.has(_)}function r(_){return(f2(_)?.parts??[]).filter((X)=>X.type==="tool-call"&&!m(X.state))}function K1(_){let $=_.at(-1);if($?.role!=="assistant")return;let X=$.parts.at(-1),N=X?.type==="tool-call"||X?.type==="tool-result",Y=$.parts.every((Q)=>Q.type!=="tool-call"||m(Q.state));return N&&Y?void 0:$}function f2(_){for(let $=_.length-1;$>=0;$-=1){let X=_[$];if(X?.role==="assistant")return X}return}function W1(){let _=new Map;return($,X)=>{let N=new Map;for(let[Y,Q]of j2($,X)){let Z=_.get(Y);N.set(Y,Z&&m2(Z,Q)?Z:Q)}return _=N,N}}function j2(_,$){let X=new Map;if($.debugMode)return X;let Y=$.agentWorking||r(_).length>0?g2(_):_,Q=[];function Z(){let G=Q[0]?.part.id;if(Q.length>1&&G&&!$.opened.has(G))for(let[J,{messageId:z,part:V}]of Q.entries()){let W=X.get(z)??new Map;X.set(z,W);let U=J===Q.length-1;W.set(V,U?{kind:"more",count:Q.length-1,runId:G}:{kind:"hidden"})}Q=[]}for(let G of Y){if(G.role!=="assistant"){Z();continue}let J=F_(G.parts,{debugMode:!1,isStreaming:!1});for(let z of J)if(z.type==="tool-call"&&m(z.state)&&$.foldable(z))Q.push({messageId:G.id,part:z});else Z()}return Z(),X}function g2(_){let $=_.map((X)=>X.role).lastIndexOf("user");return $<0?[]:_.slice(0,$)}function m2(_,$){if(_.size!==$.size)return!1;for(let[X,N]of _){let Y=$.get(X);if(!Y||Y.kind!==N.kind)return!1;if(N.kind==="more"&&Y.kind==="more"){if(N.count!==Y.count||N.runId!==Y.runId)return!1}}return!0}import{EventType as L0}from"@tanstack/ai";import{fetchServerSentEvents as F0}from"@tanstack/ai-client";function x2(_){for(let $=_.length-1;$>=0;$-=1){let X=_[$],N="parts"in X&&X.parts.some((Y)=>Y.type==="tool-result"||Y.type==="tool-call"&&Y.state==="approval-responded");if(X.role==="user"||N)return _.slice($,$+1)}return _.slice(-1)}function c2(_){if(_.state==="approval-responded"){let $=_.approval?.approved;if($===void 0)return null;return{toolCallId:_.id,output:null,state:$?"approved":"denied"}}if(!m(_.state))return null;return{toolCallId:_.id,output:_.output??null,state:_.state==="error"?"error":"complete"}}function h2(_){let[$]=_;if(!$||$.role!=="assistant"||!("parts"in $))return null;let X=$.parts.flatMap((N)=>{let Y=N.type==="tool-call"?c2(N):null;return Y?[Y]:[]});return X.length>0?X:null}async function*U0(_,$,X){for await(let N of _){if(N.type!==L0.MESSAGES_SNAPSHOT){yield N;continue}let Y=$.localMessages(),Q=Y.findIndex((G)=>G.id===X),Z=Q===-1?[]:Y.slice(Q+1).filter((G)=>G.role==="user");$.onTranscriptCarried?.(N.timestamp??Date.now()),yield{...N,messages:[...N.messages,...Z]}}}function D1(_){let{api:$,thread:X}=_,N=async()=>({headers:await $.resolveHeaders()}),Y=F0(()=>$.resolveUrl("/chat"),N),Q=function(J,z,V,W){let U=x2(J),L=h2(U),F=L?Y.connect([],{...z,[W0]:L},V,W):Y.connect(U,z,V,W);return U0(F,_,J.at(-1)?.id)},Z=F0(()=>$.resolveUrl(`/chat/${X.id}/stream`),N),G=[];return{connect:Q,async*joinRun(J,z){yield{type:L0.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:G},yield*U0(Z.joinRun(J,z),_,G.at(-1)?.id)},hydrate:async()=>{let J=await u2(_);return G=J.messages,J}}}async function u2(_){let{api:$,thread:X,mode:N}=_,Y=X.isRunning?{runId:X.id}:null;if(N==="skip")return{messages:[],activeRun:Y,interrupts:null};if(N==="load")_.setLoadingMessages?.(!0);try{let Z=(await $.listMessages(X.id)).map($1);return _.onHydrated?.(Z),{messages:Z,activeRun:Y,interrupts:null}}finally{_.setLoadingMessages?.(!1)}}async function H1(_){if(_.isStale?.()||_.isStreaming())return;try{let $=await _.api.listMessages(_.threadId);if(_.isStale?.()||_.isStreaming())return;let X=$.map($1);return _.setMessages(X),X}catch{return}}function U_(){if(typeof crypto.randomUUID==="function")return crypto.randomUUID();let _=crypto.getRandomValues(new Uint8Array(16));_[6]=_[6]&15|64,_[8]=_[8]&63|128;let $=Array.from(_,(X)=>X.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}function B1(_){let{api:$}=_,X=new Set,N=new Set,Y=[],Q=[];function Z(){return Y}function G(H){return X.add(H),()=>{X.delete(H)}}function J(H){Y=H;for(let D of X)D()}function z(H,D){J(Y.map((K)=>K.localId===H?{...K,...D}:K))}function V(H){if(N.delete(H))return;z(H,{status:"error"})}function W(H){let D=[];for(let K of H){let O=K0(K.type,K.size)!=="ok"||Y.filter((T)=>T.status!=="error").length>=V0,C=U_();if(J([...Y,{localId:C,filename:K.name,status:O?"error":"uploading"}]),!O)D.push({localId:C,file:K})}if(!D.length)return;_.ensureThread().then((K)=>{for(let{localId:O,file:C}of D){if(N.delete(O))continue;z(O,{threadId:K}),$.uploadAttachment(K,C).then((T)=>{if(N.delete(O)){$.deleteAttachment(T.id).catch(()=>{});return}z(O,{status:"ready",attachmentId:T.id,summary:T})},()=>V(O))}},()=>{for(let{localId:K}of D)V(K)})}function U(H){let D=Y.find((K)=>K.localId===H);if(!D)return;if(D.status==="uploading"){N.add(H),J(Y.filter((K)=>K.localId!==H));return}if(D.attachmentId){z(H,{status:"deleting"}),$.deleteAttachment(D.attachmentId).then(()=>J(Y.filter((K)=>K.localId!==H)),()=>z(H,{status:"error"}));return}J(Y.filter((K)=>K.localId!==H))}function L(H){let D=[];for(let K of Y){if(K.threadId!==void 0&&K.threadId!==H){D.push(K);continue}if(K.status==="uploading")N.add(K.localId);else if(K.status==="ready"&&K.threadId===H&&K.attachmentId)$.deleteAttachment(K.attachmentId).catch(()=>{})}J(D)}function F(){let H=Y.flatMap((D)=>D.status==="ready"&&D.summary?[{...D,status:"ready",summary:D.summary}]:[]);return J(Y.filter((D)=>D.status!=="ready")),Q=H,H}function k(H){let D=Q;if(Q=[],D.some((K)=>K.threadId!==H))return;J([...D.map((K)=>({...K,status:"error"})),...Y])}function M(){Q=[]}return{getState:Z,subscribe:G,accept:W,remove:U,clear:L,consumeReady:F,restoreConsumed:k,discardConsumed:M}}function q1(_){return{uploading:_.some(($)=>$.status==="uploading"),busy:_.some(($)=>$.status==="uploading"||$.status==="deleting"),hasReady:_.some(($)=>$.status==="ready")}}var l2=["completed","cancelled","failed"],k0="requestLocation";function M0(_,$,X){if($!==X)return null;if(typeof _!=="object"||_===null)return null;let N=_;if(N.type!=="cortex:client-tool")return null;let Y=l2.find((Z)=>Z===N.status);if(!Y)return null;let Q=N.reference;return{type:"cortex:client-tool",status:Y,...typeof Q==="string"?{reference:Q}:{},...N.result!==void 0?{result:N.result}:{}}}function F1(_,$,X){try{return new URL(_).origin===$&&!X?"allow-scripts allow-forms allow-popups":"allow-scripts allow-forms allow-popups allow-same-origin"}catch{return"allow-scripts allow-forms allow-popups"}}function U1(_,$,X){try{return X===!0&&new URL(_).origin===$}catch{return!1}}function L1(_,$){try{return _.contentWindow?.location.origin===$}catch{return!1}}function k1(_){let $=!1,X=!1,N,Y;function Q(J){if(!$)_.onState(J)}function Z(){if($)return;X=!1,Q({phase:"error"})}function G(J){if($||X)return;X=!0,Q({phase:"settling"});try{let z=_.submit(J);if(z instanceof Promise)z.catch(Z)}catch{Z()}}return{async start(){Q({phase:"initiating"});try{let J=await _.initiate();if(!J.embed){Q({phase:"unavailable"});return}if(!/^https?:$/.test(new URL(J.embedUrl).protocol)){Q({phase:"error"});return}N=J.embedOrigin,Q({phase:"embedded",embedUrl:J.embedUrl,surface:J.surface,embedOrigin:J.embedOrigin})}catch(J){let z=J instanceof Error?J.message:"";Q({phase:/HTTP 404/.test(z)?"unavailable":"error"})}},setSource(J){if(J!==null&&J!==void 0)Y=J},handleMessage(J){if(!N)return;if(Y===void 0||J.source!==Y)return;let z=M0(J.data,J.origin,N);if(!z)return;G({status:z.status,reference:z.reference,result:z.result})},cancel(){G({status:"cancelled"})},terminate(){if($||X)return;N=void 0,Y=void 0,Q({phase:"error"})},dispose(){$=!0}}}function M1(_,$,X){let N=_.interrupts.find((Y)=>Y.id===$);if(!N||!("resolveInterrupt"in N))return _.addToolApprovalResponse({id:$,approved:X});return N.resolveInterrupt({approved:X}),Promise.resolve()}async function L_(_,$){let X=await import("leaflet"),N=!$.interactive,Y=X.map(_,{center:$.center,zoom:$.zoom,zoomControl:!N,dragging:!N,scrollWheelZoom:!N,doubleClickZoom:!N,touchZoom:!N,boxZoom:!N,keyboard:!N});X.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(Y);let Q=new ResizeObserver(()=>Y.invalidateSize());return Q.observe(_),{leaflet:X,map:Y,dispose(){Q.disconnect(),Y.remove()}}}var S_={position:void 0,locating:!1,locateFailed:!1,mapFailed:!1,submitting:!1,deliveryFailed:!1},p2={center:{lat:20,lng:0},zoom:2},d2=13,P0=16,n2=1e4;function O1(_,$){let X=S_,N=!1,Y=!1,Q,Z,G,J=0;function z(L){if(X={...X,...L},!N)$.onState(X)}function V(){let L=X.position;if(!Q||!L)return;let{leaflet:F,map:k}=Q;if(Z)Z.setLatLng(L);else{let M=F.marker(L,{draggable:!X.submitting}).addTo(k);M.on("dragend",()=>{let{lat:H,lng:D}=M.getLatLng();W({lat:H,lng:O0(D)})}),Z=M}G?.remove(),G=L.accuracy?F.circle(L,{radius:L.accuracy}).addTo(k):void 0}function W(L){if(X.submitting)return;J+=1,z({position:L,locating:!1,locateFailed:!1}),V()}function U(L){if(N||Y)return;Y=!0,J+=1,Z?.dragging?.disable(),z({submitting:!0,locating:!1,deliveryFailed:!1});let F=()=>{Y=!1,Z?.dragging?.enable(),z({submitting:!1,deliveryFailed:!0})};try{let k=$.submit(L);if(k instanceof Promise)k.catch(F)}catch{F()}}return{async start(){let L=$.center?{center:$.center,zoom:d2}:p2,F;try{F=await L_(_,{...L,interactive:!0})}catch{z({mapFailed:!0});return}if(N){F.dispose();return}Q=F,F.map.on("click",(k)=>W({lat:k.latlng.lat,lng:O0(k.latlng.lng)})),V()},locate(){if(X.locating||X.submitting)return;if(!navigator.geolocation){z({locateFailed:!0});return}J+=1;let L=J;z({locating:!0,locateFailed:!1}),navigator.geolocation.getCurrentPosition(({coords:F})=>{if(N||L!==J)return;let k={lat:F.latitude,lng:F.longitude,accuracy:Math.round(F.accuracy)};W(k),Q?.map.setView(k,P0)},()=>{if(L===J)z({locating:!1,locateFailed:!0})},{enableHighAccuracy:!0,timeout:n2})},confirm(){if(X.position)U({status:"completed",result:X.position})},cancel(){U({status:"cancelled"})},dispose(){N=!0,Q?.dispose()}}}function P1(_,$,X){let N=!1,Y;return L_(_,{center:$,zoom:P0,interactive:!1}).then((Q)=>{if(N){Q.dispose();return}Y=Q.dispose,Q.leaflet.marker($).addTo(Q.map)},()=>{if(!N)X()}),()=>{N=!0,Y?.()}}function O0(_){if(_>=-180&&_<=180)return _;return((_+180)%360+360)%360-180}function A0(_){if(!_||typeof _!=="object")return!1;let{lat:$,lng:X}=_;return typeof $==="number"&&typeof X==="number"&&Math.abs($)<=90&&Math.abs(X)<=180}function A1(_){let $=_&&typeof _==="object"?_.center:void 0;return A0($)?$:void 0}function E1(_){if(!_||typeof _!=="object")return;let{status:$,result:X}=_;if($!=="completed"||!A0(X))return;let{accuracy:N}=X;return{...X,...typeof N==="number"?{accuracy:N}:{}}}function v_(_){let $=`${_.lat.toFixed(4)}, ${_.lng.toFixed(4)}`;return _.accuracy?`${$} ±${_.accuracy} m`:$}function y1(_){if(_.locating)return{key:"translate_location_locating",failed:!1};if(_.deliveryFailed)return{key:"translate_location_send_failed",failed:!0};if(_.locateFailed)return{key:"translate_location_locate_failed",failed:!0};if(_.mapFailed)return{key:"translate_location_map_failed",failed:!0};return{key:"translate_location_hint",failed:!1}}function R1(_){return Math.min(1000*2**(_-1),30000)}var i2=1e4;function w1(_){let $,X,N=0,Y=!1;function Q(){let{wsUrl:G,transport:J}=_.getConfig();if(G===!1)return;let z=r2(G,J.baseUrl);N1(J).then((V)=>{if(Y)return;$=new WebSocket(o2(z,V)),$.addEventListener("open",()=>{let W=$;setTimeout(()=>{if($===W&&!Y)N=0},i2),_.onOpen?.()}),$.addEventListener("message",(W)=>{let U=W.data;if(typeof U!=="string")return;let L;try{L=JSON.parse(U)}catch{return}_.onEvent(L)}),$.addEventListener("close",Z)}).catch(Z)}function Z(){if(Y||X)return;N+=1,X=setTimeout(()=>{X=void 0,Q()},R1(N))}return Q(),{close(){Y=!0,clearTimeout(X),$?.close()}}}function r2(_,$){if(_)return _;let X=typeof $==="string"?$:$(),N=new URL(X,window.location.origin);return N.protocol=N.protocol==="https:"?"wss:":"ws:",N.pathname=N.pathname.replace(/\/$/,"")+"/ws",N.toString()}function o2(_,$){let X=$.Authorization??$.authorization;if(!X?.startsWith("Bearer "))return _;let N=new URL(_,window.location.origin);if(N.searchParams.has("token"))return N.toString();return N.searchParams.set("token",X.slice(7)),N.toString()}function I1(_,$,X=R1){let N=!1,Y,Q=0;function Z(){_.getCapabilities().then((G)=>{if(!N)$(G)},()=>{if(N)return;Q+=1,Y=setTimeout(Z,X(Q))})}return Z(),function(){N=!0,clearTimeout(Y)}}function T_(_){return[..._].sort(($,X)=>{let N=Date.parse(X.updatedAt)-Date.parse($.updatedAt);if(N!==0)return N;return Date.parse(X.createdAt)-Date.parse($.createdAt)})}function k_(_,$){let X=[..._],N=X.findIndex((Y)=>Y.id===$.id);if(N===-1)X.push($);else X[N]={...X[N],...$};return T_(X)}function f_(_,$){return _.filter((X)=>X.id!==$)}function b1(_,$){switch($.type){case"thread:deleted":return f_(_,$.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return k_(_,$.payload.thread);default:return _}}import{marked as a2}from"marked";import t2 from"dompurify";function C1(_,$=[]){if(!_)return"";let X=a2.parse(_,{async:!1});if(X=X.replace(/<table>/g,'<div style="overflow-x:auto"><table style="width:auto">').replace(/<\/table>/g,"</table></div>").replace(/<(t[hd])([\s>])/g,'<$1 style="padding:0.5rem 1rem"$2'),$.length)X=s2(X,$);return t2.sanitize(X,{FORBID_TAGS:["img","picture","source"]})}function s2(_,$){let X=document.createElement("template");X.innerHTML=_;let N=[...$].sort((Z,G)=>Z.length-G.length),Y=N[N.length-1]?.length??0,Q=0;for(let Z of e2(X.content)){if(Q>=Y)break;Z.replaceWith(..._5(Z.data,Q,N)),Q+=Z.data.length}return X.innerHTML}function e2(_){let $=document.createTreeWalker(_,4),X=[];for(let N=$.nextNode();N;N=$.nextNode())if(N.data.trim())X.push(N);return X.reverse()}function _5(_,$,X){let N=[],Y=_.length;for(let Q of X){if(Q.length<=$)continue;if(Y<=0)break;let Z=Math.min(Y,Q.length-$);if(Z<Y&&/[\uDC00-\uDFFF]/.test(_[Y-Z]))Z+=1;let G=document.createElement("span");G.className="cortex-stream-fade",G.style.animationDelay=`-${Q.age}ms`,G.textContent=_.slice(Y-Z,Y),N.unshift(G),Y-=Z,$+=Z}if(Y>0)N.unshift(document.createTextNode(_.slice(0,Y)));return N}function E0(){let _=null;return($)=>{let X=/^ {0,3}(`{3,}|~{3,})(.*)$/.exec($),N=X?.[1],Y=X?.[2]??"";if(N){let Q=N.charAt(0);if(_){if(Q===_.marker&&N.length>=_.length&&Y.trim()==="")return _=null,"close";return"inside"}if(Q==="`"&&Y.includes("`"))return"outside";return _={marker:Q,length:N.length},"open"}return _?"inside":"outside"}}var $5=/^\s*!\[([^\]]*)\]\(attachment#([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)\s*$/i,X5=/^\s*(`{3,}|~{3,})/;function S1(_,$){let X=[],N=[],Y=null;function Q(){if(N.length)X.push({kind:"markdown",text:N.join(`
5
+ `)});N=[]}function Z(z){if(Y)X.push({kind:"media",...Y,source:Y.source.join(`
6
+ `),closed:z});Y=null}let G=E0(),J=_.split(`
7
+ `);for(let[z,V]of J.entries()){let W=G(V);if(Y){if(W==="close")Z(!0);else Y.source.push(V);continue}if(W==="open"&&z===J.length-1)break;let U=N5(V,W,$);if(!U){N.push(V);continue}if(Q(),U.kind==="media")Y={language:U.language,source:[]};else X.push(U)}return Z(!1),Q(),X}function N5(_,$,X){if($==="open"){let Y=_.replace(X5,"").trim().split(/\s+/)[0],Q=X.find((Z)=>Z===Y);return Q?{kind:"media",language:Q}:void 0}let N=$==="outside"?$5.exec(_):null;return N?{kind:"attachment",alt:N[1]??"",id:(N[2]??"").toLowerCase()}:void 0}var Y5=new Set(["flatten","fold","density","impute","regression","loess","quantile","sample"]);function w0(_,$){if(_==="url")return"Charts may only use inline data and no URLs.";if(_==="sequence"||_==="graticule")return"Charts may only use inline data.";if(Y5.has(_))return"Charts may not use transforms that generate rows.";if(_==="params"||_==="selection"||_==="signals"||_==="on")return"Charts may not be interactive.";if(_==="expr")return"Charts may not carry expressions.";if(Q5.has(_)&&typeof $==="string"&&!Z5($))return"Charts may only use simple expressions over datum.";if(_==="usermeta")return"Charts may not carry usermeta.";if(typeof $==="string"&&j_($))return"Charts may not reference URLs.";if((_==="width"||_==="height")&&G5($)>4000)return"Charts may be at most 4000 pixels wide or tall.";return}var Q5=new Set(["calculate","filter","test","signal","labelExpr"]),y0=new Set(["abs","ceil","floor","round","min","max","sqrt","pow","log","exp","year","month","date","day","hours","minutes","toNumber","toString","toDate","isValid","isNaN","if","indexof","length"]);function Z5(_){if(_.length>500||/[\\`]/.test(_))return!1;let $=_.replace(/'[^']*'|"[^"]*"/g,'""');for(let[,N]of $.matchAll(/([A-Za-z_$][\w$]*)\s*\(/g))if(!y0.has(N??""))return!1;let X=$.replace(/(datum|parent)(\s*\.[\w$]+|\s*\[\s*""\s*\])+|\b\d[\w.]*/g,"").matchAll(/[A-Za-z_$][\w$]*/g);for(let[N]of X)if(!y0.has(N)&&!["true","false","null"].includes(N))return!1;return!0}function G5(_){if(typeof _==="number")return _;let $=_?.step;return typeof $==="number"?$:0}function R0(_,$){let X=_?.features,N=Array.isArray(_)?_.length:Array.isArray(X)?X.length:-1;if(N<0)return w0($,_)??T1(v1(_,$),M_);return N>200?"Charts may hold at most 200 rows.":void 0}function M_(_,$=""){if($==="values")return R0(_,$);if($==="datasets")return T1(v1(_),R0);return w0($,_)??T1(v1(_,$),(X,N)=>M_(X,N))}function v1(_,$=""){if(Array.isArray(_))return _.map((X)=>[$,X]);return _&&typeof _==="object"?Object.entries(_):[]}function T1(_,$){for(let[X,N]of _){let Y=$(N,X);if(Y)return Y}return}var I0=/url\(([^)]*)\)/gi,f1="src|image|image-set|-webkit-image-set|cross-fade|element",j1=new RegExp(String.raw`\b(url|${f1})\(`,"i"),J5=new RegExp(String.raw`\b(${f1})\(`,"i"),z5=new RegExp(String.raw`\b(${f1})\([^)]*\)`,"gi"),V5=/\\([0-9a-f]{1,6})\s?|\\(.)/gi;function K5(_){return _.replace(V5,($,X,N)=>{if(!X)return N??"";let Y=parseInt(X,16),Q=Y===0||Y>=55296&&Y<=57343||Y>1114111;return String.fromCodePoint(Q?65533:Y)})}function b0(_){return _.trim().replace(/^(['"])(.*)\1$/s,"$2").trim()}function j_(_){if(_.includes("\\")||J5.test(_))return!0;for(let[,$]of _.matchAll(I0))if(!b0($??"").startsWith("#"))return!0;return!1}function g1(_){return K5(_).replace(z5,"none").replace(I0,($,X)=>b0(X).startsWith("#")?$:"none")}var j0={async mermaid(_,$,{scheme:X}){let[{default:N},{default:Y}]=await Promise.all([import("mermaid"),import("dompurify")]);if(j1.test($)||$.includes("\\"))throw Error("Diagrams may not reference URLs.");if(/%%\{/.test($))throw Error("Diagrams may not carry init directives.");if(/^\s*---\s*$/m.test($))throw Error("Diagrams may not carry frontmatter.");if(/\bimg\s*:/.test($))throw Error("Diagrams may not embed images.");let Q=H5($);if(!D5.test(Q))throw Error(`Unsupported diagram type: ${Q}`);let Z=C0.then(async()=>{if(!S0)N.initialize({startOnLoad:!1,securityLevel:"strict",htmlLabels:!1}),S0=!0;let z=`%%{init: {"theme": "${X==="dark"?"dark":"default"}"}}%%
8
+ ${$}`;return await N.parse(z),(await N.render(`cortex-mermaid-${B5()}`,z,_)).svg});C0=Z.catch(()=>{return});let G=await Z,J=document.createElement("div");return J.innerHTML=Y.sanitize(G,{USE_PROFILES:{svg:!0,svgFilters:!0}}),T0(J),_.replaceChildren(...J.childNodes),()=>{_.innerHTML=""}},async "vega-lite"(_,$,{scheme:X}){let N=JSON.parse($),Y=M_(N);if(Y)throw Error(Y);let[{default:Q},Z]=await Promise.all([import("vega-embed"),import("vega")]),G=()=>Promise.reject(Error("Charts may only use inline data.")),J=document.createElement("div"),z=await Q(J,N,{actions:!1,renderer:"svg",mode:"vega-lite",loader:{...Z.loader(),load:G,sanitize:G},ast:!0,...X==="dark"?{theme:"dark"}:{},config:{background:"transparent"}});return T0(J),_.replaceChildren(J),()=>z.finalize()},async map(_,$){let X=F5(JSON.parse($)),{leaflet:N,map:Y,dispose:Q}=await L_(_,{...X,interactive:!0});for(let Z of X.markers){let G=N.marker(Z.position).addTo(Y);if(Z.label){let J=document.createElement("span");J.textContent=Z.label,G.bindTooltip(J)}}return Q}},W5={mermaid:"translate_media_pending_mermaid","vega-lite":"translate_media_pending_vega_lite",map:"translate_media_pending_map"};function m1(_){return W5[_]??"translate_media_pending"}function x1(_){return Object.keys({...j0,..._})}function c1(_,$){let{language:X,source:N,context:Y,overrides:Q,onError:Z}=$,G=_.appendChild(document.createElement("div")),J=Q?.[X]??j0[X],z,V=!1;return(J?J(G,N,Y):Promise.reject(Error(`No renderer for ${X}.`))).then((U)=>{if(V)U();else z=U},(U)=>{if(!V)Z(U instanceof Error?U.message:String(U))}),()=>{V=!0,z?.(),G.remove()}}var D5=/^(flowchart|graph|sequenceDiagram|stateDiagram(-v2)?|erDiagram|gantt|pie|classDiagram|journey|timeline|mindmap)$/;function H5(_){let $=_.split(`
9
+ `).find((X)=>/\S/.test(X)&&!/^\s*%%/.test(X));return/^\s*(\S+)/.exec($??"")?.[1]??""}var C0=Promise.resolve(),S0=!1,v0=0;function B5(){return v0+=1,v0}var q5=new Set(["image","use","feImage"]);function T0(_){for(let $ of[_,..._.querySelectorAll("*")]){for(let X of[...$.attributes])if((X.name==="href"||X.name==="xlink:href")&&q5.has($.tagName)&&!X.value.trim().startsWith("#")||j_(X.value))$.removeAttribute(X.name);if($.tagName==="style"&&$.textContent)$.textContent=g1($.textContent)}}function F5(_){if(!_||typeof _!=="object")throw Error("A map needs a JSON object.");let $=_,X=$.zoom??10;if(typeof X!=="number"||X<0||X>22)throw Error("zoom must be 0 to 22.");let N=$.markers??[];if(!Array.isArray(N))throw Error("markers must be a list.");return{center:f0($.center,"center"),zoom:X,markers:N.map((Y,Q)=>{let Z=Y??{},G=Z.label;return{position:f0(Z.position,`markers[${Q}].position`),label:typeof G==="string"?G:void 0}})}}function f0(_,$){let X=Array.isArray(_)?_:[],[N,Y]=X;if(typeof N!=="number"||typeof Y!=="number"||Math.abs(N)>90||Math.abs(Y)>180)throw Error(`${$} must be [latitude, longitude].`);return{lat:N,lng:Y}}function h1(_,$){if(_!=="system")return $(_??"light"),()=>{};let X=window.matchMedia("(prefers-color-scheme: dark)"),N=()=>$(X.matches?"dark":"light");return N(),X.addEventListener("change",N),()=>X.removeEventListener("change",N)}import O_ from"highlight.js/lib/core";import U5 from"highlight.js/lib/languages/javascript";import L5 from"highlight.js/lib/languages/json";import k5 from"highlight.js/lib/languages/sql";var g0=!1;function M5(){if(g0)return;g0=!0,O_.registerLanguage("javascript",U5),O_.registerLanguage("json",L5),O_.registerLanguage("cypher",k5)}function u1(_,$){if(!_)return"";return M5(),O_.getLanguage($)?O_.highlight(_,{language:$}).value:O5(_)}function O5(_){return _.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var m0={translate_new:"جديد",translate_history:"السجل",translate_back:"رجوع",translate_greeting:"بماذا يمكنني مساعدتك اليوم؟",translate_n_conversations:"{{count}} محادثات",translate_one_conversation:"محادثة واحدة",translate_no_threads_yet:"لا توجد محادثات بعد",translate_start_a_new_conversation:"ابدأ محادثة جديدة",translate_untitled:"بدون عنوان",translate_new_chat:"محادثة جديدة",translate_normal:"عادي",translate_debug:"تصحيح",translate_type_a_message:"اكتب رسالة...",translate_thinking:"جارٍ معالجة الطلب...",translate_completed:"مكتمل",translate_attach_files:"إرفاق ملفات",translate_drop_files_here:"أفلت ملفاتك هنا...",translate_remove_attachment:"إزالة المرفق",translate_attachment_rejected:"لا يمكن إرفاق هذا الملف",translate_attachment_caption:"من فضلك اطّلع على الملفات المرفقة.",translate_download:"تنزيل",translate_tool_status_0:"جارٍ جلب البيانات…",translate_tool_status_1:"جارٍ تحليل المعلومات…",translate_tool_status_2:"جارٍ معالجة الطلب…",translate_tool_status_3:"جارٍ تجميع النتائج…",translate_tool_status_4:"جارٍ تحضير الرد…",translate_tool_status_5:"جارٍ البحث…",translate_tool_status_6:"جارٍ فحص السجلات…",translate_tool_status_7:"جارٍ مراجعة التفاصيل…",translate_tool_status_8:"جارٍ إجراء الحسابات…",translate_tool_status_9:"جارٍ سحب المعلومات…",translate_tool_done_0:"تم جلب البيانات بنجاح",translate_tool_done_1:"تم التحليل بنجاح",translate_tool_done_2:"تمت معالجة الطلب بنجاح",translate_tool_done_3:"تم تجميع النتائج بنجاح",translate_tool_done_4:"تم تحضير الرد بنجاح",translate_tool_done_5:"تم البحث بنجاح",translate_tool_done_6:"تم فحص السجلات بنجاح",translate_tool_done_7:"تمت المراجعة بنجاح",translate_tool_done_8:"تمت الحسابات بنجاح",translate_tool_done_9:"تم استرجاع المعلومات بنجاح",translate_rows_read:"{{count}} صفوف",translate_one_more_step:"وخطوة أخرى",translate_n_more_steps:"و{{count}} خطوات أخرى",translate_tool_error:"حدث خطأ",translate_attachment_status:"جارٍ قراءة الملف المرفق…",translate_attachment_done:"تمت قراءة الملف المرفق",translate_graph_0:"جارٍ استكشاف الروابط...",translate_graph_1:"جارٍ رسم الخريطة...",translate_graph_2:"جارٍ اكتشاف العلاقات...",translate_graph_3:"جارٍ تتبع الروابط...",translate_graph_4:"جارٍ التنقل في المعرفة...",translate_graph_5:"جارٍ كشف الرؤى...",translate_graph_6:"جارٍ ربط النقاط...",translate_graph_7:"جارٍ تتبع المسار...",translate_graph_8:"جارٍ تجميع الأجزاء...",translate_graph_9:"جارٍ بناء الصورة...",translate_code_0:"جارٍ حساب الأرقام...",translate_code_1:"جارٍ معالجة البيانات...",translate_code_2:"جارٍ تنفيذ طلبك...",translate_code_3:"جارٍ تحليل الأرقام...",translate_code_4:"جارٍ تجميع كل شيء...",translate_code_5:"جارٍ تحليل النتائج...",translate_code_6:"جارٍ العمل خلف الكواليس...",translate_code_7:"جارٍ ترتيب التفاصيل...",translate_code_8:"جارٍ تحضير إجابتك...",translate_code_9:"أوشك على الانتهاء...",translate_reasoning_0:"جارٍ التفكير...",translate_reasoning_1:"جارٍ دراسة الخيارات...",translate_reasoning_2:"جارٍ تقييم الاحتمالات...",translate_reasoning_3:"جارٍ التأمل في هذا...",translate_reasoning_4:"جارٍ إيجاد الحل...",translate_reasoning_5:"جارٍ ترتيب الأفكار...",translate_reasoning_6:"جارٍ التمعن في الأمر...",translate_reasoning_7:"جارٍ إيجاد أفضل طريقة...",translate_reasoning_8:"جارٍ تنظيم أفكاري...",translate_reasoning_9:"أوشك على الانتهاء...",translate_running:"قيد التنفيذ",translate_aborted:"تم الإلغاء",translate_input:"المدخلات",translate_output:"المخرجات",translate_calling:"جارٍ الاستدعاء",translate_input_ready:"المدخلات جاهزة",translate_needs_approval:"بحاجة إلى موافقة",translate_approved:"تمت الموافقة",translate_responded:"تم الرد",translate_declined:"تم الرفض",translate_approve:"موافقة",translate_deny:"رفض",translate_approval_prompt:"يريد المساعد تنفيذ إجراء. هل تسمح بذلك؟",translate_error:"خطأ",translate_approval_requested:"طلب موافقة",translate_approval_response:"رد الموافقة",translate_waiting_for_approval:"في انتظار الموافقة لتنفيذ هذه الأداة.",translate_tool_approved:"تمت الموافقة.",translate_tool_response_received:"تم استلام الرد.",translate_tokens:"رمز",translate_fresh:"جديد",translate_cache_read:"قراءة من الذاكرة",translate_cache_write:"كتابة في الذاكرة",translate_n_percent_cached:"{{percent}}٪ مخزّن مؤقتًا",translate_text:"نص",translate_reasoning:"الاستنتاج",translate_read:"قراءة",translate_write:"كتابة",translate_total:"الإجمالي",translate_request:"الطلب",translate_response:"الرد",translate_step_n:"الخطوة {{number}}",translate_inspect_llm_requests:"فحص طلبات النموذج",translate_loading:"جارٍ التحميل…",translate_no_llm_requests:"لا توجد طلبات نموذج مسجّلة لهذه الرسالة.",translate_unhandled_type:"نوع غير مدعوم:",translate_client_tool_title:"أكمل هذه الخطوة للمتابعة",translate_client_tool_loading:"جارٍ تجهيز خطوة آمنة...",translate_client_tool_failed:"تعذّر تحميل هذه الخطوة",translate_client_tool_retry:"حاول مرة أخرى",translate_client_tool_cancel:"إلغاء",translate_location_hint:"انقر على الخريطة لتثبيت الدبوس",translate_location_locate:"استخدم موقعي",translate_location_locating:"جارٍ تحديد موقعك",translate_location_locate_failed:"موقعك غير متاح",translate_location_map_failed:"تعذّر تحميل الخريطة",translate_location_send_failed:"تعذّر الإرسال، حاول مرة أخرى",translate_location_skip:"ليس الآن",translate_location_send:"إرسال",translate_location_shared:"تمت مشاركة الموقع",translate_location_not_shared:"لم تتم مشاركة الموقع",translate_trigger_fired:"تم التشغيل بواسطة",translate_trigger_payload:"الحمولة",translate_messages_disabled:"يعمل هذا الوكيل من مشغّلاته فقط.",translate_streaming:"جارٍ البث",translate_done:"تم",translate_no_reasoning:"لا يوجد تفكير مسجّل.",translate_copy:"نسخ إلى الحافظة",translate_copied:"تم النسخ",translate_media_pending_mermaid:"جارٍ رسم المخطط",translate_media_pending_vega_lite:"جارٍ رسم الرسم البياني",translate_media_pending_map:"جارٍ رسم الخريطة",translate_media_cut_off:"انقطع هذا المقطع قبل اكتماله.",translate_media_failed:"تعذر عرض هذا المقطع.",translate_media_source:"المصدر",translate_media_pending:"جارٍ الرسم",translate_image_unavailable:"الصورة غير متاحة",translate_image_unavailable_alt:"الصورة غير متاحة: {{alt}}"};var x0={translate_new:"New",translate_history:"History",translate_back:"Back",translate_greeting:"What can I help you with today?",translate_n_conversations:"{{count}} conversations",translate_one_conversation:"1 conversation",translate_no_threads_yet:"No threads yet",translate_start_a_new_conversation:"Start a new conversation",translate_untitled:"Untitled",translate_new_chat:"New Chat",translate_normal:"Normal",translate_debug:"Debug",translate_type_a_message:"Type a message...",translate_thinking:"Thinking things through...",translate_completed:"Completed",translate_attach_files:"Attach files",translate_drop_files_here:"Drop your files here...",translate_remove_attachment:"Remove attachment",translate_attachment_rejected:"This file cannot be attached",translate_attachment_caption:"Please take a look at the attached files.",translate_download:"Download",translate_tool_status_0:"Fetching data...",translate_tool_status_1:"Analyzing information...",translate_tool_status_2:"Processing request...",translate_tool_status_3:"Gathering results...",translate_tool_status_4:"Preparing response...",translate_tool_status_5:"Looking things up...",translate_tool_status_6:"Checking records...",translate_tool_status_7:"Reviewing details...",translate_tool_status_8:"Running calculations...",translate_tool_status_9:"Pulling information...",translate_tool_done_0:"Data fetched successfully",translate_tool_done_1:"Analysis completed successfully",translate_tool_done_2:"Request processed successfully",translate_tool_done_3:"Results gathered successfully",translate_tool_done_4:"Response prepared successfully",translate_tool_done_5:"Lookup completed successfully",translate_tool_done_6:"Records checked successfully",translate_tool_done_7:"Review completed successfully",translate_tool_done_8:"Calculations completed successfully",translate_tool_done_9:"Information retrieved successfully",translate_rows_read:"{{count}} rows",translate_one_more_step:"and 1 more step",translate_n_more_steps:"and {{count}} more steps",translate_tool_error:"Something went wrong",translate_attachment_status:"Reading the attached file...",translate_attachment_done:"Finished reading the file",translate_graph_0:"Exploring connections...",translate_graph_1:"Mapping out the links...",translate_graph_2:"Discovering relationships...",translate_graph_3:"Tracing the connections...",translate_graph_4:"Navigating the knowledge...",translate_graph_5:"Uncovering insights...",translate_graph_6:"Connecting the dots...",translate_graph_7:"Following the trail...",translate_graph_8:"Piecing things together...",translate_graph_9:"Building the picture...",translate_code_0:"Running the numbers...",translate_code_1:"Working through the data...",translate_code_2:"Processing your request...",translate_code_3:"Crunching the figures...",translate_code_4:"Putting it all together...",translate_code_5:"Analyzing the results...",translate_code_6:"Working behind the scenes...",translate_code_7:"Sorting through the details...",translate_code_8:"Preparing your answer...",translate_code_9:"Almost ready...",translate_reasoning_0:"Thinking it through...",translate_reasoning_1:"Considering the options...",translate_reasoning_2:"Weighing the possibilities...",translate_reasoning_3:"Reflecting on this...",translate_reasoning_4:"Working it out...",translate_reasoning_5:"Putting thoughts together...",translate_reasoning_6:"Mulling it over...",translate_reasoning_7:"Finding the best approach...",translate_reasoning_8:"Organizing my thoughts...",translate_reasoning_9:"Almost there...",translate_running:"Running",translate_aborted:"Aborted",translate_input:"Input",translate_output:"Output",translate_calling:"Calling",translate_input_ready:"Input ready",translate_needs_approval:"Needs approval",translate_approved:"Approved",translate_responded:"Responded",translate_declined:"Declined",translate_approve:"Approve",translate_deny:"Deny",translate_approval_prompt:"The assistant wants to take an action. Allow it?",translate_error:"Error",translate_approval_requested:"Approval requested",translate_approval_response:"Approval response",translate_waiting_for_approval:"Waiting for approval to execute this tool.",translate_tool_approved:"Approved.",translate_tool_response_received:"Response received.",translate_tokens:"tokens",translate_fresh:"Fresh",translate_cache_read:"Cache read",translate_cache_write:"Cache write",translate_n_percent_cached:"{{percent}}% cached",translate_text:"Text",translate_reasoning:"Reasoning",translate_read:"Read",translate_write:"Write",translate_total:"Total",translate_request:"Request",translate_response:"Response",translate_step_n:"Step {{number}}",translate_inspect_llm_requests:"Inspect LLM requests",translate_loading:"loading…",translate_no_llm_requests:"No LLM requests recorded for this message.",translate_unhandled_type:"Unhandled type:",translate_client_tool_title:"Complete this step to continue",translate_client_tool_loading:"Preparing a secure step...",translate_client_tool_failed:"This step could not be loaded",translate_client_tool_retry:"Try again",translate_client_tool_cancel:"Cancel",translate_location_hint:"Tap the map to drop a pin",translate_location_locate:"Use my location",translate_location_locating:"Finding your location",translate_location_locate_failed:"Your location is not available",translate_location_map_failed:"The map could not be loaded",translate_location_send_failed:"Could not send, try again",translate_location_skip:"Not now",translate_location_send:"Send",translate_location_shared:"Location shared",translate_location_not_shared:"Location not shared",translate_trigger_fired:"Triggered by",translate_trigger_payload:"Payload",translate_messages_disabled:"This agent only runs from its triggers.",translate_streaming:"Streaming",translate_done:"Done",translate_no_reasoning:"No reasoning provided.",translate_copy:"Copy to clipboard",translate_copied:"Copied",translate_media_pending_mermaid:"Drawing diagram",translate_media_pending_vega_lite:"Drawing chart",translate_media_pending_map:"Drawing map",translate_media_cut_off:"This block was cut off before it finished.",translate_media_failed:"Could not render this block.",translate_media_source:"Source",translate_media_pending:"Drawing",translate_image_unavailable:"Image unavailable",translate_image_unavailable_alt:"Image unavailable: {{alt}}"};var E5={en:x0,ar:m0};function l1(_){return _&&e_.includes(_)?_:e_[0]}function p1(_,$,X){let N=E5[_][$];if(!X)return N;return N.replace(/\{\{\s*(\w+)\s*\}\}/g,(Y,Q)=>(Q in X)?String(X[Q]):Y)}function P_(_,$,X){return _===1?$:X}function Q_(_){if(typeof _==="string"){let $=_.trim();if(!($.startsWith("{")&&$.endsWith("}")||$.startsWith("[")&&$.endsWith("]")))return _;try{return Q_(JSON.parse($))}catch{return _}}if(Array.isArray(_))return _.map(($)=>Q_($));if(_!==null&&typeof _==="object"){let $={};for(let[X,N]of Object.entries(_))$[X]=Q_(N);return $}return _}function d1(_,$){if(Array.isArray(_)){let X=_;return{kind:"container",open:"[",close:"]",summary:c0(X.length,"item","items"),entries:X.map((N,Y)=>({key:null,value:N,path:`${$}[${Y}]`}))}}if(_!==null&&typeof _==="object"){let X=Object.entries(_);return{kind:"container",open:"{",close:"}",summary:c0(X.length,"property","properties"),entries:X.map(([N,Y])=>({key:N,value:Y,path:`${$}.${N}`}))}}return{kind:"primitive",text:y5(_),className:R5(_)}}function c0(_,$,X){return`${_} ${_===1?$:X}`}function y5(_){if(_===null||_===void 0)return"null";if(typeof _==="string")return JSON.stringify(_);if(typeof _==="number"||typeof _==="boolean")return String(_);return JSON.stringify(_)??"null"}function R5(_){if(_===null||_===void 0)return"cortex-json-tree__null";if(typeof _==="string")return"cortex-json-tree__string";if(typeof _==="number")return"cortex-json-tree__number";if(typeof _==="boolean")return"cortex-json-tree__boolean";return""}function n1(_){if(!_)return null;try{return JSON.parse(_)}catch{return _}}function i1(_){if(!_)return"";try{return JSON.stringify(JSON.parse(_),null,2)}catch{return _}}function Z_(_,$){if(_===void 0||typeof _==="string"||Array.isArray(_))return _;let X=_;return X[$]??X.en??Object.values(X)[0]}function u(_,$,X=Date.now()){let N=new Date(_);if(Number.isNaN(N.getTime()))return"";let Y=N.toDateString()===new Date(X).toDateString();return new Intl.DateTimeFormat($,{...Y?{}:{dateStyle:"medium"},timeStyle:"short"}).format(N)}function r1(_,$){let X=URL.createObjectURL(_),N=document.createElement("a");N.href=X,N.download=$,N.click(),URL.revokeObjectURL(X)}class o{onUpdate;fullText="";displayedLength=0;animationFrameId=null;isDone=!1;releases=[];static DRAIN_FRACTION=0.03;static MIN_CHARS_PER_FRAME=1;static DONE_DRAIN_FRACTION=0.1;static FADE_WINDOW_MS=500;constructor(_){this.onUpdate=_}seed(_){this.fullText=_,this.displayedLength=_.length,this.releases=[],this.onUpdate(_,[])}update(_,$){if(this.fullText=_,this.isDone=$,this.displayedLength=Math.min(this.displayedLength,this.fullText.length),this.releases=this.releases.filter((X)=>X.from<this.displayedLength),$&&this.displayedLength>=this.fullText.length){this.onUpdate(this.fullText,[]),this.stopAnimation();return}if(!this.animationFrameId)this.scheduleFrame()}destroy(){this.stopAnimation()}scheduleFrame(){this.animationFrameId=requestAnimationFrame((_)=>this.tick(_))}tick(_){let $=this.fullText.length-this.displayedLength;if($<=0){this.animationFrameId=null;return}let X=this.isDone?o.DONE_DRAIN_FRACTION:o.DRAIN_FRACTION,N=Math.max(o.MIN_CHARS_PER_FRAME,Math.ceil($*X));if(this.releases=this.releases.filter((Y)=>_-Y.at<o.FADE_WINDOW_MS),this.releases.push({from:this.displayedLength,at:_}),this.displayedLength=Math.min(this.fullText.length,this.displayedLength+N),this.onUpdate(this.fullText.substring(0,this.displayedLength),this.releases.map((Y)=>({length:this.displayedLength-Y.from,age:_-Y.at}))),this.displayedLength<this.fullText.length)this.scheduleFrame();else this.animationFrameId=null}stopAnimation(){if(this.animationFrameId)cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null}}var w5=2;function o1(_){let $=!1,X=!1,N=!1,Y=!1,Q=!1,Z=!1,G,J=new Set,z=0,V=!1;function W(){if($&&z===0)return!1;if(z+=1,!$)$=!0,_.setRunning(!0);return!0}function U(H){if(z-=1,H)V=!0;else if(z===0&&!V)$=!1,_.setRunning(!1)}async function L(H,D){for(let K=0;K<w5;K+=1){let O=await _.refreshMessages().catch(()=>{return});if(!_.isAlive())return!1;if(!O)continue;if(!r(O).some((T)=>T.id===H.id))return!0;if(await _.deliver(D).then(()=>!0,()=>!1))return!0}return!1}async function F(H,D){let K;try{let Y_=D({toolCallId:H.id,toolName:H.name,input:H.input},{threadId:_.threadId});if(Y_===null||Y_===void 0)return;K=await Promise.resolve(Y_)}catch{J.delete(H.id);return}if(K===null||K===void 0)return;if(!_.isAlive())return;let O=W(),C={toolCallId:H.id,tool:H.name,output:K},T=await _.deliver(C).then(()=>!0,()=>L(H,C));if(O)U(T);if(!T)J.delete(H.id)}function k(H){let D=r(H),K=_.onToolCall();if(!K)return D.length>0;for(let O of D){if(O.state!=="input-complete"||J.has(O.id))continue;J.add(O.id),F(O,K)}return D.length>0}async function M(H){let D=Y;if(Y=!1,!D&&$){if(k(H()))return;if(N)_.reloadThreads().catch(()=>{});else _.setRunning(!1)}if(G===void 0&&(Z||D))return;G=void 0;let K=await _.refreshMessages();if(!D&&$&&K)k(K)}return{chunkArrived(){X=!0},transcriptCarried(H){if(Z=!0,G!==void 0&&G<=H)G=void 0},transcriptUpdated(H){if(!Q){_.refreshMessages();return}G=Math.max(G??0,Date.parse(H))},streamFailed(){if(N=!0,X)_.onTurnFinished();else _.onSendFailed()},loadingChanged(H,D){if(H){Q=!0,N=!1,Z=!1;return}if(!Q)return;Q=!1,_.onTurnFinished(),M(D)},hydrated(H,D){if(D)return;setTimeout(()=>{if(_.isAlive())k(H)},0)},sendStarted(){_.setRunning(!0),$=!0,X=!1},abortConfirmed(){Y=!0,_.setRunning(!1)}}}function A_(_){if(_.input.total<=0)return null;return Math.round(_.input.cacheRead/_.input.total*100)}import{createContext as h0,useContext as u0}from"react";var a1=h0(void 0);function B(){let _=u0(a1);if(!_)throw Error("useCortex must be used inside <CortexChatWidget>");return _}var g_={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1},m_=h0(g_);function x_(){return u0(m_)}import{useEffect as I5,useState as b5}from"react";function l0(_,$){let[X,N]=b5();return I5(()=>{return N(void 0),I1(_,N)},[_,$]),X}import{useRef as m5}from"react";import{useRef as C5,useState as S5,useSyncExternalStore as v5}from"react";function p0(_,$){let X=C5($);X.current=$;let[N]=S5(()=>B1({api:_,ensureThread:()=>X.current()})),Y=v5(N.subscribe,N.getState,N.getState);return{store:N,value:{items:Y,...q1(Y),accept:N.accept,remove:N.remove,consumeReady:N.consumeReady}}}import{useEffect as T5,useRef as f5}from"react";function d0(_,$){let X=f5(void 0);T5(()=>{if($===X.current)return;_.clear(X.current),X.current=$},[$,_])}import{useRef as n0}from"react";function i0(_){let $=n0([]),X=n0(void 0);function N(){let Q=_.selectedRef.current;if(Q)return Promise.resolve(Q.id);return X.current??=_.api.createThread().then((Z)=>{return X.current=void 0,_.onCreated(Z),Z.id},(Z)=>{throw X.current=void 0,Z}),X.current}async function Y(Q,Z=[]){let G=_.sessionRef.current;if(G){await G.send(Q,Z);return}$.current.push({prompt:Q,attachments:Z});try{await N()}catch(J){throw $.current=[],J}}return{ensureThread:N,send:Y,pendingSendRef:$}}import{useRef as j5,useState as g5}from"react";function r0(_){let[$,X]=g5(),N=$?.thread,Y=N?_.threads?.find((z)=>z.id===N.id)??N:void 0,Q=j5(Y);Q.current=Y;function Z(z,V){if(Q.current?.id===z.id&&_.hasSession())return;let W=Q.current;if(Q.current=z,X({thread:z,mode:V,epoch:0}),W&&W.id!==z.id)_.getHooks()?.onThreadDeselected?.(W);_.getHooks()?.onThreadSelected?.(z)}function G(){let z=Q.current;if(!z&&!_.hasSession())return;if(Q.current=void 0,X(void 0),z)_.getHooks()?.onThreadDeselected?.(z)}function J(z,V){X((W)=>({thread:z,mode:"reload",epoch:(W?.epoch??0)+1,initialMessages:V}))}return{session:$,selected:Y,selectedRef:Q,select:Z,deselect:G,remount:J}}function o0(_){let{api:$,threads:X}=_,N=m5(void 0),Y=r0({threads:X.threads,getHooks:_.getHooks,hasSession:()=>N.current!==void 0}),Q=i0({api:$,sessionRef:N,selectedRef:Y.selectedRef,onCreated:(z)=>{X.upsert(z),Y.select(z,"skip")}}),Z=p0($,Q.ensureThread);d0(Z.store,Y.selected?.id);async function G(z){if(Y.selectedRef.current?.id===z)Y.deselect();await X.remove(z)}function J(z){Y.select(z,"load")}return{sessionRef:N,selection:Y,queue:Z,deleteThread:G,openThread:J,...Q}}import{useEffect as x5,useRef as c5}from"react";function a0(_){let $=c5(_);$.current=_,x5(()=>{$.current.onMount();let X=!1,N=w1({getConfig:()=>$.current.getConfig(),onEvent:(Y)=>$.current.onEvent(Y),onOpen:()=>{if(X)$.current.onReconnect();X=!0}});return()=>N.close()},[])}function t0(_){let{threads:$,selectedRef:X,sessionRef:N}=_;function Y(Z){$.applyEvent(Z);let G=X.current?.id;switch(Z.type){case"thread:deleted":if(G===Z.payload.threadId)_.deselect();break;case"thread:run-started":if(G===Z.payload.thread.id)N.current?.reattach(Z.payload.thread);break;case"thread:messages-updated":N.current?.transcriptUpdated(Z.payload.thread.id,Z.payload.thread.updatedAt);break}}function Q(){_.onReconnect(),$.reload().then((Z)=>{let G=X.current;if(!G)return;N.current?.reattach(Z.find((J)=>J.id===G.id)??G)})}return{onEvent:Y,onReconnect:Q}}function s0(_){return{abort:async()=>{await _.current?.abort()},addToolResult:($,X,N)=>_.current?.addToolResult($,X,N)??Promise.resolve(),respondToApproval:($,X)=>_.current?.respondToApproval($,X)??Promise.resolve()}}import{useState as h5}from"react";function e0(_){let[$,X]=h5();async function N(){let J=T_(await _.listThreads());return X(J),J}function Y(J){X((z)=>k_(z??[],J))}function Q(J,z){X((V)=>{let W=V?.find((U)=>U.id===J);return W?k_(V??[],{...W,isRunning:z}):V})}async function Z(J){await _.deleteThread(J),X((z)=>z?f_(z,J):z)}function G(J){X((z)=>{let V=b1(z??[],J);return z||V.length?V:z})}return{threads:$,reload:N,upsert:Y,setRunning:Q,remove:Z,applyEvent:G}}import{useState as _6}from"react";function $6(){let[_,$]=_6("chat"),[X,N]=_6(!1);return{screen:_,sidebarOpen:X,showChat:()=>{$("chat"),N(!1)},openHistory:()=>$("threads"),closeHistory:()=>$("chat"),toggleSidebar:()=>N((Y)=>!Y),closeSidebar:()=>N(!1)}}function q(..._){return _.filter(Boolean).join(" ")}import{jsx as l,jsxs as X6}from"react/jsx-runtime";function N6({onToggleSidebar:_,onToggleDebug:$,onOpenHistory:X}){let{config:N,locale:Y,t:Q,debugMode:Z,selectedThread:G}=B();return X6("div",{className:"cortex-widget__chat-header",children:[l("button",{onClick:_,className:"cortex-widget__sidebar-toggle-btn",children:l("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:l("path",{d:"M2.5 4h11M2.5 8h11M2.5 12h11",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),l("div",{className:"cortex-widget__chat-title-wrap",children:l("p",{className:"cortex-widget__chat-title",children:G?.title??Z_(N.agentName,Y)??Q("translate_new_chat")})}),N.showDebugButton&&l("button",{onClick:$,className:q("cortex-widget__debug-btn",Z?"cortex-widget__debug-btn--on":"cortex-widget__debug-btn--off"),children:Z?Q("translate_debug"):Q("translate_normal")}),l("button",{type:"button",onClick:X,"aria-label":Q("translate_history"),className:"cortex-widget__history-btn",children:X6("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[l("circle",{cx:"8",cy:"8",r:"5.75",stroke:"currentColor",strokeWidth:"1.3"}),l("path",{d:"M8 5v3l2 1.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})}var I={bubble:"M13.5 7.6c0 2.4-2.5 4.4-5.5 4.4-.6 0-1.2-.08-1.7-.23L3 13l.8-2.3C3 9.8 2.5 8.7 2.5 7.6 2.5 5.2 5 3.2 8 3.2s5.5 2 5.5 4.4Z",chevronDown:"M3 4.5L6 7.5L9 4.5",chevronDownLarge:"m5.75 8.25 4.25 4.25 4.25-4.25",file:["M4 1.5h5.172a2 2 0 0 1 1.414.586l2.328 2.328a2 2 0 0 1 .586 1.414V12.5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2Z","M9.5 1.5v2a2 2 0 0 0 2 2h2"]};import{forwardRef as r5,useEffect as o5,useImperativeHandle as a5,useRef as z6,useState as t5}from"react";import{useState as u5}from"react";function Y6(_,$){let[X,N]=u5(!1);return{dragging:X,onDragOver:(Y)=>{if(Y.preventDefault(),_)N(!0)},onDragLeave:(Y)=>{if(!Y.currentTarget.contains(Y.relatedTarget))N(!1)},onDrop:(Y)=>{if(Y.preventDefault(),N(!1),_)$([...Y.dataTransfer.files])},onPaste:(Y)=>{let Q=Y.clipboardData.files;if(!_||!Q.length)return;Y.preventDefault(),$([...Q])}}}import{jsx as p,jsxs as t1}from"react/jsx-runtime";function Q6(){let{queue:_,t:$}=B();if(!_.items.length)return null;return p("div",{className:"cortex-attachment-queue",children:_.items.map((X)=>t1("div",{className:q("cortex-attachment-chip",X.status==="error"&&"cortex-attachment-chip--error"),title:X.status==="error"?$("translate_attachment_rejected"):"",children:[X.status==="uploading"||X.status==="deleting"?t1("svg",{className:"cortex-attachment-chip__spinner",viewBox:"0 0 16 16",fill:"none",children:[p("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",className:"cortex-attachment-chip__spinner-track"}),p("path",{d:"M14 8a6 6 0 0 0-6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):t1("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[p("path",{d:I.file[0],stroke:"currentColor",strokeWidth:"1.25"}),p("path",{d:I.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),p("span",{className:"cortex-attachment-chip__name",children:X.filename}),p("button",{type:"button",onClick:()=>_.remove(X.localId),className:"cortex-attachment-chip__remove",disabled:X.status==="deleting","aria-label":$("translate_remove_attachment"),children:p("svg",{viewBox:"0 0 16 16",fill:"none",children:p("path",{d:"M4.5 4.5l7 7m0-7l-7 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},X.localId))})}import{useRef as l5}from"react";import{jsx as __,jsxs as Z6,Fragment as d5}from"react/jsx-runtime";var p5=_1.join(",");function G6({attachmentsEnabled:_,canSend:$,onSend:X}){let{t:N,queue:Y}=B(),Q=l5(null);return Z6("div",{className:"cortex-widget__input-actions",children:[_&&Z6(d5,{children:[__("button",{type:"button",onClick:()=>Q.current?.click(),className:"cortex-widget__attach-btn","aria-label":N("translate_attach_files"),children:__("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:__("path",{d:"M10.5 5.5 6.2 9.8a1.4 1.4 0 0 0 2 2l4.6-4.6a2.8 2.8 0 0 0-4-4L4.2 7.8a4.2 4.2 0 0 0 6 6l4-4",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),__("input",{ref:Q,type:"file",multiple:!0,accept:p5,onChange:(Z)=>{Y.accept([...Z.target.files??[]]),Z.target.value=""},className:"cortex-widget__file-input"})]}),__("button",{onClick:X,className:q("cortex-widget__send-btn",!$&&"cortex-widget__send-btn--empty",$&&"cortex-widget__send-btn--ready"),disabled:!$,children:__("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__send-icon",children:__("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}import{useLayoutEffect as n5}from"react";import{jsx as i5}from"react/jsx-runtime";function J6(_){let{t:$}=B();n5(()=>{let N=_.inputRef.current;if(!N)return;N.style.height="0px",N.style.height=`${N.scrollHeight}px`},[_.inputRef,_.value]);function X(N){if(N.key==="Enter"&&!N.shiftKey)N.preventDefault(),_.onSubmit()}return i5("textarea",{ref:_.inputRef,onKeyDown:X,onPaste:_.onPaste,value:_.value,onChange:(N)=>_.onChange(N.target.value),placeholder:_.dragging?$("translate_drop_files_here"):_.disabled?"":$("translate_type_a_message"),disabled:_.disabled,rows:1,className:q("cortex-widget__textarea",_.disabled&&"cortex-widget__textarea--disabled")})}import{jsx as G_,jsxs as s1}from"react/jsx-runtime";var V6=r5(function($,X){let{t:N,queue:Y,send:Q,abort:Z,capabilities:G}=B(),{isAgentWorking:J}=x_(),z=G?.attachments??!1,[V,W]=t5(""),U=Y6(z,Y.accept),L=z6(null);a5(X,()=>({focusInput:()=>L.current?.focus()}));let F=z6(J);o5(()=>{if(F.current&&!J)L.current?.focus();F.current=J},[J]);let k=!Y.busy&&(Boolean(V.trim())||Y.hasReady);function M(){if(J||!k)return;let H=V.trim()||N("translate_attachment_caption"),D=Y.consumeReady();W(""),Q(H,D.map((K)=>K.summary))}return s1("div",{className:"cortex-widget__input-area",onDragOver:U.onDragOver,onDragLeave:U.onDragLeave,onDrop:U.onDrop,children:[G_(Q6,{}),s1("div",{className:q("cortex-widget__input-box",J&&"cortex-widget__input-box--disabled",!J&&"cortex-widget__input-box--enabled",U.dragging&&"cortex-widget__input-box--dragging"),children:[G_(J6,{inputRef:L,value:V,onChange:W,onSubmit:M,onPaste:U.onPaste,disabled:J,dragging:U.dragging}),J?s1("button",{onClick:()=>void Z(),className:"cortex-stop-btn",children:[G_("span",{className:"cortex-stop-btn__ring"}),G_("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"cortex-stop-btn__icon",children:G_("rect",{x:"1",y:"1",width:"10",height:"10",rx:"2.5",fill:"currentColor"})})]}):G_(G6,{attachmentsEnabled:z,canSend:k,onSend:M})]})]})});import{jsx as K6}from"react/jsx-runtime";function c_({capabilities:_,composerRef:$}){let{t:X}=B();if(_===void 0)return null;return _.messages===!1?K6("p",{className:"cortex-widget__messages-disabled",children:X("translate_messages_disabled")}):K6(V6,{ref:$})}import{jsx as h,jsxs as W6}from"react/jsx-runtime";function D6(_){let{locale:$,t:X,threads:N,send:Y,capabilities:Q}=B(),Z=Q?.messages===!1,G=Q!==void 0,J=Z_(Q?.suggestions,$),z=Z_(Q?.greeting,$)||X("translate_greeting");return W6("div",{className:"cortex-widget__landing",children:[h("div",{className:"cortex-widget__landing-icon",children:h("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",children:h("path",{d:I.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),h("p",{className:"cortex-widget__landing-greeting",children:z}),G&&!Z&&!!J?.length&&h("div",{className:"cortex-widget__landing-chips",children:J.map((V,W)=>h("button",{type:"button",onClick:()=>void Y(V.prompt),className:"cortex-widget__landing-chip",children:V.title},W))}),h(c_,{capabilities:Q}),!!N?.length&&h("div",{className:"cortex-widget__landing-recent",children:N.slice(0,2).map((V)=>{let W=u(V.updatedAt,$);return W6("button",{type:"button",onClick:()=>_.onThreadSelected(V),className:"cortex-widget__landing-recent-item",children:[h("p",{className:"cortex-widget__landing-recent-title",children:V.title??X("translate_untitled")}),W&&h("p",{className:"cortex-widget__landing-recent-time",children:W})]},V.id)})})]})}import{useCallback as r_,useEffect as o_,useMemo as b8,useRef as C_,useState as Q0}from"react";import{jsx as h_,jsxs as H6}from"react/jsx-runtime";function B6(){let{t:_}=B();return H6("div",{className:"cortex-widget__working",children:[H6("div",{className:"cortex-widget__working-dots",children:[h_("span",{className:"cortex-working-dot"}),h_("span",{className:"cortex-working-dot"}),h_("span",{className:"cortex-working-dot"})]}),h_("span",{className:"cortex-widget__working-text",children:_("translate_thinking")})]})}import{memo as w8}from"react";import{Fragment as E8}from"react";import{useRef as s5,useState as e5}from"react";import{jsx as J_,jsxs as _8}from"react/jsx-runtime";function j({value:_,className:$}){let{t:X}=B(),[N,Y]=e5(!1),Q=s5(null);async function Z(G){G.stopPropagation(),G.preventDefault();try{if(await navigator.clipboard.writeText(_),Y(!0),Q.current)clearTimeout(Q.current);Q.current=setTimeout(()=>Y(!1),1500)}catch{}}return J_("span",{className:q("cortex-copy-btn",$),children:J_("button",{className:q("cortex-copy-btn__button",N&&"cortex-copy-btn__button--copied"),onClick:(G)=>void Z(G),"aria-label":N?X("translate_copied"):X("translate_copy"),type:"button",children:N?J_("svg",{className:"cortex-copy-btn__icon cortex-copy-btn__icon--check",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:J_("path",{d:"M5 13l4 4L19 7",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):_8("svg",{className:"cortex-copy-btn__icon",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:[J_("rect",{x:"9",y:"9",width:"12",height:"12",rx:"2",stroke:"currentColor",strokeWidth:"2"}),J_("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})})})}import{jsx as u_,jsxs as q6}from"react/jsx-runtime";function F6(){let{t:_}=B();return q6("div",{className:"cortex-aborted-flag",children:[u_("span",{className:"cortex-aborted-flag__line"}),q6("span",{className:"cortex-aborted-flag__label",children:[u_("svg",{className:"cortex-aborted-flag__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:u_("path",{d:"M6 1.5v5M6 8.75v.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),_("translate_aborted")]}),u_("span",{className:"cortex-aborted-flag__line"})]})}import{jsx as z_,jsxs as U6}from"react/jsx-runtime";function L6(_){let{api:$,t:X}=B();async function N(Y){let{blob:Q,name:Z}=await $.downloadAttachment(Y);r1(Q,Z)}return z_("div",{className:q("cortex-message-attachments",_.isUser&&"cortex-message-attachments--user"),children:_.attachments.map((Y)=>U6("button",{type:"button",onClick:()=>void N(Y.id),className:"cortex-message-attachment","aria-label":`${X("translate_download")}: ${Y.filename}`,children:[U6("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__icon",fill:"none",children:[z_("path",{d:I.file[0],stroke:"currentColor",strokeWidth:"1.25"}),z_("path",{d:I.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),z_("span",{className:"cortex-message-attachment__name",children:Y.filename}),z_("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__dl-icon",fill:"none",children:z_("path",{d:"M8 3v7m0 0L5.5 7.5M8 10l2.5-2.5M3 13h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},Y.id))})}import{useRef as N8,useState as E_}from"react";import{useMemo as $8,useState as X8}from"react";import{jsx as f,jsxs as $_,Fragment as l_}from"react/jsx-runtime";function a({data:_,expandDepth:$,className:X}){let N=$8(()=>Q_(_),[_]),[Y,Q]=X8({});function Z(J,z){return Y[J]??z>=$}function G(J,z){Q((V)=>({...V,[J]:!Z(J,z)}))}return f("div",{className:q("cortex-json-tree",X),children:f(k6,{value:N,path:"$",depth:0,isCollapsed:Z,toggle:G})})}function k6({value:_,path:$,depth:X,isCollapsed:N,toggle:Y}){let Q=d1(_,$);if(Q.kind==="primitive")return f("span",{className:Q.className,children:Q.text});if(Q.entries.length===0)return $_("span",{className:"cortex-json-tree__bracket",children:[Q.open,Q.close]});let Z=N($,X);function G(J){Y($,X),J.stopPropagation()}return $_(l_,{children:[$_("span",{className:"cortex-json-tree__toggle",onClick:G,role:"button",children:[f("span",{className:q("cortex-json-tree__arrow",Z&&"cortex-json-tree__arrow--collapsed"),children:"▾"}),f("span",{className:"cortex-json-tree__bracket",children:Q.open})]}),Z?$_(l_,{children:[f("span",{className:"cortex-json-tree__collapsed-hint",onClick:G,role:"button",children:Q.summary}),f("span",{className:"cortex-json-tree__bracket",children:Q.close})]}):$_(l_,{children:[f("div",{className:"cortex-json-tree__indent",children:Q.entries.map((J,z)=>$_("div",{className:"cortex-json-tree__line",children:[J.key!==null&&$_(l_,{children:[f("span",{className:"cortex-json-tree__key",children:`"${J.key}"`}),f("span",{className:"cortex-json-tree__colon",children:": "})]}),f(k6,{value:J.value,path:J.path,depth:X+1,isCollapsed:N,toggle:Y}),z<Q.entries.length-1&&f("span",{className:"cortex-json-tree__comma",children:","})]},J.path))}),f("span",{className:"cortex-json-tree__bracket",children:Q.close})]})]})}function E(_){return _.toLocaleString("en-US")}import{jsx as V_,jsxs as K_}from"react/jsx-runtime";function M6({usage:_}){let{t:$}=B();return K_("div",{className:"cortex-llm-inspector__usage-rows",children:[K_("div",{className:"cortex-llm-inspector__usage-row",children:[V_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_input")}),V_("span",{className:"cortex-llm-inspector__usage-val",children:E(_.input.total)}),K_("span",{className:"cortex-llm-inspector__usage-detail",children:[$("translate_fresh")," ",E(_.input.noCache)," · ",$("translate_read")," ",E(_.input.cacheRead)," · ",$("translate_write")," ",E(_.input.cacheWrite)]})]}),K_("div",{className:"cortex-llm-inspector__usage-row",children:[V_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_output")}),V_("span",{className:"cortex-llm-inspector__usage-val",children:E(_.output.total)}),K_("span",{className:"cortex-llm-inspector__usage-detail",children:[$("translate_text")," ",E(_.output.text)," · ",$("translate_reasoning")," ",E(_.output.reasoning)]})]}),K_("div",{className:"cortex-llm-inspector__usage-row cortex-llm-inspector__usage-row--total",children:[V_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_total")}),V_("span",{className:"cortex-llm-inspector__usage-val",children:E(_.total)})]})]})}import{jsx as O6,jsxs as p_}from"react/jsx-runtime";function P6({usage:_}){let $=A_(_);return p_("span",{className:"cortex-llm-inspector__step-metrics",children:[p_("span",{className:"cortex-llm-inspector__metric",children:[O6("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--input"}),E(_.input.total)]}),p_("span",{className:"cortex-llm-inspector__metric",children:[O6("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--output"}),E(_.output.total)]}),$!==null&&p_("span",{className:"cortex-llm-inspector__cache-pct",children:[$,"%"]})]})}import{jsx as R,jsxs as t}from"react/jsx-runtime";function A6({messageId:_}){let{t:$,api:X}=B(),[N,Y]=E_(!1),[Q,Z]=E_(!1),[G,J]=E_([]),[z,V]=E_(null),[W,U]=E_({}),L=N8(!1);async function F(){if(!L.current){Z(!0);try{J(await X.listLlmRequests(_))}finally{Z(!1),L.current=!0}}Y((K)=>!K)}function k(K){V((O)=>O===K?null:K)}function M(K){return W[K]??"prompt"}function H(K,O){U((C)=>({...C,[K]:O}))}function D(K){return M(K.id)==="prompt"?K.prompt:K.output}return t("div",{className:q("cortex-llm-inspector",N&&"cortex-llm-inspector--open"),children:[t("button",{className:"cortex-llm-inspector__trigger",onClick:()=>void F(),children:[R("svg",{className:"cortex-llm-inspector__icon",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:R("path",{d:"M6 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM0 6a6 6 0 1 1 10.89 3.477l4.817 4.816a1 1 0 0 1-1.414 1.414l-4.816-4.816A6 6 0 0 1 0 6Z",fill:"currentColor"})}),R("span",{children:$("translate_inspect_llm_requests")}),Q?R("span",{className:"cortex-llm-inspector__loading",children:$("translate_loading")}):G.length>0?R("span",{className:"cortex-llm-inspector__badge",children:G.length}):null,R("svg",{className:"cortex-llm-inspector__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:R("path",{d:I.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),R("div",{className:"cortex-llm-inspector__panel-wrapper",children:R("div",{className:"cortex-llm-inspector__panel-inner",children:t("div",{className:"cortex-llm-inspector__panel",children:[G.length===0&&!Q&&R("div",{className:"cortex-llm-inspector__empty",children:$("translate_no_llm_requests")}),G.map((K,O)=>t("div",{className:q("cortex-llm-inspector__step",z===K.id&&"cortex-llm-inspector__step--expanded"),children:[t("button",{className:"cortex-llm-inspector__step-header",onClick:()=>k(K.id),children:[R("span",{className:"cortex-llm-inspector__step-label",children:$("translate_step_n",{number:O+1})}),K.tokenUsage&&R(P6,{usage:K.tokenUsage}),R("svg",{className:"cortex-llm-inspector__step-chevron",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:R("path",{d:I.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),R("div",{className:"cortex-llm-inspector__step-body-wrapper",children:R("div",{className:"cortex-llm-inspector__step-body-inner",children:t("div",{className:"cortex-llm-inspector__step-body",children:[K.tokenUsage&&R(M6,{usage:K.tokenUsage}),t("div",{className:"cortex-llm-inspector__tabs",children:[R("button",{className:q("cortex-llm-inspector__tab",M(K.id)==="prompt"&&"cortex-llm-inspector__tab--active"),onClick:()=>H(K.id,"prompt"),children:$("translate_request")}),R("button",{className:q("cortex-llm-inspector__tab",M(K.id)==="response"&&"cortex-llm-inspector__tab--active"),onClick:()=>H(K.id,"response"),children:$("translate_response")})]}),t("div",{className:"cortex-llm-inspector__json-pane",children:[R(j,{className:"cortex-llm-inspector__json-copy",value:i1(D(K))}),R(a,{data:n1(D(K)),expandDepth:2})]})]})})})]},K.id))]})})})]})}import{useState as Y8}from"react";import{jsx as P,jsxs as b}from"react/jsx-runtime";function E6({usage:_,modelId:$}){let{t:X}=B(),[N,Y]=Y8(!1),Q=A_(_)??0;return b("div",{className:q("cortex-token-usage",N&&"cortex-token-usage--expanded"),children:[b("button",{className:"cortex-token-usage__summary",onClick:()=>Y((Z)=>!Z),children:[b("span",{className:"cortex-token-usage__total",children:[P("span",{className:"cortex-token-usage__total-number",children:E(_.total)}),P("span",{className:"cortex-token-usage__total-label",children:X("translate_tokens")})]}),$?P("span",{className:"cortex-token-usage__model",children:$}):null,b("span",{className:"cortex-token-usage__pills",children:[b("span",{className:"cortex-token-usage__pill",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),E(_.input.total)]}),b("span",{className:"cortex-token-usage__pill",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),E(_.output.total)]})]}),Q>0&&b("span",{className:"cortex-token-usage__cache-badge",children:[Q,"%"]}),P("svg",{className:"cortex-token-usage__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:P("path",{d:I.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),P("div",{className:"cortex-token-usage__details",children:P("div",{className:"cortex-token-usage__details-inner",children:b("div",{className:"cortex-token-usage__columns",children:[b("div",{className:"cortex-token-usage__col",children:[b("div",{className:"cortex-token-usage__col-header",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),P("span",{className:"cortex-token-usage__col-label",children:X("translate_input")}),P("span",{className:"cortex-token-usage__col-total",children:E(_.input.total)})]}),b("div",{className:"cortex-token-usage__rows",children:[_.input.noCache?b("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:X("translate_fresh")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.input.noCache)})]}):null,_.input.cacheRead?b("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:X("translate_cache_read")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.input.cacheRead)})]}):null,_.input.cacheWrite?b("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:X("translate_cache_write")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.input.cacheWrite)})]}):null]}),Q>0&&b("div",{className:"cortex-token-usage__cache-bar-row",children:[P("div",{className:"cortex-token-usage__cache-bar",children:P("div",{className:"cortex-token-usage__cache-fill",style:{width:`${Q}%`}})}),P("span",{className:"cortex-token-usage__cache-label",children:X("translate_n_percent_cached",{percent:Q})})]})]}),b("div",{className:"cortex-token-usage__col",children:[b("div",{className:"cortex-token-usage__col-header",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),P("span",{className:"cortex-token-usage__col-label",children:X("translate_output")}),P("span",{className:"cortex-token-usage__col-total",children:E(_.output.total)})]}),b("div",{className:"cortex-token-usage__rows",children:[_.output.text?b("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:X("translate_text")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.output.text)})]}):null,_.output.reasoning?b("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:X("translate_reasoning")}),P("span",{className:"cortex-token-usage__row-value",children:E(_.output.reasoning)})]}):null]})]})]})})})]})}import{jsx as y6,jsxs as Q8}from"react/jsx-runtime";function R6({messageId:_,isAssistant:$,metadata:X}){let{tokenUsage:N}=X;if(!N&&!$)return null;return Q8("div",{className:"cortex-message-debug-zone",children:[N&&y6(E6,{usage:N,modelId:X.modelId}),$&&y6(A6,{messageId:_})]})}import{jsx as g,jsxs as y_}from"react/jsx-runtime";function w6(_){let{reasoningPart:$,streaming:X=!1}=_,{t:N}=B();return y_("details",{className:"cortex-reasoning-details",children:[y_("summary",{className:"cortex-reasoning-details__summary",children:[y_("div",{className:"cortex-reasoning-details__header",children:[g("span",{className:"cortex-reasoning-details__icon",children:y_("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:[g("path",{d:"M10 2C6.686 2 4 4.686 4 8c0 1.655.672 3.154 1.757 4.243.362.363.576.858.576 1.371V14.5a1 1 0 0 0 1 1h5.334a1 1 0 0 0 1-1v-.886c0-.513.214-1.008.576-1.371A5.978 5.978 0 0 0 16 8c0-3.314-2.686-6-6-6Z",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}),g("path",{d:"M7.5 17.5h5M8.5 8a2 2 0 0 1 2-2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}),g("div",{className:"cortex-reasoning-details__title-group",children:y_("div",{className:"cortex-reasoning-details__title-row",children:[g("div",{className:"cortex-reasoning-details__title",children:N("translate_reasoning")}),g("span",{className:q("cortex-reasoning-details__badge",X?"cortex-reasoning-details__badge--streaming":"cortex-reasoning-details__badge--done"),children:X?N("translate_streaming"):N("translate_done")})]})})]}),g("span",{className:"cortex-reasoning-details__chevron","aria-hidden":"true",children:g("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:g("path",{d:I.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),g("div",{className:"cortex-reasoning-details__body",children:g("div",{className:"cortex-reasoning-details__content",children:g("pre",{className:"cortex-reasoning-details__pre",children:$.content.trim()?$.content:N("translate_no_reasoning")})})})]})}import{useEffect as v6,useMemo as W8,useRef as _0,useState as D8}from"react";import{useEffect as Z8,useState as I6}from"react";import{jsx as e1,jsxs as G8}from"react/jsx-runtime";function b6(_){let{id:$,alt:X,attachment:N}=_,{api:Y,t:Q}=B(),[Z,G]=I6(),[J,z]=I6(!1);if(Z8(()=>{let V,W=!1;return G(void 0),z(!1),Y.downloadAttachment($).then(({blob:U})=>{if(W)return;V=URL.createObjectURL(U),G(V)},()=>{if(!W)z(!0)}),()=>{if(W=!0,V)URL.revokeObjectURL(V)}},[Y,$]),J)return e1("p",{className:"cortex-attachment-image__caption",children:X?Q("translate_image_unavailable_alt",{alt:X}):Q("translate_image_unavailable")});if(!Z)return null;return G8("figure",{className:"cortex-attachment-image",children:[e1("img",{src:Z,alt:X}),N&&e1("figcaption",{className:"cortex-attachment-image__caption",children:N.filename})]})}import{useEffect as J8,useRef as z8,useState as C6}from"react";import{jsx as d,jsxs as d_}from"react/jsx-runtime";function V8(_){let{t:$}=B();if(!_.pending&&!_.debugMode)return null;return d_("div",{className:"cortex-media-block__head",children:[_.debugMode&&d("span",{className:"cortex-media-block__lang",children:_.language}),_.pending&&d("span",{className:"cortex-media-block__pending",children:$(m1(_.language))}),_.debugMode&&_.closed&&d_("span",{className:"cortex-media-block__actions",children:[_.onToggleSource&&d("button",{type:"button",className:"cortex-media-block__action","aria-pressed":_.sourceShown,onClick:_.onToggleSource,children:$("translate_media_source")}),d(j,{value:_.source})]})]})}function K8(_){let{debugMode:$,t:X}=B();return d("div",{className:"cortex-media-block__body",children:d_("p",{className:"cortex-media-block__error",children:[_.cutOff?X("translate_media_cut_off"):X("translate_media_failed"),!_.cutOff&&$&&` ${_.reason}`]})})}function S6(_){let{language:$,source:X,closed:N,streaming:Y}=_,{config:Q,debugMode:Z,scheme:G}=B(),J=z8(null),[z,V]=C6(),[W,U]=C6(!1);J8(()=>{V(void 0);let M=J.current;if(!N||!G||!M)return;return c1(M,{language:$,source:X,context:{scheme:G},overrides:Q.mediaRenderers,onError:V})},[$,X,N,G,Q.mediaRenderers]);let L=!N&&!Y,F=L||Boolean(z);return d_("div",{className:"cortex-media-block",children:[d(V8,{language:$,source:X,pending:!N&&Y,closed:N,debugMode:Z,sourceShown:W,onToggleSource:F?void 0:()=>U((M)=>!M)}),F&&d(K8,{cutOff:L,reason:z}),d("div",{ref:J,hidden:F,className:q("cortex-media-block__body",`cortex-media-block__body--${$}`)}),Z&&(F||W)&&d("pre",{className:"cortex-media-block__source",children:X})]})}import{jsx as R_}from"react/jsx-runtime";function T6(_){let{role:$,textPart:X,streaming:N=!1,attachments:Y=[]}=_,{config:Q}=B(),Z=$==="assistant"&&N?"":X.content,[G,J]=D8({text:Z,fading:[]}),z=_0(Z),V=_0(null),W=_0(!0);v6(()=>{function F(k,M){z.current=k,J((H)=>H.text===k&&!H.fading.length&&!M.length?H:{text:k,fading:M})}if($!=="assistant"||!N){V.current?.destroy(),V.current=null,F(X.content,[]),W.current=!1;return}if(!V.current)V.current=new o(F),V.current.seed(z.current);if(W.current){W.current=!1,V.current.seed(X.content);return}V.current.update(X.content,!1)},[$,N,X]),v6(()=>()=>{V.current?.destroy(),V.current=null},[]);let U=W8(()=>{let F=$==="assistant"?S1(G.text,x1(Q.mediaRenderers)):[{kind:"markdown",text:G.text}];return F.map((k,M)=>k.kind==="markdown"?{...k,html:{__html:C1(k.text,M===F.length-1?G.fading:[])}}:k)},[$,G,Q.mediaRenderers]),L=N||G.text!==X.content;return R_("div",{className:q("cortex-text-part",$==="assistant"&&"cortex-text-part--assistant",$==="user"&&"cortex-text-part--user"),children:R_("div",{className:q("cortex-text-bubble",$==="assistant"&&"cortex-text-bubble--assistant",$==="user"&&"cortex-text-bubble--user"),children:U.map((F,k)=>{switch(F.kind){case"markdown":return R_("div",{dangerouslySetInnerHTML:F.html},k);case"media":return R_(S6,{...F,streaming:L},k);case"attachment":return R_(b6,{id:F.id,alt:F.alt,attachment:Y.find((M)=>M.id.toLowerCase()===F.id)},k)}})})})}import{jsx as v,jsxs as s}from"react/jsx-runtime";function f6({toolCallPart:_}){let{t:$}=B(),{state:X,approval:N}=_,Y=_.output,Q=Z1(_);if(X==="complete")return s("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--success",children:[s("div",{className:"cortex-debug-tool__section-bar",children:[v("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--success",children:$("translate_output")}),v("span",{className:"cortex-debug-tool__section-lang",children:"json"}),v(j,{value:Q})]}),v("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:v(a,{data:Y,expandDepth:2})})]});if(X==="error")return s("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--error",children:[s("div",{className:"cortex-debug-tool__section-bar",children:[v("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--error",children:$("translate_error")}),v(j,{value:Q})]}),v("pre",{dir:"ltr",className:"cortex-debug-tool__error-pre",children:Q})]});if(X==="approval-requested")return s("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[s("div",{className:"cortex-debug-tool__section-bar",children:[v("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:$("translate_approval_requested")}),v("span",{className:"cortex-debug-tool__section-lang",children:N?.id})]}),v("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:$("translate_waiting_for_approval")})]});if(X==="approval-responded")return s("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[s("div",{className:"cortex-debug-tool__section-bar",children:[v("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:$("translate_approval_response")}),v("span",{className:"cortex-debug-tool__section-lang",children:N?.id})]}),v("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:$(N?.approved?"translate_tool_approved":"translate_tool_response_received")})]});return null}import{jsx as H8,jsxs as B8}from"react/jsx-runtime";function j6({toolCallPart:_}){let{t:$}=B(),X=Q1(_);return B8("span",{className:q("cortex-debug-tool__state",X.modifier&&`cortex-debug-tool__state--${X.modifier}`),children:[X.pulse&&H8("span",{className:q("cortex-debug-tool__pulse",X.pulse==="violet"&&"cortex-debug-tool__pulse--violet")}),$(X.labelKey)]})}import{jsx as S,jsxs as n}from"react/jsx-runtime";function g6({toolCallPart:_}){let{t:$}=B(),{codeSnippets:X,remainingInput:N,remainingInputText:Y}=G1(_.input);return n("details",{className:"cortex-debug-tool","data-state":_.state,children:[S("summary",{className:"cortex-debug-tool__summary",children:n("div",{className:"cortex-debug-tool__header",children:[n("div",{className:"cortex-debug-tool__meta",children:[S("div",{className:"cortex-debug-tool__title-row",children:S("span",{className:"cortex-debug-tool__name",title:_.name,children:_.name})}),S("div",{className:"cortex-debug-tool__id-row",children:S("span",{className:"cortex-debug-tool__id",children:_.id})})]}),n("div",{className:"cortex-debug-tool__actions",children:[S(j6,{toolCallPart:_}),S("svg",{className:"cortex-debug-tool__chevron",width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:S("path",{d:I.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),n("div",{className:"cortex-debug-tool__body",children:[X.map((Q)=>n("div",{className:"cortex-debug-tool__section",children:[n("div",{className:"cortex-debug-tool__section-bar",children:[S("span",{className:"cortex-debug-tool__section-label",children:Q.key}),S("span",{className:"cortex-debug-tool__section-lang",children:Q.lang}),S(j,{value:Q.value})]}),S("pre",{dir:"ltr",className:"cortex-debug-tool__pre",children:S("code",{className:"hljs",dangerouslySetInnerHTML:{__html:u1(Q.value,Q.lang)}})})]},Q.key)),!!N&&n("div",{className:"cortex-debug-tool__section",children:[n("div",{className:"cortex-debug-tool__section-bar",children:[S("span",{className:"cortex-debug-tool__section-label",children:$("translate_input")}),S("span",{className:"cortex-debug-tool__section-lang",children:"json"}),S(j,{value:Y})]}),S("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:S(a,{data:N,expandDepth:2})})]}),S(f6,{toolCallPart:_})]})]})}import{useEffect as q8,useRef as F8,useState as m6}from"react";import{jsx as w_,jsxs as x6}from"react/jsx-runtime";function I_({activity:_,className:$}){let{t:X}=B(),N=z1(_),[Y,Q]=m6(0),[Z,G]=m6("idle"),J=F8(N.length);return J.current=N.length,q8(()=>{let z,V;function W(){z=setTimeout(()=>{G("exiting"),z=setTimeout(()=>{Q((U)=>(U+1)%J.current),G("enter-start"),V=requestAnimationFrame(()=>{G("entering"),z=setTimeout(()=>{G("idle"),W()},300)})},300)},2000)}return W(),()=>{if(z)clearTimeout(z);if(V)cancelAnimationFrame(V)}},[]),x6("div",{className:q("cortex-subtle-activity",$),children:[x6("div",{className:"cortex-subtle-activity__dots",children:[w_("span",{className:"cortex-subtle-activity__dot"}),w_("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d1"}),w_("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d2"})]}),w_("div",{className:"cortex-subtle-activity__label-mask",children:w_("span",{className:q("cortex-subtle-activity__label",`cortex-subtle-activity__label--${Z}`),children:X(N[Y])})})]})}import{useEffect as p6,useRef as $0,useState as l6}from"react";import{useEffect as c6,useRef as n_,useState as h6}from"react";import{jsx as w,jsxs as x}from"react/jsx-runtime";function u6({toolCallPart:_,setOutput:$}){let{t:X}=B(),{state:N,id:Y,input:Q}=_;if(N==="complete"||N==="error"){let Z=E1(_.output);return Z?w(L8,{position:Z}):x("div",{className:"cortex-tool-pill",children:[w("span",{className:"cortex-tool-pill__icon",children:w("svg",{className:q("cortex-tool-pill__svg cortex-tool-pill__svg--visible",N==="error"&&"cortex-tool-pill__svg--error"),viewBox:"0 0 20 20",fill:"none",children:w("path",{d:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}),w("span",{className:"cortex-tool-pill__title",children:X("translate_location_not_shared")})]})}if(N!=="input-complete")return null;return w(U8,{center:A1(Q),submit:$},Y)}function U8({center:_,submit:$}){let{t:X}=B(),N=n_(null),Y=n_(void 0),[Q,Z]=h6(S_),G=n_({center:_,submit:$});G.current={center:_,submit:$},c6(()=>{let z=N.current;if(!z)return;let V=O1(z,{center:G.current.center,onState:Z,submit:(W)=>G.current.submit(W)});return Y.current=V,V.start(),()=>{if(V.dispose(),Y.current===V)Y.current=void 0}},[]);let J=y1(Q);return x("div",{className:"cortex-location-input",children:[x("div",{className:"cortex-location-input__map",children:[w("div",{className:"cortex-location-input__canvas",ref:N}),w("button",{type:"button",className:"cortex-location-input__locate","aria-label":X("translate_location_locate"),title:X("translate_location_locate"),disabled:Q.locating||Q.submitting,onClick:()=>Y.current?.locate(),children:w(k8,{})})]}),x("div",{className:"cortex-location-input__foot",children:[Q.position&&!Q.deliveryFailed?w("span",{className:"cortex-location-input__coords",children:v_(Q.position)}):x("span",{className:q("cortex-location-input__hint",J.failed&&"cortex-location-input__hint--failed"),children:[Q.locating&&w("span",{className:"cortex-location-input__spinner"}),X(J.key)]}),x("span",{className:"cortex-location-input__actions",children:[w("button",{type:"button",className:"cortex-location-input__skip",disabled:Q.submitting,onClick:()=>Y.current?.cancel(),children:X("translate_location_skip")}),w("button",{type:"button",className:"cortex-location-input__send",disabled:!Q.position||Q.submitting,onClick:()=>Y.current?.confirm(),children:X("translate_location_send")})]})]})]})}function L8({position:_}){let{t:$}=B(),X=n_(null),[N,Y]=h6(!1),{lat:Q,lng:Z}=_;return c6(()=>{let G=X.current;if(!G)return;return Y(!1),P1(G,{lat:Q,lng:Z},()=>Y(!0))},[Q,Z]),x("div",{className:"cortex-location-input cortex-location-input--settled",children:[x("div",{className:"cortex-location-input__map cortex-location-input__map--still",children:[w("div",{className:"cortex-location-input__canvas",ref:X,hidden:N}),N&&w("span",{className:"cortex-location-input__still-failed",children:$("translate_location_map_failed")})]}),x("div",{className:"cortex-location-input__body",children:[x("span",{className:"cortex-location-input__title",children:[w("svg",{viewBox:"0 0 20 20",fill:"none",children:w("path",{d:"M5.5 10.5 L8.5 13.5 L14.5 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),$("translate_location_shared")]}),w("span",{className:"cortex-location-input__coords",children:v_(_)})]})]})}function k8(){return x("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:[w("circle",{cx:"10",cy:"10",r:"5.5"}),w("circle",{cx:"10",cy:"10",r:"1.6",fill:"currentColor",stroke:"none"}),w("path",{d:"M10 1.5v3M10 15.5v3M1.5 10h3M15.5 10h3"})]})}import{jsx as y,jsxs as W_}from"react/jsx-runtime";var M8=new Map([[k0,u6]]);function d6({message:_,toolCallPart:$,agentWorking:X}){let{config:N,addToolResult:Y}=B(),Q=$.state==="input-complete"&&!X,Z=$.state==="approval-requested"&&!X,G=N.toolComponents?.[$.name]??(Q||m($.state)?M8.get($.name):void 0);return y("div",{className:"cortex-tool-call-animated",children:G?y(G,{toolCallPart:$,message:_,setOutput:(J)=>Y($.id,$.name,J)}):Q?y(O8,{toolCallPart:$}):y(n6,{toolCallPart:$,asking:Z})})}function O8({toolCallPart:_}){let{api:$,t:X,addToolResult:N,selectedThread:Y,config:Q}=B(),Z=Y?.id,[G,J]=l6({phase:"initiating"}),[z]=l6(Q.trustSameOriginEmbeds),V=$0(void 0),W=$0({api:$,addToolResult:N,toolName:_.name});if(W.current={api:$,addToolResult:N,toolName:_.name},p6(()=>{if(!Z)return;let L=k1({initiate:()=>W.current.api.initiateToolCall(Z,_.id),onState:J,submit:(k)=>W.current.addToolResult(_.id,W.current.toolName,k)});V.current=L,L.start();let F=(k)=>L.handleMessage(k);return window.addEventListener("message",F),()=>{if(window.removeEventListener("message",F),L.dispose(),V.current===L)V.current=void 0}},[_.id,Z]),!Z||G.phase==="unavailable"||G.phase==="settling")return y(n6,{toolCallPart:_});let U=W_("div",{className:"cortex-client-tool-embed",children:[W_("div",{className:"cortex-client-tool-embed__bar",children:[y("span",{children:X("translate_client_tool_title")}),y("button",{type:"button",className:"cortex-client-tool-embed__cancel",onClick:()=>V.current?.cancel(),children:X("translate_client_tool_cancel")})]}),G.phase==="embedded"?y("iframe",{className:"cortex-client-tool-embed__frame",src:G.embedUrl,sandbox:F1(G.embedUrl,window.location.origin,z),title:X("translate_client_tool_title"),ref:(L)=>V.current?.setSource(L?.contentWindow),onLoad:(L)=>{if(!U1(G.embedUrl,window.location.origin,z)&&L1(L.currentTarget,window.location.origin))V.current?.terminate()}}):G.phase==="error"?W_("div",{className:"cortex-client-tool-embed__status",children:[y("span",{children:X("translate_client_tool_failed")}),y("button",{type:"button",className:"cortex-client-tool-embed__retry",onClick:()=>void V.current?.start(),children:X("translate_client_tool_retry")})]}):y("div",{className:"cortex-client-tool-embed__status",children:X("translate_client_tool_loading")})]});return G.phase==="embedded"&&G.surface==="modal"?y(P8,{label:X("translate_client_tool_title"),onCancel:()=>V.current?.cancel(),children:U}):U}function P8({label:_,onCancel:$,children:X}){let N=$0(null);return p6(()=>{let Y=N.current;return Y?.showModal(),()=>Y?.close()},[]),y("dialog",{ref:N,className:"cortex-client-tool-embed-dialog","aria-label":_,onCancel:(Y)=>{Y.preventDefault(),$()},children:X})}function n6({toolCallPart:_,asking:$=!1}){let{t:X,locale:N,respondToApproval:Y}=B(),{state:Q,active:Z,gated:G,titleKey:J,statement:z,rowCount:V}=q_(_),W=D0(_);return W_("div",{className:q("cortex-tool-pill",G&&"cortex-tool-pill--gated",$&&"cortex-tool-pill--asking"),children:[W_("span",{className:"cortex-tool-pill__icon",children:[$&&y("span",{className:"cortex-tool-pill__dot"}),y("span",{className:q("cortex-tool-pill__spinner",Z&&"cortex-tool-pill__spinner--visible")}),y("svg",{className:q("cortex-tool-pill__svg","cortex-tool-pill__svg--check",Q==="complete"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:y("path",{d:"M5.5 10.5 L8.5 13.5 L14.5 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),y("svg",{className:q("cortex-tool-pill__svg","cortex-tool-pill__svg--error",Q==="error"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:y("path",{d:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]}),y("span",{className:q("cortex-tool-pill__title",Q==="error"&&"cortex-tool-pill__title--error",Q==="starting"&&z&&"cortex-tool-pill__title--pending"),children:$?J1(_,N)??X("translate_approval_prompt"):z??X(J)}),V!==void 0&&y("span",{className:"cortex-tool-pill__meta",children:X("translate_rows_read",{count:V})}),$&&W_("span",{className:"cortex-tool-pill__actions",children:[y("button",{type:"button",className:"cortex-tool-pill__action cortex-tool-pill__action--approve",onClick:()=>void Y(W,!0),children:X("translate_approve")}),y("button",{type:"button",className:"cortex-tool-pill__action",onClick:()=>void Y(W,!1),children:X("translate_deny")})]})]})}import{jsx as X0}from"react/jsx-runtime";function i6({message:_,toolCallPart:$,agentWorking:X}){if(!m($.state)&&!q_($).statement){if($.name==="queryGraph")return X0(I_,{activity:"graph"});if($.name==="executeCode")return X0(I_,{activity:"code"})}return X0(d6,{toolCallPart:$,message:_,agentWorking:X})}import{jsx as D_,jsxs as A8}from"react/jsx-runtime";function r6(_){let{message:$,part:X,debugMode:N,animate:Y,streaming:Q,agentWorking:Z,attachments:G}=_,{t:J}=B();function z(){switch(X.type){case"text":return D_(T6,{textPart:X,role:$.role,streaming:Q,attachments:G});case"thinking":return N?D_(w6,{reasoningPart:X,streaming:Q}):D_(I_,{activity:"reasoning",className:"cortex-reasoning-animated"});case"tool-call":return N?D_(g6,{toolCallPart:X}):D_(i6,{toolCallPart:X,message:$,agentWorking:Z});default:return A8("p",{className:"cortex-unhandled-type",children:[J("translate_unhandled_type")," ",X.type]})}}return D_("div",{className:q("cortex-message-part",Y&&"cortex-message-part--animated"),children:z()})}import{jsx as i,jsxs as N0}from"react/jsx-runtime";function y8({isUser:_,clipboardText:$,createdAt:X}){let{locale:N}=B();return N0("div",{className:q("cortex-message-actions",_&&"cortex-message-actions--user"),children:[$&&i(j,{value:$}),X&&i("time",{className:"cortex-message-actions__time",dateTime:X,children:u(X,N)})]})}function R8({count:_,animate:$,onOpen:X}){let{t:N}=B();return i("button",{type:"button",className:q("cortex-tool-fold",$&&"cortex-message-part--animated"),onClick:X,children:N(P_(_,"translate_one_more_step","translate_n_more_steps"),{count:_})})}function o6(_){let{message:$,parts:X,metadata:N,debugMode:Y,animate:Q,isStreaming:Z,agentWorking:G,closesTurn:J,fold:z,onOpenRun:V}=_,W=$.role==="assistant",U=$.role==="user",L=Z?X.length-1:-1,F=N?.attachments??[],k=X.map((K)=>K.type).lastIndexOf("text"),M=(U||W)&&!Z&&k>=0,H=k<X.length-1?k:-1,D=M&&i(y8,{isUser:U,clipboardText:V1(X),createdAt:N?.createdAt});return N0("div",{className:"cortex-message-parts",children:[X.map((K,O)=>{let C=z?.get(K);return N0(E8,{children:[i(r6,{part:K,message:$,debugMode:Y,animate:Q,streaming:O===L,agentWorking:G,attachments:F}),C?.kind==="more"&&i(R8,{count:C.count,animate:Q,onOpen:()=>V(C.runId)}),O===H&&D]},$.parts.indexOf(K))}),F.length>0&&i(L6,{attachments:F,isUser:U}),N?.isAborted&&i(F6,{}),H===-1&&D,Y&&N&&J&&i(R6,{messageId:$.id,isAssistant:W,metadata:N})]})}import{jsx as X_,jsxs as Y0}from"react/jsx-runtime";function a6({firing:_,debugMode:$}){let{t:X,locale:N}=B();return Y0("div",{className:q("cortex-trigger-block",$&&"cortex-trigger-block--debug"),children:[Y0("div",{className:"cortex-trigger-block__head",children:[X_("svg",{className:"cortex-trigger-block__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:X_("path",{d:"M6.75 1 2.5 6.75h3l-.25 4.25L9.5 5.25h-3z",fill:"currentColor"})}),$&&X_("span",{children:X("translate_trigger_fired")}),X_("span",{className:"cortex-trigger-block__name",children:_.name}),X_("time",{className:"cortex-trigger-block__time",dateTime:_.firedAt,children:u(_.firedAt,N)})]}),$&&Y0("details",{className:"cortex-trigger-block__payload",children:[X_("summary",{children:X("translate_trigger_payload")}),X_(a,{data:_.payload,expandDepth:2})]})]})}import{jsx as b_}from"react/jsx-runtime";var t6=w8(function($){let{message:X,metadata:N,isStreaming:Y,agentWorking:Q,closesTurn:Z,debugMode:G,animate:J,fold:z,onOpenRun:V}=$,W=F_(X.parts,{debugMode:G,isStreaming:Y,fold:z});if(N?.trigger)return b_("div",{className:"cortex-message",children:b_(a6,{firing:N.trigger,debugMode:G})});if(W.length===0&&!N?.attachments?.length)return b_("div",{className:"cortex-message"});return b_("div",{className:"cortex-message",children:b_(o6,{message:X,parts:W,metadata:N,debugMode:G,animate:J,isStreaming:Y,agentWorking:Q,closesTurn:Z,fold:z,onOpenRun:V})})});import{jsx as i_}from"react/jsx-runtime";var I8=[{role:"user",lines:[13,9]},{role:"assistant",lines:[16,18,12]},{role:"user",lines:[11]},{role:"assistant",lines:[14,15]}];function s6(){return i_("div",{className:"cortex-widget__messages-skeleton",children:I8.map((_,$)=>i_("div",{className:`cortex-widget__msg-skel cortex-widget__msg-skel--${_.role}`,children:i_("div",{className:`cortex-widget__msg-skel-bubble cortex-widget__msg-skel-bubble--${_.role}`,children:_.lines.map((X)=>i_("div",{className:"cortex-skeleton cortex-widget__msg-skel-line",style:{width:`${X}rem`}},X))})},$))})}import{jsx as N_,jsxs as f8,Fragment as T8}from"react/jsx-runtime";function C8(_){let $=C_(null),X=C_(null),N=C_(!0),Y=C_(!0),Q=C_(!1),Z=r_(()=>{if(Q.current)return;Q.current=!0,queueMicrotask(()=>{Q.current=!1;let V=$.current;if(!V)return;V.scrollTop=V.scrollHeight,Y.current=!0,N.current=!1})},[]);o_(()=>{let V=X.current;if(!_||!$.current||!V)return;if(Z(),typeof ResizeObserver>"u")return;let W=0,U=new ResizeObserver(([L])=>{let F=L?.contentRect.height??0,k=F>W;if(W=F,k&&(N.current||Y.current))Z()});return U.observe(V),()=>U.disconnect()},[_,Z]);let G=r_(()=>{N.current=!0},[]),J=r_(()=>{if(N.current)Z()},[Z]);function z(){let V=$.current;if(V)Y.current=V.scrollHeight-V.scrollTop-V.clientHeight<100}return{containerRef:$,contentRef:X,onScroll:z,pin:G,settlePinned:J}}function S8({pin:_,settlePinned:$},X,N){let[Y,Q]=Q0(!1);o_(()=>{Q(!1),_(),queueMicrotask(()=>Q(!0))},[X,_]);let Z=N[N.length-1],G=Z?.role==="user"?Z.id:void 0;return o_(()=>{if(G)_()},[G,_]),o_(()=>{$()},[N,$]),Y}function v8(_,$,X){let{config:N}=B(),[Y,Q]=Q0(new Set),Z=r_((V)=>Q((W)=>new Set(W).add(V)),[]),[G]=Q0(W1),J=N.toolComponents;return{folds:b8(()=>G(_,{agentWorking:$,debugMode:X,opened:Y,foldable:(V)=>!J?.[V.name]}),[G,_,$,X,Y,J]),openRun:Z}}function e6(_){let{selectedThread:$}=B(),{messages:X,isAgentWorking:N,isLoadingMessages:Y,hasPendingToolCalls:Q}=x_(),{capabilities:Z,composerRef:G}=_,J=!Y||N,z=C8(J),V=S8(z,$?.id,X),W=N?K1(X)?.id:void 0,{folds:U,openRun:L}=v8(X,N,_.debugMode);return f8(T8,{children:[!J?N_(s6,{}):N_("div",{className:_.className,children:N_("div",{ref:z.containerRef,className:"cortex-message-list",onScroll:z.onScroll,children:N_("div",{ref:z.contentRef,className:"cortex-message-list__content",children:X.map((F,k)=>N_(t6,{message:F,metadata:F.metadata,isStreaming:F.id===W,agentWorking:N,fold:U.get(F.id),onOpenRun:L,closesTurn:F.role==="assistant"&&X[k+1]?.role!=="assistant",debugMode:_.debugMode,animate:V},F.id))})})}),N&&!Q&&N_(B6,{}),!Q&&N_(c_,{capabilities:Z,composerRef:G})]})}import{jsx as a_,jsxs as j8}from"react/jsx-runtime";function _2(_){let{debugMode:$,selectedThread:X}=B(),{screens:N}=_;return j8("div",{className:q("cortex-widget__screen",N.screen==="chat"&&"cortex-widget__screen--active",N.screen!=="chat"&&"cortex-widget__screen--right"),children:[a_(N6,{onToggleSidebar:N.toggleSidebar,onToggleDebug:_.onToggleDebug,onOpenHistory:N.openHistory}),X?a_(e6,{className:"cortex-widget__messages",debugMode:$,capabilities:_.capabilities,composerRef:_.composerRef}):a_(D6,{onThreadSelected:_.onThreadSelected}),a_("div",{className:"cortex-widget__sidebar-backdrop",onClick:N.closeSidebar})]})}import{useState as h8}from"react";import{useEffect as Z0,useRef as Y2,useState as G0}from"react";import{useChat as c8}from"@tanstack/ai-react";import{useEffect as g8,useLayoutEffect as m8,useState as x8}from"react";function $2(_,{sessionRef:$,pendingSendRef:X}){let[N]=x8(_);return m8(()=>{return $.current=N,()=>{if($.current===N)$.current=void 0}},[N,$]),g8(()=>{if(!X.current.length)return;let Y=setTimeout(()=>{let Q=X.current;X.current=[],(async()=>{for(let{prompt:Z,attachments:G}of Q)await N.send(Z,G)})()});return()=>clearTimeout(Y)},[N,X]),N}import{useRef as X2}from"react";function N2(_){let $=X2(_);$.current=_;let X=X2(Promise.resolve(void 0));async function N(Y){let Q=$.current;if(!Q.isAlive()||Y!==Q.threadId)return;return H1({api:Q.api,threadId:Y,isStale:()=>!$.current.isAlive(),isStreaming:()=>$.current.isStreaming(),setMessages:(Z)=>$.current.setMessages(Z)})}return function(Q){return X.current=X.current.then(()=>N(Q)),X.current}}function Q2(_){let{thread:$,api:X}=_,N=Y2(!0),[Y,Q]=G0(!1),Z=Y2(null),G=N2({api:X,threadId:$.id,isAlive:()=>N.current,isStreaming:()=>Z.current.chat.isLoading,setMessages:(D)=>Z.current.chat.setMessages(D)}),[J]=G0(()=>o1({threadId:$.id,isAlive:()=>N.current,onToolCall:()=>Z.current.props.configRef.current.hooks?.onToolCall,deliver:(D)=>Z.current.chat.addToolResult(D),setRunning:(D)=>Z.current.props.setRunning($.id,D),reloadThreads:()=>Z.current.props.reloadThreads(),refreshMessages:()=>G($.id),onTurnFinished:()=>Z.current.props.onTurnFinished(),onSendFailed:()=>Z.current.props.onSendFailed()})),[z]=G0(()=>D1({api:X,thread:{id:$.id,isRunning:$.isRunning},mode:_.mode,localMessages:()=>Z.current.chat.messages,onHydrated:(D)=>{if(N.current)J.hydrated(D,$.isRunning)},onTranscriptCarried:(D)=>{if(N.current)J.transcriptCarried(D)},setLoadingMessages:(D)=>{if(N.current)Q(D)}})),V=c8({threadId:$.id,persistence:!0,initialMessages:_.initialMessages,connection:z,onChunk:()=>{if(N.current)J.chunkArrived()},onError:()=>{if(N.current)J.streamFailed()}});Z.current={chat:V,props:_};async function W(D,K){J.sendStarted();let O={id:U_(),role:"user",parts:[{type:"text",content:D}],metadata:{createdAt:new Date().toISOString(),attachments:K}};await Z.current.chat.append(O)}async function U(){if(!Z.current.chat.isLoading)return;let{aborted:D}=await X.abortStream($.id).catch(()=>({aborted:!1}));if(!N.current)return;if(D)J.abortConfirmed();Z.current.chat.stop()}function L(D,K,O){return Z.current.chat.addToolResult({toolCallId:D,tool:K,output:O}).catch((C)=>{throw G($.id),C})}function F(D,K){return M1(Z.current.chat,D,K)}function k(D){if(Z.current.chat.isLoading)return;if(D.isRunning){Z.current.props.remount(D,Z.current.chat.messages);return}G(D.id)}Z0(()=>{return N.current=!0,()=>{N.current=!1}},[]),$2(()=>({threadId:$.id,send:W,abort:U,addToolResult:L,respondToApproval:F,reattach:k,transcriptUpdated:(D,K)=>{if(D===$.id)J.transcriptUpdated(K)}}),{sessionRef:_.sessionRef,pendingSendRef:_.pendingSendRef});let{messages:M,isLoading:H}=V;return Z0(()=>{J.loadingChanged(H,()=>Z.current.chat.messages)},[J,H]),Z0(()=>{Z.current.props.publish({messages:M,isAgentWorking:H,isLoadingMessages:Y,hasPendingToolCalls:!H&&r(M).length>0})},[M,H,Y]),null}import{jsx as Z2,jsxs as u8}from"react/jsx-runtime";function G2({selection:_,threads:$,children:X,...N}){let{session:Y}=_,[Q,Z]=h8();if(!Y)return Z2(m_.Provider,{value:g_,children:X});let G=`${Y.thread.id}:${Y.epoch}`,J=Q&&(Q.key===G||Y.mode==="reload")?Q.value:g_;return u8(m_.Provider,{value:J,children:[Z2(Q2,{thread:Y.thread,mode:Y.mode,initialMessages:Y.initialMessages,setRunning:$.setRunning,reloadThreads:$.reload,remount:_.remount,publish:(z)=>Z({key:G,value:z}),...N},G),X]})}import{jsx as A,jsxs as c,Fragment as l8}from"react/jsx-runtime";function J2(_){let{locale:$,t:X,threads:N,selectedThread:Y,deleteThread:Q}=B(),Z=N?.length??0;return c("div",{className:_.className,children:[c("div",{className:"cortex-widget__threads-header",children:[A("button",{type:"button",onClick:()=>_.onBackRequested(),"aria-label":X("translate_back"),className:"cortex-widget__back-btn",children:A("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"cortex-widget__back-icon",children:A("path",{d:"M10 3L5 8l5 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),c("div",{children:[A("h2",{className:"cortex-widget__threads-title",children:X("translate_history")}),A("p",{className:"cortex-widget__threads-count",children:X(P_(Z,"translate_one_conversation","translate_n_conversations"),{count:Z})})]}),c("button",{onClick:()=>_.onNewChatRequested(),className:"cortex-widget__new-chat-btn",children:[A("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:A("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),X("translate_new")]})]}),A("div",{className:"cortex-widget__threads-list",children:N===void 0?[1,2,3,4].map((G)=>c("div",{className:"cortex-widget__thread-skeleton",children:[A("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-icon"}),A("div",{className:"cortex-widget__thread-skeleton-lines",children:A("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-line",style:{width:`${40+G*12}%`}})})]},G)):c(l8,{children:[N.map((G)=>{let J=G.id===Y?.id,z=u(G.updatedAt,$);return c("button",{onClick:()=>_.onThreadSelected(G),className:q("cortex-widget__thread-item",J&&"cortex-widget__thread-item--active"),children:[A("div",{className:q("cortex-widget__thread-icon",J&&"cortex-widget__thread-icon--active"),children:A("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:A("path",{d:I.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),c("div",{className:"cortex-widget__thread-info",children:[c("div",{className:"cortex-widget__thread-title-row",children:[A("p",{className:q("cortex-widget__thread-title",J&&"cortex-widget__thread-title--active"),children:G.title??X("translate_untitled")}),G.isRunning&&c("span",{className:q("cortex-widget__thread-running",J&&"cortex-widget__thread-running--active"),children:[A("span",{className:"cortex-widget__thread-running-dot"}),X("translate_running")]})]}),z&&A("p",{className:"cortex-widget__thread-time",children:z})]}),A("span",{role:"button",tabIndex:0,onClick:(V)=>{V.stopPropagation(),Q(G.id)},onKeyDown:(V)=>{if(V.key!=="Enter"&&V.key!==" ")return;V.preventDefault(),V.stopPropagation(),Q(G.id)},className:q("cortex-widget__thread-delete",J&&"cortex-widget__thread-delete--active"),children:A("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:A("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),A("svg",{className:q("cortex-widget__thread-arrow",J&&"cortex-widget__thread-arrow--active"),width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:A("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},G.id)}),!N.length&&c("div",{className:"cortex-widget__threads-empty",children:[A("div",{className:"cortex-widget__threads-empty-icon",children:A("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__threads-empty-svg",children:A("path",{d:I.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),A("p",{className:"cortex-widget__threads-empty-title",children:X("translate_no_threads_yet")}),A("p",{className:"cortex-widget__threads-empty-subtitle",children:X("translate_start_a_new_conversation")}),A("button",{onClick:()=>_.onNewChatRequested(),className:"cortex-widget__new-chat-btn cortex-widget__new-chat-btn--empty-state",children:X("translate_new_chat")})]})]})})]})}import{jsx as V2,jsxs as p8}from"react/jsx-runtime";function z2(_){_.preventDefault()}function K2(_){let{screens:$}=_;return V2("div",{className:q("cortex-widget",_.className),"data-cortex-theme":_.theme,children:p8("div",{className:q("cortex-widget__container",_.viewMode==="full"&&"cortex-widget__container--full",$.sidebarOpen&&"cortex-widget__container--sidebar-open"),onDragOver:z2,onDrop:z2,children:[V2(J2,{className:q("cortex-widget__screen",$.screen==="threads"&&"cortex-widget__screen--active",$.screen!=="threads"&&"cortex-widget__screen--left"),onThreadSelected:_.onThreadSelected,onNewChatRequested:_.onNewChat,onBackRequested:$.closeHistory}),_.children]})})}import{jsx as s_}from"react/jsx-runtime";function n8({config:_,className:$}){let X=W2(_);X.current=_;let[N]=t_(()=>Y1(()=>X.current.transport)),Y=e0(N),[Q,Z]=t_(!1),[G,J]=t_();d8(()=>h1(_.theme,J),[_.theme]);let z=$6(),[V,W]=t_(0),U=l0(N,V),L=W2(null),F=o0({api:N,threads:Y,getHooks:()=>X.current.hooks}),{sessionRef:k,selection:M,queue:H,send:D,pendingSendRef:K}=F,{selected:O,selectedRef:C}=M,T=t0({threads:Y,selectedRef:C,sessionRef:k,deselect:M.deselect,onReconnect:()=>W((e)=>e+1)});a0({getConfig:()=>X.current,onEvent:T.onEvent,onMount:()=>void Y.reload(),onReconnect:T.onReconnect});let Y_=l1(_.locale),D2={config:_,locale:Y_,t:(e,U2)=>p1(Y_,e,U2),api:N,debugMode:Q,scheme:G,capabilities:U,threads:Y.threads,selectedThread:O,deleteThread:F.deleteThread,send:D,...s0(k),queue:H.value};function H2(){H.store.discardConsumed(),setTimeout(()=>L.current?.focusInput())}function B2(){H.store.restoreConsumed(C.current?.id)}function J0(e){F.openThread(e),z.showChat()}function q2(){M.deselect(),z.showChat()}function F2(){Z((e)=>!e)}return s_(a1.Provider,{value:D2,children:s_(K2,{className:$,theme:_.theme,viewMode:_.viewMode??"helper",screens:z,onThreadSelected:J0,onNewChat:q2,children:s_(G2,{selection:M,threads:Y,api:N,configRef:X,sessionRef:k,pendingSendRef:K,onTurnFinished:H2,onSendFailed:B2,children:s_(_2,{screens:z,capabilities:U,composerRef:L,onToggleDebug:F2,onThreadSelected:J0})})})})}export{n8 as CortexChatWidget};
package/dist/styles.css CHANGED
@@ -1454,6 +1454,15 @@ cortex-llm-usage-chips {
1454
1454
  border-radius: calc(var(--cortex-radius) * 0.75);
1455
1455
  }
1456
1456
 
1457
+ .cortex-stream-fade {
1458
+ animation: cortex-stream-fade 300ms ease-out;
1459
+ }
1460
+
1461
+ @keyframes cortex-stream-fade {
1462
+ from {
1463
+ opacity: 0;
1464
+ }
1465
+ }
1457
1466
  .cortex-media-block {
1458
1467
  margin: 0.75em 0;
1459
1468
  border: 1px solid var(--cortex-color-border);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m6d/cortex-react",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "React chat widget SDK for cortex servers",
5
5
  "license": "MIT",
6
6
  "sideEffects": [