@m6d/cortex-react 0.15.1 → 0.16.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/README.md CHANGED
@@ -22,7 +22,7 @@ export function Chat() {
22
22
  }
23
23
  ```
24
24
 
25
- `baseUrl` is the agent's URL: the engine's public origin (`ENGINE_PUBLIC_URL`) plus `/agents/<agent slug>`. Add the page's origin to `ENGINE_CORS_ORIGINS`, or proxy the engine under your own origin as the samples do. The WebSocket URL is `baseUrl` plus `/ws`; set `wsUrl` only to override it, and point it at that same agent-scoped path. The bearer is the end user's token, which Cortex verifies the way the agent's auth says: a JWKS, a shared secret, or the agent's server. For an anonymous agent, leave `getHeaders` out: the widget signs in as a visitor, and Cortex gives the browser an ID it keeps in local storage. When the agent checks visitors with reCAPTCHA Enterprise, the widget loads Google's script with the agent's site key and runs the check invisibly. The widget hides the badge Google draws for the agent's site key, and Google's terms then ask your page to show its reCAPTCHA attribution. A badge your page draws for its own key stays.
25
+ `baseUrl` is the agent's URL: the engine's public origin (`ENGINE_PUBLIC_URL`) plus `/agents/<agent name>`. Add the page's origin to `ENGINE_CORS_ORIGINS`, or proxy the engine under your own origin as the samples do. The WebSocket URL is `baseUrl` plus `/ws`; set `wsUrl` only to override it, and point it at that same agent-scoped path. The bearer is the end user's token, which Cortex verifies the way the agent's auth says: a JWKS, a shared secret, or the agent's server. For an anonymous agent, leave `getHeaders` out: the widget signs in as a visitor, and Cortex gives the browser an ID it keeps in local storage. When the agent checks visitors with reCAPTCHA Enterprise, the widget loads Google's script with the agent's site key and runs the check invisibly. The widget hides the badge Google draws for the agent's site key, and Google's terms then ask your page to show its reCAPTCHA attribution. A badge your page draws for its own key stays.
26
26
 
27
27
  Each widget is self-contained, so one page can render several widgets with different configs. `className` sizes the widget's root element.
28
28
 
@@ -33,12 +33,11 @@ Each widget is self-contained, so one page can render several widgets with diffe
33
33
  | Property | Type | Description |
34
34
  | -------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------- |
35
35
  | `locale` | `'en' \| 'ar'` | Active locale; the widget lays out in its direction (default: `'en'`) |
36
- | `transport.baseUrl` | `string \| () => string` | The agent's URL, `<engine origin>/agents/<slug>` |
36
+ | `transport.baseUrl` | `string \| () => string` | The agent's URL, `<engine origin>/agents/<name>` |
37
37
  | `transport.getHeaders?` | `() => Headers \| Promise<Headers>` | Request headers provider; `Headers` is `Record<string, string>` |
38
38
  | `wsUrl` | `string \| false` | WebSocket URL override; `false` disables the socket (optional) |
39
39
  | `viewMode` | `'helper' \| 'full'` | Compact panel or full layout with a sidebar (default: `'helper'`) |
40
40
  | `theme` | `'light' \| 'dark' \| 'system'` | Color scheme (default: `'light'`) |
41
- | `agentName` | `string \| { en, ar }` | Header title while no thread is selected (optional) |
42
41
  | `thread` | `string` | A thread id to open on mount (optional) |
43
42
  | `mediaRenderers` | `Record<string, MediaRenderer>` | Replace or add the media fences the assistant can draw (optional) |
44
43
  | `trustSameOriginEmbeds` | `boolean` | Allow embedded tool pages served from this page's own origin (default: `false`) |
@@ -69,7 +68,7 @@ function Header(chat: CortexHeaderContext) {
69
68
  return (
70
69
  <div className="cortex-widget__chat-header">
71
70
  <div className="cortex-widget__chat-title-wrap">
72
- <p className="cortex-widget__chat-title">{chat.title ?? chat.agentName}</p>
71
+ <p className="cortex-widget__chat-title">{chat.title}</p>
73
72
  </div>
74
73
  <button className="cortex-widget__header-btn" onClick={chat.newChat}>
75
74
  +
@@ -114,8 +113,7 @@ One header serves both screens; `screen` says which is showing.
114
113
  | -------------- | --------------------- | -------------------------------------------------------------------- |
115
114
  | `screen` | `'chat' \| 'threads'` | Which screen the header is on |
116
115
  | `viewMode` | `'helper' \| 'full'` | The configured view mode |
117
- | `title` | `string \| null` | The open thread's title; `null` on a new chat |
118
- | `agentName` | `string \| undefined` | `agentName` in the widget's locale |
116
+ | `title` | `string` | The open thread's title, else the agent's display name or "New Chat" |
119
117
  | `threadCount` | `number \| undefined` | How many conversations the history lists; undefined while it loads |
120
118
  | `isWorking` | `boolean` | The agent is answering |
121
119
  | `debug` | `{ shown, on }` | Whether Cortex offers the debug view, and whether it is on |
package/dist/index.d.ts CHANGED
@@ -71,8 +71,6 @@ export type MediaRenderContext = {
71
71
  */
72
72
  export type MediaRenderer = (host: HTMLElement, source: string, context: MediaRenderContext) => Promise<() => void>;
73
73
  export type MediaRenderers = Partial<Record<string, MediaRenderer>>;
74
- /** One value for every locale, or a map keyed by locale ('en', 'ar'). */
75
- export type Localized<T> = T | Partial<Record<Locale, T>>;
76
74
  export type CortexViewMode = "helper" | "full";
77
75
  export type CortexTheme = "light" | "dark" | "system";
78
76
  export type CortexToolCallContext = {
@@ -120,12 +118,6 @@ export type CortexConfig = {
120
118
  * fence tag; `map` swaps the built-in Leaflet map for another provider.
121
119
  */
122
120
  mediaRenderers?: MediaRenderers;
123
- /**
124
- * Chat header title while no thread is selected; defaults to a localized
125
- * "New Chat". Like the other copy props, either one value for every locale
126
- * or a map keyed by locale (`{ en: 'Support', ar: 'الدعم' }`).
127
- */
128
- agentName?: Localized<string>;
129
121
  /**
130
122
  * A thread to open when the widget mounts, by id, once the thread list holds
131
123
  * it: a deep link into one conversation, such as the console's inspector.
@@ -151,10 +143,11 @@ export type CortexConfig = {
151
143
  export type CortexHeaderContext = {
152
144
  screen: "chat" | "threads";
153
145
  viewMode: CortexViewMode;
154
- /** The open thread's title; null on a new chat. */
155
- title: string | null;
156
- /** `agentName` in the widget's locale. */
157
- agentName: string | undefined;
146
+ /**
147
+ * The open thread's title, else the agent's display name in the widget's
148
+ * locale, else the built-in "New Chat"; empty while the handshake is out.
149
+ */
150
+ title: string;
158
151
  /** How many conversations the history lists; undefined while the first load is out. */
159
152
  threadCount: number | undefined;
160
153
  isWorking: boolean;
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
- var o8=Object.create;var{getPrototypeOf:a8,defineProperty:K4,getOwnPropertyNames:s8}=Object;var t8=Object.prototype.hasOwnProperty;var k_=(_,$,Q)=>{Q=_!=null?o8(a8(_)):{};let Z=$||!_||!_.__esModule?K4(Q,"default",{value:_,enumerable:!0}):Q;for(let J of s8(_))if(!t8.call(Z,J))K4(Z,J,{get:()=>_[J],enumerable:!0});return Z};var y_=((_)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(_,{get:($,Q)=>(typeof require<"u"?require:$)[Q]}):_)(function(_){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+_+'" is not supported')});import{useEffect as G3,useMemo as j8,useState as K3}from"react";var e8=["completed","cancelled","failed"],H1="requestLocation";function V4(_,$,Q){if($!==Q)return null;if(typeof _!=="object"||_===null)return null;let Z=_;if(Z.type!=="cortex:client-tool")return null;let J=e8.find((z)=>z===Z.status);if(!J)return null;let Y=Z.reference;return{type:"cortex:client-tool",status:J,...typeof Y==="string"?{reference:Y}:{},...Z.result!==void 0?{result:Z.result}:{}}}var h1=["en","ar"],W4=h1[0],q4={en:"ltr",ar:"rtl"};var p_=["image/png","image/jpeg","image/webp","application/pdf"],u1=10485760,_6=255,c1=5;function D4(_){if(!p_.some(($)=>$===_.type))return"type";if(_.size>u1)return"size";if(_.name.length>_6)return"name";return"ok"}var B4="cortex_visitor",N4=["executeCode","queryDataset","describeDataset"],$6="approvalTitle";function p1(_,$){if(!_||typeof _!=="object")return;let Q=Reflect.get(_,$);return typeof Q==="string"&&Q.trim()?Q.trim():void 0}function F4(_){return p1(_,$6)}function d1(_){return _.metadata?.cortex??void 0}function l1(_){return{..._,role:_.role==="trigger"?"user":_.role}}var H4="clientToolAnswers";function U4(_){return _.approval?.id??`approval_${_.id}`}function M4(_){return _.approval!==void 0||_.state==="approval-requested"}var i1="X-Cortex-Timezone",P4="X-Cortex-Operator",L4="X-Cortex-Inspect",Q6=["busy","approval_pending","budget","rate_limited"],N3=[...Q6,"invalid_payload","missing_thread_key","no_turn","no_output","invalid_output"];function R4(_){if(_>=500)return"lost";return _>=400?"refused":"persisted"}var Z6=new Set(["complete","error"]);function o(_){return Z6.has(_)}function M_(_){return(J6(_)?.parts??[]).filter((Q)=>Q.type==="tool-call"&&!o(Q.state))}function O4(_){for(let $=_.length-1;$>=0;$-=1){let Q=_[$];if(Q?.parts.some((J)=>J.type==="tool-call"&&J.state==="approval-requested"))return!0;if(Q?.role==="user")return!1}return!1}function n1(_){let $=_.at(-1);if($?.role!=="assistant")return;let Q=$.parts.at(-1),Z=Q?.type==="tool-call"||Q?.type==="tool-result",J=$.parts.every((Y)=>Y.type!=="tool-call"||o(Y.state));return Z&&J?void 0:$}function J6(_){for(let $=_.length-1;$>=0;$-=1){let Q=_[$];if(Q?.role==="assistant")return Q}return}var Y6={complete:"success",error:"error","approval-requested":"approval","approval-responded":"approval","awaiting-input":"pending","input-streaming":"pending","input-complete":"pending"},X6={"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 r1(_){let{state:$,approval:Q}=_;return{modifier:Y6[$],labelKey:Q?.approved===!1?"translate_declined":$==="approval-responded"&&Q?.approved?"translate_approved":X6[$],pulse:$==="awaiting-input"||$==="input-streaming"?"default":$==="approval-requested"?"violet":void 0}}function E4(_){let $=_.output;if($===void 0||$===null)return"";if(typeof $==="string")return $;return JSON.stringify($,null,2)}var A4={code:"javascript"};function o1(_){let $=_&&typeof _==="object"?_:null,Q=$?Object.entries(A4).flatMap(([J,Y])=>{let z=$[J];return typeof z==="string"?[{key:J,lang:Y,value:z.replace(/\\n/g,`
2
- `)}]:[]}):[],Z=_;if($){let J=Object.fromEntries(Object.entries($).filter(([Y])=>!Object.hasOwn(A4,Y)));Z=Object.keys(J).length>0?J:null}return{codeSnippets:Q,remainingInput:Z,remainingInputText:Z?JSON.stringify(Z,null,2):""}}var z6=10,G6={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function K6(_){let $=_.output;if(typeof $==="string")try{$=JSON.parse($)}catch{return}if(!$||typeof $!=="object")return;if("error"in $&&$.error===!0)return"failed";if(!d1(_)?.embed||!("status"in $))return;let Q=$.status;return Q==="failed"||Q==="cancelled"?Q:void 0}function V6(_){let $=_.output;if(!$||typeof $!=="object"||!("rowCount"in $))return;let Q=$.rowCount;return typeof Q==="number"?Q:void 0}function W6(_,$,Q){if(Q==="declined")return"translate_declined";if(Q==="cancelled")return"translate_tool_cancelled";if($==="error")return"translate_tool_error";if($==="approval")return"translate_needs_approval";return`translate_${_.name==="readAttachment"?"attachment":"tool"}_${$==="complete"?"done":"status"}`}function d_(_){let $=_.approval?.approved===!1?"declined":_.state==="complete"?K6(_):void 0,Q=$?"error":G6[_.state]??"processing";return{state:Q,active:Q==="starting"||Q==="processing",gated:M4(_),titleKey:W6(_,Q,$),statement:N4.some((Z)=>Z===_.name)?p1(_.input,"status"):void 0,rows:Q==="complete"?V6(_):void 0}}function a1(_){let $=_.approval?.approved,{state:Q,active:Z}=d_(_),J=$===void 0?_.state==="approval-requested"?"pending":"cancelled":!$?"declined":Q==="error"?"failed":"approved";return{title:F4(_.input),fallbackKey:"translate_approval_action",fallbackParams:{tool:D6(_.name)},decision:J,decisionKey:q6[J],state:Q,active:Z}}var q6={pending:void 0,approved:"translate_approved",declined:"translate_declined",failed:"translate_approved_failed",cancelled:"translate_approval_cancelled"};function D6(_){let $=_.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return $.charAt(0).toUpperCase()+$.slice(1)}function s1(_){return Array.from({length:z6},($,Q)=>`translate_${_}_${Q}`)}function l_(_,$){return _.filter((Q,Z)=>{if(Q.type==="tool-result")return!1;if($.debugMode)return!0;if(Q.type==="text"&&!Q.content.trim())return!1;let J=Z===_.length-1;return Q.type!=="thinking"||$.isStreaming&&J})}var B6=[H1];function k4(_){return B6.find(($)=>$===_)}function y4(_,$){let{consumerTools:Q,capabilities:Z}=$;if(Z?.messages!==!0&&!o(_.state))return;return Q&&Object.hasOwn(Q,_.name)?Q[_.name]:void 0}function S4(_,$){if(y4(_,$))return!1;return!k4(_.name)||!o(_.state)}function t1(_,$){let Q=d_(_),Z=$.capabilities?.messages===!0&&!$.agentWorking;if(_.state==="approval-requested"&&Z)return{kind:"approval",asking:!0};if($.debugMode)return{kind:"debug"};let J=y4(_,$);if(J)return{kind:"consumer",component:J};let Y=_.state==="input-complete"&&Z,z=Y||o(_.state)?k4(_.name):void 0;if(z)return{kind:"builtIn",component:$.builtInTools[z]};if(Y&&!$.embedUnavailable&&d1(_)?.embed)return{kind:"embed"};if(_.name==="executeCode"&&!o(_.state)&&!Q.statement)return{kind:"activity",activity:"code"};if(Q.gated)return{kind:"approval",asking:!1};return{kind:"pill"}}function e1(_){let $=_.approval?.id;switch(_.state){case"complete":return{kind:"output",text:E4(_)};case"error":return{kind:"error",text:E4(_)};case"approval-requested":return{kind:"approval",approvalId:$,labelKey:"translate_approval_requested",messageKey:"translate_waiting_for_approval"};case"approval-responded":return{kind:"approval",approvalId:$,labelKey:"translate_approval_response",messageKey:_.approval?.approved?"translate_tool_approved":"translate_tool_response_received"};default:return}}var _0=new WeakMap;function $0(_,$){let Q=_.closest(".cortex-widget__screen"),Z=Q?.querySelector(".cortex-message-list");if(!Q||!Z||!_.value.trim())return;let J=getComputedStyle(_),Y=_.getBoundingClientRect(),z=(X)=>parseFloat(J[`padding${X}`])+parseFloat(J[`border${X}Width`]);_0.set(Q,{text:$,textarea:_,from:new DOMRect(Y.left+z("Left"),Y.top+z("Top"),Y.width-z("Left")-z("Right"),Y.height-z("Top")-z("Bottom")),rtl:J.direction==="rtl",scrollTop:Z.scrollTop})}function N6(_,$){let Q=_.closest(".cortex-widget__screen"),Z=Q?_0.get(Q):void 0;if(!Q||!Z)return;_0.delete(Q);let J=_.querySelectorAll(":scope > .cortex-message"),Y=J[J.length-1]?.querySelector(".cortex-text-bubble--user"),z=_.closest(".cortex-message-list");if(!Y||!z||Z.text!==$||!Z.textarea.isConnected)return;Y.closest(".cortex-message-part")?.getAnimations().forEach((E)=>E.finish()),C4(z);let X=Y.getBoundingClientRect(),G=Q.getBoundingClientRect(),K=getComputedStyle(Y),V=parseFloat(K.paddingTop)+parseFloat(K.borderTopWidth),W=Z.rtl?parseFloat(K.paddingRight)+parseFloat(K.borderRightWidth):parseFloat(K.paddingLeft)+parseFloat(K.borderLeftWidth),q=Z.rtl?Z.from.right+W-X.width:Z.from.left-W,B=z.scrollTop-Z.scrollTop;if(B)_.style.setProperty("--cortex-slide",`${B}px`),_.classList.remove("cortex-message-list__content--settling"),_.offsetWidth,_.classList.add("cortex-message-list__content--settling"),_.getAnimations()[0]?.finished.then(()=>_.classList.remove("cortex-message-list__content--settling"),()=>{return});let D=Y.cloneNode(!0);D.classList.add("cortex-send-flight"),D.setAttribute("aria-hidden","true"),Object.assign(D.style,{left:`${X.left-G.left}px`,top:`${X.top-G.top}px`,width:`${X.width}px`}),D.style.setProperty("--cortex-fly-x",`${q-X.left}px`),D.style.setProperty("--cortex-fly-y",`${Z.from.top-V-X.top}px`),Y.style.visibility="hidden",Q.append(D);let U=z.scrollTop,y=()=>{D.style.top=`${X.top-G.top-(z.scrollTop-U)}px`};z.addEventListener("scroll",y,{passive:!0}),T4(D).then(()=>{z.removeEventListener("scroll",y),Y.style.visibility="",D.remove()})}function C4(_){_.scrollTop=b4(_)}var F6=100;function Q0(_,$){let Q=!0,Z=!0,J=!1,Y=0,z;function X(){if(J)return;J=!0,queueMicrotask(()=>{J=!1,C4(_),Z=!0,Q=!1})}function G(){Z=b4(_)-_.scrollTop<F6}let K=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([V])=>{let W=V?.contentRect.height??0,q=W>Y;if(Y=W,q&&(Q||Z))X()});return K?.observe($),_.addEventListener("scroll",G,{passive:!0}),X(),{pin(){Q=!0},messagesChanged(V){if(V?.role==="user"&&V.id!==z){z=V.id,Q=!0;let W=V.parts.find((q)=>q.type==="text")?.content;if(W!==void 0)N6($,W)}if(Q)X()},dispose(){K?.disconnect(),_.removeEventListener("scroll",G)}}}function b4(_){let $=_.querySelector(".cortex-message-list__content");if(!$)return _.scrollHeight-_.clientHeight;let Q=getComputedStyle(_);return $.offsetHeight+parseFloat(Q.paddingTop)+parseFloat(Q.paddingBottom)-_.clientHeight}function Z0(_){let $=!1,Q=_.parentElement,Z=typeof ResizeObserver>"u"?void 0:new ResizeObserver(()=>{if($)J()});Z?.observe(Q);function J(){let Y=Q.querySelector(":scope > .cortex-working-thinking, :scope > .cortex-message > .cortex-message-parts > [data-cortex-frontier]");if(!Y)return!1;return _.style.setProperty("--cortex-avatar-y",`${H6(Y,Q)-_.offsetHeight/2}px`),!0}return{sync(Y){if(Y===$){if(Y)J();return}if(Y){if(!J())return;_.classList.remove("cortex-working-avatar--leaving"),_.offsetWidth,_.classList.add("cortex-working-avatar--shown"),$=!0;return}$=!1;let[,z="0px"]=getComputedStyle(_).translate.split(" ");_.style.setProperty("--cortex-avatar-y",z),_.classList.add("cortex-working-avatar--leaving"),T4(_,!0).then(()=>{if($)return;_.classList.remove("cortex-working-avatar--shown","cortex-working-avatar--leaving")})},dispose(){Z?.disconnect()}}}function H6(_,$){let Q=_.querySelector(".cortex-text-bubble");if(!Q)return I4(_,$)+_.offsetHeight/2;let Z=getComputedStyle(Q);return I4(Q,$)+parseFloat(Z.paddingTop)+parseFloat(Z.borderTopWidth)+parseFloat(Z.lineHeight)/2}function I4(_,$){let Q=0;for(let Z=_;Z instanceof HTMLElement&&Z!==$;)Q+=Z.offsetTop,Z=Z.offsetParent;return Q}function T4(_,$=!1){return Promise.allSettled(_.getAnimations({subtree:$}).map((Q)=>Q.finished))}function J0(_,$){let Q=0,Z,J;function Y(){Z=setTimeout(()=>{$({index:Q,phase:"exiting"}),Z=setTimeout(()=>{Q=(Q+1)%_,$({index:Q,phase:"enter-start"}),J=requestAnimationFrame(()=>{$({index:Q,phase:"entering"}),Z=setTimeout(()=>{$({index:Q,phase:"idle"}),Y()},300)})},300)},2000)}return Y(),()=>{if(clearTimeout(Z),J!==void 0)cancelAnimationFrame(J)}}function Y0(_,$){function Q(){$.sendDraft((G)=>$0(_,G))}function Z(G){if(G.key!=="Enter"||G.shiftKey)return;G.preventDefault(),Q()}function J(){_.style.overflowY="hidden",_.style.height="0px",_.style.height=`${_.scrollHeight+1}px`,_.style.overflowY=""}let Y=0,z=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([G])=>{let K=G?.borderBoxSize[0]?.inlineSize??0;if(K===Y)return;Y=K,requestAnimationFrame(J)});function X(){_.removeEventListener("keydown",Z),z?.disconnect()}return _.style.transition="none",_.addEventListener("keydown",Z),z?.observe(_,{box:"border-box"}),{send:Q,fit:J,dispose:X}}function X0(_){return{onDragOver:($)=>{if($.preventDefault(),_.enabled)_.setDragging(!0)},onDragLeave:($)=>{if(!$.currentTarget?.contains($.relatedTarget))_.setDragging(!1)},onDrop:($)=>{if($.preventDefault(),_.setDragging(!1),_.enabled)_.accept([...$.dataTransfer?.files??[]])},onPaste:($)=>{let Q=[...$.clipboardData?.files??[]];if(!_.enabled||!Q.length)return;$.preventDefault(),_.accept(Q)}}}function S_(_,$){if(_===void 0||typeof _==="string"||Array.isArray(_))return _;let Q=_;return Q[$]??Q.en??Object.values(Q)[0]}var v4={translate_history:"السجل",translate_back:"رجوع",translate_greeting:"بماذا يمكنني مساعدتك اليوم؟",translate_conversations:{zero:"لا محادثات",one:"محادثة واحدة",two:"محادثتان",few:"{{count}} محادثات",many:"{{count}} محادثة",other:"{{count}} محادثة"},translate_no_threads_yet:"لا توجد محادثات بعد",translate_start_a_new_conversation:"ابدأ محادثة جديدة",translate_untitled:"بدون عنوان",translate_new_chat:"محادثة جديدة",translate_normal:"عادي",translate_debug:"تصحيح",translate_type_a_message:"اكتب رسالة...",translate_completed:"مكتمل",translate_attach_files:"إرفاق ملفات",translate_drop_files_here:"أفلت ملفاتك هنا...",translate_remove_attachment:"إزالة المرفق",translate_attachment_rejected:"لا يمكن إرفاق هذا الملف",translate_attachment_rejected_type:"يمكن إرفاق ملفات {{types}} فقط",translate_attachment_rejected_size:"الحد الأقصى لحجم الملف {{size}} ميغابايت",translate_attachment_rejected_name:"اسم الملف طويل جدًا",translate_attachment_rejected_count:{zero:"لا يمكن إرفاق ملفات بالرسالة",one:"يمكن إرفاق ملف واحد كحد أقصى لكل رسالة",two:"يمكن إرفاق ملفين كحد أقصى لكل رسالة",few:"يمكن إرفاق {{count}} ملفات كحد أقصى لكل رسالة",many:"يمكن إرفاق {{count}} ملفًا كحد أقصى لكل رسالة",other:"يمكن إرفاق {{count}} ملف كحد أقصى لكل رسالة"},translate_attachment_caption:"من فضلك اطّلع على الملفات المرفقة.",translate_download:"تنزيل",translate_tool_status:"جارٍ تنفيذ خطوة…",translate_tool_done:"اكتملت الخطوة",translate_tool_cancelled:"أُلغيت الخطوة",translate_rows:{zero:"لا صفوف",one:"صف واحد",two:"صفان",few:"{{count}} صفوف",many:"{{count}} صفًا",other:"{{count}} صف"},translate_more_steps:{zero:"ولا خطوات أخرى",one:"وخطوة أخرى",two:"وخطوتان أخريان",few:"و{{count}} خطوات أخرى",many:"و{{count}} خطوة أخرى",other:"و{{count}} خطوة أخرى"},translate_tool_error:"حدث خطأ",translate_attachment_status:"جارٍ قراءة الملف المرفق…",translate_attachment_done:"تمت قراءة الملف المرفق",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_error:"خطأ",translate_approval_pending:"وافق على الطلب أعلاه أو ارفضه أولًا.",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_read_only:"أنت تطّلع على هذه المحادثة. لا يمكن إرسال شيء من هنا.",translate_access_refused:"لم يقبل هذا الوكيل تسجيل دخولك.",translate_visitor_unverified:"لم نتمكن من التأكد من أنك شخص حقيقي.",translate_agent_unreachable:"تعذّر الوصول إلى هذا الوكيل الآن. نعيد المحاولة...",translate_agent_missing:"هذا الوكيل غير متاح.",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_pending_report:"جارٍ كتابة التقرير",translate_media_cut_off:"انقطع هذا المقطع قبل اكتماله.",translate_media_failed:"تعذر عرض هذا المقطع.",translate_media_source:"المصدر",translate_media_pending:"جارٍ الرسم",translate_media_mermaid:"مخطط",translate_media_vega_lite:"رسم بياني",translate_media_map:"خريطة",translate_media_report:"تقرير",translate_media:"معاينة",translate_image_unavailable:"الصورة غير متاحة",translate_image_unavailable_alt:"الصورة غير متاحة: {{alt}}",translate_image:"صورة",translate_send:"إرسال",translate_stop:"إيقاف",translate_delete_conversation:"حذف المحادثة",translate_table:"جدول",translate_expand:"توسيع {{name}}",translate_table_export:"تصدير إلى Excel",translate_close:"إغلاق",translate_approval_needed:"بحاجة إلى موافقتك",translate_approval_action:"تنفيذ {{tool}}",translate_approved_failed:"تمت الموافقة لكنه فشل",translate_approval_cancelled:"لم يُتخذ قرار"};var f4={translate_history:"History",translate_back:"Back",translate_greeting:"What can I help you with today?",translate_conversations:{one:"1 conversation",other:"{{count}} conversations"},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_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_rejected_type:"Only {{types}} files can be attached",translate_attachment_rejected_size:"Files can be up to {{size}} MB",translate_attachment_rejected_name:"The file name is too long",translate_attachment_rejected_count:{one:"Up to 1 file per message",other:"Up to {{count}} files per message"},translate_attachment_caption:"Please take a look at the attached files.",translate_download:"Download",translate_tool_status:"Running a step...",translate_tool_done:"Step completed",translate_tool_cancelled:"Step cancelled",translate_rows:{one:"1 row",other:"{{count}} rows"},translate_more_steps:{one:"and 1 more step",other:"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_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_error:"Error",translate_approval_pending:"Approve or deny the request above first.",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_read_only:"You're viewing this conversation. Nothing can be sent from here.",translate_access_refused:"This agent did not accept your sign-in.",translate_visitor_unverified:"We couldn't confirm you're a person.",translate_agent_unreachable:"This agent cannot be reached right now. Trying again...",translate_agent_missing:"This agent is not available.",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_pending_report:"Writing report",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_media_mermaid:"Diagram",translate_media_vega_lite:"Chart",translate_media_map:"Map",translate_media_report:"Report",translate_media:"Preview",translate_image_unavailable:"Image unavailable",translate_image_unavailable_alt:"Image unavailable: {{alt}}",translate_image:"Image",translate_send:"Send",translate_stop:"Stop",translate_delete_conversation:"Delete conversation",translate_table:"Table",translate_expand:"Expand {{name}}",translate_table_export:"Export to Excel",translate_close:"Close",translate_approval_needed:"Needs your approval",translate_approval_action:"Run {{tool}}",translate_approved_failed:"Approved, but it failed",translate_approval_cancelled:"Not decided"};var P6={en:f4,ar:v4};function I_(_){return _&&h1.includes(_)?_:W4}function __(_,$,Q){let Z=P6[_][$],J=typeof Z==="string"?Z:Z[new Intl.PluralRules(_).select(Number(Q?.count))]??Z.other;if(!Q)return J;return J.replace(/\{\{\s*(\w+)\s*\}\}/g,(Y,z)=>(z in Q)?String(Q[z]):Y)}function w4(_,$,Q){let Z=_!==void 0&&_.messages!==!1;return{greeting:_===void 0?"":S_(_.greeting,$)||__($,"translate_greeting"),suggestions:Z&&S_(_.suggestions,$)||[],send:(J)=>{if(Z)Q(J)}}}var j4="cortex-recaptcha-enterprise",z0;function L6(_){return z0??=new Promise(($,Q)=>{let Z=()=>{let Y=window.grecaptcha?.enterprise;if(Y)Y.ready(()=>$(Y));else Q(Error("reCAPTCHA Enterprise did not load"))};if(document.getElementById(j4))return Z();let J=document.createElement("script");J.id=j4,J.src=`https://www.google.com/recaptcha/enterprise.js?render=${encodeURIComponent(_)}`,J.async=!0,J.addEventListener("load",Z,{once:!0}),J.addEventListener("error",()=>{J.remove(),Q(Error("reCAPTCHA Enterprise failed to load"))},{once:!0}),document.head.appendChild(J)}).catch(($)=>{throw z0=void 0,$}),z0}function g4(_,$=document){for(let Q of $.querySelectorAll(".grecaptcha-badge")){let Z=Q.querySelector("iframe")?.getAttribute("src");if(Z&&new URL(Z,"https://www.google.com").searchParams.get("k")===_)Q.style.visibility="hidden"}}async function m4(_){let $=await L6(_);g4(_);let Q=await $.execute(_,{action:B4});return g4(_),Q}class B_ extends Error{status;constructor(_,$){super(`HTTP ${_}: ${$}`);this.status=_;this.name="CortexHttpError"}}class o_ extends Error{constructor(){super("The visitor check failed");this.name="CortexVisitorUnverified"}}var V0="cortex:visitor:",r_=new Map,i_=new Map,W0=new Set,G0=new Set;function h4(_){try{return localStorage.getItem(V0+_)}catch{return null}}function u4(_,$){try{if($===null)localStorage.removeItem(V0+_);else localStorage.setItem(V0+_,$)}catch{}}async function x4(_,$){let Q=await fetch(`${_}/visitors`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)});if(Q.status===403)return await Q.json();if(!Q.ok)throw new B_(Q.status,Q.statusText);return await Q.json()}async function R6(_){let $=await x4(_,{});if("error"in $&&$.error==="recaptcha_required")$=await x4(_,{recaptcha:await m4($.siteKey)});if("error"in $)throw new o_;return W0.add($.token),u4(_,$.token),$.token}function O6(_){let $=r_.get(_)??h4(_);if($)return r_.set(_,$),Promise.resolve($);let Q=i_.get(_);if(!Q){Q=R6(_),i_.set(_,Q);let Z=Q,J=()=>{if(i_.get(_)===Z)i_.delete(_)};Z.then((Y)=>{J(),r_.set(_,Y)},(Y)=>{if(!(Y instanceof o_))J()})}return Q}function E6(_,$){let Q=r_.get(_)===$;if(Q)r_.delete(_);let Z=h4(_)===$;if(Z)u4(_,null);return Q||Z}function q0(_){if(!_.getHeaders)return O6(n_(_,"")).then((Q)=>K0({Authorization:`Bearer ${Q}`}));let $=_.getHeaders();return $ instanceof Promise?$.then(K0):Promise.resolve(K0($))}function K0(_){let $={..._},Q=A6(),Z=Object.keys($).some((J)=>J.toLowerCase()===i1.toLowerCase());if(Q&&!Z)$[i1]=Q;return $}function A6(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function n_(_,$){let Q=_.baseUrl;return(typeof Q==="string"?Q:Q()).replace(/\/$/,"")+$}function k6(_){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 c4(_){function $(){return q0(_())}function Q(Y){return n_(_(),Y)}function Z(Y,z){let X=_(),G=new Headers(z).get("Authorization")?.replace(/^Bearer /,"");if(X.getHeaders||G===void 0)return;if(Y.ok)W0.delete(G);if(Y.status!==401)return;let K=n_(X,""),V=E6(K,G);if(W0.delete(G))return"refused";if(V){for(let W of[...G0])if(W.visitorOf()===K)W.heard()}return"stale"}async function J(Y,z,X=!1){let G=new Headers(await $());if(new Headers(z?.headers).forEach((W,q)=>{G.set(q,W)}),z?.body instanceof FormData)G.delete("Content-Type");else if(!G.has("Content-Type"))G.set("Content-Type","application/json");let K=await fetch(Q(Y),{...z,headers:G});if(!K.ok){if(Z(K,G)==="stale"&&!X)return J(Y,z,!0);throw new B_(K.status,K.statusText)}Z(K,G);let V=await K.text();return V?JSON.parse(V):void 0}return{onVisitorReplaced(Y){let X={visitorOf:()=>{let G=_();return G.getHeaders?void 0:n_(G,"")},heard:Y};return G0.add(X),()=>{G0.delete(X)}},retrySignIn(){i_.delete(n_(_(),""))},getCapabilities(){return J("/capabilities")},listThreads(){return J("/threads")},createThread(){let Y=_().threadBody;return J("/threads",{method:"POST",...Y&&{body:JSON.stringify(Y)}})},deleteThread(Y){return J(`/threads/${Y}`,{method:"DELETE"})},listMessages(Y){return J(`/threads/${Y}/messages`)},listLlmRequests(Y,z){return J(`/threads/${Y}/messages/${z}/llm-requests`)},abortStream(Y){return J(`/chat/${Y}/abort`,{method:"POST"})},initiateToolCall(Y,z){return J(`/chat/${Y}/tools/${z}/initiate`,{method:"POST"})},uploadAttachment(Y,z){let X=new FormData;return X.append("file",z),J(`/threads/${Y}/files`,{method:"POST",body:X})},deleteAttachment(Y){return J(`/files/${Y}`,{method:"DELETE"})},async downloadAttachment(Y){let z=await $(),X=await fetch(Q(`/files/${Y}`),{headers:z});if(Z(X,z),!X.ok)throw new B_(X.status,X.statusText);return{blob:await X.blob(),name:k6(X.headers.get("Content-Disposition"))??Y}},resolveHeaders:$,resolveUrl:Q,readVisitorAnswer:Z}}var D0=30000;function B0(_){return Math.min(1000*2**(_-1),D0)}var y6=1e4;function p4(_){let $,Q,Z=0,J=!1,Y=!1;function z(){let{wsUrl:G,transport:K}=_.getConfig();if(G===!1)return;let V=S6(G,K.baseUrl);q0(K).then((W)=>{if(J)return;$=new WebSocket(I6(V,W)),$.addEventListener("open",()=>{Y=!0;let q=$;setTimeout(()=>{if($===q&&!J)Z=0},y6),_.onOpen?.()}),$.addEventListener("message",(q)=>{let B=q.data;if(typeof B!=="string")return;let D;try{D=JSON.parse(B)}catch{return}_.onEvent(D)}),$.addEventListener("close",()=>{if(!Y&&!J)_.onFailedOpen?.();Y=!1,X()})}).catch(X)}function X(){if(J||Q)return;Z+=1,Q=setTimeout(()=>{Q=void 0,z()},B0(Z))}return z(),{close(){J=!0,Y=!1,clearTimeout(Q),$?.close()},isOpen(){return Y}}}function S6(_,$){if(_)return _;let Q=typeof $==="string"?$:$(),Z=new URL(Q,window.location.origin);return Z.protocol=Z.protocol==="https:"?"wss:":"ws:",Z.pathname=Z.pathname.replace(/\/$/,"")+"/ws",Z.toString()}function I6(_,$){let Q=(z)=>Object.entries($).find(([X])=>X.toLowerCase()===z.toLowerCase())?.[1],Z=Q("Authorization"),J=Object.entries({token:Z?.startsWith("Bearer ")?Z.slice(7):void 0,operator:Q(P4),inspect:Q(L4)}).filter((z)=>Boolean(z[1]));if(J.length===0)return _;let Y=new URL(_,window.location.origin);for(let[z,X]of J)if(!Y.searchParams.has(z))Y.searchParams.set(z,X);return Y.toString()}var d4={unreachable:"translate_agent_unreachable",refused:"translate_access_refused",unverified:"translate_visitor_unverified",missing:"translate_agent_missing"};function C6(_){if(_ instanceof o_)return"unverified";let $=_ instanceof B_?_.status:void 0;if($===401)return"refused";if($===404)return"missing";return"unreachable"}function N0(_,$,Q=B0){let Z=!1,J,Y=0;function z(){_().then((X)=>{if(!Z)$.onAnswered(X)},(X)=>{if(Z)return;let G=C6(X);if($.onMissed?.(G),G==="missing")return;Y+=1,J=setTimeout(z,G==="refused"||G==="unverified"?D0:Q(Y))})}return z(),function(){Z=!0,clearTimeout(J)}}function U1(){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(_,(Q)=>Q.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}var b6={type:"translate_attachment_rejected_type",size:"translate_attachment_rejected_size",name:"translate_attachment_rejected_name",count:"translate_attachment_rejected_count"};function F0(_,$){if(!_.refusal)return __($,"translate_attachment_rejected");return __($,b6[_.refusal],{types:new Intl.ListFormat($).format(p_.map((Q)=>Q.slice(Q.indexOf("/")+1).toUpperCase())),size:u1/1024/1024,count:c1})}function l4(_){let{api:$}=_,Q=new Set,Z=new Set,J=[],Y=[],z=Promise.resolve();function X(){return J}function G(N){return Q.add(N),()=>{Q.delete(N)}}function K(N){J=N;for(let P of Q)P()}function V(N,P){K(J.map((A)=>A.localId===N?{...A,...P}:A))}function W(N){if(Z.delete(N))return;V(N,{status:"error"})}async function q(N,P,A){if(Z.delete(N))return;let v;try{v=await $.uploadAttachment(P,A)}catch{W(N);return}if(Z.delete(N)){$.deleteAttachment(v.id).catch(()=>{});return}V(N,{status:"ready",attachmentId:v.id,summary:v})}function B(N){let P=[];for(let A of N){let v=D4(A),T=J.filter((z_)=>z_.status!=="error").length>=c1,l=v!=="ok"?v:T?"count":void 0,Z_=U1();if(K([...J,l?{localId:Z_,filename:A.name,status:"error",refusal:l}:{localId:Z_,filename:A.name,status:"uploading"}]),!l)P.push({localId:Z_,file:A})}if(!P.length)return;_.ensureThread().then((A)=>{for(let{localId:v,file:T}of P){if(Z.delete(v))continue;V(v,{threadId:A}),z=z.then(()=>q(v,A,T)).catch(()=>{})}},()=>{for(let{localId:A}of P)W(A)})}function D(N){let P=J.find((A)=>A.localId===N);if(!P)return;if(P.status==="uploading"){Z.add(N),K(J.filter((A)=>A.localId!==N));return}if(P.attachmentId){V(N,{status:"deleting"}),$.deleteAttachment(P.attachmentId).then(()=>K(J.filter((A)=>A.localId!==N)),()=>V(N,{status:"error"}));return}K(J.filter((A)=>A.localId!==N))}function U(N){let P=[];for(let A of J){if(A.threadId!==void 0&&A.threadId!==N){P.push(A);continue}if(A.status==="uploading")Z.add(A.localId);else if(A.status==="ready"&&A.threadId===N&&A.attachmentId)$.deleteAttachment(A.attachmentId).catch(()=>{})}if(P.length!==J.length)K(P)}function y(){let N=J.flatMap((P)=>P.status==="ready"&&P.summary?[{...P,status:"ready",summary:P.summary}]:[]);return K(J.filter((P)=>P.status!=="ready")),Y=N,N}function E(N){let P=Y;if(Y=[],P.some((A)=>A.threadId!==N))return;K([...P.map((A)=>({...A,status:"error"})),...J])}function O(){Y=[]}return{getState:X,subscribe:G,accept:B,remove:D,clear:U,consumeReady:y,restoreConsumed:E,discardConsumed:O}}function i4(_){return{uploading:_.some(($)=>$.status==="uploading"),busy:_.some(($)=>$.status==="uploading"||$.status==="deleting"),hasReady:_.some(($)=>$.status==="ready")}}import{ChatClient as h6}from"@tanstack/ai-client";import{EventType as o4}from"@tanstack/ai";import{fetchServerSentEvents as n4}from"@tanstack/ai-client";function T6(_){for(let $=_.length-1;$>=0;$-=1){let Q=_[$],Z="parts"in Q&&Q.parts.some((J)=>J.type==="tool-result"||J.type==="tool-call"&&J.state==="approval-responded");if(Q.role==="user"||Z)return _.slice($,$+1)}return _.slice(-1)}function v6(_){if(_.state==="approval-responded"){let $=_.approval?.approved;if($===void 0)return null;return{toolCallId:_.id,output:null,state:$?"approved":"denied"}}if(!o(_.state))return null;return{toolCallId:_.id,output:_.output??null,state:_.state==="error"?"error":"complete"}}function f6(_){let[$]=_;if(!$||$.role!=="assistant"||!("parts"in $))return null;let Q=$.parts.flatMap((Z)=>{let J=Z.type==="tool-call"?v6(Z):null;return J?[J]:[]});return Q.length>0?Q:null}async function w6(_){if(_.status!==409)return;let $=await _.clone().json().catch(()=>{return});return $!==null&&typeof $==="object"&&"outcome"in $&&$.outcome==="dropped"&&"reason"in $&&$.reason==="approval_pending"?"approval_pending":void 0}async function*r4(_,$,Q){for await(let Z of _){if(Z.type!==o4.MESSAGES_SNAPSHOT){yield Z;continue}let J=$.localMessages(),Y=J.findIndex((X)=>X.id===Q),z=Y===-1?[]:J.slice(Y+1).filter((X)=>X.role==="user");$.onTranscriptCarried?.(Z.timestamp??Date.now()),yield{...Z,messages:[...Z.messages,...z]}}}function a4(_){let{api:$,thread:Q}=_,Z=async()=>({headers:await $.resolveHeaders()}),J=0;async function*Y(W,q){J+=1,_.onStreamStarted?.();try{yield*W}finally{J-=1,q?.()}}function z(W,q){let B=Object.assign(async(D,U)=>{let y=await fetch(D,U).catch((N)=>{throw W("lost"),N});W(R4(y.status)),$.readVisitorAnswer(y,U?.headers);let E=new Headers(U?.headers).has("Last-Event-ID");if(q&&!E&&y.status===401)_.onMessageRefused?.();let O=await w6(y);if(O)_.onRefused?.(O);return y},fetch);return n4(()=>$.resolveUrl("/chat"),async()=>({...await Z(),fetchClient:B}))}let X=function(W,q,B,D){let U=T6(W),y=f6(U),E=y?.map((A)=>A.toolCallId),O,N=z((A)=>{if(O)return;if(O=A,E&&O==="persisted")_.onReceipt?.(E,O)},!y&&U[0]?.role==="user"),P=y?N.connect([],{...q,[H4]:y},B,D):N.connect(U,q,B,D);return Y(r4(P,_,W.at(-1)?.id),()=>{if(E&&O!=="persisted")_.onReceipt?.(E,O??"lost")})},G=n4(()=>$.resolveUrl(`/chat/${Q.id}/stream`),Z),K=[];async function*V(W,q){yield{type:o4.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:K},yield*r4(G.joinRun(W,q),_,K.at(-1)?.id)}return{connect:X,joinRun:(W,q)=>Y(V(W,q)),streaming:()=>J>0,hydrate:async()=>{let W=await j6(_);return K=W.messages,W}}}async function j6(_){let{api:$,thread:Q,mode:Z}=_,J=Q.isRunning?{runId:Q.id}:null;if(Z==="skip")return{messages:[],activeRun:J,interrupts:null};if(Z==="load")_.setLoadingMessages?.(!0);try{let z=(await $.listMessages(Q.id)).map(l1);return _.onHydrated?.(z),{messages:z,activeRun:J,interrupts:null}}finally{_.setLoadingMessages?.(!1)}}async function s4(_){if(_.isStale?.()||_.isStreaming())return;try{let $=await _.api.listMessages(_.threadId);if(_.isStale?.()||_.isStreaming())return;let Q=$.map(l1);return _.setMessages(Q),Q}catch{return}}import{EventType as g6}from"@tanstack/ai";function m6(_){return new Set(M_(_).filter(($)=>$.state!=="approval-responded").map(($)=>$.id))}function H0(_){return _.refusal==="approval_pending"?"translate_approval_pending":"translate_error"}var x6=2;function t4(_){let $=!1,Q=!1,Z=!1,J,Y,z,X,G=!1,K=!1,V,W,q=new Set,B=new Map,D=new Map,U=0,y=0,E=0,O=!1;function N(){if($)return;$=!0,_.setRunning(!0)}function P(R,S){B.get(R)?.waiters.forEach(S),B.delete(R)}function A(R,S,C=!1){for(let f of R){let m=B.get(f);if(!m)continue;if(m.failure=S,C)m.mayHaveLanded=!0}z_()}async function v(R,S,C){try{await S()}catch(f){if(C)C.failures+=1;A([R],f instanceof Error?f:Error("The answer was not sent"))}}function T(R){for(let[S,C]of B)if(!R.has(S)){if(C.mayHaveLanded)N();P(S,(f)=>f.resolve())}else if(C.failure){let{failure:f}=C;P(S,(m)=>m.reject(f))}else v(S,C.deliver)}function l(R){for(let[C,f]of D){if(R.has(C))continue;if(D.delete(C),f.mayHaveLanded)N()}let S=[...D.values()];if(S.some((C)=>C.failures>x6))return;for(let C of S)Z_(C)}function Z_(R){if(!_.answers())return O=!0,Promise.resolve();return v(R.answer.toolCallId,()=>_.deliver(R.answer),R)}async function z_(){let R=U,S=++y,C=()=>U!==R||E>S||!_.isAlive(),f=await _.refreshMessages(C).catch(()=>{return});if(!f||C())return;E=S;let m=m6(f),U_=O;if(O=!1,T(m),l(m),$||U_)J_(f)}async function i(R,S){let C;try{let U_=S({toolCallId:R.id,toolName:R.name,input:R.input},{threadId:_.threadId});if(U_===null||U_===void 0)return;C=await Promise.resolve(U_)}catch{q.delete(R.id);return}if(C===null||C===void 0)return;if(!_.isAlive())return;let m={answer:{toolCallId:R.id,tool:R.name,output:C},failures:0,mayHaveLanded:!1};D.set(R.id,m),await Z_(m)}function J_(R){let S=M_(R),C=_.onToolCall();if(!C)return S.length>0;if(!_.answers())return O||=S.length>0,S.length>0;for(let f of S){if(f.state!=="input-complete"||q.has(f.id))continue;q.add(f.id),i(f,C)}return S.length>0}async function u_(R){if(Z)_.reloadThreads().catch(()=>{});else _.setRunning(!1);if($&&!G&&J_(R()))return;if(W===void 0&&V!==void 0)return;W=void 0,await z_()}return{chunkArrived(R){if(Q=!0,R.type===g6.RUN_ERROR&&R.code!=="aborted")J={reason:R.message||void 0}},transcriptCarried(R){if(V=R,W!==void 0&&W<=R)W=void 0},transcriptUpdated(R){let S=Date.parse(R);if(V!==void 0&&S<=V)return;if(!K){z_();return}W=Math.max(W??0,S)},streamFailed(){if(Z=!0,G)return;if(Q)_.onTurnFinished();else _.onSendFailed();if(Y){if(_.setTurnFailed({reason:void 0,refusal:Y}),X!==void 0)_.returnDraft(X);return}let S=J??(X!==void 0&&!Q?{reason:void 0}:void 0);if(S)_.setTurnFailed(S)},loadingChanged(R,S){if(R){K=!0;return}if(!K)return;K=!1,_.onTurnFinished(),u_(S)},hydrated(R,S){if(S)return;setTimeout(()=>{if(_.isAlive())J_(R)},0)},deliverAnswer(R,S){return new Promise((C,f)=>{let m=[...B.get(R)?.waiters??[],{resolve:C,reject:f}];B.set(R,{deliver:S,waiters:m}),v(R,S)})},receiptArrived(R,S){if(S==="persisted"){for(let f of R)D.delete(f),P(f,(m)=>m.resolve());N();return}let C=S==="lost";for(let f of R){let m=D.get(f);if(!m)continue;m.failures+=1,m.mayHaveLanded||=C}A(R,Error(C?"The answer was lost":"Cortex refused the answer"),C)},readBack:z_,resumeAnswers(){if(O&&!K)z_()},streamStarted(){if($)_.setRunning(!0);U+=1,Z=!1,J=void 0,Y=void 0,X=z,z=void 0,V=void 0,G=!1,_.setTurnFailed(void 0)},sendStarted(R){U+=1,z=R,$=!0,Q=!1},sendRefused(R){Y=R},abortConfirmed(){G=!0}}}var M1={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1,awaitsApproval:!1,turnFailure:void 0};function e4(_){let{api:$}=_,Q=_.thread.id,Z=new Set,J=M1,Y=X(_.thread,_.mode);function z(D,U){if(Object.is(J[D],U))return;let y={...J,[D]:U};J={...y,hasPendingToolCalls:!y.isAgentWorking&&M_(y.messages).length>0,awaitsApproval:O4(y.messages)},Z.forEach((E)=>E())}function X(D,U,y){let E=!0;function O(T){return(...l)=>{if(E)T(...l)}}let N=Promise.resolve(),P=t4({threadId:Q,isAlive:()=>E,onToolCall:()=>_.getHooks()?.onToolCall,answers:_.answers,deliver:(T)=>v.addToolResult(T),setRunning:_.setRunning,reloadThreads:_.reloadThreads,refreshMessages:(T)=>{let l=N.then(()=>s4({api:$,threadId:Q,isStale:()=>!E||T(),isStreaming:A.streaming,setMessages:(Z_)=>v.setMessagesManually(Z_)}));return N=l,l},onTurnFinished:_.onTurnFinished,onSendFailed:_.onSendFailed,setTurnFailed:O((T)=>z("turnFailure",T)),returnDraft:O(_.onReturned)}),A=a4({api:$,thread:D,mode:U,localMessages:()=>v.getMessages(),onHydrated:O((T)=>P.hydrated(T,D.isRunning)),onTranscriptCarried:O((T)=>P.transcriptCarried(T)),onStreamStarted:O(()=>P.streamStarted()),onRefused:O((T)=>P.sendRefused(T)),onMessageRefused:_.onMessageRefused,onReceipt:O((T,l)=>P.receiptArrived(T,l)),setLoadingMessages:O((T)=>z("isLoadingMessages",T))}),v=new h6({threadId:Q,persistence:!0,initialMessages:y,connection:A,onChunk:O((T)=>P.chunkArrived(T)),onError:O(()=>P.streamFailed()),onMessagesChange:O((T)=>z("messages",T)),onLoadingChange:O((T)=>{z("isAgentWorking",T);let l=()=>v.getMessages();if(T){P.loadingChanged(!0,l);return}setTimeout(O(()=>{if(!v.getIsLoading())P.loadingChanged(!1,l)}))})});return v.attach(),{client:v,lifecycle:P,isAlive:()=>E,close(){E=!1,v.detach(),v.stop(),v.dispose()}}}async function G(D,U=()=>[]){if(!Y.isAlive()||J.isAgentWorking||J.awaitsApproval)return!1;let{client:y,lifecycle:E}=Y;return E.loadingChanged(!1,()=>y.getMessages()),E.sendStarted(D),await y.append({id:U1(),role:"user",parts:[{type:"text",content:D}],metadata:{createdAt:new Date().toISOString(),attachments:U()}}),!0}async function K(){let{client:D,lifecycle:U,isAlive:y}=Y;if(!y()||!D.getIsLoading())return;let{aborted:E}=await $.abortStream(Q).catch(()=>({aborted:!1}));if(!y())return;if(E)U.abortConfirmed();else D.stop()}function V(D,U,y){let{client:E,lifecycle:O,isAlive:N}=Y;if(!N())return Promise.resolve();return O.deliverAnswer(D,()=>E.addToolResult({toolCallId:D,tool:U,output:y}))}function W(D,U){let{client:y,lifecycle:E,isAlive:O}=Y;if(!O())return Promise.resolve();let N=U4(D);return E.deliverAnswer(D.id,async()=>{let P=y.getInterrupts().find((A)=>A.id===N);if(P&&"resolveInterrupt"in P)P.resolveInterrupt({approved:U});else await y.addToolApprovalResponse({id:N,approved:U})})}function q(D){if(!Y.isAlive()||D.id!==Q||Y.client.getIsLoading())return;if(!D.isRunning){Y.lifecycle.readBack();return}Y.close(),z("isLoadingMessages",!1),z("turnFailure",void 0),Y=X(D,"reload",J.messages)}function B(D){if(Y.isAlive()&&D.id===Q)Y.lifecycle.transcriptUpdated(D.updatedAt)}return{threadId:Q,getState:()=>J,subscribe:(D)=>{return Z.add(D),()=>{Z.delete(D)}},send:G,abort:K,addToolResult:V,respondToApproval:W,reattach:q,transcriptUpdated:B,resumeAnswers:()=>{if(Y.isAlive())Y.lifecycle.resumeAnswers()},dispose(){Y.close(),Z.clear()}}}function U0(_){return[..._].sort(($,Q)=>{let Z=Date.parse(Q.updatedAt)-Date.parse($.updatedAt);if(Z!==0)return Z;return Date.parse(Q.createdAt)-Date.parse($.createdAt)})}function M0(_,$){let Q=[..._],Z=Q.findIndex((J)=>J.id===$.id);if(Z===-1)Q.push($);else Q[Z]={...Q[Z],...$};return U0(Q)}function _2(_,$){return _.filter((Q)=>Q.id!==$)}function u6(_,$,Q){return _.map((Z)=>Z.id===$?{...Z,title:Q}:Z)}var c6=[0,1000,2000,3000,4000];function $2(_){let $=_.delays??c6,Q=!1,Z;function J(){let X=_.selected();return!Q&&!_.socketOpen()&&X?.id===_.threadId&&!X.title}async function Y(X){if(!J())return;let K=(await _.listThreads().catch(()=>{return}))?.find((V)=>V.id===_.threadId)?.title;if(!J())return;if(K)_.setTitle(K);else z(X+1)}function z(X){let G=$[X];if(G!==void 0)Z=setTimeout(()=>void Y(X),G)}return z(0),function(){Q=!0,clearTimeout(Z)}}function Q2(_,$){switch($.type){case"thread:deleted":return _2(_,$.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return M0(_,$.payload.thread);default:return _}}function Z2(){let _=new Map,$=new Map,Q=new Map,Z=new Set,J=0,Y=0;function z(X){if(X.type==="thread:run-started")return _.set(X.payload.thread.id,X.payload.runId),!0;if(X.type!=="thread:run-finished")return!0;let G=_.get(X.payload.thread.id);return G===void 0||G===X.payload.runId}return{admits(X){if(!z(X))return!1;if("thread"in X.payload)$.set(X.payload.thread.id,++J);if(X.type==="thread:deleted")Z.add(X.payload.threadId);return!0},running(X,G){return Q.set(X,++J),(K)=>{let V=K?.find((W)=>W.id===X);return K&&V?M0(K,{...V,isRunning:G}):K}},created(X){return $.set(X.id,++J),(G)=>M0(G??[],X)},retitled(X,G){return $.set(X,++J),(K)=>K&&u6(K,X,G)},deleted(X){return Z.add(X),(G)=>G&&_2(G,X)},async read(X){_.clear();let G=++J,K=U0(await X()),V=G<Y;Y=Math.max(Y,G);function W(q){if(V&&q)return q;let B=new Map(K.map((D)=>[D.id,D]));for(let D of q??[]){let U=B.get(D.id);if(($.get(D.id)??0)>G)B.set(D.id,D);else if(U&&(Q.get(D.id)??0)>G)B.set(D.id,{...U,isRunning:D.isRunning})}for(let D of Z)B.delete(D);return U0([...B.values()])}return{listed:K,show:W}}}}function J2(_,$){for(let Q in _)if(!Object.is(_[Q],$[Q]))return!1;return!0}function a_(_,$){let{capabilities:Q,session:Z}=_,J=i4(_.attachments);return Q!==void 0&&Q.messages!==!1&&!_.creating&&!Z.isAgentWorking&&!Z.awaitsApproval&&!J.busy&&(Boolean($.trim())||J.hasReady)}function P0(_){let{capabilities:$,unanswered:Q}=_;if(_.session.hasPendingToolCalls)return;if($===void 0)return Q&&d4[Q];if($.messages)return"composer";return $.readOnly?"translate_read_only":"translate_messages_disabled"}function L0(_){let{getConfig:$}=_,Q=c4(()=>$().transport),Z=new Set,J=Z2(),Y=l4({api:Q,ensureThread:X4}),z={threads:void 0,selected:void 0,session:M1,capabilities:void 0,unanswered:void 0,attachments:Y.getState(),creating:!1,screen:"chat",sidebarOpen:!1,debugMode:!1},X={...z,parts:Y2(z)},G="",K,V,W=0,q,B,D,U,y,E,O,N,P=[],A=!1,v={reported:X.session,debug:!1,session:X.session};Y.subscribe(()=>i({attachments:Y.getState()}));function T(){for(let F of Z)F()}function l(F){return Z.add(F),()=>{Z.delete(F)}}function Z_(F){let k=V;return k&&(F?.find((b)=>b.id===k.id)??k)}function z_(F){let k=B?.getState()??M1;if(k===v.reported&&F===v.debug)return v.session;let b=k.turnFailure,g=F||b?.reason===void 0?k:{...k,turnFailure:{...b,reason:void 0}};return v={reported:k,debug:F,session:g},g}function i(F={}){let k={...X,...F},b={...k,selected:Z_(k.threads),session:z_(Boolean(k.capabilities?.debug)),creating:q?.generation===W&&q.forMessage},g=Y2(b),r={...b,parts:J2(g,X.parts)?X.parts:g};if(J2(r,X))return;X=r,T()}function J_(F){i({threads:F(X.threads)})}function u_(F){if(F===G)return;G=F,T()}function R(F){if(F)u_(G?`${F}
3
- ${G}`:F)}function S(F,k=!1){let b=X.selected;J_(F);let g=X.selected;if(g){if(k||g.isRunning&&!b?.isRunning)B?.reattach(g);else if(g.updatedAt!==b?.updatedAt)B?.transcriptUpdated(g)}C()}function C(){let F=$().thread,k=!A&&F&&X.threads?.find((b)=>b.id===F);if(!k)return;A=!0,Y4(k)}async function f(F=!1){let k=U,b=await J.read(()=>Q.listThreads()).catch(()=>{return});if(!b||!U||U!==k)return!1;return S(b.show,F),!0}function m(){E?.(),i({capabilities:void 0,unanswered:void 0}),E=N0(()=>Q.getCapabilities(),{onAnswered:(F)=>{if(i({capabilities:F,unanswered:void 0,debugMode:X.debugMode&&F.debug}),F1())B?.resumeAnswers()},onMissed:(F)=>i({unanswered:F})})}function U_(){O?.();let F=V?.id;if(!F)return;O=$2({threadId:F,listThreads:()=>Q.listThreads(),selected:()=>X.selected,socketOpen:()=>U?.isOpen()??!1,setTitle:(k)=>J_(J.retitled(F,k))})}function c_(F){B?.dispose(),B=void 0,D=void 0;let k=Z_(X.threads);if(U&&k){let b=e4({api:Q,thread:k,mode:F,getHooks:()=>$().hooks,answers:F1,setRunning:(g)=>{if(g||!D)J_(J.running(k.id,g))},reloadThreads:()=>f(),onTurnFinished:()=>{if(Y.discardConsumed(),U_(),D)f().then((g)=>{D=void 0;let r=X.selected;if(g&&r?.isRunning)B?.reattach(r)})},onSendFailed:()=>Y.restoreConsumed(k.id),onReturned:R,onMessageRefused:()=>{if(K?.session!==b||B===b)return;if($().transport.getHeaders)return;R(K.text),K=void 0}});B=b,b.subscribe(()=>i())}i()}function Z4(){W+=1,Y.clear(V?.id)}function J4(){i({screen:"chat",sidebarOpen:!1})}function Y4(F){if(J4(),V?.id===F.id)return;let k=X.selected;Z4(),V=F,c_("load");let b=$().hooks;if(k)b?.onThreadDeselected?.(k);b?.onThreadSelected?.(F)}function N1(){let F=X.selected;if(Z4(),V=void 0,c_("load"),F)$().hooks?.onThreadDeselected?.(F)}function g8(){N1(),J4()}async function m8(F){if(V?.id===F)N1();await Q.deleteThread(F),J_(J.deleted(F))}function x8(){return new Promise((F)=>{if(U)F();else P.push(F)})}function X4(F=!1){if(V)return Promise.resolve(V.id);if(q?.generation===W)q={...q,forMessage:q.forMessage||F};else{let k=W,b=()=>{if(q?.generation===k)q=void 0},g=Q.createThread().then(async(r)=>{if(J_(J.created(r)),await x8(),b(),W===k)V=r,c_("skip"),$().hooks?.onThreadSelected?.(r);return r.id},(r)=>{throw b(),i(),r});q={generation:k,threadId:g,forMessage:F}}return i(),q.threadId}function h8(F){let k=G;if(!a_(X,k))return;F(k.trim()),u_(""),z4(k)}function g1(F){return R(F),{sent:!1,text:F}}async function z4(F){if(!a_(X,F))return g1(F);let k=W,b=await X4(!0).catch(()=>{return}),g=B;if(!g||g.threadId!==b||W!==k)return g1(F);let r=__(I_($().locale),"translate_attachment_caption"),G4={session:g,text:F};return K=G4,await g.send(F.trim()||r,()=>Y.consumeReady().map((r8)=>r8.summary)).finally(()=>{if(K===G4)K=void 0})?{sent:!0}:g1(F)}function u8(F){if(J.admits(F))J_((k)=>{let b=Q2(k??[],F);return k||b.length?b:k});switch(F.type){case"thread:deleted":if(V?.id===F.payload.threadId)N1();break;case"thread:run-started":if(F.payload.thread.id===V?.id&&X.session.isAgentWorking)D=F.payload.runId;B?.reattach(F.payload.thread);break;case"thread:run-finished":if(F.payload.runId===D)D=void 0;B?.transcriptUpdated(F.payload.thread);break;case"thread:messages-updated":B?.transcriptUpdated(F.payload.thread);break}}function c8(){m(),f(!0)}function p8(){N1(),x1(),m1()}function m1(){if(U)return;N=Q.onVisitorReplaced(p8);let F=!1;U=p4({getConfig:$,onEvent:u8,onOpen:()=>{if(F)c8();F=!0},onFailedOpen:()=>{if(!$().transport.getHeaders)Q.getCapabilities().catch(()=>{return})}}),y=N0(()=>J.read(()=>Q.listThreads()),{onAnswered:({show:k})=>S(k),onMissed:(k)=>{if(k!=="unreachable")J_((b)=>b??[])}}),m(),c_("load");for(let k of P.splice(0))k()}function x1(){if(!U)return;N?.(),U.close(),U=void 0,y?.(),E?.(),O?.(),c_("load")}function d8(){if($().viewMode==="full")i({sidebarOpen:!0});else i({screen:"threads"})}function l8(){if($().viewMode==="full")i({sidebarOpen:!1});else i({screen:"chat"})}function F1(){return X.capabilities?.messages===!0}function i8(F,k,b){if(!F1())return Promise.resolve();return B?.addToolResult(F,k,b)??Promise.resolve()}function n8(F,k){if(!F1())return Promise.resolve();return B?.respondToApproval(F,k)??Promise.resolve()}return{api:Q,getState:()=>X,getDraft:()=>G,subscribe:l,start:m1,stop:x1,setDraft:u_,submit:z4,sendDraft:h8,abort:()=>B?.abort()??Promise.resolve(),addToolResult:i8,respondToApproval:n8,openThread:Y4,newChat:g8,deleteThread:m8,attachFiles:Y.accept,removeAttachment:Y.remove,openHistory:d8,closeHistory:l8,toggleDebug:()=>i({debugMode:!X.debugMode}),retry:()=>{Q.retrySignIn(),x1(),m1()}}}function Y2(_){let{threads:$,selected:Q,capabilities:Z,debugMode:J}=_;return{threads:$,selected:Q,capabilities:Z,debugMode:J,isWorking:_.session.isAgentWorking}}function R0(_,$,Q,Z){let J=I_(Q.locale),Y=$.capabilities?.readOnly===!1?{newChat:_.newChat,deleteThread:(X)=>void _.deleteThread(X)}:void 0;function z(X){return{screen:X,viewMode:Q.viewMode??"helper",title:$.selected?.title??null,agentName:S_(Q.agentName,J),threadCount:$.threads?.length,isWorking:$.isWorking,debug:{shown:Boolean($.capabilities?.debug),on:$.debugMode},newChat:Y?.newChat,openHistory:_.openHistory,closeHistory:_.closeHistory,toggleDebug:_.toggleDebug}}return{chatHeader:z("chat"),threadsHeader:z("threads"),landing:{...w4($.capabilities,J,(X)=>void _.submit(X)),threads:$.threads,composer:Z,openThread:_.openThread,openHistory:_.openHistory},threadList:{threads:$.threads,selectedThreadId:$.selected?.id,openThread:_.openThread,...Y}}}var X2="allow-scripts allow-forms allow-popups";function p6(_,$){try{return _.contentWindow?.location.origin===$}catch{return!1}}function O0(_){let $=_.host.location.origin,Q=!1,Z=!1,J,Y=!1,z;function X(q){if(!Q)_.onState(q)}function G(){if(Q)return;Z=!1,X({phase:"error"})}function K(q){if(Q||Z)return;Z=!0,X({phase:"settling"});try{let B=_.submit(q);if(B instanceof Promise)B.catch(G)}catch{G()}}function V(q){if(!J)return;if(z===void 0||q.source!==z)return;let B=V4(q.data,q.origin,J);if(!B)return;K({status:B.status,reference:B.reference,result:B.result})}function W(){if(Q||Z)return;J=void 0,z=void 0,X({phase:"error"})}return _.host.addEventListener("message",V),{async start(){X({phase:"initiating"});try{let q=await _.initiate(),B=new URL(q.embedUrl);if(!/^https?:$/.test(B.protocol)){X({phase:"error"});return}let D=B.origin===$;Y=D&&_.trustSameOrigin===!0,J=q.embedOrigin,X({phase:"embedded",embedUrl:q.embedUrl,surface:q.surface,sandbox:D&&!Y?X2:`${X2} allow-same-origin`})}catch(q){let B=q instanceof B_&&q.status===404;X({phase:B?"unavailable":"error"})}},setSource(q){if(q!==null&&q!==void 0)z=q},frameLoaded(q){if(!Y&&p6(q,$))W()},cancel(){K({status:"cancelled"})},dispose(){Q=!0,_.host.removeEventListener("message",V)}}}async function s_(_,$){let Q=await import("leaflet"),Z=!$.interactive,J=Q.map(_,{center:$.center,zoom:$.zoom,zoomControl:!Z,dragging:!Z,scrollWheelZoom:!Z,doubleClickZoom:!Z,touchZoom:!Z,boxZoom:!Z,keyboard:!Z});Q.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(J);let Y=new ResizeObserver(()=>J.invalidateSize());return Y.observe(_),{leaflet:Q,map:J,dispose(){Y.disconnect(),J.remove()}}}var P1={position:void 0,locating:!1,locateFailed:!1,mapFailed:!1,submitting:!1,deliveryFailed:!1},d6={center:{lat:20,lng:0},zoom:2},l6=13,G2=16,i6=1e4;function E0(_,$){let Q=P1,Z=!1,J=!1,Y,z,X,G=0;function K(B){if(Q={...Q,...B},!Z)$.onState(Q)}function V(){let B=Q.position;if(!Y||!B)return;let{leaflet:D,map:U}=Y;if(z)z.setLatLng(B);else{let y=D.marker(B,{draggable:!Q.submitting}).addTo(U);y.on("dragend",()=>{let{lat:E,lng:O}=y.getLatLng();W({lat:E,lng:z2(O)})}),z=y}X?.remove(),X=B.accuracy?D.circle(B,{radius:B.accuracy}).addTo(U):void 0}function W(B){if(Q.submitting)return;G+=1,K({position:B,locating:!1,locateFailed:!1}),V()}function q(B){if(Z||J)return;J=!0,G+=1,z?.dragging?.disable(),K({submitting:!0,locating:!1,deliveryFailed:!1});let D=()=>{J=!1,z?.dragging?.enable(),K({submitting:!1,deliveryFailed:!0})};try{let U=$.submit(B);if(U instanceof Promise)U.catch(D)}catch{D()}}return{async start(){let B=$.center?{center:$.center,zoom:l6}:d6,D;try{D=await s_(_,{...B,interactive:!0})}catch{K({mapFailed:!0});return}if(Z){D.dispose();return}Y=D,D.map.on("click",(U)=>W({lat:U.latlng.lat,lng:z2(U.latlng.lng)})),V()},locate(){if(Q.locating||Q.submitting)return;if(!navigator.geolocation){K({locateFailed:!0});return}G+=1;let B=G;K({locating:!0,locateFailed:!1}),navigator.geolocation.getCurrentPosition(({coords:D})=>{if(Z||B!==G)return;let U={lat:D.latitude,lng:D.longitude,accuracy:Math.round(D.accuracy)};W(U),Y?.map.setView(U,G2)},()=>{if(B===G)K({locating:!1,locateFailed:!0})},{enableHighAccuracy:!0,timeout:i6})},confirm(){if(Q.position)q({status:"completed",result:Q.position})},cancel(){q({status:"cancelled"})},dispose(){Z=!0,Y?.dispose()}}}function A0(_,$,Q){let Z=!1,J;return s_(_,{center:$,zoom:G2,interactive:!1}).then((Y)=>{if(Z){Y.dispose();return}J=Y.dispose,Y.leaflet.marker($).addTo(Y.map)},()=>{if(!Z)Q()}),()=>{Z=!0,J?.()}}function z2(_){if(_>=-180&&_<=180)return _;return((_+180)%360+360)%360-180}function K2(_){if(!_||typeof _!=="object")return!1;let{lat:$,lng:Q}=_;return typeof $==="number"&&typeof Q==="number"&&Math.abs($)<=90&&Math.abs(Q)<=180}function k0(_){let $=_&&typeof _==="object"?_.center:void 0;return K2($)?$:void 0}function y0(_){if(!_||typeof _!=="object")return;let{status:$,result:Q}=_;if($!=="completed"||!K2(Q))return;let{accuracy:Z}=Q;return{...Q,...typeof Z==="number"?{accuracy:Z}:{}}}function L1(_){let $=`${_.lat.toFixed(4)}, ${_.lng.toFixed(4)}`;return _.accuracy?`${$} ±${_.accuracy} m`:$}function S0(_){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}}import{marked as n6}from"marked";import r6 from"dompurify";function t_(_,$=[]){if(!_)return"";let Q=document.createElement("template");if(Q.innerHTML=n6.parse(_,{async:!1}).replace(/<table>/g,'<div style="overflow-x:auto"><table style="width:max-content">').replace(/<\/table>/g,"</table></div>").replace(/<(t[hd])([\s>])/g,'<$1 style="padding:0.5rem 1rem"$2'),a6(Q.content),$.length)s6(Q.content,$);return r6.sanitize(Q.innerHTML,{FORBID_TAGS:["img","picture","source"]})}var o6=/[\p{Script=Arabic}\p{Script=Hebrew}]/u;function a6(_){for(let $ of Array.from(_.children))if($.localName!=="div")$.setAttribute("dir","auto");_.querySelectorAll("table").forEach(($)=>{let Q=/\p{L}/u.exec($.textContent??"")?.[0];if(!Q)return;let Z=o6.test(Q)?"rtl":"ltr";if($.setAttribute("dir",Z),$.parentElement?.childElementCount===1)$.parentElement.setAttribute("dir",Z)}),_.querySelectorAll("th, td").forEach(($)=>$.setAttribute("dir","auto")),_.querySelectorAll("pre").forEach(($)=>$.setAttribute("dir","ltr"))}function s6(_,$){let Q=[...$].sort((Y,z)=>Y.length-z.length),Z=Q[Q.length-1]?.length??0,J=0;for(let Y of t6(_)){if(J>=Z)break;Y.replaceWith(...e6(Y.data,J,Q)),J+=Y.data.length}}function t6(_){let $=document.createTreeWalker(_,4),Q=[];for(let Z=$.nextNode();Z;Z=$.nextNode())if(Z.data.trim())Q.push(Z);return Q.reverse()}function e6(_,$,Q){let Z=[],J=_.length;for(let Y of Q){if(Y.length<=$)continue;if(J<=0)break;let z=Math.min(J,Y.length-$);if(z<J&&/[\uDC00-\uDFFF]/.test(_.charAt(J-z)))z+=1;let X=document.createElement("span");X.className="cortex-stream-fade",X.style.animationDelay=`-${Y.age}ms`,X.textContent=_.slice(J-z,J),Z.unshift(X),J-=z,$+=z}if(J>0)Z.unshift(document.createTextNode(_.slice(0,J)));return Z}import{marked as D2}from"marked";var V2=/^ {0,3}(`{3,}|~{3,})(.*)$/;function W2(){let _=null;return($)=>{let Q=V2.exec($),Z=Q?.[1],J=Q?.[2]??"";if(Z){let Y=Z.charAt(0);if(_){if(Y===_.marker&&Z.length>=_.length&&J.trim()==="")return _=null,"close";return"inside"}if(Y==="`"&&J.includes("`"))return"outside";return _={marker:Y,length:Z.length},"open"}return _?"inside":"outside"}}function q2(_){return V2.exec(_)?.[2]?.trim().split(/\s+/)[0]??""}var _$=/^\s*!\[([^\]]*)\]\(attachment#([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)\s*$/i;function I0(_,$){if($.role!=="assistant")return[{kind:"markdown",text:_}];return $$(_,$.languages).map((Q)=>{switch(Q.kind){case"table":return{...Q,closed:Q.closed||!$.arriving};case"attachment":return{...Q,attachment:$.attachments?.find((Z)=>Z.id.toLowerCase()===Q.id)};default:return Q}})}function $$(_,$){let Q=[],Z=[],J=null;function Y(K=!1){if(Z.length)Q.push(...Z$(Z.join(`
4
- `),K));Z=[]}function z(K){if(J)Q.push({kind:"media",...J,source:J.source.join(`
5
- `),closed:K});J=null}let X=W2(),G=_.split(`
6
- `);for(let[K,V]of G.entries()){let W=X(V);if(J){if(W==="close")z(!0);else J.source.push(V);continue}if(W==="open"&&K===G.length-1)break;let q=Q$(V,W,$);if(!q){Z.push(V);continue}if(Y(),q.kind==="media")J={language:q.language,source:[]};else Q.push(q)}return z(!1),Y(!0),Q}function Q$(_,$,Q){if($==="open"){let J=q2(_),Y=Q.find((z)=>z===J);return Y?{kind:"media",language:Y}:void 0}let Z=$==="outside"?_$.exec(_):null;return Z?{kind:"attachment",alt:Z[1]??"",id:(Z[2]??"").toLowerCase()}:void 0}function Z$(_,$){let Q=D2.lexer(_);if(!Q.some((V)=>V.type==="table"))return[{kind:"markdown",text:_}];let Z=[];D2.walkTokens(Q,(V)=>{if(V.type==="def")Z.push(V.raw.trim())});let J=Z.join(`
7
- `),Y=(V)=>J?`${J}
8
-
9
- ${V}`:V,z=[],X="";function G(){if(X.trim())z.push({kind:"markdown",text:Y(X)});X=""}let K=Q.filter((V)=>V.type!=="def");for(let[V,W]of K.entries()){if(W.type!=="table"){X+=W.raw;continue}G();let q=K.slice(V+1).some((B)=>B.raw.trim()!=="");z.push({kind:"table",text:Y(W.raw.trimEnd()),closed:q||!$})}return G(),z}function R1(_,$){let Q=URL.createObjectURL(_),Z=document.createElement("a");Z.href=Q,Z.download=$,document.body.append(Z),Z.click(),Z.remove(),setTimeout(()=>URL.revokeObjectURL(Q),40000)}var J$=/^-?(?:0|[1-9]\d*)(?:\.\d*[1-9])?$/;function Y$(_){return J$.test(_)&&_!=="-0"&&_.replace(/[-.]/g,"").replace(/^0/,"").length<=15}var X$=32767,B2=new TextEncoder;function C0(_){let $=_.querySelector("table");if($)R1(K$(z$($)),"table.xlsx")}function z$(_){return Array.from(_.rows,($)=>Array.from($.cells,G$))}function G$(_){let $=_.cloneNode(!0);if($ instanceof Element)$.querySelectorAll("br").forEach((Q)=>Q.replaceWith(`
10
- `));return($.textContent??"").trim()}function K$(_){return new Blob([F$(D$(_))],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}function V$(_){return _.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\ufffe\uffff]/g,"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/_(x[0-9a-f]{4}_)/gi,"_x005F_$1")}function W$(_){let $="";for(let Q=_+1;Q>0;Q=Math.floor((Q-1)/26))$=String.fromCharCode(65+(Q-1)%26)+$;return $}function q$(_){return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetData>${_.map((Q,Z)=>{let J=Q.map((Y,z)=>{let X=`${W$(z)}${Z+1}`,G=Z===0?' s="1"':"";return Z>0&&Y$(Y)?`<c r="${X}"${G}><v>${Y}</v></c>`:`<c r="${X}"${G} t="inlineStr"><is><t xml:space="preserve">${V$(Y.slice(0,X$))}</t></is></c>`}).join("");return`<row r="${Z+1}">${J}</row>`}).join("")}</sheetData></worksheet>`}function D$(_){return[{name:"[Content_Types].xml",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/></Types>'},{name:"_rels/.rels",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>'},{name:"xl/workbook.xml",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/></sheets></workbook>'},{name:"xl/_rels/workbook.xml.rels",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>'},{name:"xl/styles.xml",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><fonts count="2"><font><sz val="11"/><name val="Calibri"/></font><font><b/><sz val="11"/><name val="Calibri"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border/></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="2"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>'},{name:"xl/worksheets/sheet1.xml",text:q$(_)}]}var B$=Array.from({length:256},(_,$)=>{let Q=$;for(let Z=0;Z<8;Z++)Q=Q&1?3988292384^Q>>>1:Q>>>1;return Q>>>0});function N$(_){let $=4294967295;for(let Q of _)$=(B$[($^Q)&255]??0)^$>>>8;return($^4294967295)>>>0}function F$(_){let $=[],Q=[],Z=0;for(let K of _){let V=B2.encode(K.name),W=B2.encode(K.text),q=N$(W),B=new DataView(new ArrayBuffer(30));B.setUint32(0,67324752,!0),B.setUint16(4,20,!0),B.setUint16(6,2048,!0),B.setUint32(14,q,!0),B.setUint32(18,W.length,!0),B.setUint32(22,W.length,!0),B.setUint16(26,V.length,!0),$.push(new Uint8Array(B.buffer),V,W);let D=new DataView(new ArrayBuffer(46));D.setUint32(0,33639248,!0),D.setUint16(4,20,!0),D.setUint16(6,20,!0),D.setUint16(8,2048,!0),D.setUint32(16,q,!0),D.setUint32(20,W.length,!0),D.setUint32(24,W.length,!0),D.setUint16(28,V.length,!0),D.setUint32(42,Z,!0),Q.push(new Uint8Array(D.buffer),V),Z+=30+V.length+W.length}let J=Q.reduce((K,V)=>K+V.length,0),Y=new DataView(new ArrayBuffer(22));Y.setUint32(0,101010256,!0),Y.setUint16(8,_.length,!0),Y.setUint16(10,_.length,!0),Y.setUint32(12,J,!0),Y.setUint32(16,Z,!0);let z=[...$,...Q,new Uint8Array(Y.buffer)],X=new Uint8Array(z.reduce((K,V)=>K+V.length,0)),G=0;for(let K of z)X.set(K,G),G+=K.length;return X}function b0(_,$,Q){let Z=!1,J;return Q({url:void 0,failed:!1}),_.downloadAttachment($).then(({blob:Y})=>{if(Z)return;J=URL.createObjectURL(Y),Q({url:J,failed:!1})},()=>{if(!Z)Q({url:void 0,failed:!0})}),()=>{if(Z=!0,J)URL.revokeObjectURL(J)}}async function T0(_,$){let Q=await _.downloadAttachment($).catch(()=>{return});if(Q)R1(Q.blob,Q.name)}var H2=new Set(["flatten","fold","density","impute","regression","loess","quantile","sample"]),H$=`Use Vega-Lite JSON with inline \`data.values\` only, at most 200 rows, and no \`url\` anywhere. Compute folds, trend lines and densities yourself. For several series, write one row per series and x value, or keep one row per x value and draw a layer per series (color by \`datum\`) when that would exceed the row limit. These keys are refused anywhere in the spec: ${[...H2,"params","selection"].join(", ")}. Expressions in \`calculate\`, \`filter\` and \`labelExpr\` may use only datum fields, literals, operators and simple math or date-part functions (no format or timeFormat), so put formatted values in the rows or use an axis \`format\`.`;function U2(_,$){if(_==="url")return"Charts may only use inline data and no URLs.";if(_==="sequence"||_==="graticule")return"Charts may only use inline data.";if(H2.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(U$.has(_)&&typeof $==="string"&&!M$($))return"Charts may only use simple expressions over datum.";if(_==="usermeta")return"Charts may not carry usermeta.";if(typeof $==="string"&&O1($))return"Charts may not reference URLs.";if((_==="width"||_==="height")&&P$($)>4000)return"Charts may be at most 4000 pixels wide or tall.";return}var U$=new Set(["calculate","filter","test","signal","labelExpr"]),N2=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 M$(_){if(_.length>500||/[\\`]/.test(_))return!1;let $=_.replace(/'[^']*'|"[^"]*"/g,'""');for(let[,Z]of $.matchAll(/([A-Za-z_$][\w$]*)\s*\(/g))if(!N2.has(Z??""))return!1;let Q=$.replace(/(datum|parent)(\s*\.[\w$]+|\s*\[\s*""\s*\])+|\b\d[\w.]*/g,"").matchAll(/[A-Za-z_$][\w$]*/g);for(let[Z]of Q)if(!N2.has(Z)&&!["true","false","null"].includes(Z))return!1;return!0}function P$(_){if(typeof _==="number")return _;let $=_?.step;return typeof $==="number"?$:0}function F2(_,$){let Q=_?.features,Z=Array.isArray(_)?_.length:Array.isArray(Q)?Q.length:-1;if(Z<0)return U2($,_)??f0(v0(_,$),e_);return Z>200?"Charts may hold at most 200 rows.":void 0}function e_(_,$=""){if($==="values")return F2(_,$);if($==="datasets")return f0(v0(_),F2);return U2($,_)??f0(v0(_,$),(Q,Z)=>e_(Q,Z))}function v0(_,$=""){if(Array.isArray(_))return _.map((Q)=>[$,Q]);return _&&typeof _==="object"?Object.entries(_):[]}function f0(_,$){for(let[Q,Z]of _){let J=$(Z,Q);if(J)return J}return}var M2=/url\(([^)]*)\)/gi,w0="src|image|image-set|-webkit-image-set|cross-fade|element",j0=new RegExp(String.raw`\b(url|${w0})\(`,"i"),L$=new RegExp(String.raw`\b(${w0})\(`,"i"),R$=new RegExp(String.raw`\b(${w0})\([^)]*\)`,"gi"),O$=/\\([0-9a-f]{1,6})\s?|\\(.)/gi,E$=/@import[^;]*;?/gi;function A$(_){return _.replace(O$,($,Q,Z)=>{if(!Q)return Z??"";let J=parseInt(Q,16),Y=J===0||J>=55296&&J<=57343||J>1114111;return String.fromCodePoint(Y?65533:J)})}function P2(_){return _.trim().replace(/^(['"])(.*)\1$/s,"$2").trim()}function O1(_){if(_.includes("\\")||L$.test(_))return!0;for(let[,$]of _.matchAll(M2))if(!P2($??"").startsWith("#"))return!0;return!1}function g0(_){return A$(_).replaceAll("\\"," ").replace(E$," ").replace(R$,"none").replace(M2,($,Q)=>P2(Q).startsWith("#")?$:"none")}var k$=new Set(["src","srcset","poster","background","action","formaction","ping"]);function _1(_){for(let $ of[_,..._.querySelectorAll("*")]){for(let Q of[...$.attributes])if(k$.has(Q.name)||(Q.name==="href"||Q.name==="xlink:href")&&$.localName!=="a"&&!Q.value.trim().startsWith("#")||O1(Q.value))$.removeAttribute(Q.name);if($.localName==="style"&&$.textContent)$.textContent=g0($.textContent)}}var y$=`
1
+ import{useEffect as oc,useMemo as Fa,useState as ac}from"react";var Ja=["completed","cancelled","failed"],_t="requestLocation";function cr(e,t,n){if(t!==n)return null;if(typeof e!=="object"||e===null)return null;let r=e;if(r.type!=="cortex:client-tool")return null;let o=Ja.find((i)=>i===r.status);if(!o)return null;let a=r.reference;return{type:"cortex:client-tool",status:o,...typeof a==="string"?{reference:a}:{},...r.result!==void 0?{result:r.result}:{}}}var Ut=["en","ar"],dr=Ut[0],ur={en:"ltr",ar:"rtl"};var Be=["image/png","image/jpeg","image/webp","application/pdf"],Wt=10485760,Xa=255,Bt=5;function pr(e){if(!Be.some((t)=>t===e.type))return"type";if(e.size>Wt)return"size";if(e.name.length>Xa)return"name";return"ok"}var mr="cortex_visitor";function $e(e,t){return e[t]??e.en??Object.values(e)[0]}var fr=["executeCode","queryDataset","describeDataset"],Za="approvalTitle";function $t(e,t){if(!e||typeof e!=="object")return;let n=Reflect.get(e,t);return typeof n==="string"&&n.trim()?n.trim():void 0}function gr(e){return $t(e,Za)}function jt(e){return e.metadata?.cortex??void 0}function zt(e){return{...e,role:e.role==="trigger"?"user":e.role}}var _r="clientToolAnswers";function hr(e){return e.approval?.id??`approval_${e.id}`}function xr(e){return e.approval!==void 0||e.state==="approval-requested"}var qt="X-Cortex-Timezone",yr="X-Cortex-Operator",br="X-Cortex-Inspect",Ya=["busy","approval_pending","budget","rate_limited"],dc=[...Ya,"invalid_payload","missing_thread_key","no_turn","no_output","invalid_output"];function vr(e){if(e>=500)return"lost";return e>=400?"refused":"persisted"}var Qa=new Set(["complete","error"]);function X(e){return Qa.has(e)}function be(e){return(es(e)?.parts??[]).filter((n)=>n.type==="tool-call"&&!X(n.state))}function Tr(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n?.parts.some((o)=>o.type==="tool-call"&&o.state==="approval-requested"))return!0;if(n?.role==="user")return!1}return!1}function Vt(e){let t=e.at(-1);if(t?.role!=="assistant")return;let n=t.parts.at(-1),r=n?.type==="tool-call"||n?.type==="tool-result",o=t.parts.every((a)=>a.type!=="tool-call"||X(a.state));return r&&o?void 0:t}function es(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n?.role==="assistant")return n}return}var ts={complete:"success",error:"error","approval-requested":"approval","approval-responded":"approval","awaiting-input":"pending","input-streaming":"pending","input-complete":"pending"},ns={"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 Gt(e){let{state:t,approval:n}=e;return{modifier:ts[t],labelKey:n?.approved===!1?"translate_declined":t==="approval-responded"&&n?.approved?"translate_approved":ns[t],pulse:t==="awaiting-input"||t==="input-streaming"?"default":t==="approval-requested"?"violet":void 0}}function wr(e){let t=e.output;if(t===void 0||t===null)return"";if(typeof t==="string")return t;return JSON.stringify(t,null,2)}var Cr={code:"javascript"};function Kt(e){let t=e&&typeof e==="object"?e:null,n=t?Object.entries(Cr).flatMap(([o,a])=>{let i=t[o];return typeof i==="string"?[{key:o,lang:a,value:i.replace(/\\n/g,`
2
+ `)}]:[]}):[],r=e;if(t){let o=Object.fromEntries(Object.entries(t).filter(([a])=>!Object.hasOwn(Cr,a)));r=Object.keys(o).length>0?o:null}return{codeSnippets:n,remainingInput:r,remainingInputText:r?JSON.stringify(r,null,2):""}}var rs=10,os={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function as(e){let t=e.output;if(typeof t==="string")try{t=JSON.parse(t)}catch{return}if(!t||typeof t!=="object")return;if("error"in t&&t.error===!0)return"failed";if(!jt(e)?.embed||!("status"in t))return;let n=t.status;return n==="failed"||n==="cancelled"?n:void 0}function ss(e){let t=e.output;if(!t||typeof t!=="object"||!("rowCount"in t))return;let n=t.rowCount;return typeof n==="number"?n:void 0}function is(e,t,n){if(n==="declined")return"translate_declined";if(n==="cancelled")return"translate_tool_cancelled";if(t==="error")return"translate_tool_error";if(t==="approval")return"translate_needs_approval";return`translate_${e.name==="readAttachment"?"attachment":"tool"}_${t==="complete"?"done":"status"}`}function je(e){let t=e.approval?.approved===!1?"declined":e.state==="complete"?as(e):void 0,n=t?"error":os[e.state]??"processing";return{state:n,active:n==="starting"||n==="processing",gated:xr(e),titleKey:is(e,n,t),statement:fr.some((r)=>r===e.name)?$t(e.input,"status"):void 0,rows:n==="complete"?ss(e):void 0}}function Jt(e){let t=e.approval?.approved,{state:n,active:r}=je(e),o=t===void 0?e.state==="approval-requested"?"pending":"cancelled":!t?"declined":n==="error"?"failed":"approved";return{title:gr(e.input),fallbackKey:"translate_approval_action",fallbackParams:{tool:cs(e.name)},decision:o,decisionKey:ls[o],state:n,active:r}}var ls={pending:void 0,approved:"translate_approved",declined:"translate_declined",failed:"translate_approved_failed",cancelled:"translate_approval_cancelled"};function cs(e){let t=e.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return t.charAt(0).toUpperCase()+t.slice(1)}function Xt(e){return Array.from({length:rs},(t,n)=>`translate_${e}_${n}`)}function ze(e,t){return e.filter((n,r)=>{if(n.type==="tool-result")return!1;if(t.debugMode)return!0;if(n.type==="text"&&!n.content.trim())return!1;let o=r===e.length-1;return n.type!=="thinking"||t.isStreaming&&o})}var ds=[_t];function kr(e){return ds.find((t)=>t===e)}function Sr(e,t){let{consumerTools:n,capabilities:r}=t;if(r?.messages!==!0&&!X(e.state))return;return n&&Object.hasOwn(n,e.name)?n[e.name]:void 0}function Mr(e,t){if(Sr(e,t))return!1;return!kr(e.name)||!X(e.state)}function Zt(e,t){let n=je(e),r=t.capabilities?.messages===!0&&!t.agentWorking;if(e.state==="approval-requested"&&r)return{kind:"approval",asking:!0};if(t.debugMode)return{kind:"debug"};let o=Sr(e,t);if(o)return{kind:"consumer",component:o};let a=e.state==="input-complete"&&r,i=a||X(e.state)?kr(e.name):void 0;if(i)return{kind:"builtIn",component:t.builtInTools[i]};if(a&&!t.embedUnavailable&&jt(e)?.embed)return{kind:"embed"};if(e.name==="executeCode"&&!X(e.state)&&!n.statement)return{kind:"activity",activity:"code"};if(n.gated)return{kind:"approval",asking:!1};return{kind:"pill"}}function Yt(e){let t=e.approval?.id;switch(e.state){case"complete":return{kind:"output",text:wr(e)};case"error":return{kind:"error",text:wr(e)};case"approval-requested":return{kind:"approval",approvalId:t,labelKey:"translate_approval_requested",messageKey:"translate_waiting_for_approval"};case"approval-responded":return{kind:"approval",approvalId:t,labelKey:"translate_approval_response",messageKey:e.approval?.approved?"translate_tool_approved":"translate_tool_response_received"};default:return}}var Qt=new WeakMap;function en(e,t){let n=e.closest(".cortex-widget__screen"),r=n?.querySelector(".cortex-message-list");if(!n||!r||!e.value.trim())return;let o=getComputedStyle(e),a=e.getBoundingClientRect(),i=(s)=>parseFloat(o[`padding${s}`])+parseFloat(o[`border${s}Width`]);Qt.set(n,{text:t,textarea:e,from:new DOMRect(a.left+i("Left"),a.top+i("Top"),a.width-i("Left")-i("Right"),a.height-i("Top")-i("Bottom")),rtl:o.direction==="rtl",scrollTop:r.scrollTop})}function us(e,t){let n=e.closest(".cortex-widget__screen"),r=n?Qt.get(n):void 0;if(!n||!r)return;Qt.delete(n);let o=e.querySelectorAll(":scope > .cortex-message"),a=o[o.length-1]?.querySelector(".cortex-text-bubble--user"),i=e.closest(".cortex-message-list");if(!a||!i||r.text!==t||!r.textarea.isConnected)return;a.closest(".cortex-message-part")?.getAnimations().forEach((C)=>C.finish()),Lr(i);let s=a.getBoundingClientRect(),l=n.getBoundingClientRect(),c=getComputedStyle(a),d=parseFloat(c.paddingTop)+parseFloat(c.borderTopWidth),u=r.rtl?parseFloat(c.paddingRight)+parseFloat(c.borderRightWidth):parseFloat(c.paddingLeft)+parseFloat(c.borderLeftWidth),p=r.rtl?r.from.right+u-s.width:r.from.left-u,f=i.scrollTop-r.scrollTop;if(f)e.style.setProperty("--cortex-slide",`${f}px`),e.classList.remove("cortex-message-list__content--settling"),e.offsetWidth,e.classList.add("cortex-message-list__content--settling"),e.getAnimations()[0]?.finished.then(()=>e.classList.remove("cortex-message-list__content--settling"),()=>{return});let m=a.cloneNode(!0);m.classList.add("cortex-send-flight"),m.setAttribute("aria-hidden","true"),Object.assign(m.style,{left:`${s.left-l.left}px`,top:`${s.top-l.top}px`,width:`${s.width}px`}),m.style.setProperty("--cortex-fly-x",`${p-s.left}px`),m.style.setProperty("--cortex-fly-y",`${r.from.top-d-s.top}px`),a.style.visibility="hidden",n.append(m);let x=i.scrollTop,M=()=>{m.style.top=`${s.top-l.top-(i.scrollTop-x)}px`};i.addEventListener("scroll",M,{passive:!0}),Er(m).then(()=>{i.removeEventListener("scroll",M),a.style.visibility="",m.remove()})}function Lr(e){e.scrollTop=Ar(e)}var ps=100;function tn(e,t){let n=!0,r=!0,o=!1,a=0,i;function s(){if(o)return;o=!0,queueMicrotask(()=>{o=!1,Lr(e),r=!0,n=!1})}function l(){r=Ar(e)-e.scrollTop<ps}let c=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([d])=>{let u=d?.contentRect.height??0,p=u>a;if(a=u,p&&(n||r))s()});return c?.observe(t),e.addEventListener("scroll",l,{passive:!0}),s(),{pin(){n=!0},messagesChanged(d){if(d?.role==="user"&&d.id!==i){i=d.id,n=!0;let u=d.parts.find((p)=>p.type==="text")?.content;if(u!==void 0)us(t,u)}if(n)s()},dispose(){c?.disconnect(),e.removeEventListener("scroll",l)}}}function Ar(e){let t=e.querySelector(".cortex-message-list__content");if(!t)return e.scrollHeight-e.clientHeight;let n=getComputedStyle(e);return t.offsetHeight+parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)-e.clientHeight}function nn(e){let t=!1,n=e.parentElement,r=typeof ResizeObserver>"u"?void 0:new ResizeObserver(()=>{if(t)o()});r?.observe(n);function o(){let a=n.querySelector(":scope > .cortex-working-thinking, :scope > .cortex-message > .cortex-message-parts > [data-cortex-frontier]");if(!a)return!1;return e.style.setProperty("--cortex-avatar-y",`${ms(a,n)-e.offsetHeight/2}px`),!0}return{sync(a){if(a===t){if(a)o();return}if(a){if(!o())return;e.classList.remove("cortex-working-avatar--leaving"),e.offsetWidth,e.classList.add("cortex-working-avatar--shown"),t=!0;return}t=!1;let[,i="0px"]=getComputedStyle(e).translate.split(" ");e.style.setProperty("--cortex-avatar-y",i),e.classList.add("cortex-working-avatar--leaving"),Er(e,!0).then(()=>{if(t)return;e.classList.remove("cortex-working-avatar--shown","cortex-working-avatar--leaving")})},dispose(){r?.disconnect()}}}function ms(e,t){let n=e.querySelector(".cortex-text-bubble");if(!n)return Nr(e,t)+e.offsetHeight/2;let r=getComputedStyle(n);return Nr(n,t)+parseFloat(r.paddingTop)+parseFloat(r.borderTopWidth)+parseFloat(r.lineHeight)/2}function Nr(e,t){let n=0;for(let r=e;r instanceof HTMLElement&&r!==t;)n+=r.offsetTop,r=r.offsetParent;return n}function Er(e,t=!1){return Promise.allSettled(e.getAnimations({subtree:t}).map((n)=>n.finished))}function rn(e,t){let n=0,r,o;function a(){r=setTimeout(()=>{t({index:n,phase:"exiting"}),r=setTimeout(()=>{n=(n+1)%e,t({index:n,phase:"enter-start"}),o=requestAnimationFrame(()=>{t({index:n,phase:"entering"}),r=setTimeout(()=>{t({index:n,phase:"idle"}),a()},300)})},300)},2000)}return a(),()=>{if(clearTimeout(r),o!==void 0)cancelAnimationFrame(o)}}function on(e,t){function n(){t.sendDraft((l)=>en(e,l))}function r(l){if(l.key!=="Enter"||l.shiftKey)return;l.preventDefault(),n()}function o(){e.style.overflowY="hidden",e.style.height="0px",e.style.height=`${e.scrollHeight+1}px`,e.style.overflowY=""}let a=0,i=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([l])=>{let c=l?.borderBoxSize[0]?.inlineSize??0;if(c===a)return;a=c,requestAnimationFrame(o)});function s(){e.removeEventListener("keydown",r),i?.disconnect()}return e.style.transition="none",e.addEventListener("keydown",r),i?.observe(e,{box:"border-box"}),{send:n,fit:o,dispose:s}}function an(e){return{onDragOver:(t)=>{if(t.preventDefault(),e.enabled)e.setDragging(!0)},onDragLeave:(t)=>{if(!t.currentTarget?.contains(t.relatedTarget))e.setDragging(!1)},onDrop:(t)=>{if(t.preventDefault(),e.setDragging(!1),e.enabled)e.accept([...t.dataTransfer?.files??[]])},onPaste:(t)=>{let n=[...t.clipboardData?.files??[]];if(!e.enabled||!n.length)return;t.preventDefault(),e.accept(n)}}}var Rr={translate_history:"السجل",translate_back:"رجوع",translate_greeting:"بماذا يمكنني مساعدتك اليوم؟",translate_conversations:{zero:"لا محادثات",one:"محادثة واحدة",two:"محادثتان",few:"{{count}} محادثات",many:"{{count}} محادثة",other:"{{count}} محادثة"},translate_no_threads_yet:"لا توجد محادثات بعد",translate_start_a_new_conversation:"ابدأ محادثة جديدة",translate_untitled:"بدون عنوان",translate_new_chat:"محادثة جديدة",translate_normal:"عادي",translate_debug:"تصحيح",translate_type_a_message:"اكتب رسالة...",translate_completed:"مكتمل",translate_attach_files:"إرفاق ملفات",translate_drop_files_here:"أفلت ملفاتك هنا...",translate_remove_attachment:"إزالة المرفق",translate_attachment_rejected:"لا يمكن إرفاق هذا الملف",translate_attachment_rejected_type:"يمكن إرفاق ملفات {{types}} فقط",translate_attachment_rejected_size:"الحد الأقصى لحجم الملف {{size}} ميغابايت",translate_attachment_rejected_name:"اسم الملف طويل جدًا",translate_attachment_rejected_count:{zero:"لا يمكن إرفاق ملفات بالرسالة",one:"يمكن إرفاق ملف واحد كحد أقصى لكل رسالة",two:"يمكن إرفاق ملفين كحد أقصى لكل رسالة",few:"يمكن إرفاق {{count}} ملفات كحد أقصى لكل رسالة",many:"يمكن إرفاق {{count}} ملفًا كحد أقصى لكل رسالة",other:"يمكن إرفاق {{count}} ملف كحد أقصى لكل رسالة"},translate_attachment_caption:"من فضلك اطّلع على الملفات المرفقة.",translate_download:"تنزيل",translate_tool_status:"جارٍ تنفيذ خطوة…",translate_tool_done:"اكتملت الخطوة",translate_tool_cancelled:"أُلغيت الخطوة",translate_rows:{zero:"لا صفوف",one:"صف واحد",two:"صفان",few:"{{count}} صفوف",many:"{{count}} صفًا",other:"{{count}} صف"},translate_more_steps:{zero:"ولا خطوات أخرى",one:"وخطوة أخرى",two:"وخطوتان أخريان",few:"و{{count}} خطوات أخرى",many:"و{{count}} خطوة أخرى",other:"و{{count}} خطوة أخرى"},translate_tool_error:"حدث خطأ",translate_attachment_status:"جارٍ قراءة الملف المرفق…",translate_attachment_done:"تمت قراءة الملف المرفق",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_error:"خطأ",translate_approval_pending:"وافق على الطلب أعلاه أو ارفضه أولًا.",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_read_only:"أنت تطّلع على هذه المحادثة. لا يمكن إرسال شيء من هنا.",translate_access_refused:"لم يقبل هذا الوكيل تسجيل دخولك.",translate_visitor_unverified:"لم نتمكن من التأكد من أنك شخص حقيقي.",translate_agent_unreachable:"تعذّر الوصول إلى هذا الوكيل الآن. نعيد المحاولة...",translate_agent_missing:"هذا الوكيل غير متاح.",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_pending_report:"جارٍ كتابة التقرير",translate_media_cut_off:"انقطع هذا المقطع قبل اكتماله.",translate_media_failed:"تعذر عرض هذا المقطع.",translate_media_source:"المصدر",translate_media_pending:"جارٍ الرسم",translate_media_mermaid:"مخطط",translate_media_vega_lite:"رسم بياني",translate_media_map:"خريطة",translate_media_report:"تقرير",translate_media:"معاينة",translate_image_unavailable:"الصورة غير متاحة",translate_image_unavailable_alt:"الصورة غير متاحة: {{alt}}",translate_image:"صورة",translate_send:"إرسال",translate_stop:"إيقاف",translate_delete_conversation:"حذف المحادثة",translate_table:"جدول",translate_expand:"توسيع {{name}}",translate_table_export:"تصدير إلى Excel",translate_close:"إغلاق",translate_approval_needed:"بحاجة إلى موافقتك",translate_approval_action:"تنفيذ {{tool}}",translate_approved_failed:"تمت الموافقة لكنه فشل",translate_approval_cancelled:"لم يُتخذ قرار"};var Ir={translate_history:"History",translate_back:"Back",translate_greeting:"What can I help you with today?",translate_conversations:{one:"1 conversation",other:"{{count}} conversations"},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_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_rejected_type:"Only {{types}} files can be attached",translate_attachment_rejected_size:"Files can be up to {{size}} MB",translate_attachment_rejected_name:"The file name is too long",translate_attachment_rejected_count:{one:"Up to 1 file per message",other:"Up to {{count}} files per message"},translate_attachment_caption:"Please take a look at the attached files.",translate_download:"Download",translate_tool_status:"Running a step...",translate_tool_done:"Step completed",translate_tool_cancelled:"Step cancelled",translate_rows:{one:"1 row",other:"{{count}} rows"},translate_more_steps:{one:"and 1 more step",other:"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_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_error:"Error",translate_approval_pending:"Approve or deny the request above first.",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_read_only:"You're viewing this conversation. Nothing can be sent from here.",translate_access_refused:"This agent did not accept your sign-in.",translate_visitor_unverified:"We couldn't confirm you're a person.",translate_agent_unreachable:"This agent cannot be reached right now. Trying again...",translate_agent_missing:"This agent is not available.",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_pending_report:"Writing report",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_media_mermaid:"Diagram",translate_media_vega_lite:"Chart",translate_media_map:"Map",translate_media_report:"Report",translate_media:"Preview",translate_image_unavailable:"Image unavailable",translate_image_unavailable_alt:"Image unavailable: {{alt}}",translate_image:"Image",translate_send:"Send",translate_stop:"Stop",translate_delete_conversation:"Delete conversation",translate_table:"Table",translate_expand:"Expand {{name}}",translate_table_export:"Export to Excel",translate_close:"Close",translate_approval_needed:"Needs your approval",translate_approval_action:"Run {{tool}}",translate_approved_failed:"Approved, but it failed",translate_approval_cancelled:"Not decided"};var _s={en:Ir,ar:Rr};function Me(e){return e&&Ut.includes(e)?e:dr}function Y(e,t,n){let r=_s[e][t],o=typeof r==="string"?r:r[new Intl.PluralRules(e).select(Number(n?.count))]??r.other;if(!n)return o;return o.replace(/\{\{\s*(\w+)\s*\}\}/g,(a,i)=>(i in n)?String(n[i]):a)}function Or(e,t,n){let r=e!==void 0&&e.messages!==!1;return{greeting:e===void 0?"":$e(e.greeting,t)||Y(t,"translate_greeting"),suggestions:r&&$e(e.suggestions,t)||[],send:(o)=>{if(r)n(o)}}}var Pr="cortex-recaptcha-enterprise",sn;function hs(e){return sn??=new Promise((t,n)=>{let r=()=>{let a=window.grecaptcha?.enterprise;if(a)a.ready(()=>t(a));else n(Error("reCAPTCHA Enterprise did not load"))};if(document.getElementById(Pr))return r();let o=document.createElement("script");o.id=Pr,o.src=`https://www.google.com/recaptcha/enterprise.js?render=${encodeURIComponent(e)}`,o.async=!0,o.addEventListener("load",r,{once:!0}),o.addEventListener("error",()=>{o.remove(),n(Error("reCAPTCHA Enterprise failed to load"))},{once:!0}),document.head.appendChild(o)}).catch((t)=>{throw sn=void 0,t}),sn}function Fr(e,t=document){for(let n of t.querySelectorAll(".grecaptcha-badge")){let r=n.querySelector("iframe")?.getAttribute("src");if(r&&new URL(r,"https://www.google.com").searchParams.get("k")===e)n.style.visibility="hidden"}}async function Hr(e){let t=await hs(e);Fr(e);let n=await t.execute(e,{action:mr});return Fr(e),n}class ge extends Error{status;constructor(e,t){super(`HTTP ${e}: ${t}`);this.status=e;this.name="CortexHttpError"}}class Ke extends Error{constructor(){super("The visitor check failed");this.name="CortexVisitorUnverified"}}var dn="cortex:visitor:",Ge=new Map,qe=new Map,un=new Set,ln=new Set;function Ur(e){try{return localStorage.getItem(dn+e)}catch{return null}}function Wr(e,t){try{if(t===null)localStorage.removeItem(dn+e);else localStorage.setItem(dn+e,t)}catch{}}async function Dr(e,t){let n=await fetch(`${e}/visitors`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(n.status===403)return await n.json();if(!n.ok)throw new ge(n.status,n.statusText);return await n.json()}async function xs(e){let t=await Dr(e,{});if("error"in t&&t.error==="recaptcha_required")t=await Dr(e,{recaptcha:await Hr(t.siteKey)});if("error"in t)throw new Ke;return un.add(t.token),Wr(e,t.token),t.token}function ys(e){let t=Ge.get(e)??Ur(e);if(t)return Ge.set(e,t),Promise.resolve(t);let n=qe.get(e);if(!n){n=xs(e),qe.set(e,n);let r=n,o=()=>{if(qe.get(e)===r)qe.delete(e)};r.then((a)=>{o(),Ge.set(e,a)},(a)=>{if(!(a instanceof Ke))o()})}return n}function bs(e,t){let n=Ge.get(e)===t;if(n)Ge.delete(e);let r=Ur(e)===t;if(r)Wr(e,null);return n||r}function pn(e){if(!e.getHeaders)return ys(Ve(e,"")).then((n)=>cn({Authorization:`Bearer ${n}`}));let t=e.getHeaders();return t instanceof Promise?t.then(cn):Promise.resolve(cn(t))}function cn(e){let t={...e},n=vs(),r=Object.keys(t).some((o)=>o.toLowerCase()===qt.toLowerCase());if(n&&!r)t[qt]=n;return t}function vs(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function Ve(e,t){let n=e.baseUrl;return(typeof n==="string"?n:n()).replace(/\/$/,"")+t}function Ts(e){let t=e?.match(/filename\*\s*=\s*[^']*'[^']*'([^;\r\n]+)/i)?.[1]?.trim().replace(/^"|"$/g,"");if(t)try{return decodeURIComponent(t)}catch{}return e?.match(/filename\s*=\s*"?([^";\r\n]+)"?/i)?.[1]}function Br(e){function t(){return pn(e())}function n(a){return Ve(e(),a)}function r(a,i){let s=e(),l=new Headers(i).get("Authorization")?.replace(/^Bearer /,"");if(s.getHeaders||l===void 0)return;if(a.ok)un.delete(l);if(a.status!==401)return;let c=Ve(s,""),d=bs(c,l);if(un.delete(l))return"refused";if(d){for(let u of[...ln])if(u.visitorOf()===c)u.heard()}return"stale"}async function o(a,i,s=!1){let l=new Headers(await t());if(new Headers(i?.headers).forEach((u,p)=>{l.set(p,u)}),i?.body instanceof FormData)l.delete("Content-Type");else if(!l.has("Content-Type"))l.set("Content-Type","application/json");let c=await fetch(n(a),{...i,headers:l});if(!c.ok){if(r(c,l)==="stale"&&!s)return o(a,i,!0);throw new ge(c.status,c.statusText)}r(c,l);let d=await c.text();return d?JSON.parse(d):void 0}return{onVisitorReplaced(a){let s={visitorOf:()=>{let l=e();return l.getHeaders?void 0:Ve(l,"")},heard:a};return ln.add(s),()=>{ln.delete(s)}},retrySignIn(){qe.delete(Ve(e(),""))},getCapabilities(){return o("/capabilities")},listThreads(){return o("/threads")},createThread(){let a=e().threadBody;return o("/threads",{method:"POST",...a&&{body:JSON.stringify(a)}})},deleteThread(a){return o(`/threads/${a}`,{method:"DELETE"})},listMessages(a){return o(`/threads/${a}/messages`)},listLlmRequests(a,i){return o(`/threads/${a}/messages/${i}/llm-requests`)},abortStream(a){return o(`/chat/${a}/abort`,{method:"POST"})},initiateToolCall(a,i){return o(`/chat/${a}/tools/${i}/initiate`,{method:"POST"})},uploadAttachment(a,i){let s=new FormData;return s.append("file",i),o(`/threads/${a}/files`,{method:"POST",body:s})},deleteAttachment(a){return o(`/files/${a}`,{method:"DELETE"})},async downloadAttachment(a){let i=await t(),s=await fetch(n(`/files/${a}`),{headers:i});if(r(s,i),!s.ok)throw new ge(s.status,s.statusText);return{blob:await s.blob(),name:Ts(s.headers.get("Content-Disposition"))??a}},resolveHeaders:t,resolveUrl:n,readVisitorAnswer:r}}var mn=30000;function fn(e){return Math.min(1000*2**(e-1),mn)}var ws=1e4;function $r(e){let t,n,r=0,o=!1,a=!1;function i(){let{wsUrl:l,transport:c}=e.getConfig();if(l===!1)return;let d=Cs(l,c.baseUrl);pn(c).then((u)=>{if(o)return;t=new WebSocket(ks(d,u)),t.addEventListener("open",()=>{a=!0;let p=t;setTimeout(()=>{if(t===p&&!o)r=0},ws),e.onOpen?.()}),t.addEventListener("message",(p)=>{let f=p.data;if(typeof f!=="string")return;let m;try{m=JSON.parse(f)}catch{return}e.onEvent(m)}),t.addEventListener("close",()=>{if(!a&&!o)e.onFailedOpen?.();a=!1,s()})}).catch(s)}function s(){if(o||n)return;r+=1,n=setTimeout(()=>{n=void 0,i()},fn(r))}return i(),{close(){o=!0,a=!1,clearTimeout(n),t?.close()},isOpen(){return a}}}function Cs(e,t){if(e)return e;let n=typeof t==="string"?t:t(),r=new URL(n,window.location.origin);return r.protocol=r.protocol==="https:"?"wss:":"ws:",r.pathname=r.pathname.replace(/\/$/,"")+"/ws",r.toString()}function ks(e,t){let n=(i)=>Object.entries(t).find(([s])=>s.toLowerCase()===i.toLowerCase())?.[1],r=n("Authorization"),o=Object.entries({token:r?.startsWith("Bearer ")?r.slice(7):void 0,operator:n(yr),inspect:n(br)}).filter((i)=>Boolean(i[1]));if(o.length===0)return e;let a=new URL(e,window.location.origin);for(let[i,s]of o)if(!a.searchParams.has(i))a.searchParams.set(i,s);return a.toString()}var jr={unreachable:"translate_agent_unreachable",refused:"translate_access_refused",unverified:"translate_visitor_unverified",missing:"translate_agent_missing"};function Ss(e){if(e instanceof Ke)return"unverified";let t=e instanceof ge?e.status:void 0;if(t===401)return"refused";if(t===404)return"missing";return"unreachable"}function gn(e,t,n=fn){let r=!1,o,a=0;function i(){e().then((s)=>{if(!r)t.onAnswered(s)},(s)=>{if(r)return;let l=Ss(s);if(t.onMissed?.(l),l==="missing")return;a+=1,o=setTimeout(i,l==="refused"||l==="unverified"?mn:n(a))})}return i(),function(){r=!0,clearTimeout(o)}}function ht(){if(typeof crypto.randomUUID==="function")return crypto.randomUUID();let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,(n)=>n.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var Ms={type:"translate_attachment_rejected_type",size:"translate_attachment_rejected_size",name:"translate_attachment_rejected_name",count:"translate_attachment_rejected_count"};function _n(e,t){if(!e.refusal)return Y(t,"translate_attachment_rejected");return Y(t,Ms[e.refusal],{types:new Intl.ListFormat(t).format(Be.map((n)=>n.slice(n.indexOf("/")+1).toUpperCase())),size:Wt/1024/1024,count:Bt})}function zr(e){let{api:t}=e,n=new Set,r=new Set,o=[],a=[],i=Promise.resolve();function s(){return o}function l(g){return n.add(g),()=>{n.delete(g)}}function c(g){o=g;for(let b of n)b()}function d(g,b){c(o.map((k)=>k.localId===g?{...k,...b}:k))}function u(g){if(r.delete(g))return;d(g,{status:"error"})}async function p(g,b,k){if(r.delete(g))return;let I;try{I=await t.uploadAttachment(b,k)}catch{u(g);return}if(r.delete(g)){t.deleteAttachment(I.id).catch(()=>{});return}d(g,{status:"ready",attachmentId:I.id,summary:I})}function f(g){let b=[];for(let k of g){let I=pr(k),R=o.filter((le)=>le.status!=="error").length>=Bt,V=I!=="ok"?I:R?"count":void 0,oe=ht();if(c([...o,V?{localId:oe,filename:k.name,status:"error",refusal:V}:{localId:oe,filename:k.name,status:"uploading"}]),!V)b.push({localId:oe,file:k})}if(!b.length)return;e.ensureThread().then((k)=>{for(let{localId:I,file:R}of b){if(r.delete(I))continue;d(I,{threadId:k}),i=i.then(()=>p(I,k,R)).catch(()=>{})}},()=>{for(let{localId:k}of b)u(k)})}function m(g){let b=o.find((k)=>k.localId===g);if(!b)return;if(b.status==="uploading"){r.add(g),c(o.filter((k)=>k.localId!==g));return}if(b.attachmentId){d(g,{status:"deleting"}),t.deleteAttachment(b.attachmentId).then(()=>c(o.filter((k)=>k.localId!==g)),()=>d(g,{status:"error"}));return}c(o.filter((k)=>k.localId!==g))}function x(g){let b=[];for(let k of o){if(k.threadId!==void 0&&k.threadId!==g){b.push(k);continue}if(k.status==="uploading")r.add(k.localId);else if(k.status==="ready"&&k.threadId===g&&k.attachmentId)t.deleteAttachment(k.attachmentId).catch(()=>{})}if(b.length!==o.length)c(b)}function M(){let g=o.flatMap((b)=>b.status==="ready"&&b.summary?[{...b,status:"ready",summary:b.summary}]:[]);return c(o.filter((b)=>b.status!=="ready")),a=g,g}function C(g){let b=a;if(a=[],b.some((k)=>k.threadId!==g))return;c([...b.map((k)=>({...k,status:"error"})),...o])}function w(){a=[]}return{getState:s,subscribe:l,accept:f,remove:m,clear:x,consumeReady:M,restoreConsumed:C,discardConsumed:w}}function qr(e){return{uploading:e.some((t)=>t.status==="uploading"),busy:e.some((t)=>t.status==="uploading"||t.status==="deleting"),hasReady:e.some((t)=>t.status==="ready")}}import{ChatClient as Fs}from"@tanstack/ai-client";import{EventType as Kr}from"@tanstack/ai";import{fetchServerSentEvents as Vr}from"@tanstack/ai-client";function Ns(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t],r="parts"in n&&n.parts.some((o)=>o.type==="tool-result"||o.type==="tool-call"&&o.state==="approval-responded");if(n.role==="user"||r)return e.slice(t,t+1)}return e.slice(-1)}function Ls(e){if(e.state==="approval-responded"){let t=e.approval?.approved;if(t===void 0)return null;return{toolCallId:e.id,output:null,state:t?"approved":"denied"}}if(!X(e.state))return null;return{toolCallId:e.id,output:e.output??null,state:e.state==="error"?"error":"complete"}}function As(e){let[t]=e;if(!t||t.role!=="assistant"||!("parts"in t))return null;let n=t.parts.flatMap((r)=>{let o=r.type==="tool-call"?Ls(r):null;return o?[o]:[]});return n.length>0?n:null}async function Es(e){if(e.status!==409)return;let t=await e.clone().json().catch(()=>{return});return t!==null&&typeof t==="object"&&"outcome"in t&&t.outcome==="dropped"&&"reason"in t&&t.reason==="approval_pending"?"approval_pending":void 0}async function*Gr(e,t,n){for await(let r of e){if(r.type!==Kr.MESSAGES_SNAPSHOT){yield r;continue}let o=t.localMessages(),a=o.findIndex((s)=>s.id===n),i=a===-1?[]:o.slice(a+1).filter((s)=>s.role==="user");t.onTranscriptCarried?.(r.timestamp??Date.now()),yield{...r,messages:[...r.messages,...i]}}}function Jr(e){let{api:t,thread:n}=e,r=async()=>({headers:await t.resolveHeaders()}),o=0;async function*a(u,p){o+=1,e.onStreamStarted?.();try{yield*u}finally{o-=1,p?.()}}function i(u,p){let f=Object.assign(async(m,x)=>{let M=await fetch(m,x).catch((g)=>{throw u("lost"),g});u(vr(M.status)),t.readVisitorAnswer(M,x?.headers);let C=new Headers(x?.headers).has("Last-Event-ID");if(p&&!C&&M.status===401)e.onMessageRefused?.();let w=await Es(M);if(w)e.onRefused?.(w);return M},fetch);return Vr(()=>t.resolveUrl("/chat"),async()=>({...await r(),fetchClient:f}))}let s=function(u,p,f,m){let x=Ns(u),M=As(x),C=M?.map((k)=>k.toolCallId),w,g=i((k)=>{if(w)return;if(w=k,C&&w==="persisted")e.onReceipt?.(C,w)},!M&&x[0]?.role==="user"),b=M?g.connect([],{...p,[_r]:M},f,m):g.connect(x,p,f,m);return a(Gr(b,e,u.at(-1)?.id),()=>{if(C&&w!=="persisted")e.onReceipt?.(C,w??"lost")})},l=Vr(()=>t.resolveUrl(`/chat/${n.id}/stream`),r),c=[];async function*d(u,p){yield{type:Kr.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:c},yield*Gr(l.joinRun(u,p),e,c.at(-1)?.id)}return{connect:s,joinRun:(u,p)=>a(d(u,p)),streaming:()=>o>0,hydrate:async()=>{let u=await Rs(e);return c=u.messages,u}}}async function Rs(e){let{api:t,thread:n,mode:r}=e,o=n.isRunning?{runId:n.id}:null;if(r==="skip")return{messages:[],activeRun:o,interrupts:null};if(r==="load")e.setLoadingMessages?.(!0);try{let i=(await t.listMessages(n.id)).map(zt);return e.onHydrated?.(i),{messages:i,activeRun:o,interrupts:null}}finally{e.setLoadingMessages?.(!1)}}async function Xr(e){if(e.isStale?.()||e.isStreaming())return;try{let t=await e.api.listMessages(e.threadId);if(e.isStale?.()||e.isStreaming())return;let n=t.map(zt);return e.setMessages(n),n}catch{return}}import{EventType as Is}from"@tanstack/ai";function Os(e){return new Set(be(e).filter((t)=>t.state!=="approval-responded").map((t)=>t.id))}function hn(e){return e.refusal==="approval_pending"?"translate_approval_pending":"translate_error"}var Ps=2;function Zr(e){let t=!1,n=!1,r=!1,o,a,i,s,l=!1,c=!1,d,u,p=new Set,f=new Map,m=new Map,x=0,M=0,C=0,w=!1;function g(){if(t)return;t=!0,e.setRunning(!0)}function b(T,N){f.get(T)?.waiters.forEach(N),f.delete(T)}function k(T,N,A=!1){for(let O of T){let D=f.get(O);if(!D)continue;if(D.failure=N,A)D.mayHaveLanded=!0}le()}async function I(T,N,A){try{await N()}catch(O){if(A)A.failures+=1;k([T],O instanceof Error?O:Error("The answer was not sent"))}}function R(T){for(let[N,A]of f)if(!T.has(N)){if(A.mayHaveLanded)g();b(N,(O)=>O.resolve())}else if(A.failure){let{failure:O}=A;b(N,(D)=>D.reject(O))}else I(N,A.deliver)}function V(T){for(let[A,O]of m){if(T.has(A))continue;if(m.delete(A),O.mayHaveLanded)g()}let N=[...m.values()];if(N.some((A)=>A.failures>Ps))return;for(let A of N)oe(A)}function oe(T){if(!e.answers())return w=!0,Promise.resolve();return I(T.answer.toolCallId,()=>e.deliver(T.answer),T)}async function le(){let T=x,N=++M,A=()=>x!==T||C>N||!e.isAlive(),O=await e.refreshMessages(A).catch(()=>{return});if(!O||A())return;C=N;let D=Os(O),ye=w;if(w=!1,R(D),V(D),t||ye)ae(O)}async function G(T,N){let A;try{let ye=N({toolCallId:T.id,toolName:T.name,input:T.input},{threadId:e.threadId});if(ye===null||ye===void 0)return;A=await Promise.resolve(ye)}catch{p.delete(T.id);return}if(A===null||A===void 0)return;if(!e.isAlive())return;let D={answer:{toolCallId:T.id,tool:T.name,output:A},failures:0,mayHaveLanded:!1};m.set(T.id,D),await oe(D)}function ae(T){let N=be(T),A=e.onToolCall();if(!A)return N.length>0;if(!e.answers())return w||=N.length>0,N.length>0;for(let O of N){if(O.state!=="input-complete"||p.has(O.id))continue;p.add(O.id),G(O,A)}return N.length>0}async function Ue(T){if(r)e.reloadThreads().catch(()=>{});else e.setRunning(!1);if(t&&!l&&ae(T()))return;if(u===void 0&&d!==void 0)return;u=void 0,await le()}return{chunkArrived(T){if(n=!0,T.type===Is.RUN_ERROR&&T.code!=="aborted")o={reason:T.message||void 0}},transcriptCarried(T){if(d=T,u!==void 0&&u<=T)u=void 0},transcriptUpdated(T){let N=Date.parse(T);if(d!==void 0&&N<=d)return;if(!c){le();return}u=Math.max(u??0,N)},streamFailed(){if(r=!0,l)return;if(n)e.onTurnFinished();else e.onSendFailed();if(a){if(e.setTurnFailed({reason:void 0,refusal:a}),s!==void 0)e.returnDraft(s);return}let N=o??(s!==void 0&&!n?{reason:void 0}:void 0);if(N)e.setTurnFailed(N)},loadingChanged(T,N){if(T){c=!0;return}if(!c)return;c=!1,e.onTurnFinished(),Ue(N)},hydrated(T,N){if(N)return;setTimeout(()=>{if(e.isAlive())ae(T)},0)},deliverAnswer(T,N){return new Promise((A,O)=>{let D=[...f.get(T)?.waiters??[],{resolve:A,reject:O}];f.set(T,{deliver:N,waiters:D}),I(T,N)})},receiptArrived(T,N){if(N==="persisted"){for(let O of T)m.delete(O),b(O,(D)=>D.resolve());g();return}let A=N==="lost";for(let O of T){let D=m.get(O);if(!D)continue;D.failures+=1,D.mayHaveLanded||=A}k(T,Error(A?"The answer was lost":"Cortex refused the answer"),A)},readBack:le,resumeAnswers(){if(w&&!c)le()},streamStarted(){if(t)e.setRunning(!0);x+=1,r=!1,o=void 0,a=void 0,s=i,i=void 0,d=void 0,l=!1,e.setTurnFailed(void 0)},sendStarted(T){x+=1,i=T,t=!0,n=!1},sendRefused(T){a=T},abortConfirmed(){l=!0}}}var xt={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1,awaitsApproval:!1,turnFailure:void 0};function Yr(e){let{api:t}=e,n=e.thread.id,r=new Set,o=xt,a=s(e.thread,e.mode);function i(m,x){if(Object.is(o[m],x))return;let M={...o,[m]:x};o={...M,hasPendingToolCalls:!M.isAgentWorking&&be(M.messages).length>0,awaitsApproval:Tr(M.messages)},r.forEach((C)=>C())}function s(m,x,M){let C=!0;function w(R){return(...V)=>{if(C)R(...V)}}let g=Promise.resolve(),b=Zr({threadId:n,isAlive:()=>C,onToolCall:()=>e.getHooks()?.onToolCall,answers:e.answers,deliver:(R)=>I.addToolResult(R),setRunning:e.setRunning,reloadThreads:e.reloadThreads,refreshMessages:(R)=>{let V=g.then(()=>Xr({api:t,threadId:n,isStale:()=>!C||R(),isStreaming:k.streaming,setMessages:(oe)=>I.setMessagesManually(oe)}));return g=V,V},onTurnFinished:e.onTurnFinished,onSendFailed:e.onSendFailed,setTurnFailed:w((R)=>i("turnFailure",R)),returnDraft:w(e.onReturned)}),k=Jr({api:t,thread:m,mode:x,localMessages:()=>I.getMessages(),onHydrated:w((R)=>b.hydrated(R,m.isRunning)),onTranscriptCarried:w((R)=>b.transcriptCarried(R)),onStreamStarted:w(()=>b.streamStarted()),onRefused:w((R)=>b.sendRefused(R)),onMessageRefused:e.onMessageRefused,onReceipt:w((R,V)=>b.receiptArrived(R,V)),setLoadingMessages:w((R)=>i("isLoadingMessages",R))}),I=new Fs({threadId:n,persistence:!0,initialMessages:M,connection:k,onChunk:w((R)=>b.chunkArrived(R)),onError:w(()=>b.streamFailed()),onMessagesChange:w((R)=>i("messages",R)),onLoadingChange:w((R)=>{i("isAgentWorking",R);let V=()=>I.getMessages();if(R){b.loadingChanged(!0,V);return}setTimeout(w(()=>{if(!I.getIsLoading())b.loadingChanged(!1,V)}))})});return I.attach(),{client:I,lifecycle:b,isAlive:()=>C,close(){C=!1,I.detach(),I.stop(),I.dispose()}}}async function l(m,x=()=>[]){if(!a.isAlive()||o.isAgentWorking||o.awaitsApproval)return!1;let{client:M,lifecycle:C}=a;return C.loadingChanged(!1,()=>M.getMessages()),C.sendStarted(m),await M.append({id:ht(),role:"user",parts:[{type:"text",content:m}],metadata:{createdAt:new Date().toISOString(),attachments:x()}}),!0}async function c(){let{client:m,lifecycle:x,isAlive:M}=a;if(!M()||!m.getIsLoading())return;let{aborted:C}=await t.abortStream(n).catch(()=>({aborted:!1}));if(!M())return;if(C)x.abortConfirmed();else m.stop()}function d(m,x,M){let{client:C,lifecycle:w,isAlive:g}=a;if(!g())return Promise.resolve();return w.deliverAnswer(m,()=>C.addToolResult({toolCallId:m,tool:x,output:M}))}function u(m,x){let{client:M,lifecycle:C,isAlive:w}=a;if(!w())return Promise.resolve();let g=hr(m);return C.deliverAnswer(m.id,async()=>{let b=M.getInterrupts().find((k)=>k.id===g);if(b&&"resolveInterrupt"in b)b.resolveInterrupt({approved:x});else await M.addToolApprovalResponse({id:g,approved:x})})}function p(m){if(!a.isAlive()||m.id!==n||a.client.getIsLoading())return;if(!m.isRunning){a.lifecycle.readBack();return}a.close(),i("isLoadingMessages",!1),i("turnFailure",void 0),a=s(m,"reload",o.messages)}function f(m){if(a.isAlive()&&m.id===n)a.lifecycle.transcriptUpdated(m.updatedAt)}return{threadId:n,getState:()=>o,subscribe:(m)=>(r.add(m),()=>{r.delete(m)}),send:l,abort:c,addToolResult:d,respondToApproval:u,reattach:p,transcriptUpdated:f,resumeAnswers:()=>{if(a.isAlive())a.lifecycle.resumeAnswers()},dispose(){a.close(),r.clear()}}}function xn(e){return[...e].sort((t,n)=>{let r=Date.parse(n.updatedAt)-Date.parse(t.updatedAt);if(r!==0)return r;return Date.parse(n.createdAt)-Date.parse(t.createdAt)})}function yn(e,t){let n=[...e],r=n.findIndex((o)=>o.id===t.id);if(r===-1)n.push(t);else n[r]={...n[r],...t};return xn(n)}function Qr(e,t){return e.filter((n)=>n.id!==t)}function Hs(e,t,n){return e.map((r)=>r.id===t?{...r,title:n}:r)}var Ds=[0,1000,2000,3000,4000];function eo(e){let t=e.delays??Ds,n=!1,r;function o(){let s=e.selected();return!n&&!e.socketOpen()&&s?.id===e.threadId&&!s.title}async function a(s){if(!o())return;let c=(await e.listThreads().catch(()=>{return}))?.find((d)=>d.id===e.threadId)?.title;if(!o())return;if(c)e.setTitle(c);else i(s+1)}function i(s){let l=t[s];if(l!==void 0)r=setTimeout(()=>void a(s),l)}return i(0),function(){n=!0,clearTimeout(r)}}function to(e,t){switch(t.type){case"thread:deleted":return Qr(e,t.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return yn(e,t.payload.thread);default:return e}}function no(){let e=new Map,t=new Map,n=new Map,r=new Set,o=0,a=0;function i(s){if(s.type==="thread:run-started")return e.set(s.payload.thread.id,s.payload.runId),!0;if(s.type!=="thread:run-finished")return!0;let l=e.get(s.payload.thread.id);return l===void 0||l===s.payload.runId}return{admits(s){if(!i(s))return!1;if("thread"in s.payload)t.set(s.payload.thread.id,++o);if(s.type==="thread:deleted")r.add(s.payload.threadId);return!0},running(s,l){return n.set(s,++o),(c)=>{let d=c?.find((u)=>u.id===s);return c&&d?yn(c,{...d,isRunning:l}):c}},created(s){return t.set(s.id,++o),(l)=>yn(l??[],s)},retitled(s,l){return t.set(s,++o),(c)=>c&&Hs(c,s,l)},deleted(s){return r.add(s),(l)=>l&&Qr(l,s)},async read(s){e.clear();let l=++o,c=xn(await s()),d=l<a;a=Math.max(a,l);function u(p){if(d&&p)return p;let f=new Map(c.map((m)=>[m.id,m]));for(let m of p??[]){let x=f.get(m.id);if((t.get(m.id)??0)>l)f.set(m.id,m);else if(x&&(n.get(m.id)??0)>l)f.set(m.id,{...x,isRunning:m.isRunning})}for(let m of r)f.delete(m);return xn([...f.values()])}return{listed:c,show:u}}}}function ro(e,t){for(let n in e)if(!Object.is(e[n],t[n]))return!1;return!0}function Je(e,t){let{capabilities:n,session:r}=e,o=qr(e.attachments);return n!==void 0&&n.messages!==!1&&!e.creating&&!r.isAgentWorking&&!r.awaitsApproval&&!o.busy&&(Boolean(t.trim())||o.hasReady)}function bn(e){let{capabilities:t,unanswered:n}=e;if(e.session.hasPendingToolCalls)return;if(t===void 0)return n&&jr[n];if(t.messages)return"composer";return t.readOnly?"translate_read_only":"translate_messages_disabled"}function vn(e){let{getConfig:t}=e,n=Br(()=>t().transport),r=new Set,o=no(),a=zr({api:n,ensureThread:sr}),i={threads:void 0,selected:void 0,session:xt,capabilities:void 0,displayName:void 0,unanswered:void 0,attachments:a.getState(),creating:!1,screen:"chat",sidebarOpen:!1,debugMode:!1},s={...i,parts:oo(i)},l="",c,d,u=0,p,f,m,x,M,C,w,g,b=[],k=!1,I={reported:s.session,debug:!1,session:s.session};a.subscribe(()=>G({attachments:a.getState()}));function R(){for(let _ of r)_()}function V(_){return r.add(_),()=>{r.delete(_)}}function oe(_){let S=d;return S&&(_?.find((E)=>E.id===S.id)??S)}function le(_){let S=f?.getState()??xt;if(S===I.reported&&_===I.debug)return I.session;let E=S.turnFailure,H=_||E?.reason===void 0?S:{...S,turnFailure:{...E,reason:void 0}};return I={reported:S,debug:_,session:H},H}function G(_={}){let S={...s,..._},E={...S,selected:oe(S.threads),session:le(Boolean(S.capabilities?.debug)),creating:p?.generation===u&&p.forMessage},H=oo(E),J={...E,parts:ro(H,s.parts)?s.parts:H};if(ro(J,s))return;s=J,R()}function ae(_){G({threads:_(s.threads)})}function Ue(_){if(_===l)return;l=_,R()}function T(_){if(_)Ue(l?`${_}
3
+ ${l}`:_)}function N(_,S=!1){let E=s.selected;ae(_);let H=s.selected;if(H){if(S||H.isRunning&&!E?.isRunning)f?.reattach(H);else if(H.updatedAt!==E?.updatedAt)f?.transcriptUpdated(H)}A()}function A(){let _=t().thread,S=!k&&_&&s.threads?.find((E)=>E.id===_);if(!S)return;k=!0,ar(S)}async function O(_=!1){let S=x,E=await o.read(()=>n.listThreads()).catch(()=>{return});if(!E||!x||x!==S)return!1;return N(E.show,_),!0}function D(){C?.(),G({capabilities:void 0,unanswered:void 0}),C=gn(()=>n.getCapabilities(),{onAnswered:(_)=>{if(G({capabilities:_,displayName:_.displayName,unanswered:void 0,debugMode:s.debugMode&&_.debug}),gt())f?.resumeAnswers()},onMissed:(_)=>G({unanswered:_,displayName:s.displayName??{}})})}function ye(){w?.();let _=d?.id;if(!_)return;w=eo({threadId:_,listThreads:()=>n.listThreads(),selected:()=>s.selected,socketOpen:()=>x?.isOpen()??!1,setTitle:(S)=>ae(o.retitled(_,S))})}function We(_){f?.dispose(),f=void 0,m=void 0;let S=oe(s.threads);if(x&&S){let E=Yr({api:n,thread:S,mode:_,getHooks:()=>t().hooks,answers:gt,setRunning:(H)=>{if(H||!m)ae(o.running(S.id,H))},reloadThreads:()=>O(),onTurnFinished:()=>{if(a.discardConsumed(),ye(),m)O().then((H)=>{m=void 0;let J=s.selected;if(H&&J?.isRunning)f?.reattach(J)})},onSendFailed:()=>a.restoreConsumed(S.id),onReturned:T,onMessageRefused:()=>{if(c?.session!==E||f===E)return;if(t().transport.getHeaders)return;T(c.text),c=void 0}});f=E,E.subscribe(()=>G())}G()}function rr(){u+=1,a.clear(d?.id)}function or(){G({screen:"chat",sidebarOpen:!1})}function ar(_){if(or(),d?.id===_.id)return;let S=s.selected;rr(),d=_,We("load");let E=t().hooks;if(S)E?.onThreadDeselected?.(S);E?.onThreadSelected?.(_)}function ft(){let _=s.selected;if(rr(),d=void 0,We("load"),_)t().hooks?.onThreadDeselected?.(_)}function Ha(){ft(),or()}async function Da(_){if(d?.id===_)ft();await n.deleteThread(_),ae(o.deleted(_))}function Ua(){return new Promise((_)=>{if(x)_();else b.push(_)})}function sr(_=!1){if(d)return Promise.resolve(d.id);if(p?.generation===u)p={...p,forMessage:p.forMessage||_};else{let S=u,E=()=>{if(p?.generation===S)p=void 0},H=n.createThread().then(async(J)=>{if(ae(o.created(J)),await Ua(),E(),u===S)d=J,We("skip"),t().hooks?.onThreadSelected?.(J);return J.id},(J)=>{throw E(),G(),J});p={generation:S,threadId:H,forMessage:_}}return G(),p.threadId}function Wa(_){let S=l;if(!Je(s,S))return;_(S.trim()),Ue(""),ir(S)}function Ft(_){return T(_),{sent:!1,text:_}}async function ir(_){if(!Je(s,_))return Ft(_);let S=u,E=await sr(!0).catch(()=>{return}),H=f;if(!H||H.threadId!==E||u!==S)return Ft(_);let J=Y(Me(t().locale),"translate_attachment_caption"),lr={session:H,text:_};return c=lr,await H.send(_.trim()||J,()=>a.consumeReady().map((Ka)=>Ka.summary)).finally(()=>{if(c===lr)c=void 0})?{sent:!0}:Ft(_)}function Ba(_){if(o.admits(_))ae((S)=>{let E=to(S??[],_);return S||E.length?E:S});switch(_.type){case"thread:deleted":if(d?.id===_.payload.threadId)ft();break;case"thread:run-started":if(_.payload.thread.id===d?.id&&s.session.isAgentWorking)m=_.payload.runId;f?.reattach(_.payload.thread);break;case"thread:run-finished":if(_.payload.runId===m)m=void 0;f?.transcriptUpdated(_.payload.thread);break;case"thread:messages-updated":f?.transcriptUpdated(_.payload.thread);break}}function $a(){D(),O(!0)}function ja(){ft(),Dt(),Ht()}function Ht(){if(x)return;g=n.onVisitorReplaced(ja);let _=!1;x=$r({getConfig:t,onEvent:Ba,onOpen:()=>{if(_)$a();_=!0},onFailedOpen:()=>{if(!t().transport.getHeaders)n.getCapabilities().catch(()=>{return})}}),M=gn(()=>o.read(()=>n.listThreads()),{onAnswered:({show:S})=>N(S),onMissed:(S)=>{if(S!=="unreachable")ae((E)=>E??[])}}),D(),We("load");for(let S of b.splice(0))S()}function Dt(){if(!x)return;g?.(),x.close(),x=void 0,M?.(),C?.(),w?.(),We("load")}function za(){if(t().viewMode==="full")G({sidebarOpen:!0});else G({screen:"threads"})}function qa(){if(t().viewMode==="full")G({sidebarOpen:!1});else G({screen:"chat"})}function gt(){return s.capabilities?.messages===!0}function Va(_,S,E){if(!gt())return Promise.resolve();return f?.addToolResult(_,S,E)??Promise.resolve()}function Ga(_,S){if(!gt())return Promise.resolve();return f?.respondToApproval(_,S)??Promise.resolve()}return{api:n,getState:()=>s,getDraft:()=>l,subscribe:V,start:Ht,stop:Dt,setDraft:Ue,submit:ir,sendDraft:Wa,abort:()=>f?.abort()??Promise.resolve(),addToolResult:Va,respondToApproval:Ga,openThread:ar,newChat:Ha,deleteThread:Da,attachFiles:a.accept,removeAttachment:a.remove,openHistory:za,closeHistory:qa,toggleDebug:()=>G({debugMode:!s.debugMode}),retry:()=>{n.retrySignIn(),Dt(),Ht()}}}function oo(e){let{threads:t,selected:n,capabilities:r,displayName:o,debugMode:a}=e;return{threads:t,selected:n,capabilities:r,displayName:o,debugMode:a,isWorking:e.session.isAgentWorking}}function Tn(e,t,n,r){let o=Me(n.locale),a=t.capabilities?.readOnly===!1?{newChat:e.newChat,deleteThread:(l)=>void e.deleteThread(l)}:void 0,i=t.displayName===void 0?"":$e(t.displayName,o)??Y(o,"translate_new_chat");function s(l){return{screen:l,viewMode:n.viewMode??"helper",title:t.selected?.title??i,threadCount:t.threads?.length,isWorking:t.isWorking,debug:{shown:Boolean(t.capabilities?.debug),on:t.debugMode},newChat:a?.newChat,openHistory:e.openHistory,closeHistory:e.closeHistory,toggleDebug:e.toggleDebug}}return{chatHeader:s("chat"),threadsHeader:s("threads"),landing:{...Or(t.capabilities,o,(l)=>void e.submit(l)),threads:t.threads,composer:r,openThread:e.openThread,openHistory:e.openHistory},threadList:{threads:t.threads,selectedThreadId:t.selected?.id,openThread:e.openThread,...a}}}var ao="allow-scripts allow-forms allow-popups";function Us(e,t){try{return e.contentWindow?.location.origin===t}catch{return!1}}function wn(e){let t=e.host.location.origin,n=!1,r=!1,o,a=!1,i;function s(p){if(!n)e.onState(p)}function l(){if(n)return;r=!1,s({phase:"error"})}function c(p){if(n||r)return;r=!0,s({phase:"settling"});try{let f=e.submit(p);if(f instanceof Promise)f.catch(l)}catch{l()}}function d(p){if(!o)return;if(i===void 0||p.source!==i)return;let f=cr(p.data,p.origin,o);if(!f)return;c({status:f.status,reference:f.reference,result:f.result})}function u(){if(n||r)return;o=void 0,i=void 0,s({phase:"error"})}return e.host.addEventListener("message",d),{async start(){s({phase:"initiating"});try{let p=await e.initiate(),f=new URL(p.embedUrl);if(!/^https?:$/.test(f.protocol)){s({phase:"error"});return}let m=f.origin===t;a=m&&e.trustSameOrigin===!0,o=p.embedOrigin,s({phase:"embedded",embedUrl:p.embedUrl,surface:p.surface,sandbox:m&&!a?ao:`${ao} allow-same-origin`})}catch(p){let f=p instanceof ge&&p.status===404;s({phase:f?"unavailable":"error"})}},setSource(p){if(p!==null&&p!==void 0)i=p},frameLoaded(p){if(!a&&Us(p,t))u()},cancel(){c({status:"cancelled"})},dispose(){n=!0,e.host.removeEventListener("message",d)}}}async function Xe(e,t){let n=await import("leaflet"),r=!t.interactive,o=n.map(e,{center:t.center,zoom:t.zoom,zoomControl:!r,dragging:!r,scrollWheelZoom:!r,doubleClickZoom:!r,touchZoom:!r,boxZoom:!r,keyboard:!r});n.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(o);let a=new ResizeObserver(()=>o.invalidateSize());return a.observe(e),{leaflet:n,map:o,dispose(){a.disconnect(),o.remove()}}}var yt={position:void 0,locating:!1,locateFailed:!1,mapFailed:!1,submitting:!1,deliveryFailed:!1},Ws={center:{lat:20,lng:0},zoom:2},Bs=13,io=16,$s=1e4;function Cn(e,t){let n=yt,r=!1,o=!1,a,i,s,l=0;function c(f){if(n={...n,...f},!r)t.onState(n)}function d(){let f=n.position;if(!a||!f)return;let{leaflet:m,map:x}=a;if(i)i.setLatLng(f);else{let M=m.marker(f,{draggable:!n.submitting}).addTo(x);M.on("dragend",()=>{let{lat:C,lng:w}=M.getLatLng();u({lat:C,lng:so(w)})}),i=M}s?.remove(),s=f.accuracy?m.circle(f,{radius:f.accuracy}).addTo(x):void 0}function u(f){if(n.submitting)return;l+=1,c({position:f,locating:!1,locateFailed:!1}),d()}function p(f){if(r||o)return;o=!0,l+=1,i?.dragging?.disable(),c({submitting:!0,locating:!1,deliveryFailed:!1});let m=()=>{o=!1,i?.dragging?.enable(),c({submitting:!1,deliveryFailed:!0})};try{let x=t.submit(f);if(x instanceof Promise)x.catch(m)}catch{m()}}return{async start(){let f=t.center?{center:t.center,zoom:Bs}:Ws,m;try{m=await Xe(e,{...f,interactive:!0})}catch{c({mapFailed:!0});return}if(r){m.dispose();return}a=m,m.map.on("click",(x)=>u({lat:x.latlng.lat,lng:so(x.latlng.lng)})),d()},locate(){if(n.locating||n.submitting)return;if(!navigator.geolocation){c({locateFailed:!0});return}l+=1;let f=l;c({locating:!0,locateFailed:!1}),navigator.geolocation.getCurrentPosition(({coords:m})=>{if(r||f!==l)return;let x={lat:m.latitude,lng:m.longitude,accuracy:Math.round(m.accuracy)};u(x),a?.map.setView(x,io)},()=>{if(f===l)c({locating:!1,locateFailed:!0})},{enableHighAccuracy:!0,timeout:$s})},confirm(){if(n.position)p({status:"completed",result:n.position})},cancel(){p({status:"cancelled"})},dispose(){r=!0,a?.dispose()}}}function kn(e,t,n){let r=!1,o;return Xe(e,{center:t,zoom:io,interactive:!1}).then((a)=>{if(r){a.dispose();return}o=a.dispose,a.leaflet.marker(t).addTo(a.map)},()=>{if(!r)n()}),()=>{r=!0,o?.()}}function so(e){if(e>=-180&&e<=180)return e;return((e+180)%360+360)%360-180}function lo(e){if(!e||typeof e!=="object")return!1;let{lat:t,lng:n}=e;return typeof t==="number"&&typeof n==="number"&&Math.abs(t)<=90&&Math.abs(n)<=180}function Sn(e){let t=e&&typeof e==="object"?e.center:void 0;return lo(t)?t:void 0}function Mn(e){if(!e||typeof e!=="object")return;let{status:t,result:n}=e;if(t!=="completed"||!lo(n))return;let{accuracy:r}=n;return{...n,...typeof r==="number"?{accuracy:r}:{}}}function bt(e){let t=`${e.lat.toFixed(4)}, ${e.lng.toFixed(4)}`;return e.accuracy?`${t} ±${e.accuracy} m`:t}function Nn(e){if(e.locating)return{key:"translate_location_locating",failed:!1};if(e.deliveryFailed)return{key:"translate_location_send_failed",failed:!0};if(e.locateFailed)return{key:"translate_location_locate_failed",failed:!0};if(e.mapFailed)return{key:"translate_location_map_failed",failed:!0};return{key:"translate_location_hint",failed:!1}}import{marked as js}from"marked";import zs from"dompurify";function Ze(e,t=[]){if(!e)return"";let n=document.createElement("template");if(n.innerHTML=js.parse(e,{async:!1}).replace(/<table>/g,'<div style="overflow-x:auto"><table style="width:max-content">').replace(/<\/table>/g,"</table></div>").replace(/<(t[hd])([\s>])/g,'<$1 style="padding:0.5rem 1rem"$2'),Vs(n.content),t.length)Gs(n.content,t);return zs.sanitize(n.innerHTML,{FORBID_TAGS:["img","picture","source"]})}var qs=/[\p{Script=Arabic}\p{Script=Hebrew}]/u;function Vs(e){for(let t of Array.from(e.children))if(t.localName!=="div")t.setAttribute("dir","auto");e.querySelectorAll("table").forEach((t)=>{let n=/\p{L}/u.exec(t.textContent??"")?.[0];if(!n)return;let r=qs.test(n)?"rtl":"ltr";if(t.setAttribute("dir",r),t.parentElement?.childElementCount===1)t.parentElement.setAttribute("dir",r)}),e.querySelectorAll("th, td").forEach((t)=>t.setAttribute("dir","auto")),e.querySelectorAll("pre").forEach((t)=>t.setAttribute("dir","ltr"))}function Gs(e,t){let n=[...t].sort((a,i)=>a.length-i.length),r=n[n.length-1]?.length??0,o=0;for(let a of Ks(e)){if(o>=r)break;a.replaceWith(...Js(a.data,o,n)),o+=a.data.length}}function Ks(e){let t=document.createTreeWalker(e,4),n=[];for(let r=t.nextNode();r;r=t.nextNode())if(r.data.trim())n.push(r);return n.reverse()}function Js(e,t,n){let r=[],o=e.length;for(let a of n){if(a.length<=t)continue;if(o<=0)break;let i=Math.min(o,a.length-t);if(i<o&&/[\uDC00-\uDFFF]/.test(e.charAt(o-i)))i+=1;let s=document.createElement("span");s.className="cortex-stream-fade",s.style.animationDelay=`-${a.age}ms`,s.textContent=e.slice(o-i,o),r.unshift(s),o-=i,t+=i}if(o>0)r.unshift(document.createTextNode(e.slice(0,o)));return r}import{marked as mo}from"marked";var co=/^ {0,3}(`{3,}|~{3,})(.*)$/;function uo(){let e=null;return(t)=>{let n=co.exec(t),r=n?.[1],o=n?.[2]??"";if(r){let a=r.charAt(0);if(e){if(a===e.marker&&r.length>=e.length&&o.trim()==="")return e=null,"close";return"inside"}if(a==="`"&&o.includes("`"))return"outside";return e={marker:a,length:r.length},"open"}return e?"inside":"outside"}}function po(e){return co.exec(e)?.[2]?.trim().split(/\s+/)[0]??""}var Xs=/^\s*!\[([^\]]*)\]\(attachment#([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)\s*$/i;function Ln(e,t){if(t.role!=="assistant")return[{kind:"markdown",text:e}];return Zs(e,t.languages).map((n)=>{switch(n.kind){case"table":return{...n,closed:n.closed||!t.arriving};case"attachment":return{...n,attachment:t.attachments?.find((r)=>r.id.toLowerCase()===n.id)};default:return n}})}function Zs(e,t){let n=[],r=[],o=null;function a(c=!1){if(r.length)n.push(...Qs(r.join(`
4
+ `),c));r=[]}function i(c){if(o)n.push({kind:"media",...o,source:o.source.join(`
5
+ `),closed:c});o=null}let s=uo(),l=e.split(`
6
+ `);for(let[c,d]of l.entries()){let u=s(d);if(o){if(u==="close")i(!0);else o.source.push(d);continue}if(u==="open"&&c===l.length-1)break;let p=Ys(d,u,t);if(!p){r.push(d);continue}if(a(),p.kind==="media")o={language:p.language,source:[]};else n.push(p)}return i(!1),a(!0),n}function Ys(e,t,n){if(t==="open"){let o=po(e),a=n.find((i)=>i===o);return a?{kind:"media",language:a}:void 0}let r=t==="outside"?Xs.exec(e):null;return r?{kind:"attachment",alt:r[1]??"",id:(r[2]??"").toLowerCase()}:void 0}function Qs(e,t){let n=mo.lexer(e);if(!n.some((d)=>d.type==="table"))return[{kind:"markdown",text:e}];let r=[];mo.walkTokens(n,(d)=>{if(d.type==="def")r.push(d.raw.trim())});let o=r.join(`
7
+ `),a=(d)=>o?`${o}
8
+
9
+ ${d}`:d,i=[],s="";function l(){if(s.trim())i.push({kind:"markdown",text:a(s)});s=""}let c=n.filter((d)=>d.type!=="def");for(let[d,u]of c.entries()){if(u.type!=="table"){s+=u.raw;continue}l();let p=c.slice(d+1).some((f)=>f.raw.trim()!=="");i.push({kind:"table",text:a(u.raw.trimEnd()),closed:p||!t})}return l(),i}function vt(e,t){let n=URL.createObjectURL(e),r=document.createElement("a");r.href=n,r.download=t,document.body.append(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),40000)}var ei=/^-?(?:0|[1-9]\d*)(?:\.\d*[1-9])?$/;function ti(e){return ei.test(e)&&e!=="-0"&&e.replace(/[-.]/g,"").replace(/^0/,"").length<=15}var ni=32767,fo=new TextEncoder;function An(e){let t=e.querySelector("table");if(t)vt(ai(ri(t)),"table.xlsx")}function ri(e){return Array.from(e.rows,(t)=>Array.from(t.cells,oi))}function oi(e){let t=e.cloneNode(!0);if(t instanceof Element)t.querySelectorAll("br").forEach((n)=>n.replaceWith(`
10
+ `));return(t.textContent??"").trim()}function ai(e){return new Blob([pi(ci(e))],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}function si(e){return e.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\ufffe\uffff]/g,"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/_(x[0-9a-f]{4}_)/gi,"_x005F_$1")}function ii(e){let t="";for(let n=e+1;n>0;n=Math.floor((n-1)/26))t=String.fromCharCode(65+(n-1)%26)+t;return t}function li(e){return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetData>${e.map((n,r)=>{let o=n.map((a,i)=>{let s=`${ii(i)}${r+1}`,l=r===0?' s="1"':"";return r>0&&ti(a)?`<c r="${s}"${l}><v>${a}</v></c>`:`<c r="${s}"${l} t="inlineStr"><is><t xml:space="preserve">${si(a.slice(0,ni))}</t></is></c>`}).join("");return`<row r="${r+1}">${o}</row>`}).join("")}</sheetData></worksheet>`}function ci(e){return[{name:"[Content_Types].xml",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/></Types>'},{name:"_rels/.rels",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>'},{name:"xl/workbook.xml",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/></sheets></workbook>'},{name:"xl/_rels/workbook.xml.rels",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>'},{name:"xl/styles.xml",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><fonts count="2"><font><sz val="11"/><name val="Calibri"/></font><font><b/><sz val="11"/><name val="Calibri"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border/></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="2"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>'},{name:"xl/worksheets/sheet1.xml",text:li(e)}]}var di=Array.from({length:256},(e,t)=>{let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;return n>>>0});function ui(e){let t=4294967295;for(let n of e)t=(di[(t^n)&255]??0)^t>>>8;return(t^4294967295)>>>0}function pi(e){let t=[],n=[],r=0;for(let c of e){let d=fo.encode(c.name),u=fo.encode(c.text),p=ui(u),f=new DataView(new ArrayBuffer(30));f.setUint32(0,67324752,!0),f.setUint16(4,20,!0),f.setUint16(6,2048,!0),f.setUint32(14,p,!0),f.setUint32(18,u.length,!0),f.setUint32(22,u.length,!0),f.setUint16(26,d.length,!0),t.push(new Uint8Array(f.buffer),d,u);let m=new DataView(new ArrayBuffer(46));m.setUint32(0,33639248,!0),m.setUint16(4,20,!0),m.setUint16(6,20,!0),m.setUint16(8,2048,!0),m.setUint32(16,p,!0),m.setUint32(20,u.length,!0),m.setUint32(24,u.length,!0),m.setUint16(28,d.length,!0),m.setUint32(42,r,!0),n.push(new Uint8Array(m.buffer),d),r+=30+d.length+u.length}let o=n.reduce((c,d)=>c+d.length,0),a=new DataView(new ArrayBuffer(22));a.setUint32(0,101010256,!0),a.setUint16(8,e.length,!0),a.setUint16(10,e.length,!0),a.setUint32(12,o,!0),a.setUint32(16,r,!0);let i=[...t,...n,new Uint8Array(a.buffer)],s=new Uint8Array(i.reduce((c,d)=>c+d.length,0)),l=0;for(let c of i)s.set(c,l),l+=c.length;return s}function En(e,t,n){let r=!1,o;return n({url:void 0,failed:!1}),e.downloadAttachment(t).then(({blob:a})=>{if(r)return;o=URL.createObjectURL(a),n({url:o,failed:!1})},()=>{if(!r)n({url:void 0,failed:!0})}),()=>{if(r=!0,o)URL.revokeObjectURL(o)}}async function Rn(e,t){let n=await e.downloadAttachment(t).catch(()=>{return});if(n)vt(n.blob,n.name)}var ho=new Set(["flatten","fold","density","impute","regression","loess","quantile","sample"]),mi=`Use Vega-Lite JSON with inline \`data.values\` only, at most 200 rows, and no \`url\` anywhere. Compute folds, trend lines and densities yourself. For several series, write one row per series and x value, or keep one row per x value and draw a layer per series (color by \`datum\`) when that would exceed the row limit. These keys are refused anywhere in the spec: ${[...ho,"params","selection"].join(", ")}. Expressions in \`calculate\`, \`filter\` and \`labelExpr\` may use only datum fields, literals, operators and simple math or date-part functions (no format or timeFormat), so put formatted values in the rows or use an axis \`format\`.`;function xo(e,t){if(e==="url")return"Charts may only use inline data and no URLs.";if(e==="sequence"||e==="graticule")return"Charts may only use inline data.";if(ho.has(e))return"Charts may not use transforms that generate rows.";if(e==="params"||e==="selection"||e==="signals"||e==="on")return"Charts may not be interactive.";if(e==="expr")return"Charts may not carry expressions.";if(fi.has(e)&&typeof t==="string"&&!gi(t))return"Charts may only use simple expressions over datum.";if(e==="usermeta")return"Charts may not carry usermeta.";if(typeof t==="string"&&Tt(t))return"Charts may not reference URLs.";if((e==="width"||e==="height")&&_i(t)>4000)return"Charts may be at most 4000 pixels wide or tall.";return}var fi=new Set(["calculate","filter","test","signal","labelExpr"]),go=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 gi(e){if(e.length>500||/[\\`]/.test(e))return!1;let t=e.replace(/'[^']*'|"[^"]*"/g,'""');for(let[,r]of t.matchAll(/([A-Za-z_$][\w$]*)\s*\(/g))if(!go.has(r??""))return!1;let n=t.replace(/(datum|parent)(\s*\.[\w$]+|\s*\[\s*""\s*\])+|\b\d[\w.]*/g,"").matchAll(/[A-Za-z_$][\w$]*/g);for(let[r]of n)if(!go.has(r)&&!["true","false","null"].includes(r))return!1;return!0}function _i(e){if(typeof e==="number")return e;let t=e?.step;return typeof t==="number"?t:0}function _o(e,t){let n=e?.features,r=Array.isArray(e)?e.length:Array.isArray(n)?n.length:-1;if(r<0)return xo(t,e)??On(In(e,t),Ye);return r>200?"Charts may hold at most 200 rows.":void 0}function Ye(e,t=""){if(t==="values")return _o(e,t);if(t==="datasets")return On(In(e),_o);return xo(t,e)??On(In(e,t),(n,r)=>Ye(n,r))}function In(e,t=""){if(Array.isArray(e))return e.map((n)=>[t,n]);return e&&typeof e==="object"?Object.entries(e):[]}function On(e,t){for(let[n,r]of e){let o=t(r,n);if(o)return o}return}var yo=/url\(([^)]*)\)/gi,Pn="src|image|image-set|-webkit-image-set|cross-fade|element",Fn=new RegExp(String.raw`\b(url|${Pn})\(`,"i"),hi=new RegExp(String.raw`\b(${Pn})\(`,"i"),xi=new RegExp(String.raw`\b(${Pn})\([^)]*\)`,"gi"),yi=/\\([0-9a-f]{1,6})\s?|\\(.)/gi,bi=/@import[^;]*;?/gi;function vi(e){return e.replace(yi,(t,n,r)=>{if(!n)return r??"";let o=parseInt(n,16),a=o===0||o>=55296&&o<=57343||o>1114111;return String.fromCodePoint(a?65533:o)})}function bo(e){return e.trim().replace(/^(['"])(.*)\1$/s,"$2").trim()}function Tt(e){if(e.includes("\\")||hi.test(e))return!0;for(let[,t]of e.matchAll(yo))if(!bo(t??"").startsWith("#"))return!0;return!1}function Hn(e){return vi(e).replaceAll("\\"," ").replace(bi," ").replace(xi,"none").replace(yo,(t,n)=>bo(n).startsWith("#")?t:"none")}var Ti=new Set(["src","srcset","poster","background","action","formaction","ping"]);function Qe(e){for(let t of[e,...e.querySelectorAll("*")]){for(let n of[...t.attributes])if(Ti.has(n.name)||(n.name==="href"||n.name==="xlink:href")&&t.localName!=="a"&&!n.value.trim().startsWith("#")||Tt(n.value))t.removeAttribute(n.name);if(t.localName==="style"&&t.textContent)t.textContent=Hn(t.textContent)}}var wi=`
11
11
  @layer {
12
12
  :host {
13
13
  display: block !important;
@@ -185,8 +185,8 @@ ${V}`:V,z=[],X="";function G(){if(X.trim())z.push({kind:"markdown",text:Y(X)});X
185
185
  display: block;
186
186
  }
187
187
  }
188
- `,S$=/(["'])(?:(?!\1)[^\n\r\f])*\1?|\/\*[\s\S]*?(?:\*\/|$)/g;function I$(_){return/:host|@(-[a-z]+-)?keyframes|@property/i.test(L2(_))}function L2(_){return _.replace(S$,($)=>$.startsWith("/*")?"":$)}async function R2(_){let{default:$}=await import("dompurify"),Q=$.sanitize(_,{FORCE_BODY:!0,RETURN_DOM_FRAGMENT:!0,USE_PROFILES:{html:!0,svg:!0,svgFilters:!0},FORBID_TAGS:["img","picture","source","video","audio","track","a","area","form","input","button","select","textarea","dialog","template","slot","marquee","animatecolor","animatemotion","animatetransform","image","feimage"],FORBID_ATTR:["popover","popovertarget","popovertargetaction"]}),Z=Q.ownerDocument.createElement("div");Z.append(Q);for(let J of Z.querySelectorAll("[style]"))b$(J);_1(Z);for(let J of Z.querySelectorAll("style"))if(I$(J.textContent??""))J.remove();return Z}var C$=/^(-[a-z]+-)?(animation|transition)/i;function b$(_){let $=L2(_.getAttribute("style")??"").split(";");_.setAttribute("style",$.filter((Q)=>!C$.test(Q.trim())).join(";"))}function O2(_,$,Q,Z){let J=document.createElement("style");J.textContent=y$,$.className="cortex-report",_.attachShadow({mode:"open"}).append(J,$);let Y=[...$.querySelectorAll("figure[data-chart]")].map((z)=>{let{box:X,spec:G}=T$(z);return Q(X,G,()=>{let K=document.createElement("p");K.className="cortex-report-chart-failed",K.textContent=Z,X.append(K)})});return()=>{for(let z of Y)z()}}function T$(_){let $=[..._.childNodes].filter((J)=>J.nodeName!=="FIGCAPTION"),Q=document.createElement("div");_.insertBefore(Q,$.find((J)=>J.textContent?.trim())??null);for(let J of $)J.remove();let Z=$.map((J)=>J.textContent).join("");return{box:Q,spec:v$.exec(Z)?.[2]??Z}}var v$=/^\s*(`{3,}|~{3,})[^\n]*\n([\s\S]*?)\n\s*\1\s*$/;var S2={async mermaid(_,$,{scheme:Q}){let[{default:Z},{default:J}]=await Promise.all([import("mermaid"),import("dompurify")]);if(j0.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 Y=j$($);if(!w$.test(Y))throw Error(`Unsupported diagram type: ${Y}`);let z=E2.then(async()=>{if(!A2)Z.initialize({startOnLoad:!1,securityLevel:"strict",htmlLabels:!1}),A2=!0;let K=`%%{init: {"theme": "${Q==="dark"?"dark":"default"}"}}%%
189
- ${$}`;return await Z.parse(K),(await Z.render(`cortex-mermaid-${u$()}`,K,_)).svg});E2=z.catch(()=>{return});let X=await z,G=document.createElement("div");return G.innerHTML=J.sanitize(X,{USE_PROFILES:{svg:!0,svgFilters:!0}}),_1(G),_.replaceChildren(...G.childNodes),()=>{_.innerHTML=""}},async "vega-lite"(_,$,{scheme:Q}){let Z=JSON.parse($),J=e_(Z);if(J)throw Error(J);if(!Z||typeof Z!=="object"||Array.isArray(Z))throw Error("A chart needs a JSON object.");let Y=Z,[{default:z},X]=await Promise.all([import("vega-embed"),import("vega")]),G=()=>Promise.reject(Error("Charts may only use inline data."));async function K(E){let O=document.createElement("div"),N=await z(O,x$(Y,E),{actions:!1,renderer:"svg",mode:"vega-lite",loader:{...X.loader(),load:G,sanitize:G},ast:!0,...Q==="dark"?{theme:"dark"}:{},config:{background:"transparent"}});return _1(O),{drawing:O,result:N,width:E}}let V=await K(_.clientWidth);_.replaceChildren(V.drawing);let W=!1,q,B=0;function D(){q??=(async()=>{let E=_.clientWidth;while(!W&&E>0&&E!==V.width&&E!==B){try{let O=await K(E);if(W){O.result.finalize();return}V.result.finalize(),V=O,_.replaceChildren(O.drawing)}catch{B=E}E=_.clientWidth}})().finally(()=>{q=void 0})}let U=new ResizeObserver(D);if(I2(Y))U.observe(_);function y(){let E=document.getElementById(h$),O=C2(_)??document.body;if(E&&E.parentElement!==O)O.append(E)}return _.addEventListener("pointermove",y),()=>{W=!0,U.disconnect(),_.removeEventListener("pointermove",y),V.result.finalize()}},async map(_,$){let Q=c$(JSON.parse($)),{leaflet:Z,map:J,dispose:Y}=await s_(_,{...Q,interactive:!0});for(let z of Q.markers){let X=Z.marker(z.position).addTo(J);if(z.label){let G=document.createElement("span");G.textContent=z.label,X.bindTooltip(G)}}return Y},async report(_,$,Q){let Z=await R2($);return O2(_,Z,(J,Y,z)=>A1(J,{language:"vega-lite",source:Y,context:Q,overrides:void 0,onError:z}),__(Q.locale,"translate_media_failed"))}},f$={mermaid:{title:"translate_media_mermaid",pending:"translate_media_pending_mermaid"},"vega-lite":{title:"translate_media_vega_lite",pending:"translate_media_pending_vega_lite"},map:{title:"translate_media_map",pending:"translate_media_pending_map"},report:{title:"translate_media_report",pending:"translate_media_pending_report"}};function E1(_){return f$[_]??{title:"translate_media",pending:"translate_media_pending"}}function x0(_){return Object.keys({...S2,..._})}function A1(_,$){let{language:Q,source:Z,context:J,overrides:Y,onError:z}=$,X=_.appendChild(document.createElement("div")),G=Y?.[Q]??S2[Q],K,V=!1;return(G?G(X,Z,J):Promise.reject(Error(`No renderer for ${Q}.`))).then((q)=>{if(V)q();else K=q},(q)=>{if(!V)z(q instanceof Error?q.message:String(q))}),()=>{V=!0,K?.(),X.remove()}}var w$=/^(flowchart|graph|sequenceDiagram|stateDiagram(-v2)?|erDiagram|gantt|pie|classDiagram|journey|timeline|mindmap)$/;function j$(_){let $=_.split(`
190
- `).find((Q)=>/\S/.test(Q)&&!/^\s*%%/.test(Q));return/^\s*(\S+)/.exec($??"")?.[1]??""}function m0(_){return _===void 0||_==="container"}var g$=["row","column","facet"];function I2(_){let $=_.encoding,Q=typeof $==="object"&&$!==null&&g$.some((Z)=>(Z in $));return(("mark"in _)||("layer"in _))&&m0(_.width)&&!Q}function m$(_){let $={..._};if(m0($.width))delete $.width;if(m0($.height))delete $.height;return $}function x$(_,$){let Q=m$(_);if($<=0||!I2(_))return Q;return{...Q,width:$,height:Q.height??Math.round(Math.min(480,Math.max(200,$/2))),autosize:Q.autosize??{type:"fit",contains:"padding"}}}var h$="vg-tooltip-element";function C2(_){let $=_.getRootNode();return _.closest("dialog")??($ instanceof ShadowRoot?C2($.host):null)}var E2=Promise.resolve(),A2=!1,k2=0;function u$(){return k2+=1,k2}function c$(_){if(!_||typeof _!=="object")throw Error("A map needs a JSON object.");let $=_,Q=$.zoom??10;if(typeof Q!=="number"||Q<0||Q>22)throw Error("zoom must be 0 to 22.");let Z=$.markers??[];if(!Array.isArray(Z))throw Error("markers must be a list.");return{center:y2($.center,"center"),zoom:Q,markers:Z.map((J,Y)=>{let z=J??{},X=z.label;return{position:y2(z.position,`markers[${Y}].position`),label:typeof X==="string"?X:void 0}})}}function y2(_,$){let Q=Array.isArray(_)?_:[],[Z,J]=Q;if(typeof Z!=="number"||typeof J!=="number"||Math.abs(Z)>90||Math.abs(J)>180)throw Error(`${$} must be [latitude, longitude].`);return{lat:Z,lng:J}}function h0(_,$){if(_!=="system")return $(_??"light"),()=>{};let Q=window.matchMedia("(prefers-color-scheme: dark)"),Z=()=>$(Q.matches?"dark":"light");return Z(),Q.addEventListener("change",Z),()=>Q.removeEventListener("change",Z)}import k1 from"highlight.js/lib/core";import p$ from"highlight.js/lib/languages/javascript";import d$ from"highlight.js/lib/languages/json";var b2=!1;function l$(){if(b2)return;b2=!0,k1.registerLanguage("javascript",p$),k1.registerLanguage("json",d$)}function u0(_,$){if(!_)return"";return l$(),k1.getLanguage($)?k1.highlight(_,{language:$}).value:i$(_)}function i$(_){return _.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function C_(_){if(typeof _==="string"){let $=_.trim();if(!($.startsWith("{")&&$.endsWith("}")||$.startsWith("[")&&$.endsWith("]")))return _;try{return C_(JSON.parse($))}catch{return _}}if(Array.isArray(_))return _.map(($)=>C_($));if(_!==null&&typeof _==="object"){let $={};for(let[Q,Z]of Object.entries(_))$[Q]=C_(Z);return $}return _}function c0(_,$){if(Array.isArray(_)){let Q=_;return{kind:"container",open:"[",close:"]",summary:T2(Q.length,"item","items"),entries:Q.map((Z,J)=>({key:null,value:Z,path:`${$}[${J}]`}))}}if(_!==null&&typeof _==="object"){let Q=Object.entries(_);return{kind:"container",open:"{",close:"}",summary:T2(Q.length,"property","properties"),entries:Q.map(([Z,J])=>({key:Z,value:J,path:`${$}.${Z}`}))}}return{kind:"primitive",text:n$(_),className:r$(_)}}function T2(_,$,Q){return`${_} ${_===1?$:Q}`}function n$(_){if(_===null||_===void 0)return"null";if(typeof _==="string")return JSON.stringify(_);if(typeof _==="number"||typeof _==="boolean")return String(_);return JSON.stringify(_)??"null"}function r$(_){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 p0(_){if(!_)return null;try{return JSON.parse(_)}catch{return _}}function d0(_){if(!_)return"";try{return JSON.stringify(JSON.parse(_),null,2)}catch{return _}}function G_(_,$,Q=Date.now()){let Z=new Date(_);if(Number.isNaN(Z.getTime()))return"";let J=Z.toDateString()===new Date(Q).toDateString();return new Intl.DateTimeFormat($,{...J?{}:{dateStyle:"medium"},timeStyle:"short"}).format(Z)}class P_{onUpdate;fullText="";displayedLength=0;animationFrameId=null;followed=!1;releases=[];static DRAIN_FRACTION=0.03;static MIN_CHARS_PER_FRAME=1;static FADE_WINDOW_MS=500;constructor(_){this.onUpdate=_}follow(_,$){let Q=!this.followed;if(this.followed=!0,Q||!$){this.stopAnimation(),this.show(_);return}if(this.fullText=_,this.displayedLength=Math.min(this.displayedLength,_.length),this.releases=this.releases.filter((Z)=>Z.from<this.displayedLength),!this.animationFrameId)this.scheduleFrame()}destroy(){this.stopAnimation()}show(_){this.fullText=_,this.displayedLength=_.length,this.releases=[],this.onUpdate(_,[])}scheduleFrame(){this.animationFrameId=requestAnimationFrame((_)=>this.tick(_))}tick(_){let $=this.fullText.length-this.displayedLength;if($<=0){this.animationFrameId=null;return}let Q=Math.max(P_.MIN_CHARS_PER_FRAME,Math.ceil($*P_.DRAIN_FRACTION));if(this.releases=this.releases.filter((Z)=>_-Z.at<P_.FADE_WINDOW_MS),this.releases.push({from:this.displayedLength,at:_}),this.displayedLength=Math.min(this.fullText.length,this.displayedLength+Q),this.onUpdate(this.fullText.substring(0,this.displayedLength),this.releases.map((Z)=>({length:this.displayedLength-Z.from,age:_-Z.at}))),this.displayedLength<this.fullText.length)this.scheduleFrame();else this.animationFrameId=null}stopAnimation(){if(this.animationFrameId)cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null}}function v2(){let _=new Map;return($,Q)=>{let Z=new Map;for(let[J,Y]of o$($,Q)){let z=_.get(J);Z.set(J,z&&s$(z,Y)?z:Y)}return _=Z,Z}}function o$(_,$){let Q=new Map;if($.debugMode)return Q;let J=$.agentWorking||M_(_).length>0?a$(_):_,Y=[];function z(){let X=Y[0]?.part.id;if(Y.length>1&&X&&!$.opened.has(X))for(let[G,{messageId:K,part:V}]of Y.entries()){let W=Q.get(K)??new Map;Q.set(K,W);let q=G===Y.length-1;W.set(V,q?{kind:"more",count:Y.length-1,runId:X}:{kind:"hidden"})}Y=[]}for(let X of J){if(X.role!=="assistant"){z();continue}let G=l_(X.parts,{debugMode:!1,isStreaming:!1});for(let K of G)if(K.type==="tool-call"&&o(K.state)&&$.foldable(K))Y.push({messageId:X.id,part:K});else z()}return z(),Q}function a$(_){let $=_.map((Q)=>Q.role).lastIndexOf("user");return $<0?[]:_.slice(0,$)}function s$(_,$){if(_.size!==$.size)return!1;for(let[Q,Z]of _){let J=$.get(Q);if(!J||J.kind!==Z.kind)return!1;if(Z.kind==="more"&&J.kind==="more"){if(Z.count!==J.count||Z.runId!==J.runId)return!1}}return!0}function l0(){let _=v2();return($,Q)=>{let Z=(V)=>S4(V,Q),J=_($,{...Q,foldable:Z}),Y=Q.agentWorking?n1($)?.id:void 0,z=Q.agentWorking&&!Q.debugMode,X=z?t$($,{foldable:Z}):void 0,G=$.map((V)=>V.role).lastIndexOf("user");return{rows:$.map((V,W)=>({message:V,isStreaming:V.id===Y,closesTurn:V.role==="assistant"&&$[W+1]?.role!=="assistant",workingTurn:z&&W>G,frontier:V.id===Y?X:void 0,fold:J.get(V.id)})),thinking:Q.agentWorking&&!X}}}function f2(_,$){if(_.type!=="tool-call")return!0;return!o(_.state)&&!_.approval&&$.foldable(_)}function t$(_,$){let Q=n1(_);if(!Q)return;let Z=l_(Q.parts,{debugMode:!1,isStreaming:!0}),J=Z.at(-1);if(J&&f2(J,$))return J;return Z.filter((Y)=>Y.type==="tool-call"&&f2(Y,$)).at(-1)}function i0(_,$){let Q=_.metadata,Z=l_(_.parts,$),J=Z.filter((X)=>$.fold?.get(X)?.kind!=="hidden"),Y=J.filter((X)=>X.type==="text").at(-1),z=(_.role==="user"||_.role==="assistant")&&!$.isStreaming;return{metadata:Q,parts:Z,drawsBody:Z.length>0||Boolean(Q?.attachments?.length||Q?.isAborted),streamingPart:$.isStreaming?Z.at(-1):void 0,actionsAfter:z&&Y?Y===J.at(-1)?"end":Y:void 0,debugStrip:$.debugMode&&Q!==void 0&&$.closesTurn}}function n0(_){return _.filter(($)=>$.type==="text").map(($)=>$.content).join(`
188
+ `,Ci=/(["'])(?:(?!\1)[^\n\r\f])*\1?|\/\*[\s\S]*?(?:\*\/|$)/g;function ki(e){return/:host|@(-[a-z]+-)?keyframes|@property/i.test(vo(e))}function vo(e){return e.replace(Ci,(t)=>t.startsWith("/*")?"":t)}async function To(e){let{default:t}=await import("dompurify"),n=t.sanitize(e,{FORCE_BODY:!0,RETURN_DOM_FRAGMENT:!0,USE_PROFILES:{html:!0,svg:!0,svgFilters:!0},FORBID_TAGS:["img","picture","source","video","audio","track","a","area","form","input","button","select","textarea","dialog","template","slot","marquee","animatecolor","animatemotion","animatetransform","image","feimage"],FORBID_ATTR:["popover","popovertarget","popovertargetaction"]}),r=n.ownerDocument.createElement("div");r.append(n);for(let o of r.querySelectorAll("[style]"))Mi(o);Qe(r);for(let o of r.querySelectorAll("style"))if(ki(o.textContent??""))o.remove();return r}var Si=/^(-[a-z]+-)?(animation|transition)/i;function Mi(e){let t=vo(e.getAttribute("style")??"").split(";");e.setAttribute("style",t.filter((n)=>!Si.test(n.trim())).join(";"))}function wo(e,t,n,r){let o=document.createElement("style");o.textContent=wi,t.className="cortex-report",e.attachShadow({mode:"open"}).append(o,t);let a=[...t.querySelectorAll("figure[data-chart]")].map((i)=>{let{box:s,spec:l}=Ni(i);return n(s,l,()=>{let c=document.createElement("p");c.className="cortex-report-chart-failed",c.textContent=r,s.append(c)})});return()=>{for(let i of a)i()}}function Ni(e){let t=[...e.childNodes].filter((o)=>o.nodeName!=="FIGCAPTION"),n=document.createElement("div");e.insertBefore(n,t.find((o)=>o.textContent?.trim())??null);for(let o of t)o.remove();let r=t.map((o)=>o.textContent).join("");return{box:n,spec:Li.exec(r)?.[2]??r}}var Li=/^\s*(`{3,}|~{3,})[^\n]*\n([\s\S]*?)\n\s*\1\s*$/;var No={async mermaid(e,t,{scheme:n}){let[{default:r},{default:o}]=await Promise.all([import("mermaid"),import("dompurify")]);if(Fn.test(t)||t.includes("\\"))throw Error("Diagrams may not reference URLs.");if(/%%\{/.test(t))throw Error("Diagrams may not carry init directives.");if(/^\s*---\s*$/m.test(t))throw Error("Diagrams may not carry frontmatter.");if(/\bimg\s*:/.test(t))throw Error("Diagrams may not embed images.");let a=Ri(t);if(!Ei.test(a))throw Error(`Unsupported diagram type: ${a}`);let i=Co.then(async()=>{if(!ko)r.initialize({startOnLoad:!1,securityLevel:"strict",htmlLabels:!1}),ko=!0;let c=`%%{init: {"theme": "${n==="dark"?"dark":"default"}"}}%%
189
+ ${t}`;return await r.parse(c),(await r.render(`cortex-mermaid-${Hi()}`,c,e)).svg});Co=i.catch(()=>{return});let s=await i,l=document.createElement("div");return l.innerHTML=o.sanitize(s,{USE_PROFILES:{svg:!0,svgFilters:!0}}),Qe(l),e.replaceChildren(...l.childNodes),()=>{e.innerHTML=""}},async "vega-lite"(e,t,{scheme:n}){let r=JSON.parse(t),o=Ye(r);if(o)throw Error(o);if(!r||typeof r!=="object"||Array.isArray(r))throw Error("A chart needs a JSON object.");let a=r,[{default:i},s]=await Promise.all([import("vega-embed"),import("vega")]),l=()=>Promise.reject(Error("Charts may only use inline data."));async function c(C){let w=document.createElement("div"),g=await i(w,Pi(a,C),{actions:!1,renderer:"svg",mode:"vega-lite",loader:{...s.loader(),load:l,sanitize:l},ast:!0,...n==="dark"?{theme:"dark"}:{},config:{background:"transparent"}});return Qe(w),{drawing:w,result:g,width:C}}let d=await c(e.clientWidth);e.replaceChildren(d.drawing);let u=!1,p,f=0;function m(){p??=(async()=>{let C=e.clientWidth;while(!u&&C>0&&C!==d.width&&C!==f){try{let w=await c(C);if(u){w.result.finalize();return}d.result.finalize(),d=w,e.replaceChildren(w.drawing)}catch{f=C}C=e.clientWidth}})().finally(()=>{p=void 0})}let x=new ResizeObserver(m);if(Lo(a))x.observe(e);function M(){let C=document.getElementById(Fi),w=Ao(e)??document.body;if(C&&C.parentElement!==w)w.append(C)}return e.addEventListener("pointermove",M),()=>{u=!0,x.disconnect(),e.removeEventListener("pointermove",M),d.result.finalize()}},async map(e,t){let n=Di(JSON.parse(t)),{leaflet:r,map:o,dispose:a}=await Xe(e,{...n,interactive:!0});for(let i of n.markers){let s=r.marker(i.position).addTo(o);if(i.label){let l=document.createElement("span");l.textContent=i.label,s.bindTooltip(l)}}return a},async report(e,t,n){let r=await To(t);return wo(e,r,(o,a,i)=>Ct(o,{language:"vega-lite",source:a,context:n,overrides:void 0,onError:i}),Y(n.locale,"translate_media_failed"))}},Ai={mermaid:{title:"translate_media_mermaid",pending:"translate_media_pending_mermaid"},"vega-lite":{title:"translate_media_vega_lite",pending:"translate_media_pending_vega_lite"},map:{title:"translate_media_map",pending:"translate_media_pending_map"},report:{title:"translate_media_report",pending:"translate_media_pending_report"}};function wt(e){return Ai[e]??{title:"translate_media",pending:"translate_media_pending"}}function Un(e){return Object.keys({...No,...e})}function Ct(e,t){let{language:n,source:r,context:o,overrides:a,onError:i}=t,s=e.appendChild(document.createElement("div")),l=a?.[n]??No[n],c,d=!1;return(l?l(s,r,o):Promise.reject(Error(`No renderer for ${n}.`))).then((p)=>{if(d)p();else c=p},(p)=>{if(!d)i(p instanceof Error?p.message:String(p))}),()=>{d=!0,c?.(),s.remove()}}var Ei=/^(flowchart|graph|sequenceDiagram|stateDiagram(-v2)?|erDiagram|gantt|pie|classDiagram|journey|timeline|mindmap)$/;function Ri(e){let t=e.split(`
190
+ `).find((n)=>/\S/.test(n)&&!/^\s*%%/.test(n));return/^\s*(\S+)/.exec(t??"")?.[1]??""}function Dn(e){return e===void 0||e==="container"}var Ii=["row","column","facet"];function Lo(e){let t=e.encoding,n=typeof t==="object"&&t!==null&&Ii.some((r)=>(r in t));return(("mark"in e)||("layer"in e))&&Dn(e.width)&&!n}function Oi(e){let t={...e};if(Dn(t.width))delete t.width;if(Dn(t.height))delete t.height;return t}function Pi(e,t){let n=Oi(e);if(t<=0||!Lo(e))return n;return{...n,width:t,height:n.height??Math.round(Math.min(480,Math.max(200,t/2))),autosize:n.autosize??{type:"fit",contains:"padding"}}}var Fi="vg-tooltip-element";function Ao(e){let t=e.getRootNode();return e.closest("dialog")??(t instanceof ShadowRoot?Ao(t.host):null)}var Co=Promise.resolve(),ko=!1,So=0;function Hi(){return So+=1,So}function Di(e){if(!e||typeof e!=="object")throw Error("A map needs a JSON object.");let t=e,n=t.zoom??10;if(typeof n!=="number"||n<0||n>22)throw Error("zoom must be 0 to 22.");let r=t.markers??[];if(!Array.isArray(r))throw Error("markers must be a list.");return{center:Mo(t.center,"center"),zoom:n,markers:r.map((o,a)=>{let i=o??{},s=i.label;return{position:Mo(i.position,`markers[${a}].position`),label:typeof s==="string"?s:void 0}})}}function Mo(e,t){let n=Array.isArray(e)?e:[],[r,o]=n;if(typeof r!=="number"||typeof o!=="number"||Math.abs(r)>90||Math.abs(o)>180)throw Error(`${t} must be [latitude, longitude].`);return{lat:r,lng:o}}function Wn(e,t){if(e!=="system")return t(e??"light"),()=>{};let n=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>t(n.matches?"dark":"light");return r(),n.addEventListener("change",r),()=>n.removeEventListener("change",r)}import kt from"highlight.js/lib/core";import Ui from"highlight.js/lib/languages/javascript";import Wi from"highlight.js/lib/languages/json";var Eo=!1;function Bi(){if(Eo)return;Eo=!0,kt.registerLanguage("javascript",Ui),kt.registerLanguage("json",Wi)}function Bn(e,t){if(!e)return"";return Bi(),kt.getLanguage(t)?kt.highlight(e,{language:t}).value:$i(e)}function $i(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ne(e){if(typeof e==="string"){let t=e.trim();if(!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return e;try{return Ne(JSON.parse(t))}catch{return e}}if(Array.isArray(e))return e.map((t)=>Ne(t));if(e!==null&&typeof e==="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Ne(r);return t}return e}function $n(e,t){if(Array.isArray(e)){let n=e;return{kind:"container",open:"[",close:"]",summary:Ro(n.length,"item","items"),entries:n.map((r,o)=>({key:null,value:r,path:`${t}[${o}]`}))}}if(e!==null&&typeof e==="object"){let n=Object.entries(e);return{kind:"container",open:"{",close:"}",summary:Ro(n.length,"property","properties"),entries:n.map(([r,o])=>({key:r,value:o,path:`${t}.${r}`}))}}return{kind:"primitive",text:ji(e),className:zi(e)}}function Ro(e,t,n){return`${e} ${e===1?t:n}`}function ji(e){if(e===null||e===void 0)return"null";if(typeof e==="string")return JSON.stringify(e);if(typeof e==="number"||typeof e==="boolean")return String(e);return JSON.stringify(e)??"null"}function zi(e){if(e===null||e===void 0)return"cortex-json-tree__null";if(typeof e==="string")return"cortex-json-tree__string";if(typeof e==="number")return"cortex-json-tree__number";if(typeof e==="boolean")return"cortex-json-tree__boolean";return""}function jn(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}function zn(e){if(!e)return"";try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function ce(e,t,n=Date.now()){let r=new Date(e);if(Number.isNaN(r.getTime()))return"";let o=r.toDateString()===new Date(n).toDateString();return new Intl.DateTimeFormat(t,{...o?{}:{dateStyle:"medium"},timeStyle:"short"}).format(r)}class ve{onUpdate;fullText="";displayedLength=0;animationFrameId=null;followed=!1;releases=[];static DRAIN_FRACTION=0.03;static MIN_CHARS_PER_FRAME=1;static FADE_WINDOW_MS=500;constructor(e){this.onUpdate=e}follow(e,t){let n=!this.followed;if(this.followed=!0,n||!t){this.stopAnimation(),this.show(e);return}if(this.fullText=e,this.displayedLength=Math.min(this.displayedLength,e.length),this.releases=this.releases.filter((r)=>r.from<this.displayedLength),!this.animationFrameId)this.scheduleFrame()}destroy(){this.stopAnimation()}show(e){this.fullText=e,this.displayedLength=e.length,this.releases=[],this.onUpdate(e,[])}scheduleFrame(){this.animationFrameId=requestAnimationFrame((e)=>this.tick(e))}tick(e){let t=this.fullText.length-this.displayedLength;if(t<=0){this.animationFrameId=null;return}let n=Math.max(ve.MIN_CHARS_PER_FRAME,Math.ceil(t*ve.DRAIN_FRACTION));if(this.releases=this.releases.filter((r)=>e-r.at<ve.FADE_WINDOW_MS),this.releases.push({from:this.displayedLength,at:e}),this.displayedLength=Math.min(this.fullText.length,this.displayedLength+n),this.onUpdate(this.fullText.substring(0,this.displayedLength),this.releases.map((r)=>({length:this.displayedLength-r.from,age:e-r.at}))),this.displayedLength<this.fullText.length)this.scheduleFrame();else this.animationFrameId=null}stopAnimation(){if(this.animationFrameId)cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null}}function Io(){let e=new Map;return(t,n)=>{let r=new Map;for(let[o,a]of qi(t,n)){let i=e.get(o);r.set(o,i&&Gi(i,a)?i:a)}return e=r,r}}function qi(e,t){let n=new Map;if(t.debugMode)return n;let o=t.agentWorking||be(e).length>0?Vi(e):e,a=[];function i(){let s=a[0]?.part.id;if(a.length>1&&s&&!t.opened.has(s))for(let[l,{messageId:c,part:d}]of a.entries()){let u=n.get(c)??new Map;n.set(c,u);let p=l===a.length-1;u.set(d,p?{kind:"more",count:a.length-1,runId:s}:{kind:"hidden"})}a=[]}for(let s of o){if(s.role!=="assistant"){i();continue}let l=ze(s.parts,{debugMode:!1,isStreaming:!1});for(let c of l)if(c.type==="tool-call"&&X(c.state)&&t.foldable(c))a.push({messageId:s.id,part:c});else i()}return i(),n}function Vi(e){let t=e.map((n)=>n.role).lastIndexOf("user");return t<0?[]:e.slice(0,t)}function Gi(e,t){if(e.size!==t.size)return!1;for(let[n,r]of e){let o=t.get(n);if(!o||o.kind!==r.kind)return!1;if(r.kind==="more"&&o.kind==="more"){if(r.count!==o.count||r.runId!==o.runId)return!1}}return!0}function qn(){let e=Io();return(t,n)=>{let r=(d)=>Mr(d,n),o=e(t,{...n,foldable:r}),a=n.agentWorking?Vt(t)?.id:void 0,i=n.agentWorking&&!n.debugMode,s=i?Ki(t,{foldable:r}):void 0,l=t.map((d)=>d.role).lastIndexOf("user");return{rows:t.map((d,u)=>({message:d,isStreaming:d.id===a,closesTurn:d.role==="assistant"&&t[u+1]?.role!=="assistant",workingTurn:i&&u>l,frontier:d.id===a?s:void 0,fold:o.get(d.id)})),thinking:n.agentWorking&&!s}}}function Oo(e,t){if(e.type!=="tool-call")return!0;return!X(e.state)&&!e.approval&&t.foldable(e)}function Ki(e,t){let n=Vt(e);if(!n)return;let r=ze(n.parts,{debugMode:!1,isStreaming:!0}),o=r.at(-1);if(o&&Oo(o,t))return o;return r.filter((a)=>a.type==="tool-call"&&Oo(a,t)).at(-1)}function Vn(e,t){let n=e.metadata,r=ze(e.parts,t),o=r.filter((s)=>t.fold?.get(s)?.kind!=="hidden"),a=o.filter((s)=>s.type==="text").at(-1),i=(e.role==="user"||e.role==="assistant")&&!t.isStreaming;return{metadata:n,parts:r,drawsBody:r.length>0||Boolean(n?.attachments?.length||n?.isAborted),streamingPart:t.isStreaming?r.at(-1):void 0,actionsAfter:i&&a?a===o.at(-1)?"end":a:void 0,debugStrip:t.debugMode&&n!==void 0&&t.closesTurn}}function Gn(e){return e.filter((t)=>t.type==="text").map((t)=>t.content).join(`
191
191
 
192
- `)}var L={alert:"M8 4.75v4M8 10.75v.5",alertSmall:"M6 1.5v5M6 8.75v.5",arrowRight:"M3 8h10M9 4l4 4-4 4",bolt:"M6.75 1 2.5 6.75h3l-.25 4.25L9.5 5.25h-3z",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",bulb:["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","M7.5 17.5h5M8.5 8a2 2 0 0 1 2-2"],check:"M5 13l4 4L19 7",chevronDown:"M3 4.5L6 7.5L9 4.5",chevronDownLarge:"m5.75 8.25 4.25 4.25 4.25-4.25",chevronLeft:"M10 3L5 8l5 5",chevronRight:"M6 4l4 4-4 4",clockHands:"M8 5v3l2 1.5",close:"M4 4l8 8M12 4l-8 8",closeSmall:"M4.5 4.5l7 7m0-7l-7 7",copy:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",crosshair:"M10 1.5v3M10 15.5v3M1.5 10h3M15.5 10h3",download:"M8 3v7m0 0L5.5 7.5M8 10l2.5-2.5M3 13h10",downloadTray:"M8 2.5v7.5M5 7l3 3 3-3M2.75 11v1.25a1.25 1.25 0 0 0 1.25 1.25h8a1.25 1.25 0 0 0 1.25-1.25V11",expand:"M9.5 2.5h4v4M6.5 13.5h-4v-4M13.5 2.5 9 7M2.5 13.5 7 9",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"],menu:"M2.5 4h11M2.5 8h11M2.5 12h11",paperclip:"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",plus:"M8 3v10M3 8h10",search:"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",shield:"M8 1.75 2.75 3.75v4c0 3 2.2 5.3 5.25 6.5 3.05-1.2 5.25-3.5 5.25-6.5v-4L8 1.75Z",sparkles:["M9.94 15.5a2 2 0 0 0-1.44-1.44l-6.13-1.58a.5.5 0 0 1 0-.96L8.5 9.94A2 2 0 0 0 9.94 8.5l1.58-6.14a.5.5 0 0 1 .96 0l1.58 6.14a2 2 0 0 0 1.44 1.44l6.14 1.58a.5.5 0 0 1 0 .96l-6.14 1.58a2 2 0 0 0-1.44 1.44l-1.58 6.14a.5.5 0 0 1-.96 0z","M20 3v4M22 5h-4M4 17v2M5 18H3"],spinnerArc:"M14 8a6 6 0 0 0-6-6",statusCheck:"M5.5 10.5 L8.5 13.5 L14.5 7",statusCross:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5"};function $1(_){if(_.input.total<=0)return null;return Math.round(_.input.cacheRead/_.input.total*100)}function j(_){return _.toLocaleString("en-US")}import{createContext as e$,useContext as _5,useSyncExternalStore as $5}from"react";var r0=e$(void 0);function H(){let _=_5(r0);if(!_)throw Error("useCortex must be used inside <CortexChatWidget>");return _}function I(_){let{widget:$}=H(),Q=()=>_($.getState());return $5($.subscribe,Q,Q)}import{useEffect as Q5,useRef as Z5,useState as J5,useSyncExternalStore as Y5}from"react";function w2(_){let $=Z5(_);$.current=_;let[Q]=J5(()=>L0({getConfig:()=>$.current}));Q5(()=>{return Q.start(),Q.stop},[Q]);let Z=()=>Q.getState().parts,J=Y5(Q.subscribe,Z,Z);return{widget:Q,parts:J}}import{useEffect as V5,useLayoutEffect as h2,useRef as a0,useState as W5,useSyncExternalStore as q5}from"react";function M(..._){return _.filter(Boolean).join(" ")}import{jsx as s,jsxs as Q1}from"react/jsx-runtime";function j2(){let{widget:_,t:$,locale:Q}=H(),Z=I((J)=>J.attachments);if(!Z.length)return null;return s("div",{className:"cortex-attachment-queue",children:Z.map((J)=>Q1("div",{className:M("cortex-attachment-chip",J.status==="error"&&"cortex-attachment-chip--error"),children:[J.status==="uploading"||J.status==="deleting"?Q1("svg",{className:"cortex-attachment-chip__spinner",viewBox:"0 0 16 16",fill:"none",children:[s("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",className:"cortex-attachment-chip__spinner-track"}),s("path",{d:L.spinnerArc,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):J.status==="error"?Q1("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[s("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.25"}),s("path",{d:L.alert,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]}):Q1("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[s("path",{d:L.file[0],stroke:"currentColor",strokeWidth:"1.25"}),s("path",{d:L.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),Q1("span",{className:"cortex-attachment-chip__text",children:[s("span",{className:"cortex-attachment-chip__name",children:s("bdi",{children:J.filename})}),J.status==="error"&&s("span",{className:"cortex-attachment-chip__reason",children:F0(J,Q)})]}),s("button",{type:"button",onClick:()=>_.removeAttachment(J.localId),className:"cortex-attachment-chip__remove",disabled:J.status==="deleting","aria-label":$("translate_remove_attachment"),children:s("svg",{viewBox:"0 0 16 16",fill:"none",children:s("path",{d:L.closeSmall,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},J.localId))})}import{useRef as X5}from"react";import{jsx as L_,jsxs as g2,Fragment as G5}from"react/jsx-runtime";var z5=p_.join(",");function m2({attachmentsEnabled:_,canSend:$,onSend:Q}){let{t:Z,widget:J}=H(),Y=X5(null);return g2("div",{className:"cortex-widget__input-actions",children:[_&&g2(G5,{children:[L_("button",{type:"button",onClick:()=>Y.current?.click(),className:"cortex-widget__attach-btn","aria-label":Z("translate_attach_files"),children:L_("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:L_("path",{d:L.paperclip,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),L_("input",{ref:Y,type:"file",multiple:!0,accept:z5,onChange:(z)=>{J.attachFiles([...z.target.files??[]]),z.target.value=""},className:"cortex-widget__file-input"})]}),L_("button",{onClick:Q,"aria-label":Z("translate_send"),className:M("cortex-widget__send-btn",!$&&"cortex-widget__send-btn--empty",$&&"cortex-widget__send-btn--ready"),disabled:!$,children:L_("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__send-icon",children:L_("path",{d:L.arrowRight,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}import{jsx as K5}from"react/jsx-runtime";function x2(_){let{t:$}=H();return K5("textarea",{ref:_.inputRef,onPaste:_.onPaste,value:_.value,onChange:(Q)=>_.onChange(Q.target.value),placeholder:_.dragging?$("translate_drop_files_here"):_.disabled?"":$("translate_type_a_message"),disabled:_.disabled,rows:1,className:M("cortex-widget__textarea",_.disabled&&"cortex-widget__textarea--disabled")})}import{jsx as b_,jsxs as o0}from"react/jsx-runtime";function D5(_,$){let Q=a0(null),Z=a0(void 0);return h2(()=>{if(!Q.current)return;let J=Y0(Q.current,_);return Z.current=J,J.dispose},[_]),h2(()=>Z.current?.fit(),[$]),{messageInput:Q,input:Z}}function u2(){let{t:_,widget:$}=H(),Q=q5($.subscribe,$.getDraft,$.getDraft),Z=I((B)=>B.session.isAgentWorking),J=I((B)=>B.session.isAgentWorking||B.creating),Y=I((B)=>B.capabilities?.attachments??!1),z=I((B)=>a_(B,Q)),[X,G]=W5(!1),K=X0({enabled:Y,accept:$.attachFiles,setDragging:G}),{messageInput:V,input:W}=D5($,Q),q=a0(J);return V5(()=>{if(q.current&&!J)V.current?.focus();q.current=J},[J,V]),o0("div",{className:"cortex-widget__input-area",onDragOver:K.onDragOver,onDragLeave:K.onDragLeave,onDrop:K.onDrop,children:[b_(j2,{}),o0("div",{className:M("cortex-widget__input-box",J&&"cortex-widget__input-box--disabled",!J&&"cortex-widget__input-box--enabled",X&&"cortex-widget__input-box--dragging"),children:[b_(x2,{inputRef:V,value:Q,onChange:$.setDraft,onPaste:K.onPaste,disabled:J,dragging:X}),Z?o0("button",{type:"button","aria-label":_("translate_stop"),onClick:()=>void $.abort(),className:"cortex-stop-btn",children:[b_("span",{className:"cortex-stop-btn__ring"}),b_("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"cortex-stop-btn__icon",children:b_("rect",{x:"1",y:"1",width:"10",height:"10",rx:"2.5",fill:"currentColor"})})]}):b_(m2,{attachmentsEnabled:Y,canSend:z,onSend:()=>W.current?.send()})]})]})}import{jsx as c2,jsxs as B5}from"react/jsx-runtime";function y1(){let{t:_,widget:$}=H(),Q=I(P0),Z=I((J)=>J.unanswered==="unverified");if(Q==="composer")return c2(u2,{});if(!Q)return null;return B5("p",{className:"cortex-widget__messages-disabled",children:[_(Q),Z?c2("button",{type:"button",className:"cortex-widget__retry",onClick:$.retry,children:_("translate_client_tool_retry")}):null]})}import{jsx as n,jsxs as S1}from"react/jsx-runtime";function p2(_){let{t:$}=H(),Q=_.newChat&&n("button",{type:"button",onClick:_.newChat,"aria-label":$("translate_new_chat"),title:$("translate_new_chat"),className:"cortex-widget__header-btn cortex-widget__new-btn",children:n("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:n("path",{d:L.plus,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})});if(_.screen==="threads")return S1("div",{className:"cortex-widget__threads-header",children:[n("button",{type:"button",onClick:_.closeHistory,"aria-label":$("translate_back"),className:"cortex-widget__header-btn cortex-widget__back-btn",children:n("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"cortex-widget__back-icon",children:n("path",{d:L.chevronLeft,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),S1("div",{children:[n("h2",{className:"cortex-widget__threads-title",children:$("translate_history")}),_.threadCount!==void 0&&n("p",{className:"cortex-widget__threads-count",children:$("translate_conversations",{count:_.threadCount})})]}),Q]});return S1("div",{className:"cortex-widget__chat-header",children:[n("button",{onClick:_.openHistory,className:"cortex-widget__sidebar-toggle-btn",children:n("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:n("path",{d:L.menu,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),n("div",{className:"cortex-widget__chat-title-wrap",children:n("p",{className:"cortex-widget__chat-title",children:_.title??_.agentName??$("translate_new_chat")})}),_.debug.shown&&n("button",{onClick:_.toggleDebug,className:M("cortex-widget__debug-btn",_.debug.on?"cortex-widget__debug-btn--on":"cortex-widget__debug-btn--off"),children:_.debug.on?$("translate_debug"):$("translate_normal")}),Q,n("button",{type:"button",onClick:_.openHistory,"aria-label":$("translate_history"),title:$("translate_history"),className:"cortex-widget__header-btn cortex-widget__history-btn",children:S1("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[n("circle",{cx:"8",cy:"8",r:"5.75",stroke:"currentColor",strokeWidth:"1.3"}),n("path",{d:L.clockHands,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})}import{jsx as K_,jsxs as d2}from"react/jsx-runtime";function l2(_){let{locale:$,t:Q}=H();return d2("div",{className:"cortex-widget__landing",children:[K_("div",{className:"cortex-widget__landing-icon",children:K_("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",children:K_("path",{d:L.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),K_("p",{className:"cortex-widget__landing-greeting",children:_.greeting}),!!_.suggestions.length&&K_("div",{className:"cortex-widget__landing-chips",children:_.suggestions.map((Z,J)=>K_("button",{type:"button",onClick:()=>_.send(Z.prompt),className:"cortex-widget__landing-chip",children:Z.title},J))}),_.composer,!!_.threads?.length&&K_("div",{className:"cortex-widget__landing-recent",children:_.threads.slice(0,2).map((Z)=>{let J=G_(Z.updatedAt,$);return d2("button",{type:"button",onClick:()=>_.openThread(Z),className:"cortex-widget__landing-recent-item",children:[K_("p",{className:"cortex-widget__landing-recent-title",children:Z.title??Q("translate_untitled")}),J&&K_("p",{className:"cortex-widget__landing-recent-time",children:J})]},Z.id)})})]})}import{useCallback as _3,useEffect as $3,useLayoutEffect as q1,useMemo as Q3,useRef as D1,useState as $4}from"react";import{memo as t5}from"react";import{Fragment as o5}from"react";import{useRef as N5,useState as F5}from"react";import{jsx as T_,jsxs as H5}from"react/jsx-runtime";function $_({value:_,className:$}){let{t:Q}=H(),[Z,J]=F5(!1),Y=N5(null);async function z(X){X.stopPropagation(),X.preventDefault();try{if(await navigator.clipboard.writeText(_),J(!0),Y.current)clearTimeout(Y.current);Y.current=setTimeout(()=>J(!1),1500)}catch{}}return T_("span",{className:M("cortex-copy-btn",$),children:T_("button",{className:M("cortex-copy-btn__button",Z&&"cortex-copy-btn__button--copied"),onClick:(X)=>void z(X),"aria-label":Z?Q("translate_copied"):Q("translate_copy"),type:"button",children:Z?T_("svg",{className:"cortex-copy-btn__icon cortex-copy-btn__icon--check",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:T_("path",{d:L.check,stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):H5("svg",{className:"cortex-copy-btn__icon",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:[T_("rect",{x:"9",y:"9",width:"12",height:"12",rx:"2",stroke:"currentColor",strokeWidth:"2"}),T_("path",{d:L.copy,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})})})}import{jsx as I1,jsxs as i2}from"react/jsx-runtime";function C1({label:_}){return i2("div",{className:"cortex-aborted-flag",children:[I1("span",{className:"cortex-aborted-flag__line"}),i2("span",{className:"cortex-aborted-flag__label",children:[I1("svg",{className:"cortex-aborted-flag__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:I1("path",{d:L.alertSmall,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),_]}),I1("span",{className:"cortex-aborted-flag__line"})]})}import{jsx as v_,jsxs as n2}from"react/jsx-runtime";function r2(_){let{widget:$,t:Q}=H();return v_("div",{className:M("cortex-message-attachments",_.isUser&&"cortex-message-attachments--user"),children:_.attachments.map((Z)=>n2("button",{type:"button",onClick:()=>void T0($.api,Z.id),className:"cortex-message-attachment","aria-label":`${Q("translate_download")}: ${Z.filename}`,children:[n2("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__icon",fill:"none",children:[v_("path",{d:L.file[0],stroke:"currentColor",strokeWidth:"1.25"}),v_("path",{d:L.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),v_("span",{className:"cortex-message-attachment__name",children:Z.filename}),v_("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__dl-icon",fill:"none",children:v_("path",{d:L.download,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},Z.id))})}import{useState as Z1}from"react";import{useMemo as U5,useState as M5}from"react";import{jsx as t,jsxs as R_,Fragment as b1}from"react/jsx-runtime";function N_({data:_,expandDepth:$,className:Q}){let Z=U5(()=>C_(_),[_]),[J,Y]=M5({});function z(G,K){return J[G]??K>=$}function X(G,K){Y((V)=>({...V,[G]:!z(G,K)}))}return t("div",{className:M("cortex-json-tree",Q),children:t(o2,{value:Z,path:"$",depth:0,isCollapsed:z,toggle:X})})}function o2({value:_,path:$,depth:Q,isCollapsed:Z,toggle:J}){let Y=c0(_,$);if(Y.kind==="primitive")return t("span",{className:Y.className,children:Y.text});if(Y.entries.length===0)return R_("span",{className:"cortex-json-tree__bracket",children:[Y.open,Y.close]});let z=Z($,Q);function X(G){J($,Q),G.stopPropagation()}return R_(b1,{children:[R_("span",{className:"cortex-json-tree__toggle",onClick:X,role:"button",children:[t("span",{className:M("cortex-json-tree__arrow",z&&"cortex-json-tree__arrow--collapsed"),children:"▾"}),t("span",{className:"cortex-json-tree__bracket",children:Y.open})]}),z?R_(b1,{children:[t("span",{className:"cortex-json-tree__collapsed-hint",onClick:X,role:"button",children:Y.summary}),t("span",{className:"cortex-json-tree__bracket",children:Y.close})]}):R_(b1,{children:[t("div",{className:"cortex-json-tree__indent",children:Y.entries.map((G,K)=>R_("div",{className:"cortex-json-tree__line",children:[G.key!==null&&R_(b1,{children:[t("span",{className:"cortex-json-tree__key",children:`"${G.key}"`}),t("span",{className:"cortex-json-tree__colon",children:": "})]}),t(o2,{value:G.value,path:G.path,depth:Q+1,isCollapsed:Z,toggle:J}),K<Y.entries.length-1&&t("span",{className:"cortex-json-tree__comma",children:","})]},G.path))}),t("span",{className:"cortex-json-tree__bracket",children:Y.close})]})]})}import{jsx as f_,jsxs as w_}from"react/jsx-runtime";function a2({usage:_}){let{t:$}=H();return w_("div",{className:"cortex-llm-inspector__usage-rows",children:[w_("div",{className:"cortex-llm-inspector__usage-row",children:[f_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_input")}),f_("span",{className:"cortex-llm-inspector__usage-val",children:j(_.input.total)}),w_("span",{className:"cortex-llm-inspector__usage-detail",children:[$("translate_fresh")," ",j(_.input.noCache)," · ",$("translate_read")," ",j(_.input.cacheRead)," · ",$("translate_write")," ",j(_.input.cacheWrite)]})]}),w_("div",{className:"cortex-llm-inspector__usage-row",children:[f_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_output")}),f_("span",{className:"cortex-llm-inspector__usage-val",children:j(_.output.total)}),w_("span",{className:"cortex-llm-inspector__usage-detail",children:[$("translate_text")," ",j(_.output.text)," · ",$("translate_reasoning")," ",j(_.output.reasoning)]})]}),w_("div",{className:"cortex-llm-inspector__usage-row cortex-llm-inspector__usage-row--total",children:[f_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_total")}),f_("span",{className:"cortex-llm-inspector__usage-val",children:j(_.total)})]})]})}import{jsx as s2,jsxs as T1}from"react/jsx-runtime";function t2({usage:_}){let $=$1(_);return T1("span",{className:"cortex-llm-inspector__step-metrics",children:[T1("span",{className:"cortex-llm-inspector__metric",children:[s2("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--input"}),j(_.input.total)]}),T1("span",{className:"cortex-llm-inspector__metric",children:[s2("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--output"}),j(_.output.total)]}),$!==null&&T1("span",{className:"cortex-llm-inspector__cache-pct",children:[$,"%"]})]})}import{jsx as x,jsxs as F_}from"react/jsx-runtime";function e2({messageId:_}){let{t:$,widget:Q}=H(),Z=I((N)=>N.selected?.id),[J,Y]=Z1(!1),[z,X]=Z1("idle"),[G,K]=Z1([]),[V,W]=Z1(null),[q,B]=Z1({});async function D(){if(!J&&z!=="loaded"&&Z){X("loading");try{K(await Q.api.listLlmRequests(Z,_)),X("loaded")}catch{X("failed")}}Y((N)=>!N)}function U(N){W((P)=>P===N?null:N)}function y(N){return q[N]??"prompt"}function E(N,P){B((A)=>({...A,[N]:P}))}function O(N){return y(N.id)==="prompt"?N.prompt:N.output}return F_("div",{className:M("cortex-llm-inspector",J&&"cortex-llm-inspector--open"),children:[F_("button",{className:"cortex-llm-inspector__trigger",onClick:()=>void D(),children:[x("svg",{className:"cortex-llm-inspector__icon",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:x("path",{d:L.search,fill:"currentColor"})}),x("span",{children:$("translate_inspect_llm_requests")}),z==="loading"?x("span",{className:"cortex-llm-inspector__loading",children:$("translate_loading")}):G.length>0?x("span",{className:"cortex-llm-inspector__badge",children:G.length}):null,x("svg",{className:"cortex-llm-inspector__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:x("path",{d:L.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),x("div",{className:"cortex-llm-inspector__panel-wrapper",children:x("div",{className:"cortex-llm-inspector__panel-inner",children:F_("div",{className:"cortex-llm-inspector__panel",children:[G.length===0&&z!=="loading"&&x("div",{className:"cortex-llm-inspector__empty",children:$(z==="failed"?"translate_error":"translate_no_llm_requests")}),G.map((N,P)=>F_("div",{className:M("cortex-llm-inspector__step",V===N.id&&"cortex-llm-inspector__step--expanded"),children:[F_("button",{className:"cortex-llm-inspector__step-header",onClick:()=>U(N.id),children:[x("span",{className:"cortex-llm-inspector__step-label",children:$("translate_step_n",{number:P+1})}),N.tokenUsage&&x(t2,{usage:N.tokenUsage}),x("svg",{className:"cortex-llm-inspector__step-chevron",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:x("path",{d:L.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),x("div",{className:"cortex-llm-inspector__step-body-wrapper",children:x("div",{className:"cortex-llm-inspector__step-body-inner",children:F_("div",{className:"cortex-llm-inspector__step-body",children:[N.tokenUsage&&x(a2,{usage:N.tokenUsage}),F_("div",{className:"cortex-llm-inspector__tabs",children:[x("button",{className:M("cortex-llm-inspector__tab",y(N.id)==="prompt"&&"cortex-llm-inspector__tab--active"),onClick:()=>E(N.id,"prompt"),children:$("translate_request")}),x("button",{className:M("cortex-llm-inspector__tab",y(N.id)==="response"&&"cortex-llm-inspector__tab--active"),onClick:()=>E(N.id,"response"),children:$("translate_response")})]}),F_("div",{className:"cortex-llm-inspector__json-pane",children:[x($_,{className:"cortex-llm-inspector__json-copy",value:d0(O(N))}),x(N_,{data:p0(O(N)),expandDepth:2})]})]})})})]},N.id))]})})})]})}import{useState as P5}from"react";import{jsx as w,jsxs as u}from"react/jsx-runtime";function _8({usage:_,modelId:$}){let{t:Q}=H(),[Z,J]=P5(!1),Y=$1(_)??0;return u("div",{className:M("cortex-token-usage",Z&&"cortex-token-usage--expanded"),children:[u("button",{className:"cortex-token-usage__summary",onClick:()=>J((z)=>!z),children:[u("span",{className:"cortex-token-usage__total",children:[w("span",{className:"cortex-token-usage__total-number",children:j(_.total)}),w("span",{className:"cortex-token-usage__total-label",children:Q("translate_tokens")})]}),$?w("span",{className:"cortex-token-usage__model",children:$}):null,u("span",{className:"cortex-token-usage__pills",children:[u("span",{className:"cortex-token-usage__pill",children:[w("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),j(_.input.total)]}),u("span",{className:"cortex-token-usage__pill",children:[w("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),j(_.output.total)]})]}),Y>0&&u("span",{className:"cortex-token-usage__cache-badge",children:[Y,"%"]}),w("svg",{className:"cortex-token-usage__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:w("path",{d:L.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),w("div",{className:"cortex-token-usage__details",children:w("div",{className:"cortex-token-usage__details-inner",children:u("div",{className:"cortex-token-usage__columns",children:[u("div",{className:"cortex-token-usage__col",children:[u("div",{className:"cortex-token-usage__col-header",children:[w("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),w("span",{className:"cortex-token-usage__col-label",children:Q("translate_input")}),w("span",{className:"cortex-token-usage__col-total",children:j(_.input.total)})]}),u("div",{className:"cortex-token-usage__rows",children:[_.input.noCache?u("div",{className:"cortex-token-usage__row",children:[w("span",{className:"cortex-token-usage__row-label",children:Q("translate_fresh")}),w("span",{className:"cortex-token-usage__row-value",children:j(_.input.noCache)})]}):null,_.input.cacheRead?u("div",{className:"cortex-token-usage__row",children:[w("span",{className:"cortex-token-usage__row-label",children:Q("translate_cache_read")}),w("span",{className:"cortex-token-usage__row-value",children:j(_.input.cacheRead)})]}):null,_.input.cacheWrite?u("div",{className:"cortex-token-usage__row",children:[w("span",{className:"cortex-token-usage__row-label",children:Q("translate_cache_write")}),w("span",{className:"cortex-token-usage__row-value",children:j(_.input.cacheWrite)})]}):null]}),Y>0&&u("div",{className:"cortex-token-usage__cache-bar-row",children:[w("div",{className:"cortex-token-usage__cache-bar",children:w("div",{className:"cortex-token-usage__cache-fill",style:{width:`${Y}%`}})}),w("span",{className:"cortex-token-usage__cache-label",children:Q("translate_n_percent_cached",{percent:Y})})]})]}),u("div",{className:"cortex-token-usage__col",children:[u("div",{className:"cortex-token-usage__col-header",children:[w("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),w("span",{className:"cortex-token-usage__col-label",children:Q("translate_output")}),w("span",{className:"cortex-token-usage__col-total",children:j(_.output.total)})]}),u("div",{className:"cortex-token-usage__rows",children:[_.output.text?u("div",{className:"cortex-token-usage__row",children:[w("span",{className:"cortex-token-usage__row-label",children:Q("translate_text")}),w("span",{className:"cortex-token-usage__row-value",children:j(_.output.text)})]}):null,_.output.reasoning?u("div",{className:"cortex-token-usage__row",children:[w("span",{className:"cortex-token-usage__row-label",children:Q("translate_reasoning")}),w("span",{className:"cortex-token-usage__row-value",children:j(_.output.reasoning)})]}):null]})]})]})})})]})}import{jsx as $8,jsxs as L5}from"react/jsx-runtime";function Q8({messageId:_,metadata:$}){let{tokenUsage:Q}=$;return L5("div",{className:"cortex-message-debug-zone",children:[Q&&$8(_8,{usage:Q,modelId:$.modelId}),$8(e2,{messageId:_})]})}import{jsx as Q_,jsxs as J1}from"react/jsx-runtime";function Z8(_){let{reasoningPart:$,streaming:Q=!1}=_,{t:Z}=H();return J1("details",{className:"cortex-reasoning-details",children:[J1("summary",{className:"cortex-reasoning-details__summary",children:[J1("div",{className:"cortex-reasoning-details__header",children:[Q_("span",{className:"cortex-reasoning-details__icon",children:J1("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:[Q_("path",{d:L.bulb[0],stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}),Q_("path",{d:L.bulb[1],stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}),Q_("div",{className:"cortex-reasoning-details__title-group",children:J1("div",{className:"cortex-reasoning-details__title-row",children:[Q_("div",{className:"cortex-reasoning-details__title",children:Z("translate_reasoning")}),Q_("span",{className:M("cortex-reasoning-details__badge",Q?"cortex-reasoning-details__badge--streaming":"cortex-reasoning-details__badge--done"),children:Q?Z("translate_streaming"):Z("translate_done")})]})})]}),Q_("span",{className:"cortex-reasoning-details__chevron","aria-hidden":"true",children:Q_("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:Q_("path",{d:L.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),Q_("div",{className:"cortex-reasoning-details__body",children:Q_("div",{className:"cortex-reasoning-details__content",children:Q_("pre",{dir:"auto",className:"cortex-reasoning-details__pre",children:$.content.trim()?$.content:Z("translate_no_reasoning")})})})]})}import{useEffect as K8,useMemo as f5,useState as V8}from"react";import{useEffect as E5,useState as A5}from"react";import{useRef as R5,useState as O5}from"react";import{jsx as V_,jsxs as v1}from"react/jsx-runtime";function j_(_){let{label:$,ready:Q=!0,actions:Z,expanded:J,children:Y}=_,{t:z}=H(),X=R5(null),[G,K]=O5(!1);return v1("div",{className:"cortex-expandable",children:[Q&&v1("div",{className:"cortex-expandable__toolbar",role:"group","aria-label":$,children:[Z,V_("button",{type:"button",className:"cortex-expandable__action","aria-label":z("translate_expand",{name:$}),title:z("translate_expand",{name:$}),onClick:()=>{K(!0),X.current?.showModal()},children:V_("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:V_("path",{d:L.expand,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),V_("div",{className:"cortex-expandable__content",children:Y}),v1("dialog",{ref:X,className:"cortex-expandable__dialog","aria-label":$,closedby:"any",onClose:()=>K(!1),children:[v1("div",{className:"cortex-expandable__head",children:[V_("span",{className:"cortex-expandable__title",children:$}),Z,V_("button",{type:"button",className:"cortex-expandable__action","aria-label":z("translate_close"),title:z("translate_close"),onClick:()=>X.current?.close(),children:V_("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:V_("path",{d:L.close,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})})]}),G&&V_("div",{className:"cortex-expandable__body",children:J})]})]})}import{jsx as Y1,jsxs as k5}from"react/jsx-runtime";function J8(_){let{id:$,alt:Q,attachment:Z}=_,{widget:J,t:Y}=H(),[{url:z,failed:X},G]=A5({url:void 0,failed:!1});if(E5(()=>b0(J.api,$,G),[J,$]),X)return Y1("p",{className:"cortex-attachment-image__caption",children:Q?Y("translate_image_unavailable_alt",{alt:Q}):Y("translate_image_unavailable")});if(!z)return null;return k5("figure",{className:"cortex-attachment-image",children:[Y1(j_,{label:Z?.filename||Q||Y("translate_image"),expanded:Y1("img",{className:"cortex-attachment-image__expanded",src:z,alt:Q}),children:Y1("img",{src:z,alt:Q})}),Z&&Y1("figcaption",{className:"cortex-attachment-image__caption",children:Z.filename})]})}import{useEffect as y5,useRef as S5,useState as s0}from"react";import{jsx as a,jsxs as X1,Fragment as b5}from"react/jsx-runtime";function I5(_){let{t:$}=H();if(!_.pending&&!_.debugMode)return null;return X1("div",{className:"cortex-media-block__head",children:[_.debugMode&&a("span",{className:"cortex-media-block__lang",children:_.language}),_.pending&&a("span",{className:"cortex-media-block__pending",children:$(E1(_.language).pending)}),_.debugMode&&_.closed&&X1("span",{className:"cortex-media-block__actions",children:[_.onToggleSource&&a("button",{type:"button",className:"cortex-media-block__action","aria-pressed":_.sourceShown,onClick:_.onToggleSource,children:$("translate_media_source")}),a($_,{value:_.source})]})]})}function Y8(_){let{t:$}=H(),Q=I((Z)=>Z.debugMode);return a("div",{className:"cortex-media-block__body",children:X1("p",{className:"cortex-media-block__error",children:[_.cutOff?$("translate_media_cut_off"):$("translate_media_failed"),!_.cutOff&&Q&&` ${_.reason}`]})})}function X8(_){let{language:$,source:Q,closed:Z,hidden:J,onError:Y}=_,{config:z,scheme:X,locale:G}=H(),K=S5(null);return y5(()=>{Y(void 0);let V=K.current;if(!Z||!X||!V)return;return A1(V,{language:$,source:Q,context:{scheme:X,locale:G},overrides:z.mediaRenderers,onError:Y})},[$,Q,Z,X,G,z.mediaRenderers,Y]),a("div",{ref:K,hidden:J,className:M("cortex-media-block__body",`cortex-media-block__body--${$}`)})}function C5(_){let[$,Q]=s0();return X1(b5,{children:[$&&a(Y8,{cutOff:!1,reason:$}),a(X8,{language:_.language,source:_.source,closed:!0,hidden:Boolean($),onError:Q})]})}function z8(_){let{language:$,source:Q,closed:Z,streaming:J}=_,{t:Y}=H(),z=I((D)=>D.debugMode),[X,G]=s0(),[K,V]=s0(!1),W=!Z&&!J,q=W||Boolean(X);return X1("div",{className:"cortex-media-block",children:[a(I5,{language:$,source:Q,pending:!Z&&J,closed:Z,debugMode:z,sourceShown:K,onToggleSource:q?void 0:()=>V((D)=>!D)}),q&&a(Y8,{cutOff:W,reason:X}),a(j_,{label:Y(E1($).title),ready:Z&&!q,expanded:a(C5,{language:$,source:Q}),children:a(X8,{language:$,source:Q,closed:Z,hidden:q,onError:G})}),z&&(q||K)&&a("pre",{dir:"ltr",className:"cortex-media-block__source",children:Q})]})}import{useMemo as T5,useRef as v5}from"react";import{jsx as O_}from"react/jsx-runtime";function G8(_){let{t:$}=H(),Q=v5(null),Z=T5(()=>({__html:t_(_.text)}),[_.text]);return O_("div",{className:"cortex-table-block",children:O_(j_,{label:$("translate_table"),ready:_.closed,actions:O_("button",{type:"button",className:"cortex-expandable__action","aria-label":$("translate_table_export"),title:$("translate_table_export"),onClick:()=>Q.current&&C0(Q.current),children:O_("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:O_("path",{d:L.downloadTray,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),expanded:O_("div",{className:"cortex-table-block__expanded",dangerouslySetInnerHTML:Z}),children:O_("div",{ref:Q,dangerouslySetInnerHTML:Z})})})}import{jsx as g_}from"react/jsx-runtime";function W8(_){let{role:$,textPart:Q,streaming:Z=!1,attachments:J}=_,{config:Y}=H(),[z,X]=V8({text:Q.content,fading:[]}),[G]=V8(()=>new P_((W,q)=>X((B)=>B.text===W&&!B.fading.length&&!q.length?B:{text:W,fading:q})));K8(()=>G.follow(Q.content,$==="assistant"&&Z),[G,$,Z,Q]),K8(()=>()=>G.destroy(),[G]);let K=Z||z.text!==Q.content,V=f5(()=>{let W=I0(z.text,{role:$,languages:x0(Y.mediaRenderers),attachments:J,arriving:K});return W.map((q,B)=>q.kind==="markdown"?{...q,html:{__html:t_(q.text,B===W.length-1?z.fading:[])}}:q)},[$,z,Y.mediaRenderers,J,K]);return g_("div",{className:M("cortex-text-part",$==="assistant"&&"cortex-text-part--assistant",$==="user"&&"cortex-text-part--user"),children:g_("div",{className:M("cortex-text-bubble",$==="assistant"&&"cortex-text-bubble--assistant",$==="user"&&"cortex-text-bubble--user"),children:V.map((W,q)=>{switch(W.kind){case"markdown":return g_("div",{dangerouslySetInnerHTML:W.html},q);case"media":return g_(z8,{...W,streaming:K},q);case"table":return g_(G8,{text:W.text,closed:W.closed},q);case"attachment":return g_(J8,{...W},q)}})})})}import{useEffect as P8,useRef as t0,useState as L8}from"react";import{useEffect as w5,useState as j5}from"react";import{jsx as z1,jsxs as q8}from"react/jsx-runtime";function m_({activity:_,className:$}){let{t:Q}=H(),Z=s1(_),[J,Y]=j5({index:0,phase:"idle"}),z=Z.length;return w5(()=>J0(z,Y),[z]),q8("div",{className:M("cortex-subtle-activity",$),children:[q8("div",{className:"cortex-subtle-activity__dots",children:[z1("span",{className:"cortex-subtle-activity__dot"}),z1("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d1"}),z1("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d2"})]}),z1("div",{className:"cortex-subtle-activity__label-mask",children:z1("span",{className:M("cortex-subtle-activity__label",`cortex-subtle-activity__label--${J.phase}`),children:Q(Z[J.index])})})]})}import{jsx as G1,jsxs as g5}from"react/jsx-runtime";function x_({state:_,active:$}){return g5("span",{className:"cortex-tool-pill__icon","aria-hidden":"true",children:[G1("span",{className:M("cortex-tool-pill__spinner",$&&"cortex-tool-pill__spinner--visible")}),G1("svg",{className:M("cortex-tool-pill__svg cortex-tool-pill__svg--check",_==="complete"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:G1("path",{d:L.statusCheck,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),G1("svg",{className:M("cortex-tool-pill__svg",_==="error"&&"cortex-tool-pill__svg--error",(_==="error"||_==="declined")&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:G1("path",{d:L.statusCross,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]})}import{jsx as H_,jsxs as K1,Fragment as m5}from"react/jsx-runtime";function D8({toolCallPart:_,asking:$}){let{t:Q,widget:Z}=H(),J=a1(_),Y=J.title??Q(J.fallbackKey,J.fallbackParams),z=`cortex-approval-${_.id}`,X=J.decision==="pending";function G(K){Z.respondToApproval(_,K).catch(()=>{})}return K1("div",{className:M("cortex-approval-card",X&&"cortex-approval-card--asking"),children:[X?K1(m5,{children:[K1("div",{className:"cortex-approval-card__head",children:[H_("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:H_("path",{d:L.shield,stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Q("translate_approval_needed")]}),H_("p",{className:"cortex-approval-card__sentence",id:z,children:Y})]}):K1("div",{className:"cortex-approval-card__line",children:[H_(x_,{state:J.state,active:J.active}),J.decisionKey&&H_("span",{className:"cortex-approval-card__decision",children:Q(J.decisionKey)}),H_("span",{className:"cortex-approval-card__summary",children:Y})]}),X&&$&&K1("div",{className:"cortex-approval-card__foot",children:[H_("button",{type:"button",className:"cortex-approval-card__button cortex-approval-card__button--approve","aria-describedby":z,onClick:()=>G(!0),children:Q("translate_approve")}),H_("button",{type:"button",className:"cortex-approval-card__button","aria-describedby":z,onClick:()=>G(!1),children:Q("translate_deny")})]})]})}import{useEffect as B8,useRef as f1,useState as N8}from"react";import{jsx as c,jsxs as Y_}from"react/jsx-runtime";function F8({toolCallPart:_,setOutput:$}){let{t:Q}=H(),{state:Z,id:J,input:Y}=_;if(Z==="complete"||Z==="error"){let z=y0(_.output);return z?c(h5,{position:z}):Y_("div",{className:"cortex-tool-pill",children:[c(x_,{state:Z==="error"?"error":"declined",active:!1}),c("span",{className:"cortex-tool-pill__title",children:Q("translate_location_not_shared")})]})}if(Z!=="input-complete")return null;return c(x5,{center:k0(Y),submit:$},J)}function x5({center:_,submit:$}){let{t:Q}=H(),Z=f1(null),J=f1(void 0),[Y,z]=N8(P1),X=f1({center:_,submit:$});X.current={center:_,submit:$},B8(()=>{let K=Z.current;if(!K)return;let V=E0(K,{center:X.current.center,onState:z,submit:(W)=>X.current.submit(W)});return J.current=V,V.start(),()=>{if(V.dispose(),J.current===V)J.current=void 0}},[]);let G=S0(Y);return Y_("div",{className:"cortex-location-input",children:[Y_("div",{className:"cortex-location-input__map",children:[c("div",{className:"cortex-location-input__canvas",ref:Z}),c("button",{type:"button",className:"cortex-location-input__locate","aria-label":Q("translate_location_locate"),title:Q("translate_location_locate"),disabled:Y.locating||Y.submitting,onClick:()=>J.current?.locate(),children:c(u5,{})})]}),Y_("div",{className:"cortex-location-input__foot",children:[Y.position&&!Y.deliveryFailed?c("span",{className:"cortex-location-input__coords",children:L1(Y.position)}):Y_("span",{className:M("cortex-location-input__hint",G.failed&&"cortex-location-input__hint--failed"),children:[Y.locating&&c("span",{className:"cortex-location-input__spinner"}),Q(G.key)]}),Y_("span",{className:"cortex-location-input__actions",children:[c("button",{type:"button",className:"cortex-location-input__skip",disabled:Y.submitting,onClick:()=>J.current?.cancel(),children:Q("translate_location_skip")}),c("button",{type:"button",className:"cortex-location-input__send",disabled:!Y.position||Y.submitting,onClick:()=>J.current?.confirm(),children:Q("translate_location_send")})]})]})]})}function h5({position:_}){let{t:$}=H(),Q=f1(null),[Z,J]=N8(!1),{lat:Y,lng:z}=_;return B8(()=>{let X=Q.current;if(!X)return;return J(!1),A0(X,{lat:Y,lng:z},()=>J(!0))},[Y,z]),Y_("div",{className:"cortex-location-input cortex-location-input--settled",children:[Y_("div",{className:"cortex-location-input__map cortex-location-input__map--still",children:[c("div",{className:"cortex-location-input__canvas",ref:Q,hidden:Z}),Z&&c("span",{className:"cortex-location-input__still-failed",children:$("translate_location_map_failed")})]}),Y_("div",{className:"cortex-location-input__body",children:[Y_("span",{className:"cortex-location-input__title",children:[c("svg",{viewBox:"0 0 20 20",fill:"none",children:c("path",{d:L.statusCheck,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),$("translate_location_shared")]}),c("span",{className:"cortex-location-input__coords",children:L1(_)})]})]})}function u5(){return Y_("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:[c("circle",{cx:"10",cy:"10",r:"5.5"}),c("circle",{cx:"10",cy:"10",r:"1.6",fill:"currentColor",stroke:"none"}),c("path",{d:L.crosshair})]})}import{jsx as X_,jsxs as h_}from"react/jsx-runtime";function H8({toolCallPart:_}){let{t:$}=H(),Q=e1(_),Z=_.output;switch(Q?.kind){case"output":return h_("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--success",children:[h_("div",{className:"cortex-debug-tool__section-bar",children:[X_("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--success",children:$("translate_output")}),X_("span",{className:"cortex-debug-tool__section-lang",children:"json"}),X_($_,{value:Q.text})]}),X_("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:X_(N_,{data:Z,expandDepth:2})})]});case"error":return h_("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--error",children:[h_("div",{className:"cortex-debug-tool__section-bar",children:[X_("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--error",children:$("translate_error")}),X_($_,{value:Q.text})]}),X_("pre",{dir:"ltr",className:"cortex-debug-tool__error-pre",children:Q.text})]});case"approval":return h_("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[h_("div",{className:"cortex-debug-tool__section-bar",children:[X_("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:$(Q.labelKey)}),X_("span",{className:"cortex-debug-tool__section-lang",children:Q.approvalId})]}),X_("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:$(Q.messageKey)})]});default:return null}}import{jsx as c5,jsxs as p5}from"react/jsx-runtime";function U8({toolCallPart:_}){let{t:$}=H(),Q=r1(_);return p5("span",{className:M("cortex-debug-tool__state",Q.modifier&&`cortex-debug-tool__state--${Q.modifier}`),children:[Q.pulse&&c5("span",{className:M("cortex-debug-tool__pulse",Q.pulse==="violet"&&"cortex-debug-tool__pulse--violet")}),$(Q.labelKey)]})}import{jsx as p,jsxs as W_}from"react/jsx-runtime";function M8({toolCallPart:_}){let{t:$}=H(),{codeSnippets:Q,remainingInput:Z,remainingInputText:J}=o1(_.input);return W_("details",{className:"cortex-debug-tool","data-state":_.state,children:[p("summary",{className:"cortex-debug-tool__summary",children:W_("div",{className:"cortex-debug-tool__header",children:[W_("div",{className:"cortex-debug-tool__meta",children:[p("div",{className:"cortex-debug-tool__title-row",children:p("span",{className:"cortex-debug-tool__name",title:_.name,children:_.name})}),p("div",{className:"cortex-debug-tool__id-row",children:p("span",{className:"cortex-debug-tool__id",children:_.id})})]}),W_("div",{className:"cortex-debug-tool__actions",children:[p(U8,{toolCallPart:_}),p("svg",{className:"cortex-debug-tool__chevron",width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:p("path",{d:L.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),W_("div",{className:"cortex-debug-tool__body",children:[Q.map((Y)=>W_("div",{className:"cortex-debug-tool__section",children:[W_("div",{className:"cortex-debug-tool__section-bar",children:[p("span",{className:"cortex-debug-tool__section-label",children:Y.key}),p("span",{className:"cortex-debug-tool__section-lang",children:Y.lang}),p($_,{value:Y.value})]}),p("pre",{dir:"ltr",className:"cortex-debug-tool__pre",children:p("code",{className:"hljs",dangerouslySetInnerHTML:{__html:u0(Y.value,Y.lang)}})})]},Y.key)),!!Z&&W_("div",{className:"cortex-debug-tool__section",children:[W_("div",{className:"cortex-debug-tool__section-bar",children:[p("span",{className:"cortex-debug-tool__section-label",children:$("translate_input")}),p("span",{className:"cortex-debug-tool__section-lang",children:"json"}),p($_,{value:J})]}),p("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:p(N_,{data:Z,expandDepth:2})})]}),p(H8,{toolCallPart:_})]})]})}import{jsx as d,jsxs as w1}from"react/jsx-runtime";var d5={[H1]:F8};function R8({message:_,toolCallPart:$}){let{config:Q,widget:Z}=H(),J=I((W)=>W.session.isAgentWorking),Y=I((W)=>W.capabilities),z=I((W)=>W.debugMode),[X,G]=L8(!1),K=t1($,{agentWorking:J,capabilities:Y,debugMode:z,consumerTools:Q.toolComponents,builtInTools:d5,embedUnavailable:X});function V(){switch(K.kind){case"consumer":case"builtIn":return d(K.component,{toolCallPart:$,message:_,setOutput:(W)=>Z.addToolResult($.id,$.name,W)});case"embed":return d(l5,{toolCallPart:$,onUnavailable:()=>G(!0)});case"approval":return d(D8,{toolCallPart:$,asking:K.asking});case"debug":return d(M8,{toolCallPart:$});case"activity":return d(m_,{activity:K.activity});case"pill":return d(n5,{toolCallPart:$})}}return d("div",{className:"cortex-tool-call-animated",children:V()})}function l5({toolCallPart:_,onUnavailable:$}){let{t:Q,widget:Z,config:J}=H(),Y=I((W)=>W.selected?.id),[z,X]=L8({phase:"initiating"}),G=t0(void 0),K=t0({widget:Z,config:J,onUnavailable:$,toolName:_.name});if(K.current={widget:Z,config:J,onUnavailable:$,toolName:_.name},P8(()=>{if(!Y){K.current.onUnavailable();return}let W=O0({initiate:()=>K.current.widget.api.initiateToolCall(Y,_.id),onState:(q)=>{if(X(q),q.phase==="unavailable")K.current.onUnavailable()},submit:(q)=>K.current.widget.addToolResult(_.id,K.current.toolName,q),host:window,trustSameOrigin:K.current.config.trustSameOriginEmbeds});return G.current=W,W.start(),()=>{if(W.dispose(),G.current===W)G.current=void 0}},[_.id,Y]),!Y||z.phase==="unavailable")return null;let V=w1("div",{className:"cortex-client-tool-embed",children:[w1("div",{className:"cortex-client-tool-embed__bar",children:[d("span",{children:Q("translate_client_tool_title")}),d("button",{type:"button",className:"cortex-client-tool-embed__cancel",onClick:()=>G.current?.cancel(),children:Q("translate_client_tool_cancel")})]}),z.phase==="embedded"?d("iframe",{className:"cortex-client-tool-embed__frame",src:z.embedUrl,sandbox:z.sandbox,title:Q("translate_client_tool_title"),ref:(W)=>G.current?.setSource(W?.contentWindow),onLoad:(W)=>G.current?.frameLoaded(W.currentTarget)}):z.phase==="error"?w1("div",{className:"cortex-client-tool-embed__status",children:[d("span",{children:Q("translate_client_tool_failed")}),d("button",{type:"button",className:"cortex-client-tool-embed__retry",onClick:()=>void G.current?.start(),children:Q("translate_client_tool_retry")})]}):d("div",{className:"cortex-client-tool-embed__status",children:Q("translate_client_tool_loading")})]});return z.phase==="embedded"&&z.surface==="modal"?d(i5,{label:Q("translate_client_tool_title"),onCancel:()=>G.current?.cancel(),children:V}):V}function i5({label:_,onCancel:$,children:Q}){let Z=t0(null);return P8(()=>{let J=Z.current;return J?.showModal(),()=>J?.close()},[]),d("dialog",{ref:Z,className:"cortex-client-tool-embed-dialog","aria-label":_,onCancel:(J)=>{J.preventDefault(),$()},children:Q})}function n5({toolCallPart:_}){let{t:$}=H(),{state:Q,active:Z,titleKey:J,statement:Y,rows:z}=d_(_);return w1("div",{className:"cortex-tool-pill",children:[d(x_,{state:Q,active:Z}),d("span",{className:M("cortex-tool-pill__title",Q==="error"&&"cortex-tool-pill__title--error",Q==="starting"&&Y&&"cortex-tool-pill__title--pending"),children:Y??$(J)}),z!==void 0&&d("span",{className:"cortex-tool-pill__meta",children:$("translate_rows",{count:z})})]})}import{jsx as V1,jsxs as r5}from"react/jsx-runtime";function O8(_){let{message:$,part:Q,animate:Z,streaming:J,attachments:Y}=_,{t:z}=H(),X=I((K)=>K.debugMode);function G(){switch(Q.type){case"text":return V1(W8,{textPart:Q,role:$.role,streaming:J,attachments:Y});case"thinking":return X?V1(Z8,{reasoningPart:Q,streaming:J}):V1(m_,{activity:"reasoning",className:"cortex-reasoning-animated"});case"tool-call":return V1(R8,{toolCallPart:Q,message:$});default:return r5("p",{className:"cortex-unhandled-type",children:[z("translate_unhandled_type")," ",Q.type]})}}return V1("div",{className:M("cortex-message-part",Z&&"cortex-message-part--animated",_.folded&&"cortex-message-part--folded"),"data-cortex-frontier":_.frontier?"":void 0,children:G()})}import{jsx as q_,jsxs as e0}from"react/jsx-runtime";function a5({isUser:_,clipboardText:$,createdAt:Q}){let{locale:Z}=H();return e0("div",{className:M("cortex-message-actions",_&&"cortex-message-actions--user"),children:[$&&q_($_,{value:$}),Q&&q_("time",{className:"cortex-message-actions__time",dateTime:Q,children:G_(Q,Z)})]})}function s5({count:_,animate:$,onOpen:Q}){let{t:Z}=H();return q_("button",{type:"button",className:M("cortex-tool-fold",$&&"cortex-message-part--animated"),onClick:Q,children:Z("translate_more_steps",{count:_})})}function E8(_){let{message:$,layout:Q,animate:Z,fold:J,onOpenRun:Y,frontier:z}=_,{parts:X,metadata:G,actionsAfter:K}=Q,{t:V}=H(),W=$.role==="user",q=G?.attachments,B=K&&q_(a5,{isUser:W,clipboardText:n0(X),createdAt:G?.createdAt});return e0("div",{className:"cortex-message-parts",children:[X.map((D)=>{let U=J?.get(D);return e0(o5,{children:[q_(O8,{part:D,message:$,animate:Z,streaming:D===Q.streamingPart,attachments:q,frontier:D===z,folded:U?.kind==="hidden"}),U?.kind==="more"&&q_(s5,{count:U.count,animate:Z,onOpen:()=>Y(U.runId)}),D===K&&B]},$.parts.indexOf(D))}),q?.length?q_(r2,{attachments:q,isUser:W}):null,G?.isAborted&&q_(C1,{label:V("translate_aborted")}),K==="end"&&B,Q.debugStrip&&G&&q_(Q8,{messageId:$.id,metadata:G})]})}import{jsx as E_,jsxs as _4}from"react/jsx-runtime";function A8({firing:_}){let{t:$,locale:Q}=H(),Z=I((J)=>J.debugMode);return _4("div",{className:M("cortex-trigger-block",Z&&"cortex-trigger-block--debug"),children:[_4("div",{className:"cortex-trigger-block__head",children:[E_("svg",{className:"cortex-trigger-block__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:E_("path",{d:L.bolt,fill:"currentColor"})}),Z&&E_("span",{children:$("translate_trigger_fired")}),E_("span",{className:"cortex-trigger-block__name",children:_.name}),E_("time",{className:"cortex-trigger-block__time",dateTime:_.firedAt,children:G_(_.firedAt,Q)})]}),Z&&_4("details",{className:"cortex-trigger-block__payload",children:[E_("summary",{children:$("translate_trigger_payload")}),E_(N_,{data:_.payload,expandDepth:2})]})]})}import{jsx as W1}from"react/jsx-runtime";var k8=t5(function($){let{message:Q,isStreaming:Z,closesTurn:J,animate:Y,fold:z,onOpenRun:X,workingTurn:G,frontier:K}=$,V=I((q)=>q.debugMode),W=i0(Q,{debugMode:V,isStreaming:Z,fold:z,closesTurn:J});if(W.metadata?.trigger)return W1("div",{className:"cortex-message",children:W1(A8,{firing:W.metadata.trigger})});if(!W.drawsBody)return W1("div",{className:"cortex-message"});return W1("div",{className:M("cortex-message",G&&"cortex-message--working-turn"),children:W1(E8,{message:Q,layout:W,animate:Y,fold:z,onOpenRun:X,frontier:K})})});import{jsx as j1}from"react/jsx-runtime";var e5=[{role:"user",lines:[13,9]},{role:"assistant",lines:[16,18,12]},{role:"user",lines:[11]},{role:"assistant",lines:[14,15]}];function y8(){return j1("div",{className:"cortex-widget__messages-skeleton",children:e5.map((_,$)=>j1("div",{className:`cortex-widget__msg-skel cortex-widget__msg-skel--${_.role}`,children:j1("div",{className:`cortex-widget__msg-skel-bubble cortex-widget__msg-skel-bubble--${_.role}`,children:_.lines.map((Q)=>j1("div",{className:"cortex-skeleton cortex-widget__msg-skel-line",style:{width:`${Q}rem`}},Q))})},$))})}import{jsx as e,jsxs as B1,Fragment as S8}from"react/jsx-runtime";function Z3(_,$,Q){let Z=D1(null),J=D1(null),Y=D1(void 0),[z,X]=$4(!1);return q1(()=>{let G=Z.current,K=J.current;if(!_||!G||!K)return;let V=Q0(G,K);return Y.current=V,()=>{V.dispose(),Y.current=void 0}},[_]),q1(()=>Y.current?.pin(),[$]),q1(()=>Y.current?.messagesChanged(Q.at(-1)),[Q]),$3(()=>{X(!1),queueMicrotask(()=>X(!0))},[$]),{containerRef:Z,contentRef:J,animateNewParts:z}}function J3({working:_}){let $=D1(null),Q=D1(void 0);return q1(()=>{let Z=$.current;if(!Z)return;let J=Z0(Z);return Q.current=J,()=>{J.dispose(),Q.current=void 0}},[]),q1(()=>Q.current?.sync(_)),B1("div",{ref:$,className:"cortex-working-avatar","aria-hidden":"true",children:[B1("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e("path",{d:L.sparkles[0]}),e("path",{d:L.sparkles[1]})]}),e("span",{className:"cortex-working-avatar__ring"})]})}function I8(_){let{config:$,t:Q}=H(),Z=I((N)=>N.selected?.id),{messages:J,isAgentWorking:Y,isLoadingMessages:z,turnFailure:X}=I((N)=>N.session),G=I((N)=>N.debugMode),K=I((N)=>N.capabilities),V=!z||Y,W=Z3(V,Z,J),[q,B]=$4(new Set),D=_3((N)=>B((P)=>new Set(P).add(N)),[]),U=$.toolComponents,[y]=$4(l0),{rows:E,thinking:O}=Q3(()=>y(J,{agentWorking:Y,debugMode:G,opened:q,consumerTools:U,capabilities:K}),[y,J,Y,G,q,U,K]);return B1(S8,{children:[!V?e(y8,{}):e("div",{className:_.className,children:e("div",{ref:W.containerRef,className:"cortex-message-list",children:B1("div",{ref:W.contentRef,className:"cortex-message-list__content",children:[E.map((N)=>e(k8,{...N,onOpenRun:D,animate:W.animateNewParts},N.message.id)),X&&B1(S8,{children:[e(C1,{label:Q(H0(X))}),X.reason&&e("p",{className:"cortex-aborted-flag__reason",children:X.reason})]}),O&&e("div",{className:"cortex-working-thinking","data-cortex-frontier":"",children:e(m_,{activity:"reasoning"})}),e(J3,{working:Y},Z)]})})}),e(y1,{})]})}import{jsx as C8,jsxs as Y3}from"react/jsx-runtime";function b8(_){let{widget:$}=H(),Q=I((J)=>J.screen),Z=I((J)=>J.selected!==void 0);return Y3("div",{className:M("cortex-widget__screen",Q==="chat"&&"cortex-widget__screen--active",Q!=="chat"&&"cortex-widget__screen--right"),children:[_.header,Z?C8(I8,{className:"cortex-widget__messages"}):_.landing,C8("div",{className:"cortex-widget__sidebar-backdrop",onClick:$.closeHistory})]})}import{jsx as h,jsxs as A_,Fragment as X3}from"react/jsx-runtime";function T8(_){let{locale:$,t:Q}=H(),{threads:Z,deleteThread:J}=_;return h("div",{className:"cortex-widget__threads-list",children:Z===void 0?[1,2,3,4].map((Y)=>A_("div",{className:"cortex-widget__thread-skeleton",children:[h("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-icon"}),h("div",{className:"cortex-widget__thread-skeleton-lines",children:h("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-line",style:{width:`${40+Y*12}%`}})})]},Y)):A_(X3,{children:[Z.map((Y)=>{let z=Y.id===_.selectedThreadId,X=G_(Y.updatedAt,$);return A_("div",{className:M("cortex-widget__thread-item",z&&"cortex-widget__thread-item--active"),children:[h("div",{className:M("cortex-widget__thread-icon",z&&"cortex-widget__thread-icon--active"),children:h("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:h("path",{d:L.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),A_("button",{type:"button",onClick:()=>_.openThread(Y),className:"cortex-widget__thread-info",children:[A_("div",{className:"cortex-widget__thread-title-row",children:[h("p",{dir:"auto",className:M("cortex-widget__thread-title",z&&"cortex-widget__thread-title--active"),children:Y.title??Q("translate_untitled")}),Y.isRunning&&A_("span",{className:M("cortex-widget__thread-running",z&&"cortex-widget__thread-running--active"),children:[h("span",{className:"cortex-widget__thread-running-dot"}),Q("translate_running")]})]}),X&&h("p",{className:"cortex-widget__thread-time",children:X})]}),J&&h("button",{type:"button","aria-label":Q("translate_delete_conversation"),onClick:()=>J(Y.id),className:M("cortex-widget__thread-delete",z&&"cortex-widget__thread-delete--active"),children:h("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:h("path",{d:L.close,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),h("svg",{className:M("cortex-widget__thread-arrow",z&&"cortex-widget__thread-arrow--active"),width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:h("path",{d:L.chevronRight,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},Y.id)}),!Z.length&&A_("div",{className:"cortex-widget__threads-empty",children:[h("div",{className:"cortex-widget__threads-empty-icon",children:h("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__threads-empty-svg",children:h("path",{d:L.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),h("p",{className:"cortex-widget__threads-empty-title",children:Q("translate_no_threads_yet")}),h("p",{className:"cortex-widget__threads-empty-subtitle",children:Q("translate_start_a_new_conversation")}),_.newChat&&h("button",{onClick:_.newChat,className:"cortex-widget__new-chat-btn cortex-widget__new-chat-btn--empty-state",children:Q("translate_new_chat")})]})]})})}import{jsx as z3,jsxs as f8}from"react/jsx-runtime";function v8(_){_.preventDefault()}function w8(_){let{locale:$}=H(),Q=I((J)=>J.screen),Z=I((J)=>J.sidebarOpen);return z3("div",{className:M("cortex-widget",_.className),"data-cortex-theme":_.theme,dir:q4[$],children:f8("div",{className:M("cortex-widget__container",_.viewMode==="full"&&"cortex-widget__container--full",Z&&"cortex-widget__container--sidebar-open"),onDragOver:v8,onDrop:v8,children:[f8("div",{className:M("cortex-widget__screen",Q==="threads"&&"cortex-widget__screen--active",Q!=="threads"&&"cortex-widget__screen--left"),children:[_.header,_.threadList]}),_.children]})})}import{jsx as D_}from"react/jsx-runtime";var V3={header:p2,landing:l2,threadList:T8};function Q4(_,$){return _?.[$]??V3[$]}function W3({config:_,className:$,slots:Q}){let{widget:Z,parts:J}=w2(_),[Y,z]=K3();G3(()=>h0(_.theme,z),[_.theme]);let X=I_(_.locale),G=j8(()=>({config:_,locale:X,t:(V,W)=>__(X,V,W),scheme:Y,widget:Z}),[_,X,Y,Z]),K=j8(()=>{let V=R0(Z,J,_,D_("div",{className:"cortex-widget__landing-composer",children:D_(y1,{})})),W=Q4(Q,"header"),q=Q4(Q,"landing"),B=Q4(Q,"threadList");return{threadsHeader:D_(W,{...V.threadsHeader}),threadList:D_(B,{...V.threadList}),chatHeader:D_(W,{...V.chatHeader}),landing:D_(q,{...V.landing})}},[Z,J,_,Q]);return D_(r0.Provider,{value:G,children:D_(w8,{className:$,theme:_.theme,viewMode:_.viewMode??"helper",header:K.threadsHeader,threadList:K.threadList,children:D_(b8,{header:K.chatHeader,landing:K.landing})})})}export{W3 as CortexChatWidget};
192
+ `)}var v={alert:"M8 4.75v4M8 10.75v.5",alertSmall:"M6 1.5v5M6 8.75v.5",arrowRight:"M3 8h10M9 4l4 4-4 4",bolt:"M6.75 1 2.5 6.75h3l-.25 4.25L9.5 5.25h-3z",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",bulb:["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","M7.5 17.5h5M8.5 8a2 2 0 0 1 2-2"],check:"M5 13l4 4L19 7",chevronDown:"M3 4.5L6 7.5L9 4.5",chevronDownLarge:"m5.75 8.25 4.25 4.25 4.25-4.25",chevronLeft:"M10 3L5 8l5 5",chevronRight:"M6 4l4 4-4 4",clockHands:"M8 5v3l2 1.5",close:"M4 4l8 8M12 4l-8 8",closeSmall:"M4.5 4.5l7 7m0-7l-7 7",copy:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",crosshair:"M10 1.5v3M10 15.5v3M1.5 10h3M15.5 10h3",download:"M8 3v7m0 0L5.5 7.5M8 10l2.5-2.5M3 13h10",downloadTray:"M8 2.5v7.5M5 7l3 3 3-3M2.75 11v1.25a1.25 1.25 0 0 0 1.25 1.25h8a1.25 1.25 0 0 0 1.25-1.25V11",expand:"M9.5 2.5h4v4M6.5 13.5h-4v-4M13.5 2.5 9 7M2.5 13.5 7 9",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"],menu:"M2.5 4h11M2.5 8h11M2.5 12h11",paperclip:"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",plus:"M8 3v10M3 8h10",search:"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",shield:"M8 1.75 2.75 3.75v4c0 3 2.2 5.3 5.25 6.5 3.05-1.2 5.25-3.5 5.25-6.5v-4L8 1.75Z",sparkles:["M9.94 15.5a2 2 0 0 0-1.44-1.44l-6.13-1.58a.5.5 0 0 1 0-.96L8.5 9.94A2 2 0 0 0 9.94 8.5l1.58-6.14a.5.5 0 0 1 .96 0l1.58 6.14a2 2 0 0 0 1.44 1.44l6.14 1.58a.5.5 0 0 1 0 .96l-6.14 1.58a2 2 0 0 0-1.44 1.44l-1.58 6.14a.5.5 0 0 1-.96 0z","M20 3v4M22 5h-4M4 17v2M5 18H3"],spinnerArc:"M14 8a6 6 0 0 0-6-6",statusCheck:"M5.5 10.5 L8.5 13.5 L14.5 7",statusCross:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5"};function et(e){if(e.input.total<=0)return null;return Math.round(e.input.cacheRead/e.input.total*100)}function F(e){return e.toLocaleString("en-US")}import{createContext as Ji,useContext as Xi,useSyncExternalStore as Zi}from"react";var Kn=Ji(void 0);function h(){let e=Xi(Kn);if(!e)throw Error("useCortex must be used inside <CortexChatWidget>");return e}function L(e){let{widget:t}=h(),n=()=>e(t.getState());return Zi(t.subscribe,n,n)}import{useEffect as Yi,useRef as Qi,useState as el,useSyncExternalStore as tl}from"react";function Po(e){let t=Qi(e);t.current=e;let[n]=el(()=>vn({getConfig:()=>t.current}));Yi(()=>(n.start(),n.stop),[n]);let r=()=>n.getState().parts,o=tl(n.subscribe,r,r);return{widget:n,parts:o}}import{useEffect as sl,useLayoutEffect as Wo,useRef as Xn,useState as il,useSyncExternalStore as ll}from"react";function y(...e){return e.filter(Boolean).join(" ")}import{jsx as Q,jsxs as tt}from"react/jsx-runtime";function Fo(){let{widget:e,t,locale:n}=h(),r=L((o)=>o.attachments);if(!r.length)return null;return Q("div",{className:"cortex-attachment-queue",children:r.map((o)=>tt("div",{className:y("cortex-attachment-chip",o.status==="error"&&"cortex-attachment-chip--error"),children:[o.status==="uploading"||o.status==="deleting"?tt("svg",{className:"cortex-attachment-chip__spinner",viewBox:"0 0 16 16",fill:"none",children:[Q("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",className:"cortex-attachment-chip__spinner-track"}),Q("path",{d:v.spinnerArc,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):o.status==="error"?tt("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[Q("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.25"}),Q("path",{d:v.alert,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]}):tt("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[Q("path",{d:v.file[0],stroke:"currentColor",strokeWidth:"1.25"}),Q("path",{d:v.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),tt("span",{className:"cortex-attachment-chip__text",children:[Q("span",{className:"cortex-attachment-chip__name",children:Q("bdi",{children:o.filename})}),o.status==="error"&&Q("span",{className:"cortex-attachment-chip__reason",children:_n(o,n)})]}),Q("button",{type:"button",onClick:()=>e.removeAttachment(o.localId),className:"cortex-attachment-chip__remove",disabled:o.status==="deleting","aria-label":t("translate_remove_attachment"),children:Q("svg",{viewBox:"0 0 16 16",fill:"none",children:Q("path",{d:v.closeSmall,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},o.localId))})}import{useRef as nl}from"react";import{jsx as Te,jsxs as Ho,Fragment as ol}from"react/jsx-runtime";var rl=Be.join(",");function Do({attachmentsEnabled:e,canSend:t,onSend:n}){let{t:r,widget:o}=h(),a=nl(null);return Ho("div",{className:"cortex-widget__input-actions",children:[e&&Ho(ol,{children:[Te("button",{type:"button",onClick:()=>a.current?.click(),className:"cortex-widget__attach-btn","aria-label":r("translate_attach_files"),children:Te("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:Te("path",{d:v.paperclip,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),Te("input",{ref:a,type:"file",multiple:!0,accept:rl,onChange:(i)=>{o.attachFiles([...i.target.files??[]]),i.target.value=""},className:"cortex-widget__file-input"})]}),Te("button",{onClick:n,"aria-label":r("translate_send"),className:y("cortex-widget__send-btn",!t&&"cortex-widget__send-btn--empty",t&&"cortex-widget__send-btn--ready"),disabled:!t,children:Te("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__send-icon",children:Te("path",{d:v.arrowRight,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}import{jsx as al}from"react/jsx-runtime";function Uo(e){let{t}=h();return al("textarea",{ref:e.inputRef,onPaste:e.onPaste,value:e.value,onChange:(n)=>e.onChange(n.target.value),placeholder:e.dragging?t("translate_drop_files_here"):e.disabled?"":t("translate_type_a_message"),disabled:e.disabled,rows:1,className:y("cortex-widget__textarea",e.disabled&&"cortex-widget__textarea--disabled")})}import{jsx as Le,jsxs as Jn}from"react/jsx-runtime";function cl(e,t){let n=Xn(null),r=Xn(void 0);return Wo(()=>{if(!n.current)return;let o=on(n.current,e);return r.current=o,o.dispose},[e]),Wo(()=>r.current?.fit(),[t]),{messageInput:n,input:r}}function Bo(){let{t:e,widget:t}=h(),n=ll(t.subscribe,t.getDraft,t.getDraft),r=L((f)=>f.session.isAgentWorking),o=L((f)=>f.session.isAgentWorking||f.creating),a=L((f)=>f.capabilities?.attachments??!1),i=L((f)=>Je(f,n)),[s,l]=il(!1),c=an({enabled:a,accept:t.attachFiles,setDragging:l}),{messageInput:d,input:u}=cl(t,n),p=Xn(o);return sl(()=>{if(p.current&&!o)d.current?.focus();p.current=o},[o,d]),Jn("div",{className:"cortex-widget__input-area",onDragOver:c.onDragOver,onDragLeave:c.onDragLeave,onDrop:c.onDrop,children:[Le(Fo,{}),Jn("div",{className:y("cortex-widget__input-box",o&&"cortex-widget__input-box--disabled",!o&&"cortex-widget__input-box--enabled",s&&"cortex-widget__input-box--dragging"),children:[Le(Uo,{inputRef:d,value:n,onChange:t.setDraft,onPaste:c.onPaste,disabled:o,dragging:s}),r?Jn("button",{type:"button","aria-label":e("translate_stop"),onClick:()=>void t.abort(),className:"cortex-stop-btn",children:[Le("span",{className:"cortex-stop-btn__ring"}),Le("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"cortex-stop-btn__icon",children:Le("rect",{x:"1",y:"1",width:"10",height:"10",rx:"2.5",fill:"currentColor"})})]}):Le(Do,{attachmentsEnabled:a,canSend:i,onSend:()=>u.current?.send()})]})]})}import{jsx as $o,jsxs as dl}from"react/jsx-runtime";function St(){let{t:e,widget:t}=h(),n=L(bn),r=L((o)=>o.unanswered==="unverified");if(n==="composer")return $o(Bo,{});if(!n)return null;return dl("p",{className:"cortex-widget__messages-disabled",children:[e(n),r?$o("button",{type:"button",className:"cortex-widget__retry",onClick:t.retry,children:e("translate_client_tool_retry")}):null]})}import{jsx as K,jsxs as Mt}from"react/jsx-runtime";function jo(e){let{t}=h(),n=e.newChat&&K("button",{type:"button",onClick:e.newChat,"aria-label":t("translate_new_chat"),title:t("translate_new_chat"),className:"cortex-widget__header-btn cortex-widget__new-btn",children:K("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:K("path",{d:v.plus,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})});if(e.screen==="threads")return Mt("div",{className:"cortex-widget__threads-header",children:[K("button",{type:"button",onClick:e.closeHistory,"aria-label":t("translate_back"),className:"cortex-widget__header-btn cortex-widget__back-btn",children:K("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"cortex-widget__back-icon",children:K("path",{d:v.chevronLeft,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),Mt("div",{children:[K("h2",{className:"cortex-widget__threads-title",children:t("translate_history")}),e.threadCount!==void 0&&K("p",{className:"cortex-widget__threads-count",children:t("translate_conversations",{count:e.threadCount})})]}),n]});return Mt("div",{className:"cortex-widget__chat-header",children:[K("button",{onClick:e.openHistory,className:"cortex-widget__sidebar-toggle-btn",children:K("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:K("path",{d:v.menu,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),K("div",{className:"cortex-widget__chat-title-wrap",children:K("p",{className:"cortex-widget__chat-title",children:e.title})}),e.debug.shown&&K("button",{onClick:e.toggleDebug,className:y("cortex-widget__debug-btn",e.debug.on?"cortex-widget__debug-btn--on":"cortex-widget__debug-btn--off"),children:e.debug.on?t("translate_debug"):t("translate_normal")}),n,K("button",{type:"button",onClick:e.openHistory,"aria-label":t("translate_history"),title:t("translate_history"),className:"cortex-widget__header-btn cortex-widget__history-btn",children:Mt("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[K("circle",{cx:"8",cy:"8",r:"5.75",stroke:"currentColor",strokeWidth:"1.3"}),K("path",{d:v.clockHands,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})}import{jsx as de,jsxs as zo}from"react/jsx-runtime";function qo(e){let{locale:t,t:n}=h();return zo("div",{className:"cortex-widget__landing",children:[de("div",{className:"cortex-widget__landing-icon",children:de("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",children:de("path",{d:v.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),de("p",{className:"cortex-widget__landing-greeting",children:e.greeting}),!!e.suggestions.length&&de("div",{className:"cortex-widget__landing-chips",children:e.suggestions.map((r,o)=>de("button",{type:"button",onClick:()=>e.send(r.prompt),className:"cortex-widget__landing-chip",children:r.title},o))}),e.composer,!!e.threads?.length&&de("div",{className:"cortex-widget__landing-recent",children:e.threads.slice(0,2).map((r)=>{let o=ce(r.updatedAt,t);return zo("button",{type:"button",onClick:()=>e.openThread(r),className:"cortex-widget__landing-recent-item",children:[de("p",{className:"cortex-widget__landing-recent-title",children:r.title??n("translate_untitled")}),o&&de("p",{className:"cortex-widget__landing-recent-time",children:o})]},r.id)})})]})}import{useCallback as Xl,useEffect as Zl,useLayoutEffect as ut,useMemo as Yl,useRef as pt,useState as tr}from"react";import{memo as Kl}from"react";import{Fragment as ql}from"react";import{useRef as ul,useState as pl}from"react";import{jsx as Ae,jsxs as ml}from"react/jsx-runtime";function ne({value:e,className:t}){let{t:n}=h(),[r,o]=pl(!1),a=ul(null);async function i(s){s.stopPropagation(),s.preventDefault();try{if(await navigator.clipboard.writeText(e),o(!0),a.current)clearTimeout(a.current);a.current=setTimeout(()=>o(!1),1500)}catch{}}return Ae("span",{className:y("cortex-copy-btn",t),children:Ae("button",{className:y("cortex-copy-btn__button",r&&"cortex-copy-btn__button--copied"),onClick:(s)=>void i(s),"aria-label":r?n("translate_copied"):n("translate_copy"),type:"button",children:r?Ae("svg",{className:"cortex-copy-btn__icon cortex-copy-btn__icon--check",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:Ae("path",{d:v.check,stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):ml("svg",{className:"cortex-copy-btn__icon",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:[Ae("rect",{x:"9",y:"9",width:"12",height:"12",rx:"2",stroke:"currentColor",strokeWidth:"2"}),Ae("path",{d:v.copy,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})})})}import{jsx as Nt,jsxs as Vo}from"react/jsx-runtime";function Lt({label:e}){return Vo("div",{className:"cortex-aborted-flag",children:[Nt("span",{className:"cortex-aborted-flag__line"}),Vo("span",{className:"cortex-aborted-flag__label",children:[Nt("svg",{className:"cortex-aborted-flag__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:Nt("path",{d:v.alertSmall,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),e]}),Nt("span",{className:"cortex-aborted-flag__line"})]})}import{jsx as Ee,jsxs as Go}from"react/jsx-runtime";function Ko(e){let{widget:t,t:n}=h();return Ee("div",{className:y("cortex-message-attachments",e.isUser&&"cortex-message-attachments--user"),children:e.attachments.map((r)=>Go("button",{type:"button",onClick:()=>void Rn(t.api,r.id),className:"cortex-message-attachment","aria-label":`${n("translate_download")}: ${r.filename}`,children:[Go("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__icon",fill:"none",children:[Ee("path",{d:v.file[0],stroke:"currentColor",strokeWidth:"1.25"}),Ee("path",{d:v.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),Ee("span",{className:"cortex-message-attachment__name",children:r.filename}),Ee("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__dl-icon",fill:"none",children:Ee("path",{d:v.download,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},r.id))})}import{useState as nt}from"react";import{useMemo as fl,useState as gl}from"react";import{jsx as ee,jsxs as we,Fragment as At}from"react/jsx-runtime";function _e({data:e,expandDepth:t,className:n}){let r=fl(()=>Ne(e),[e]),[o,a]=gl({});function i(l,c){return o[l]??c>=t}function s(l,c){a((d)=>({...d,[l]:!i(l,c)}))}return ee("div",{className:y("cortex-json-tree",n),children:ee(Jo,{value:r,path:"$",depth:0,isCollapsed:i,toggle:s})})}function Jo({value:e,path:t,depth:n,isCollapsed:r,toggle:o}){let a=$n(e,t);if(a.kind==="primitive")return ee("span",{className:a.className,children:a.text});if(a.entries.length===0)return we("span",{className:"cortex-json-tree__bracket",children:[a.open,a.close]});let i=r(t,n);function s(l){o(t,n),l.stopPropagation()}return we(At,{children:[we("span",{className:"cortex-json-tree__toggle",onClick:s,role:"button",children:[ee("span",{className:y("cortex-json-tree__arrow",i&&"cortex-json-tree__arrow--collapsed"),children:"▾"}),ee("span",{className:"cortex-json-tree__bracket",children:a.open})]}),i?we(At,{children:[ee("span",{className:"cortex-json-tree__collapsed-hint",onClick:s,role:"button",children:a.summary}),ee("span",{className:"cortex-json-tree__bracket",children:a.close})]}):we(At,{children:[ee("div",{className:"cortex-json-tree__indent",children:a.entries.map((l,c)=>we("div",{className:"cortex-json-tree__line",children:[l.key!==null&&we(At,{children:[ee("span",{className:"cortex-json-tree__key",children:`"${l.key}"`}),ee("span",{className:"cortex-json-tree__colon",children:": "})]}),ee(Jo,{value:l.value,path:l.path,depth:n+1,isCollapsed:r,toggle:o}),c<a.entries.length-1&&ee("span",{className:"cortex-json-tree__comma",children:","})]},l.path))}),ee("span",{className:"cortex-json-tree__bracket",children:a.close})]})]})}import{jsx as Re,jsxs as Ie}from"react/jsx-runtime";function Xo({usage:e}){let{t}=h();return Ie("div",{className:"cortex-llm-inspector__usage-rows",children:[Ie("div",{className:"cortex-llm-inspector__usage-row",children:[Re("span",{className:"cortex-llm-inspector__usage-lbl",children:t("translate_input")}),Re("span",{className:"cortex-llm-inspector__usage-val",children:F(e.input.total)}),Ie("span",{className:"cortex-llm-inspector__usage-detail",children:[t("translate_fresh")," ",F(e.input.noCache)," · ",t("translate_read")," ",F(e.input.cacheRead)," · ",t("translate_write")," ",F(e.input.cacheWrite)]})]}),Ie("div",{className:"cortex-llm-inspector__usage-row",children:[Re("span",{className:"cortex-llm-inspector__usage-lbl",children:t("translate_output")}),Re("span",{className:"cortex-llm-inspector__usage-val",children:F(e.output.total)}),Ie("span",{className:"cortex-llm-inspector__usage-detail",children:[t("translate_text")," ",F(e.output.text)," · ",t("translate_reasoning")," ",F(e.output.reasoning)]})]}),Ie("div",{className:"cortex-llm-inspector__usage-row cortex-llm-inspector__usage-row--total",children:[Re("span",{className:"cortex-llm-inspector__usage-lbl",children:t("translate_total")}),Re("span",{className:"cortex-llm-inspector__usage-val",children:F(e.total)})]})]})}import{jsx as Zo,jsxs as Et}from"react/jsx-runtime";function Yo({usage:e}){let t=et(e);return Et("span",{className:"cortex-llm-inspector__step-metrics",children:[Et("span",{className:"cortex-llm-inspector__metric",children:[Zo("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--input"}),F(e.input.total)]}),Et("span",{className:"cortex-llm-inspector__metric",children:[Zo("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--output"}),F(e.output.total)]}),t!==null&&Et("span",{className:"cortex-llm-inspector__cache-pct",children:[t,"%"]})]})}import{jsx as U,jsxs as he}from"react/jsx-runtime";function Qo({messageId:e}){let{t,widget:n}=h(),r=L((g)=>g.selected?.id),[o,a]=nt(!1),[i,s]=nt("idle"),[l,c]=nt([]),[d,u]=nt(null),[p,f]=nt({});async function m(){if(!o&&i!=="loaded"&&r){s("loading");try{c(await n.api.listLlmRequests(r,e)),s("loaded")}catch{s("failed")}}a((g)=>!g)}function x(g){u((b)=>b===g?null:g)}function M(g){return p[g]??"prompt"}function C(g,b){f((k)=>({...k,[g]:b}))}function w(g){return M(g.id)==="prompt"?g.prompt:g.output}return he("div",{className:y("cortex-llm-inspector",o&&"cortex-llm-inspector--open"),children:[he("button",{className:"cortex-llm-inspector__trigger",onClick:()=>void m(),children:[U("svg",{className:"cortex-llm-inspector__icon",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:U("path",{d:v.search,fill:"currentColor"})}),U("span",{children:t("translate_inspect_llm_requests")}),i==="loading"?U("span",{className:"cortex-llm-inspector__loading",children:t("translate_loading")}):l.length>0?U("span",{className:"cortex-llm-inspector__badge",children:l.length}):null,U("svg",{className:"cortex-llm-inspector__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:U("path",{d:v.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),U("div",{className:"cortex-llm-inspector__panel-wrapper",children:U("div",{className:"cortex-llm-inspector__panel-inner",children:he("div",{className:"cortex-llm-inspector__panel",children:[l.length===0&&i!=="loading"&&U("div",{className:"cortex-llm-inspector__empty",children:t(i==="failed"?"translate_error":"translate_no_llm_requests")}),l.map((g,b)=>he("div",{className:y("cortex-llm-inspector__step",d===g.id&&"cortex-llm-inspector__step--expanded"),children:[he("button",{className:"cortex-llm-inspector__step-header",onClick:()=>x(g.id),children:[U("span",{className:"cortex-llm-inspector__step-label",children:t("translate_step_n",{number:b+1})}),g.tokenUsage&&U(Yo,{usage:g.tokenUsage}),U("svg",{className:"cortex-llm-inspector__step-chevron",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:U("path",{d:v.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),U("div",{className:"cortex-llm-inspector__step-body-wrapper",children:U("div",{className:"cortex-llm-inspector__step-body-inner",children:he("div",{className:"cortex-llm-inspector__step-body",children:[g.tokenUsage&&U(Xo,{usage:g.tokenUsage}),he("div",{className:"cortex-llm-inspector__tabs",children:[U("button",{className:y("cortex-llm-inspector__tab",M(g.id)==="prompt"&&"cortex-llm-inspector__tab--active"),onClick:()=>C(g.id,"prompt"),children:t("translate_request")}),U("button",{className:y("cortex-llm-inspector__tab",M(g.id)==="response"&&"cortex-llm-inspector__tab--active"),onClick:()=>C(g.id,"response"),children:t("translate_response")})]}),he("div",{className:"cortex-llm-inspector__json-pane",children:[U(ne,{className:"cortex-llm-inspector__json-copy",value:zn(w(g))}),U(_e,{data:jn(w(g)),expandDepth:2})]})]})})})]},g.id))]})})})]})}import{useState as _l}from"react";import{jsx as P,jsxs as B}from"react/jsx-runtime";function ea({usage:e,modelId:t}){let{t:n}=h(),[r,o]=_l(!1),a=et(e)??0;return B("div",{className:y("cortex-token-usage",r&&"cortex-token-usage--expanded"),children:[B("button",{className:"cortex-token-usage__summary",onClick:()=>o((i)=>!i),children:[B("span",{className:"cortex-token-usage__total",children:[P("span",{className:"cortex-token-usage__total-number",children:F(e.total)}),P("span",{className:"cortex-token-usage__total-label",children:n("translate_tokens")})]}),t?P("span",{className:"cortex-token-usage__model",children:t}):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"}),F(e.input.total)]}),B("span",{className:"cortex-token-usage__pill",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),F(e.output.total)]})]}),a>0&&B("span",{className:"cortex-token-usage__cache-badge",children:[a,"%"]}),P("svg",{className:"cortex-token-usage__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:P("path",{d:v.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:n("translate_input")}),P("span",{className:"cortex-token-usage__col-total",children:F(e.input.total)})]}),B("div",{className:"cortex-token-usage__rows",children:[e.input.noCache?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_fresh")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.input.noCache)})]}):null,e.input.cacheRead?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_cache_read")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.input.cacheRead)})]}):null,e.input.cacheWrite?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_cache_write")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.input.cacheWrite)})]}):null]}),a>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:`${a}%`}})}),P("span",{className:"cortex-token-usage__cache-label",children:n("translate_n_percent_cached",{percent:a})})]})]}),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:n("translate_output")}),P("span",{className:"cortex-token-usage__col-total",children:F(e.output.total)})]}),B("div",{className:"cortex-token-usage__rows",children:[e.output.text?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_text")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.output.text)})]}):null,e.output.reasoning?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_reasoning")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.output.reasoning)})]}):null]})]})]})})})]})}import{jsx as ta,jsxs as hl}from"react/jsx-runtime";function na({messageId:e,metadata:t}){let{tokenUsage:n}=t;return hl("div",{className:"cortex-message-debug-zone",children:[n&&ta(ea,{usage:n,modelId:t.modelId}),ta(Qo,{messageId:e})]})}import{jsx as re,jsxs as rt}from"react/jsx-runtime";function ra(e){let{reasoningPart:t,streaming:n=!1}=e,{t:r}=h();return rt("details",{className:"cortex-reasoning-details",children:[rt("summary",{className:"cortex-reasoning-details__summary",children:[rt("div",{className:"cortex-reasoning-details__header",children:[re("span",{className:"cortex-reasoning-details__icon",children:rt("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:[re("path",{d:v.bulb[0],stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}),re("path",{d:v.bulb[1],stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}),re("div",{className:"cortex-reasoning-details__title-group",children:rt("div",{className:"cortex-reasoning-details__title-row",children:[re("div",{className:"cortex-reasoning-details__title",children:r("translate_reasoning")}),re("span",{className:y("cortex-reasoning-details__badge",n?"cortex-reasoning-details__badge--streaming":"cortex-reasoning-details__badge--done"),children:n?r("translate_streaming"):r("translate_done")})]})})]}),re("span",{className:"cortex-reasoning-details__chevron","aria-hidden":"true",children:re("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:re("path",{d:v.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),re("div",{className:"cortex-reasoning-details__body",children:re("div",{className:"cortex-reasoning-details__content",children:re("pre",{dir:"auto",className:"cortex-reasoning-details__pre",children:t.content.trim()?t.content:r("translate_no_reasoning")})})})]})}import{useEffect as ca,useMemo as Al,useState as da}from"react";import{useEffect as bl,useState as vl}from"react";import{useRef as xl,useState as yl}from"react";import{jsx as ue,jsxs as Rt}from"react/jsx-runtime";function Oe(e){let{label:t,ready:n=!0,actions:r,expanded:o,children:a}=e,{t:i}=h(),s=xl(null),[l,c]=yl(!1);return Rt("div",{className:"cortex-expandable",children:[n&&Rt("div",{className:"cortex-expandable__toolbar",role:"group","aria-label":t,children:[r,ue("button",{type:"button",className:"cortex-expandable__action","aria-label":i("translate_expand",{name:t}),title:i("translate_expand",{name:t}),onClick:()=>{c(!0),s.current?.showModal()},children:ue("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:ue("path",{d:v.expand,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),ue("div",{className:"cortex-expandable__content",children:a}),Rt("dialog",{ref:s,className:"cortex-expandable__dialog","aria-label":t,closedby:"any",onClose:()=>c(!1),children:[Rt("div",{className:"cortex-expandable__head",children:[ue("span",{className:"cortex-expandable__title",children:t}),r,ue("button",{type:"button",className:"cortex-expandable__action","aria-label":i("translate_close"),title:i("translate_close"),onClick:()=>s.current?.close(),children:ue("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:ue("path",{d:v.close,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})})]}),l&&ue("div",{className:"cortex-expandable__body",children:o})]})]})}import{jsx as ot,jsxs as Tl}from"react/jsx-runtime";function oa(e){let{id:t,alt:n,attachment:r}=e,{widget:o,t:a}=h(),[{url:i,failed:s},l]=vl({url:void 0,failed:!1});if(bl(()=>En(o.api,t,l),[o,t]),s)return ot("p",{className:"cortex-attachment-image__caption",children:n?a("translate_image_unavailable_alt",{alt:n}):a("translate_image_unavailable")});if(!i)return null;return Tl("figure",{className:"cortex-attachment-image",children:[ot(Oe,{label:r?.filename||n||a("translate_image"),expanded:ot("img",{className:"cortex-attachment-image__expanded",src:i,alt:n}),children:ot("img",{src:i,alt:n})}),r&&ot("figcaption",{className:"cortex-attachment-image__caption",children:r.filename})]})}import{useEffect as wl,useRef as Cl,useState as Zn}from"react";import{jsx as Z,jsxs as at,Fragment as Ml}from"react/jsx-runtime";function kl(e){let{t}=h();if(!e.pending&&!e.debugMode)return null;return at("div",{className:"cortex-media-block__head",children:[e.debugMode&&Z("span",{className:"cortex-media-block__lang",children:e.language}),e.pending&&Z("span",{className:"cortex-media-block__pending",children:t(wt(e.language).pending)}),e.debugMode&&e.closed&&at("span",{className:"cortex-media-block__actions",children:[e.onToggleSource&&Z("button",{type:"button",className:"cortex-media-block__action","aria-pressed":e.sourceShown,onClick:e.onToggleSource,children:t("translate_media_source")}),Z(ne,{value:e.source})]})]})}function aa(e){let{t}=h(),n=L((r)=>r.debugMode);return Z("div",{className:"cortex-media-block__body",children:at("p",{className:"cortex-media-block__error",children:[e.cutOff?t("translate_media_cut_off"):t("translate_media_failed"),!e.cutOff&&n&&` ${e.reason}`]})})}function sa(e){let{language:t,source:n,closed:r,hidden:o,onError:a}=e,{config:i,scheme:s,locale:l}=h(),c=Cl(null);return wl(()=>{a(void 0);let d=c.current;if(!r||!s||!d)return;return Ct(d,{language:t,source:n,context:{scheme:s,locale:l},overrides:i.mediaRenderers,onError:a})},[t,n,r,s,l,i.mediaRenderers,a]),Z("div",{ref:c,hidden:o,className:y("cortex-media-block__body",`cortex-media-block__body--${t}`)})}function Sl(e){let[t,n]=Zn();return at(Ml,{children:[t&&Z(aa,{cutOff:!1,reason:t}),Z(sa,{language:e.language,source:e.source,closed:!0,hidden:Boolean(t),onError:n})]})}function ia(e){let{language:t,source:n,closed:r,streaming:o}=e,{t:a}=h(),i=L((m)=>m.debugMode),[s,l]=Zn(),[c,d]=Zn(!1),u=!r&&!o,p=u||Boolean(s);return at("div",{className:"cortex-media-block",children:[Z(kl,{language:t,source:n,pending:!r&&o,closed:r,debugMode:i,sourceShown:c,onToggleSource:p?void 0:()=>d((m)=>!m)}),p&&Z(aa,{cutOff:u,reason:s}),Z(Oe,{label:a(wt(t).title),ready:r&&!p,expanded:Z(Sl,{language:t,source:n}),children:Z(sa,{language:t,source:n,closed:r,hidden:p,onError:l})}),i&&(p||c)&&Z("pre",{dir:"ltr",className:"cortex-media-block__source",children:n})]})}import{useMemo as Nl,useRef as Ll}from"react";import{jsx as Ce}from"react/jsx-runtime";function la(e){let{t}=h(),n=Ll(null),r=Nl(()=>({__html:Ze(e.text)}),[e.text]);return Ce("div",{className:"cortex-table-block",children:Ce(Oe,{label:t("translate_table"),ready:e.closed,actions:Ce("button",{type:"button",className:"cortex-expandable__action","aria-label":t("translate_table_export"),title:t("translate_table_export"),onClick:()=>n.current&&An(n.current),children:Ce("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:Ce("path",{d:v.downloadTray,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),expanded:Ce("div",{className:"cortex-table-block__expanded",dangerouslySetInnerHTML:r}),children:Ce("div",{ref:n,dangerouslySetInnerHTML:r})})})}import{jsx as Pe}from"react/jsx-runtime";function ua(e){let{role:t,textPart:n,streaming:r=!1,attachments:o}=e,{config:a}=h(),[i,s]=da({text:n.content,fading:[]}),[l]=da(()=>new ve((u,p)=>s((f)=>f.text===u&&!f.fading.length&&!p.length?f:{text:u,fading:p})));ca(()=>l.follow(n.content,t==="assistant"&&r),[l,t,r,n]),ca(()=>()=>l.destroy(),[l]);let c=r||i.text!==n.content,d=Al(()=>{let u=Ln(i.text,{role:t,languages:Un(a.mediaRenderers),attachments:o,arriving:c});return u.map((p,f)=>p.kind==="markdown"?{...p,html:{__html:Ze(p.text,f===u.length-1?i.fading:[])}}:p)},[t,i,a.mediaRenderers,o,c]);return Pe("div",{className:y("cortex-text-part",t==="assistant"&&"cortex-text-part--assistant",t==="user"&&"cortex-text-part--user"),children:Pe("div",{className:y("cortex-text-bubble",t==="assistant"&&"cortex-text-bubble--assistant",t==="user"&&"cortex-text-bubble--user"),children:d.map((u,p)=>{switch(u.kind){case"markdown":return Pe("div",{dangerouslySetInnerHTML:u.html},p);case"media":return Pe(ia,{...u,streaming:c},p);case"table":return Pe(la,{text:u.text,closed:u.closed},p);case"attachment":return Pe(oa,{...u},p)}})})})}import{useEffect as ba,useRef as Yn,useState as va}from"react";import{useEffect as El,useState as Rl}from"react";import{jsx as st,jsxs as pa}from"react/jsx-runtime";function Fe({activity:e,className:t}){let{t:n}=h(),r=Xt(e),[o,a]=Rl({index:0,phase:"idle"}),i=r.length;return El(()=>rn(i,a),[i]),pa("div",{className:y("cortex-subtle-activity",t),children:[pa("div",{className:"cortex-subtle-activity__dots",children:[st("span",{className:"cortex-subtle-activity__dot"}),st("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d1"}),st("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d2"})]}),st("div",{className:"cortex-subtle-activity__label-mask",children:st("span",{className:y("cortex-subtle-activity__label",`cortex-subtle-activity__label--${o.phase}`),children:n(r[o.index])})})]})}import{jsx as it,jsxs as Il}from"react/jsx-runtime";function He({state:e,active:t}){return Il("span",{className:"cortex-tool-pill__icon","aria-hidden":"true",children:[it("span",{className:y("cortex-tool-pill__spinner",t&&"cortex-tool-pill__spinner--visible")}),it("svg",{className:y("cortex-tool-pill__svg cortex-tool-pill__svg--check",e==="complete"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:it("path",{d:v.statusCheck,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),it("svg",{className:y("cortex-tool-pill__svg",e==="error"&&"cortex-tool-pill__svg--error",(e==="error"||e==="declined")&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:it("path",{d:v.statusCross,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]})}import{jsx as xe,jsxs as lt,Fragment as Ol}from"react/jsx-runtime";function ma({toolCallPart:e,asking:t}){let{t:n,widget:r}=h(),o=Jt(e),a=o.title??n(o.fallbackKey,o.fallbackParams),i=`cortex-approval-${e.id}`,s=o.decision==="pending";function l(c){r.respondToApproval(e,c).catch(()=>{})}return lt("div",{className:y("cortex-approval-card",s&&"cortex-approval-card--asking"),children:[s?lt(Ol,{children:[lt("div",{className:"cortex-approval-card__head",children:[xe("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:xe("path",{d:v.shield,stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),n("translate_approval_needed")]}),xe("p",{className:"cortex-approval-card__sentence",id:i,children:a})]}):lt("div",{className:"cortex-approval-card__line",children:[xe(He,{state:o.state,active:o.active}),o.decisionKey&&xe("span",{className:"cortex-approval-card__decision",children:n(o.decisionKey)}),xe("span",{className:"cortex-approval-card__summary",children:a})]}),s&&t&&lt("div",{className:"cortex-approval-card__foot",children:[xe("button",{type:"button",className:"cortex-approval-card__button cortex-approval-card__button--approve","aria-describedby":i,onClick:()=>l(!0),children:n("translate_approve")}),xe("button",{type:"button",className:"cortex-approval-card__button","aria-describedby":i,onClick:()=>l(!1),children:n("translate_deny")})]})]})}import{useEffect as fa,useRef as It,useState as ga}from"react";import{jsx as j,jsxs as se}from"react/jsx-runtime";function _a({toolCallPart:e,setOutput:t}){let{t:n}=h(),{state:r,id:o,input:a}=e;if(r==="complete"||r==="error"){let i=Mn(e.output);return i?j(Fl,{position:i}):se("div",{className:"cortex-tool-pill",children:[j(He,{state:r==="error"?"error":"declined",active:!1}),j("span",{className:"cortex-tool-pill__title",children:n("translate_location_not_shared")})]})}if(r!=="input-complete")return null;return j(Pl,{center:Sn(a),submit:t},o)}function Pl({center:e,submit:t}){let{t:n}=h(),r=It(null),o=It(void 0),[a,i]=ga(yt),s=It({center:e,submit:t});s.current={center:e,submit:t},fa(()=>{let c=r.current;if(!c)return;let d=Cn(c,{center:s.current.center,onState:i,submit:(u)=>s.current.submit(u)});return o.current=d,d.start(),()=>{if(d.dispose(),o.current===d)o.current=void 0}},[]);let l=Nn(a);return se("div",{className:"cortex-location-input",children:[se("div",{className:"cortex-location-input__map",children:[j("div",{className:"cortex-location-input__canvas",ref:r}),j("button",{type:"button",className:"cortex-location-input__locate","aria-label":n("translate_location_locate"),title:n("translate_location_locate"),disabled:a.locating||a.submitting,onClick:()=>o.current?.locate(),children:j(Hl,{})})]}),se("div",{className:"cortex-location-input__foot",children:[a.position&&!a.deliveryFailed?j("span",{className:"cortex-location-input__coords",children:bt(a.position)}):se("span",{className:y("cortex-location-input__hint",l.failed&&"cortex-location-input__hint--failed"),children:[a.locating&&j("span",{className:"cortex-location-input__spinner"}),n(l.key)]}),se("span",{className:"cortex-location-input__actions",children:[j("button",{type:"button",className:"cortex-location-input__skip",disabled:a.submitting,onClick:()=>o.current?.cancel(),children:n("translate_location_skip")}),j("button",{type:"button",className:"cortex-location-input__send",disabled:!a.position||a.submitting,onClick:()=>o.current?.confirm(),children:n("translate_location_send")})]})]})]})}function Fl({position:e}){let{t}=h(),n=It(null),[r,o]=ga(!1),{lat:a,lng:i}=e;return fa(()=>{let s=n.current;if(!s)return;return o(!1),kn(s,{lat:a,lng:i},()=>o(!0))},[a,i]),se("div",{className:"cortex-location-input cortex-location-input--settled",children:[se("div",{className:"cortex-location-input__map cortex-location-input__map--still",children:[j("div",{className:"cortex-location-input__canvas",ref:n,hidden:r}),r&&j("span",{className:"cortex-location-input__still-failed",children:t("translate_location_map_failed")})]}),se("div",{className:"cortex-location-input__body",children:[se("span",{className:"cortex-location-input__title",children:[j("svg",{viewBox:"0 0 20 20",fill:"none",children:j("path",{d:v.statusCheck,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),t("translate_location_shared")]}),j("span",{className:"cortex-location-input__coords",children:bt(e)})]})]})}function Hl(){return se("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:[j("circle",{cx:"10",cy:"10",r:"5.5"}),j("circle",{cx:"10",cy:"10",r:"1.6",fill:"currentColor",stroke:"none"}),j("path",{d:v.crosshair})]})}import{jsx as ie,jsxs as De}from"react/jsx-runtime";function ha({toolCallPart:e}){let{t}=h(),n=Yt(e),r=e.output;switch(n?.kind){case"output":return De("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--success",children:[De("div",{className:"cortex-debug-tool__section-bar",children:[ie("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--success",children:t("translate_output")}),ie("span",{className:"cortex-debug-tool__section-lang",children:"json"}),ie(ne,{value:n.text})]}),ie("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:ie(_e,{data:r,expandDepth:2})})]});case"error":return De("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--error",children:[De("div",{className:"cortex-debug-tool__section-bar",children:[ie("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--error",children:t("translate_error")}),ie(ne,{value:n.text})]}),ie("pre",{dir:"ltr",className:"cortex-debug-tool__error-pre",children:n.text})]});case"approval":return De("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[De("div",{className:"cortex-debug-tool__section-bar",children:[ie("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:t(n.labelKey)}),ie("span",{className:"cortex-debug-tool__section-lang",children:n.approvalId})]}),ie("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:t(n.messageKey)})]});default:return null}}import{jsx as Dl,jsxs as Ul}from"react/jsx-runtime";function xa({toolCallPart:e}){let{t}=h(),n=Gt(e);return Ul("span",{className:y("cortex-debug-tool__state",n.modifier&&`cortex-debug-tool__state--${n.modifier}`),children:[n.pulse&&Dl("span",{className:y("cortex-debug-tool__pulse",n.pulse==="violet"&&"cortex-debug-tool__pulse--violet")}),t(n.labelKey)]})}import{jsx as z,jsxs as pe}from"react/jsx-runtime";function ya({toolCallPart:e}){let{t}=h(),{codeSnippets:n,remainingInput:r,remainingInputText:o}=Kt(e.input);return pe("details",{className:"cortex-debug-tool","data-state":e.state,children:[z("summary",{className:"cortex-debug-tool__summary",children:pe("div",{className:"cortex-debug-tool__header",children:[pe("div",{className:"cortex-debug-tool__meta",children:[z("div",{className:"cortex-debug-tool__title-row",children:z("span",{className:"cortex-debug-tool__name",title:e.name,children:e.name})}),z("div",{className:"cortex-debug-tool__id-row",children:z("span",{className:"cortex-debug-tool__id",children:e.id})})]}),pe("div",{className:"cortex-debug-tool__actions",children:[z(xa,{toolCallPart:e}),z("svg",{className:"cortex-debug-tool__chevron",width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:z("path",{d:v.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),pe("div",{className:"cortex-debug-tool__body",children:[n.map((a)=>pe("div",{className:"cortex-debug-tool__section",children:[pe("div",{className:"cortex-debug-tool__section-bar",children:[z("span",{className:"cortex-debug-tool__section-label",children:a.key}),z("span",{className:"cortex-debug-tool__section-lang",children:a.lang}),z(ne,{value:a.value})]}),z("pre",{dir:"ltr",className:"cortex-debug-tool__pre",children:z("code",{className:"hljs",dangerouslySetInnerHTML:{__html:Bn(a.value,a.lang)}})})]},a.key)),!!r&&pe("div",{className:"cortex-debug-tool__section",children:[pe("div",{className:"cortex-debug-tool__section-bar",children:[z("span",{className:"cortex-debug-tool__section-label",children:t("translate_input")}),z("span",{className:"cortex-debug-tool__section-lang",children:"json"}),z(ne,{value:o})]}),z("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:z(_e,{data:r,expandDepth:2})})]}),z(ha,{toolCallPart:e})]})]})}import{jsx as q,jsxs as Ot}from"react/jsx-runtime";var Wl={[_t]:_a};function Ta({message:e,toolCallPart:t}){let{config:n,widget:r}=h(),o=L((u)=>u.session.isAgentWorking),a=L((u)=>u.capabilities),i=L((u)=>u.debugMode),[s,l]=va(!1),c=Zt(t,{agentWorking:o,capabilities:a,debugMode:i,consumerTools:n.toolComponents,builtInTools:Wl,embedUnavailable:s});function d(){switch(c.kind){case"consumer":case"builtIn":return q(c.component,{toolCallPart:t,message:e,setOutput:(u)=>r.addToolResult(t.id,t.name,u)});case"embed":return q(Bl,{toolCallPart:t,onUnavailable:()=>l(!0)});case"approval":return q(ma,{toolCallPart:t,asking:c.asking});case"debug":return q(ya,{toolCallPart:t});case"activity":return q(Fe,{activity:c.activity});case"pill":return q(jl,{toolCallPart:t})}}return q("div",{className:"cortex-tool-call-animated",children:d()})}function Bl({toolCallPart:e,onUnavailable:t}){let{t:n,widget:r,config:o}=h(),a=L((u)=>u.selected?.id),[i,s]=va({phase:"initiating"}),l=Yn(void 0),c=Yn({widget:r,config:o,onUnavailable:t,toolName:e.name});if(c.current={widget:r,config:o,onUnavailable:t,toolName:e.name},ba(()=>{if(!a){c.current.onUnavailable();return}let u=wn({initiate:()=>c.current.widget.api.initiateToolCall(a,e.id),onState:(p)=>{if(s(p),p.phase==="unavailable")c.current.onUnavailable()},submit:(p)=>c.current.widget.addToolResult(e.id,c.current.toolName,p),host:window,trustSameOrigin:c.current.config.trustSameOriginEmbeds});return l.current=u,u.start(),()=>{if(u.dispose(),l.current===u)l.current=void 0}},[e.id,a]),!a||i.phase==="unavailable")return null;let d=Ot("div",{className:"cortex-client-tool-embed",children:[Ot("div",{className:"cortex-client-tool-embed__bar",children:[q("span",{children:n("translate_client_tool_title")}),q("button",{type:"button",className:"cortex-client-tool-embed__cancel",onClick:()=>l.current?.cancel(),children:n("translate_client_tool_cancel")})]}),i.phase==="embedded"?q("iframe",{className:"cortex-client-tool-embed__frame",src:i.embedUrl,sandbox:i.sandbox,title:n("translate_client_tool_title"),ref:(u)=>l.current?.setSource(u?.contentWindow),onLoad:(u)=>l.current?.frameLoaded(u.currentTarget)}):i.phase==="error"?Ot("div",{className:"cortex-client-tool-embed__status",children:[q("span",{children:n("translate_client_tool_failed")}),q("button",{type:"button",className:"cortex-client-tool-embed__retry",onClick:()=>void l.current?.start(),children:n("translate_client_tool_retry")})]}):q("div",{className:"cortex-client-tool-embed__status",children:n("translate_client_tool_loading")})]});return i.phase==="embedded"&&i.surface==="modal"?q($l,{label:n("translate_client_tool_title"),onCancel:()=>l.current?.cancel(),children:d}):d}function $l({label:e,onCancel:t,children:n}){let r=Yn(null);return ba(()=>{let o=r.current;return o?.showModal(),()=>o?.close()},[]),q("dialog",{ref:r,className:"cortex-client-tool-embed-dialog","aria-label":e,onCancel:(o)=>{o.preventDefault(),t()},children:n})}function jl({toolCallPart:e}){let{t}=h(),{state:n,active:r,titleKey:o,statement:a,rows:i}=je(e);return Ot("div",{className:"cortex-tool-pill",children:[q(He,{state:n,active:r}),q("span",{className:y("cortex-tool-pill__title",n==="error"&&"cortex-tool-pill__title--error",n==="starting"&&a&&"cortex-tool-pill__title--pending"),children:a??t(o)}),i!==void 0&&q("span",{className:"cortex-tool-pill__meta",children:t("translate_rows",{count:i})})]})}import{jsx as ct,jsxs as zl}from"react/jsx-runtime";function wa(e){let{message:t,part:n,animate:r,streaming:o,attachments:a}=e,{t:i}=h(),s=L((c)=>c.debugMode);function l(){switch(n.type){case"text":return ct(ua,{textPart:n,role:t.role,streaming:o,attachments:a});case"thinking":return s?ct(ra,{reasoningPart:n,streaming:o}):ct(Fe,{activity:"reasoning",className:"cortex-reasoning-animated"});case"tool-call":return ct(Ta,{toolCallPart:n,message:t});default:return zl("p",{className:"cortex-unhandled-type",children:[i("translate_unhandled_type")," ",n.type]})}}return ct("div",{className:y("cortex-message-part",r&&"cortex-message-part--animated",e.folded&&"cortex-message-part--folded"),"data-cortex-frontier":e.frontier?"":void 0,children:l()})}import{jsx as me,jsxs as Qn}from"react/jsx-runtime";function Vl({isUser:e,clipboardText:t,createdAt:n}){let{locale:r}=h();return Qn("div",{className:y("cortex-message-actions",e&&"cortex-message-actions--user"),children:[t&&me(ne,{value:t}),n&&me("time",{className:"cortex-message-actions__time",dateTime:n,children:ce(n,r)})]})}function Gl({count:e,animate:t,onOpen:n}){let{t:r}=h();return me("button",{type:"button",className:y("cortex-tool-fold",t&&"cortex-message-part--animated"),onClick:n,children:r("translate_more_steps",{count:e})})}function Ca(e){let{message:t,layout:n,animate:r,fold:o,onOpenRun:a,frontier:i}=e,{parts:s,metadata:l,actionsAfter:c}=n,{t:d}=h(),u=t.role==="user",p=l?.attachments,f=c&&me(Vl,{isUser:u,clipboardText:Gn(s),createdAt:l?.createdAt});return Qn("div",{className:"cortex-message-parts",children:[s.map((m)=>{let x=o?.get(m);return Qn(ql,{children:[me(wa,{part:m,message:t,animate:r,streaming:m===n.streamingPart,attachments:p,frontier:m===i,folded:x?.kind==="hidden"}),x?.kind==="more"&&me(Gl,{count:x.count,animate:r,onOpen:()=>a(x.runId)}),m===c&&f]},t.parts.indexOf(m))}),p?.length?me(Ko,{attachments:p,isUser:u}):null,l?.isAborted&&me(Lt,{label:d("translate_aborted")}),c==="end"&&f,n.debugStrip&&l&&me(na,{messageId:t.id,metadata:l})]})}import{jsx as ke,jsxs as er}from"react/jsx-runtime";function ka({firing:e}){let{t,locale:n}=h(),r=L((o)=>o.debugMode);return er("div",{className:y("cortex-trigger-block",r&&"cortex-trigger-block--debug"),children:[er("div",{className:"cortex-trigger-block__head",children:[ke("svg",{className:"cortex-trigger-block__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:ke("path",{d:v.bolt,fill:"currentColor"})}),r&&ke("span",{children:t("translate_trigger_fired")}),ke("span",{className:"cortex-trigger-block__name",children:e.name}),ke("time",{className:"cortex-trigger-block__time",dateTime:e.firedAt,children:ce(e.firedAt,n)})]}),r&&er("details",{className:"cortex-trigger-block__payload",children:[ke("summary",{children:t("translate_trigger_payload")}),ke(_e,{data:e.payload,expandDepth:2})]})]})}import{jsx as dt}from"react/jsx-runtime";var Sa=Kl(function(t){let{message:n,isStreaming:r,closesTurn:o,animate:a,fold:i,onOpenRun:s,workingTurn:l,frontier:c}=t,d=L((p)=>p.debugMode),u=Vn(n,{debugMode:d,isStreaming:r,fold:i,closesTurn:o});if(u.metadata?.trigger)return dt("div",{className:"cortex-message",children:dt(ka,{firing:u.metadata.trigger})});if(!u.drawsBody)return dt("div",{className:"cortex-message"});return dt("div",{className:y("cortex-message",l&&"cortex-message--working-turn"),children:dt(Ca,{message:n,layout:u,animate:a,fold:i,onOpenRun:s,frontier:c})})});import{jsx as Pt}from"react/jsx-runtime";var Jl=[{role:"user",lines:[13,9]},{role:"assistant",lines:[16,18,12]},{role:"user",lines:[11]},{role:"assistant",lines:[14,15]}];function Ma(){return Pt("div",{className:"cortex-widget__messages-skeleton",children:Jl.map((e,t)=>Pt("div",{className:`cortex-widget__msg-skel cortex-widget__msg-skel--${e.role}`,children:Pt("div",{className:`cortex-widget__msg-skel-bubble cortex-widget__msg-skel-bubble--${e.role}`,children:e.lines.map((n)=>Pt("div",{className:"cortex-skeleton cortex-widget__msg-skel-line",style:{width:`${n}rem`}},n))})},t))})}import{jsx as te,jsxs as mt,Fragment as Na}from"react/jsx-runtime";function Ql(e,t,n){let r=pt(null),o=pt(null),a=pt(void 0),[i,s]=tr(!1);return ut(()=>{let l=r.current,c=o.current;if(!e||!l||!c)return;let d=tn(l,c);return a.current=d,()=>{d.dispose(),a.current=void 0}},[e]),ut(()=>a.current?.pin(),[t]),ut(()=>a.current?.messagesChanged(n.at(-1)),[n]),Zl(()=>{s(!1),queueMicrotask(()=>s(!0))},[t]),{containerRef:r,contentRef:o,animateNewParts:i}}function ec({working:e}){let t=pt(null),n=pt(void 0);return ut(()=>{let r=t.current;if(!r)return;let o=nn(r);return n.current=o,()=>{o.dispose(),n.current=void 0}},[]),ut(()=>n.current?.sync(e)),mt("div",{ref:t,className:"cortex-working-avatar","aria-hidden":"true",children:[mt("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[te("path",{d:v.sparkles[0]}),te("path",{d:v.sparkles[1]})]}),te("span",{className:"cortex-working-avatar__ring"})]})}function La(e){let{config:t,t:n}=h(),r=L((g)=>g.selected?.id),{messages:o,isAgentWorking:a,isLoadingMessages:i,turnFailure:s}=L((g)=>g.session),l=L((g)=>g.debugMode),c=L((g)=>g.capabilities),d=!i||a,u=Ql(d,r,o),[p,f]=tr(new Set),m=Xl((g)=>f((b)=>new Set(b).add(g)),[]),x=t.toolComponents,[M]=tr(qn),{rows:C,thinking:w}=Yl(()=>M(o,{agentWorking:a,debugMode:l,opened:p,consumerTools:x,capabilities:c}),[M,o,a,l,p,x,c]);return mt(Na,{children:[!d?te(Ma,{}):te("div",{className:e.className,children:te("div",{ref:u.containerRef,className:"cortex-message-list",children:mt("div",{ref:u.contentRef,className:"cortex-message-list__content",children:[C.map((g)=>te(Sa,{...g,onOpenRun:m,animate:u.animateNewParts},g.message.id)),s&&mt(Na,{children:[te(Lt,{label:n(hn(s))}),s.reason&&te("p",{className:"cortex-aborted-flag__reason",children:s.reason})]}),w&&te("div",{className:"cortex-working-thinking","data-cortex-frontier":"",children:te(Fe,{activity:"reasoning"})}),te(ec,{working:a},r)]})})}),te(St,{})]})}import{jsx as Aa,jsxs as tc}from"react/jsx-runtime";function Ea(e){let{widget:t}=h(),n=L((o)=>o.screen),r=L((o)=>o.selected!==void 0);return tc("div",{className:y("cortex-widget__screen",n==="chat"&&"cortex-widget__screen--active",n!=="chat"&&"cortex-widget__screen--right"),children:[e.header,r?Aa(La,{className:"cortex-widget__messages"}):e.landing,Aa("div",{className:"cortex-widget__sidebar-backdrop",onClick:t.closeHistory})]})}import{jsx as W,jsxs as Se,Fragment as nc}from"react/jsx-runtime";function Ra(e){let{locale:t,t:n}=h(),{threads:r,deleteThread:o}=e;return W("div",{className:"cortex-widget__threads-list",children:r===void 0?[1,2,3,4].map((a)=>Se("div",{className:"cortex-widget__thread-skeleton",children:[W("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-icon"}),W("div",{className:"cortex-widget__thread-skeleton-lines",children:W("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-line",style:{width:`${40+a*12}%`}})})]},a)):Se(nc,{children:[r.map((a)=>{let i=a.id===e.selectedThreadId,s=ce(a.updatedAt,t);return Se("div",{className:y("cortex-widget__thread-item",i&&"cortex-widget__thread-item--active"),children:[W("div",{className:y("cortex-widget__thread-icon",i&&"cortex-widget__thread-icon--active"),children:W("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:W("path",{d:v.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),Se("button",{type:"button",onClick:()=>e.openThread(a),className:"cortex-widget__thread-info",children:[Se("div",{className:"cortex-widget__thread-title-row",children:[W("p",{dir:"auto",className:y("cortex-widget__thread-title",i&&"cortex-widget__thread-title--active"),children:a.title??n("translate_untitled")}),a.isRunning&&Se("span",{className:y("cortex-widget__thread-running",i&&"cortex-widget__thread-running--active"),children:[W("span",{className:"cortex-widget__thread-running-dot"}),n("translate_running")]})]}),s&&W("p",{className:"cortex-widget__thread-time",children:s})]}),o&&W("button",{type:"button","aria-label":n("translate_delete_conversation"),onClick:()=>o(a.id),className:y("cortex-widget__thread-delete",i&&"cortex-widget__thread-delete--active"),children:W("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:W("path",{d:v.close,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),W("svg",{className:y("cortex-widget__thread-arrow",i&&"cortex-widget__thread-arrow--active"),width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:W("path",{d:v.chevronRight,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},a.id)}),!r.length&&Se("div",{className:"cortex-widget__threads-empty",children:[W("div",{className:"cortex-widget__threads-empty-icon",children:W("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__threads-empty-svg",children:W("path",{d:v.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),W("p",{className:"cortex-widget__threads-empty-title",children:n("translate_no_threads_yet")}),W("p",{className:"cortex-widget__threads-empty-subtitle",children:n("translate_start_a_new_conversation")}),e.newChat&&W("button",{onClick:e.newChat,className:"cortex-widget__new-chat-btn cortex-widget__new-chat-btn--empty-state",children:n("translate_new_chat")})]})]})})}import{jsx as rc,jsxs as Oa}from"react/jsx-runtime";function Ia(e){e.preventDefault()}function Pa(e){let{locale:t}=h(),n=L((o)=>o.screen),r=L((o)=>o.sidebarOpen);return rc("div",{className:y("cortex-widget",e.className),"data-cortex-theme":e.theme,dir:ur[t],children:Oa("div",{className:y("cortex-widget__container",e.viewMode==="full"&&"cortex-widget__container--full",r&&"cortex-widget__container--sidebar-open"),onDragOver:Ia,onDrop:Ia,children:[Oa("div",{className:y("cortex-widget__screen",n==="threads"&&"cortex-widget__screen--active",n!=="threads"&&"cortex-widget__screen--left"),children:[e.header,e.threadList]}),e.children]})})}import{jsx as fe}from"react/jsx-runtime";var sc={header:jo,landing:qo,threadList:Ra};function nr(e,t){return e?.[t]??sc[t]}function ic({config:e,className:t,slots:n}){let{widget:r,parts:o}=Po(e),[a,i]=ac();oc(()=>Wn(e.theme,i),[e.theme]);let s=Me(e.locale),l=Fa(()=>({config:e,locale:s,t:(d,u)=>Y(s,d,u),scheme:a,widget:r}),[e,s,a,r]),c=Fa(()=>{let d=Tn(r,o,e,fe("div",{className:"cortex-widget__landing-composer",children:fe(St,{})})),u=nr(n,"header"),p=nr(n,"landing"),f=nr(n,"threadList");return{threadsHeader:fe(u,{...d.threadsHeader}),threadList:fe(f,{...d.threadList}),chatHeader:fe(u,{...d.chatHeader}),landing:fe(p,{...d.landing})}},[r,o,e,n]);return fe(Kn.Provider,{value:l,children:fe(Pa,{className:t,theme:e.theme,viewMode:e.viewMode??"helper",header:c.threadsHeader,threadList:c.threadList,children:fe(Ea,{header:c.chatHeader,landing:c.landing})})})}export{ic as CortexChatWidget};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m6d/cortex-react",
3
- "version": "0.15.1",
3
+ "version": "0.16.0",
4
4
  "description": "React chat widget for Cortex agents",
5
5
  "license": "MIT",
6
6
  "sideEffects": [
@@ -34,7 +34,7 @@
34
34
  "@m6d/tsconfig": "workspace:*",
35
35
  "@tanstack/ai": "^0.55.0",
36
36
  "@tanstack/ai-client": "^0.32.1",
37
- "@types/bun": "1.3.14",
37
+ "@types/bun": "1.4.4",
38
38
  "@types/jsdom": "^28.0.0",
39
39
  "@types/leaflet": "^1.9.22",
40
40
  "@types/react": "^19",
@@ -48,7 +48,7 @@
48
48
  "mermaid": "^12.0.0",
49
49
  "react": "^19.2.0",
50
50
  "sass": "^1.83.0",
51
- "typescript": "~6.0.3",
51
+ "typescript": "npm:@typescript/typescript6@^6.0.2",
52
52
  "vega": "^6.4.0",
53
53
  "vega-embed": "^7.2.0",
54
54
  "vega-lite": "^6.4.3"