@m6d/cortex-react 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,9 +1,13 @@
1
- var S2=Object.create;var{getPrototypeOf:T2,defineProperty:O0,getOwnPropertyNames:v2}=Object;var f2=Object.prototype.hasOwnProperty;var U_=(_,$,X)=>{X=_!=null?S2(T2(_)):{};let Y=$||!_||!_.__esModule?O0(X,"default",{value:_,enumerable:!0}):X;for(let Q of v2(_))if(!f2.call(Y,Q))O0(Y,Q,{get:()=>_[Q],enumerable:!0});return Y};var L_=((_)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(_,{get:($,X)=>(typeof require<"u"?require:$)[X]}):_)(function(_){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+_+'" is not supported')});import{useEffect as G4,useRef as R2,useState as _1}from"react";var X1=["en","ar"];var Y1=["image/png","image/jpeg","image/webp","application/pdf"];var P0=5;function M0(_,$){if(!Y1.some((X)=>X===_))return"type";if($>10485760)return"size";return"ok"}function Q1(_){return{..._,role:_.role==="trigger"?"user":_.role}}var k0="clientToolAnswers";function A0(_){return _.approval?.id??`approval_${_.id}`}var N1="X-Cortex-Timezone";function Z1(_){let $=_.getHeaders();return $ instanceof Promise?$.then(E0):Promise.resolve(E0($))}function E0(_){let $={..._},X=j2(),Y=Object.keys($).some((Q)=>Q.toLowerCase()===N1.toLowerCase());if(X&&!Y)$[N1]=X;return $}function j2(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function g2(_,$){let X=_.baseUrl;return(typeof X==="string"?X:X()).replace(/\/$/,"")+$}function m2(_){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 G1(_){function $(){return Z1(_())}function X(Q){return g2(_(),Q)}async function Y(Q,N){let Z=new Headers(await $());if(new Headers(N?.headers).forEach((z,V)=>{Z.set(V,z)}),N?.body instanceof FormData)Z.delete("Content-Type");else if(!Z.has("Content-Type"))Z.set("Content-Type","application/json");let G=await fetch(X(Q),{...N,headers:Z});if(!G.ok)throw Error(`HTTP ${G.status}: ${G.statusText}`);let J=await G.text();return J?JSON.parse(J):void 0}return{getCapabilities(){return Y("/capabilities")},listThreads(){return Y("/threads")},createThread(){return Y("/threads",{method:"POST"})},deleteThread(Q){return Y(`/threads/${Q}`,{method:"DELETE"})},listMessages(Q){return Y(`/threads/${Q}/messages`)},listLlmRequests(Q){return Y(`/messages/${Q}/llm-requests`)},abortStream(Q){return Y(`/chat/${Q}/abort`,{method:"POST"})},initiateToolCall(Q,N){return Y(`/chat/${Q}/tools/${N}/initiate`,{method:"POST"})},uploadAttachment(Q,N){let Z=new FormData;return Z.append("file",N),Y(`/threads/${Q}/files`,{method:"POST",body:Z})},deleteAttachment(Q){return Y(`/files/${Q}`,{method:"DELETE"})},async downloadAttachment(Q){let N=await fetch(X(`/files/${Q}`),{headers:await $()});if(!N.ok)throw Error(`HTTP ${N.status}: ${N.statusText}`);return{blob:await N.blob(),name:m2(N.headers.get("Content-Disposition"))??Q}},resolveHeaders:$,resolveUrl:X}}var x2=["completed","cancelled","failed"],f_="requestLocation";function R0(_,$,X){if($!==X)return null;if(typeof _!=="object"||_===null)return null;let Y=_;if(Y.type!=="cortex:client-tool")return null;let Q=x2.find((Z)=>Z===Y.status);if(!Q)return null;let N=Y.reference;return{type:"cortex:client-tool",status:Q,...typeof N==="string"?{reference:N}:{},...Y.result!==void 0?{result:Y.result}:{}}}var h2=new Set(["complete","error"]);function v(_){return h2.has(_)}function a(_){return(c2(_)?.parts??[]).filter((X)=>X.type==="tool-call"&&!v(X.state))}function O_(_){let $=_.at(-1);if($?.role!=="assistant")return;let X=$.parts.at(-1),Y=X?.type==="tool-call"||X?.type==="tool-result",Q=$.parts.every((N)=>N.type!=="tool-call"||v(N.state));return Y&&Q?void 0:$}function c2(_){for(let $=_.length-1;$>=0;$-=1){let X=_[$];if(X?.role==="assistant")return X}return}var u2={complete:"success",error:"error","approval-requested":"approval","approval-responded":"approval","awaiting-input":"pending","input-streaming":"pending","input-complete":"pending"},p2={"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 J1(_){let{state:$,approval:X}=_;return{modifier:u2[$],labelKey:X?.approved===!1?"translate_declined":$==="approval-responded"&&X?.approved?"translate_approved":p2[$],pulse:$==="awaiting-input"||$==="input-streaming"?"default":$==="approval-requested"?"violet":void 0}}function z1(_){let $=_.output;if($===void 0||$===null)return"";if(typeof $==="string")return $;return JSON.stringify($,null,2)}var y0={code:"javascript",query:"cypher"};function V1(_){let $=_&&typeof _==="object"?_:null,X=$?Object.entries(y0).flatMap(([Q,N])=>{let Z=$[Q];return typeof Z==="string"?[{key:Q,lang:N,value:Z.replace(/\\n/g,`
2
- `)}]:[]}):[],Y=_;if($){let Q=Object.fromEntries(Object.entries($).filter(([N])=>!Object.hasOwn(y0,N)));Y=Object.keys(Q).length>0?Q:null}return{codeSnippets:X,remainingInput:Y,remainingInputText:Y?JSON.stringify(Y,null,2):""}}var w0=10,l2={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function d2(_){let $=0;for(let X=0;X<_.length;X++)$=$*31+_.charCodeAt(X)|0;return Math.abs($)%w0}function n2(_){let $=_.input;if(!$||typeof $!=="object"||!("status"in $))return;let X=$.status;return typeof X==="string"&&X.trim()?X.trim():void 0}function i2(_){let $=_.output;if(typeof $==="string")try{$=JSON.parse($)}catch{return!1}return!!$&&typeof $==="object"&&"error"in $&&$.error===!0}function r2(_){let $=_.output;if(!$||typeof $!=="object"||!("rowCount"in $))return;return typeof $.rowCount==="number"?$.rowCount:void 0}function o2(_,$,X){if(X)return"translate_declined";if($==="error")return"translate_tool_error";if($==="approval")return"translate_needs_approval";let Y=_.name==="readAttachment"?"attachment":"tool",Q=Y==="tool"?`_${d2(_.id)}`:"";return`translate_${Y}_${$==="complete"?"done":"status"}${Q}`}function P_(_){let $=_.approval?.approved===!1,Y=$||_.state==="complete"&&i2(_)?"error":l2[_.state]??"processing";return{state:Y,active:Y==="starting"||Y==="processing",gated:_.approval!==void 0,titleKey:o2(_,Y,$),statement:n2(_),rowCount:Y==="complete"?r2(_):void 0}}function K1(_,$){let X=_.metadata;if(!X||typeof X!=="object"||!("cortex"in X))return;return X.cortex?.approval?.[$]||void 0}function W1(_){return Array.from({length:w0},($,X)=>`translate_${_}_${X}`)}function J_(_,$){return _.filter((X,Y)=>{if(X.type==="tool-result")return!1;if($.debugMode)return!0;if(X.type==="text"&&!X.content.trim())return!1;let Q=Y===_.length-1;return X.type!=="thinking"||$.isStreaming&&Q})}function D1(_){return _.filter(($)=>$.type==="text").map(($)=>$.content).join(`
1
+ var Q5=Object.create;var{getPrototypeOf:X5,defineProperty:j0,getOwnPropertyNames:Z5}=Object;var G5=Object.prototype.hasOwnProperty;var I_=(_,$,Y)=>{Y=_!=null?Q5(X5(_)):{};let Q=$||!_||!_.__esModule?j0(Y,"default",{value:_,enumerable:!0}):Y;for(let X of Z5(_))if(!G5.call(Q,X))j0(Q,X,{get:()=>_[X],enumerable:!0});return Q};var y_=((_)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(_,{get:($,Y)=>(typeof require<"u"?require:$)[Y]}):_)(function(_){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+_+'" is not supported')});import{useEffect as G7,useRef as r2,useState as z1}from"react";var D1=["en","ar"];var H1=["image/png","image/jpeg","image/webp","application/pdf"];var g0=5;function m0(_,$){if(!H1.some((Y)=>Y===_))return"type";if($>10485760)return"size";return"ok"}var x0=["executeCode","queryDataset","describeDataset"];function B1(_){return{..._,role:_.role==="trigger"?"user":_.role}}var h0="clientToolAnswers";function u0(_){return _.approval?.id??`approval_${_.id}`}var q1="X-Cortex-Timezone";function F1(_){let $=_.getHeaders();return $ instanceof Promise?$.then(c0):Promise.resolve(c0($))}function c0(_){let $={..._},Y=J5(),Q=Object.keys($).some((X)=>X.toLowerCase()===q1.toLowerCase());if(Y&&!Q)$[q1]=Y;return $}function J5(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function N5(_,$){let Y=_.baseUrl;return(typeof Y==="string"?Y:Y()).replace(/\/$/,"")+$}function V5(_){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 U1(_){function $(){return F1(_())}function Y(X){return N5(_(),X)}async function Q(X,Z){let G=new Headers(await $());if(new Headers(Z?.headers).forEach((V,K)=>{G.set(K,V)}),Z?.body instanceof FormData)G.delete("Content-Type");else if(!G.has("Content-Type"))G.set("Content-Type","application/json");let J=await fetch(Y(X),{...Z,headers:G});if(!J.ok)throw Error(`HTTP ${J.status}: ${J.statusText}`);let N=await J.text();return N?JSON.parse(N):void 0}return{getCapabilities(){return Q("/capabilities")},listThreads(){return Q("/threads")},createThread(){return Q("/threads",{method:"POST"})},deleteThread(X){return Q(`/threads/${X}`,{method:"DELETE"})},listMessages(X){return Q(`/threads/${X}/messages`)},listLlmRequests(X){return Q(`/messages/${X}/llm-requests`)},abortStream(X){return Q(`/chat/${X}/abort`,{method:"POST"})},initiateToolCall(X,Z){return Q(`/chat/${X}/tools/${Z}/initiate`,{method:"POST"})},uploadAttachment(X,Z){let G=new FormData;return G.append("file",Z),Q(`/threads/${X}/files`,{method:"POST",body:G})},deleteAttachment(X){return Q(`/files/${X}`,{method:"DELETE"})},async downloadAttachment(X){let Z=await fetch(Y(`/files/${X}`),{headers:await $()});if(!Z.ok)throw Error(`HTTP ${Z.status}: ${Z.statusText}`);return{blob:await Z.blob(),name:V5(Z.headers.get("Content-Disposition"))??X}},resolveHeaders:$,resolveUrl:Y}}function H_(_,$){if(_===void 0||typeof _==="string"||Array.isArray(_))return _;let Y=_;return Y[$]??Y.en??Object.values(Y)[0]}var p0={translate_history:"السجل",translate_back:"رجوع",translate_greeting:"بماذا يمكنني مساعدتك اليوم؟",translate_n_conversations:"{{count}} محادثات",translate_one_conversation:"محادثة واحدة",translate_no_threads_yet:"لا توجد محادثات بعد",translate_start_a_new_conversation:"ابدأ محادثة جديدة",translate_untitled:"بدون عنوان",translate_new_chat:"محادثة جديدة",translate_normal:"عادي",translate_debug:"تصحيح",translate_type_a_message:"اكتب رسالة...",translate_completed:"مكتمل",translate_attach_files:"إرفاق ملفات",translate_drop_files_here:"أفلت ملفاتك هنا...",translate_remove_attachment:"إزالة المرفق",translate_attachment_rejected:"لا يمكن إرفاق هذا الملف",translate_attachment_caption:"من فضلك اطّلع على الملفات المرفقة.",translate_download:"تنزيل",translate_tool_status_0:"جارٍ جلب البيانات…",translate_tool_status_1:"جارٍ تحليل المعلومات…",translate_tool_status_2:"جارٍ معالجة الطلب…",translate_tool_status_3:"جارٍ تجميع النتائج…",translate_tool_status_4:"جارٍ تحضير الرد…",translate_tool_status_5:"جارٍ البحث…",translate_tool_status_6:"جارٍ فحص السجلات…",translate_tool_status_7:"جارٍ مراجعة التفاصيل…",translate_tool_status_8:"جارٍ إجراء الحسابات…",translate_tool_status_9:"جارٍ سحب المعلومات…",translate_tool_done_0:"تم جلب البيانات بنجاح",translate_tool_done_1:"تم التحليل بنجاح",translate_tool_done_2:"تمت معالجة الطلب بنجاح",translate_tool_done_3:"تم تجميع النتائج بنجاح",translate_tool_done_4:"تم تحضير الرد بنجاح",translate_tool_done_5:"تم البحث بنجاح",translate_tool_done_6:"تم فحص السجلات بنجاح",translate_tool_done_7:"تمت المراجعة بنجاح",translate_tool_done_8:"تمت الحسابات بنجاح",translate_tool_done_9:"تم استرجاع المعلومات بنجاح",translate_rows_read:"{{count}} صفوف",translate_one_more_step:"وخطوة أخرى",translate_n_more_steps:"و{{count}} خطوات أخرى",translate_tool_error:"حدث خطأ",translate_attachment_status:"جارٍ قراءة الملف المرفق…",translate_attachment_done:"تمت قراءة الملف المرفق",translate_graph_0:"جارٍ استكشاف الروابط...",translate_graph_1:"جارٍ رسم الخريطة...",translate_graph_2:"جارٍ اكتشاف العلاقات...",translate_graph_3:"جارٍ تتبع الروابط...",translate_graph_4:"جارٍ التنقل في المعرفة...",translate_graph_5:"جارٍ كشف الرؤى...",translate_graph_6:"جارٍ ربط النقاط...",translate_graph_7:"جارٍ تتبع المسار...",translate_graph_8:"جارٍ تجميع الأجزاء...",translate_graph_9:"جارٍ بناء الصورة...",translate_code_0:"جارٍ حساب الأرقام...",translate_code_1:"جارٍ معالجة البيانات...",translate_code_2:"جارٍ تنفيذ طلبك...",translate_code_3:"جارٍ تحليل الأرقام...",translate_code_4:"جارٍ تجميع كل شيء...",translate_code_5:"جارٍ تحليل النتائج...",translate_code_6:"جارٍ العمل خلف الكواليس...",translate_code_7:"جارٍ ترتيب التفاصيل...",translate_code_8:"جارٍ تحضير إجابتك...",translate_code_9:"أوشك على الانتهاء...",translate_reasoning_0:"جارٍ التفكير...",translate_reasoning_1:"جارٍ دراسة الخيارات...",translate_reasoning_2:"جارٍ تقييم الاحتمالات...",translate_reasoning_3:"جارٍ التأمل في هذا...",translate_reasoning_4:"جارٍ إيجاد الحل...",translate_reasoning_5:"جارٍ ترتيب الأفكار...",translate_reasoning_6:"جارٍ التمعن في الأمر...",translate_reasoning_7:"جارٍ إيجاد أفضل طريقة...",translate_reasoning_8:"جارٍ تنظيم أفكاري...",translate_reasoning_9:"أوشك على الانتهاء...",translate_running:"قيد التنفيذ",translate_aborted:"تم الإلغاء",translate_input:"المدخلات",translate_output:"المخرجات",translate_calling:"جارٍ الاستدعاء",translate_input_ready:"المدخلات جاهزة",translate_needs_approval:"بحاجة إلى موافقة",translate_approved:"تمت الموافقة",translate_responded:"تم الرد",translate_declined:"تم الرفض",translate_approve:"موافقة",translate_deny:"رفض",translate_error:"خطأ",translate_approval_requested:"طلب موافقة",translate_approval_response:"رد الموافقة",translate_waiting_for_approval:"في انتظار الموافقة لتنفيذ هذه الأداة.",translate_tool_approved:"تمت الموافقة.",translate_tool_response_received:"تم استلام الرد.",translate_tokens:"رمز",translate_fresh:"جديد",translate_cache_read:"قراءة من الذاكرة",translate_cache_write:"كتابة في الذاكرة",translate_n_percent_cached:"{{percent}}٪ مخزّن مؤقتًا",translate_text:"نص",translate_reasoning:"الاستنتاج",translate_read:"قراءة",translate_write:"كتابة",translate_total:"الإجمالي",translate_request:"الطلب",translate_response:"الرد",translate_step_n:"الخطوة {{number}}",translate_inspect_llm_requests:"فحص طلبات النموذج",translate_loading:"جارٍ التحميل…",translate_no_llm_requests:"لا توجد طلبات نموذج مسجّلة لهذه الرسالة.",translate_unhandled_type:"نوع غير مدعوم:",translate_client_tool_title:"أكمل هذه الخطوة للمتابعة",translate_client_tool_loading:"جارٍ تجهيز خطوة آمنة...",translate_client_tool_failed:"تعذّر تحميل هذه الخطوة",translate_client_tool_retry:"حاول مرة أخرى",translate_client_tool_cancel:"إلغاء",translate_location_hint:"انقر على الخريطة لتثبيت الدبوس",translate_location_locate:"استخدم موقعي",translate_location_locating:"جارٍ تحديد موقعك",translate_location_locate_failed:"موقعك غير متاح",translate_location_map_failed:"تعذّر تحميل الخريطة",translate_location_send_failed:"تعذّر الإرسال، حاول مرة أخرى",translate_location_skip:"ليس الآن",translate_location_send:"إرسال",translate_location_shared:"تمت مشاركة الموقع",translate_location_not_shared:"لم تتم مشاركة الموقع",translate_trigger_fired:"تم التشغيل بواسطة",translate_trigger_payload:"الحمولة",translate_messages_disabled:"يعمل هذا الوكيل من مشغّلاته فقط.",translate_streaming:"جارٍ البث",translate_done:"تم",translate_no_reasoning:"لا يوجد تفكير مسجّل.",translate_copy:"نسخ إلى الحافظة",translate_copied:"تم النسخ",translate_media_pending_mermaid:"جارٍ رسم المخطط",translate_media_pending_vega_lite:"جارٍ رسم الرسم البياني",translate_media_pending_map:"جارٍ رسم الخريطة",translate_media_cut_off:"انقطع هذا المقطع قبل اكتماله.",translate_media_failed:"تعذر عرض هذا المقطع.",translate_media_source:"المصدر",translate_media_pending:"جارٍ الرسم",translate_media_mermaid:"مخطط",translate_media_vega_lite:"رسم بياني",translate_media_map:"خريطة",translate_media:"معاينة",translate_image_unavailable:"الصورة غير متاحة",translate_image_unavailable_alt:"الصورة غير متاحة: {{alt}}",translate_image:"صورة",translate_send:"إرسال",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 d0={translate_history:"History",translate_back:"Back",translate_greeting:"What can I help you with today?",translate_n_conversations:"{{count}} conversations",translate_one_conversation:"1 conversation",translate_no_threads_yet:"No threads yet",translate_start_a_new_conversation:"Start a new conversation",translate_untitled:"Untitled",translate_new_chat:"New Chat",translate_normal:"Normal",translate_debug:"Debug",translate_type_a_message:"Type a message...",translate_completed:"Completed",translate_attach_files:"Attach files",translate_drop_files_here:"Drop your files here...",translate_remove_attachment:"Remove attachment",translate_attachment_rejected:"This file cannot be attached",translate_attachment_caption:"Please take a look at the attached files.",translate_download:"Download",translate_tool_status_0:"Fetching data...",translate_tool_status_1:"Analyzing information...",translate_tool_status_2:"Processing request...",translate_tool_status_3:"Gathering results...",translate_tool_status_4:"Preparing response...",translate_tool_status_5:"Looking things up...",translate_tool_status_6:"Checking records...",translate_tool_status_7:"Reviewing details...",translate_tool_status_8:"Running calculations...",translate_tool_status_9:"Pulling information...",translate_tool_done_0:"Data fetched successfully",translate_tool_done_1:"Analysis completed successfully",translate_tool_done_2:"Request processed successfully",translate_tool_done_3:"Results gathered successfully",translate_tool_done_4:"Response prepared successfully",translate_tool_done_5:"Lookup completed successfully",translate_tool_done_6:"Records checked successfully",translate_tool_done_7:"Review completed successfully",translate_tool_done_8:"Calculations completed successfully",translate_tool_done_9:"Information retrieved successfully",translate_rows_read:"{{count}} rows",translate_one_more_step:"and 1 more step",translate_n_more_steps:"and {{count}} more steps",translate_tool_error:"Something went wrong",translate_attachment_status:"Reading the attached file...",translate_attachment_done:"Finished reading the file",translate_graph_0:"Exploring connections...",translate_graph_1:"Mapping out the links...",translate_graph_2:"Discovering relationships...",translate_graph_3:"Tracing the connections...",translate_graph_4:"Navigating the knowledge...",translate_graph_5:"Uncovering insights...",translate_graph_6:"Connecting the dots...",translate_graph_7:"Following the trail...",translate_graph_8:"Piecing things together...",translate_graph_9:"Building the picture...",translate_code_0:"Running the numbers...",translate_code_1:"Working through the data...",translate_code_2:"Processing your request...",translate_code_3:"Crunching the figures...",translate_code_4:"Putting it all together...",translate_code_5:"Analyzing the results...",translate_code_6:"Working behind the scenes...",translate_code_7:"Sorting through the details...",translate_code_8:"Preparing your answer...",translate_code_9:"Almost ready...",translate_reasoning_0:"Thinking it through...",translate_reasoning_1:"Considering the options...",translate_reasoning_2:"Weighing the possibilities...",translate_reasoning_3:"Reflecting on this...",translate_reasoning_4:"Working it out...",translate_reasoning_5:"Putting thoughts together...",translate_reasoning_6:"Mulling it over...",translate_reasoning_7:"Finding the best approach...",translate_reasoning_8:"Organizing my thoughts...",translate_reasoning_9:"Almost there...",translate_running:"Running",translate_aborted:"Aborted",translate_input:"Input",translate_output:"Output",translate_calling:"Calling",translate_input_ready:"Input ready",translate_needs_approval:"Needs approval",translate_approved:"Approved",translate_responded:"Responded",translate_declined:"Declined",translate_approve:"Approve",translate_deny:"Deny",translate_error:"Error",translate_approval_requested:"Approval requested",translate_approval_response:"Approval response",translate_waiting_for_approval:"Waiting for approval to execute this tool.",translate_tool_approved:"Approved.",translate_tool_response_received:"Response received.",translate_tokens:"tokens",translate_fresh:"Fresh",translate_cache_read:"Cache read",translate_cache_write:"Cache write",translate_n_percent_cached:"{{percent}}% cached",translate_text:"Text",translate_reasoning:"Reasoning",translate_read:"Read",translate_write:"Write",translate_total:"Total",translate_request:"Request",translate_response:"Response",translate_step_n:"Step {{number}}",translate_inspect_llm_requests:"Inspect LLM requests",translate_loading:"loading…",translate_no_llm_requests:"No LLM requests recorded for this message.",translate_unhandled_type:"Unhandled type:",translate_client_tool_title:"Complete this step to continue",translate_client_tool_loading:"Preparing a secure step...",translate_client_tool_failed:"This step could not be loaded",translate_client_tool_retry:"Try again",translate_client_tool_cancel:"Cancel",translate_location_hint:"Tap the map to drop a pin",translate_location_locate:"Use my location",translate_location_locating:"Finding your location",translate_location_locate_failed:"Your location is not available",translate_location_map_failed:"The map could not be loaded",translate_location_send_failed:"Could not send, try again",translate_location_skip:"Not now",translate_location_send:"Send",translate_location_shared:"Location shared",translate_location_not_shared:"Location not shared",translate_trigger_fired:"Triggered by",translate_trigger_payload:"Payload",translate_messages_disabled:"This agent only runs from its triggers.",translate_streaming:"Streaming",translate_done:"Done",translate_no_reasoning:"No reasoning provided.",translate_copy:"Copy to clipboard",translate_copied:"Copied",translate_media_pending_mermaid:"Drawing diagram",translate_media_pending_vega_lite:"Drawing chart",translate_media_pending_map:"Drawing map",translate_media_cut_off:"This block was cut off before it finished.",translate_media_failed:"Could not render this block.",translate_media_source:"Source",translate_media_pending:"Drawing",translate_media_mermaid:"Diagram",translate_media_vega_lite:"Chart",translate_media_map:"Map",translate_media:"Preview",translate_image_unavailable:"Image unavailable",translate_image_unavailable_alt:"Image unavailable: {{alt}}",translate_image:"Image",translate_send:"Send",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 W5={en:d0,ar:p0};function L1(_){return _&&D1.includes(_)?_:D1[0]}function G_(_,$,Y){let Q=W5[_][$];if(!Y)return Q;return Q.replace(/\{\{\s*(\w+)\s*\}\}/g,(X,Z)=>(Z in Y)?String(Y[Z]):X)}function C_(_,$,Y){return _===1?$:Y}function O1(_,$,Y){let Q=_!==void 0&&_.messages!==!1;return{greeting:H_(_?.greeting,$)||G_($,"translate_greeting"),suggestions:Q&&H_(_.suggestions,$)||[],send:(X)=>{if(Q)Y(X)}}}var D5=["completed","cancelled","failed"],r_="requestLocation";function l0(_,$,Y){if($!==Y)return null;if(typeof _!=="object"||_===null)return null;let Q=_;if(Q.type!=="cortex:client-tool")return null;let X=D5.find((G)=>G===Q.status);if(!X)return null;let Z=Q.reference;return{type:"cortex:client-tool",status:X,...typeof Z==="string"?{reference:Z}:{},...Q.result!==void 0?{result:Q.result}:{}}}var H5=new Set(["complete","error"]);function f(_){return H5.has(_)}function __(_){return(B5(_)?.parts??[]).filter((Y)=>Y.type==="tool-call"&&!f(Y.state))}function w_(_){let $=_.at(-1);if($?.role!=="assistant")return;let Y=$.parts.at(-1),Q=Y?.type==="tool-call"||Y?.type==="tool-result",X=$.parts.every((Z)=>Z.type!=="tool-call"||f(Z.state));return Q&&X?void 0:$}function B5(_){for(let $=_.length-1;$>=0;$-=1){let Y=_[$];if(Y?.role==="assistant")return Y}return}var q5={complete:"success",error:"error","approval-requested":"approval","approval-responded":"approval","awaiting-input":"pending","input-streaming":"pending","input-complete":"pending"},F5={"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 P1(_){let{state:$,approval:Y}=_;return{modifier:q5[$],labelKey:Y?.approved===!1?"translate_declined":$==="approval-responded"&&Y?.approved?"translate_approved":F5[$],pulse:$==="awaiting-input"||$==="input-streaming"?"default":$==="approval-requested"?"violet":void 0}}function M1(_){let $=_.output;if($===void 0||$===null)return"";if(typeof $==="string")return $;return JSON.stringify($,null,2)}var n0={code:"javascript",query:"cypher"};function A1(_){let $=_&&typeof _==="object"?_:null,Y=$?Object.entries(n0).flatMap(([X,Z])=>{let G=$[X];return typeof G==="string"?[{key:X,lang:Z,value:G.replace(/\\n/g,`
2
+ `)}]:[]}):[],Q=_;if($){let X=Object.fromEntries(Object.entries($).filter(([Z])=>!Object.hasOwn(n0,Z)));Q=Object.keys(X).length>0?X:null}return{codeSnippets:Y,remainingInput:Q,remainingInputText:Q?JSON.stringify(Q,null,2):""}}var r0=10,U5={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function L5(_){let $=0;for(let Y=0;Y<_.length;Y++)$=$*31+_.charCodeAt(Y)|0;return Math.abs($)%r0}function O5(_){if(!x0.some((Q)=>Q===_.name))return;let $=_.input;if(!$||typeof $!=="object"||!("status"in $))return;let Y=$.status;return typeof Y==="string"&&Y.trim()?Y.trim():void 0}function P5(_){let $=_.output;if(typeof $==="string")try{$=JSON.parse($)}catch{return!1}return!!$&&typeof $==="object"&&"error"in $&&$.error===!0}function M5(_){let $=_.output;if(!$||typeof $!=="object"||!("rowCount"in $))return;return typeof $.rowCount==="number"?$.rowCount:void 0}function A5(_,$,Y){if(Y)return"translate_declined";if($==="error")return"translate_tool_error";if($==="approval")return"translate_needs_approval";let Q=_.name==="readAttachment"?"attachment":"tool",X=Q==="tool"?`_${L5(_.id)}`:"";return`translate_${Q}_${$==="complete"?"done":"status"}${X}`}function i(_){let $=_.approval?.approved===!1,Q=$||_.state==="complete"&&P5(_)?"error":U5[_.state]??"processing";return{state:Q,active:Q==="starting"||Q==="processing",gated:_.approval!==void 0||_.state==="approval-requested",titleKey:A5(_,Q,$),statement:O5(_),rowCount:Q==="complete"?M5(_):void 0}}function E5(_,$){let Y=_.metadata;if(!Y||typeof Y!=="object"||!("cortex"in Y))return;return Y.cortex?.approval?.[$]||void 0}function E1(_,$){let Y=_.approval?.approved,{state:Q}=i(_),X=Y===void 0?_.state==="approval-requested"?"pending":"cancelled":!Y?"declined":Q==="error"?"failed":"approved";return{sentence:E5(_,$)??G_($,"translate_approval_action",{tool:R5(_.name)}),decision:X,decisionKey:k5[X]}}var k5={pending:void 0,approved:"translate_approved",declined:"translate_declined",failed:"translate_approved_failed",cancelled:"translate_approval_cancelled"};function R5(_){let $=_.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return $.charAt(0).toUpperCase()+$.slice(1)}function k1(_){return Array.from({length:r0},($,Y)=>`translate_${_}_${Y}`)}function B_(_,$){return _.filter((Y,Q)=>{if(Y.type==="tool-result")return!1;if($.debugMode)return!0;if(Y.type==="text"&&!Y.content.trim())return!1;let X=Q===_.length-1;return Y.type!=="thinking"||$.isStreaming&&X})}function R1(_){return _.filter(($)=>$.type==="text").map(($)=>$.content).join(`
3
3
 
4
- `)}function H1(_,$){if($&&_.name in $)return!1;return _.name!==f_||!v(_.state)}function I0(_,$){if(_.type!=="tool-call")return!0;return!v(_.state)&&!_.approval&&$.foldable(_)}function B1(_,$){let X=O_(_);if(!X)return;let Y=J_(X.parts,{debugMode:!1,isStreaming:!0}),Q=Y.at(-1);if(Q&&I0(Q,$))return Q;return Y.filter((N)=>N.type==="tool-call"&&I0(N,$)).at(-1)}function F1(){let _=new Map;return($,X)=>{let Y=new Map;for(let[Q,N]of a2($,X)){let Z=_.get(Q);Y.set(Q,Z&&s2(Z,N)?Z:N)}return _=Y,Y}}function a2(_,$){let X=new Map;if($.debugMode)return X;let Q=$.agentWorking||a(_).length>0?t2(_):_,N=[];function Z(){let G=N[0]?.part.id;if(N.length>1&&G&&!$.opened.has(G))for(let[J,{messageId:z,part:V}]of N.entries()){let W=X.get(z)??new Map;X.set(z,W);let U=J===N.length-1;W.set(V,U?{kind:"more",count:N.length-1,runId:G}:{kind:"hidden"})}N=[]}for(let G of Q){if(G.role!=="assistant"){Z();continue}let J=J_(G.parts,{debugMode:!1,isStreaming:!1});for(let z of J)if(z.type==="tool-call"&&v(z.state)&&$.foldable(z))N.push({messageId:G.id,part:z});else Z()}return Z(),X}function t2(_){let $=_.map((X)=>X.role).lastIndexOf("user");return $<0?[]:_.slice(0,$)}function s2(_,$){if(_.size!==$.size)return!1;for(let[X,Y]of _){let Q=$.get(X);if(!Q||Q.kind!==Y.kind)return!1;if(Y.kind==="more"&&Q.kind==="more"){if(Y.count!==Q.count||Y.runId!==Q.runId)return!1}}return!0}import{EventType as S0}from"@tanstack/ai";import{fetchServerSentEvents as C0}from"@tanstack/ai-client";function e2(_){for(let $=_.length-1;$>=0;$-=1){let X=_[$],Y="parts"in X&&X.parts.some((Q)=>Q.type==="tool-result"||Q.type==="tool-call"&&Q.state==="approval-responded");if(X.role==="user"||Y)return _.slice($,$+1)}return _.slice(-1)}function _5(_){if(_.state==="approval-responded"){let $=_.approval?.approved;if($===void 0)return null;return{toolCallId:_.id,output:null,state:$?"approved":"denied"}}if(!v(_.state))return null;return{toolCallId:_.id,output:_.output??null,state:_.state==="error"?"error":"complete"}}function $5(_){let[$]=_;if(!$||$.role!=="assistant"||!("parts"in $))return null;let X=$.parts.flatMap((Y)=>{let Q=Y.type==="tool-call"?_5(Y):null;return Q?[Q]:[]});return X.length>0?X:null}async function*b0(_,$,X){for await(let Y of _){if(Y.type!==S0.MESSAGES_SNAPSHOT){yield Y;continue}let Q=$.localMessages(),N=Q.findIndex((G)=>G.id===X),Z=N===-1?[]:Q.slice(N+1).filter((G)=>G.role==="user");$.onTranscriptCarried?.(Y.timestamp??Date.now()),yield{...Y,messages:[...Y.messages,...Z]}}}function q1(_){let{api:$,thread:X}=_,Y=async()=>({headers:await $.resolveHeaders()}),Q=C0(()=>$.resolveUrl("/chat"),Y),N=function(J,z,V,W){let U=e2(J),B=$5(U),F=B?Q.connect([],{...z,[k0]:B},V,W):Q.connect(U,z,V,W);return b0(F,_,J.at(-1)?.id)},Z=C0(()=>$.resolveUrl(`/chat/${X.id}/stream`),Y),G=[];return{connect:N,async*joinRun(J,z){yield{type:S0.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:G},yield*b0(Z.joinRun(J,z),_,G.at(-1)?.id)},hydrate:async()=>{let J=await X5(_);return G=J.messages,J}}}async function X5(_){let{api:$,thread:X,mode:Y}=_,Q=X.isRunning?{runId:X.id}:null;if(Y==="skip")return{messages:[],activeRun:Q,interrupts:null};if(Y==="load")_.setLoadingMessages?.(!0);try{let Z=(await $.listMessages(X.id)).map(Q1);return _.onHydrated?.(Z),{messages:Z,activeRun:Q,interrupts:null}}finally{_.setLoadingMessages?.(!1)}}async function U1(_){if(_.isStale?.()||_.isStreaming())return;try{let $=await _.api.listMessages(_.threadId);if(_.isStale?.()||_.isStreaming())return;let X=$.map(Q1);return _.setMessages(X),X}catch{return}}function M_(){if(typeof crypto.randomUUID==="function")return crypto.randomUUID();let _=crypto.getRandomValues(new Uint8Array(16));_[6]=_[6]&15|64,_[8]=_[8]&63|128;let $=Array.from(_,(X)=>X.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}function L1(_){let{api:$}=_,X=new Set,Y=new Set,Q=[],N=[];function Z(){return Q}function G(D){return X.add(D),()=>{X.delete(D)}}function J(D){Q=D;for(let H of X)H()}function z(D,H){J(Q.map((K)=>K.localId===D?{...K,...H}:K))}function V(D){if(Y.delete(D))return;z(D,{status:"error"})}function W(D){let H=[];for(let K of D){let M=M0(K.type,K.size)!=="ok"||Q.filter((R)=>R.status!=="error").length>=P0,k=M_();if(J([...Q,{localId:k,filename:K.name,status:M?"error":"uploading"}]),!M)H.push({localId:k,file:K})}if(!H.length)return;_.ensureThread().then((K)=>{for(let{localId:M,file:k}of H){if(Y.delete(M))continue;z(M,{threadId:K}),$.uploadAttachment(K,k).then((R)=>{if(Y.delete(M)){$.deleteAttachment(R.id).catch(()=>{});return}z(M,{status:"ready",attachmentId:R.id,summary:R})},()=>V(M))}},()=>{for(let{localId:K}of H)V(K)})}function U(D){let H=Q.find((K)=>K.localId===D);if(!H)return;if(H.status==="uploading"){Y.add(D),J(Q.filter((K)=>K.localId!==D));return}if(H.attachmentId){z(D,{status:"deleting"}),$.deleteAttachment(H.attachmentId).then(()=>J(Q.filter((K)=>K.localId!==D)),()=>z(D,{status:"error"}));return}J(Q.filter((K)=>K.localId!==D))}function B(D){let H=[];for(let K of Q){if(K.threadId!==void 0&&K.threadId!==D){H.push(K);continue}if(K.status==="uploading")Y.add(K.localId);else if(K.status==="ready"&&K.threadId===D&&K.attachmentId)$.deleteAttachment(K.attachmentId).catch(()=>{})}J(H)}function F(){let D=Q.flatMap((H)=>H.status==="ready"&&H.summary?[{...H,status:"ready",summary:H.summary}]:[]);return J(Q.filter((H)=>H.status!=="ready")),N=D,D}function O(D){let H=N;if(N=[],H.some((K)=>K.threadId!==D))return;J([...H.map((K)=>({...K,status:"error"})),...Q])}function P(){N=[]}return{getState:Z,subscribe:G,accept:W,remove:U,clear:B,consumeReady:F,restoreConsumed:O,discardConsumed:P}}function O1(_){return{uploading:_.some(($)=>$.status==="uploading"),busy:_.some(($)=>$.status==="uploading"||$.status==="deleting"),hasReady:_.some(($)=>$.status==="ready")}}function P1(_,$,X){try{return new URL(_).origin===$&&!X?"allow-scripts allow-forms allow-popups":"allow-scripts allow-forms allow-popups allow-same-origin"}catch{return"allow-scripts allow-forms allow-popups"}}function M1(_,$,X){try{return X===!0&&new URL(_).origin===$}catch{return!1}}function k1(_,$){try{return _.contentWindow?.location.origin===$}catch{return!1}}function A1(_){let $=!1,X=!1,Y,Q;function N(J){if(!$)_.onState(J)}function Z(){if($)return;X=!1,N({phase:"error"})}function G(J){if($||X)return;X=!0,N({phase:"settling"});try{let z=_.submit(J);if(z instanceof Promise)z.catch(Z)}catch{Z()}}return{async start(){N({phase:"initiating"});try{let J=await _.initiate();if(!J.embed){N({phase:"unavailable"});return}if(!/^https?:$/.test(new URL(J.embedUrl).protocol)){N({phase:"error"});return}Y=J.embedOrigin,N({phase:"embedded",embedUrl:J.embedUrl,surface:J.surface,embedOrigin:J.embedOrigin})}catch(J){let z=J instanceof Error?J.message:"";N({phase:/HTTP 404/.test(z)?"unavailable":"error"})}},setSource(J){if(J!==null&&J!==void 0)Q=J},handleMessage(J){if(!Y)return;if(Q===void 0||J.source!==Q)return;let z=R0(J.data,J.origin,Y);if(!z)return;G({status:z.status,reference:z.reference,result:z.result})},cancel(){G({status:"cancelled"})},terminate(){if($||X)return;Y=void 0,Q=void 0,N({phase:"error"})},dispose(){$=!0}}}function E1(_,$,X){let Y=_.interrupts.find((Q)=>Q.id===$);if(!Y||!("resolveInterrupt"in Y))return _.addToolApprovalResponse({id:$,approved:X});return Y.resolveInterrupt({approved:X}),Promise.resolve()}async function k_(_,$){let X=await import("leaflet"),Y=!$.interactive,Q=X.map(_,{center:$.center,zoom:$.zoom,zoomControl:!Y,dragging:!Y,scrollWheelZoom:!Y,doubleClickZoom:!Y,touchZoom:!Y,boxZoom:!Y,keyboard:!Y});X.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(Q);let N=new ResizeObserver(()=>Q.invalidateSize());return N.observe(_),{leaflet:X,map:Q,dispose(){N.disconnect(),Q.remove()}}}var j_={position:void 0,locating:!1,locateFailed:!1,mapFailed:!1,submitting:!1,deliveryFailed:!1},Y5={center:{lat:20,lng:0},zoom:2},Q5=13,v0=16,N5=1e4;function R1(_,$){let X=j_,Y=!1,Q=!1,N,Z,G,J=0;function z(B){if(X={...X,...B},!Y)$.onState(X)}function V(){let B=X.position;if(!N||!B)return;let{leaflet:F,map:O}=N;if(Z)Z.setLatLng(B);else{let P=F.marker(B,{draggable:!X.submitting}).addTo(O);P.on("dragend",()=>{let{lat:D,lng:H}=P.getLatLng();W({lat:D,lng:T0(H)})}),Z=P}G?.remove(),G=B.accuracy?F.circle(B,{radius:B.accuracy}).addTo(O):void 0}function W(B){if(X.submitting)return;J+=1,z({position:B,locating:!1,locateFailed:!1}),V()}function U(B){if(Y||Q)return;Q=!0,J+=1,Z?.dragging?.disable(),z({submitting:!0,locating:!1,deliveryFailed:!1});let F=()=>{Q=!1,Z?.dragging?.enable(),z({submitting:!1,deliveryFailed:!0})};try{let O=$.submit(B);if(O instanceof Promise)O.catch(F)}catch{F()}}return{async start(){let B=$.center?{center:$.center,zoom:Q5}:Y5,F;try{F=await k_(_,{...B,interactive:!0})}catch{z({mapFailed:!0});return}if(Y){F.dispose();return}N=F,F.map.on("click",(O)=>W({lat:O.latlng.lat,lng:T0(O.latlng.lng)})),V()},locate(){if(X.locating||X.submitting)return;if(!navigator.geolocation){z({locateFailed:!0});return}J+=1;let B=J;z({locating:!0,locateFailed:!1}),navigator.geolocation.getCurrentPosition(({coords:F})=>{if(Y||B!==J)return;let O={lat:F.latitude,lng:F.longitude,accuracy:Math.round(F.accuracy)};W(O),N?.map.setView(O,v0)},()=>{if(B===J)z({locating:!1,locateFailed:!0})},{enableHighAccuracy:!0,timeout:N5})},confirm(){if(X.position)U({status:"completed",result:X.position})},cancel(){U({status:"cancelled"})},dispose(){Y=!0,N?.dispose()}}}function y1(_,$,X){let Y=!1,Q;return k_(_,{center:$,zoom:v0,interactive:!1}).then((N)=>{if(Y){N.dispose();return}Q=N.dispose,N.leaflet.marker($).addTo(N.map)},()=>{if(!Y)X()}),()=>{Y=!0,Q?.()}}function T0(_){if(_>=-180&&_<=180)return _;return((_+180)%360+360)%360-180}function f0(_){if(!_||typeof _!=="object")return!1;let{lat:$,lng:X}=_;return typeof $==="number"&&typeof X==="number"&&Math.abs($)<=90&&Math.abs(X)<=180}function I1(_){let $=_&&typeof _==="object"?_.center:void 0;return f0($)?$:void 0}function w1(_){if(!_||typeof _!=="object")return;let{status:$,result:X}=_;if($!=="completed"||!f0(X))return;let{accuracy:Y}=X;return{...X,...typeof Y==="number"?{accuracy:Y}:{}}}function g_(_){let $=`${_.lat.toFixed(4)}, ${_.lng.toFixed(4)}`;return _.accuracy?`${$} ±${_.accuracy} m`:$}function C1(_){if(_.locating)return{key:"translate_location_locating",failed:!1};if(_.deliveryFailed)return{key:"translate_location_send_failed",failed:!0};if(_.locateFailed)return{key:"translate_location_locate_failed",failed:!0};if(_.mapFailed)return{key:"translate_location_map_failed",failed:!0};return{key:"translate_location_hint",failed:!1}}function b1(_){return Math.min(1000*2**(_-1),30000)}var Z5=1e4;function S1(_){let $,X,Y=0,Q=!1;function N(){let{wsUrl:G,transport:J}=_.getConfig();if(G===!1)return;let z=G5(G,J.baseUrl);Z1(J).then((V)=>{if(Q)return;$=new WebSocket(J5(z,V)),$.addEventListener("open",()=>{let W=$;setTimeout(()=>{if($===W&&!Q)Y=0},Z5),_.onOpen?.()}),$.addEventListener("message",(W)=>{let U=W.data;if(typeof U!=="string")return;let B;try{B=JSON.parse(U)}catch{return}_.onEvent(B)}),$.addEventListener("close",Z)}).catch(Z)}function Z(){if(Q||X)return;Y+=1,X=setTimeout(()=>{X=void 0,N()},b1(Y))}return N(),{close(){Q=!0,clearTimeout(X),$?.close()}}}function G5(_,$){if(_)return _;let X=typeof $==="string"?$:$(),Y=new URL(X,window.location.origin);return Y.protocol=Y.protocol==="https:"?"wss:":"ws:",Y.pathname=Y.pathname.replace(/\/$/,"")+"/ws",Y.toString()}function J5(_,$){let X=$.Authorization??$.authorization;if(!X?.startsWith("Bearer "))return _;let Y=new URL(_,window.location.origin);if(Y.searchParams.has("token"))return Y.toString();return Y.searchParams.set("token",X.slice(7)),Y.toString()}function T1(_,$,X=b1){let Y=!1,Q,N=0;function Z(){_.getCapabilities().then((G)=>{if(!Y)$(G)},()=>{if(Y)return;N+=1,Q=setTimeout(Z,X(N))})}return Z(),function(){Y=!0,clearTimeout(Q)}}function m_(_){return[..._].sort(($,X)=>{let Y=Date.parse(X.updatedAt)-Date.parse($.updatedAt);if(Y!==0)return Y;return Date.parse(X.createdAt)-Date.parse($.createdAt)})}function A_(_,$){let X=[..._],Y=X.findIndex((Q)=>Q.id===$.id);if(Y===-1)X.push($);else X[Y]={...X[Y],...$};return m_(X)}function x_(_,$){return _.filter((X)=>X.id!==$)}function v1(_,$){switch($.type){case"thread:deleted":return x_(_,$.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return A_(_,$.payload.thread);default:return _}}import{marked as z5}from"marked";import V5 from"dompurify";function f1(_,$=[]){if(!_)return"";let X=z5.parse(_,{async:!1});if(X=X.replace(/<table>/g,'<div style="overflow-x:auto"><table style="width:auto">').replace(/<\/table>/g,"</table></div>").replace(/<(t[hd])([\s>])/g,'<$1 style="padding:0.5rem 1rem"$2'),$.length)X=K5(X,$);return V5.sanitize(X,{FORBID_TAGS:["img","picture","source"]})}function K5(_,$){let X=document.createElement("template");X.innerHTML=_;let Y=[...$].sort((Z,G)=>Z.length-G.length),Q=Y[Y.length-1]?.length??0,N=0;for(let Z of W5(X.content)){if(N>=Q)break;Z.replaceWith(...D5(Z.data,N,Y)),N+=Z.data.length}return X.innerHTML}function W5(_){let $=document.createTreeWalker(_,4),X=[];for(let Y=$.nextNode();Y;Y=$.nextNode())if(Y.data.trim())X.push(Y);return X.reverse()}function D5(_,$,X){let Y=[],Q=_.length;for(let N of X){if(N.length<=$)continue;if(Q<=0)break;let Z=Math.min(Q,N.length-$);if(Z<Q&&/[\uDC00-\uDFFF]/.test(_[Q-Z]))Z+=1;let G=document.createElement("span");G.className="cortex-stream-fade",G.style.animationDelay=`-${N.age}ms`,G.textContent=_.slice(Q-Z,Q),Y.unshift(G),Q-=Z,$+=Z}if(Q>0)Y.unshift(document.createTextNode(_.slice(0,Q)));return Y}function j0(){let _=null;return($)=>{let X=/^ {0,3}(`{3,}|~{3,})(.*)$/.exec($),Y=X?.[1],Q=X?.[2]??"";if(Y){let N=Y.charAt(0);if(_){if(N===_.marker&&Y.length>=_.length&&Q.trim()==="")return _=null,"close";return"inside"}if(N==="`"&&Q.includes("`"))return"outside";return _={marker:N,length:Y.length},"open"}return _?"inside":"outside"}}var H5=/^\s*!\[([^\]]*)\]\(attachment#([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)\s*$/i,B5=/^\s*(`{3,}|~{3,})/;function j1(_,$){let X=[],Y=[],Q=null;function N(){if(Y.length)X.push({kind:"markdown",text:Y.join(`
5
- `)});Y=[]}function Z(z){if(Q)X.push({kind:"media",...Q,source:Q.source.join(`
6
- `),closed:z});Q=null}let G=j0(),J=_.split(`
7
- `);for(let[z,V]of J.entries()){let W=G(V);if(Q){if(W==="close")Z(!0);else Q.source.push(V);continue}if(W==="open"&&z===J.length-1)break;let U=F5(V,W,$);if(!U){Y.push(V);continue}if(N(),U.kind==="media")Q={language:U.language,source:[]};else X.push(U)}return Z(!1),N(),X}function F5(_,$,X){if($==="open"){let Q=_.replace(B5,"").trim().split(/\s+/)[0],N=X.find((Z)=>Z===Q);return N?{kind:"media",language:N}:void 0}let Y=$==="outside"?H5.exec(_):null;return Y?{kind:"attachment",alt:Y[1]??"",id:(Y[2]??"").toLowerCase()}:void 0}var x0=new Set(["flatten","fold","density","impute","regression","loess","quantile","sample"]),q5=`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: ${[...x0,"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 h0(_,$){if(_==="url")return"Charts may only use inline data and no URLs.";if(_==="sequence"||_==="graticule")return"Charts may only use inline data.";if(x0.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(U5.has(_)&&typeof $==="string"&&!L5($))return"Charts may only use simple expressions over datum.";if(_==="usermeta")return"Charts may not carry usermeta.";if(typeof $==="string"&&h_($))return"Charts may not reference URLs.";if((_==="width"||_==="height")&&O5($)>4000)return"Charts may be at most 4000 pixels wide or tall.";return}var U5=new Set(["calculate","filter","test","signal","labelExpr"]),g0=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 L5(_){if(_.length>500||/[\\`]/.test(_))return!1;let $=_.replace(/'[^']*'|"[^"]*"/g,'""');for(let[,Y]of $.matchAll(/([A-Za-z_$][\w$]*)\s*\(/g))if(!g0.has(Y??""))return!1;let X=$.replace(/(datum|parent)(\s*\.[\w$]+|\s*\[\s*""\s*\])+|\b\d[\w.]*/g,"").matchAll(/[A-Za-z_$][\w$]*/g);for(let[Y]of X)if(!g0.has(Y)&&!["true","false","null"].includes(Y))return!1;return!0}function O5(_){if(typeof _==="number")return _;let $=_?.step;return typeof $==="number"?$:0}function m0(_,$){let X=_?.features,Y=Array.isArray(_)?_.length:Array.isArray(X)?X.length:-1;if(Y<0)return h0($,_)??m1(g1(_,$),E_);return Y>200?"Charts may hold at most 200 rows.":void 0}function E_(_,$=""){if($==="values")return m0(_,$);if($==="datasets")return m1(g1(_),m0);return h0($,_)??m1(g1(_,$),(X,Y)=>E_(X,Y))}function g1(_,$=""){if(Array.isArray(_))return _.map((X)=>[$,X]);return _&&typeof _==="object"?Object.entries(_):[]}function m1(_,$){for(let[X,Y]of _){let Q=$(Y,X);if(Q)return Q}return}var c0=/url\(([^)]*)\)/gi,x1="src|image|image-set|-webkit-image-set|cross-fade|element",h1=new RegExp(String.raw`\b(url|${x1})\(`,"i"),P5=new RegExp(String.raw`\b(${x1})\(`,"i"),M5=new RegExp(String.raw`\b(${x1})\([^)]*\)`,"gi"),k5=/\\([0-9a-f]{1,6})\s?|\\(.)/gi;function A5(_){return _.replace(k5,($,X,Y)=>{if(!X)return Y??"";let Q=parseInt(X,16),N=Q===0||Q>=55296&&Q<=57343||Q>1114111;return String.fromCodePoint(N?65533:Q)})}function u0(_){return _.trim().replace(/^(['"])(.*)\1$/s,"$2").trim()}function h_(_){if(_.includes("\\")||P5.test(_))return!0;for(let[,$]of _.matchAll(c0))if(!u0($??"").startsWith("#"))return!0;return!1}function c1(_){return A5(_).replace(M5,"none").replace(c0,($,X)=>u0(X).startsWith("#")?$:"none")}var r0={async mermaid(_,$,{scheme:X}){let[{default:Y},{default:Q}]=await Promise.all([import("mermaid"),import("dompurify")]);if(h1.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 N=y5($);if(!R5.test(N))throw Error(`Unsupported diagram type: ${N}`);let Z=p0.then(async()=>{if(!l0)Y.initialize({startOnLoad:!1,securityLevel:"strict",htmlLabels:!1}),l0=!0;let z=`%%{init: {"theme": "${X==="dark"?"dark":"default"}"}}%%
8
- ${$}`;return await Y.parse(z),(await Y.render(`cortex-mermaid-${I5()}`,z,_)).svg});p0=Z.catch(()=>{return});let G=await Z,J=document.createElement("div");return J.innerHTML=Q.sanitize(G,{USE_PROFILES:{svg:!0,svgFilters:!0}}),n0(J),_.replaceChildren(...J.childNodes),()=>{_.innerHTML=""}},async "vega-lite"(_,$,{scheme:X}){let Y=JSON.parse($),Q=E_(Y);if(Q)throw Error(Q);let[{default:N},Z]=await Promise.all([import("vega-embed"),import("vega")]),G=()=>Promise.reject(Error("Charts may only use inline data.")),J=document.createElement("div"),z=await N(J,Y,{actions:!1,renderer:"svg",mode:"vega-lite",loader:{...Z.loader(),load:G,sanitize:G},ast:!0,...X==="dark"?{theme:"dark"}:{},config:{background:"transparent"}});return n0(J),_.replaceChildren(J),()=>z.finalize()},async map(_,$){let X=C5(JSON.parse($)),{leaflet:Y,map:Q,dispose:N}=await k_(_,{...X,interactive:!0});for(let Z of X.markers){let G=Y.marker(Z.position).addTo(Q);if(Z.label){let J=document.createElement("span");J.textContent=Z.label,G.bindTooltip(J)}}return N}},E5={mermaid:"translate_media_pending_mermaid","vega-lite":"translate_media_pending_vega_lite",map:"translate_media_pending_map"};function u1(_){return E5[_]??"translate_media_pending"}function p1(_){return Object.keys({...r0,..._})}function l1(_,$){let{language:X,source:Y,context:Q,overrides:N,onError:Z}=$,G=_.appendChild(document.createElement("div")),J=N?.[X]??r0[X],z,V=!1;return(J?J(G,Y,Q):Promise.reject(Error(`No renderer for ${X}.`))).then((U)=>{if(V)U();else z=U},(U)=>{if(!V)Z(U instanceof Error?U.message:String(U))}),()=>{V=!0,z?.(),G.remove()}}var R5=/^(flowchart|graph|sequenceDiagram|stateDiagram(-v2)?|erDiagram|gantt|pie|classDiagram|journey|timeline|mindmap)$/;function y5(_){let $=_.split(`
9
- `).find((X)=>/\S/.test(X)&&!/^\s*%%/.test(X));return/^\s*(\S+)/.exec($??"")?.[1]??""}var p0=Promise.resolve(),l0=!1,d0=0;function I5(){return d0+=1,d0}var w5=new Set(["image","use","feImage"]);function n0(_){for(let $ of[_,..._.querySelectorAll("*")]){for(let X of[...$.attributes])if((X.name==="href"||X.name==="xlink:href")&&w5.has($.tagName)&&!X.value.trim().startsWith("#")||h_(X.value))$.removeAttribute(X.name);if($.tagName==="style"&&$.textContent)$.textContent=c1($.textContent)}}function C5(_){if(!_||typeof _!=="object")throw Error("A map needs a JSON object.");let $=_,X=$.zoom??10;if(typeof X!=="number"||X<0||X>22)throw Error("zoom must be 0 to 22.");let Y=$.markers??[];if(!Array.isArray(Y))throw Error("markers must be a list.");return{center:i0($.center,"center"),zoom:X,markers:Y.map((Q,N)=>{let Z=Q??{},G=Z.label;return{position:i0(Z.position,`markers[${N}].position`),label:typeof G==="string"?G:void 0}})}}function i0(_,$){let X=Array.isArray(_)?_:[],[Y,Q]=X;if(typeof Y!=="number"||typeof Q!=="number"||Math.abs(Y)>90||Math.abs(Q)>180)throw Error(`${$} must be [latitude, longitude].`);return{lat:Y,lng:Q}}function d1(_,$){if(_!=="system")return $(_??"light"),()=>{};let X=window.matchMedia("(prefers-color-scheme: dark)"),Y=()=>$(X.matches?"dark":"light");return Y(),X.addEventListener("change",Y),()=>X.removeEventListener("change",Y)}import R_ from"highlight.js/lib/core";import b5 from"highlight.js/lib/languages/javascript";import S5 from"highlight.js/lib/languages/json";import T5 from"highlight.js/lib/languages/sql";var o0=!1;function v5(){if(o0)return;o0=!0,R_.registerLanguage("javascript",b5),R_.registerLanguage("json",S5),R_.registerLanguage("cypher",T5)}function n1(_,$){if(!_)return"";return v5(),R_.getLanguage($)?R_.highlight(_,{language:$}).value:f5(_)}function f5(_){return _.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var a0={translate_new:"جديد",translate_history:"السجل",translate_back:"رجوع",translate_greeting:"بماذا يمكنني مساعدتك اليوم؟",translate_n_conversations:"{{count}} محادثات",translate_one_conversation:"محادثة واحدة",translate_no_threads_yet:"لا توجد محادثات بعد",translate_start_a_new_conversation:"ابدأ محادثة جديدة",translate_untitled:"بدون عنوان",translate_new_chat:"محادثة جديدة",translate_normal:"عادي",translate_debug:"تصحيح",translate_type_a_message:"اكتب رسالة...",translate_completed:"مكتمل",translate_attach_files:"إرفاق ملفات",translate_drop_files_here:"أفلت ملفاتك هنا...",translate_remove_attachment:"إزالة المرفق",translate_attachment_rejected:"لا يمكن إرفاق هذا الملف",translate_attachment_caption:"من فضلك اطّلع على الملفات المرفقة.",translate_download:"تنزيل",translate_tool_status_0:"جارٍ جلب البيانات…",translate_tool_status_1:"جارٍ تحليل المعلومات…",translate_tool_status_2:"جارٍ معالجة الطلب…",translate_tool_status_3:"جارٍ تجميع النتائج…",translate_tool_status_4:"جارٍ تحضير الرد…",translate_tool_status_5:"جارٍ البحث…",translate_tool_status_6:"جارٍ فحص السجلات…",translate_tool_status_7:"جارٍ مراجعة التفاصيل…",translate_tool_status_8:"جارٍ إجراء الحسابات…",translate_tool_status_9:"جارٍ سحب المعلومات…",translate_tool_done_0:"تم جلب البيانات بنجاح",translate_tool_done_1:"تم التحليل بنجاح",translate_tool_done_2:"تمت معالجة الطلب بنجاح",translate_tool_done_3:"تم تجميع النتائج بنجاح",translate_tool_done_4:"تم تحضير الرد بنجاح",translate_tool_done_5:"تم البحث بنجاح",translate_tool_done_6:"تم فحص السجلات بنجاح",translate_tool_done_7:"تمت المراجعة بنجاح",translate_tool_done_8:"تمت الحسابات بنجاح",translate_tool_done_9:"تم استرجاع المعلومات بنجاح",translate_rows_read:"{{count}} صفوف",translate_one_more_step:"وخطوة أخرى",translate_n_more_steps:"و{{count}} خطوات أخرى",translate_tool_error:"حدث خطأ",translate_attachment_status:"جارٍ قراءة الملف المرفق…",translate_attachment_done:"تمت قراءة الملف المرفق",translate_graph_0:"جارٍ استكشاف الروابط...",translate_graph_1:"جارٍ رسم الخريطة...",translate_graph_2:"جارٍ اكتشاف العلاقات...",translate_graph_3:"جارٍ تتبع الروابط...",translate_graph_4:"جارٍ التنقل في المعرفة...",translate_graph_5:"جارٍ كشف الرؤى...",translate_graph_6:"جارٍ ربط النقاط...",translate_graph_7:"جارٍ تتبع المسار...",translate_graph_8:"جارٍ تجميع الأجزاء...",translate_graph_9:"جارٍ بناء الصورة...",translate_code_0:"جارٍ حساب الأرقام...",translate_code_1:"جارٍ معالجة البيانات...",translate_code_2:"جارٍ تنفيذ طلبك...",translate_code_3:"جارٍ تحليل الأرقام...",translate_code_4:"جارٍ تجميع كل شيء...",translate_code_5:"جارٍ تحليل النتائج...",translate_code_6:"جارٍ العمل خلف الكواليس...",translate_code_7:"جارٍ ترتيب التفاصيل...",translate_code_8:"جارٍ تحضير إجابتك...",translate_code_9:"أوشك على الانتهاء...",translate_reasoning_0:"جارٍ التفكير...",translate_reasoning_1:"جارٍ دراسة الخيارات...",translate_reasoning_2:"جارٍ تقييم الاحتمالات...",translate_reasoning_3:"جارٍ التأمل في هذا...",translate_reasoning_4:"جارٍ إيجاد الحل...",translate_reasoning_5:"جارٍ ترتيب الأفكار...",translate_reasoning_6:"جارٍ التمعن في الأمر...",translate_reasoning_7:"جارٍ إيجاد أفضل طريقة...",translate_reasoning_8:"جارٍ تنظيم أفكاري...",translate_reasoning_9:"أوشك على الانتهاء...",translate_running:"قيد التنفيذ",translate_aborted:"تم الإلغاء",translate_input:"المدخلات",translate_output:"المخرجات",translate_calling:"جارٍ الاستدعاء",translate_input_ready:"المدخلات جاهزة",translate_needs_approval:"بحاجة إلى موافقة",translate_approved:"تمت الموافقة",translate_responded:"تم الرد",translate_declined:"تم الرفض",translate_approve:"موافقة",translate_deny:"رفض",translate_approval_prompt:"يريد المساعد تنفيذ إجراء. هل تسمح بذلك؟",translate_error:"خطأ",translate_approval_requested:"طلب موافقة",translate_approval_response:"رد الموافقة",translate_waiting_for_approval:"في انتظار الموافقة لتنفيذ هذه الأداة.",translate_tool_approved:"تمت الموافقة.",translate_tool_response_received:"تم استلام الرد.",translate_tokens:"رمز",translate_fresh:"جديد",translate_cache_read:"قراءة من الذاكرة",translate_cache_write:"كتابة في الذاكرة",translate_n_percent_cached:"{{percent}}٪ مخزّن مؤقتًا",translate_text:"نص",translate_reasoning:"الاستنتاج",translate_read:"قراءة",translate_write:"كتابة",translate_total:"الإجمالي",translate_request:"الطلب",translate_response:"الرد",translate_step_n:"الخطوة {{number}}",translate_inspect_llm_requests:"فحص طلبات النموذج",translate_loading:"جارٍ التحميل…",translate_no_llm_requests:"لا توجد طلبات نموذج مسجّلة لهذه الرسالة.",translate_unhandled_type:"نوع غير مدعوم:",translate_client_tool_title:"أكمل هذه الخطوة للمتابعة",translate_client_tool_loading:"جارٍ تجهيز خطوة آمنة...",translate_client_tool_failed:"تعذّر تحميل هذه الخطوة",translate_client_tool_retry:"حاول مرة أخرى",translate_client_tool_cancel:"إلغاء",translate_location_hint:"انقر على الخريطة لتثبيت الدبوس",translate_location_locate:"استخدم موقعي",translate_location_locating:"جارٍ تحديد موقعك",translate_location_locate_failed:"موقعك غير متاح",translate_location_map_failed:"تعذّر تحميل الخريطة",translate_location_send_failed:"تعذّر الإرسال، حاول مرة أخرى",translate_location_skip:"ليس الآن",translate_location_send:"إرسال",translate_location_shared:"تمت مشاركة الموقع",translate_location_not_shared:"لم تتم مشاركة الموقع",translate_trigger_fired:"تم التشغيل بواسطة",translate_trigger_payload:"الحمولة",translate_messages_disabled:"يعمل هذا الوكيل من مشغّلاته فقط.",translate_streaming:"جارٍ البث",translate_done:"تم",translate_no_reasoning:"لا يوجد تفكير مسجّل.",translate_copy:"نسخ إلى الحافظة",translate_copied:"تم النسخ",translate_media_pending_mermaid:"جارٍ رسم المخطط",translate_media_pending_vega_lite:"جارٍ رسم الرسم البياني",translate_media_pending_map:"جارٍ رسم الخريطة",translate_media_cut_off:"انقطع هذا المقطع قبل اكتماله.",translate_media_failed:"تعذر عرض هذا المقطع.",translate_media_source:"المصدر",translate_media_pending:"جارٍ الرسم",translate_image_unavailable:"الصورة غير متاحة",translate_image_unavailable_alt:"الصورة غير متاحة: {{alt}}",translate_send:"إرسال"};var t0={translate_new:"New",translate_history:"History",translate_back:"Back",translate_greeting:"What can I help you with today?",translate_n_conversations:"{{count}} conversations",translate_one_conversation:"1 conversation",translate_no_threads_yet:"No threads yet",translate_start_a_new_conversation:"Start a new conversation",translate_untitled:"Untitled",translate_new_chat:"New Chat",translate_normal:"Normal",translate_debug:"Debug",translate_type_a_message:"Type a message...",translate_completed:"Completed",translate_attach_files:"Attach files",translate_drop_files_here:"Drop your files here...",translate_remove_attachment:"Remove attachment",translate_attachment_rejected:"This file cannot be attached",translate_attachment_caption:"Please take a look at the attached files.",translate_download:"Download",translate_tool_status_0:"Fetching data...",translate_tool_status_1:"Analyzing information...",translate_tool_status_2:"Processing request...",translate_tool_status_3:"Gathering results...",translate_tool_status_4:"Preparing response...",translate_tool_status_5:"Looking things up...",translate_tool_status_6:"Checking records...",translate_tool_status_7:"Reviewing details...",translate_tool_status_8:"Running calculations...",translate_tool_status_9:"Pulling information...",translate_tool_done_0:"Data fetched successfully",translate_tool_done_1:"Analysis completed successfully",translate_tool_done_2:"Request processed successfully",translate_tool_done_3:"Results gathered successfully",translate_tool_done_4:"Response prepared successfully",translate_tool_done_5:"Lookup completed successfully",translate_tool_done_6:"Records checked successfully",translate_tool_done_7:"Review completed successfully",translate_tool_done_8:"Calculations completed successfully",translate_tool_done_9:"Information retrieved successfully",translate_rows_read:"{{count}} rows",translate_one_more_step:"and 1 more step",translate_n_more_steps:"and {{count}} more steps",translate_tool_error:"Something went wrong",translate_attachment_status:"Reading the attached file...",translate_attachment_done:"Finished reading the file",translate_graph_0:"Exploring connections...",translate_graph_1:"Mapping out the links...",translate_graph_2:"Discovering relationships...",translate_graph_3:"Tracing the connections...",translate_graph_4:"Navigating the knowledge...",translate_graph_5:"Uncovering insights...",translate_graph_6:"Connecting the dots...",translate_graph_7:"Following the trail...",translate_graph_8:"Piecing things together...",translate_graph_9:"Building the picture...",translate_code_0:"Running the numbers...",translate_code_1:"Working through the data...",translate_code_2:"Processing your request...",translate_code_3:"Crunching the figures...",translate_code_4:"Putting it all together...",translate_code_5:"Analyzing the results...",translate_code_6:"Working behind the scenes...",translate_code_7:"Sorting through the details...",translate_code_8:"Preparing your answer...",translate_code_9:"Almost ready...",translate_reasoning_0:"Thinking it through...",translate_reasoning_1:"Considering the options...",translate_reasoning_2:"Weighing the possibilities...",translate_reasoning_3:"Reflecting on this...",translate_reasoning_4:"Working it out...",translate_reasoning_5:"Putting thoughts together...",translate_reasoning_6:"Mulling it over...",translate_reasoning_7:"Finding the best approach...",translate_reasoning_8:"Organizing my thoughts...",translate_reasoning_9:"Almost there...",translate_running:"Running",translate_aborted:"Aborted",translate_input:"Input",translate_output:"Output",translate_calling:"Calling",translate_input_ready:"Input ready",translate_needs_approval:"Needs approval",translate_approved:"Approved",translate_responded:"Responded",translate_declined:"Declined",translate_approve:"Approve",translate_deny:"Deny",translate_approval_prompt:"The assistant wants to take an action. Allow it?",translate_error:"Error",translate_approval_requested:"Approval requested",translate_approval_response:"Approval response",translate_waiting_for_approval:"Waiting for approval to execute this tool.",translate_tool_approved:"Approved.",translate_tool_response_received:"Response received.",translate_tokens:"tokens",translate_fresh:"Fresh",translate_cache_read:"Cache read",translate_cache_write:"Cache write",translate_n_percent_cached:"{{percent}}% cached",translate_text:"Text",translate_reasoning:"Reasoning",translate_read:"Read",translate_write:"Write",translate_total:"Total",translate_request:"Request",translate_response:"Response",translate_step_n:"Step {{number}}",translate_inspect_llm_requests:"Inspect LLM requests",translate_loading:"loading…",translate_no_llm_requests:"No LLM requests recorded for this message.",translate_unhandled_type:"Unhandled type:",translate_client_tool_title:"Complete this step to continue",translate_client_tool_loading:"Preparing a secure step...",translate_client_tool_failed:"This step could not be loaded",translate_client_tool_retry:"Try again",translate_client_tool_cancel:"Cancel",translate_location_hint:"Tap the map to drop a pin",translate_location_locate:"Use my location",translate_location_locating:"Finding your location",translate_location_locate_failed:"Your location is not available",translate_location_map_failed:"The map could not be loaded",translate_location_send_failed:"Could not send, try again",translate_location_skip:"Not now",translate_location_send:"Send",translate_location_shared:"Location shared",translate_location_not_shared:"Location not shared",translate_trigger_fired:"Triggered by",translate_trigger_payload:"Payload",translate_messages_disabled:"This agent only runs from its triggers.",translate_streaming:"Streaming",translate_done:"Done",translate_no_reasoning:"No reasoning provided.",translate_copy:"Copy to clipboard",translate_copied:"Copied",translate_media_pending_mermaid:"Drawing diagram",translate_media_pending_vega_lite:"Drawing chart",translate_media_pending_map:"Drawing map",translate_media_cut_off:"This block was cut off before it finished.",translate_media_failed:"Could not render this block.",translate_media_source:"Source",translate_media_pending:"Drawing",translate_image_unavailable:"Image unavailable",translate_image_unavailable_alt:"Image unavailable: {{alt}}",translate_send:"Send"};var m5={en:t0,ar:a0};function i1(_){return _&&X1.includes(_)?_:X1[0]}function r1(_,$,X){let Y=m5[_][$];if(!X)return Y;return Y.replace(/\{\{\s*(\w+)\s*\}\}/g,(Q,N)=>(N in X)?String(X[N]):Q)}function y_(_,$,X){return _===1?$:X}function z_(_){if(typeof _==="string"){let $=_.trim();if(!($.startsWith("{")&&$.endsWith("}")||$.startsWith("[")&&$.endsWith("]")))return _;try{return z_(JSON.parse($))}catch{return _}}if(Array.isArray(_))return _.map(($)=>z_($));if(_!==null&&typeof _==="object"){let $={};for(let[X,Y]of Object.entries(_))$[X]=z_(Y);return $}return _}function o1(_,$){if(Array.isArray(_)){let X=_;return{kind:"container",open:"[",close:"]",summary:s0(X.length,"item","items"),entries:X.map((Y,Q)=>({key:null,value:Y,path:`${$}[${Q}]`}))}}if(_!==null&&typeof _==="object"){let X=Object.entries(_);return{kind:"container",open:"{",close:"}",summary:s0(X.length,"property","properties"),entries:X.map(([Y,Q])=>({key:Y,value:Q,path:`${$}.${Y}`}))}}return{kind:"primitive",text:x5(_),className:h5(_)}}function s0(_,$,X){return`${_} ${_===1?$:X}`}function x5(_){if(_===null||_===void 0)return"null";if(typeof _==="string")return JSON.stringify(_);if(typeof _==="number"||typeof _==="boolean")return String(_);return JSON.stringify(_)??"null"}function h5(_){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 a1(_){if(!_)return null;try{return JSON.parse(_)}catch{return _}}function t1(_){if(!_)return"";try{return JSON.stringify(JSON.parse(_),null,2)}catch{return _}}function V_(_,$){if(_===void 0||typeof _==="string"||Array.isArray(_))return _;let X=_;return X[$]??X.en??Object.values(X)[0]}function l(_,$,X=Date.now()){let Y=new Date(_);if(Number.isNaN(Y.getTime()))return"";let Q=Y.toDateString()===new Date(X).toDateString();return new Intl.DateTimeFormat($,{...Q?{}:{dateStyle:"medium"},timeStyle:"short"}).format(Y)}function s1(_,$){let X=URL.createObjectURL(_),Y=document.createElement("a");Y.href=X,Y.download=$,Y.click(),URL.revokeObjectURL(X)}class t{onUpdate;fullText="";displayedLength=0;animationFrameId=null;isDone=!1;releases=[];static DRAIN_FRACTION=0.03;static MIN_CHARS_PER_FRAME=1;static DONE_DRAIN_FRACTION=0.1;static FADE_WINDOW_MS=500;constructor(_){this.onUpdate=_}seed(_){this.fullText=_,this.displayedLength=_.length,this.releases=[],this.onUpdate(_,[])}update(_,$){if(this.fullText=_,this.isDone=$,this.displayedLength=Math.min(this.displayedLength,this.fullText.length),this.releases=this.releases.filter((X)=>X.from<this.displayedLength),$&&this.displayedLength>=this.fullText.length){this.onUpdate(this.fullText,[]),this.stopAnimation();return}if(!this.animationFrameId)this.scheduleFrame()}destroy(){this.stopAnimation()}scheduleFrame(){this.animationFrameId=requestAnimationFrame((_)=>this.tick(_))}tick(_){let $=this.fullText.length-this.displayedLength;if($<=0){this.animationFrameId=null;return}let X=this.isDone?t.DONE_DRAIN_FRACTION:t.DRAIN_FRACTION,Y=Math.max(t.MIN_CHARS_PER_FRAME,Math.ceil($*X));if(this.releases=this.releases.filter((Q)=>_-Q.at<t.FADE_WINDOW_MS),this.releases.push({from:this.displayedLength,at:_}),this.displayedLength=Math.min(this.fullText.length,this.displayedLength+Y),this.onUpdate(this.fullText.substring(0,this.displayedLength),this.releases.map((Q)=>({length:this.displayedLength-Q.from,age:_-Q.at}))),this.displayedLength<this.fullText.length)this.scheduleFrame();else this.animationFrameId=null}stopAnimation(){if(this.animationFrameId)cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null}}var e1=new WeakMap;function _0(_,$){let X=_.closest(".cortex-widget__screen"),Y=X?.querySelector(".cortex-message-list");if(!X||!Y||!_.value.trim())return;let Q=getComputedStyle(_),N=_.getBoundingClientRect(),Z=(G)=>parseFloat(Q[`padding${G}`])+parseFloat(Q[`border${G}Width`]);e1.set(X,{text:$,textarea:_,from:new DOMRect(N.left+Z("Left"),N.top+Z("Top"),N.width-Z("Left")-Z("Right"),N.height-Z("Top")-Z("Bottom")),rtl:Q.direction==="rtl",scrollTop:Y.scrollTop})}function $0(_,$){let X=_.closest(".cortex-widget__screen"),Y=X?e1.get(X):void 0;if(!X||!Y)return;e1.delete(X);let Q=_.querySelectorAll(":scope > .cortex-message"),N=Q[Q.length-1]?.querySelector(".cortex-text-bubble--user"),Z=_.closest(".cortex-message-list");if(!N||!Z||Y.text!==$||!Y.textarea.isConnected)return;N.closest(".cortex-message-part")?.getAnimations().forEach((D)=>D.finish()),c_(Z);let G=N.getBoundingClientRect(),J=X.getBoundingClientRect(),z=getComputedStyle(N),V=parseFloat(z.paddingTop)+parseFloat(z.borderTopWidth),W=Y.rtl?parseFloat(z.paddingRight)+parseFloat(z.borderRightWidth):parseFloat(z.paddingLeft)+parseFloat(z.borderLeftWidth),U=Y.rtl?Y.from.right+W-G.width:Y.from.left-W,B=Z.scrollTop-Y.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 F=N.cloneNode(!0);F.classList.add("cortex-send-flight"),F.setAttribute("aria-hidden","true"),Object.assign(F.style,{left:`${G.left-J.left}px`,top:`${G.top-J.top}px`,width:`${G.width}px`}),F.style.setProperty("--cortex-fly-x",`${U-G.left}px`),F.style.setProperty("--cortex-fly-y",`${Y.from.top-V-G.top}px`),N.style.visibility="hidden",X.append(F);let O=Z.scrollTop,P=()=>{F.style.top=`${G.top-J.top-(Z.scrollTop-O)}px`};Z.addEventListener("scroll",P,{passive:!0}),$6(F).then(()=>{Z.removeEventListener("scroll",P),N.style.visibility="",F.remove()})}function c_(_){_.scrollTop=_6(_)}function X0(_){return _6(_)-_.scrollTop}function _6(_){let $=_.querySelector(".cortex-message-list__content");if(!$)return _.scrollHeight-_.clientHeight;let X=getComputedStyle(_);return $.offsetHeight+parseFloat(X.paddingTop)+parseFloat(X.paddingBottom)-_.clientHeight}function Y0(_){let $=!1,X=_.parentElement,Y=typeof ResizeObserver>"u"?void 0:new ResizeObserver(Q);Y?.observe(X);function Q(){let N=X.querySelector(":scope > .cortex-working-thinking, :scope > .cortex-message > .cortex-message-parts > [data-cortex-frontier]");if(!N)return!1;return _.style.setProperty("--cortex-avatar-y",`${c5(N,X)-_.offsetHeight/2}px`),!0}return{sync(N){if(N===$){if(N)Q();return}if(N){if(!Q())return;_.classList.remove("cortex-working-avatar--leaving"),_.offsetWidth,_.classList.add("cortex-working-avatar--shown"),$=!0;return}$=!1,_.classList.add("cortex-working-avatar--leaving"),$6(_,!0).then(()=>{if($)return;_.classList.remove("cortex-working-avatar--shown","cortex-working-avatar--leaving")})},dispose(){Y?.disconnect()}}}function c5(_,$){let X=_.querySelector(".cortex-text-bubble");if(!X)return e0(_,$)+_.offsetHeight/2;let Y=getComputedStyle(X);return e0(X,$)+parseFloat(Y.paddingTop)+parseFloat(Y.borderTopWidth)+parseFloat(Y.lineHeight)/2}function e0(_,$){let X=0;for(let Y=_;Y instanceof HTMLElement&&Y!==$;)X+=Y.offsetTop,Y=Y.offsetParent;return X}function $6(_,$=!1){return Promise.allSettled(_.getAnimations({subtree:$}).map((X)=>X.finished))}var u5=2;function Q0(_){let $=!1,X=!1,Y=!1,Q=!1,N=!1,Z=!1,G,J=new Set,z=0,V=!1;function W(){if($&&z===0)return!1;if(z+=1,!$)$=!0,_.setRunning(!0);return!0}function U(D){if(z-=1,D)V=!0;else if(z===0&&!V)$=!1,_.setRunning(!1)}async function B(D,H){for(let K=0;K<u5;K+=1){let M=await _.refreshMessages().catch(()=>{return});if(!_.isAlive())return!1;if(!M)continue;if(!a(M).some((R)=>R.id===D.id))return!0;if(await _.deliver(H).then(()=>!0,()=>!1))return!0}return!1}async function F(D,H){let K;try{let p=H({toolCallId:D.id,toolName:D.name,input:D.input},{threadId:_.threadId});if(p===null||p===void 0)return;K=await Promise.resolve(p)}catch{J.delete(D.id);return}if(K===null||K===void 0)return;if(!_.isAlive())return;let M=W(),k={toolCallId:D.id,tool:D.name,output:K},R=await _.deliver(k).then(()=>!0,()=>B(D,k));if(M)U(R);if(!R)J.delete(D.id)}function O(D){let H=a(D),K=_.onToolCall();if(!K)return H.length>0;for(let M of H){if(M.state!=="input-complete"||J.has(M.id))continue;J.add(M.id),F(M,K)}return H.length>0}async function P(D){let H=Q;if(Q=!1,!H&&$){if(O(D()))return;if(Y)_.reloadThreads().catch(()=>{});else _.setRunning(!1)}if(G===void 0&&(Z||H))return;G=void 0;let K=await _.refreshMessages();if(!H&&$&&K)O(K)}return{chunkArrived(){X=!0},transcriptCarried(D){if(Z=!0,G!==void 0&&G<=D)G=void 0},transcriptUpdated(D){if(!N){_.refreshMessages();return}G=Math.max(G??0,Date.parse(D))},streamFailed(){if(Y=!0,X)_.onTurnFinished();else _.onSendFailed()},loadingChanged(D,H){if(D){N=!0,Y=!1,Z=!1;return}if(!N)return;N=!1,_.onTurnFinished(),P(H)},hydrated(D,H){if(H)return;setTimeout(()=>{if(_.isAlive())O(D)},0)},sendStarted(){_.setRunning(!0),$=!0,X=!1},abortConfirmed(){Q=!0,_.setRunning(!1)}}}function I_(_){if(_.input.total<=0)return null;return Math.round(_.input.cacheRead/_.input.total*100)}import{createContext as X6,useContext as Y6}from"react";var N0=X6(void 0);function L(){let _=Y6(N0);if(!_)throw Error("useCortex must be used inside <CortexChatWidget>");return _}var u_={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1},p_=X6(u_);function l_(){return Y6(p_)}import{useEffect as p5,useState as l5}from"react";function Q6(_,$){let[X,Y]=l5();return p5(()=>{return Y(void 0),T1(_,Y)},[_,$]),X}import{useRef as s5}from"react";import{useRef as d5,useState as n5,useSyncExternalStore as i5}from"react";function N6(_,$){let X=d5($);X.current=$;let[Y]=n5(()=>L1({api:_,ensureThread:()=>X.current()})),Q=i5(Y.subscribe,Y.getState,Y.getState);return{store:Y,value:{items:Q,...O1(Q),accept:Y.accept,remove:Y.remove,consumeReady:Y.consumeReady}}}import{useEffect as r5,useRef as o5}from"react";function Z6(_,$){let X=o5(void 0);r5(()=>{if($===X.current)return;_.clear(X.current),X.current=$},[$,_])}import{useRef as G6}from"react";function J6(_){let $=G6([]),X=G6(void 0);function Y(){let N=_.selectedRef.current;if(N)return Promise.resolve(N.id);return X.current??=_.api.createThread().then((Z)=>{return X.current=void 0,_.onCreated(Z),Z.id},(Z)=>{throw X.current=void 0,Z}),X.current}async function Q(N,Z=[]){let G=_.sessionRef.current;if(G){await G.send(N,Z);return}$.current.push({prompt:N,attachments:Z});try{await Y()}catch(J){throw $.current=[],J}}return{ensureThread:Y,send:Q,pendingSendRef:$}}import{useRef as a5,useState as t5}from"react";function z6(_){let[$,X]=t5(),Y=$?.thread,Q=Y?_.threads?.find((z)=>z.id===Y.id)??Y:void 0,N=a5(Q);N.current=Q;function Z(z,V){if(N.current?.id===z.id&&_.hasSession())return;let W=N.current;if(N.current=z,X({thread:z,mode:V,epoch:0}),W&&W.id!==z.id)_.getHooks()?.onThreadDeselected?.(W);_.getHooks()?.onThreadSelected?.(z)}function G(){let z=N.current;if(!z&&!_.hasSession())return;if(N.current=void 0,X(void 0),z)_.getHooks()?.onThreadDeselected?.(z)}function J(z,V){X((W)=>({thread:z,mode:"reload",epoch:(W?.epoch??0)+1,initialMessages:V}))}return{session:$,selected:Q,selectedRef:N,select:Z,deselect:G,remount:J}}function V6(_){let{api:$,threads:X}=_,Y=s5(void 0),Q=z6({threads:X.threads,getHooks:_.getHooks,hasSession:()=>Y.current!==void 0}),N=J6({api:$,sessionRef:Y,selectedRef:Q.selectedRef,onCreated:(z)=>{X.upsert(z),Q.select(z,"skip")}}),Z=N6($,N.ensureThread);Z6(Z.store,Q.selected?.id);async function G(z){if(Q.selectedRef.current?.id===z)Q.deselect();await X.remove(z)}function J(z){Q.select(z,"load")}return{sessionRef:Y,selection:Q,queue:Z,deleteThread:G,openThread:J,...N}}import{useEffect as e5,useRef as _8}from"react";function K6(_){let $=_8(_);$.current=_,e5(()=>{$.current.onMount();let X=!1,Y=S1({getConfig:()=>$.current.getConfig(),onEvent:(Q)=>$.current.onEvent(Q),onOpen:()=>{if(X)$.current.onReconnect();X=!0}});return()=>Y.close()},[])}function W6(_){let{threads:$,selectedRef:X,sessionRef:Y}=_;function Q(Z){$.applyEvent(Z);let G=X.current?.id;switch(Z.type){case"thread:deleted":if(G===Z.payload.threadId)_.deselect();break;case"thread:run-started":if(G===Z.payload.thread.id)Y.current?.reattach(Z.payload.thread);break;case"thread:messages-updated":Y.current?.transcriptUpdated(Z.payload.thread.id,Z.payload.thread.updatedAt);break}}function N(){_.onReconnect(),$.reload().then((Z)=>{let G=X.current;if(!G)return;Y.current?.reattach(Z.find((J)=>J.id===G.id)??G)})}return{onEvent:Q,onReconnect:N}}function D6(_){return{abort:async()=>{await _.current?.abort()},addToolResult:($,X,Y)=>_.current?.addToolResult($,X,Y)??Promise.resolve(),respondToApproval:($,X)=>_.current?.respondToApproval($,X)??Promise.resolve()}}import{useState as $8}from"react";function H6(_){let[$,X]=$8();async function Y(){let J=m_(await _.listThreads());return X(J),J}function Q(J){X((z)=>A_(z??[],J))}function N(J,z){X((V)=>{let W=V?.find((U)=>U.id===J);return W?A_(V??[],{...W,isRunning:z}):V})}async function Z(J){await _.deleteThread(J),X((z)=>z?x_(z,J):z)}function G(J){X((z)=>{let V=v1(z??[],J);return z||V.length?V:z})}return{threads:$,reload:Y,upsert:Q,setRunning:N,remove:Z,applyEvent:G}}import{useState as B6}from"react";function F6(){let[_,$]=B6("chat"),[X,Y]=B6(!1);return{screen:_,sidebarOpen:X,showChat:()=>{$("chat"),Y(!1)},openHistory:()=>$("threads"),closeHistory:()=>$("chat"),toggleSidebar:()=>Y((Q)=>!Q),closeSidebar:()=>Y(!1)}}function q(..._){return _.filter(Boolean).join(" ")}import{jsx as d,jsxs as q6}from"react/jsx-runtime";function U6({onToggleSidebar:_,onToggleDebug:$,onOpenHistory:X}){let{config:Y,locale:Q,t:N,debugMode:Z,selectedThread:G}=L();return q6("div",{className:"cortex-widget__chat-header",children:[d("button",{onClick:_,className:"cortex-widget__sidebar-toggle-btn",children:d("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:d("path",{d:"M2.5 4h11M2.5 8h11M2.5 12h11",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),d("div",{className:"cortex-widget__chat-title-wrap",children:d("p",{className:"cortex-widget__chat-title",children:G?.title??V_(Y.agentName,Q)??N("translate_new_chat")})}),Y.showDebugButton&&d("button",{onClick:$,className:q("cortex-widget__debug-btn",Z?"cortex-widget__debug-btn--on":"cortex-widget__debug-btn--off"),children:Z?N("translate_debug"):N("translate_normal")}),d("button",{type:"button",onClick:X,"aria-label":N("translate_history"),className:"cortex-widget__history-btn",children:q6("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[d("circle",{cx:"8",cy:"8",r:"5.75",stroke:"currentColor",strokeWidth:"1.3"}),d("path",{d:"M8 5v3l2 1.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})}var b={bubble:"M13.5 7.6c0 2.4-2.5 4.4-5.5 4.4-.6 0-1.2-.08-1.7-.23L3 13l.8-2.3C3 9.8 2.5 8.7 2.5 7.6 2.5 5.2 5 3.2 8 3.2s5.5 2 5.5 4.4Z",chevronDown:"M3 4.5L6 7.5L9 4.5",chevronDownLarge:"m5.75 8.25 4.25 4.25 4.25-4.25",file:["M4 1.5h5.172a2 2 0 0 1 1.414.586l2.328 2.328a2 2 0 0 1 .586 1.414V12.5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2Z","M9.5 1.5v2a2 2 0 0 0 2 2h2"]};import{forwardRef as J8,useEffect as z8,useImperativeHandle as V8,useRef as A6,useState as K8}from"react";import{useState as X8}from"react";function L6(_,$){let[X,Y]=X8(!1);return{dragging:X,onDragOver:(Q)=>{if(Q.preventDefault(),_)Y(!0)},onDragLeave:(Q)=>{if(!Q.currentTarget.contains(Q.relatedTarget))Y(!1)},onDrop:(Q)=>{if(Q.preventDefault(),Y(!1),_)$([...Q.dataTransfer.files])},onPaste:(Q)=>{let N=Q.clipboardData.files;if(!_||!N.length)return;Q.preventDefault(),$([...N])}}}import{jsx as n,jsxs as Z0}from"react/jsx-runtime";function O6(){let{queue:_,t:$}=L();if(!_.items.length)return null;return n("div",{className:"cortex-attachment-queue",children:_.items.map((X)=>Z0("div",{className:q("cortex-attachment-chip",X.status==="error"&&"cortex-attachment-chip--error"),title:X.status==="error"?$("translate_attachment_rejected"):"",children:[X.status==="uploading"||X.status==="deleting"?Z0("svg",{className:"cortex-attachment-chip__spinner",viewBox:"0 0 16 16",fill:"none",children:[n("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",className:"cortex-attachment-chip__spinner-track"}),n("path",{d:"M14 8a6 6 0 0 0-6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):Z0("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[n("path",{d:b.file[0],stroke:"currentColor",strokeWidth:"1.25"}),n("path",{d:b.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),n("span",{className:"cortex-attachment-chip__name",children:X.filename}),n("button",{type:"button",onClick:()=>_.remove(X.localId),className:"cortex-attachment-chip__remove",disabled:X.status==="deleting","aria-label":$("translate_remove_attachment"),children:n("svg",{viewBox:"0 0 16 16",fill:"none",children:n("path",{d:"M4.5 4.5l7 7m0-7l-7 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},X.localId))})}import{useRef as Y8}from"react";import{jsx as X_,jsxs as P6,Fragment as N8}from"react/jsx-runtime";var Q8=Y1.join(",");function M6({attachmentsEnabled:_,canSend:$,onSend:X}){let{t:Y,queue:Q}=L(),N=Y8(null);return P6("div",{className:"cortex-widget__input-actions",children:[_&&P6(N8,{children:[X_("button",{type:"button",onClick:()=>N.current?.click(),className:"cortex-widget__attach-btn","aria-label":Y("translate_attach_files"),children:X_("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:X_("path",{d:"M10.5 5.5 6.2 9.8a1.4 1.4 0 0 0 2 2l4.6-4.6a2.8 2.8 0 0 0-4-4L4.2 7.8a4.2 4.2 0 0 0 6 6l4-4",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),X_("input",{ref:N,type:"file",multiple:!0,accept:Q8,onChange:(Z)=>{Q.accept([...Z.target.files??[]]),Z.target.value=""},className:"cortex-widget__file-input"})]}),X_("button",{onClick:X,"aria-label":Y("translate_send"),className:q("cortex-widget__send-btn",!$&&"cortex-widget__send-btn--empty",$&&"cortex-widget__send-btn--ready"),disabled:!$,children:X_("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__send-icon",children:X_("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}import{useLayoutEffect as Z8}from"react";import{jsx as G8}from"react/jsx-runtime";function k6(_){let{t:$}=L();Z8(()=>{let Y=_.inputRef.current;if(!Y)return;Y.style.height="0px",Y.style.height=`${Y.scrollHeight}px`},[_.inputRef,_.value]);function X(Y){if(Y.key==="Enter"&&!Y.shiftKey)Y.preventDefault(),_.onSubmit()}return G8("textarea",{ref:_.inputRef,onKeyDown:X,onPaste:_.onPaste,value:_.value,onChange:(Y)=>_.onChange(Y.target.value),placeholder:_.dragging?$("translate_drop_files_here"):_.disabled?"":$("translate_type_a_message"),disabled:_.disabled,rows:1,className:q("cortex-widget__textarea",_.disabled&&"cortex-widget__textarea--disabled")})}import{jsx as K_,jsxs as G0}from"react/jsx-runtime";var E6=J8(function($,X){let{t:Y,queue:Q,send:N,abort:Z,capabilities:G}=L(),{isAgentWorking:J}=l_(),z=G?.attachments??!1,[V,W]=K8(""),U=L6(z,Q.accept),B=A6(null);V8(X,()=>({focusInput:()=>B.current?.focus()}));let F=A6(J);z8(()=>{if(F.current&&!J)B.current?.focus();F.current=J},[J]);let O=!Q.busy&&(Boolean(V.trim())||Q.hasReady);function P(){if(J||!O)return;let D=V.trim()||Y("translate_attachment_caption"),H=Q.consumeReady();if(B.current)_0(B.current,D);W(""),N(D,H.map((K)=>K.summary))}return G0("div",{className:"cortex-widget__input-area",onDragOver:U.onDragOver,onDragLeave:U.onDragLeave,onDrop:U.onDrop,children:[K_(O6,{}),G0("div",{className:q("cortex-widget__input-box",J&&"cortex-widget__input-box--disabled",!J&&"cortex-widget__input-box--enabled",U.dragging&&"cortex-widget__input-box--dragging"),children:[K_(k6,{inputRef:B,value:V,onChange:W,onSubmit:P,onPaste:U.onPaste,disabled:J,dragging:U.dragging}),J?G0("button",{onClick:()=>void Z(),className:"cortex-stop-btn",children:[K_("span",{className:"cortex-stop-btn__ring"}),K_("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"cortex-stop-btn__icon",children:K_("rect",{x:"1",y:"1",width:"10",height:"10",rx:"2.5",fill:"currentColor"})})]}):K_(M6,{attachmentsEnabled:z,canSend:O,onSend:P})]})]})});import{jsx as R6}from"react/jsx-runtime";function d_({capabilities:_,composerRef:$}){let{t:X}=L();if(_===void 0)return null;return _.messages===!1?R6("p",{className:"cortex-widget__messages-disabled",children:X("translate_messages_disabled")}):R6(E6,{ref:$})}import{jsx as u,jsxs as y6}from"react/jsx-runtime";function I6(_){let{locale:$,t:X,threads:Y,send:Q,capabilities:N}=L(),Z=N?.messages===!1,G=N!==void 0,J=V_(N?.suggestions,$),z=V_(N?.greeting,$)||X("translate_greeting");return y6("div",{className:"cortex-widget__landing",children:[u("div",{className:"cortex-widget__landing-icon",children:u("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",children:u("path",{d:b.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),u("p",{className:"cortex-widget__landing-greeting",children:z}),G&&!Z&&!!J?.length&&u("div",{className:"cortex-widget__landing-chips",children:J.map((V,W)=>u("button",{type:"button",onClick:()=>void Q(V.prompt),className:"cortex-widget__landing-chip",children:V.title},W))}),u(d_,{capabilities:N}),!!Y?.length&&u("div",{className:"cortex-widget__landing-recent",children:Y.slice(0,2).map((V)=>{let W=l(V.updatedAt,$);return y6("button",{type:"button",onClick:()=>_.onThreadSelected(V),className:"cortex-widget__landing-recent-item",children:[u("p",{className:"cortex-widget__landing-recent-title",children:V.title??X("translate_untitled")}),W&&u("p",{className:"cortex-widget__landing-recent-time",children:W})]},V.id)})})]})}import{useCallback as v_,useEffect as H0,useLayoutEffect as B0,useMemo as l8,useRef as Z_,useState as F0}from"react";import{memo as u8}from"react";import{Fragment as x8}from"react";import{useRef as W8,useState as D8}from"react";import{jsx as W_,jsxs as H8}from"react/jsx-runtime";function g({value:_,className:$}){let{t:X}=L(),[Y,Q]=D8(!1),N=W8(null);async function Z(G){G.stopPropagation(),G.preventDefault();try{if(await navigator.clipboard.writeText(_),Q(!0),N.current)clearTimeout(N.current);N.current=setTimeout(()=>Q(!1),1500)}catch{}}return W_("span",{className:q("cortex-copy-btn",$),children:W_("button",{className:q("cortex-copy-btn__button",Y&&"cortex-copy-btn__button--copied"),onClick:(G)=>void Z(G),"aria-label":Y?X("translate_copied"):X("translate_copy"),type:"button",children:Y?W_("svg",{className:"cortex-copy-btn__icon cortex-copy-btn__icon--check",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:W_("path",{d:"M5 13l4 4L19 7",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):H8("svg",{className:"cortex-copy-btn__icon",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:[W_("rect",{x:"9",y:"9",width:"12",height:"12",rx:"2",stroke:"currentColor",strokeWidth:"2"}),W_("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})})})}import{jsx as n_,jsxs as w6}from"react/jsx-runtime";function C6(){let{t:_}=L();return w6("div",{className:"cortex-aborted-flag",children:[n_("span",{className:"cortex-aborted-flag__line"}),w6("span",{className:"cortex-aborted-flag__label",children:[n_("svg",{className:"cortex-aborted-flag__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:n_("path",{d:"M6 1.5v5M6 8.75v.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),_("translate_aborted")]}),n_("span",{className:"cortex-aborted-flag__line"})]})}import{jsx as D_,jsxs as b6}from"react/jsx-runtime";function S6(_){let{api:$,t:X}=L();async function Y(Q){let{blob:N,name:Z}=await $.downloadAttachment(Q);s1(N,Z)}return D_("div",{className:q("cortex-message-attachments",_.isUser&&"cortex-message-attachments--user"),children:_.attachments.map((Q)=>b6("button",{type:"button",onClick:()=>void Y(Q.id),className:"cortex-message-attachment","aria-label":`${X("translate_download")}: ${Q.filename}`,children:[b6("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__icon",fill:"none",children:[D_("path",{d:b.file[0],stroke:"currentColor",strokeWidth:"1.25"}),D_("path",{d:b.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),D_("span",{className:"cortex-message-attachment__name",children:Q.filename}),D_("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__dl-icon",fill:"none",children:D_("path",{d:"M8 3v7m0 0L5.5 7.5M8 10l2.5-2.5M3 13h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},Q.id))})}import{useRef as q8,useState as w_}from"react";import{useMemo as B8,useState as F8}from"react";import{jsx as j,jsxs as Y_,Fragment as i_}from"react/jsx-runtime";function s({data:_,expandDepth:$,className:X}){let Y=B8(()=>z_(_),[_]),[Q,N]=F8({});function Z(J,z){return Q[J]??z>=$}function G(J,z){N((V)=>({...V,[J]:!Z(J,z)}))}return j("div",{className:q("cortex-json-tree",X),children:j(T6,{value:Y,path:"$",depth:0,isCollapsed:Z,toggle:G})})}function T6({value:_,path:$,depth:X,isCollapsed:Y,toggle:Q}){let N=o1(_,$);if(N.kind==="primitive")return j("span",{className:N.className,children:N.text});if(N.entries.length===0)return Y_("span",{className:"cortex-json-tree__bracket",children:[N.open,N.close]});let Z=Y($,X);function G(J){Q($,X),J.stopPropagation()}return Y_(i_,{children:[Y_("span",{className:"cortex-json-tree__toggle",onClick:G,role:"button",children:[j("span",{className:q("cortex-json-tree__arrow",Z&&"cortex-json-tree__arrow--collapsed"),children:"▾"}),j("span",{className:"cortex-json-tree__bracket",children:N.open})]}),Z?Y_(i_,{children:[j("span",{className:"cortex-json-tree__collapsed-hint",onClick:G,role:"button",children:N.summary}),j("span",{className:"cortex-json-tree__bracket",children:N.close})]}):Y_(i_,{children:[j("div",{className:"cortex-json-tree__indent",children:N.entries.map((J,z)=>Y_("div",{className:"cortex-json-tree__line",children:[J.key!==null&&Y_(i_,{children:[j("span",{className:"cortex-json-tree__key",children:`"${J.key}"`}),j("span",{className:"cortex-json-tree__colon",children:": "})]}),j(T6,{value:J.value,path:J.path,depth:X+1,isCollapsed:Y,toggle:Q}),z<N.entries.length-1&&j("span",{className:"cortex-json-tree__comma",children:","})]},J.path))}),j("span",{className:"cortex-json-tree__bracket",children:N.close})]})]})}function y(_){return _.toLocaleString("en-US")}import{jsx as H_,jsxs as B_}from"react/jsx-runtime";function v6({usage:_}){let{t:$}=L();return B_("div",{className:"cortex-llm-inspector__usage-rows",children:[B_("div",{className:"cortex-llm-inspector__usage-row",children:[H_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_input")}),H_("span",{className:"cortex-llm-inspector__usage-val",children:y(_.input.total)}),B_("span",{className:"cortex-llm-inspector__usage-detail",children:[$("translate_fresh")," ",y(_.input.noCache)," · ",$("translate_read")," ",y(_.input.cacheRead)," · ",$("translate_write")," ",y(_.input.cacheWrite)]})]}),B_("div",{className:"cortex-llm-inspector__usage-row",children:[H_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_output")}),H_("span",{className:"cortex-llm-inspector__usage-val",children:y(_.output.total)}),B_("span",{className:"cortex-llm-inspector__usage-detail",children:[$("translate_text")," ",y(_.output.text)," · ",$("translate_reasoning")," ",y(_.output.reasoning)]})]}),B_("div",{className:"cortex-llm-inspector__usage-row cortex-llm-inspector__usage-row--total",children:[H_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_total")}),H_("span",{className:"cortex-llm-inspector__usage-val",children:y(_.total)})]})]})}import{jsx as f6,jsxs as r_}from"react/jsx-runtime";function j6({usage:_}){let $=I_(_);return r_("span",{className:"cortex-llm-inspector__step-metrics",children:[r_("span",{className:"cortex-llm-inspector__metric",children:[f6("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--input"}),y(_.input.total)]}),r_("span",{className:"cortex-llm-inspector__metric",children:[f6("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--output"}),y(_.output.total)]}),$!==null&&r_("span",{className:"cortex-llm-inspector__cache-pct",children:[$,"%"]})]})}import{jsx as w,jsxs as e}from"react/jsx-runtime";function g6({messageId:_}){let{t:$,api:X}=L(),[Y,Q]=w_(!1),[N,Z]=w_(!1),[G,J]=w_([]),[z,V]=w_(null),[W,U]=w_({}),B=q8(!1);async function F(){if(!B.current){Z(!0);try{J(await X.listLlmRequests(_))}finally{Z(!1),B.current=!0}}Q((K)=>!K)}function O(K){V((M)=>M===K?null:K)}function P(K){return W[K]??"prompt"}function D(K,M){U((k)=>({...k,[K]:M}))}function H(K){return P(K.id)==="prompt"?K.prompt:K.output}return e("div",{className:q("cortex-llm-inspector",Y&&"cortex-llm-inspector--open"),children:[e("button",{className:"cortex-llm-inspector__trigger",onClick:()=>void F(),children:[w("svg",{className:"cortex-llm-inspector__icon",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:w("path",{d:"M6 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM0 6a6 6 0 1 1 10.89 3.477l4.817 4.816a1 1 0 0 1-1.414 1.414l-4.816-4.816A6 6 0 0 1 0 6Z",fill:"currentColor"})}),w("span",{children:$("translate_inspect_llm_requests")}),N?w("span",{className:"cortex-llm-inspector__loading",children:$("translate_loading")}):G.length>0?w("span",{className:"cortex-llm-inspector__badge",children:G.length}):null,w("svg",{className:"cortex-llm-inspector__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:w("path",{d:b.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),w("div",{className:"cortex-llm-inspector__panel-wrapper",children:w("div",{className:"cortex-llm-inspector__panel-inner",children:e("div",{className:"cortex-llm-inspector__panel",children:[G.length===0&&!N&&w("div",{className:"cortex-llm-inspector__empty",children:$("translate_no_llm_requests")}),G.map((K,M)=>e("div",{className:q("cortex-llm-inspector__step",z===K.id&&"cortex-llm-inspector__step--expanded"),children:[e("button",{className:"cortex-llm-inspector__step-header",onClick:()=>O(K.id),children:[w("span",{className:"cortex-llm-inspector__step-label",children:$("translate_step_n",{number:M+1})}),K.tokenUsage&&w(j6,{usage:K.tokenUsage}),w("svg",{className:"cortex-llm-inspector__step-chevron",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:w("path",{d:b.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),w("div",{className:"cortex-llm-inspector__step-body-wrapper",children:w("div",{className:"cortex-llm-inspector__step-body-inner",children:e("div",{className:"cortex-llm-inspector__step-body",children:[K.tokenUsage&&w(v6,{usage:K.tokenUsage}),e("div",{className:"cortex-llm-inspector__tabs",children:[w("button",{className:q("cortex-llm-inspector__tab",P(K.id)==="prompt"&&"cortex-llm-inspector__tab--active"),onClick:()=>D(K.id,"prompt"),children:$("translate_request")}),w("button",{className:q("cortex-llm-inspector__tab",P(K.id)==="response"&&"cortex-llm-inspector__tab--active"),onClick:()=>D(K.id,"response"),children:$("translate_response")})]}),e("div",{className:"cortex-llm-inspector__json-pane",children:[w(g,{className:"cortex-llm-inspector__json-copy",value:t1(H(K))}),w(s,{data:a1(H(K)),expandDepth:2})]})]})})})]},K.id))]})})})]})}import{useState as U8}from"react";import{jsx as A,jsxs as S}from"react/jsx-runtime";function m6({usage:_,modelId:$}){let{t:X}=L(),[Y,Q]=U8(!1),N=I_(_)??0;return S("div",{className:q("cortex-token-usage",Y&&"cortex-token-usage--expanded"),children:[S("button",{className:"cortex-token-usage__summary",onClick:()=>Q((Z)=>!Z),children:[S("span",{className:"cortex-token-usage__total",children:[A("span",{className:"cortex-token-usage__total-number",children:y(_.total)}),A("span",{className:"cortex-token-usage__total-label",children:X("translate_tokens")})]}),$?A("span",{className:"cortex-token-usage__model",children:$}):null,S("span",{className:"cortex-token-usage__pills",children:[S("span",{className:"cortex-token-usage__pill",children:[A("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),y(_.input.total)]}),S("span",{className:"cortex-token-usage__pill",children:[A("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),y(_.output.total)]})]}),N>0&&S("span",{className:"cortex-token-usage__cache-badge",children:[N,"%"]}),A("svg",{className:"cortex-token-usage__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:A("path",{d:b.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),A("div",{className:"cortex-token-usage__details",children:A("div",{className:"cortex-token-usage__details-inner",children:S("div",{className:"cortex-token-usage__columns",children:[S("div",{className:"cortex-token-usage__col",children:[S("div",{className:"cortex-token-usage__col-header",children:[A("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),A("span",{className:"cortex-token-usage__col-label",children:X("translate_input")}),A("span",{className:"cortex-token-usage__col-total",children:y(_.input.total)})]}),S("div",{className:"cortex-token-usage__rows",children:[_.input.noCache?S("div",{className:"cortex-token-usage__row",children:[A("span",{className:"cortex-token-usage__row-label",children:X("translate_fresh")}),A("span",{className:"cortex-token-usage__row-value",children:y(_.input.noCache)})]}):null,_.input.cacheRead?S("div",{className:"cortex-token-usage__row",children:[A("span",{className:"cortex-token-usage__row-label",children:X("translate_cache_read")}),A("span",{className:"cortex-token-usage__row-value",children:y(_.input.cacheRead)})]}):null,_.input.cacheWrite?S("div",{className:"cortex-token-usage__row",children:[A("span",{className:"cortex-token-usage__row-label",children:X("translate_cache_write")}),A("span",{className:"cortex-token-usage__row-value",children:y(_.input.cacheWrite)})]}):null]}),N>0&&S("div",{className:"cortex-token-usage__cache-bar-row",children:[A("div",{className:"cortex-token-usage__cache-bar",children:A("div",{className:"cortex-token-usage__cache-fill",style:{width:`${N}%`}})}),A("span",{className:"cortex-token-usage__cache-label",children:X("translate_n_percent_cached",{percent:N})})]})]}),S("div",{className:"cortex-token-usage__col",children:[S("div",{className:"cortex-token-usage__col-header",children:[A("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),A("span",{className:"cortex-token-usage__col-label",children:X("translate_output")}),A("span",{className:"cortex-token-usage__col-total",children:y(_.output.total)})]}),S("div",{className:"cortex-token-usage__rows",children:[_.output.text?S("div",{className:"cortex-token-usage__row",children:[A("span",{className:"cortex-token-usage__row-label",children:X("translate_text")}),A("span",{className:"cortex-token-usage__row-value",children:y(_.output.text)})]}):null,_.output.reasoning?S("div",{className:"cortex-token-usage__row",children:[A("span",{className:"cortex-token-usage__row-label",children:X("translate_reasoning")}),A("span",{className:"cortex-token-usage__row-value",children:y(_.output.reasoning)})]}):null]})]})]})})})]})}import{jsx as x6,jsxs as L8}from"react/jsx-runtime";function h6({messageId:_,isAssistant:$,metadata:X}){let{tokenUsage:Y}=X;if(!Y&&!$)return null;return L8("div",{className:"cortex-message-debug-zone",children:[Y&&x6(m6,{usage:Y,modelId:X.modelId}),$&&x6(g6,{messageId:_})]})}import{jsx as m,jsxs as C_}from"react/jsx-runtime";function c6(_){let{reasoningPart:$,streaming:X=!1}=_,{t:Y}=L();return C_("details",{className:"cortex-reasoning-details",children:[C_("summary",{className:"cortex-reasoning-details__summary",children:[C_("div",{className:"cortex-reasoning-details__header",children:[m("span",{className:"cortex-reasoning-details__icon",children:C_("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:[m("path",{d:"M10 2C6.686 2 4 4.686 4 8c0 1.655.672 3.154 1.757 4.243.362.363.576.858.576 1.371V14.5a1 1 0 0 0 1 1h5.334a1 1 0 0 0 1-1v-.886c0-.513.214-1.008.576-1.371A5.978 5.978 0 0 0 16 8c0-3.314-2.686-6-6-6Z",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}),m("path",{d:"M7.5 17.5h5M8.5 8a2 2 0 0 1 2-2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}),m("div",{className:"cortex-reasoning-details__title-group",children:C_("div",{className:"cortex-reasoning-details__title-row",children:[m("div",{className:"cortex-reasoning-details__title",children:Y("translate_reasoning")}),m("span",{className:q("cortex-reasoning-details__badge",X?"cortex-reasoning-details__badge--streaming":"cortex-reasoning-details__badge--done"),children:X?Y("translate_streaming"):Y("translate_done")})]})})]}),m("span",{className:"cortex-reasoning-details__chevron","aria-hidden":"true",children:m("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:m("path",{d:b.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),m("div",{className:"cortex-reasoning-details__body",children:m("div",{className:"cortex-reasoning-details__content",children:m("pre",{className:"cortex-reasoning-details__pre",children:$.content.trim()?$.content:Y("translate_no_reasoning")})})})]})}import{useEffect as n6,useMemo as R8,useRef as z0,useState as y8}from"react";import{useEffect as O8,useState as u6}from"react";import{jsx as J0,jsxs as P8}from"react/jsx-runtime";function p6(_){let{id:$,alt:X,attachment:Y}=_,{api:Q,t:N}=L(),[Z,G]=u6(),[J,z]=u6(!1);if(O8(()=>{let V,W=!1;return G(void 0),z(!1),Q.downloadAttachment($).then(({blob:U})=>{if(W)return;V=URL.createObjectURL(U),G(V)},()=>{if(!W)z(!0)}),()=>{if(W=!0,V)URL.revokeObjectURL(V)}},[Q,$]),J)return J0("p",{className:"cortex-attachment-image__caption",children:X?N("translate_image_unavailable_alt",{alt:X}):N("translate_image_unavailable")});if(!Z)return null;return P8("figure",{className:"cortex-attachment-image",children:[J0("img",{src:Z,alt:X}),Y&&J0("figcaption",{className:"cortex-attachment-image__caption",children:Y.filename})]})}import{useEffect as M8,useRef as k8,useState as l6}from"react";import{jsx as i,jsxs as o_}from"react/jsx-runtime";function A8(_){let{t:$}=L();if(!_.pending&&!_.debugMode)return null;return o_("div",{className:"cortex-media-block__head",children:[_.debugMode&&i("span",{className:"cortex-media-block__lang",children:_.language}),_.pending&&i("span",{className:"cortex-media-block__pending",children:$(u1(_.language))}),_.debugMode&&_.closed&&o_("span",{className:"cortex-media-block__actions",children:[_.onToggleSource&&i("button",{type:"button",className:"cortex-media-block__action","aria-pressed":_.sourceShown,onClick:_.onToggleSource,children:$("translate_media_source")}),i(g,{value:_.source})]})]})}function E8(_){let{debugMode:$,t:X}=L();return i("div",{className:"cortex-media-block__body",children:o_("p",{className:"cortex-media-block__error",children:[_.cutOff?X("translate_media_cut_off"):X("translate_media_failed"),!_.cutOff&&$&&` ${_.reason}`]})})}function d6(_){let{language:$,source:X,closed:Y,streaming:Q}=_,{config:N,debugMode:Z,scheme:G}=L(),J=k8(null),[z,V]=l6(),[W,U]=l6(!1);M8(()=>{V(void 0);let P=J.current;if(!Y||!G||!P)return;return l1(P,{language:$,source:X,context:{scheme:G},overrides:N.mediaRenderers,onError:V})},[$,X,Y,G,N.mediaRenderers]);let B=!Y&&!Q,F=B||Boolean(z);return o_("div",{className:"cortex-media-block",children:[i(A8,{language:$,source:X,pending:!Y&&Q,closed:Y,debugMode:Z,sourceShown:W,onToggleSource:F?void 0:()=>U((P)=>!P)}),F&&i(E8,{cutOff:B,reason:z}),i("div",{ref:J,hidden:F,className:q("cortex-media-block__body",`cortex-media-block__body--${$}`)}),Z&&(F||W)&&i("pre",{className:"cortex-media-block__source",children:X})]})}import{jsx as b_}from"react/jsx-runtime";function i6(_){let{role:$,textPart:X,streaming:Y=!1,attachments:Q=[]}=_,{config:N}=L(),Z=$==="assistant"&&Y?"":X.content,[G,J]=y8({text:Z,fading:[]}),z=z0(Z),V=z0(null),W=z0(!0);n6(()=>{function F(O,P){z.current=O,J((D)=>D.text===O&&!D.fading.length&&!P.length?D:{text:O,fading:P})}if($!=="assistant"||!Y){V.current?.destroy(),V.current=null,F(X.content,[]),W.current=!1;return}if(!V.current)V.current=new t(F),V.current.seed(z.current);if(W.current){W.current=!1,V.current.seed(X.content);return}V.current.update(X.content,!1)},[$,Y,X]),n6(()=>()=>{V.current?.destroy(),V.current=null},[]);let U=R8(()=>{let F=$==="assistant"?j1(G.text,p1(N.mediaRenderers)):[{kind:"markdown",text:G.text}];return F.map((O,P)=>O.kind==="markdown"?{...O,html:{__html:f1(O.text,P===F.length-1?G.fading:[])}}:O)},[$,G,N.mediaRenderers]),B=Y||G.text!==X.content;return b_("div",{className:q("cortex-text-part",$==="assistant"&&"cortex-text-part--assistant",$==="user"&&"cortex-text-part--user"),children:b_("div",{className:q("cortex-text-bubble",$==="assistant"&&"cortex-text-bubble--assistant",$==="user"&&"cortex-text-bubble--user"),children:U.map((F,O)=>{switch(F.kind){case"markdown":return b_("div",{dangerouslySetInnerHTML:F.html},O);case"media":return b_(d6,{...F,streaming:B},O);case"attachment":return b_(p6,{id:F.id,alt:F.alt,attachment:Q.find((P)=>P.id.toLowerCase()===F.id)},O)}})})})}import{jsx as f,jsxs as __}from"react/jsx-runtime";function r6({toolCallPart:_}){let{t:$}=L(),{state:X,approval:Y}=_,Q=_.output,N=z1(_);if(X==="complete")return __("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--success",children:[__("div",{className:"cortex-debug-tool__section-bar",children:[f("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--success",children:$("translate_output")}),f("span",{className:"cortex-debug-tool__section-lang",children:"json"}),f(g,{value:N})]}),f("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:f(s,{data:Q,expandDepth:2})})]});if(X==="error")return __("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--error",children:[__("div",{className:"cortex-debug-tool__section-bar",children:[f("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--error",children:$("translate_error")}),f(g,{value:N})]}),f("pre",{dir:"ltr",className:"cortex-debug-tool__error-pre",children:N})]});if(X==="approval-requested")return __("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[__("div",{className:"cortex-debug-tool__section-bar",children:[f("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:$("translate_approval_requested")}),f("span",{className:"cortex-debug-tool__section-lang",children:Y?.id})]}),f("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:$("translate_waiting_for_approval")})]});if(X==="approval-responded")return __("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[__("div",{className:"cortex-debug-tool__section-bar",children:[f("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:$("translate_approval_response")}),f("span",{className:"cortex-debug-tool__section-lang",children:Y?.id})]}),f("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:$(Y?.approved?"translate_tool_approved":"translate_tool_response_received")})]});return null}import{jsx as I8,jsxs as w8}from"react/jsx-runtime";function o6({toolCallPart:_}){let{t:$}=L(),X=J1(_);return w8("span",{className:q("cortex-debug-tool__state",X.modifier&&`cortex-debug-tool__state--${X.modifier}`),children:[X.pulse&&I8("span",{className:q("cortex-debug-tool__pulse",X.pulse==="violet"&&"cortex-debug-tool__pulse--violet")}),$(X.labelKey)]})}import{jsx as T,jsxs as r}from"react/jsx-runtime";function a6({toolCallPart:_}){let{t:$}=L(),{codeSnippets:X,remainingInput:Y,remainingInputText:Q}=V1(_.input);return r("details",{className:"cortex-debug-tool","data-state":_.state,children:[T("summary",{className:"cortex-debug-tool__summary",children:r("div",{className:"cortex-debug-tool__header",children:[r("div",{className:"cortex-debug-tool__meta",children:[T("div",{className:"cortex-debug-tool__title-row",children:T("span",{className:"cortex-debug-tool__name",title:_.name,children:_.name})}),T("div",{className:"cortex-debug-tool__id-row",children:T("span",{className:"cortex-debug-tool__id",children:_.id})})]}),r("div",{className:"cortex-debug-tool__actions",children:[T(o6,{toolCallPart:_}),T("svg",{className:"cortex-debug-tool__chevron",width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:T("path",{d:b.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),r("div",{className:"cortex-debug-tool__body",children:[X.map((N)=>r("div",{className:"cortex-debug-tool__section",children:[r("div",{className:"cortex-debug-tool__section-bar",children:[T("span",{className:"cortex-debug-tool__section-label",children:N.key}),T("span",{className:"cortex-debug-tool__section-lang",children:N.lang}),T(g,{value:N.value})]}),T("pre",{dir:"ltr",className:"cortex-debug-tool__pre",children:T("code",{className:"hljs",dangerouslySetInnerHTML:{__html:n1(N.value,N.lang)}})})]},N.key)),!!Y&&r("div",{className:"cortex-debug-tool__section",children:[r("div",{className:"cortex-debug-tool__section-bar",children:[T("span",{className:"cortex-debug-tool__section-label",children:$("translate_input")}),T("span",{className:"cortex-debug-tool__section-lang",children:"json"}),T(g,{value:Q})]}),T("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:T(s,{data:Y,expandDepth:2})})]}),T(r6,{toolCallPart:_})]})]})}import{useEffect as C8,useRef as b8,useState as t6}from"react";import{jsx as S_,jsxs as s6}from"react/jsx-runtime";function Q_({activity:_,className:$}){let{t:X}=L(),Y=W1(_),[Q,N]=t6(0),[Z,G]=t6("idle"),J=b8(Y.length);return J.current=Y.length,C8(()=>{let z,V;function W(){z=setTimeout(()=>{G("exiting"),z=setTimeout(()=>{N((U)=>(U+1)%J.current),G("enter-start"),V=requestAnimationFrame(()=>{G("entering"),z=setTimeout(()=>{G("idle"),W()},300)})},300)},2000)}return W(),()=>{if(z)clearTimeout(z);if(V)cancelAnimationFrame(V)}},[]),s6("div",{className:q("cortex-subtle-activity",$),children:[s6("div",{className:"cortex-subtle-activity__dots",children:[S_("span",{className:"cortex-subtle-activity__dot"}),S_("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d1"}),S_("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d2"})]}),S_("div",{className:"cortex-subtle-activity__label-mask",children:S_("span",{className:q("cortex-subtle-activity__label",`cortex-subtle-activity__label--${Z}`),children:X(Y[Q])})})]})}import{useEffect as Y2,useRef as V0,useState as X2}from"react";import{useEffect as e6,useRef as a_,useState as _2}from"react";import{jsx as C,jsxs as x}from"react/jsx-runtime";function $2({toolCallPart:_,setOutput:$}){let{t:X}=L(),{state:Y,id:Q,input:N}=_;if(Y==="complete"||Y==="error"){let Z=w1(_.output);return Z?C(T8,{position:Z}):x("div",{className:"cortex-tool-pill",children:[C("span",{className:"cortex-tool-pill__icon",children:C("svg",{className:q("cortex-tool-pill__svg cortex-tool-pill__svg--visible",Y==="error"&&"cortex-tool-pill__svg--error"),viewBox:"0 0 20 20",fill:"none",children:C("path",{d:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}),C("span",{className:"cortex-tool-pill__title",children:X("translate_location_not_shared")})]})}if(Y!=="input-complete")return null;return C(S8,{center:I1(N),submit:$},Q)}function S8({center:_,submit:$}){let{t:X}=L(),Y=a_(null),Q=a_(void 0),[N,Z]=_2(j_),G=a_({center:_,submit:$});G.current={center:_,submit:$},e6(()=>{let z=Y.current;if(!z)return;let V=R1(z,{center:G.current.center,onState:Z,submit:(W)=>G.current.submit(W)});return Q.current=V,V.start(),()=>{if(V.dispose(),Q.current===V)Q.current=void 0}},[]);let J=C1(N);return x("div",{className:"cortex-location-input",children:[x("div",{className:"cortex-location-input__map",children:[C("div",{className:"cortex-location-input__canvas",ref:Y}),C("button",{type:"button",className:"cortex-location-input__locate","aria-label":X("translate_location_locate"),title:X("translate_location_locate"),disabled:N.locating||N.submitting,onClick:()=>Q.current?.locate(),children:C(v8,{})})]}),x("div",{className:"cortex-location-input__foot",children:[N.position&&!N.deliveryFailed?C("span",{className:"cortex-location-input__coords",children:g_(N.position)}):x("span",{className:q("cortex-location-input__hint",J.failed&&"cortex-location-input__hint--failed"),children:[N.locating&&C("span",{className:"cortex-location-input__spinner"}),X(J.key)]}),x("span",{className:"cortex-location-input__actions",children:[C("button",{type:"button",className:"cortex-location-input__skip",disabled:N.submitting,onClick:()=>Q.current?.cancel(),children:X("translate_location_skip")}),C("button",{type:"button",className:"cortex-location-input__send",disabled:!N.position||N.submitting,onClick:()=>Q.current?.confirm(),children:X("translate_location_send")})]})]})]})}function T8({position:_}){let{t:$}=L(),X=a_(null),[Y,Q]=_2(!1),{lat:N,lng:Z}=_;return e6(()=>{let G=X.current;if(!G)return;return Q(!1),y1(G,{lat:N,lng:Z},()=>Q(!0))},[N,Z]),x("div",{className:"cortex-location-input cortex-location-input--settled",children:[x("div",{className:"cortex-location-input__map cortex-location-input__map--still",children:[C("div",{className:"cortex-location-input__canvas",ref:X,hidden:Y}),Y&&C("span",{className:"cortex-location-input__still-failed",children:$("translate_location_map_failed")})]}),x("div",{className:"cortex-location-input__body",children:[x("span",{className:"cortex-location-input__title",children:[C("svg",{viewBox:"0 0 20 20",fill:"none",children:C("path",{d:"M5.5 10.5 L8.5 13.5 L14.5 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),$("translate_location_shared")]}),C("span",{className:"cortex-location-input__coords",children:g_(_)})]})]})}function v8(){return x("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:"M10 1.5v3M10 15.5v3M1.5 10h3M15.5 10h3"})]})}import{jsx as I,jsxs as F_}from"react/jsx-runtime";var f8=new Map([[f_,$2]]);function Q2({message:_,toolCallPart:$,agentWorking:X}){let{config:Y,addToolResult:Q}=L(),N=$.state==="input-complete"&&!X,Z=$.state==="approval-requested"&&!X,G=Y.toolComponents?.[$.name]??(N||v($.state)?f8.get($.name):void 0);return I("div",{className:"cortex-tool-call-animated",children:G?I(G,{toolCallPart:$,message:_,setOutput:(J)=>Q($.id,$.name,J)}):N?I(j8,{toolCallPart:$}):I(N2,{toolCallPart:$,asking:Z})})}function j8({toolCallPart:_}){let{api:$,t:X,addToolResult:Y,selectedThread:Q,config:N}=L(),Z=Q?.id,[G,J]=X2({phase:"initiating"}),[z]=X2(N.trustSameOriginEmbeds),V=V0(void 0),W=V0({api:$,addToolResult:Y,toolName:_.name});if(W.current={api:$,addToolResult:Y,toolName:_.name},Y2(()=>{if(!Z)return;let B=A1({initiate:()=>W.current.api.initiateToolCall(Z,_.id),onState:J,submit:(O)=>W.current.addToolResult(_.id,W.current.toolName,O)});V.current=B,B.start();let F=(O)=>B.handleMessage(O);return window.addEventListener("message",F),()=>{if(window.removeEventListener("message",F),B.dispose(),V.current===B)V.current=void 0}},[_.id,Z]),!Z||G.phase==="unavailable"||G.phase==="settling")return I(N2,{toolCallPart:_});let U=F_("div",{className:"cortex-client-tool-embed",children:[F_("div",{className:"cortex-client-tool-embed__bar",children:[I("span",{children:X("translate_client_tool_title")}),I("button",{type:"button",className:"cortex-client-tool-embed__cancel",onClick:()=>V.current?.cancel(),children:X("translate_client_tool_cancel")})]}),G.phase==="embedded"?I("iframe",{className:"cortex-client-tool-embed__frame",src:G.embedUrl,sandbox:P1(G.embedUrl,window.location.origin,z),title:X("translate_client_tool_title"),ref:(B)=>V.current?.setSource(B?.contentWindow),onLoad:(B)=>{if(!M1(G.embedUrl,window.location.origin,z)&&k1(B.currentTarget,window.location.origin))V.current?.terminate()}}):G.phase==="error"?F_("div",{className:"cortex-client-tool-embed__status",children:[I("span",{children:X("translate_client_tool_failed")}),I("button",{type:"button",className:"cortex-client-tool-embed__retry",onClick:()=>void V.current?.start(),children:X("translate_client_tool_retry")})]}):I("div",{className:"cortex-client-tool-embed__status",children:X("translate_client_tool_loading")})]});return G.phase==="embedded"&&G.surface==="modal"?I(g8,{label:X("translate_client_tool_title"),onCancel:()=>V.current?.cancel(),children:U}):U}function g8({label:_,onCancel:$,children:X}){let Y=V0(null);return Y2(()=>{let Q=Y.current;return Q?.showModal(),()=>Q?.close()},[]),I("dialog",{ref:Y,className:"cortex-client-tool-embed-dialog","aria-label":_,onCancel:(Q)=>{Q.preventDefault(),$()},children:X})}function N2({toolCallPart:_,asking:$=!1}){let{t:X,locale:Y,respondToApproval:Q}=L(),{state:N,active:Z,gated:G,titleKey:J,statement:z,rowCount:V}=P_(_),W=A0(_);return F_("div",{className:q("cortex-tool-pill",G&&"cortex-tool-pill--gated",$&&"cortex-tool-pill--asking"),children:[F_("span",{className:"cortex-tool-pill__icon",children:[$&&I("span",{className:"cortex-tool-pill__dot"}),I("span",{className:q("cortex-tool-pill__spinner",Z&&"cortex-tool-pill__spinner--visible")}),I("svg",{className:q("cortex-tool-pill__svg","cortex-tool-pill__svg--check",N==="complete"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:I("path",{d:"M5.5 10.5 L8.5 13.5 L14.5 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),I("svg",{className:q("cortex-tool-pill__svg","cortex-tool-pill__svg--error",N==="error"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:I("path",{d:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]}),I("span",{className:q("cortex-tool-pill__title",N==="error"&&"cortex-tool-pill__title--error",N==="starting"&&z&&"cortex-tool-pill__title--pending"),children:$?K1(_,Y)??X("translate_approval_prompt"):z??X(J)}),V!==void 0&&I("span",{className:"cortex-tool-pill__meta",children:X("translate_rows_read",{count:V})}),$&&F_("span",{className:"cortex-tool-pill__actions",children:[I("button",{type:"button",className:"cortex-tool-pill__action cortex-tool-pill__action--approve",onClick:()=>void Q(W,!0),children:X("translate_approve")}),I("button",{type:"button",className:"cortex-tool-pill__action",onClick:()=>void Q(W,!1),children:X("translate_deny")})]})]})}import{jsx as K0}from"react/jsx-runtime";function Z2({message:_,toolCallPart:$,agentWorking:X}){if(!v($.state)&&!P_($).statement){if($.name==="queryGraph")return K0(Q_,{activity:"graph"});if($.name==="executeCode")return K0(Q_,{activity:"code"})}return K0(Q2,{toolCallPart:$,message:_,agentWorking:X})}import{jsx as q_,jsxs as m8}from"react/jsx-runtime";function G2(_){let{message:$,part:X,debugMode:Y,animate:Q,streaming:N,agentWorking:Z,attachments:G}=_,{t:J}=L();function z(){switch(X.type){case"text":return q_(i6,{textPart:X,role:$.role,streaming:N,attachments:G});case"thinking":return Y?q_(c6,{reasoningPart:X,streaming:N}):q_(Q_,{activity:"reasoning",className:"cortex-reasoning-animated"});case"tool-call":return Y?q_(a6,{toolCallPart:X}):q_(Z2,{toolCallPart:X,message:$,agentWorking:Z});default:return m8("p",{className:"cortex-unhandled-type",children:[J("translate_unhandled_type")," ",X.type]})}}return q_("div",{className:q("cortex-message-part",Q&&"cortex-message-part--animated",_.folded&&"cortex-message-part--folded"),"data-cortex-frontier":_.frontier?"":void 0,children:z()})}import{jsx as o,jsxs as W0}from"react/jsx-runtime";function h8({isUser:_,clipboardText:$,createdAt:X}){let{locale:Y}=L();return W0("div",{className:q("cortex-message-actions",_&&"cortex-message-actions--user"),children:[$&&o(g,{value:$}),X&&o("time",{className:"cortex-message-actions__time",dateTime:X,children:l(X,Y)})]})}function c8({count:_,animate:$,onOpen:X}){let{t:Y}=L();return o("button",{type:"button",className:q("cortex-tool-fold",$&&"cortex-message-part--animated"),onClick:X,children:Y(y_(_,"translate_one_more_step","translate_n_more_steps"),{count:_})})}function J2(_){let{message:$,parts:X,metadata:Y,debugMode:Q,animate:N,isStreaming:Z,agentWorking:G,closesTurn:J,fold:z,onOpenRun:V,frontier:W}=_,U=$.role==="assistant",B=$.role==="user",F=Z?X.length-1:-1,O=Y?.attachments??[],P=X.filter((R)=>z?.get(R)?.kind!=="hidden"),D=P.filter((R)=>R.type==="text").at(-1),H=D?X.indexOf(D):-1,K=(B||U)&&!Z&&H>=0,M=D!==P.at(-1)?H:-1,k=K&&o(h8,{isUser:B,clipboardText:D1(X),createdAt:Y?.createdAt});return W0("div",{className:"cortex-message-parts",children:[X.map((R,p)=>{let G_=z?.get(R);return W0(x8,{children:[o(G2,{part:R,message:$,debugMode:Q,animate:N,streaming:p===F,agentWorking:G,attachments:O,frontier:R===W,folded:G_?.kind==="hidden"}),G_?.kind==="more"&&o(c8,{count:G_.count,animate:N,onOpen:()=>V(G_.runId)}),p===M&&k]},$.parts.indexOf(R))}),O.length>0&&o(S6,{attachments:O,isUser:B}),Y?.isAborted&&o(C6,{}),M===-1&&k,Q&&Y&&J&&o(h6,{messageId:$.id,isAssistant:U,metadata:Y})]})}import{jsx as N_,jsxs as D0}from"react/jsx-runtime";function z2({firing:_,debugMode:$}){let{t:X,locale:Y}=L();return D0("div",{className:q("cortex-trigger-block",$&&"cortex-trigger-block--debug"),children:[D0("div",{className:"cortex-trigger-block__head",children:[N_("svg",{className:"cortex-trigger-block__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:N_("path",{d:"M6.75 1 2.5 6.75h3l-.25 4.25L9.5 5.25h-3z",fill:"currentColor"})}),$&&N_("span",{children:X("translate_trigger_fired")}),N_("span",{className:"cortex-trigger-block__name",children:_.name}),N_("time",{className:"cortex-trigger-block__time",dateTime:_.firedAt,children:l(_.firedAt,Y)})]}),$&&D0("details",{className:"cortex-trigger-block__payload",children:[N_("summary",{children:X("translate_trigger_payload")}),N_(s,{data:_.payload,expandDepth:2})]})]})}import{jsx as T_}from"react/jsx-runtime";var V2=u8(function($){let{message:X,metadata:Y,isStreaming:Q,agentWorking:N,closesTurn:Z,debugMode:G,animate:J,fold:z,onOpenRun:V,workingTurn:W,frontier:U}=$,B=J_(X.parts,{debugMode:G,isStreaming:Q});if(Y?.trigger)return T_("div",{className:"cortex-message",children:T_(z2,{firing:Y.trigger,debugMode:G})});if(B.length===0&&!Y?.attachments?.length)return T_("div",{className:"cortex-message"});return T_("div",{className:q("cortex-message",W&&"cortex-message--working-turn"),children:T_(J2,{message:X,parts:B,metadata:Y,debugMode:G,animate:J,isStreaming:Q,agentWorking:N,closesTurn:Z,fold:z,onOpenRun:V,frontier:U})})});import{jsx as t_}from"react/jsx-runtime";var p8=[{role:"user",lines:[13,9]},{role:"assistant",lines:[16,18,12]},{role:"user",lines:[11]},{role:"assistant",lines:[14,15]}];function K2(){return t_("div",{className:"cortex-widget__messages-skeleton",children:p8.map((_,$)=>t_("div",{className:`cortex-widget__msg-skel cortex-widget__msg-skel--${_.role}`,children:t_("div",{className:`cortex-widget__msg-skel-bubble cortex-widget__msg-skel-bubble--${_.role}`,children:_.lines.map((X)=>t_("div",{className:"cortex-skeleton cortex-widget__msg-skel-line",style:{width:`${X}rem`}},X))})},$))})}import{jsx as h,jsxs as s_,Fragment as o8}from"react/jsx-runtime";function d8(_){let $=Z_(null),X=Z_(null),Y=Z_(!0),Q=Z_(!0),N=Z_(!1),Z=v_(()=>{if(N.current)return;N.current=!0,queueMicrotask(()=>{N.current=!1;let V=$.current;if(!V)return;c_(V),Q.current=!0,Y.current=!1})},[]);H0(()=>{let V=X.current;if(!_||!$.current||!V)return;if(Z(),typeof ResizeObserver>"u")return;let W=0,U=new ResizeObserver(([B])=>{let F=B?.contentRect.height??0,O=F>W;if(W=F,O&&(Y.current||Q.current))Z()});return U.observe(V),()=>U.disconnect()},[_,Z]);let G=v_(()=>{Y.current=!0},[]),J=v_(()=>{if(Y.current)Z()},[Z]);function z(){let V=$.current;if(V)Q.current=X0(V)<100}return{containerRef:$,contentRef:X,onScroll:z,pin:G,settlePinned:J}}function n8({pin:_,settlePinned:$,contentRef:X},Y,Q){let[N,Z]=F0(!1);H0(()=>{Z(!1),_(),queueMicrotask(()=>Z(!0))},[Y,_]);let G=Q[Q.length-1],J=G?.role==="user"?G.id:void 0,z=J?G?.parts.find((V)=>V.type==="text")?.content:void 0;return B0(()=>{if(!J)return;_();let V=X.current;if(V&&z!==void 0)$0(V,z)},[J,z,_,X]),H0(()=>{$()},[Q,$]),N}function i8(_,$,X,Y){let[Q,N]=F0(new Set),Z=v_((z)=>N((V)=>new Set(V).add(z)),[]),[G]=F0(F1);return{folds:l8(()=>G(_,{agentWorking:$,debugMode:X,opened:Q,foldable:Y}),[G,_,$,X,Q,Y]),openRun:Z}}function r8({working:_}){let $=Z_(null),X=Z_(void 0);return B0(()=>{let Y=$.current;if(!Y)return;let Q=Y0(Y);return X.current=Q,()=>{Q.dispose(),X.current=void 0}},[]),B0(()=>X.current?.sync(_)),s_("div",{ref:$,className:"cortex-working-avatar","aria-hidden":"true",children:[s_("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[h("path",{d:"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"}),h("path",{d:"M20 3v4M22 5h-4M4 17v2M5 18H3"})]}),h("span",{className:"cortex-working-avatar__ring"})]})}function W2(_){let{config:$,selectedThread:X}=L(),{messages:Y,isAgentWorking:Q,isLoadingMessages:N,hasPendingToolCalls:Z}=l_(),{capabilities:G,composerRef:J,debugMode:z}=_,V=!N||Q,W=d8(V),U=n8(W,X?.id,Y),B=Q?O_(Y)?.id:void 0,F=$.toolComponents,O=v_((k)=>H1(k,F),[F]),{folds:P,openRun:D}=i8(Y,Q,z,O),H=Y.map((k)=>k.role).lastIndexOf("user"),K=Q&&!z,M=K?B1(Y,{foldable:O}):void 0;return s_(o8,{children:[!V?h(K2,{}):h("div",{className:_.className,children:h("div",{ref:W.containerRef,className:"cortex-message-list",onScroll:W.onScroll,children:s_("div",{ref:W.contentRef,className:"cortex-message-list__content",children:[Y.map((k,R)=>h(V2,{message:k,metadata:k.metadata,isStreaming:k.id===B,agentWorking:Q,fold:P.get(k.id),onOpenRun:D,closesTurn:k.role==="assistant"&&Y[R+1]?.role!=="assistant",debugMode:z,animate:U,workingTurn:K&&R>H,frontier:k.id===B?M:void 0},k.id)),Q&&!M&&h("div",{className:"cortex-working-thinking","data-cortex-frontier":"",children:h(Q_,{activity:"reasoning"})}),h(r8,{working:Q},X?.id)]})})}),!Z&&h(d_,{capabilities:G,composerRef:J})]})}import{jsx as e_,jsxs as a8}from"react/jsx-runtime";function D2(_){let{debugMode:$,selectedThread:X}=L(),{screens:Y}=_;return a8("div",{className:q("cortex-widget__screen",Y.screen==="chat"&&"cortex-widget__screen--active",Y.screen!=="chat"&&"cortex-widget__screen--right"),children:[e_(U6,{onToggleSidebar:Y.toggleSidebar,onToggleDebug:_.onToggleDebug,onOpenHistory:Y.openHistory}),X?e_(W2,{className:"cortex-widget__messages",debugMode:$,capabilities:_.capabilities,composerRef:_.composerRef}):e_(I6,{onThreadSelected:_.onThreadSelected}),e_("div",{className:"cortex-widget__sidebar-backdrop",onClick:Y.closeSidebar})]})}import{useState as $4}from"react";import{useEffect as q0,useRef as q2,useState as U0}from"react";import{useChat as _4}from"@tanstack/ai-react";import{useEffect as t8,useLayoutEffect as s8,useState as e8}from"react";function H2(_,{sessionRef:$,pendingSendRef:X}){let[Y]=e8(_);return s8(()=>{return $.current=Y,()=>{if($.current===Y)$.current=void 0}},[Y,$]),t8(()=>{if(!X.current.length)return;let Q=setTimeout(()=>{let N=X.current;X.current=[],(async()=>{for(let{prompt:Z,attachments:G}of N)await Y.send(Z,G)})()});return()=>clearTimeout(Q)},[Y,X]),Y}import{useRef as B2}from"react";function F2(_){let $=B2(_);$.current=_;let X=B2(Promise.resolve(void 0));async function Y(Q){let N=$.current;if(!N.isAlive()||Q!==N.threadId)return;return U1({api:N.api,threadId:Q,isStale:()=>!$.current.isAlive(),isStreaming:()=>$.current.isStreaming(),setMessages:(Z)=>$.current.setMessages(Z)})}return function(N){return X.current=X.current.then(()=>Y(N)),X.current}}function U2(_){let{thread:$,api:X}=_,Y=q2(!0),[Q,N]=U0(!1),Z=q2(null),G=F2({api:X,threadId:$.id,isAlive:()=>Y.current,isStreaming:()=>Z.current.chat.isLoading,setMessages:(H)=>Z.current.chat.setMessages(H)}),[J]=U0(()=>Q0({threadId:$.id,isAlive:()=>Y.current,onToolCall:()=>Z.current.props.configRef.current.hooks?.onToolCall,deliver:(H)=>Z.current.chat.addToolResult(H),setRunning:(H)=>Z.current.props.setRunning($.id,H),reloadThreads:()=>Z.current.props.reloadThreads(),refreshMessages:()=>G($.id),onTurnFinished:()=>Z.current.props.onTurnFinished(),onSendFailed:()=>Z.current.props.onSendFailed()})),[z]=U0(()=>q1({api:X,thread:{id:$.id,isRunning:$.isRunning},mode:_.mode,localMessages:()=>Z.current.chat.messages,onHydrated:(H)=>{if(Y.current)J.hydrated(H,$.isRunning)},onTranscriptCarried:(H)=>{if(Y.current)J.transcriptCarried(H)},setLoadingMessages:(H)=>{if(Y.current)N(H)}})),V=_4({threadId:$.id,persistence:!0,initialMessages:_.initialMessages,connection:z,onChunk:()=>{if(Y.current)J.chunkArrived()},onError:()=>{if(Y.current)J.streamFailed()}});Z.current={chat:V,props:_};async function W(H,K){J.sendStarted();let M={id:M_(),role:"user",parts:[{type:"text",content:H}],metadata:{createdAt:new Date().toISOString(),attachments:K}};await Z.current.chat.append(M)}async function U(){if(!Z.current.chat.isLoading)return;let{aborted:H}=await X.abortStream($.id).catch(()=>({aborted:!1}));if(!Y.current)return;if(H)J.abortConfirmed();Z.current.chat.stop()}function B(H,K,M){return Z.current.chat.addToolResult({toolCallId:H,tool:K,output:M}).catch((k)=>{throw G($.id),k})}function F(H,K){return E1(Z.current.chat,H,K)}function O(H){if(Z.current.chat.isLoading)return;if(H.isRunning){Z.current.props.remount(H,Z.current.chat.messages);return}G(H.id)}q0(()=>{return Y.current=!0,()=>{Y.current=!1}},[]),H2(()=>({threadId:$.id,send:W,abort:U,addToolResult:B,respondToApproval:F,reattach:O,transcriptUpdated:(H,K)=>{if(H===$.id)J.transcriptUpdated(K)}}),{sessionRef:_.sessionRef,pendingSendRef:_.pendingSendRef});let{messages:P,isLoading:D}=V;return q0(()=>{J.loadingChanged(D,()=>Z.current.chat.messages)},[J,D]),q0(()=>{Z.current.props.publish({messages:P,isAgentWorking:D,isLoadingMessages:Q,hasPendingToolCalls:!D&&a(P).length>0})},[P,D,Q]),null}import{jsx as L2,jsxs as X4}from"react/jsx-runtime";function O2({selection:_,threads:$,children:X,...Y}){let{session:Q}=_,[N,Z]=$4();if(!Q)return L2(p_.Provider,{value:u_,children:X});let G=`${Q.thread.id}:${Q.epoch}`,J=N&&(N.key===G||Q.mode==="reload")?N.value:u_;return X4(p_.Provider,{value:J,children:[L2(U2,{thread:Q.thread,mode:Q.mode,initialMessages:Q.initialMessages,setRunning:$.setRunning,reloadThreads:$.reload,remount:_.remount,publish:(z)=>Z({key:G,value:z}),...Y},G),X]})}import{useSyncExternalStore as Y4}from"react";function P2(_){return Y4(($)=>{let X=window.matchMedia(_);return X.addEventListener("change",$),()=>X.removeEventListener("change",$)},()=>window.matchMedia(_).matches,()=>!1)}import{jsx as E,jsxs as c,Fragment as Q4}from"react/jsx-runtime";function M2(_){let{locale:$,t:X,threads:Y,selectedThread:Q,deleteThread:N}=L(),Z=Y?.length??0;return c("div",{className:_.className,"aria-hidden":_.hidden||void 0,inert:_.hidden||void 0,children:[c("div",{className:"cortex-widget__threads-header",children:[E("button",{type:"button",onClick:()=>_.onBackRequested(),"aria-label":X("translate_back"),className:"cortex-widget__back-btn",children:E("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"cortex-widget__back-icon",children:E("path",{d:"M10 3L5 8l5 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),c("div",{children:[E("h2",{className:"cortex-widget__threads-title",children:X("translate_history")}),E("p",{className:"cortex-widget__threads-count",children:X(y_(Z,"translate_one_conversation","translate_n_conversations"),{count:Z})})]}),c("button",{onClick:()=>_.onNewChatRequested(),className:"cortex-widget__new-chat-btn",children:[E("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:E("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),X("translate_new")]})]}),E("div",{className:"cortex-widget__threads-list",children:Y===void 0?[1,2,3,4].map((G)=>c("div",{className:"cortex-widget__thread-skeleton",children:[E("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-icon"}),E("div",{className:"cortex-widget__thread-skeleton-lines",children:E("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-line",style:{width:`${40+G*12}%`}})})]},G)):c(Q4,{children:[Y.map((G)=>{let J=G.id===Q?.id,z=l(G.updatedAt,$);return c("button",{onClick:()=>_.onThreadSelected(G),className:q("cortex-widget__thread-item",J&&"cortex-widget__thread-item--active"),children:[E("div",{className:q("cortex-widget__thread-icon",J&&"cortex-widget__thread-icon--active"),children:E("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:E("path",{d:b.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),c("div",{className:"cortex-widget__thread-info",children:[c("div",{className:"cortex-widget__thread-title-row",children:[E("p",{className:q("cortex-widget__thread-title",J&&"cortex-widget__thread-title--active"),children:G.title??X("translate_untitled")}),G.isRunning&&c("span",{className:q("cortex-widget__thread-running",J&&"cortex-widget__thread-running--active"),children:[E("span",{className:"cortex-widget__thread-running-dot"}),X("translate_running")]})]}),z&&E("p",{className:"cortex-widget__thread-time",children:z})]}),E("span",{role:"button",tabIndex:0,onClick:(V)=>{V.stopPropagation(),N(G.id)},onKeyDown:(V)=>{if(V.key!=="Enter"&&V.key!==" ")return;V.preventDefault(),V.stopPropagation(),N(G.id)},className:q("cortex-widget__thread-delete",J&&"cortex-widget__thread-delete--active"),children:E("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:E("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),E("svg",{className:q("cortex-widget__thread-arrow",J&&"cortex-widget__thread-arrow--active"),width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:E("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},G.id)}),!Y.length&&c("div",{className:"cortex-widget__threads-empty",children:[E("div",{className:"cortex-widget__threads-empty-icon",children:E("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__threads-empty-svg",children:E("path",{d:b.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),E("p",{className:"cortex-widget__threads-empty-title",children:X("translate_no_threads_yet")}),E("p",{className:"cortex-widget__threads-empty-subtitle",children:X("translate_start_a_new_conversation")}),E("button",{onClick:()=>_.onNewChatRequested(),className:"cortex-widget__new-chat-btn cortex-widget__new-chat-btn--empty-state",children:X("translate_new_chat")})]})]})})]})}import{jsx as A2,jsxs as Z4}from"react/jsx-runtime";var N4="(max-width: 768px)";function k2(_){_.preventDefault()}function E2(_){let{screens:$}=_,X=P2(N4),Y=_.viewMode==="full"?X&&!$.sidebarOpen:$.screen!=="threads";return A2("div",{className:q("cortex-widget",_.className),"data-cortex-theme":_.theme,children:Z4("div",{className:q("cortex-widget__container",_.viewMode==="full"&&"cortex-widget__container--full",$.sidebarOpen&&"cortex-widget__container--sidebar-open"),onDragOver:k2,onDrop:k2,children:[A2(M2,{className:q("cortex-widget__screen",$.screen==="threads"&&"cortex-widget__screen--active",$.screen!=="threads"&&"cortex-widget__screen--left"),hidden:Y,onThreadSelected:_.onThreadSelected,onNewChatRequested:_.onNewChat,onBackRequested:$.closeHistory}),_.children]})})}import{jsx as $1}from"react/jsx-runtime";function J4({config:_,className:$}){let X=R2(_);X.current=_;let[Y]=_1(()=>G1(()=>X.current.transport)),Q=H6(Y),[N,Z]=_1(!1),[G,J]=_1();G4(()=>d1(_.theme,J),[_.theme]);let z=F6(),[V,W]=_1(0),U=Q6(Y,V),B=R2(null),F=V6({api:Y,threads:Q,getHooks:()=>X.current.hooks}),{sessionRef:O,selection:P,queue:D,send:H,pendingSendRef:K}=F,{selected:M,selectedRef:k}=P,R=W6({threads:Q,selectedRef:k,sessionRef:O,deselect:P.deselect,onReconnect:()=>W(($_)=>$_+1)});K6({getConfig:()=>X.current,onEvent:R.onEvent,onMount:()=>void Q.reload(),onReconnect:R.onReconnect});let p=i1(_.locale),G_={config:_,locale:p,t:($_,b2)=>r1(p,$_,b2),api:Y,debugMode:N,scheme:G,capabilities:U,threads:Q.threads,selectedThread:M,deleteThread:F.deleteThread,send:H,...D6(O),queue:D.value};function y2(){D.store.discardConsumed(),setTimeout(()=>B.current?.focusInput())}function I2(){D.store.restoreConsumed(k.current?.id)}function L0($_){F.openThread($_),z.showChat()}function w2(){P.deselect(),z.showChat()}function C2(){Z(($_)=>!$_)}return $1(N0.Provider,{value:G_,children:$1(E2,{className:$,theme:_.theme,viewMode:_.viewMode??"helper",screens:z,onThreadSelected:L0,onNewChat:w2,children:$1(O2,{selection:P,threads:Q,api:Y,configRef:X,sessionRef:O,pendingSendRef:K,onTurnFinished:y2,onSendFailed:I2,children:$1(D2,{screens:z,capabilities:U,composerRef:B,onToggleDebug:C2,onThreadSelected:L0})})})})}export{J4 as CortexChatWidget};
4
+ `)}function I1(_,$){if($&&_.name in $)return!1;return _.name!==r_||!f(_.state)}function i0(_,$){if(_.type!=="tool-call")return!0;return!f(_.state)&&!_.approval&&$.foldable(_)}function y1(_,$){let Y=w_(_);if(!Y)return;let Q=B_(Y.parts,{debugMode:!1,isStreaming:!0}),X=Q.at(-1);if(X&&i0(X,$))return X;return Q.filter((Z)=>Z.type==="tool-call"&&i0(Z,$)).at(-1)}function C1(){let _=new Map;return($,Y)=>{let Q=new Map;for(let[X,Z]of I5($,Y)){let G=_.get(X);Q.set(X,G&&C5(G,Z)?G:Z)}return _=Q,Q}}function I5(_,$){let Y=new Map;if($.debugMode)return Y;let X=$.agentWorking||__(_).length>0?y5(_):_,Z=[];function G(){let J=Z[0]?.part.id;if(Z.length>1&&J&&!$.opened.has(J))for(let[N,{messageId:V,part:K}]of Z.entries()){let z=Y.get(V)??new Map;Y.set(V,z);let F=N===Z.length-1;z.set(K,F?{kind:"more",count:Z.length-1,runId:J}:{kind:"hidden"})}Z=[]}for(let J of X){if(J.role!=="assistant"){G();continue}let N=B_(J.parts,{debugMode:!1,isStreaming:!1});for(let V of N)if(V.type==="tool-call"&&f(V.state)&&$.foldable(V))Z.push({messageId:J.id,part:V});else G()}return G(),Y}function y5(_){let $=_.map((Y)=>Y.role).lastIndexOf("user");return $<0?[]:_.slice(0,$)}function C5(_,$){if(_.size!==$.size)return!1;for(let[Y,Q]of _){let X=$.get(Y);if(!X||X.kind!==Q.kind)return!1;if(Q.kind==="more"&&X.kind==="more"){if(Q.count!==X.count||Q.runId!==X.runId)return!1}}return!0}import{EventType as t0}from"@tanstack/ai";import{fetchServerSentEvents as a0}from"@tanstack/ai-client";function w5(_){for(let $=_.length-1;$>=0;$-=1){let Y=_[$],Q="parts"in Y&&Y.parts.some((X)=>X.type==="tool-result"||X.type==="tool-call"&&X.state==="approval-responded");if(Y.role==="user"||Q)return _.slice($,$+1)}return _.slice(-1)}function S5(_){if(_.state==="approval-responded"){let $=_.approval?.approved;if($===void 0)return null;return{toolCallId:_.id,output:null,state:$?"approved":"denied"}}if(!f(_.state))return null;return{toolCallId:_.id,output:_.output??null,state:_.state==="error"?"error":"complete"}}function b5(_){let[$]=_;if(!$||$.role!=="assistant"||!("parts"in $))return null;let Y=$.parts.flatMap((Q)=>{let X=Q.type==="tool-call"?S5(Q):null;return X?[X]:[]});return Y.length>0?Y:null}async function*o0(_,$,Y){for await(let Q of _){if(Q.type!==t0.MESSAGES_SNAPSHOT){yield Q;continue}let X=$.localMessages(),Z=X.findIndex((J)=>J.id===Y),G=Z===-1?[]:X.slice(Z+1).filter((J)=>J.role==="user");$.onTranscriptCarried?.(Q.timestamp??Date.now()),yield{...Q,messages:[...Q.messages,...G]}}}function w1(_){let{api:$,thread:Y}=_,Q=async()=>({headers:await $.resolveHeaders()}),X=a0(()=>$.resolveUrl("/chat"),Q),Z=function(N,V,K,z){let F=w5(N),B=b5(F),q=B?X.connect([],{...V,[h0]:B},K,z):X.connect(F,V,K,z);return o0(q,_,N.at(-1)?.id)},G=a0(()=>$.resolveUrl(`/chat/${Y.id}/stream`),Q),J=[];return{connect:Z,async*joinRun(N,V){yield{type:t0.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:J},yield*o0(G.joinRun(N,V),_,J.at(-1)?.id)},hydrate:async()=>{let N=await T5(_);return J=N.messages,N}}}async function T5(_){let{api:$,thread:Y,mode:Q}=_,X=Y.isRunning?{runId:Y.id}:null;if(Q==="skip")return{messages:[],activeRun:X,interrupts:null};if(Q==="load")_.setLoadingMessages?.(!0);try{let G=(await $.listMessages(Y.id)).map(B1);return _.onHydrated?.(G),{messages:G,activeRun:X,interrupts:null}}finally{_.setLoadingMessages?.(!1)}}async function S1(_){if(_.isStale?.()||_.isStreaming())return;try{let $=await _.api.listMessages(_.threadId);if(_.isStale?.()||_.isStreaming())return;let Y=$.map(B1);return _.setMessages(Y),Y}catch{return}}function S_(){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(_,(Y)=>Y.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}function b1(_){let{api:$}=_,Y=new Set,Q=new Set,X=[],Z=[];function G(){return X}function J(D){return Y.add(D),()=>{Y.delete(D)}}function N(D){X=D;for(let H of Y)H()}function V(D,H){N(X.map((W)=>W.localId===D?{...W,...H}:W))}function K(D){if(Q.delete(D))return;V(D,{status:"error"})}function z(D){let H=[];for(let W of D){let M=m0(W.type,W.size)!=="ok"||X.filter((k)=>k.status!=="error").length>=g0,A=S_();if(N([...X,{localId:A,filename:W.name,status:M?"error":"uploading"}]),!M)H.push({localId:A,file:W})}if(!H.length)return;_.ensureThread().then((W)=>{for(let{localId:M,file:A}of H){if(Q.delete(M))continue;V(M,{threadId:W}),$.uploadAttachment(W,A).then((k)=>{if(Q.delete(M)){$.deleteAttachment(k.id).catch(()=>{});return}V(M,{status:"ready",attachmentId:k.id,summary:k})},()=>K(M))}},()=>{for(let{localId:W}of H)K(W)})}function F(D){let H=X.find((W)=>W.localId===D);if(!H)return;if(H.status==="uploading"){Q.add(D),N(X.filter((W)=>W.localId!==D));return}if(H.attachmentId){V(D,{status:"deleting"}),$.deleteAttachment(H.attachmentId).then(()=>N(X.filter((W)=>W.localId!==D)),()=>V(D,{status:"error"}));return}N(X.filter((W)=>W.localId!==D))}function B(D){let H=[];for(let W of X){if(W.threadId!==void 0&&W.threadId!==D){H.push(W);continue}if(W.status==="uploading")Q.add(W.localId);else if(W.status==="ready"&&W.threadId===D&&W.attachmentId)$.deleteAttachment(W.attachmentId).catch(()=>{})}N(H)}function q(){let D=X.flatMap((H)=>H.status==="ready"&&H.summary?[{...H,status:"ready",summary:H.summary}]:[]);return N(X.filter((H)=>H.status!=="ready")),Z=D,D}function O(D){let H=Z;if(Z=[],H.some((W)=>W.threadId!==D))return;N([...H.map((W)=>({...W,status:"error"})),...X])}function P(){Z=[]}return{getState:G,subscribe:J,accept:z,remove:F,clear:B,consumeReady:q,restoreConsumed:O,discardConsumed:P}}function T1(_){return{uploading:_.some(($)=>$.status==="uploading"),busy:_.some(($)=>$.status==="uploading"||$.status==="deleting"),hasReady:_.some(($)=>$.status==="ready")}}function v1(_,$,Y){try{return new URL(_).origin===$&&!Y?"allow-scripts allow-forms allow-popups":"allow-scripts allow-forms allow-popups allow-same-origin"}catch{return"allow-scripts allow-forms allow-popups"}}function f1(_,$,Y){try{return Y===!0&&new URL(_).origin===$}catch{return!1}}function j1(_,$){try{return _.contentWindow?.location.origin===$}catch{return!1}}function g1(_){let $=!1,Y=!1,Q,X;function Z(N){if(!$)_.onState(N)}function G(){if($)return;Y=!1,Z({phase:"error"})}function J(N){if($||Y)return;Y=!0,Z({phase:"settling"});try{let V=_.submit(N);if(V instanceof Promise)V.catch(G)}catch{G()}}return{async start(){Z({phase:"initiating"});try{let N=await _.initiate();if(!N.embed){Z({phase:"unavailable"});return}if(!/^https?:$/.test(new URL(N.embedUrl).protocol)){Z({phase:"error"});return}Q=N.embedOrigin,Z({phase:"embedded",embedUrl:N.embedUrl,surface:N.surface,embedOrigin:N.embedOrigin})}catch(N){let V=N instanceof Error?N.message:"";Z({phase:/HTTP 404/.test(V)?"unavailable":"error"})}},setSource(N){if(N!==null&&N!==void 0)X=N},handleMessage(N){if(!Q)return;if(X===void 0||N.source!==X)return;let V=l0(N.data,N.origin,Q);if(!V)return;J({status:V.status,reference:V.reference,result:V.result})},cancel(){J({status:"cancelled"})},terminate(){if($||Y)return;Q=void 0,X=void 0,Z({phase:"error"})},dispose(){$=!0}}}function m1(_,$,Y){let Q=_.interrupts.find((X)=>X.id===$);if(!Q||!("resolveInterrupt"in Q))return _.addToolApprovalResponse({id:$,approved:Y});return Q.resolveInterrupt({approved:Y}),Promise.resolve()}async function b_(_,$){let Y=await import("leaflet"),Q=!$.interactive,X=Y.map(_,{center:$.center,zoom:$.zoom,zoomControl:!Q,dragging:!Q,scrollWheelZoom:!Q,doubleClickZoom:!Q,touchZoom:!Q,boxZoom:!Q,keyboard:!Q});Y.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(X);let Z=new ResizeObserver(()=>X.invalidateSize());return Z.observe(_),{leaflet:Y,map:X,dispose(){Z.disconnect(),X.remove()}}}var a_={position:void 0,locating:!1,locateFailed:!1,mapFailed:!1,submitting:!1,deliveryFailed:!1},v5={center:{lat:20,lng:0},zoom:2},f5=13,e0=16,j5=1e4;function x1(_,$){let Y=a_,Q=!1,X=!1,Z,G,J,N=0;function V(B){if(Y={...Y,...B},!Q)$.onState(Y)}function K(){let B=Y.position;if(!Z||!B)return;let{leaflet:q,map:O}=Z;if(G)G.setLatLng(B);else{let P=q.marker(B,{draggable:!Y.submitting}).addTo(O);P.on("dragend",()=>{let{lat:D,lng:H}=P.getLatLng();z({lat:D,lng:s0(H)})}),G=P}J?.remove(),J=B.accuracy?q.circle(B,{radius:B.accuracy}).addTo(O):void 0}function z(B){if(Y.submitting)return;N+=1,V({position:B,locating:!1,locateFailed:!1}),K()}function F(B){if(Q||X)return;X=!0,N+=1,G?.dragging?.disable(),V({submitting:!0,locating:!1,deliveryFailed:!1});let q=()=>{X=!1,G?.dragging?.enable(),V({submitting:!1,deliveryFailed:!0})};try{let O=$.submit(B);if(O instanceof Promise)O.catch(q)}catch{q()}}return{async start(){let B=$.center?{center:$.center,zoom:f5}:v5,q;try{q=await b_(_,{...B,interactive:!0})}catch{V({mapFailed:!0});return}if(Q){q.dispose();return}Z=q,q.map.on("click",(O)=>z({lat:O.latlng.lat,lng:s0(O.latlng.lng)})),K()},locate(){if(Y.locating||Y.submitting)return;if(!navigator.geolocation){V({locateFailed:!0});return}N+=1;let B=N;V({locating:!0,locateFailed:!1}),navigator.geolocation.getCurrentPosition(({coords:q})=>{if(Q||B!==N)return;let O={lat:q.latitude,lng:q.longitude,accuracy:Math.round(q.accuracy)};z(O),Z?.map.setView(O,e0)},()=>{if(B===N)V({locating:!1,locateFailed:!0})},{enableHighAccuracy:!0,timeout:j5})},confirm(){if(Y.position)F({status:"completed",result:Y.position})},cancel(){F({status:"cancelled"})},dispose(){Q=!0,Z?.dispose()}}}function h1(_,$,Y){let Q=!1,X;return b_(_,{center:$,zoom:e0,interactive:!1}).then((Z)=>{if(Q){Z.dispose();return}X=Z.dispose,Z.leaflet.marker($).addTo(Z.map)},()=>{if(!Q)Y()}),()=>{Q=!0,X?.()}}function s0(_){if(_>=-180&&_<=180)return _;return((_+180)%360+360)%360-180}function _6(_){if(!_||typeof _!=="object")return!1;let{lat:$,lng:Y}=_;return typeof $==="number"&&typeof Y==="number"&&Math.abs($)<=90&&Math.abs(Y)<=180}function u1(_){let $=_&&typeof _==="object"?_.center:void 0;return _6($)?$:void 0}function c1(_){if(!_||typeof _!=="object")return;let{status:$,result:Y}=_;if($!=="completed"||!_6(Y))return;let{accuracy:Q}=Y;return{...Y,...typeof Q==="number"?{accuracy:Q}:{}}}function o_(_){let $=`${_.lat.toFixed(4)}, ${_.lng.toFixed(4)}`;return _.accuracy?`${$} ±${_.accuracy} m`:$}function p1(_){if(_.locating)return{key:"translate_location_locating",failed:!1};if(_.deliveryFailed)return{key:"translate_location_send_failed",failed:!0};if(_.locateFailed)return{key:"translate_location_locate_failed",failed:!0};if(_.mapFailed)return{key:"translate_location_map_failed",failed:!0};return{key:"translate_location_hint",failed:!1}}function d1(_){return Math.min(1000*2**(_-1),30000)}var g5=1e4;function l1(_){let $,Y,Q=0,X=!1;function Z(){let{wsUrl:J,transport:N}=_.getConfig();if(J===!1)return;let V=m5(J,N.baseUrl);F1(N).then((K)=>{if(X)return;$=new WebSocket(x5(V,K)),$.addEventListener("open",()=>{let z=$;setTimeout(()=>{if($===z&&!X)Q=0},g5),_.onOpen?.()}),$.addEventListener("message",(z)=>{let F=z.data;if(typeof F!=="string")return;let B;try{B=JSON.parse(F)}catch{return}_.onEvent(B)}),$.addEventListener("close",G)}).catch(G)}function G(){if(X||Y)return;Q+=1,Y=setTimeout(()=>{Y=void 0,Z()},d1(Q))}return Z(),{close(){X=!0,clearTimeout(Y),$?.close()}}}function m5(_,$){if(_)return _;let Y=typeof $==="string"?$:$(),Q=new URL(Y,window.location.origin);return Q.protocol=Q.protocol==="https:"?"wss:":"ws:",Q.pathname=Q.pathname.replace(/\/$/,"")+"/ws",Q.toString()}function x5(_,$){let Y=$.Authorization??$.authorization;if(!Y?.startsWith("Bearer "))return _;let Q=new URL(_,window.location.origin);if(Q.searchParams.has("token"))return Q.toString();return Q.searchParams.set("token",Y.slice(7)),Q.toString()}function n1(_,$,Y=d1){let Q=!1,X,Z=0;function G(){_.getCapabilities().then((J)=>{if(!Q)$(J)},()=>{if(Q)return;Z+=1,X=setTimeout(G,Y(Z))})}return G(),function(){Q=!0,clearTimeout(X)}}function t_(_){return[..._].sort(($,Y)=>{let Q=Date.parse(Y.updatedAt)-Date.parse($.updatedAt);if(Q!==0)return Q;return Date.parse(Y.createdAt)-Date.parse($.createdAt)})}function T_(_,$){let Y=[..._],Q=Y.findIndex((X)=>X.id===$.id);if(Q===-1)Y.push($);else Y[Q]={...Y[Q],...$};return t_(Y)}function s_(_,$){return _.filter((Y)=>Y.id!==$)}function i1(_,$){switch($.type){case"thread:deleted":return s_(_,$.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return T_(_,$.payload.thread);default:return _}}import{marked as h5}from"marked";import u5 from"dompurify";function v_(_,$=[]){if(!_)return"";let Y=h5.parse(_,{async:!1});if(Y=Y.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'),$.length)Y=c5(Y,$);return u5.sanitize(Y,{FORBID_TAGS:["img","picture","source"]})}function c5(_,$){let Y=document.createElement("template");Y.innerHTML=_;let Q=[...$].sort((G,J)=>G.length-J.length),X=Q[Q.length-1]?.length??0,Z=0;for(let G of p5(Y.content)){if(Z>=X)break;G.replaceWith(...d5(G.data,Z,Q)),Z+=G.data.length}return Y.innerHTML}function p5(_){let $=document.createTreeWalker(_,4),Y=[];for(let Q=$.nextNode();Q;Q=$.nextNode())if(Q.data.trim())Y.push(Q);return Y.reverse()}function d5(_,$,Y){let Q=[],X=_.length;for(let Z of Y){if(Z.length<=$)continue;if(X<=0)break;let G=Math.min(X,Z.length-$);if(G<X&&/[\uDC00-\uDFFF]/.test(_[X-G]))G+=1;let J=document.createElement("span");J.className="cortex-stream-fade",J.style.animationDelay=`-${Z.age}ms`,J.textContent=_.slice(X-G,X),Q.unshift(J),X-=G,$+=G}if(X>0)Q.unshift(document.createTextNode(_.slice(0,X)));return Q}import{marked as Y6}from"marked";function $6(){let _=null;return($)=>{let Y=/^ {0,3}(`{3,}|~{3,})(.*)$/.exec($),Q=Y?.[1],X=Y?.[2]??"";if(Q){let Z=Q.charAt(0);if(_){if(Z===_.marker&&Q.length>=_.length&&X.trim()==="")return _=null,"close";return"inside"}if(Z==="`"&&X.includes("`"))return"outside";return _={marker:Z,length:Q.length},"open"}return _?"inside":"outside"}}var l5=/^\s*!\[([^\]]*)\]\(attachment#([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)\s*$/i,n5=/^\s*(`{3,}|~{3,})/;function r1(_,$){let Y=[],Q=[],X=null;function Z(V=!1){if(Q.length)Y.push(...r5(Q.join(`
5
+ `),V));Q=[]}function G(V){if(X)Y.push({kind:"media",...X,source:X.source.join(`
6
+ `),closed:V});X=null}let J=$6(),N=_.split(`
7
+ `);for(let[V,K]of N.entries()){let z=J(K);if(X){if(z==="close")G(!0);else X.source.push(K);continue}if(z==="open"&&V===N.length-1)break;let F=i5(K,z,$);if(!F){Q.push(K);continue}if(Z(),F.kind==="media")X={language:F.language,source:[]};else Y.push(F)}return G(!1),Z(!0),Y}function i5(_,$,Y){if($==="open"){let X=_.replace(n5,"").trim().split(/\s+/)[0],Z=Y.find((G)=>G===X);return Z?{kind:"media",language:Z}:void 0}let Q=$==="outside"?l5.exec(_):null;return Q?{kind:"attachment",alt:Q[1]??"",id:(Q[2]??"").toLowerCase()}:void 0}function r5(_,$){let Y=Y6.lexer(_);if(!Y.some((K)=>K.type==="table"))return[{kind:"markdown",text:_}];let Q=[];Y6.walkTokens(Y,(K)=>{if(K.type==="def")Q.push(K.raw.trim())});let X=Q.join(`
8
+ `),Z=(K)=>X?`${X}
9
+
10
+ ${K}`:K,G=[],J="";function N(){if(J.trim())G.push({kind:"markdown",text:Z(J)});J=""}let V=Y.filter((K)=>K.type!=="def");for(let[K,z]of V.entries()){if(z.type!=="table"){J+=z.raw;continue}N();let F=V.slice(K+1).some((B)=>B.raw.trim()!=="");G.push({kind:"table",text:Z(z.raw.trimEnd()),closed:F||!$})}return N(),G}var a5=/^-?(?:0|[1-9]\d*)(?:\.\d*[1-9])?$/;function o5(_){return a5.test(_)&&_!=="-0"&&_.replace(/[-.]/g,"").replace(/^0/,"").length<=15}var t5=32767,Q6=new TextEncoder;function a1(_){return Array.from(_.rows,($)=>Array.from($.cells,s5))}function s5(_){let $=_.cloneNode(!0);if($ instanceof Element)$.querySelectorAll("br").forEach((Y)=>Y.replaceWith(`
11
+ `));return($.textContent??"").trim()}function o1(_){return new Blob([Z8(Y8(_))],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}function e5(_){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 _8(_){let $="";for(let Y=_+1;Y>0;Y=Math.floor((Y-1)/26))$=String.fromCharCode(65+(Y-1)%26)+$;return $}function $8(_){return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetData>${_.map((Y,Q)=>{let X=Y.map((Z,G)=>{let J=`${_8(G)}${Q+1}`,N=Q===0?' s="1"':"";return Q>0&&o5(Z)?`<c r="${J}"${N}><v>${Z}</v></c>`:`<c r="${J}"${N} t="inlineStr"><is><t xml:space="preserve">${e5(Z.slice(0,t5))}</t></is></c>`}).join("");return`<row r="${Q+1}">${X}</row>`}).join("")}</sheetData></worksheet>`}function Y8(_){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:$8(_)}]}var Q8=Array.from({length:256},(_,$)=>{let Y=$;for(let Q=0;Q<8;Q++)Y=Y&1?3988292384^Y>>>1:Y>>>1;return Y>>>0});function X8(_){let $=4294967295;for(let Y of _)$=(Q8[($^Y)&255]??0)^$>>>8;return($^4294967295)>>>0}function Z8(_){let $=[],Y=[],Q=0;for(let V of _){let K=Q6.encode(V.name),z=Q6.encode(V.text),F=X8(z),B=new DataView(new ArrayBuffer(30));B.setUint32(0,67324752,!0),B.setUint16(4,20,!0),B.setUint16(6,2048,!0),B.setUint32(14,F,!0),B.setUint32(18,z.length,!0),B.setUint32(22,z.length,!0),B.setUint16(26,K.length,!0),$.push(new Uint8Array(B.buffer),K,z);let q=new DataView(new ArrayBuffer(46));q.setUint32(0,33639248,!0),q.setUint16(4,20,!0),q.setUint16(6,20,!0),q.setUint16(8,2048,!0),q.setUint32(16,F,!0),q.setUint32(20,z.length,!0),q.setUint32(24,z.length,!0),q.setUint16(28,K.length,!0),q.setUint32(42,Q,!0),Y.push(new Uint8Array(q.buffer),K),Q+=30+K.length+z.length}let X=Y.reduce((V,K)=>V+K.length,0),Z=new DataView(new ArrayBuffer(22));Z.setUint32(0,101010256,!0),Z.setUint16(8,_.length,!0),Z.setUint16(10,_.length,!0),Z.setUint32(12,X,!0),Z.setUint32(16,Q,!0);let G=[...$,...Y,new Uint8Array(Z.buffer)],J=new Uint8Array(G.reduce((V,K)=>V+K.length,0)),N=0;for(let V of G)J.set(V,N),N+=V.length;return J}var G6=new Set(["flatten","fold","density","impute","regression","loess","quantile","sample"]),G8=`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: ${[...G6,"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 J6(_,$){if(_==="url")return"Charts may only use inline data and no URLs.";if(_==="sequence"||_==="graticule")return"Charts may only use inline data.";if(G6.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(J8.has(_)&&typeof $==="string"&&!N8($))return"Charts may only use simple expressions over datum.";if(_==="usermeta")return"Charts may not carry usermeta.";if(typeof $==="string"&&e_($))return"Charts may not reference URLs.";if((_==="width"||_==="height")&&V8($)>4000)return"Charts may be at most 4000 pixels wide or tall.";return}var J8=new Set(["calculate","filter","test","signal","labelExpr"]),X6=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 N8(_){if(_.length>500||/[\\`]/.test(_))return!1;let $=_.replace(/'[^']*'|"[^"]*"/g,'""');for(let[,Q]of $.matchAll(/([A-Za-z_$][\w$]*)\s*\(/g))if(!X6.has(Q??""))return!1;let Y=$.replace(/(datum|parent)(\s*\.[\w$]+|\s*\[\s*""\s*\])+|\b\d[\w.]*/g,"").matchAll(/[A-Za-z_$][\w$]*/g);for(let[Q]of Y)if(!X6.has(Q)&&!["true","false","null"].includes(Q))return!1;return!0}function V8(_){if(typeof _==="number")return _;let $=_?.step;return typeof $==="number"?$:0}function Z6(_,$){let Y=_?.features,Q=Array.isArray(_)?_.length:Array.isArray(Y)?Y.length:-1;if(Q<0)return J6($,_)??s1(t1(_,$),f_);return Q>200?"Charts may hold at most 200 rows.":void 0}function f_(_,$=""){if($==="values")return Z6(_,$);if($==="datasets")return s1(t1(_),Z6);return J6($,_)??s1(t1(_,$),(Y,Q)=>f_(Y,Q))}function t1(_,$=""){if(Array.isArray(_))return _.map((Y)=>[$,Y]);return _&&typeof _==="object"?Object.entries(_):[]}function s1(_,$){for(let[Y,Q]of _){let X=$(Q,Y);if(X)return X}return}var N6=/url\(([^)]*)\)/gi,e1="src|image|image-set|-webkit-image-set|cross-fade|element",_0=new RegExp(String.raw`\b(url|${e1})\(`,"i"),K8=new RegExp(String.raw`\b(${e1})\(`,"i"),z8=new RegExp(String.raw`\b(${e1})\([^)]*\)`,"gi"),W8=/\\([0-9a-f]{1,6})\s?|\\(.)/gi;function D8(_){return _.replace(W8,($,Y,Q)=>{if(!Y)return Q??"";let X=parseInt(Y,16),Z=X===0||X>=55296&&X<=57343||X>1114111;return String.fromCodePoint(Z?65533:X)})}function V6(_){return _.trim().replace(/^(['"])(.*)\1$/s,"$2").trim()}function e_(_){if(_.includes("\\")||K8.test(_))return!0;for(let[,$]of _.matchAll(N6))if(!V6($??"").startsWith("#"))return!0;return!1}function $0(_){return D8(_).replace(z8,"none").replace(N6,($,Y)=>V6(Y).startsWith("#")?$:"none")}var B6={async mermaid(_,$,{scheme:Y}){let[{default:Q},{default:X}]=await Promise.all([import("mermaid"),import("dompurify")]);if(_0.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 Z=q8($);if(!B8.test(Z))throw Error(`Unsupported diagram type: ${Z}`);let G=K6.then(async()=>{if(!z6)Q.initialize({startOnLoad:!1,securityLevel:"strict",htmlLabels:!1}),z6=!0;let V=`%%{init: {"theme": "${Y==="dark"?"dark":"default"}"}}%%
12
+ ${$}`;return await Q.parse(V),(await Q.render(`cortex-mermaid-${P8()}`,V,_)).svg});K6=G.catch(()=>{return});let J=await G,N=document.createElement("div");return N.innerHTML=X.sanitize(J,{USE_PROFILES:{svg:!0,svgFilters:!0}}),D6(N),_.replaceChildren(...N.childNodes),()=>{_.innerHTML=""}},async "vega-lite"(_,$,{scheme:Y}){let Q=JSON.parse($),X=f_(Q);if(X)throw Error(X);if(!Q||typeof Q!=="object"||Array.isArray(Q))throw Error("A chart needs a JSON object.");let Z=Q,[{default:G},J]=await Promise.all([import("vega-embed"),import("vega")]),N=()=>Promise.reject(Error("Charts may only use inline data."));async function V(D){let H=document.createElement("div"),W=await G(H,L8(Z,D),{actions:!1,renderer:"svg",mode:"vega-lite",loader:{...J.loader(),load:N,sanitize:N},ast:!0,...Y==="dark"?{theme:"dark"}:{},config:{background:"transparent"}});return D6(H),{drawing:H,result:W,width:D}}let K=await V(_.clientWidth);_.replaceChildren(K.drawing);let z=!1,F,B=0;function q(){F??=(async()=>{let D=_.clientWidth;while(!z&&D>0&&D!==K.width&&D!==B){try{let H=await V(D);if(z){H.result.finalize();return}K.result.finalize(),K=H,_.replaceChildren(H.drawing)}catch{B=D}D=_.clientWidth}})().finally(()=>{F=void 0})}let O=new ResizeObserver(q);if(q6(Z))O.observe(_);function P(){let D=document.getElementById(O8),H=_.closest("dialog")??document.body;if(D&&D.parentElement!==H)H.append(D)}return _.addEventListener("pointermove",P),()=>{z=!0,O.disconnect(),_.removeEventListener("pointermove",P),K.result.finalize()}},async map(_,$){let Y=A8(JSON.parse($)),{leaflet:Q,map:X,dispose:Z}=await b_(_,{...Y,interactive:!0});for(let G of Y.markers){let J=Q.marker(G.position).addTo(X);if(G.label){let N=document.createElement("span");N.textContent=G.label,J.bindTooltip(N)}}return Z}},H8={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"}};function _1(_){return H8[_]??{title:"translate_media",pending:"translate_media_pending"}}function Q0(_){return Object.keys({...B6,..._})}function X0(_,$){let{language:Y,source:Q,context:X,overrides:Z,onError:G}=$,J=_.appendChild(document.createElement("div")),N=Z?.[Y]??B6[Y],V,K=!1;return(N?N(J,Q,X):Promise.reject(Error(`No renderer for ${Y}.`))).then((F)=>{if(K)F();else V=F},(F)=>{if(!K)G(F instanceof Error?F.message:String(F))}),()=>{K=!0,V?.(),J.remove()}}var B8=/^(flowchart|graph|sequenceDiagram|stateDiagram(-v2)?|erDiagram|gantt|pie|classDiagram|journey|timeline|mindmap)$/;function q8(_){let $=_.split(`
13
+ `).find((Y)=>/\S/.test(Y)&&!/^\s*%%/.test(Y));return/^\s*(\S+)/.exec($??"")?.[1]??""}function Y0(_){return _===void 0||_==="container"}var F8=["row","column","facet"];function q6(_){let $=_.encoding,Y=typeof $==="object"&&$!==null&&F8.some((Q)=>(Q in $));return(("mark"in _)||("layer"in _))&&Y0(_.width)&&!Y}function U8(_){let $={..._};if(Y0($.width))delete $.width;if(Y0($.height))delete $.height;return $}function L8(_,$){let Y=U8(_);if($<=0||!q6(_))return Y;return{...Y,width:$,height:Y.height??Math.round(Math.min(480,Math.max(200,$/2))),autosize:Y.autosize??{type:"fit",contains:"padding"}}}var O8="vg-tooltip-element",K6=Promise.resolve(),z6=!1,W6=0;function P8(){return W6+=1,W6}var M8=new Set(["image","use","feImage"]);function D6(_){for(let $ of[_,..._.querySelectorAll("*")]){for(let Y of[...$.attributes])if((Y.name==="href"||Y.name==="xlink:href")&&M8.has($.tagName)&&!Y.value.trim().startsWith("#")||e_(Y.value))$.removeAttribute(Y.name);if($.tagName==="style"&&$.textContent)$.textContent=$0($.textContent)}}function A8(_){if(!_||typeof _!=="object")throw Error("A map needs a JSON object.");let $=_,Y=$.zoom??10;if(typeof Y!=="number"||Y<0||Y>22)throw Error("zoom must be 0 to 22.");let Q=$.markers??[];if(!Array.isArray(Q))throw Error("markers must be a list.");return{center:H6($.center,"center"),zoom:Y,markers:Q.map((X,Z)=>{let G=X??{},J=G.label;return{position:H6(G.position,`markers[${Z}].position`),label:typeof J==="string"?J:void 0}})}}function H6(_,$){let Y=Array.isArray(_)?_:[],[Q,X]=Y;if(typeof Q!=="number"||typeof X!=="number"||Math.abs(Q)>90||Math.abs(X)>180)throw Error(`${$} must be [latitude, longitude].`);return{lat:Q,lng:X}}function Z0(_,$){if(_!=="system")return $(_??"light"),()=>{};let Y=window.matchMedia("(prefers-color-scheme: dark)"),Q=()=>$(Y.matches?"dark":"light");return Q(),Y.addEventListener("change",Q),()=>Y.removeEventListener("change",Q)}import j_ from"highlight.js/lib/core";import E8 from"highlight.js/lib/languages/javascript";import k8 from"highlight.js/lib/languages/json";import R8 from"highlight.js/lib/languages/sql";var F6=!1;function I8(){if(F6)return;F6=!0,j_.registerLanguage("javascript",E8),j_.registerLanguage("json",k8),j_.registerLanguage("cypher",R8)}function G0(_,$){if(!_)return"";return I8(),j_.getLanguage($)?j_.highlight(_,{language:$}).value:y8(_)}function y8(_){return _.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function q_(_){if(typeof _==="string"){let $=_.trim();if(!($.startsWith("{")&&$.endsWith("}")||$.startsWith("[")&&$.endsWith("]")))return _;try{return q_(JSON.parse($))}catch{return _}}if(Array.isArray(_))return _.map(($)=>q_($));if(_!==null&&typeof _==="object"){let $={};for(let[Y,Q]of Object.entries(_))$[Y]=q_(Q);return $}return _}function J0(_,$){if(Array.isArray(_)){let Y=_;return{kind:"container",open:"[",close:"]",summary:U6(Y.length,"item","items"),entries:Y.map((Q,X)=>({key:null,value:Q,path:`${$}[${X}]`}))}}if(_!==null&&typeof _==="object"){let Y=Object.entries(_);return{kind:"container",open:"{",close:"}",summary:U6(Y.length,"property","properties"),entries:Y.map(([Q,X])=>({key:Q,value:X,path:`${$}.${Q}`}))}}return{kind:"primitive",text:C8(_),className:w8(_)}}function U6(_,$,Y){return`${_} ${_===1?$:Y}`}function C8(_){if(_===null||_===void 0)return"null";if(typeof _==="string")return JSON.stringify(_);if(typeof _==="number"||typeof _==="boolean")return String(_);return JSON.stringify(_)??"null"}function w8(_){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 N0(_){if(!_)return null;try{return JSON.parse(_)}catch{return _}}function V0(_){if(!_)return"";try{return JSON.stringify(JSON.parse(_),null,2)}catch{return _}}function r(_,$,Y=Date.now()){let Q=new Date(_);if(Number.isNaN(Q.getTime()))return"";let X=Q.toDateString()===new Date(Y).toDateString();return new Intl.DateTimeFormat($,{...X?{}:{dateStyle:"medium"},timeStyle:"short"}).format(Q)}function g_(_,$){let Y=URL.createObjectURL(_),Q=document.createElement("a");Q.href=Y,Q.download=$,document.body.append(Q),Q.click(),Q.remove(),setTimeout(()=>URL.revokeObjectURL(Y),40000)}class $_{onUpdate;fullText="";displayedLength=0;animationFrameId=null;isDone=!1;releases=[];static DRAIN_FRACTION=0.03;static MIN_CHARS_PER_FRAME=1;static DONE_DRAIN_FRACTION=0.1;static FADE_WINDOW_MS=500;constructor(_){this.onUpdate=_}seed(_){this.fullText=_,this.displayedLength=_.length,this.releases=[],this.onUpdate(_,[])}update(_,$){if(this.fullText=_,this.isDone=$,this.displayedLength=Math.min(this.displayedLength,this.fullText.length),this.releases=this.releases.filter((Y)=>Y.from<this.displayedLength),$&&this.displayedLength>=this.fullText.length){this.onUpdate(this.fullText,[]),this.stopAnimation();return}if(!this.animationFrameId)this.scheduleFrame()}destroy(){this.stopAnimation()}scheduleFrame(){this.animationFrameId=requestAnimationFrame((_)=>this.tick(_))}tick(_){let $=this.fullText.length-this.displayedLength;if($<=0){this.animationFrameId=null;return}let Y=this.isDone?$_.DONE_DRAIN_FRACTION:$_.DRAIN_FRACTION,Q=Math.max($_.MIN_CHARS_PER_FRAME,Math.ceil($*Y));if(this.releases=this.releases.filter((X)=>_-X.at<$_.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((X)=>({length:this.displayedLength-X.from,age:_-X.at}))),this.displayedLength<this.fullText.length)this.scheduleFrame();else this.animationFrameId=null}stopAnimation(){if(this.animationFrameId)cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null}}var K0=new WeakMap;function z0(_,$){let Y=_.closest(".cortex-widget__screen"),Q=Y?.querySelector(".cortex-message-list");if(!Y||!Q||!_.value.trim())return;let X=getComputedStyle(_),Z=_.getBoundingClientRect(),G=(J)=>parseFloat(X[`padding${J}`])+parseFloat(X[`border${J}Width`]);K0.set(Y,{text:$,textarea:_,from:new DOMRect(Z.left+G("Left"),Z.top+G("Top"),Z.width-G("Left")-G("Right"),Z.height-G("Top")-G("Bottom")),rtl:X.direction==="rtl",scrollTop:Q.scrollTop})}function W0(_,$){let Y=_.closest(".cortex-widget__screen"),Q=Y?K0.get(Y):void 0;if(!Y||!Q)return;K0.delete(Y);let X=_.querySelectorAll(":scope > .cortex-message"),Z=X[X.length-1]?.querySelector(".cortex-text-bubble--user"),G=_.closest(".cortex-message-list");if(!Z||!G||Q.text!==$||!Q.textarea.isConnected)return;Z.closest(".cortex-message-part")?.getAnimations().forEach((D)=>D.finish()),$1(G);let J=Z.getBoundingClientRect(),N=Y.getBoundingClientRect(),V=getComputedStyle(Z),K=parseFloat(V.paddingTop)+parseFloat(V.borderTopWidth),z=Q.rtl?parseFloat(V.paddingRight)+parseFloat(V.borderRightWidth):parseFloat(V.paddingLeft)+parseFloat(V.borderLeftWidth),F=Q.rtl?Q.from.right+z-J.width:Q.from.left-z,B=G.scrollTop-Q.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 q=Z.cloneNode(!0);q.classList.add("cortex-send-flight"),q.setAttribute("aria-hidden","true"),Object.assign(q.style,{left:`${J.left-N.left}px`,top:`${J.top-N.top}px`,width:`${J.width}px`}),q.style.setProperty("--cortex-fly-x",`${F-J.left}px`),q.style.setProperty("--cortex-fly-y",`${Q.from.top-K-J.top}px`),Z.style.visibility="hidden",Y.append(q);let O=G.scrollTop,P=()=>{q.style.top=`${J.top-N.top-(G.scrollTop-O)}px`};G.addEventListener("scroll",P,{passive:!0}),P6(q).then(()=>{G.removeEventListener("scroll",P),Z.style.visibility="",q.remove()})}function $1(_){_.scrollTop=O6(_)}function D0(_){return O6(_)-_.scrollTop}function O6(_){let $=_.querySelector(".cortex-message-list__content");if(!$)return _.scrollHeight-_.clientHeight;let Y=getComputedStyle(_);return $.offsetHeight+parseFloat(Y.paddingTop)+parseFloat(Y.paddingBottom)-_.clientHeight}function H0(_){let $=!1,Y=_.parentElement,Q=typeof ResizeObserver>"u"?void 0:new ResizeObserver(X);Q?.observe(Y);function X(){let Z=Y.querySelector(":scope > .cortex-working-thinking, :scope > .cortex-message > .cortex-message-parts > [data-cortex-frontier]");if(!Z)return!1;return _.style.setProperty("--cortex-avatar-y",`${S8(Z,Y)-_.offsetHeight/2}px`),!0}return{sync(Z){if(Z===$){if(Z)X();return}if(Z){if(!X())return;_.classList.remove("cortex-working-avatar--leaving"),_.offsetWidth,_.classList.add("cortex-working-avatar--shown"),$=!0;return}$=!1,_.classList.add("cortex-working-avatar--leaving"),P6(_,!0).then(()=>{if($)return;_.classList.remove("cortex-working-avatar--shown","cortex-working-avatar--leaving")})},dispose(){Q?.disconnect()}}}function S8(_,$){let Y=_.querySelector(".cortex-text-bubble");if(!Y)return L6(_,$)+_.offsetHeight/2;let Q=getComputedStyle(Y);return L6(Y,$)+parseFloat(Q.paddingTop)+parseFloat(Q.borderTopWidth)+parseFloat(Q.lineHeight)/2}function L6(_,$){let Y=0;for(let Q=_;Q instanceof HTMLElement&&Q!==$;)Y+=Q.offsetTop,Q=Q.offsetParent;return Y}function P6(_,$=!1){return Promise.allSettled(_.getAnimations({subtree:$}).map((Y)=>Y.finished))}var b8=2;function B0(_){let $=!1,Y=!1,Q=!1,X=!1,Z=!1,G=!1,J,N=new Set,V=0,K=!1;function z(){if($&&V===0)return!1;if(V+=1,!$)$=!0,_.setRunning(!0);return!0}function F(D){if(V-=1,D)K=!0;else if(V===0&&!K)$=!1,_.setRunning(!1)}async function B(D,H){for(let W=0;W<b8;W+=1){let M=await _.refreshMessages().catch(()=>{return});if(!_.isAlive())return!1;if(!M)continue;if(!__(M).some((k)=>k.id===D.id))return!0;if(await _.deliver(H).then(()=>!0,()=>!1))return!0}return!1}async function q(D,H){let W;try{let n=H({toolCallId:D.id,toolName:D.name,input:D.input},{threadId:_.threadId});if(n===null||n===void 0)return;W=await Promise.resolve(n)}catch{N.delete(D.id);return}if(W===null||W===void 0)return;if(!_.isAlive())return;let M=z(),A={toolCallId:D.id,tool:D.name,output:W},k=await _.deliver(A).then(()=>!0,()=>B(D,A));if(M)F(k);if(!k)N.delete(D.id)}function O(D){let H=__(D),W=_.onToolCall();if(!W)return H.length>0;for(let M of H){if(M.state!=="input-complete"||N.has(M.id))continue;N.add(M.id),q(M,W)}return H.length>0}async function P(D){let H=X;if(X=!1,!H&&$){if(O(D()))return;if(Q)_.reloadThreads().catch(()=>{});else _.setRunning(!1)}if(J===void 0&&(G||H))return;J=void 0;let W=await _.refreshMessages();if(!H&&$&&W)O(W)}return{chunkArrived(){Y=!0},transcriptCarried(D){if(G=!0,J!==void 0&&J<=D)J=void 0},transcriptUpdated(D){if(!Z){_.refreshMessages();return}J=Math.max(J??0,Date.parse(D))},streamFailed(){if(Q=!0,Y)_.onTurnFinished();else _.onSendFailed()},loadingChanged(D,H){if(D){Z=!0,Q=!1,G=!1;return}if(!Z)return;Z=!1,_.onTurnFinished(),P(H)},hydrated(D,H){if(H)return;setTimeout(()=>{if(_.isAlive())O(D)},0)},sendStarted(){_.setRunning(!0),$=!0,Y=!1},abortConfirmed(){X=!0,_.setRunning(!1)}}}function m_(_){if(_.input.total<=0)return null;return Math.round(_.input.cacheRead/_.input.total*100)}import{createContext as M6,useContext as A6}from"react";var q0=M6(void 0);function L(){let _=A6(q0);if(!_)throw Error("useCortex must be used inside <CortexChatWidget>");return _}var F0={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1},U0=M6(F0);function F_(){return A6(U0)}import{useEffect as T8,useState as v8}from"react";function E6(_,$){let[Y,Q]=v8();return T8(()=>{return Q(void 0),n1(_,Q)},[_,$]),Y}import{useRef as c8}from"react";import{useRef as f8,useState as j8,useSyncExternalStore as g8}from"react";function k6(_,$){let Y=f8($);Y.current=$;let[Q]=j8(()=>b1({api:_,ensureThread:()=>Y.current()})),X=g8(Q.subscribe,Q.getState,Q.getState);return{store:Q,value:{items:X,...T1(X),accept:Q.accept,remove:Q.remove,consumeReady:Q.consumeReady}}}import{useEffect as m8,useRef as x8}from"react";function R6(_,$){let Y=x8(void 0);m8(()=>{if($===Y.current)return;_.clear(Y.current),Y.current=$},[$,_])}import{useRef as I6}from"react";function y6(_){let $=I6([]),Y=I6(void 0);function Q(){let Z=_.selectedRef.current;if(Z)return Promise.resolve(Z.id);return Y.current??=_.api.createThread().then((G)=>{return Y.current=void 0,_.onCreated(G),G.id},(G)=>{throw Y.current=void 0,G}),Y.current}async function X(Z,G=[]){let J=_.sessionRef.current;if(J){await J.send(Z,G);return}$.current.push({prompt:Z,attachments:G});try{await Q()}catch(N){throw $.current=[],N}}return{ensureThread:Q,send:X,pendingSendRef:$}}import{useRef as h8,useState as u8}from"react";function C6(_){let[$,Y]=u8(),Q=$?.thread,X=Q?_.threads?.find((V)=>V.id===Q.id)??Q:void 0,Z=h8(X);Z.current=X;function G(V,K){if(Z.current?.id===V.id&&_.hasSession())return;let z=Z.current;if(Z.current=V,Y({thread:V,mode:K,epoch:0}),z&&z.id!==V.id)_.getHooks()?.onThreadDeselected?.(z);_.getHooks()?.onThreadSelected?.(V)}function J(){let V=Z.current;if(!V&&!_.hasSession())return;if(Z.current=void 0,Y(void 0),V)_.getHooks()?.onThreadDeselected?.(V)}function N(V,K){Y((z)=>({thread:V,mode:"reload",epoch:(z?.epoch??0)+1,initialMessages:K}))}return{session:$,selected:X,selectedRef:Z,select:G,deselect:J,remount:N}}function w6(_){let{api:$,threads:Y}=_,Q=c8(void 0),X=C6({threads:Y.threads,getHooks:_.getHooks,hasSession:()=>Q.current!==void 0}),Z=y6({api:$,sessionRef:Q,selectedRef:X.selectedRef,onCreated:(V)=>{Y.upsert(V),X.select(V,"skip")}}),G=k6($,Z.ensureThread);R6(G.store,X.selected?.id);async function J(V){if(X.selectedRef.current?.id===V)X.deselect();await Y.remove(V)}function N(V){X.select(V,"load")}return{sessionRef:Q,selection:X,queue:G,deleteThread:J,openThread:N,...Z}}import{useEffect as p8,useRef as d8}from"react";function S6(_){let $=d8(_);$.current=_,p8(()=>{$.current.onMount();let Y=!1,Q=l1({getConfig:()=>$.current.getConfig(),onEvent:(X)=>$.current.onEvent(X),onOpen:()=>{if(Y)$.current.onReconnect();Y=!0}});return()=>Q.close()},[])}function b6(_){let{threads:$,selectedRef:Y,sessionRef:Q}=_;function X(G){$.applyEvent(G);let J=Y.current?.id;switch(G.type){case"thread:deleted":if(J===G.payload.threadId)_.deselect();break;case"thread:run-started":if(J===G.payload.thread.id)Q.current?.reattach(G.payload.thread);break;case"thread:messages-updated":Q.current?.transcriptUpdated(G.payload.thread.id,G.payload.thread.updatedAt);break}}function Z(){_.onReconnect(),$.reload().then((G)=>{let J=Y.current;if(!J)return;Q.current?.reattach(G.find((N)=>N.id===J.id)??J)})}return{onEvent:X,onReconnect:Z}}function T6(_){return{abort:async()=>{await _.current?.abort()},addToolResult:($,Y,Q)=>_.current?.addToolResult($,Y,Q)??Promise.resolve(),respondToApproval:($,Y)=>_.current?.respondToApproval($,Y)??Promise.resolve()}}import{useState as l8}from"react";function v6(_){let[$,Y]=l8();async function Q(){let N=t_(await _.listThreads());return Y(N),N}function X(N){Y((V)=>T_(V??[],N))}function Z(N,V){Y((K)=>{let z=K?.find((F)=>F.id===N);return z?T_(K??[],{...z,isRunning:V}):K})}async function G(N){await _.deleteThread(N),Y((V)=>V?s_(V,N):V)}function J(N){Y((V)=>{let K=i1(V??[],N);return V||K.length?K:V})}return{threads:$,reload:Q,upsert:X,setRunning:Z,remove:G,applyEvent:J}}import{useState as f6}from"react";function j6(_){let[$,Y]=f6("chat"),[Q,X]=f6(!1);return{screen:$,sidebarOpen:Q,showChat:()=>{Y("chat"),X(!1)},openHistory:()=>_==="full"?X(!0):Y("threads"),closeHistory:()=>_==="full"?X(!1):Y("chat"),closeSidebar:()=>X(!1)}}import{forwardRef as s8,useEffect as e8,useImperativeHandle as _4,useRef as c6,useState as $4}from"react";function U(..._){return _.filter(Boolean).join(" ")}import{useState as n8}from"react";function g6(_,$){let[Y,Q]=n8(!1);return{dragging:Y,onDragOver:(X)=>{if(X.preventDefault(),_)Q(!0)},onDragLeave:(X)=>{if(!X.currentTarget.contains(X.relatedTarget))Q(!1)},onDrop:(X)=>{if(X.preventDefault(),Q(!1),_)$([...X.dataTransfer.files])},onPaste:(X)=>{let Z=X.clipboardData.files;if(!_||!Z.length)return;X.preventDefault(),$([...Z])}}}var S={bubble:"M13.5 7.6c0 2.4-2.5 4.4-5.5 4.4-.6 0-1.2-.08-1.7-.23L3 13l.8-2.3C3 9.8 2.5 8.7 2.5 7.6 2.5 5.2 5 3.2 8 3.2s5.5 2 5.5 4.4Z",chevronDown:"M3 4.5L6 7.5L9 4.5",chevronDownLarge:"m5.75 8.25 4.25 4.25 4.25-4.25",file:["M4 1.5h5.172a2 2 0 0 1 1.414.586l2.328 2.328a2 2 0 0 1 .586 1.414V12.5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2Z","M9.5 1.5v2a2 2 0 0 0 2 2h2"]};import{jsx as a,jsxs as L0}from"react/jsx-runtime";function m6(){let{queue:_,t:$}=L();if(!_.items.length)return null;return a("div",{className:"cortex-attachment-queue",children:_.items.map((Y)=>L0("div",{className:U("cortex-attachment-chip",Y.status==="error"&&"cortex-attachment-chip--error"),title:Y.status==="error"?$("translate_attachment_rejected"):"",children:[Y.status==="uploading"||Y.status==="deleting"?L0("svg",{className:"cortex-attachment-chip__spinner",viewBox:"0 0 16 16",fill:"none",children:[a("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",className:"cortex-attachment-chip__spinner-track"}),a("path",{d:"M14 8a6 6 0 0 0-6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):L0("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[a("path",{d:S.file[0],stroke:"currentColor",strokeWidth:"1.25"}),a("path",{d:S.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),a("span",{className:"cortex-attachment-chip__name",children:Y.filename}),a("button",{type:"button",onClick:()=>_.remove(Y.localId),className:"cortex-attachment-chip__remove",disabled:Y.status==="deleting","aria-label":$("translate_remove_attachment"),children:a("svg",{viewBox:"0 0 16 16",fill:"none",children:a("path",{d:"M4.5 4.5l7 7m0-7l-7 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},Y.localId))})}import{useRef as i8}from"react";import{jsx as J_,jsxs as x6,Fragment as a8}from"react/jsx-runtime";var r8=H1.join(",");function h6({attachmentsEnabled:_,canSend:$,onSend:Y}){let{t:Q,queue:X}=L(),Z=i8(null);return x6("div",{className:"cortex-widget__input-actions",children:[_&&x6(a8,{children:[J_("button",{type:"button",onClick:()=>Z.current?.click(),className:"cortex-widget__attach-btn","aria-label":Q("translate_attach_files"),children:J_("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:J_("path",{d:"M10.5 5.5 6.2 9.8a1.4 1.4 0 0 0 2 2l4.6-4.6a2.8 2.8 0 0 0-4-4L4.2 7.8a4.2 4.2 0 0 0 6 6l4-4",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),J_("input",{ref:Z,type:"file",multiple:!0,accept:r8,onChange:(G)=>{X.accept([...G.target.files??[]]),G.target.value=""},className:"cortex-widget__file-input"})]}),J_("button",{onClick:Y,"aria-label":Q("translate_send"),className:U("cortex-widget__send-btn",!$&&"cortex-widget__send-btn--empty",$&&"cortex-widget__send-btn--ready"),disabled:!$,children:J_("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__send-icon",children:J_("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}import{useLayoutEffect as o8}from"react";import{jsx as t8}from"react/jsx-runtime";function u6(_){let{t:$}=L();o8(()=>{let Q=_.inputRef.current;if(!Q)return;Q.style.height="0px",Q.style.height=`${Q.scrollHeight}px`},[_.inputRef,_.value]);function Y(Q){if(Q.key==="Enter"&&!Q.shiftKey)Q.preventDefault(),_.onSubmit()}return t8("textarea",{ref:_.inputRef,onKeyDown:Y,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:U("cortex-widget__textarea",_.disabled&&"cortex-widget__textarea--disabled")})}import{jsx as U_,jsxs as O0}from"react/jsx-runtime";var p6=s8(function($,Y){let{t:Q,queue:X,send:Z,abort:G,capabilities:J}=L(),{isAgentWorking:N}=F_(),V=J?.attachments??!1,[K,z]=$4(""),F=g6(V,X.accept),B=c6(null);_4(Y,()=>({focusInput:()=>B.current?.focus()}));let q=c6(N);e8(()=>{if(q.current&&!N)B.current?.focus();q.current=N},[N]);let O=!X.busy&&(Boolean(K.trim())||X.hasReady);function P(){if(N||!O)return;let D=K.trim()||Q("translate_attachment_caption"),H=X.consumeReady();if(B.current)z0(B.current,D);z(""),Z(D,H.map((W)=>W.summary))}return O0("div",{className:"cortex-widget__input-area",onDragOver:F.onDragOver,onDragLeave:F.onDragLeave,onDrop:F.onDrop,children:[U_(m6,{}),O0("div",{className:U("cortex-widget__input-box",N&&"cortex-widget__input-box--disabled",!N&&"cortex-widget__input-box--enabled",F.dragging&&"cortex-widget__input-box--dragging"),children:[U_(u6,{inputRef:B,value:K,onChange:z,onSubmit:P,onPaste:F.onPaste,disabled:N,dragging:F.dragging}),N?O0("button",{onClick:()=>void G(),className:"cortex-stop-btn",children:[U_("span",{className:"cortex-stop-btn__ring"}),U_("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"cortex-stop-btn__icon",children:U_("rect",{x:"1",y:"1",width:"10",height:"10",rx:"2.5",fill:"currentColor"})})]}):U_(h6,{attachmentsEnabled:V,canSend:O,onSend:P})]})]})});import{jsx as d6}from"react/jsx-runtime";function Y1({capabilities:_,composerRef:$}){let{t:Y}=L();if(_===void 0)return null;return _.messages===!1?d6("p",{className:"cortex-widget__messages-disabled",children:Y("translate_messages_disabled")}):d6(p6,{ref:$})}import{jsx as v,jsxs as Q1}from"react/jsx-runtime";function l6(_){let{t:$}=L(),Y=v("button",{type:"button",onClick:_.newChat,"aria-label":$("translate_new_chat"),title:$("translate_new_chat"),className:"cortex-widget__header-btn cortex-widget__new-btn",children:v("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:v("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})});if(_.screen==="threads")return Q1("div",{className:"cortex-widget__threads-header",children:[v("button",{type:"button",onClick:_.closeHistory,"aria-label":$("translate_back"),className:"cortex-widget__header-btn cortex-widget__back-btn",children:v("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"cortex-widget__back-icon",children:v("path",{d:"M10 3L5 8l5 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),Q1("div",{children:[v("h2",{className:"cortex-widget__threads-title",children:$("translate_history")}),v("p",{className:"cortex-widget__threads-count",children:$(C_(_.threadCount,"translate_one_conversation","translate_n_conversations"),{count:_.threadCount})})]}),Y]});return Q1("div",{className:"cortex-widget__chat-header",children:[v("button",{onClick:_.openHistory,className:"cortex-widget__sidebar-toggle-btn",children:v("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:v("path",{d:"M2.5 4h11M2.5 8h11M2.5 12h11",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),v("div",{className:"cortex-widget__chat-title-wrap",children:v("p",{className:"cortex-widget__chat-title",children:_.title??_.agentName??$("translate_new_chat")})}),_.debug.shown&&v("button",{onClick:_.toggleDebug,className:U("cortex-widget__debug-btn",_.debug.on?"cortex-widget__debug-btn--on":"cortex-widget__debug-btn--off"),children:_.debug.on?$("translate_debug"):$("translate_normal")}),Y,v("button",{type:"button",onClick:_.openHistory,"aria-label":$("translate_history"),title:$("translate_history"),className:"cortex-widget__header-btn cortex-widget__history-btn",children:Q1("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[v("circle",{cx:"8",cy:"8",r:"5.75",stroke:"currentColor",strokeWidth:"1.3"}),v("path",{d:"M8 5v3l2 1.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})}import{jsx as o,jsxs as n6}from"react/jsx-runtime";function i6(_){let{locale:$,t:Y}=L();return n6("div",{className:"cortex-widget__landing",children:[o("div",{className:"cortex-widget__landing-icon",children:o("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",children:o("path",{d:S.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),o("p",{className:"cortex-widget__landing-greeting",children:_.greeting}),!!_.suggestions.length&&o("div",{className:"cortex-widget__landing-chips",children:_.suggestions.map((Q,X)=>o("button",{type:"button",onClick:()=>_.send(Q.prompt),className:"cortex-widget__landing-chip",children:Q.title},X))}),_.composer,!!_.threads?.length&&o("div",{className:"cortex-widget__landing-recent",children:_.threads.slice(0,2).map((Q)=>{let X=r(Q.updatedAt,$);return n6("button",{type:"button",onClick:()=>_.openThread(Q),className:"cortex-widget__landing-recent-item",children:[o("p",{className:"cortex-widget__landing-recent-title",children:Q.title??Y("translate_untitled")}),X&&o("p",{className:"cortex-widget__landing-recent-time",children:X})]},Q.id)})})]})}import{useCallback as n_,useEffect as I0,useLayoutEffect as y0,useMemo as c4,useRef as W_,useState as C0}from"react";import{memo as h4}from"react";import{Fragment as g4}from"react";import{useRef as Y4,useState as Q4}from"react";import{jsx as L_,jsxs as X4}from"react/jsx-runtime";function h({value:_,className:$}){let{t:Y}=L(),[Q,X]=Q4(!1),Z=Y4(null);async function G(J){J.stopPropagation(),J.preventDefault();try{if(await navigator.clipboard.writeText(_),X(!0),Z.current)clearTimeout(Z.current);Z.current=setTimeout(()=>X(!1),1500)}catch{}}return L_("span",{className:U("cortex-copy-btn",$),children:L_("button",{className:U("cortex-copy-btn__button",Q&&"cortex-copy-btn__button--copied"),onClick:(J)=>void G(J),"aria-label":Q?Y("translate_copied"):Y("translate_copy"),type:"button",children:Q?L_("svg",{className:"cortex-copy-btn__icon cortex-copy-btn__icon--check",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:L_("path",{d:"M5 13l4 4L19 7",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):X4("svg",{className:"cortex-copy-btn__icon",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:[L_("rect",{x:"9",y:"9",width:"12",height:"12",rx:"2",stroke:"currentColor",strokeWidth:"2"}),L_("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})})})}import{jsx as X1,jsxs as r6}from"react/jsx-runtime";function a6(){let{t:_}=L();return r6("div",{className:"cortex-aborted-flag",children:[X1("span",{className:"cortex-aborted-flag__line"}),r6("span",{className:"cortex-aborted-flag__label",children:[X1("svg",{className:"cortex-aborted-flag__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:X1("path",{d:"M6 1.5v5M6 8.75v.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),_("translate_aborted")]}),X1("span",{className:"cortex-aborted-flag__line"})]})}import{jsx as O_,jsxs as o6}from"react/jsx-runtime";function t6(_){let{api:$,t:Y}=L();async function Q(X){let{blob:Z,name:G}=await $.downloadAttachment(X);g_(Z,G)}return O_("div",{className:U("cortex-message-attachments",_.isUser&&"cortex-message-attachments--user"),children:_.attachments.map((X)=>o6("button",{type:"button",onClick:()=>void Q(X.id),className:"cortex-message-attachment","aria-label":`${Y("translate_download")}: ${X.filename}`,children:[o6("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__icon",fill:"none",children:[O_("path",{d:S.file[0],stroke:"currentColor",strokeWidth:"1.25"}),O_("path",{d:S.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),O_("span",{className:"cortex-message-attachment__name",children:X.filename}),O_("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__dl-icon",fill:"none",children:O_("path",{d:"M8 3v7m0 0L5.5 7.5M8 10l2.5-2.5M3 13h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},X.id))})}import{useRef as J4,useState as x_}from"react";import{useMemo as Z4,useState as G4}from"react";import{jsx as x,jsxs as N_,Fragment as Z1}from"react/jsx-runtime";function Y_({data:_,expandDepth:$,className:Y}){let Q=Z4(()=>q_(_),[_]),[X,Z]=G4({});function G(N,V){return X[N]??V>=$}function J(N,V){Z((K)=>({...K,[N]:!G(N,V)}))}return x("div",{className:U("cortex-json-tree",Y),children:x(s6,{value:Q,path:"$",depth:0,isCollapsed:G,toggle:J})})}function s6({value:_,path:$,depth:Y,isCollapsed:Q,toggle:X}){let Z=J0(_,$);if(Z.kind==="primitive")return x("span",{className:Z.className,children:Z.text});if(Z.entries.length===0)return N_("span",{className:"cortex-json-tree__bracket",children:[Z.open,Z.close]});let G=Q($,Y);function J(N){X($,Y),N.stopPropagation()}return N_(Z1,{children:[N_("span",{className:"cortex-json-tree__toggle",onClick:J,role:"button",children:[x("span",{className:U("cortex-json-tree__arrow",G&&"cortex-json-tree__arrow--collapsed"),children:"▾"}),x("span",{className:"cortex-json-tree__bracket",children:Z.open})]}),G?N_(Z1,{children:[x("span",{className:"cortex-json-tree__collapsed-hint",onClick:J,role:"button",children:Z.summary}),x("span",{className:"cortex-json-tree__bracket",children:Z.close})]}):N_(Z1,{children:[x("div",{className:"cortex-json-tree__indent",children:Z.entries.map((N,V)=>N_("div",{className:"cortex-json-tree__line",children:[N.key!==null&&N_(Z1,{children:[x("span",{className:"cortex-json-tree__key",children:`"${N.key}"`}),x("span",{className:"cortex-json-tree__colon",children:": "})]}),x(s6,{value:N.value,path:N.path,depth:Y+1,isCollapsed:Q,toggle:X}),V<Z.entries.length-1&&x("span",{className:"cortex-json-tree__comma",children:","})]},N.path))}),x("span",{className:"cortex-json-tree__bracket",children:Z.close})]})]})}function R(_){return _.toLocaleString("en-US")}import{jsx as P_,jsxs as M_}from"react/jsx-runtime";function e6({usage:_}){let{t:$}=L();return M_("div",{className:"cortex-llm-inspector__usage-rows",children:[M_("div",{className:"cortex-llm-inspector__usage-row",children:[P_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_input")}),P_("span",{className:"cortex-llm-inspector__usage-val",children:R(_.input.total)}),M_("span",{className:"cortex-llm-inspector__usage-detail",children:[$("translate_fresh")," ",R(_.input.noCache)," · ",$("translate_read")," ",R(_.input.cacheRead)," · ",$("translate_write")," ",R(_.input.cacheWrite)]})]}),M_("div",{className:"cortex-llm-inspector__usage-row",children:[P_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_output")}),P_("span",{className:"cortex-llm-inspector__usage-val",children:R(_.output.total)}),M_("span",{className:"cortex-llm-inspector__usage-detail",children:[$("translate_text")," ",R(_.output.text)," · ",$("translate_reasoning")," ",R(_.output.reasoning)]})]}),M_("div",{className:"cortex-llm-inspector__usage-row cortex-llm-inspector__usage-row--total",children:[P_("span",{className:"cortex-llm-inspector__usage-lbl",children:$("translate_total")}),P_("span",{className:"cortex-llm-inspector__usage-val",children:R(_.total)})]})]})}import{jsx as _2,jsxs as G1}from"react/jsx-runtime";function $2({usage:_}){let $=m_(_);return G1("span",{className:"cortex-llm-inspector__step-metrics",children:[G1("span",{className:"cortex-llm-inspector__metric",children:[_2("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--input"}),R(_.input.total)]}),G1("span",{className:"cortex-llm-inspector__metric",children:[_2("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--output"}),R(_.output.total)]}),$!==null&&G1("span",{className:"cortex-llm-inspector__cache-pct",children:[$,"%"]})]})}import{jsx as y,jsxs as Q_}from"react/jsx-runtime";function Y2({messageId:_}){let{t:$,api:Y}=L(),[Q,X]=x_(!1),[Z,G]=x_(!1),[J,N]=x_([]),[V,K]=x_(null),[z,F]=x_({}),B=J4(!1);async function q(){if(!B.current){G(!0);try{N(await Y.listLlmRequests(_))}finally{G(!1),B.current=!0}}X((W)=>!W)}function O(W){K((M)=>M===W?null:W)}function P(W){return z[W]??"prompt"}function D(W,M){F((A)=>({...A,[W]:M}))}function H(W){return P(W.id)==="prompt"?W.prompt:W.output}return Q_("div",{className:U("cortex-llm-inspector",Q&&"cortex-llm-inspector--open"),children:[Q_("button",{className:"cortex-llm-inspector__trigger",onClick:()=>void q(),children:[y("svg",{className:"cortex-llm-inspector__icon",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:y("path",{d:"M6 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM0 6a6 6 0 1 1 10.89 3.477l4.817 4.816a1 1 0 0 1-1.414 1.414l-4.816-4.816A6 6 0 0 1 0 6Z",fill:"currentColor"})}),y("span",{children:$("translate_inspect_llm_requests")}),Z?y("span",{className:"cortex-llm-inspector__loading",children:$("translate_loading")}):J.length>0?y("span",{className:"cortex-llm-inspector__badge",children:J.length}):null,y("svg",{className:"cortex-llm-inspector__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:y("path",{d:S.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),y("div",{className:"cortex-llm-inspector__panel-wrapper",children:y("div",{className:"cortex-llm-inspector__panel-inner",children:Q_("div",{className:"cortex-llm-inspector__panel",children:[J.length===0&&!Z&&y("div",{className:"cortex-llm-inspector__empty",children:$("translate_no_llm_requests")}),J.map((W,M)=>Q_("div",{className:U("cortex-llm-inspector__step",V===W.id&&"cortex-llm-inspector__step--expanded"),children:[Q_("button",{className:"cortex-llm-inspector__step-header",onClick:()=>O(W.id),children:[y("span",{className:"cortex-llm-inspector__step-label",children:$("translate_step_n",{number:M+1})}),W.tokenUsage&&y($2,{usage:W.tokenUsage}),y("svg",{className:"cortex-llm-inspector__step-chevron",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:y("path",{d:S.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),y("div",{className:"cortex-llm-inspector__step-body-wrapper",children:y("div",{className:"cortex-llm-inspector__step-body-inner",children:Q_("div",{className:"cortex-llm-inspector__step-body",children:[W.tokenUsage&&y(e6,{usage:W.tokenUsage}),Q_("div",{className:"cortex-llm-inspector__tabs",children:[y("button",{className:U("cortex-llm-inspector__tab",P(W.id)==="prompt"&&"cortex-llm-inspector__tab--active"),onClick:()=>D(W.id,"prompt"),children:$("translate_request")}),y("button",{className:U("cortex-llm-inspector__tab",P(W.id)==="response"&&"cortex-llm-inspector__tab--active"),onClick:()=>D(W.id,"response"),children:$("translate_response")})]}),Q_("div",{className:"cortex-llm-inspector__json-pane",children:[y(h,{className:"cortex-llm-inspector__json-copy",value:V0(H(W))}),y(Y_,{data:N0(H(W)),expandDepth:2})]})]})})})]},W.id))]})})})]})}import{useState as N4}from"react";import{jsx as E,jsxs as b}from"react/jsx-runtime";function Q2({usage:_,modelId:$}){let{t:Y}=L(),[Q,X]=N4(!1),Z=m_(_)??0;return b("div",{className:U("cortex-token-usage",Q&&"cortex-token-usage--expanded"),children:[b("button",{className:"cortex-token-usage__summary",onClick:()=>X((G)=>!G),children:[b("span",{className:"cortex-token-usage__total",children:[E("span",{className:"cortex-token-usage__total-number",children:R(_.total)}),E("span",{className:"cortex-token-usage__total-label",children:Y("translate_tokens")})]}),$?E("span",{className:"cortex-token-usage__model",children:$}):null,b("span",{className:"cortex-token-usage__pills",children:[b("span",{className:"cortex-token-usage__pill",children:[E("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),R(_.input.total)]}),b("span",{className:"cortex-token-usage__pill",children:[E("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),R(_.output.total)]})]}),Z>0&&b("span",{className:"cortex-token-usage__cache-badge",children:[Z,"%"]}),E("svg",{className:"cortex-token-usage__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:E("path",{d:S.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),E("div",{className:"cortex-token-usage__details",children:E("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:[E("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),E("span",{className:"cortex-token-usage__col-label",children:Y("translate_input")}),E("span",{className:"cortex-token-usage__col-total",children:R(_.input.total)})]}),b("div",{className:"cortex-token-usage__rows",children:[_.input.noCache?b("div",{className:"cortex-token-usage__row",children:[E("span",{className:"cortex-token-usage__row-label",children:Y("translate_fresh")}),E("span",{className:"cortex-token-usage__row-value",children:R(_.input.noCache)})]}):null,_.input.cacheRead?b("div",{className:"cortex-token-usage__row",children:[E("span",{className:"cortex-token-usage__row-label",children:Y("translate_cache_read")}),E("span",{className:"cortex-token-usage__row-value",children:R(_.input.cacheRead)})]}):null,_.input.cacheWrite?b("div",{className:"cortex-token-usage__row",children:[E("span",{className:"cortex-token-usage__row-label",children:Y("translate_cache_write")}),E("span",{className:"cortex-token-usage__row-value",children:R(_.input.cacheWrite)})]}):null]}),Z>0&&b("div",{className:"cortex-token-usage__cache-bar-row",children:[E("div",{className:"cortex-token-usage__cache-bar",children:E("div",{className:"cortex-token-usage__cache-fill",style:{width:`${Z}%`}})}),E("span",{className:"cortex-token-usage__cache-label",children:Y("translate_n_percent_cached",{percent:Z})})]})]}),b("div",{className:"cortex-token-usage__col",children:[b("div",{className:"cortex-token-usage__col-header",children:[E("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),E("span",{className:"cortex-token-usage__col-label",children:Y("translate_output")}),E("span",{className:"cortex-token-usage__col-total",children:R(_.output.total)})]}),b("div",{className:"cortex-token-usage__rows",children:[_.output.text?b("div",{className:"cortex-token-usage__row",children:[E("span",{className:"cortex-token-usage__row-label",children:Y("translate_text")}),E("span",{className:"cortex-token-usage__row-value",children:R(_.output.text)})]}):null,_.output.reasoning?b("div",{className:"cortex-token-usage__row",children:[E("span",{className:"cortex-token-usage__row-label",children:Y("translate_reasoning")}),E("span",{className:"cortex-token-usage__row-value",children:R(_.output.reasoning)})]}):null]})]})]})})})]})}import{jsx as X2,jsxs as V4}from"react/jsx-runtime";function Z2({messageId:_,isAssistant:$,metadata:Y}){let{tokenUsage:Q}=Y;if(!Q&&!$)return null;return V4("div",{className:"cortex-message-debug-zone",children:[Q&&X2(Q2,{usage:Q,modelId:Y.modelId}),$&&X2(Y2,{messageId:_})]})}import{jsx as u,jsxs as h_}from"react/jsx-runtime";function G2(_){let{reasoningPart:$,streaming:Y=!1}=_,{t:Q}=L();return h_("details",{className:"cortex-reasoning-details",children:[h_("summary",{className:"cortex-reasoning-details__summary",children:[h_("div",{className:"cortex-reasoning-details__header",children:[u("span",{className:"cortex-reasoning-details__icon",children:h_("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:[u("path",{d:"M10 2C6.686 2 4 4.686 4 8c0 1.655.672 3.154 1.757 4.243.362.363.576.858.576 1.371V14.5a1 1 0 0 0 1 1h5.334a1 1 0 0 0 1-1v-.886c0-.513.214-1.008.576-1.371A5.978 5.978 0 0 0 16 8c0-3.314-2.686-6-6-6Z",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}),u("path",{d:"M7.5 17.5h5M8.5 8a2 2 0 0 1 2-2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}),u("div",{className:"cortex-reasoning-details__title-group",children:h_("div",{className:"cortex-reasoning-details__title-row",children:[u("div",{className:"cortex-reasoning-details__title",children:Q("translate_reasoning")}),u("span",{className:U("cortex-reasoning-details__badge",Y?"cortex-reasoning-details__badge--streaming":"cortex-reasoning-details__badge--done"),children:Y?Q("translate_streaming"):Q("translate_done")})]})})]}),u("span",{className:"cortex-reasoning-details__chevron","aria-hidden":"true",children:u("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:u("path",{d:S.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),u("div",{className:"cortex-reasoning-details__body",children:u("div",{className:"cortex-reasoning-details__content",children:u("pre",{className:"cortex-reasoning-details__pre",children:$.content.trim()?$.content:Q("translate_no_reasoning")})})})]})}import{useEffect as D2,useMemo as M4,useRef as M0,useState as A4}from"react";import{useEffect as W4,useState as J2}from"react";import{useRef as K4,useState as z4}from"react";import{jsx as t,jsxs as J1}from"react/jsx-runtime";function A_(_){let{label:$,ready:Y=!0,actions:Q,expanded:X,children:Z}=_,{t:G}=L(),J=K4(null),[N,V]=z4(!1);return J1("div",{className:"cortex-expandable",children:[Y&&J1("div",{className:"cortex-expandable__toolbar",role:"group","aria-label":$,children:[Q,t("button",{type:"button",className:"cortex-expandable__action","aria-label":G("translate_expand",{name:$}),title:G("translate_expand",{name:$}),onClick:()=>{V(!0),J.current?.showModal()},children:t("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:t("path",{d:"M9.5 2.5h4v4M6.5 13.5h-4v-4M13.5 2.5 9 7M2.5 13.5 7 9",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),t("div",{className:"cortex-expandable__content",children:Z}),J1("dialog",{ref:J,className:"cortex-expandable__dialog","aria-label":$,closedby:"any",onClose:()=>V(!1),children:[J1("div",{className:"cortex-expandable__head",children:[t("span",{className:"cortex-expandable__title",children:$}),Q,t("button",{type:"button",className:"cortex-expandable__action","aria-label":G("translate_close"),title:G("translate_close"),onClick:()=>J.current?.close(),children:t("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:t("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})})]}),N&&t("div",{className:"cortex-expandable__body",children:X})]})]})}import{jsx as u_,jsxs as D4}from"react/jsx-runtime";function N2(_){let{id:$,alt:Y,attachment:Q}=_,{api:X,t:Z}=L(),[G,J]=J2(),[N,V]=J2(!1);if(W4(()=>{let K,z=!1;return J(void 0),V(!1),X.downloadAttachment($).then(({blob:F})=>{if(z)return;K=URL.createObjectURL(F),J(K)},()=>{if(!z)V(!0)}),()=>{if(z=!0,K)URL.revokeObjectURL(K)}},[X,$]),N)return u_("p",{className:"cortex-attachment-image__caption",children:Y?Z("translate_image_unavailable_alt",{alt:Y}):Z("translate_image_unavailable")});if(!G)return null;return D4("figure",{className:"cortex-attachment-image",children:[u_(A_,{label:Q?.filename||Y||Z("translate_image"),expanded:u_("img",{className:"cortex-attachment-image__expanded",src:G,alt:Y}),children:u_("img",{src:G,alt:Y})}),Q&&u_("figcaption",{className:"cortex-attachment-image__caption",children:Q.filename})]})}import{useEffect as H4,useRef as B4,useState as P0}from"react";import{jsx as j,jsxs as c_,Fragment as U4}from"react/jsx-runtime";function q4(_){let{t:$}=L();if(!_.pending&&!_.debugMode)return null;return c_("div",{className:"cortex-media-block__head",children:[_.debugMode&&j("span",{className:"cortex-media-block__lang",children:_.language}),_.pending&&j("span",{className:"cortex-media-block__pending",children:$(_1(_.language).pending)}),_.debugMode&&_.closed&&c_("span",{className:"cortex-media-block__actions",children:[_.onToggleSource&&j("button",{type:"button",className:"cortex-media-block__action","aria-pressed":_.sourceShown,onClick:_.onToggleSource,children:$("translate_media_source")}),j(h,{value:_.source})]})]})}function V2(_){let{debugMode:$,t:Y}=L();return j("div",{className:"cortex-media-block__body",children:c_("p",{className:"cortex-media-block__error",children:[_.cutOff?Y("translate_media_cut_off"):Y("translate_media_failed"),!_.cutOff&&$&&` ${_.reason}`]})})}function K2(_){let{language:$,source:Y,closed:Q,hidden:X,onError:Z}=_,{config:G,scheme:J}=L(),N=B4(null);return H4(()=>{Z(void 0);let V=N.current;if(!Q||!J||!V)return;return X0(V,{language:$,source:Y,context:{scheme:J},overrides:G.mediaRenderers,onError:Z})},[$,Y,Q,J,G.mediaRenderers,Z]),j("div",{ref:N,hidden:X,className:U("cortex-media-block__body",`cortex-media-block__body--${$}`)})}function F4(_){let[$,Y]=P0();return c_(U4,{children:[$&&j(V2,{cutOff:!1,reason:$}),j(K2,{language:_.language,source:_.source,closed:!0,hidden:Boolean($),onError:Y})]})}function z2(_){let{language:$,source:Y,closed:Q,streaming:X}=_,{debugMode:Z,t:G}=L(),[J,N]=P0(),[V,K]=P0(!1),z=!Q&&!X,F=z||Boolean(J);return c_("div",{className:"cortex-media-block",children:[j(q4,{language:$,source:Y,pending:!Q&&X,closed:Q,debugMode:Z,sourceShown:V,onToggleSource:F?void 0:()=>K((q)=>!q)}),F&&j(V2,{cutOff:z,reason:J}),j(A_,{label:G(_1($).title),ready:Q&&!F,expanded:j(F4,{language:$,source:Y}),children:j(K2,{language:$,source:Y,closed:Q,hidden:F,onError:N})}),Z&&(F||V)&&j("pre",{className:"cortex-media-block__source",children:Y})]})}import{useMemo as L4,useRef as O4}from"react";import{jsx as V_}from"react/jsx-runtime";var P4="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";function W2(_){let{t:$}=L(),Y=O4(null),Q=L4(()=>({__html:v_(_.text)}),[_.text]);function X(){let Z=Y.current?.querySelector("table");if(Z)g_(o1(a1(Z)),"table.xlsx")}return V_("div",{className:"cortex-table-block",children:V_(A_,{label:$("translate_table"),ready:_.closed,actions:V_("button",{type:"button",className:"cortex-expandable__action","aria-label":$("translate_table_export"),title:$("translate_table_export"),onClick:X,children:V_("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:V_("path",{d:P4,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),expanded:V_("div",{className:"cortex-table-block__expanded",dangerouslySetInnerHTML:Q}),children:V_("div",{ref:Y,dangerouslySetInnerHTML:Q})})})}import{jsx as E_}from"react/jsx-runtime";function H2(_){let{role:$,textPart:Y,streaming:Q=!1,attachments:X=[]}=_,{config:Z}=L(),G=$==="assistant"&&Q?"":Y.content,[J,N]=A4({text:G,fading:[]}),V=M0(G),K=M0(null),z=M0(!0);D2(()=>{function q(O,P){V.current=O,N((D)=>D.text===O&&!D.fading.length&&!P.length?D:{text:O,fading:P})}if($!=="assistant"||!Q){K.current?.destroy(),K.current=null,q(Y.content,[]),z.current=!1;return}if(!K.current)K.current=new $_(q),K.current.seed(V.current);if(z.current){z.current=!1,K.current.seed(Y.content);return}K.current.update(Y.content,!1)},[$,Q,Y]),D2(()=>()=>{K.current?.destroy(),K.current=null},[]);let F=M4(()=>{let q=$==="assistant"?r1(J.text,Q0(Z.mediaRenderers)):[{kind:"markdown",text:J.text}];return q.map((O,P)=>O.kind==="markdown"?{...O,html:{__html:v_(O.text,P===q.length-1?J.fading:[])}}:O)},[$,J,Z.mediaRenderers]),B=Q||J.text!==Y.content;return E_("div",{className:U("cortex-text-part",$==="assistant"&&"cortex-text-part--assistant",$==="user"&&"cortex-text-part--user"),children:E_("div",{className:U("cortex-text-bubble",$==="assistant"&&"cortex-text-bubble--assistant",$==="user"&&"cortex-text-bubble--user"),children:F.map((q,O)=>{switch(q.kind){case"markdown":return E_("div",{dangerouslySetInnerHTML:q.html},O);case"media":return E_(z2,{...q,streaming:B},O);case"table":return E_(W2,{text:q.text,closed:q.closed||!B},O);case"attachment":return E_(N2,{id:q.id,alt:q.alt,attachment:X.find((P)=>P.id.toLowerCase()===q.id)},O)}})})})}import{jsx as g,jsxs as X_}from"react/jsx-runtime";function B2({toolCallPart:_}){let{t:$}=L(),{state:Y,approval:Q}=_,X=_.output,Z=M1(_);if(Y==="complete")return X_("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--success",children:[X_("div",{className:"cortex-debug-tool__section-bar",children:[g("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--success",children:$("translate_output")}),g("span",{className:"cortex-debug-tool__section-lang",children:"json"}),g(h,{value:Z})]}),g("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:g(Y_,{data:X,expandDepth:2})})]});if(Y==="error")return X_("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--error",children:[X_("div",{className:"cortex-debug-tool__section-bar",children:[g("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--error",children:$("translate_error")}),g(h,{value:Z})]}),g("pre",{dir:"ltr",className:"cortex-debug-tool__error-pre",children:Z})]});if(Y==="approval-requested")return X_("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[X_("div",{className:"cortex-debug-tool__section-bar",children:[g("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:$("translate_approval_requested")}),g("span",{className:"cortex-debug-tool__section-lang",children:Q?.id})]}),g("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:$("translate_waiting_for_approval")})]});if(Y==="approval-responded")return X_("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[X_("div",{className:"cortex-debug-tool__section-bar",children:[g("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:$("translate_approval_response")}),g("span",{className:"cortex-debug-tool__section-lang",children:Q?.id})]}),g("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:$(Q?.approved?"translate_tool_approved":"translate_tool_response_received")})]});return null}import{jsx as E4,jsxs as k4}from"react/jsx-runtime";function q2({toolCallPart:_}){let{t:$}=L(),Y=P1(_);return k4("span",{className:U("cortex-debug-tool__state",Y.modifier&&`cortex-debug-tool__state--${Y.modifier}`),children:[Y.pulse&&E4("span",{className:U("cortex-debug-tool__pulse",Y.pulse==="violet"&&"cortex-debug-tool__pulse--violet")}),$(Y.labelKey)]})}import{jsx as T,jsxs as s}from"react/jsx-runtime";function F2({toolCallPart:_}){let{t:$}=L(),{codeSnippets:Y,remainingInput:Q,remainingInputText:X}=A1(_.input);return s("details",{className:"cortex-debug-tool","data-state":_.state,children:[T("summary",{className:"cortex-debug-tool__summary",children:s("div",{className:"cortex-debug-tool__header",children:[s("div",{className:"cortex-debug-tool__meta",children:[T("div",{className:"cortex-debug-tool__title-row",children:T("span",{className:"cortex-debug-tool__name",title:_.name,children:_.name})}),T("div",{className:"cortex-debug-tool__id-row",children:T("span",{className:"cortex-debug-tool__id",children:_.id})})]}),s("div",{className:"cortex-debug-tool__actions",children:[T(q2,{toolCallPart:_}),T("svg",{className:"cortex-debug-tool__chevron",width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:T("path",{d:S.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),s("div",{className:"cortex-debug-tool__body",children:[Y.map((Z)=>s("div",{className:"cortex-debug-tool__section",children:[s("div",{className:"cortex-debug-tool__section-bar",children:[T("span",{className:"cortex-debug-tool__section-label",children:Z.key}),T("span",{className:"cortex-debug-tool__section-lang",children:Z.lang}),T(h,{value:Z.value})]}),T("pre",{dir:"ltr",className:"cortex-debug-tool__pre",children:T("code",{className:"hljs",dangerouslySetInnerHTML:{__html:G0(Z.value,Z.lang)}})})]},Z.key)),!!Q&&s("div",{className:"cortex-debug-tool__section",children:[s("div",{className:"cortex-debug-tool__section-bar",children:[T("span",{className:"cortex-debug-tool__section-label",children:$("translate_input")}),T("span",{className:"cortex-debug-tool__section-lang",children:"json"}),T(h,{value:X})]}),T("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:T(Y_,{data:Q,expandDepth:2})})]}),T(B2,{toolCallPart:_})]})]})}import{useEffect as R4,useRef as I4,useState as U2}from"react";import{jsx as p_,jsxs as L2}from"react/jsx-runtime";function K_({activity:_,className:$}){let{t:Y}=L(),Q=k1(_),[X,Z]=U2(0),[G,J]=U2("idle"),N=I4(Q.length);return N.current=Q.length,R4(()=>{let V,K;function z(){V=setTimeout(()=>{J("exiting"),V=setTimeout(()=>{Z((F)=>(F+1)%N.current),J("enter-start"),K=requestAnimationFrame(()=>{J("entering"),V=setTimeout(()=>{J("idle"),z()},300)})},300)},2000)}return z(),()=>{if(V)clearTimeout(V);if(K)cancelAnimationFrame(K)}},[]),L2("div",{className:U("cortex-subtle-activity",$),children:[L2("div",{className:"cortex-subtle-activity__dots",children:[p_("span",{className:"cortex-subtle-activity__dot"}),p_("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d1"}),p_("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d2"})]}),p_("div",{className:"cortex-subtle-activity__label-mask",children:p_("span",{className:U("cortex-subtle-activity__label",`cortex-subtle-activity__label--${G}`),children:Y(Q[X])})})]})}import{useEffect as k2,useRef as A0,useState as E2}from"react";import{jsx as c,jsxs as k_,Fragment as y4}from"react/jsx-runtime";function O2({toolCallPart:_,asking:$}){let{t:Y,locale:Q,respondToApproval:X}=L(),{sentence:Z,decision:G,decisionKey:J}=E1(_,Q),N=`cortex-approval-${_.id}`,V=u0(_),K=G==="pending",{state:z,active:F}=i(_);return k_("div",{className:U("cortex-approval-card",K&&"cortex-approval-card--asking"),children:[K?k_(y4,{children:[k_("div",{className:"cortex-approval-card__head",children:[c("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:c("path",{d:"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",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Y("translate_approval_needed")]}),c("p",{className:"cortex-approval-card__sentence",id:N,children:Z})]}):k_("div",{className:"cortex-approval-card__line",children:[k_("span",{className:"cortex-tool-pill__icon","aria-hidden":"true",children:[c("span",{className:U("cortex-tool-pill__spinner",F&&"cortex-tool-pill__spinner--visible")}),c("svg",{className:U("cortex-tool-pill__svg cortex-tool-pill__svg--check",z==="complete"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:c("path",{d:"M5.5 10.5 L8.5 13.5 L14.5 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),c("svg",{className:U("cortex-tool-pill__svg cortex-tool-pill__svg--error",z==="error"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:c("path",{d:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]}),J&&c("span",{className:"cortex-approval-card__decision",children:Y(J)}),c("span",{className:"cortex-approval-card__summary",children:Z})]}),K&&$&&k_("div",{className:"cortex-approval-card__foot",children:[c("button",{type:"button",className:"cortex-approval-card__button cortex-approval-card__button--approve","aria-describedby":N,onClick:()=>void X(V,!0),children:Y("translate_approve")}),c("button",{type:"button",className:"cortex-approval-card__button","aria-describedby":N,onClick:()=>void X(V,!1),children:Y("translate_deny")})]})]})}import{useEffect as P2,useRef as N1,useState as M2}from"react";import{jsx as C,jsxs as p}from"react/jsx-runtime";function A2({toolCallPart:_,setOutput:$}){let{t:Y}=L(),{state:Q,id:X,input:Z}=_;if(Q==="complete"||Q==="error"){let G=c1(_.output);return G?C(w4,{position:G}):p("div",{className:"cortex-tool-pill",children:[C("span",{className:"cortex-tool-pill__icon",children:C("svg",{className:U("cortex-tool-pill__svg cortex-tool-pill__svg--visible",Q==="error"&&"cortex-tool-pill__svg--error"),viewBox:"0 0 20 20",fill:"none",children:C("path",{d:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}),C("span",{className:"cortex-tool-pill__title",children:Y("translate_location_not_shared")})]})}if(Q!=="input-complete")return null;return C(C4,{center:u1(Z),submit:$},X)}function C4({center:_,submit:$}){let{t:Y}=L(),Q=N1(null),X=N1(void 0),[Z,G]=M2(a_),J=N1({center:_,submit:$});J.current={center:_,submit:$},P2(()=>{let V=Q.current;if(!V)return;let K=x1(V,{center:J.current.center,onState:G,submit:(z)=>J.current.submit(z)});return X.current=K,K.start(),()=>{if(K.dispose(),X.current===K)X.current=void 0}},[]);let N=p1(Z);return p("div",{className:"cortex-location-input",children:[p("div",{className:"cortex-location-input__map",children:[C("div",{className:"cortex-location-input__canvas",ref:Q}),C("button",{type:"button",className:"cortex-location-input__locate","aria-label":Y("translate_location_locate"),title:Y("translate_location_locate"),disabled:Z.locating||Z.submitting,onClick:()=>X.current?.locate(),children:C(S4,{})})]}),p("div",{className:"cortex-location-input__foot",children:[Z.position&&!Z.deliveryFailed?C("span",{className:"cortex-location-input__coords",children:o_(Z.position)}):p("span",{className:U("cortex-location-input__hint",N.failed&&"cortex-location-input__hint--failed"),children:[Z.locating&&C("span",{className:"cortex-location-input__spinner"}),Y(N.key)]}),p("span",{className:"cortex-location-input__actions",children:[C("button",{type:"button",className:"cortex-location-input__skip",disabled:Z.submitting,onClick:()=>X.current?.cancel(),children:Y("translate_location_skip")}),C("button",{type:"button",className:"cortex-location-input__send",disabled:!Z.position||Z.submitting,onClick:()=>X.current?.confirm(),children:Y("translate_location_send")})]})]})]})}function w4({position:_}){let{t:$}=L(),Y=N1(null),[Q,X]=M2(!1),{lat:Z,lng:G}=_;return P2(()=>{let J=Y.current;if(!J)return;return X(!1),h1(J,{lat:Z,lng:G},()=>X(!0))},[Z,G]),p("div",{className:"cortex-location-input cortex-location-input--settled",children:[p("div",{className:"cortex-location-input__map cortex-location-input__map--still",children:[C("div",{className:"cortex-location-input__canvas",ref:Y,hidden:Q}),Q&&C("span",{className:"cortex-location-input__still-failed",children:$("translate_location_map_failed")})]}),p("div",{className:"cortex-location-input__body",children:[p("span",{className:"cortex-location-input__title",children:[C("svg",{viewBox:"0 0 20 20",fill:"none",children:C("path",{d:"M5.5 10.5 L8.5 13.5 L14.5 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),$("translate_location_shared")]}),C("span",{className:"cortex-location-input__coords",children:o_(_)})]})]})}function S4(){return p("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:"M10 1.5v3M10 15.5v3M1.5 10h3M15.5 10h3"})]})}import{jsx as I,jsxs as d_}from"react/jsx-runtime";var b4=new Map([[r_,A2]]);function R2({message:_,toolCallPart:$,agentWorking:Y}){let{config:Q,addToolResult:X}=L(),Z=$.state==="input-complete"&&!Y,G=$.state==="approval-requested"&&!Y,J=Q.toolComponents?.[$.name]??(Z||f($.state)?b4.get($.name):void 0);return I("div",{className:"cortex-tool-call-animated",children:J?I(J,{toolCallPart:$,message:_,setOutput:(N)=>X($.id,$.name,N)}):Z?I(T4,{toolCallPart:$}):I(I2,{toolCallPart:$,asking:G})})}function T4({toolCallPart:_}){let{api:$,t:Y,addToolResult:Q,selectedThread:X,config:Z}=L(),G=X?.id,[J,N]=E2({phase:"initiating"}),[V]=E2(Z.trustSameOriginEmbeds),K=A0(void 0),z=A0({api:$,addToolResult:Q,toolName:_.name});if(z.current={api:$,addToolResult:Q,toolName:_.name},k2(()=>{if(!G)return;let B=g1({initiate:()=>z.current.api.initiateToolCall(G,_.id),onState:N,submit:(O)=>z.current.addToolResult(_.id,z.current.toolName,O)});K.current=B,B.start();let q=(O)=>B.handleMessage(O);return window.addEventListener("message",q),()=>{if(window.removeEventListener("message",q),B.dispose(),K.current===B)K.current=void 0}},[_.id,G]),!G||J.phase==="unavailable"||J.phase==="settling")return I(I2,{toolCallPart:_,asking:!1});let F=d_("div",{className:"cortex-client-tool-embed",children:[d_("div",{className:"cortex-client-tool-embed__bar",children:[I("span",{children:Y("translate_client_tool_title")}),I("button",{type:"button",className:"cortex-client-tool-embed__cancel",onClick:()=>K.current?.cancel(),children:Y("translate_client_tool_cancel")})]}),J.phase==="embedded"?I("iframe",{className:"cortex-client-tool-embed__frame",src:J.embedUrl,sandbox:v1(J.embedUrl,window.location.origin,V),title:Y("translate_client_tool_title"),ref:(B)=>K.current?.setSource(B?.contentWindow),onLoad:(B)=>{if(!f1(J.embedUrl,window.location.origin,V)&&j1(B.currentTarget,window.location.origin))K.current?.terminate()}}):J.phase==="error"?d_("div",{className:"cortex-client-tool-embed__status",children:[I("span",{children:Y("translate_client_tool_failed")}),I("button",{type:"button",className:"cortex-client-tool-embed__retry",onClick:()=>void K.current?.start(),children:Y("translate_client_tool_retry")})]}):I("div",{className:"cortex-client-tool-embed__status",children:Y("translate_client_tool_loading")})]});return J.phase==="embedded"&&J.surface==="modal"?I(v4,{label:Y("translate_client_tool_title"),onCancel:()=>K.current?.cancel(),children:F}):F}function v4({label:_,onCancel:$,children:Y}){let Q=A0(null);return k2(()=>{let X=Q.current;return X?.showModal(),()=>X?.close()},[]),I("dialog",{ref:Q,className:"cortex-client-tool-embed-dialog","aria-label":_,onCancel:(X)=>{X.preventDefault(),$()},children:Y})}function I2({toolCallPart:_,asking:$}){return i(_).gated?I(O2,{toolCallPart:_,asking:$}):I(f4,{toolCallPart:_})}function f4({toolCallPart:_}){let{t:$}=L(),{state:Y,active:Q,titleKey:X,statement:Z,rowCount:G}=i(_);return d_("div",{className:"cortex-tool-pill",children:[d_("span",{className:"cortex-tool-pill__icon",children:[I("span",{className:U("cortex-tool-pill__spinner",Q&&"cortex-tool-pill__spinner--visible")}),I("svg",{className:U("cortex-tool-pill__svg","cortex-tool-pill__svg--check",Y==="complete"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:I("path",{d:"M5.5 10.5 L8.5 13.5 L14.5 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),I("svg",{className:U("cortex-tool-pill__svg","cortex-tool-pill__svg--error",Y==="error"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:I("path",{d:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]}),I("span",{className:U("cortex-tool-pill__title",Y==="error"&&"cortex-tool-pill__title--error",Y==="starting"&&Z&&"cortex-tool-pill__title--pending"),children:Z??$(X)}),G!==void 0&&I("span",{className:"cortex-tool-pill__meta",children:$("translate_rows_read",{count:G})})]})}import{jsx as E0}from"react/jsx-runtime";function y2({message:_,toolCallPart:$,agentWorking:Y}){if(!f($.state)&&!i($).statement){if($.name==="queryGraph")return E0(K_,{activity:"graph"});if($.name==="executeCode")return E0(K_,{activity:"code"})}return E0(R2,{toolCallPart:$,message:_,agentWorking:Y})}import{jsx as R_,jsxs as j4}from"react/jsx-runtime";function C2(_){let{message:$,part:Y,debugMode:Q,animate:X,streaming:Z,agentWorking:G,attachments:J}=_,{t:N}=L();function V(){switch(Y.type){case"text":return R_(H2,{textPart:Y,role:$.role,streaming:Z,attachments:J});case"thinking":return Q?R_(G2,{reasoningPart:Y,streaming:Z}):R_(K_,{activity:"reasoning",className:"cortex-reasoning-animated"});case"tool-call":return Q?R_(F2,{toolCallPart:Y}):R_(y2,{toolCallPart:Y,message:$,agentWorking:G});default:return j4("p",{className:"cortex-unhandled-type",children:[N("translate_unhandled_type")," ",Y.type]})}}return R_("div",{className:U("cortex-message-part",X&&"cortex-message-part--animated",_.folded&&"cortex-message-part--folded"),"data-cortex-frontier":_.frontier?"":void 0,children:V()})}import{jsx as e,jsxs as k0}from"react/jsx-runtime";function m4({isUser:_,clipboardText:$,createdAt:Y}){let{locale:Q}=L();return k0("div",{className:U("cortex-message-actions",_&&"cortex-message-actions--user"),children:[$&&e(h,{value:$}),Y&&e("time",{className:"cortex-message-actions__time",dateTime:Y,children:r(Y,Q)})]})}function x4({count:_,animate:$,onOpen:Y}){let{t:Q}=L();return e("button",{type:"button",className:U("cortex-tool-fold",$&&"cortex-message-part--animated"),onClick:Y,children:Q(C_(_,"translate_one_more_step","translate_n_more_steps"),{count:_})})}function w2(_){let{message:$,parts:Y,metadata:Q,debugMode:X,animate:Z,isStreaming:G,agentWorking:J,closesTurn:N,fold:V,onOpenRun:K,frontier:z}=_,F=$.role==="assistant",B=$.role==="user",q=G?Y.length-1:-1,O=Q?.attachments??[],P=Y.filter((k)=>V?.get(k)?.kind!=="hidden"),D=P.filter((k)=>k.type==="text").at(-1),H=D?Y.indexOf(D):-1,W=(B||F)&&!G&&H>=0,M=D!==P.at(-1)?H:-1,A=W&&e(m4,{isUser:B,clipboardText:R1(Y),createdAt:Q?.createdAt});return k0("div",{className:"cortex-message-parts",children:[Y.map((k,n)=>{let Z_=V?.get(k);return k0(g4,{children:[e(C2,{part:k,message:$,debugMode:X,animate:Z,streaming:n===q,agentWorking:J,attachments:O,frontier:k===z,folded:Z_?.kind==="hidden"}),Z_?.kind==="more"&&e(x4,{count:Z_.count,animate:Z,onOpen:()=>K(Z_.runId)}),n===M&&A]},$.parts.indexOf(k))}),O.length>0&&e(t6,{attachments:O,isUser:B}),Q?.isAborted&&e(a6,{}),M===-1&&A,X&&Q&&N&&e(Z2,{messageId:$.id,isAssistant:F,metadata:Q})]})}import{jsx as z_,jsxs as R0}from"react/jsx-runtime";function S2({firing:_,debugMode:$}){let{t:Y,locale:Q}=L();return R0("div",{className:U("cortex-trigger-block",$&&"cortex-trigger-block--debug"),children:[R0("div",{className:"cortex-trigger-block__head",children:[z_("svg",{className:"cortex-trigger-block__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:z_("path",{d:"M6.75 1 2.5 6.75h3l-.25 4.25L9.5 5.25h-3z",fill:"currentColor"})}),$&&z_("span",{children:Y("translate_trigger_fired")}),z_("span",{className:"cortex-trigger-block__name",children:_.name}),z_("time",{className:"cortex-trigger-block__time",dateTime:_.firedAt,children:r(_.firedAt,Q)})]}),$&&R0("details",{className:"cortex-trigger-block__payload",children:[z_("summary",{children:Y("translate_trigger_payload")}),z_(Y_,{data:_.payload,expandDepth:2})]})]})}import{jsx as l_}from"react/jsx-runtime";var b2=h4(function($){let{message:Y,metadata:Q,isStreaming:X,agentWorking:Z,closesTurn:G,debugMode:J,animate:N,fold:V,onOpenRun:K,workingTurn:z,frontier:F}=$,B=B_(Y.parts,{debugMode:J,isStreaming:X});if(Q?.trigger)return l_("div",{className:"cortex-message",children:l_(S2,{firing:Q.trigger,debugMode:J})});if(B.length===0&&!Q?.attachments?.length)return l_("div",{className:"cortex-message"});return l_("div",{className:U("cortex-message",z&&"cortex-message--working-turn"),children:l_(w2,{message:Y,parts:B,metadata:Q,debugMode:J,animate:N,isStreaming:X,agentWorking:Z,closesTurn:G,fold:V,onOpenRun:K,frontier:F})})});import{jsx as V1}from"react/jsx-runtime";var u4=[{role:"user",lines:[13,9]},{role:"assistant",lines:[16,18,12]},{role:"user",lines:[11]},{role:"assistant",lines:[14,15]}];function T2(){return V1("div",{className:"cortex-widget__messages-skeleton",children:u4.map((_,$)=>V1("div",{className:`cortex-widget__msg-skel cortex-widget__msg-skel--${_.role}`,children:V1("div",{className:`cortex-widget__msg-skel-bubble cortex-widget__msg-skel-bubble--${_.role}`,children:_.lines.map((Y)=>V1("div",{className:"cortex-skeleton cortex-widget__msg-skel-line",style:{width:`${Y}rem`}},Y))})},$))})}import{jsx as d,jsxs as K1,Fragment as i4}from"react/jsx-runtime";function p4(_){let $=W_(null),Y=W_(null),Q=W_(!0),X=W_(!0),Z=W_(!1),G=n_(()=>{if(Z.current)return;Z.current=!0,queueMicrotask(()=>{Z.current=!1;let K=$.current;if(!K)return;$1(K),X.current=!0,Q.current=!1})},[]);I0(()=>{let K=Y.current;if(!_||!$.current||!K)return;if(G(),typeof ResizeObserver>"u")return;let z=0,F=new ResizeObserver(([B])=>{let q=B?.contentRect.height??0,O=q>z;if(z=q,O&&(Q.current||X.current))G()});return F.observe(K),()=>F.disconnect()},[_,G]);let J=n_(()=>{Q.current=!0},[]),N=n_(()=>{if(Q.current)G()},[G]);function V(){let K=$.current;if(K)X.current=D0(K)<100}return{containerRef:$,contentRef:Y,onScroll:V,pin:J,settlePinned:N}}function d4({pin:_,settlePinned:$,contentRef:Y},Q,X){let[Z,G]=C0(!1);I0(()=>{G(!1),_(),queueMicrotask(()=>G(!0))},[Q,_]);let J=X[X.length-1],N=J?.role==="user"?J.id:void 0,V=N?J?.parts.find((K)=>K.type==="text")?.content:void 0;return y0(()=>{if(!N)return;_();let K=Y.current;if(K&&V!==void 0)W0(K,V)},[N,V,_,Y]),I0(()=>{$()},[X,$]),Z}function l4(_,$,Y,Q){let[X,Z]=C0(new Set),G=n_((V)=>Z((K)=>new Set(K).add(V)),[]),[J]=C0(C1);return{folds:c4(()=>J(_,{agentWorking:$,debugMode:Y,opened:X,foldable:Q}),[J,_,$,Y,X,Q]),openRun:G}}function n4({working:_}){let $=W_(null),Y=W_(void 0);return y0(()=>{let Q=$.current;if(!Q)return;let X=H0(Q);return Y.current=X,()=>{X.dispose(),Y.current=void 0}},[]),y0(()=>Y.current?.sync(_)),K1("div",{ref:$,className:"cortex-working-avatar","aria-hidden":"true",children:[K1("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[d("path",{d:"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"}),d("path",{d:"M20 3v4M22 5h-4M4 17v2M5 18H3"})]}),d("span",{className:"cortex-working-avatar__ring"})]})}function v2(_){let{config:$,selectedThread:Y}=L(),{messages:Q,isAgentWorking:X,isLoadingMessages:Z,hasPendingToolCalls:G}=F_(),{capabilities:J,composerRef:N,debugMode:V}=_,K=!Z||X,z=p4(K),F=d4(z,Y?.id,Q),B=X?w_(Q)?.id:void 0,q=$.toolComponents,O=n_((A)=>I1(A,q),[q]),{folds:P,openRun:D}=l4(Q,X,V,O),H=Q.map((A)=>A.role).lastIndexOf("user"),W=X&&!V,M=W?y1(Q,{foldable:O}):void 0;return K1(i4,{children:[!K?d(T2,{}):d("div",{className:_.className,children:d("div",{ref:z.containerRef,className:"cortex-message-list",onScroll:z.onScroll,children:K1("div",{ref:z.contentRef,className:"cortex-message-list__content",children:[Q.map((A,k)=>d(b2,{message:A,metadata:A.metadata,isStreaming:A.id===B,agentWorking:X,fold:P.get(A.id),onOpenRun:D,closesTurn:A.role==="assistant"&&Q[k+1]?.role!=="assistant",debugMode:V,animate:F,workingTurn:W&&k>H,frontier:A.id===B?M:void 0},A.id)),X&&!M&&d("div",{className:"cortex-working-thinking","data-cortex-frontier":"",children:d(K_,{activity:"reasoning"})}),d(n4,{working:X},Y?.id)]})})}),!G&&d(Y1,{capabilities:J,composerRef:N})]})}import{jsx as f2,jsxs as r4}from"react/jsx-runtime";function j2(_){let{debugMode:$,selectedThread:Y}=L(),{screens:Q}=_;return r4("div",{className:U("cortex-widget__screen",Q.screen==="chat"&&"cortex-widget__screen--active",Q.screen!=="chat"&&"cortex-widget__screen--right"),children:[_.header,Y?f2(v2,{className:"cortex-widget__messages",debugMode:$,capabilities:_.capabilities,composerRef:_.composerRef}):_.landing,f2("div",{className:"cortex-widget__sidebar-backdrop",onClick:Q.closeSidebar})]})}import{useState as e4}from"react";import{useEffect as w0,useRef as h2,useState as S0}from"react";import{useChat as s4}from"@tanstack/ai-react";import{useEffect as a4,useLayoutEffect as o4,useState as t4}from"react";function g2(_,{sessionRef:$,pendingSendRef:Y}){let[Q]=t4(_);return o4(()=>{return $.current=Q,()=>{if($.current===Q)$.current=void 0}},[Q,$]),a4(()=>{if(!Y.current.length)return;let X=setTimeout(()=>{let Z=Y.current;Y.current=[],(async()=>{for(let{prompt:G,attachments:J}of Z)await Q.send(G,J)})()});return()=>clearTimeout(X)},[Q,Y]),Q}import{useRef as m2}from"react";function x2(_){let $=m2(_);$.current=_;let Y=m2(Promise.resolve(void 0));async function Q(X){let Z=$.current;if(!Z.isAlive()||X!==Z.threadId)return;return S1({api:Z.api,threadId:X,isStale:()=>!$.current.isAlive(),isStreaming:()=>$.current.isStreaming(),setMessages:(G)=>$.current.setMessages(G)})}return function(Z){return Y.current=Y.current.then(()=>Q(Z)),Y.current}}function u2(_){let{thread:$,api:Y}=_,Q=h2(!0),[X,Z]=S0(!1),G=h2(null),J=x2({api:Y,threadId:$.id,isAlive:()=>Q.current,isStreaming:()=>G.current.chat.isLoading,setMessages:(H)=>G.current.chat.setMessages(H)}),[N]=S0(()=>B0({threadId:$.id,isAlive:()=>Q.current,onToolCall:()=>G.current.props.configRef.current.hooks?.onToolCall,deliver:(H)=>G.current.chat.addToolResult(H),setRunning:(H)=>G.current.props.setRunning($.id,H),reloadThreads:()=>G.current.props.reloadThreads(),refreshMessages:()=>J($.id),onTurnFinished:()=>G.current.props.onTurnFinished(),onSendFailed:()=>G.current.props.onSendFailed()})),[V]=S0(()=>w1({api:Y,thread:{id:$.id,isRunning:$.isRunning},mode:_.mode,localMessages:()=>G.current.chat.messages,onHydrated:(H)=>{if(Q.current)N.hydrated(H,$.isRunning)},onTranscriptCarried:(H)=>{if(Q.current)N.transcriptCarried(H)},setLoadingMessages:(H)=>{if(Q.current)Z(H)}})),K=s4({threadId:$.id,persistence:!0,initialMessages:_.initialMessages,connection:V,onChunk:()=>{if(Q.current)N.chunkArrived()},onError:()=>{if(Q.current)N.streamFailed()}});G.current={chat:K,props:_};async function z(H,W){N.sendStarted();let M={id:S_(),role:"user",parts:[{type:"text",content:H}],metadata:{createdAt:new Date().toISOString(),attachments:W}};await G.current.chat.append(M)}async function F(){if(!G.current.chat.isLoading)return;let{aborted:H}=await Y.abortStream($.id).catch(()=>({aborted:!1}));if(!Q.current)return;if(H)N.abortConfirmed();G.current.chat.stop()}function B(H,W,M){return G.current.chat.addToolResult({toolCallId:H,tool:W,output:M}).catch((A)=>{throw J($.id),A})}function q(H,W){return m1(G.current.chat,H,W)}function O(H){if(G.current.chat.isLoading)return;if(H.isRunning){G.current.props.remount(H,G.current.chat.messages);return}J(H.id)}w0(()=>{return Q.current=!0,()=>{Q.current=!1}},[]),g2(()=>({threadId:$.id,send:z,abort:F,addToolResult:B,respondToApproval:q,reattach:O,transcriptUpdated:(H,W)=>{if(H===$.id)N.transcriptUpdated(W)}}),{sessionRef:_.sessionRef,pendingSendRef:_.pendingSendRef});let{messages:P,isLoading:D}=K;return w0(()=>{N.loadingChanged(D,()=>G.current.chat.messages)},[N,D]),w0(()=>{G.current.props.publish({messages:P,isAgentWorking:D,isLoadingMessages:X,hasPendingToolCalls:!D&&__(P).length>0})},[P,D,X]),null}import{jsx as _7,jsxs as $7}from"react/jsx-runtime";function c2({selection:_,threads:$,children:Y,...Q}){let{session:X}=_,[Z,G]=e4(),J=X&&`${X.thread.id}:${X.epoch}`,N=X&&Z&&(Z.key===J||X.mode==="reload")?Z.value:F0;return $7(U0.Provider,{value:N,children:[X&&J&&_7(u2,{thread:X.thread,mode:X.mode,initialMessages:X.initialMessages,setRunning:$.setRunning,reloadThreads:$.reload,remount:_.remount,publish:(V)=>G({key:J,value:V}),...Q},J),Y]})}import{jsx as w,jsxs as D_,Fragment as Y7}from"react/jsx-runtime";function p2(_){let{locale:$,t:Y}=L(),{threads:Q}=_;return w("div",{className:"cortex-widget__threads-list",children:Q===void 0?[1,2,3,4].map((X)=>D_("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+X*12}%`}})})]},X)):D_(Y7,{children:[Q.map((X)=>{let Z=X.id===_.selectedThreadId,G=r(X.updatedAt,$);return D_("button",{onClick:()=>_.openThread(X),className:U("cortex-widget__thread-item",Z&&"cortex-widget__thread-item--active"),children:[w("div",{className:U("cortex-widget__thread-icon",Z&&"cortex-widget__thread-icon--active"),children:w("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:w("path",{d:S.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),D_("div",{className:"cortex-widget__thread-info",children:[D_("div",{className:"cortex-widget__thread-title-row",children:[w("p",{className:U("cortex-widget__thread-title",Z&&"cortex-widget__thread-title--active"),children:X.title??Y("translate_untitled")}),X.isRunning&&D_("span",{className:U("cortex-widget__thread-running",Z&&"cortex-widget__thread-running--active"),children:[w("span",{className:"cortex-widget__thread-running-dot"}),Y("translate_running")]})]}),G&&w("p",{className:"cortex-widget__thread-time",children:G})]}),w("span",{role:"button",tabIndex:0,onClick:(J)=>{J.stopPropagation(),_.deleteThread(X.id)},onKeyDown:(J)=>{if(J.key!=="Enter"&&J.key!==" ")return;J.preventDefault(),J.stopPropagation(),_.deleteThread(X.id)},className:U("cortex-widget__thread-delete",Z&&"cortex-widget__thread-delete--active"),children:w("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:w("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),w("svg",{className:U("cortex-widget__thread-arrow",Z&&"cortex-widget__thread-arrow--active"),width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:w("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},X.id)}),!Q.length&&D_("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:S.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),w("p",{className:"cortex-widget__threads-empty-title",children:Y("translate_no_threads_yet")}),w("p",{className:"cortex-widget__threads-empty-subtitle",children:Y("translate_start_a_new_conversation")}),w("button",{onClick:_.newChat,className:"cortex-widget__new-chat-btn cortex-widget__new-chat-btn--empty-state",children:Y("translate_new_chat")})]})]})})}import{useSyncExternalStore as Q7}from"react";function d2(_){return Q7(($)=>{let Y=window.matchMedia(_);return Y.addEventListener("change",$),()=>Y.removeEventListener("change",$)},()=>window.matchMedia(_).matches,()=>!1)}import{jsx as Z7,jsxs as n2}from"react/jsx-runtime";var X7="(max-width: 768px)";function l2(_){_.preventDefault()}function i2(_){let{screens:$}=_,Y=d2(X7),Q=_.viewMode==="full"?Y&&!$.sidebarOpen:$.screen!=="threads";return Z7("div",{className:U("cortex-widget",_.className),"data-cortex-theme":_.theme,children:n2("div",{className:U("cortex-widget__container",_.viewMode==="full"&&"cortex-widget__container--full",$.sidebarOpen&&"cortex-widget__container--sidebar-open"),onDragOver:l2,onDrop:l2,children:[n2("div",{className:U("cortex-widget__screen",$.screen==="threads"&&"cortex-widget__screen--active",$.screen!=="threads"&&"cortex-widget__screen--left"),"aria-hidden":Q||void 0,inert:Q||void 0,children:[_.header,_.threadList]}),_.children]})})}import{jsx as l}from"react/jsx-runtime";var J7={header:l6,landing:i6,threadList:p2};function b0(_,$){return _?.[$]??J7[$]}function N7(_){let{isAgentWorking:$}=F_();return l(_.component,{..._.context,isWorking:$})}function V7({config:_,className:$,slots:Y}){let Q=r2(_);Q.current=_;let[X]=z1(()=>U1(()=>Q.current.transport)),Z=v6(X),[G,J]=z1(!1),[N,V]=z1();G7(()=>Z0(_.theme,V),[_.theme]);let K=_.viewMode??"helper",z=j6(K),[F,B]=z1(0),q=E6(X,F),O=r2(null),P=w6({api:X,threads:Z,getHooks:()=>Q.current.hooks}),{sessionRef:D,selection:H,queue:W,send:M,pendingSendRef:A}=P,{selected:k,selectedRef:n}=H,Z_=b6({threads:Z,selectedRef:n,sessionRef:D,deselect:H.deselect,onReconnect:()=>B((m)=>m+1)});S6({getConfig:()=>Q.current,onEvent:Z_.onEvent,onMount:()=>void Z.reload(),onReconnect:Z_.onReconnect});let i_=L1(_.locale),a2={config:_,locale:i_,t:(m,W1)=>G_(i_,m,W1),api:X,debugMode:G,scheme:N,capabilities:q,selectedThread:k,send:M,...T6(D),queue:W.value};function o2(){W.store.discardConsumed(),setTimeout(()=>O.current?.focusInput())}function t2(){W.store.restoreConsumed(n.current?.id)}function T0(m){P.openThread(m),z.showChat()}function v0(){H.deselect(),z.showChat()}function s2(){J((m)=>!m)}function f0(m){let W1={screen:m,viewMode:K,title:k?.title??null,agentName:H_(_.agentName,i_),threadCount:Z.threads?.length??0,debug:{shown:Boolean(_.showDebugButton),on:G},newChat:v0,openHistory:z.openHistory,closeHistory:z.closeHistory,toggleDebug:s2};return l(N7,{component:b0(Y,"header"),context:W1})}let e2=b0(Y,"landing"),_5={...O1(q,i_,(m)=>void M(m)),threads:Z.threads,composer:l("div",{className:"cortex-widget__landing-composer",children:l(Y1,{capabilities:q})}),openThread:T0},$5=b0(Y,"threadList"),Y5={threads:Z.threads,selectedThreadId:k?.id,openThread:T0,deleteThread:(m)=>void P.deleteThread(m),newChat:v0};return l(q0.Provider,{value:a2,children:l(c2,{selection:H,threads:Z,api:X,configRef:Q,sessionRef:D,pendingSendRef:A,onTurnFinished:o2,onSendFailed:t2,children:l(i2,{className:$,theme:_.theme,viewMode:K,screens:z,header:f0("threads"),threadList:l($5,{...Y5}),children:l(j2,{screens:z,capabilities:q,composerRef:O,header:f0("chat"),landing:l(e2,{..._5})})})})})}export{V7 as CortexChatWidget};