@m6d/cortex-react 0.15.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  var o8=Object.create;var{getPrototypeOf:a8,defineProperty:K4,getOwnPropertyNames:s8}=Object;var t8=Object.prototype.hasOwnProperty;var k_=(_,$,Q)=>{Q=_!=null?o8(a8(_)):{};let Z=$||!_||!_.__esModule?K4(Q,"default",{value:_,enumerable:!0}):Q;for(let J of s8(_))if(!t8.call(Z,J))K4(Z,J,{get:()=>_[J],enumerable:!0});return Z};var y_=((_)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(_,{get:($,Q)=>(typeof require<"u"?require:$)[Q]}):_)(function(_){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+_+'" is not supported')});import{useEffect as G3,useMemo as j8,useState as K3}from"react";var e8=["completed","cancelled","failed"],H1="requestLocation";function V4(_,$,Q){if($!==Q)return null;if(typeof _!=="object"||_===null)return null;let Z=_;if(Z.type!=="cortex:client-tool")return null;let J=e8.find((z)=>z===Z.status);if(!J)return null;let Y=Z.reference;return{type:"cortex:client-tool",status:J,...typeof Y==="string"?{reference:Y}:{},...Z.result!==void 0?{result:Z.result}:{}}}var h1=["en","ar"],W4=h1[0],q4={en:"ltr",ar:"rtl"};var p_=["image/png","image/jpeg","image/webp","application/pdf"],u1=10485760,_6=255,c1=5;function D4(_){if(!p_.some(($)=>$===_.type))return"type";if(_.size>u1)return"size";if(_.name.length>_6)return"name";return"ok"}var B4="cortex_visitor",N4=["executeCode","queryDataset","describeDataset"],$6="approvalTitle";function p1(_,$){if(!_||typeof _!=="object")return;let Q=Reflect.get(_,$);return typeof Q==="string"&&Q.trim()?Q.trim():void 0}function F4(_){return p1(_,$6)}function d1(_){return _.metadata?.cortex??void 0}function l1(_){return{..._,role:_.role==="trigger"?"user":_.role}}var H4="clientToolAnswers";function U4(_){return _.approval?.id??`approval_${_.id}`}function M4(_){return _.approval!==void 0||_.state==="approval-requested"}var i1="X-Cortex-Timezone",P4="X-Cortex-Operator",L4="X-Cortex-Inspect",Q6=["busy","approval_pending","budget","rate_limited"],N3=[...Q6,"invalid_payload","missing_thread_key","no_turn","no_output","invalid_output"];function R4(_){if(_>=500)return"lost";return _>=400?"refused":"persisted"}var Z6=new Set(["complete","error"]);function o(_){return Z6.has(_)}function M_(_){return(J6(_)?.parts??[]).filter((Q)=>Q.type==="tool-call"&&!o(Q.state))}function O4(_){for(let $=_.length-1;$>=0;$-=1){let Q=_[$];if(Q?.parts.some((J)=>J.type==="tool-call"&&J.state==="approval-requested"))return!0;if(Q?.role==="user")return!1}return!1}function n1(_){let $=_.at(-1);if($?.role!=="assistant")return;let Q=$.parts.at(-1),Z=Q?.type==="tool-call"||Q?.type==="tool-result",J=$.parts.every((Y)=>Y.type!=="tool-call"||o(Y.state));return Z&&J?void 0:$}function J6(_){for(let $=_.length-1;$>=0;$-=1){let Q=_[$];if(Q?.role==="assistant")return Q}return}var Y6={complete:"success",error:"error","approval-requested":"approval","approval-responded":"approval","awaiting-input":"pending","input-streaming":"pending","input-complete":"pending"},X6={"awaiting-input":"translate_calling","input-streaming":"translate_calling","input-complete":"translate_input_ready","approval-requested":"translate_needs_approval","approval-responded":"translate_responded",complete:"translate_completed",error:"translate_error"};function r1(_){let{state:$,approval:Q}=_;return{modifier:Y6[$],labelKey:Q?.approved===!1?"translate_declined":$==="approval-responded"&&Q?.approved?"translate_approved":X6[$],pulse:$==="awaiting-input"||$==="input-streaming"?"default":$==="approval-requested"?"violet":void 0}}function E4(_){let $=_.output;if($===void 0||$===null)return"";if(typeof $==="string")return $;return JSON.stringify($,null,2)}var A4={code:"javascript"};function o1(_){let $=_&&typeof _==="object"?_:null,Q=$?Object.entries(A4).flatMap(([J,Y])=>{let z=$[J];return typeof z==="string"?[{key:J,lang:Y,value:z.replace(/\\n/g,`
2
- `)}]:[]}):[],Z=_;if($){let J=Object.fromEntries(Object.entries($).filter(([Y])=>!Object.hasOwn(A4,Y)));Z=Object.keys(J).length>0?J:null}return{codeSnippets:Q,remainingInput:Z,remainingInputText:Z?JSON.stringify(Z,null,2):""}}var z6=10,G6={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function K6(_){let $=_.output;if(typeof $==="string")try{$=JSON.parse($)}catch{return}if(!$||typeof $!=="object")return;if("error"in $&&$.error===!0)return"failed";if(!d1(_)?.embed||!("status"in $))return;let Q=$.status;return Q==="failed"||Q==="cancelled"?Q:void 0}function V6(_){let $=_.output;if(!$||typeof $!=="object"||!("rowCount"in $))return;let Q=$.rowCount;return typeof Q==="number"?Q:void 0}function W6(_,$,Q){if(Q==="declined")return"translate_declined";if(Q==="cancelled")return"translate_tool_cancelled";if($==="error")return"translate_tool_error";if($==="approval")return"translate_needs_approval";return`translate_${_.name==="readAttachment"?"attachment":"tool"}_${$==="complete"?"done":"status"}`}function d_(_){let $=_.approval?.approved===!1?"declined":_.state==="complete"?K6(_):void 0,Q=$?"error":G6[_.state]??"processing";return{state:Q,active:Q==="starting"||Q==="processing",gated:M4(_),titleKey:W6(_,Q,$),statement:N4.some((Z)=>Z===_.name)?p1(_.input,"status"):void 0,rows:Q==="complete"?V6(_):void 0}}function a1(_){let $=_.approval?.approved,{state:Q,active:Z}=d_(_),J=$===void 0?_.state==="approval-requested"?"pending":"cancelled":!$?"declined":Q==="error"?"failed":"approved";return{title:F4(_.input),fallbackKey:"translate_approval_action",fallbackParams:{tool:D6(_.name)},decision:J,decisionKey:q6[J],state:Q,active:Z}}var q6={pending:void 0,approved:"translate_approved",declined:"translate_declined",failed:"translate_approved_failed",cancelled:"translate_approval_cancelled"};function D6(_){let $=_.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return $.charAt(0).toUpperCase()+$.slice(1)}function s1(_){return Array.from({length:z6},($,Q)=>`translate_${_}_${Q}`)}function l_(_,$){return _.filter((Q,Z)=>{if(Q.type==="tool-result")return!1;if($.debugMode)return!0;if(Q.type==="text"&&!Q.content.trim())return!1;let J=Z===_.length-1;return Q.type!=="thinking"||$.isStreaming&&J})}var B6=[H1];function k4(_){return B6.find(($)=>$===_)}function y4(_,$){let{consumerTools:Q,capabilities:Z}=$;if(Z?.messages!==!0&&!o(_.state))return;return Q&&Object.hasOwn(Q,_.name)?Q[_.name]:void 0}function S4(_,$){if(y4(_,$))return!1;return!k4(_.name)||!o(_.state)}function t1(_,$){let Q=d_(_),Z=$.capabilities?.messages===!0&&!$.agentWorking;if(_.state==="approval-requested"&&Z)return{kind:"approval",asking:!0};if($.debugMode)return{kind:"debug"};let J=y4(_,$);if(J)return{kind:"consumer",component:J};let Y=_.state==="input-complete"&&Z,z=Y||o(_.state)?k4(_.name):void 0;if(z)return{kind:"builtIn",component:$.builtInTools[z]};if(Y&&!$.embedUnavailable&&d1(_)?.embed)return{kind:"embed"};if(_.name==="executeCode"&&!o(_.state)&&!Q.statement)return{kind:"activity",activity:"code"};if(Q.gated)return{kind:"approval",asking:!1};return{kind:"pill"}}function e1(_){let $=_.approval?.id;switch(_.state){case"complete":return{kind:"output",text:E4(_)};case"error":return{kind:"error",text:E4(_)};case"approval-requested":return{kind:"approval",approvalId:$,labelKey:"translate_approval_requested",messageKey:"translate_waiting_for_approval"};case"approval-responded":return{kind:"approval",approvalId:$,labelKey:"translate_approval_response",messageKey:_.approval?.approved?"translate_tool_approved":"translate_tool_response_received"};default:return}}var _0=new WeakMap;function $0(_,$){let Q=_.closest(".cortex-widget__screen"),Z=Q?.querySelector(".cortex-message-list");if(!Q||!Z||!_.value.trim())return;let J=getComputedStyle(_),Y=_.getBoundingClientRect(),z=(X)=>parseFloat(J[`padding${X}`])+parseFloat(J[`border${X}Width`]);_0.set(Q,{text:$,textarea:_,from:new DOMRect(Y.left+z("Left"),Y.top+z("Top"),Y.width-z("Left")-z("Right"),Y.height-z("Top")-z("Bottom")),rtl:J.direction==="rtl",scrollTop:Z.scrollTop})}function N6(_,$){let Q=_.closest(".cortex-widget__screen"),Z=Q?_0.get(Q):void 0;if(!Q||!Z)return;_0.delete(Q);let J=_.querySelectorAll(":scope > .cortex-message"),Y=J[J.length-1]?.querySelector(".cortex-text-bubble--user"),z=_.closest(".cortex-message-list");if(!Y||!z||Z.text!==$||!Z.textarea.isConnected)return;Y.closest(".cortex-message-part")?.getAnimations().forEach((E)=>E.finish()),C4(z);let X=Y.getBoundingClientRect(),G=Q.getBoundingClientRect(),K=getComputedStyle(Y),V=parseFloat(K.paddingTop)+parseFloat(K.borderTopWidth),W=Z.rtl?parseFloat(K.paddingRight)+parseFloat(K.borderRightWidth):parseFloat(K.paddingLeft)+parseFloat(K.borderLeftWidth),q=Z.rtl?Z.from.right+W-X.width:Z.from.left-W,B=z.scrollTop-Z.scrollTop;if(B)_.style.setProperty("--cortex-slide",`${B}px`),_.classList.remove("cortex-message-list__content--settling"),_.offsetWidth,_.classList.add("cortex-message-list__content--settling"),_.getAnimations()[0]?.finished.then(()=>_.classList.remove("cortex-message-list__content--settling"),()=>{return});let D=Y.cloneNode(!0);D.classList.add("cortex-send-flight"),D.setAttribute("aria-hidden","true"),Object.assign(D.style,{left:`${X.left-G.left}px`,top:`${X.top-G.top}px`,width:`${X.width}px`}),D.style.setProperty("--cortex-fly-x",`${q-X.left}px`),D.style.setProperty("--cortex-fly-y",`${Z.from.top-V-X.top}px`),Y.style.visibility="hidden",Q.append(D);let U=z.scrollTop,y=()=>{D.style.top=`${X.top-G.top-(z.scrollTop-U)}px`};z.addEventListener("scroll",y,{passive:!0}),T4(D).then(()=>{z.removeEventListener("scroll",y),Y.style.visibility="",D.remove()})}function C4(_){_.scrollTop=b4(_)}var F6=100;function Q0(_,$){let Q=!0,Z=!0,J=!1,Y=0,z;function X(){if(J)return;J=!0,queueMicrotask(()=>{J=!1,C4(_),Z=!0,Q=!1})}function G(){Z=b4(_)-_.scrollTop<F6}let K=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([V])=>{let W=V?.contentRect.height??0,q=W>Y;if(Y=W,q&&(Q||Z))X()});return K?.observe($),_.addEventListener("scroll",G,{passive:!0}),X(),{pin(){Q=!0},messagesChanged(V){if(V?.role==="user"&&V.id!==z){z=V.id,Q=!0;let W=V.parts.find((q)=>q.type==="text")?.content;if(W!==void 0)N6($,W)}if(Q)X()},dispose(){K?.disconnect(),_.removeEventListener("scroll",G)}}}function b4(_){let $=_.querySelector(".cortex-message-list__content");if(!$)return _.scrollHeight-_.clientHeight;let Q=getComputedStyle(_);return $.offsetHeight+parseFloat(Q.paddingTop)+parseFloat(Q.paddingBottom)-_.clientHeight}function Z0(_){let $=!1,Q=_.parentElement,Z=typeof ResizeObserver>"u"?void 0:new ResizeObserver(()=>{if($)J()});Z?.observe(Q);function J(){let Y=Q.querySelector(":scope > .cortex-working-thinking, :scope > .cortex-message > .cortex-message-parts > [data-cortex-frontier]");if(!Y)return!1;return _.style.setProperty("--cortex-avatar-y",`${H6(Y,Q)-_.offsetHeight/2}px`),!0}return{sync(Y){if(Y===$){if(Y)J();return}if(Y){if(!J())return;_.classList.remove("cortex-working-avatar--leaving"),_.offsetWidth,_.classList.add("cortex-working-avatar--shown"),$=!0;return}$=!1;let[,z="0px"]=getComputedStyle(_).translate.split(" ");_.style.setProperty("--cortex-avatar-y",z),_.classList.add("cortex-working-avatar--leaving"),T4(_,!0).then(()=>{if($)return;_.classList.remove("cortex-working-avatar--shown","cortex-working-avatar--leaving")})},dispose(){Z?.disconnect()}}}function H6(_,$){let Q=_.querySelector(".cortex-text-bubble");if(!Q)return I4(_,$)+_.offsetHeight/2;let Z=getComputedStyle(Q);return I4(Q,$)+parseFloat(Z.paddingTop)+parseFloat(Z.borderTopWidth)+parseFloat(Z.lineHeight)/2}function I4(_,$){let Q=0;for(let Z=_;Z instanceof HTMLElement&&Z!==$;)Q+=Z.offsetTop,Z=Z.offsetParent;return Q}function T4(_,$=!1){return Promise.allSettled(_.getAnimations({subtree:$}).map((Q)=>Q.finished))}function J0(_,$){let Q=0,Z,J;function Y(){Z=setTimeout(()=>{$({index:Q,phase:"exiting"}),Z=setTimeout(()=>{Q=(Q+1)%_,$({index:Q,phase:"enter-start"}),J=requestAnimationFrame(()=>{$({index:Q,phase:"entering"}),Z=setTimeout(()=>{$({index:Q,phase:"idle"}),Y()},300)})},300)},2000)}return Y(),()=>{if(clearTimeout(Z),J!==void 0)cancelAnimationFrame(J)}}function Y0(_,$){function Q(){$.sendDraft((G)=>$0(_,G))}function Z(G){if(G.key!=="Enter"||G.shiftKey)return;G.preventDefault(),Q()}function J(){_.style.overflowY="hidden",_.style.height="0px",_.style.height=`${_.scrollHeight+1}px`,_.style.overflowY=""}let Y=0,z=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([G])=>{let K=G?.borderBoxSize[0]?.inlineSize??0;if(K===Y)return;Y=K,requestAnimationFrame(J)});function X(){_.removeEventListener("keydown",Z),z?.disconnect()}return _.addEventListener("keydown",Z),z?.observe(_,{box:"border-box"}),{send:Q,fit:J,dispose:X}}function X0(_){return{onDragOver:($)=>{if($.preventDefault(),_.enabled)_.setDragging(!0)},onDragLeave:($)=>{if(!$.currentTarget?.contains($.relatedTarget))_.setDragging(!1)},onDrop:($)=>{if($.preventDefault(),_.setDragging(!1),_.enabled)_.accept([...$.dataTransfer?.files??[]])},onPaste:($)=>{let Q=[...$.clipboardData?.files??[]];if(!_.enabled||!Q.length)return;$.preventDefault(),_.accept(Q)}}}function S_(_,$){if(_===void 0||typeof _==="string"||Array.isArray(_))return _;let Q=_;return Q[$]??Q.en??Object.values(Q)[0]}var v4={translate_history:"السجل",translate_back:"رجوع",translate_greeting:"بماذا يمكنني مساعدتك اليوم؟",translate_conversations:{zero:"لا محادثات",one:"محادثة واحدة",two:"محادثتان",few:"{{count}} محادثات",many:"{{count}} محادثة",other:"{{count}} محادثة"},translate_no_threads_yet:"لا توجد محادثات بعد",translate_start_a_new_conversation:"ابدأ محادثة جديدة",translate_untitled:"بدون عنوان",translate_new_chat:"محادثة جديدة",translate_normal:"عادي",translate_debug:"تصحيح",translate_type_a_message:"اكتب رسالة...",translate_completed:"مكتمل",translate_attach_files:"إرفاق ملفات",translate_drop_files_here:"أفلت ملفاتك هنا...",translate_remove_attachment:"إزالة المرفق",translate_attachment_rejected:"لا يمكن إرفاق هذا الملف",translate_attachment_rejected_type:"يمكن إرفاق ملفات {{types}} فقط",translate_attachment_rejected_size:"الحد الأقصى لحجم الملف {{size}} ميغابايت",translate_attachment_rejected_name:"اسم الملف طويل جدًا",translate_attachment_rejected_count:{zero:"لا يمكن إرفاق ملفات بالرسالة",one:"يمكن إرفاق ملف واحد كحد أقصى لكل رسالة",two:"يمكن إرفاق ملفين كحد أقصى لكل رسالة",few:"يمكن إرفاق {{count}} ملفات كحد أقصى لكل رسالة",many:"يمكن إرفاق {{count}} ملفًا كحد أقصى لكل رسالة",other:"يمكن إرفاق {{count}} ملف كحد أقصى لكل رسالة"},translate_attachment_caption:"من فضلك اطّلع على الملفات المرفقة.",translate_download:"تنزيل",translate_tool_status:"جارٍ تنفيذ خطوة…",translate_tool_done:"اكتملت الخطوة",translate_tool_cancelled:"أُلغيت الخطوة",translate_rows:{zero:"لا صفوف",one:"صف واحد",two:"صفان",few:"{{count}} صفوف",many:"{{count}} صفًا",other:"{{count}} صف"},translate_more_steps:{zero:"ولا خطوات أخرى",one:"وخطوة أخرى",two:"وخطوتان أخريان",few:"و{{count}} خطوات أخرى",many:"و{{count}} خطوة أخرى",other:"و{{count}} خطوة أخرى"},translate_tool_error:"حدث خطأ",translate_attachment_status:"جارٍ قراءة الملف المرفق…",translate_attachment_done:"تمت قراءة الملف المرفق",translate_code_0:"جارٍ حساب الأرقام...",translate_code_1:"جارٍ معالجة البيانات...",translate_code_2:"جارٍ تنفيذ طلبك...",translate_code_3:"جارٍ تحليل الأرقام...",translate_code_4:"جارٍ تجميع كل شيء...",translate_code_5:"جارٍ تحليل النتائج...",translate_code_6:"جارٍ العمل خلف الكواليس...",translate_code_7:"جارٍ ترتيب التفاصيل...",translate_code_8:"جارٍ تحضير إجابتك...",translate_code_9:"أوشك على الانتهاء...",translate_reasoning_0:"جارٍ التفكير...",translate_reasoning_1:"جارٍ دراسة الخيارات...",translate_reasoning_2:"جارٍ تقييم الاحتمالات...",translate_reasoning_3:"جارٍ التأمل في هذا...",translate_reasoning_4:"جارٍ إيجاد الحل...",translate_reasoning_5:"جارٍ ترتيب الأفكار...",translate_reasoning_6:"جارٍ التمعن في الأمر...",translate_reasoning_7:"جارٍ إيجاد أفضل طريقة...",translate_reasoning_8:"جارٍ تنظيم أفكاري...",translate_reasoning_9:"أوشك على الانتهاء...",translate_running:"قيد التنفيذ",translate_aborted:"تم الإلغاء",translate_input:"المدخلات",translate_output:"المخرجات",translate_calling:"جارٍ الاستدعاء",translate_input_ready:"المدخلات جاهزة",translate_needs_approval:"بحاجة إلى موافقة",translate_approved:"تمت الموافقة",translate_responded:"تم الرد",translate_declined:"تم الرفض",translate_approve:"موافقة",translate_deny:"رفض",translate_error:"خطأ",translate_approval_pending:"وافق على الطلب أعلاه أو ارفضه أولًا.",translate_approval_requested:"طلب موافقة",translate_approval_response:"رد الموافقة",translate_waiting_for_approval:"في انتظار الموافقة لتنفيذ هذه الأداة.",translate_tool_approved:"تمت الموافقة.",translate_tool_response_received:"تم استلام الرد.",translate_tokens:"رمز",translate_fresh:"جديد",translate_cache_read:"قراءة من الذاكرة",translate_cache_write:"كتابة في الذاكرة",translate_n_percent_cached:"{{percent}}٪ مخزّن مؤقتًا",translate_text:"نص",translate_reasoning:"الاستنتاج",translate_read:"قراءة",translate_write:"كتابة",translate_total:"الإجمالي",translate_request:"الطلب",translate_response:"الرد",translate_step_n:"الخطوة {{number}}",translate_inspect_llm_requests:"فحص طلبات النموذج",translate_loading:"جارٍ التحميل…",translate_no_llm_requests:"لا توجد طلبات نموذج مسجّلة لهذه الرسالة.",translate_unhandled_type:"نوع غير مدعوم:",translate_client_tool_title:"أكمل هذه الخطوة للمتابعة",translate_client_tool_loading:"جارٍ تجهيز خطوة آمنة...",translate_client_tool_failed:"تعذّر تحميل هذه الخطوة",translate_client_tool_retry:"حاول مرة أخرى",translate_client_tool_cancel:"إلغاء",translate_location_hint:"انقر على الخريطة لتثبيت الدبوس",translate_location_locate:"استخدم موقعي",translate_location_locating:"جارٍ تحديد موقعك",translate_location_locate_failed:"موقعك غير متاح",translate_location_map_failed:"تعذّر تحميل الخريطة",translate_location_send_failed:"تعذّر الإرسال، حاول مرة أخرى",translate_location_skip:"ليس الآن",translate_location_send:"إرسال",translate_location_shared:"تمت مشاركة الموقع",translate_location_not_shared:"لم تتم مشاركة الموقع",translate_trigger_fired:"تم التشغيل بواسطة",translate_trigger_payload:"الحمولة",translate_messages_disabled:"يعمل هذا الوكيل من مشغّلاته فقط.",translate_read_only:"أنت تطّلع على هذه المحادثة. لا يمكن إرسال شيء من هنا.",translate_access_refused:"لم يقبل هذا الوكيل تسجيل دخولك.",translate_visitor_unverified:"لم نتمكن من التأكد من أنك شخص حقيقي.",translate_agent_unreachable:"تعذّر الوصول إلى هذا الوكيل الآن. نعيد المحاولة...",translate_agent_missing:"هذا الوكيل غير متاح.",translate_streaming:"جارٍ البث",translate_done:"تم",translate_no_reasoning:"لا يوجد تفكير مسجّل.",translate_copy:"نسخ إلى الحافظة",translate_copied:"تم النسخ",translate_media_pending_mermaid:"جارٍ رسم المخطط",translate_media_pending_vega_lite:"جارٍ رسم الرسم البياني",translate_media_pending_map:"جارٍ رسم الخريطة",translate_media_pending_report:"جارٍ كتابة التقرير",translate_media_cut_off:"انقطع هذا المقطع قبل اكتماله.",translate_media_failed:"تعذر عرض هذا المقطع.",translate_media_source:"المصدر",translate_media_pending:"جارٍ الرسم",translate_media_mermaid:"مخطط",translate_media_vega_lite:"رسم بياني",translate_media_map:"خريطة",translate_media_report:"تقرير",translate_media:"معاينة",translate_image_unavailable:"الصورة غير متاحة",translate_image_unavailable_alt:"الصورة غير متاحة: {{alt}}",translate_image:"صورة",translate_send:"إرسال",translate_stop:"إيقاف",translate_delete_conversation:"حذف المحادثة",translate_table:"جدول",translate_expand:"توسيع {{name}}",translate_table_export:"تصدير إلى Excel",translate_close:"إغلاق",translate_approval_needed:"بحاجة إلى موافقتك",translate_approval_action:"تنفيذ {{tool}}",translate_approved_failed:"تمت الموافقة لكنه فشل",translate_approval_cancelled:"لم يُتخذ قرار"};var f4={translate_history:"History",translate_back:"Back",translate_greeting:"What can I help you with today?",translate_conversations:{one:"1 conversation",other:"{{count}} conversations"},translate_no_threads_yet:"No threads yet",translate_start_a_new_conversation:"Start a new conversation",translate_untitled:"Untitled",translate_new_chat:"New Chat",translate_normal:"Normal",translate_debug:"Debug",translate_type_a_message:"Type a message...",translate_completed:"Completed",translate_attach_files:"Attach files",translate_drop_files_here:"Drop your files here...",translate_remove_attachment:"Remove attachment",translate_attachment_rejected:"This file cannot be attached",translate_attachment_rejected_type:"Only {{types}} files can be attached",translate_attachment_rejected_size:"Files can be up to {{size}} MB",translate_attachment_rejected_name:"The file name is too long",translate_attachment_rejected_count:{one:"Up to 1 file per message",other:"Up to {{count}} files per message"},translate_attachment_caption:"Please take a look at the attached files.",translate_download:"Download",translate_tool_status:"Running a step...",translate_tool_done:"Step completed",translate_tool_cancelled:"Step cancelled",translate_rows:{one:"1 row",other:"{{count}} rows"},translate_more_steps:{one:"and 1 more step",other:"and {{count}} more steps"},translate_tool_error:"Something went wrong",translate_attachment_status:"Reading the attached file...",translate_attachment_done:"Finished reading the file",translate_code_0:"Running the numbers...",translate_code_1:"Working through the data...",translate_code_2:"Processing your request...",translate_code_3:"Crunching the figures...",translate_code_4:"Putting it all together...",translate_code_5:"Analyzing the results...",translate_code_6:"Working behind the scenes...",translate_code_7:"Sorting through the details...",translate_code_8:"Preparing your answer...",translate_code_9:"Almost ready...",translate_reasoning_0:"Thinking it through...",translate_reasoning_1:"Considering the options...",translate_reasoning_2:"Weighing the possibilities...",translate_reasoning_3:"Reflecting on this...",translate_reasoning_4:"Working it out...",translate_reasoning_5:"Putting thoughts together...",translate_reasoning_6:"Mulling it over...",translate_reasoning_7:"Finding the best approach...",translate_reasoning_8:"Organizing my thoughts...",translate_reasoning_9:"Almost there...",translate_running:"Running",translate_aborted:"Aborted",translate_input:"Input",translate_output:"Output",translate_calling:"Calling",translate_input_ready:"Input ready",translate_needs_approval:"Needs approval",translate_approved:"Approved",translate_responded:"Responded",translate_declined:"Declined",translate_approve:"Approve",translate_deny:"Deny",translate_error:"Error",translate_approval_pending:"Approve or deny the request above first.",translate_approval_requested:"Approval requested",translate_approval_response:"Approval response",translate_waiting_for_approval:"Waiting for approval to execute this tool.",translate_tool_approved:"Approved.",translate_tool_response_received:"Response received.",translate_tokens:"tokens",translate_fresh:"Fresh",translate_cache_read:"Cache read",translate_cache_write:"Cache write",translate_n_percent_cached:"{{percent}}% cached",translate_text:"Text",translate_reasoning:"Reasoning",translate_read:"Read",translate_write:"Write",translate_total:"Total",translate_request:"Request",translate_response:"Response",translate_step_n:"Step {{number}}",translate_inspect_llm_requests:"Inspect LLM requests",translate_loading:"loading…",translate_no_llm_requests:"No LLM requests recorded for this message.",translate_unhandled_type:"Unhandled type:",translate_client_tool_title:"Complete this step to continue",translate_client_tool_loading:"Preparing a secure step...",translate_client_tool_failed:"This step could not be loaded",translate_client_tool_retry:"Try again",translate_client_tool_cancel:"Cancel",translate_location_hint:"Tap the map to drop a pin",translate_location_locate:"Use my location",translate_location_locating:"Finding your location",translate_location_locate_failed:"Your location is not available",translate_location_map_failed:"The map could not be loaded",translate_location_send_failed:"Could not send, try again",translate_location_skip:"Not now",translate_location_send:"Send",translate_location_shared:"Location shared",translate_location_not_shared:"Location not shared",translate_trigger_fired:"Triggered by",translate_trigger_payload:"Payload",translate_messages_disabled:"This agent only runs from its triggers.",translate_read_only:"You're viewing this conversation. Nothing can be sent from here.",translate_access_refused:"This agent did not accept your sign-in.",translate_visitor_unverified:"We couldn't confirm you're a person.",translate_agent_unreachable:"This agent cannot be reached right now. Trying again...",translate_agent_missing:"This agent is not available.",translate_streaming:"Streaming",translate_done:"Done",translate_no_reasoning:"No reasoning provided.",translate_copy:"Copy to clipboard",translate_copied:"Copied",translate_media_pending_mermaid:"Drawing diagram",translate_media_pending_vega_lite:"Drawing chart",translate_media_pending_map:"Drawing map",translate_media_pending_report:"Writing report",translate_media_cut_off:"This block was cut off before it finished.",translate_media_failed:"Could not render this block.",translate_media_source:"Source",translate_media_pending:"Drawing",translate_media_mermaid:"Diagram",translate_media_vega_lite:"Chart",translate_media_map:"Map",translate_media_report:"Report",translate_media:"Preview",translate_image_unavailable:"Image unavailable",translate_image_unavailable_alt:"Image unavailable: {{alt}}",translate_image:"Image",translate_send:"Send",translate_stop:"Stop",translate_delete_conversation:"Delete conversation",translate_table:"Table",translate_expand:"Expand {{name}}",translate_table_export:"Export to Excel",translate_close:"Close",translate_approval_needed:"Needs your approval",translate_approval_action:"Run {{tool}}",translate_approved_failed:"Approved, but it failed",translate_approval_cancelled:"Not decided"};var P6={en:f4,ar:v4};function I_(_){return _&&h1.includes(_)?_:W4}function __(_,$,Q){let Z=P6[_][$],J=typeof Z==="string"?Z:Z[new Intl.PluralRules(_).select(Number(Q?.count))]??Z.other;if(!Q)return J;return J.replace(/\{\{\s*(\w+)\s*\}\}/g,(Y,z)=>(z in Q)?String(Q[z]):Y)}function w4(_,$,Q){let Z=_!==void 0&&_.messages!==!1;return{greeting:_===void 0?"":S_(_.greeting,$)||__($,"translate_greeting"),suggestions:Z&&S_(_.suggestions,$)||[],send:(J)=>{if(Z)Q(J)}}}var j4="cortex-recaptcha-enterprise",z0;function L6(_){return z0??=new Promise(($,Q)=>{let Z=()=>{let Y=window.grecaptcha?.enterprise;if(Y)Y.ready(()=>$(Y));else Q(Error("reCAPTCHA Enterprise did not load"))};if(document.getElementById(j4))return Z();let J=document.createElement("script");J.id=j4,J.src=`https://www.google.com/recaptcha/enterprise.js?render=${encodeURIComponent(_)}`,J.async=!0,J.addEventListener("load",Z,{once:!0}),J.addEventListener("error",()=>{J.remove(),Q(Error("reCAPTCHA Enterprise failed to load"))},{once:!0}),document.head.appendChild(J)}).catch(($)=>{throw z0=void 0,$}),z0}function g4(_,$=document){for(let Q of $.querySelectorAll(".grecaptcha-badge")){let Z=Q.querySelector("iframe")?.getAttribute("src");if(Z&&new URL(Z,"https://www.google.com").searchParams.get("k")===_)Q.style.visibility="hidden"}}async function m4(_){let $=await L6(_);g4(_);let Q=await $.execute(_,{action:B4});return g4(_),Q}class B_ extends Error{status;constructor(_,$){super(`HTTP ${_}: ${$}`);this.status=_;this.name="CortexHttpError"}}class o_ extends Error{constructor(){super("The visitor check failed");this.name="CortexVisitorUnverified"}}var V0="cortex:visitor:",r_=new Map,i_=new Map,W0=new Set,G0=new Set;function h4(_){try{return localStorage.getItem(V0+_)}catch{return null}}function u4(_,$){try{if($===null)localStorage.removeItem(V0+_);else localStorage.setItem(V0+_,$)}catch{}}async function x4(_,$){let Q=await fetch(`${_}/visitors`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)});if(Q.status===403)return await Q.json();if(!Q.ok)throw new B_(Q.status,Q.statusText);return await Q.json()}async function R6(_){let $=await x4(_,{});if("error"in $&&$.error==="recaptcha_required")$=await x4(_,{recaptcha:await m4($.siteKey)});if("error"in $)throw new o_;return W0.add($.token),u4(_,$.token),$.token}function O6(_){let $=r_.get(_)??h4(_);if($)return r_.set(_,$),Promise.resolve($);let Q=i_.get(_);if(!Q){Q=R6(_),i_.set(_,Q);let Z=Q,J=()=>{if(i_.get(_)===Z)i_.delete(_)};Z.then((Y)=>{J(),r_.set(_,Y)},(Y)=>{if(!(Y instanceof o_))J()})}return Q}function E6(_,$){let Q=r_.get(_)===$;if(Q)r_.delete(_);let Z=h4(_)===$;if(Z)u4(_,null);return Q||Z}function q0(_){if(!_.getHeaders)return O6(n_(_,"")).then((Q)=>K0({Authorization:`Bearer ${Q}`}));let $=_.getHeaders();return $ instanceof Promise?$.then(K0):Promise.resolve(K0($))}function K0(_){let $={..._},Q=A6(),Z=Object.keys($).some((J)=>J.toLowerCase()===i1.toLowerCase());if(Q&&!Z)$[i1]=Q;return $}function A6(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function n_(_,$){let Q=_.baseUrl;return(typeof Q==="string"?Q:Q()).replace(/\/$/,"")+$}function k6(_){let $=_?.match(/filename\*\s*=\s*[^']*'[^']*'([^;\r\n]+)/i)?.[1]?.trim().replace(/^"|"$/g,"");if($)try{return decodeURIComponent($)}catch{}return _?.match(/filename\s*=\s*"?([^";\r\n]+)"?/i)?.[1]}function c4(_){function $(){return q0(_())}function Q(Y){return n_(_(),Y)}function Z(Y,z){let X=_(),G=new Headers(z).get("Authorization")?.replace(/^Bearer /,"");if(X.getHeaders||G===void 0)return;if(Y.ok)W0.delete(G);if(Y.status!==401)return;let K=n_(X,""),V=E6(K,G);if(W0.delete(G))return"refused";if(V){for(let W of[...G0])if(W.visitorOf()===K)W.heard()}return"stale"}async function J(Y,z,X=!1){let G=new Headers(await $());if(new Headers(z?.headers).forEach((W,q)=>{G.set(q,W)}),z?.body instanceof FormData)G.delete("Content-Type");else if(!G.has("Content-Type"))G.set("Content-Type","application/json");let K=await fetch(Q(Y),{...z,headers:G});if(!K.ok){if(Z(K,G)==="stale"&&!X)return J(Y,z,!0);throw new B_(K.status,K.statusText)}Z(K,G);let V=await K.text();return V?JSON.parse(V):void 0}return{onVisitorReplaced(Y){let X={visitorOf:()=>{let G=_();return G.getHeaders?void 0:n_(G,"")},heard:Y};return G0.add(X),()=>{G0.delete(X)}},retrySignIn(){i_.delete(n_(_(),""))},getCapabilities(){return J("/capabilities")},listThreads(){return J("/threads")},createThread(){let Y=_().threadBody;return J("/threads",{method:"POST",...Y&&{body:JSON.stringify(Y)}})},deleteThread(Y){return J(`/threads/${Y}`,{method:"DELETE"})},listMessages(Y){return J(`/threads/${Y}/messages`)},listLlmRequests(Y,z){return J(`/threads/${Y}/messages/${z}/llm-requests`)},abortStream(Y){return J(`/chat/${Y}/abort`,{method:"POST"})},initiateToolCall(Y,z){return J(`/chat/${Y}/tools/${z}/initiate`,{method:"POST"})},uploadAttachment(Y,z){let X=new FormData;return X.append("file",z),J(`/threads/${Y}/files`,{method:"POST",body:X})},deleteAttachment(Y){return J(`/files/${Y}`,{method:"DELETE"})},async downloadAttachment(Y){let z=await $(),X=await fetch(Q(`/files/${Y}`),{headers:z});if(Z(X,z),!X.ok)throw new B_(X.status,X.statusText);return{blob:await X.blob(),name:k6(X.headers.get("Content-Disposition"))??Y}},resolveHeaders:$,resolveUrl:Q,readVisitorAnswer:Z}}var D0=30000;function B0(_){return Math.min(1000*2**(_-1),D0)}var y6=1e4;function p4(_){let $,Q,Z=0,J=!1,Y=!1;function z(){let{wsUrl:G,transport:K}=_.getConfig();if(G===!1)return;let V=S6(G,K.baseUrl);q0(K).then((W)=>{if(J)return;$=new WebSocket(I6(V,W)),$.addEventListener("open",()=>{Y=!0;let q=$;setTimeout(()=>{if($===q&&!J)Z=0},y6),_.onOpen?.()}),$.addEventListener("message",(q)=>{let B=q.data;if(typeof B!=="string")return;let D;try{D=JSON.parse(B)}catch{return}_.onEvent(D)}),$.addEventListener("close",()=>{if(!Y&&!J)_.onFailedOpen?.();Y=!1,X()})}).catch(X)}function X(){if(J||Q)return;Z+=1,Q=setTimeout(()=>{Q=void 0,z()},B0(Z))}return z(),{close(){J=!0,Y=!1,clearTimeout(Q),$?.close()},isOpen(){return Y}}}function S6(_,$){if(_)return _;let Q=typeof $==="string"?$:$(),Z=new URL(Q,window.location.origin);return Z.protocol=Z.protocol==="https:"?"wss:":"ws:",Z.pathname=Z.pathname.replace(/\/$/,"")+"/ws",Z.toString()}function I6(_,$){let Q=(z)=>Object.entries($).find(([X])=>X.toLowerCase()===z.toLowerCase())?.[1],Z=Q("Authorization"),J=Object.entries({token:Z?.startsWith("Bearer ")?Z.slice(7):void 0,operator:Q(P4),inspect:Q(L4)}).filter((z)=>Boolean(z[1]));if(J.length===0)return _;let Y=new URL(_,window.location.origin);for(let[z,X]of J)if(!Y.searchParams.has(z))Y.searchParams.set(z,X);return Y.toString()}var d4={unreachable:"translate_agent_unreachable",refused:"translate_access_refused",unverified:"translate_visitor_unverified",missing:"translate_agent_missing"};function C6(_){if(_ instanceof o_)return"unverified";let $=_ instanceof B_?_.status:void 0;if($===401)return"refused";if($===404)return"missing";return"unreachable"}function N0(_,$,Q=B0){let Z=!1,J,Y=0;function z(){_().then((X)=>{if(!Z)$.onAnswered(X)},(X)=>{if(Z)return;let G=C6(X);if($.onMissed?.(G),G==="missing")return;Y+=1,J=setTimeout(z,G==="refused"||G==="unverified"?D0:Q(Y))})}return z(),function(){Z=!0,clearTimeout(J)}}function U1(){if(typeof crypto.randomUUID==="function")return crypto.randomUUID();let _=crypto.getRandomValues(new Uint8Array(16));_[6]=_[6]&15|64,_[8]=_[8]&63|128;let $=Array.from(_,(Q)=>Q.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}var b6={type:"translate_attachment_rejected_type",size:"translate_attachment_rejected_size",name:"translate_attachment_rejected_name",count:"translate_attachment_rejected_count"};function F0(_,$){if(!_.refusal)return __($,"translate_attachment_rejected");return __($,b6[_.refusal],{types:new Intl.ListFormat($).format(p_.map((Q)=>Q.slice(Q.indexOf("/")+1).toUpperCase())),size:u1/1024/1024,count:c1})}function l4(_){let{api:$}=_,Q=new Set,Z=new Set,J=[],Y=[],z=Promise.resolve();function X(){return J}function G(N){return Q.add(N),()=>{Q.delete(N)}}function K(N){J=N;for(let P of Q)P()}function V(N,P){K(J.map((A)=>A.localId===N?{...A,...P}:A))}function W(N){if(Z.delete(N))return;V(N,{status:"error"})}async function q(N,P,A){if(Z.delete(N))return;let v;try{v=await $.uploadAttachment(P,A)}catch{W(N);return}if(Z.delete(N)){$.deleteAttachment(v.id).catch(()=>{});return}V(N,{status:"ready",attachmentId:v.id,summary:v})}function B(N){let P=[];for(let A of N){let v=D4(A),T=J.filter((z_)=>z_.status!=="error").length>=c1,l=v!=="ok"?v:T?"count":void 0,Z_=U1();if(K([...J,l?{localId:Z_,filename:A.name,status:"error",refusal:l}:{localId:Z_,filename:A.name,status:"uploading"}]),!l)P.push({localId:Z_,file:A})}if(!P.length)return;_.ensureThread().then((A)=>{for(let{localId:v,file:T}of P){if(Z.delete(v))continue;V(v,{threadId:A}),z=z.then(()=>q(v,A,T)).catch(()=>{})}},()=>{for(let{localId:A}of P)W(A)})}function D(N){let P=J.find((A)=>A.localId===N);if(!P)return;if(P.status==="uploading"){Z.add(N),K(J.filter((A)=>A.localId!==N));return}if(P.attachmentId){V(N,{status:"deleting"}),$.deleteAttachment(P.attachmentId).then(()=>K(J.filter((A)=>A.localId!==N)),()=>V(N,{status:"error"}));return}K(J.filter((A)=>A.localId!==N))}function U(N){let P=[];for(let A of J){if(A.threadId!==void 0&&A.threadId!==N){P.push(A);continue}if(A.status==="uploading")Z.add(A.localId);else if(A.status==="ready"&&A.threadId===N&&A.attachmentId)$.deleteAttachment(A.attachmentId).catch(()=>{})}if(P.length!==J.length)K(P)}function y(){let N=J.flatMap((P)=>P.status==="ready"&&P.summary?[{...P,status:"ready",summary:P.summary}]:[]);return K(J.filter((P)=>P.status!=="ready")),Y=N,N}function E(N){let P=Y;if(Y=[],P.some((A)=>A.threadId!==N))return;K([...P.map((A)=>({...A,status:"error"})),...J])}function O(){Y=[]}return{getState:X,subscribe:G,accept:B,remove:D,clear:U,consumeReady:y,restoreConsumed:E,discardConsumed:O}}function i4(_){return{uploading:_.some(($)=>$.status==="uploading"),busy:_.some(($)=>$.status==="uploading"||$.status==="deleting"),hasReady:_.some(($)=>$.status==="ready")}}import{ChatClient as h6}from"@tanstack/ai-client";import{EventType as o4}from"@tanstack/ai";import{fetchServerSentEvents as n4}from"@tanstack/ai-client";function T6(_){for(let $=_.length-1;$>=0;$-=1){let Q=_[$],Z="parts"in Q&&Q.parts.some((J)=>J.type==="tool-result"||J.type==="tool-call"&&J.state==="approval-responded");if(Q.role==="user"||Z)return _.slice($,$+1)}return _.slice(-1)}function v6(_){if(_.state==="approval-responded"){let $=_.approval?.approved;if($===void 0)return null;return{toolCallId:_.id,output:null,state:$?"approved":"denied"}}if(!o(_.state))return null;return{toolCallId:_.id,output:_.output??null,state:_.state==="error"?"error":"complete"}}function f6(_){let[$]=_;if(!$||$.role!=="assistant"||!("parts"in $))return null;let Q=$.parts.flatMap((Z)=>{let J=Z.type==="tool-call"?v6(Z):null;return J?[J]:[]});return Q.length>0?Q:null}async function w6(_){if(_.status!==409)return;let $=await _.clone().json().catch(()=>{return});return $!==null&&typeof $==="object"&&"outcome"in $&&$.outcome==="dropped"&&"reason"in $&&$.reason==="approval_pending"?"approval_pending":void 0}async function*r4(_,$,Q){for await(let Z of _){if(Z.type!==o4.MESSAGES_SNAPSHOT){yield Z;continue}let J=$.localMessages(),Y=J.findIndex((X)=>X.id===Q),z=Y===-1?[]:J.slice(Y+1).filter((X)=>X.role==="user");$.onTranscriptCarried?.(Z.timestamp??Date.now()),yield{...Z,messages:[...Z.messages,...z]}}}function a4(_){let{api:$,thread:Q}=_,Z=async()=>({headers:await $.resolveHeaders()}),J=0;async function*Y(W,q){J+=1,_.onStreamStarted?.();try{yield*W}finally{J-=1,q?.()}}function z(W,q){let B=Object.assign(async(D,U)=>{let y=await fetch(D,U).catch((N)=>{throw W("lost"),N});W(R4(y.status)),$.readVisitorAnswer(y,U?.headers);let E=new Headers(U?.headers).has("Last-Event-ID");if(q&&!E&&y.status===401)_.onMessageRefused?.();let O=await w6(y);if(O)_.onRefused?.(O);return y},fetch);return n4(()=>$.resolveUrl("/chat"),async()=>({...await Z(),fetchClient:B}))}let X=function(W,q,B,D){let U=T6(W),y=f6(U),E=y?.map((A)=>A.toolCallId),O,N=z((A)=>{if(O)return;if(O=A,E&&O==="persisted")_.onReceipt?.(E,O)},!y&&U[0]?.role==="user"),P=y?N.connect([],{...q,[H4]:y},B,D):N.connect(U,q,B,D);return Y(r4(P,_,W.at(-1)?.id),()=>{if(E&&O!=="persisted")_.onReceipt?.(E,O??"lost")})},G=n4(()=>$.resolveUrl(`/chat/${Q.id}/stream`),Z),K=[];async function*V(W,q){yield{type:o4.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:K},yield*r4(G.joinRun(W,q),_,K.at(-1)?.id)}return{connect:X,joinRun:(W,q)=>Y(V(W,q)),streaming:()=>J>0,hydrate:async()=>{let W=await j6(_);return K=W.messages,W}}}async function j6(_){let{api:$,thread:Q,mode:Z}=_,J=Q.isRunning?{runId:Q.id}:null;if(Z==="skip")return{messages:[],activeRun:J,interrupts:null};if(Z==="load")_.setLoadingMessages?.(!0);try{let z=(await $.listMessages(Q.id)).map(l1);return _.onHydrated?.(z),{messages:z,activeRun:J,interrupts:null}}finally{_.setLoadingMessages?.(!1)}}async function s4(_){if(_.isStale?.()||_.isStreaming())return;try{let $=await _.api.listMessages(_.threadId);if(_.isStale?.()||_.isStreaming())return;let Q=$.map(l1);return _.setMessages(Q),Q}catch{return}}import{EventType as g6}from"@tanstack/ai";function m6(_){return new Set(M_(_).filter(($)=>$.state!=="approval-responded").map(($)=>$.id))}function H0(_){return _.refusal==="approval_pending"?"translate_approval_pending":"translate_error"}var x6=2;function t4(_){let $=!1,Q=!1,Z=!1,J,Y,z,X,G=!1,K=!1,V,W,q=new Set,B=new Map,D=new Map,U=0,y=0,E=0,O=!1;function N(){if($)return;$=!0,_.setRunning(!0)}function P(R,S){B.get(R)?.waiters.forEach(S),B.delete(R)}function A(R,S,C=!1){for(let f of R){let m=B.get(f);if(!m)continue;if(m.failure=S,C)m.mayHaveLanded=!0}z_()}async function v(R,S,C){try{await S()}catch(f){if(C)C.failures+=1;A([R],f instanceof Error?f:Error("The answer was not sent"))}}function T(R){for(let[S,C]of B)if(!R.has(S)){if(C.mayHaveLanded)N();P(S,(f)=>f.resolve())}else if(C.failure){let{failure:f}=C;P(S,(m)=>m.reject(f))}else v(S,C.deliver)}function l(R){for(let[C,f]of D){if(R.has(C))continue;if(D.delete(C),f.mayHaveLanded)N()}let S=[...D.values()];if(S.some((C)=>C.failures>x6))return;for(let C of S)Z_(C)}function Z_(R){if(!_.answers())return O=!0,Promise.resolve();return v(R.answer.toolCallId,()=>_.deliver(R.answer),R)}async function z_(){let R=U,S=++y,C=()=>U!==R||E>S||!_.isAlive(),f=await _.refreshMessages(C).catch(()=>{return});if(!f||C())return;E=S;let m=m6(f),U_=O;if(O=!1,T(m),l(m),$||U_)J_(f)}async function i(R,S){let C;try{let U_=S({toolCallId:R.id,toolName:R.name,input:R.input},{threadId:_.threadId});if(U_===null||U_===void 0)return;C=await Promise.resolve(U_)}catch{q.delete(R.id);return}if(C===null||C===void 0)return;if(!_.isAlive())return;let m={answer:{toolCallId:R.id,tool:R.name,output:C},failures:0,mayHaveLanded:!1};D.set(R.id,m),await Z_(m)}function J_(R){let S=M_(R),C=_.onToolCall();if(!C)return S.length>0;if(!_.answers())return O||=S.length>0,S.length>0;for(let f of S){if(f.state!=="input-complete"||q.has(f.id))continue;q.add(f.id),i(f,C)}return S.length>0}async function u_(R){if(Z)_.reloadThreads().catch(()=>{});else _.setRunning(!1);if($&&!G&&J_(R()))return;if(W===void 0&&V!==void 0)return;W=void 0,await z_()}return{chunkArrived(R){if(Q=!0,R.type===g6.RUN_ERROR&&R.code!=="aborted")J={reason:R.message||void 0}},transcriptCarried(R){if(V=R,W!==void 0&&W<=R)W=void 0},transcriptUpdated(R){let S=Date.parse(R);if(V!==void 0&&S<=V)return;if(!K){z_();return}W=Math.max(W??0,S)},streamFailed(){if(Z=!0,G)return;if(Q)_.onTurnFinished();else _.onSendFailed();if(Y){if(_.setTurnFailed({reason:void 0,refusal:Y}),X!==void 0)_.returnDraft(X);return}let S=J??(X!==void 0&&!Q?{reason:void 0}:void 0);if(S)_.setTurnFailed(S)},loadingChanged(R,S){if(R){K=!0;return}if(!K)return;K=!1,_.onTurnFinished(),u_(S)},hydrated(R,S){if(S)return;setTimeout(()=>{if(_.isAlive())J_(R)},0)},deliverAnswer(R,S){return new Promise((C,f)=>{let m=[...B.get(R)?.waiters??[],{resolve:C,reject:f}];B.set(R,{deliver:S,waiters:m}),v(R,S)})},receiptArrived(R,S){if(S==="persisted"){for(let f of R)D.delete(f),P(f,(m)=>m.resolve());N();return}let C=S==="lost";for(let f of R){let m=D.get(f);if(!m)continue;m.failures+=1,m.mayHaveLanded||=C}A(R,Error(C?"The answer was lost":"Cortex refused the answer"),C)},readBack:z_,resumeAnswers(){if(O&&!K)z_()},streamStarted(){if($)_.setRunning(!0);U+=1,Z=!1,J=void 0,Y=void 0,X=z,z=void 0,V=void 0,G=!1,_.setTurnFailed(void 0)},sendStarted(R){U+=1,z=R,$=!0,Q=!1},sendRefused(R){Y=R},abortConfirmed(){G=!0}}}var M1={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1,awaitsApproval:!1,turnFailure:void 0};function e4(_){let{api:$}=_,Q=_.thread.id,Z=new Set,J=M1,Y=X(_.thread,_.mode);function z(D,U){if(Object.is(J[D],U))return;let y={...J,[D]:U};J={...y,hasPendingToolCalls:!y.isAgentWorking&&M_(y.messages).length>0,awaitsApproval:O4(y.messages)},Z.forEach((E)=>E())}function X(D,U,y){let E=!0;function O(T){return(...l)=>{if(E)T(...l)}}let N=Promise.resolve(),P=t4({threadId:Q,isAlive:()=>E,onToolCall:()=>_.getHooks()?.onToolCall,answers:_.answers,deliver:(T)=>v.addToolResult(T),setRunning:_.setRunning,reloadThreads:_.reloadThreads,refreshMessages:(T)=>{let l=N.then(()=>s4({api:$,threadId:Q,isStale:()=>!E||T(),isStreaming:A.streaming,setMessages:(Z_)=>v.setMessagesManually(Z_)}));return N=l,l},onTurnFinished:_.onTurnFinished,onSendFailed:_.onSendFailed,setTurnFailed:O((T)=>z("turnFailure",T)),returnDraft:O(_.onReturned)}),A=a4({api:$,thread:D,mode:U,localMessages:()=>v.getMessages(),onHydrated:O((T)=>P.hydrated(T,D.isRunning)),onTranscriptCarried:O((T)=>P.transcriptCarried(T)),onStreamStarted:O(()=>P.streamStarted()),onRefused:O((T)=>P.sendRefused(T)),onMessageRefused:_.onMessageRefused,onReceipt:O((T,l)=>P.receiptArrived(T,l)),setLoadingMessages:O((T)=>z("isLoadingMessages",T))}),v=new h6({threadId:Q,persistence:!0,initialMessages:y,connection:A,onChunk:O((T)=>P.chunkArrived(T)),onError:O(()=>P.streamFailed()),onMessagesChange:O((T)=>z("messages",T)),onLoadingChange:O((T)=>{z("isAgentWorking",T);let l=()=>v.getMessages();if(T){P.loadingChanged(!0,l);return}setTimeout(O(()=>{if(!v.getIsLoading())P.loadingChanged(!1,l)}))})});return v.attach(),{client:v,lifecycle:P,isAlive:()=>E,close(){E=!1,v.detach(),v.stop(),v.dispose()}}}async function G(D,U=()=>[]){if(!Y.isAlive()||J.isAgentWorking||J.awaitsApproval)return!1;let{client:y,lifecycle:E}=Y;return E.loadingChanged(!1,()=>y.getMessages()),E.sendStarted(D),await y.append({id:U1(),role:"user",parts:[{type:"text",content:D}],metadata:{createdAt:new Date().toISOString(),attachments:U()}}),!0}async function K(){let{client:D,lifecycle:U,isAlive:y}=Y;if(!y()||!D.getIsLoading())return;let{aborted:E}=await $.abortStream(Q).catch(()=>({aborted:!1}));if(!y())return;if(E)U.abortConfirmed();else D.stop()}function V(D,U,y){let{client:E,lifecycle:O,isAlive:N}=Y;if(!N())return Promise.resolve();return O.deliverAnswer(D,()=>E.addToolResult({toolCallId:D,tool:U,output:y}))}function W(D,U){let{client:y,lifecycle:E,isAlive:O}=Y;if(!O())return Promise.resolve();let N=U4(D);return E.deliverAnswer(D.id,async()=>{let P=y.getInterrupts().find((A)=>A.id===N);if(P&&"resolveInterrupt"in P)P.resolveInterrupt({approved:U});else await y.addToolApprovalResponse({id:N,approved:U})})}function q(D){if(!Y.isAlive()||D.id!==Q||Y.client.getIsLoading())return;if(!D.isRunning){Y.lifecycle.readBack();return}Y.close(),z("isLoadingMessages",!1),z("turnFailure",void 0),Y=X(D,"reload",J.messages)}function B(D){if(Y.isAlive()&&D.id===Q)Y.lifecycle.transcriptUpdated(D.updatedAt)}return{threadId:Q,getState:()=>J,subscribe:(D)=>{return Z.add(D),()=>{Z.delete(D)}},send:G,abort:K,addToolResult:V,respondToApproval:W,reattach:q,transcriptUpdated:B,resumeAnswers:()=>{if(Y.isAlive())Y.lifecycle.resumeAnswers()},dispose(){Y.close(),Z.clear()}}}function U0(_){return[..._].sort(($,Q)=>{let Z=Date.parse(Q.updatedAt)-Date.parse($.updatedAt);if(Z!==0)return Z;return Date.parse(Q.createdAt)-Date.parse($.createdAt)})}function M0(_,$){let Q=[..._],Z=Q.findIndex((J)=>J.id===$.id);if(Z===-1)Q.push($);else Q[Z]={...Q[Z],...$};return U0(Q)}function _2(_,$){return _.filter((Q)=>Q.id!==$)}function u6(_,$,Q){return _.map((Z)=>Z.id===$?{...Z,title:Q}:Z)}var c6=[0,1000,2000,3000,4000];function $2(_){let $=_.delays??c6,Q=!1,Z;function J(){let X=_.selected();return!Q&&!_.socketOpen()&&X?.id===_.threadId&&!X.title}async function Y(X){if(!J())return;let K=(await _.listThreads().catch(()=>{return}))?.find((V)=>V.id===_.threadId)?.title;if(!J())return;if(K)_.setTitle(K);else z(X+1)}function z(X){let G=$[X];if(G!==void 0)Z=setTimeout(()=>void Y(X),G)}return z(0),function(){Q=!0,clearTimeout(Z)}}function Q2(_,$){switch($.type){case"thread:deleted":return _2(_,$.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return M0(_,$.payload.thread);default:return _}}function Z2(){let _=new Map,$=new Map,Q=new Map,Z=new Set,J=0,Y=0;function z(X){if(X.type==="thread:run-started")return _.set(X.payload.thread.id,X.payload.runId),!0;if(X.type!=="thread:run-finished")return!0;let G=_.get(X.payload.thread.id);return G===void 0||G===X.payload.runId}return{admits(X){if(!z(X))return!1;if("thread"in X.payload)$.set(X.payload.thread.id,++J);if(X.type==="thread:deleted")Z.add(X.payload.threadId);return!0},running(X,G){return Q.set(X,++J),(K)=>{let V=K?.find((W)=>W.id===X);return K&&V?M0(K,{...V,isRunning:G}):K}},created(X){return $.set(X.id,++J),(G)=>M0(G??[],X)},retitled(X,G){return $.set(X,++J),(K)=>K&&u6(K,X,G)},deleted(X){return Z.add(X),(G)=>G&&_2(G,X)},async read(X){_.clear();let G=++J,K=U0(await X()),V=G<Y;Y=Math.max(Y,G);function W(q){if(V&&q)return q;let B=new Map(K.map((D)=>[D.id,D]));for(let D of q??[]){let U=B.get(D.id);if(($.get(D.id)??0)>G)B.set(D.id,D);else if(U&&(Q.get(D.id)??0)>G)B.set(D.id,{...U,isRunning:D.isRunning})}for(let D of Z)B.delete(D);return U0([...B.values()])}return{listed:K,show:W}}}}function J2(_,$){for(let Q in _)if(!Object.is(_[Q],$[Q]))return!1;return!0}function a_(_,$){let{capabilities:Q,session:Z}=_,J=i4(_.attachments);return Q!==void 0&&Q.messages!==!1&&!_.creating&&!Z.isAgentWorking&&!Z.awaitsApproval&&!J.busy&&(Boolean($.trim())||J.hasReady)}function P0(_){let{capabilities:$,unanswered:Q}=_;if(_.session.hasPendingToolCalls)return;if($===void 0)return Q&&d4[Q];if($.messages)return"composer";return $.readOnly?"translate_read_only":"translate_messages_disabled"}function L0(_){let{getConfig:$}=_,Q=c4(()=>$().transport),Z=new Set,J=Z2(),Y=l4({api:Q,ensureThread:X4}),z={threads:void 0,selected:void 0,session:M1,capabilities:void 0,unanswered:void 0,attachments:Y.getState(),creating:!1,screen:"chat",sidebarOpen:!1,debugMode:!1},X={...z,parts:Y2(z)},G="",K,V,W=0,q,B,D,U,y,E,O,N,P=[],A=!1,v={reported:X.session,debug:!1,session:X.session};Y.subscribe(()=>i({attachments:Y.getState()}));function T(){for(let F of Z)F()}function l(F){return Z.add(F),()=>{Z.delete(F)}}function Z_(F){let k=V;return k&&(F?.find((b)=>b.id===k.id)??k)}function z_(F){let k=B?.getState()??M1;if(k===v.reported&&F===v.debug)return v.session;let b=k.turnFailure,g=F||b?.reason===void 0?k:{...k,turnFailure:{...b,reason:void 0}};return v={reported:k,debug:F,session:g},g}function i(F={}){let k={...X,...F},b={...k,selected:Z_(k.threads),session:z_(Boolean(k.capabilities?.debug)),creating:q?.generation===W&&q.forMessage},g=Y2(b),r={...b,parts:J2(g,X.parts)?X.parts:g};if(J2(r,X))return;X=r,T()}function J_(F){i({threads:F(X.threads)})}function u_(F){if(F===G)return;G=F,T()}function R(F){if(F)u_(G?`${F}
2
+ `)}]:[]}):[],Z=_;if($){let J=Object.fromEntries(Object.entries($).filter(([Y])=>!Object.hasOwn(A4,Y)));Z=Object.keys(J).length>0?J:null}return{codeSnippets:Q,remainingInput:Z,remainingInputText:Z?JSON.stringify(Z,null,2):""}}var z6=10,G6={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function K6(_){let $=_.output;if(typeof $==="string")try{$=JSON.parse($)}catch{return}if(!$||typeof $!=="object")return;if("error"in $&&$.error===!0)return"failed";if(!d1(_)?.embed||!("status"in $))return;let Q=$.status;return Q==="failed"||Q==="cancelled"?Q:void 0}function V6(_){let $=_.output;if(!$||typeof $!=="object"||!("rowCount"in $))return;let Q=$.rowCount;return typeof Q==="number"?Q:void 0}function W6(_,$,Q){if(Q==="declined")return"translate_declined";if(Q==="cancelled")return"translate_tool_cancelled";if($==="error")return"translate_tool_error";if($==="approval")return"translate_needs_approval";return`translate_${_.name==="readAttachment"?"attachment":"tool"}_${$==="complete"?"done":"status"}`}function d_(_){let $=_.approval?.approved===!1?"declined":_.state==="complete"?K6(_):void 0,Q=$?"error":G6[_.state]??"processing";return{state:Q,active:Q==="starting"||Q==="processing",gated:M4(_),titleKey:W6(_,Q,$),statement:N4.some((Z)=>Z===_.name)?p1(_.input,"status"):void 0,rows:Q==="complete"?V6(_):void 0}}function a1(_){let $=_.approval?.approved,{state:Q,active:Z}=d_(_),J=$===void 0?_.state==="approval-requested"?"pending":"cancelled":!$?"declined":Q==="error"?"failed":"approved";return{title:F4(_.input),fallbackKey:"translate_approval_action",fallbackParams:{tool:D6(_.name)},decision:J,decisionKey:q6[J],state:Q,active:Z}}var q6={pending:void 0,approved:"translate_approved",declined:"translate_declined",failed:"translate_approved_failed",cancelled:"translate_approval_cancelled"};function D6(_){let $=_.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return $.charAt(0).toUpperCase()+$.slice(1)}function s1(_){return Array.from({length:z6},($,Q)=>`translate_${_}_${Q}`)}function l_(_,$){return _.filter((Q,Z)=>{if(Q.type==="tool-result")return!1;if($.debugMode)return!0;if(Q.type==="text"&&!Q.content.trim())return!1;let J=Z===_.length-1;return Q.type!=="thinking"||$.isStreaming&&J})}var B6=[H1];function k4(_){return B6.find(($)=>$===_)}function y4(_,$){let{consumerTools:Q,capabilities:Z}=$;if(Z?.messages!==!0&&!o(_.state))return;return Q&&Object.hasOwn(Q,_.name)?Q[_.name]:void 0}function S4(_,$){if(y4(_,$))return!1;return!k4(_.name)||!o(_.state)}function t1(_,$){let Q=d_(_),Z=$.capabilities?.messages===!0&&!$.agentWorking;if(_.state==="approval-requested"&&Z)return{kind:"approval",asking:!0};if($.debugMode)return{kind:"debug"};let J=y4(_,$);if(J)return{kind:"consumer",component:J};let Y=_.state==="input-complete"&&Z,z=Y||o(_.state)?k4(_.name):void 0;if(z)return{kind:"builtIn",component:$.builtInTools[z]};if(Y&&!$.embedUnavailable&&d1(_)?.embed)return{kind:"embed"};if(_.name==="executeCode"&&!o(_.state)&&!Q.statement)return{kind:"activity",activity:"code"};if(Q.gated)return{kind:"approval",asking:!1};return{kind:"pill"}}function e1(_){let $=_.approval?.id;switch(_.state){case"complete":return{kind:"output",text:E4(_)};case"error":return{kind:"error",text:E4(_)};case"approval-requested":return{kind:"approval",approvalId:$,labelKey:"translate_approval_requested",messageKey:"translate_waiting_for_approval"};case"approval-responded":return{kind:"approval",approvalId:$,labelKey:"translate_approval_response",messageKey:_.approval?.approved?"translate_tool_approved":"translate_tool_response_received"};default:return}}var _0=new WeakMap;function $0(_,$){let Q=_.closest(".cortex-widget__screen"),Z=Q?.querySelector(".cortex-message-list");if(!Q||!Z||!_.value.trim())return;let J=getComputedStyle(_),Y=_.getBoundingClientRect(),z=(X)=>parseFloat(J[`padding${X}`])+parseFloat(J[`border${X}Width`]);_0.set(Q,{text:$,textarea:_,from:new DOMRect(Y.left+z("Left"),Y.top+z("Top"),Y.width-z("Left")-z("Right"),Y.height-z("Top")-z("Bottom")),rtl:J.direction==="rtl",scrollTop:Z.scrollTop})}function N6(_,$){let Q=_.closest(".cortex-widget__screen"),Z=Q?_0.get(Q):void 0;if(!Q||!Z)return;_0.delete(Q);let J=_.querySelectorAll(":scope > .cortex-message"),Y=J[J.length-1]?.querySelector(".cortex-text-bubble--user"),z=_.closest(".cortex-message-list");if(!Y||!z||Z.text!==$||!Z.textarea.isConnected)return;Y.closest(".cortex-message-part")?.getAnimations().forEach((E)=>E.finish()),C4(z);let X=Y.getBoundingClientRect(),G=Q.getBoundingClientRect(),K=getComputedStyle(Y),V=parseFloat(K.paddingTop)+parseFloat(K.borderTopWidth),W=Z.rtl?parseFloat(K.paddingRight)+parseFloat(K.borderRightWidth):parseFloat(K.paddingLeft)+parseFloat(K.borderLeftWidth),q=Z.rtl?Z.from.right+W-X.width:Z.from.left-W,B=z.scrollTop-Z.scrollTop;if(B)_.style.setProperty("--cortex-slide",`${B}px`),_.classList.remove("cortex-message-list__content--settling"),_.offsetWidth,_.classList.add("cortex-message-list__content--settling"),_.getAnimations()[0]?.finished.then(()=>_.classList.remove("cortex-message-list__content--settling"),()=>{return});let D=Y.cloneNode(!0);D.classList.add("cortex-send-flight"),D.setAttribute("aria-hidden","true"),Object.assign(D.style,{left:`${X.left-G.left}px`,top:`${X.top-G.top}px`,width:`${X.width}px`}),D.style.setProperty("--cortex-fly-x",`${q-X.left}px`),D.style.setProperty("--cortex-fly-y",`${Z.from.top-V-X.top}px`),Y.style.visibility="hidden",Q.append(D);let U=z.scrollTop,y=()=>{D.style.top=`${X.top-G.top-(z.scrollTop-U)}px`};z.addEventListener("scroll",y,{passive:!0}),T4(D).then(()=>{z.removeEventListener("scroll",y),Y.style.visibility="",D.remove()})}function C4(_){_.scrollTop=b4(_)}var F6=100;function Q0(_,$){let Q=!0,Z=!0,J=!1,Y=0,z;function X(){if(J)return;J=!0,queueMicrotask(()=>{J=!1,C4(_),Z=!0,Q=!1})}function G(){Z=b4(_)-_.scrollTop<F6}let K=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([V])=>{let W=V?.contentRect.height??0,q=W>Y;if(Y=W,q&&(Q||Z))X()});return K?.observe($),_.addEventListener("scroll",G,{passive:!0}),X(),{pin(){Q=!0},messagesChanged(V){if(V?.role==="user"&&V.id!==z){z=V.id,Q=!0;let W=V.parts.find((q)=>q.type==="text")?.content;if(W!==void 0)N6($,W)}if(Q)X()},dispose(){K?.disconnect(),_.removeEventListener("scroll",G)}}}function b4(_){let $=_.querySelector(".cortex-message-list__content");if(!$)return _.scrollHeight-_.clientHeight;let Q=getComputedStyle(_);return $.offsetHeight+parseFloat(Q.paddingTop)+parseFloat(Q.paddingBottom)-_.clientHeight}function Z0(_){let $=!1,Q=_.parentElement,Z=typeof ResizeObserver>"u"?void 0:new ResizeObserver(()=>{if($)J()});Z?.observe(Q);function J(){let Y=Q.querySelector(":scope > .cortex-working-thinking, :scope > .cortex-message > .cortex-message-parts > [data-cortex-frontier]");if(!Y)return!1;return _.style.setProperty("--cortex-avatar-y",`${H6(Y,Q)-_.offsetHeight/2}px`),!0}return{sync(Y){if(Y===$){if(Y)J();return}if(Y){if(!J())return;_.classList.remove("cortex-working-avatar--leaving"),_.offsetWidth,_.classList.add("cortex-working-avatar--shown"),$=!0;return}$=!1;let[,z="0px"]=getComputedStyle(_).translate.split(" ");_.style.setProperty("--cortex-avatar-y",z),_.classList.add("cortex-working-avatar--leaving"),T4(_,!0).then(()=>{if($)return;_.classList.remove("cortex-working-avatar--shown","cortex-working-avatar--leaving")})},dispose(){Z?.disconnect()}}}function H6(_,$){let Q=_.querySelector(".cortex-text-bubble");if(!Q)return I4(_,$)+_.offsetHeight/2;let Z=getComputedStyle(Q);return I4(Q,$)+parseFloat(Z.paddingTop)+parseFloat(Z.borderTopWidth)+parseFloat(Z.lineHeight)/2}function I4(_,$){let Q=0;for(let Z=_;Z instanceof HTMLElement&&Z!==$;)Q+=Z.offsetTop,Z=Z.offsetParent;return Q}function T4(_,$=!1){return Promise.allSettled(_.getAnimations({subtree:$}).map((Q)=>Q.finished))}function J0(_,$){let Q=0,Z,J;function Y(){Z=setTimeout(()=>{$({index:Q,phase:"exiting"}),Z=setTimeout(()=>{Q=(Q+1)%_,$({index:Q,phase:"enter-start"}),J=requestAnimationFrame(()=>{$({index:Q,phase:"entering"}),Z=setTimeout(()=>{$({index:Q,phase:"idle"}),Y()},300)})},300)},2000)}return Y(),()=>{if(clearTimeout(Z),J!==void 0)cancelAnimationFrame(J)}}function Y0(_,$){function Q(){$.sendDraft((G)=>$0(_,G))}function Z(G){if(G.key!=="Enter"||G.shiftKey)return;G.preventDefault(),Q()}function J(){_.style.overflowY="hidden",_.style.height="0px",_.style.height=`${_.scrollHeight+1}px`,_.style.overflowY=""}let Y=0,z=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([G])=>{let K=G?.borderBoxSize[0]?.inlineSize??0;if(K===Y)return;Y=K,requestAnimationFrame(J)});function X(){_.removeEventListener("keydown",Z),z?.disconnect()}return _.style.transition="none",_.addEventListener("keydown",Z),z?.observe(_,{box:"border-box"}),{send:Q,fit:J,dispose:X}}function X0(_){return{onDragOver:($)=>{if($.preventDefault(),_.enabled)_.setDragging(!0)},onDragLeave:($)=>{if(!$.currentTarget?.contains($.relatedTarget))_.setDragging(!1)},onDrop:($)=>{if($.preventDefault(),_.setDragging(!1),_.enabled)_.accept([...$.dataTransfer?.files??[]])},onPaste:($)=>{let Q=[...$.clipboardData?.files??[]];if(!_.enabled||!Q.length)return;$.preventDefault(),_.accept(Q)}}}function S_(_,$){if(_===void 0||typeof _==="string"||Array.isArray(_))return _;let Q=_;return Q[$]??Q.en??Object.values(Q)[0]}var v4={translate_history:"السجل",translate_back:"رجوع",translate_greeting:"بماذا يمكنني مساعدتك اليوم؟",translate_conversations:{zero:"لا محادثات",one:"محادثة واحدة",two:"محادثتان",few:"{{count}} محادثات",many:"{{count}} محادثة",other:"{{count}} محادثة"},translate_no_threads_yet:"لا توجد محادثات بعد",translate_start_a_new_conversation:"ابدأ محادثة جديدة",translate_untitled:"بدون عنوان",translate_new_chat:"محادثة جديدة",translate_normal:"عادي",translate_debug:"تصحيح",translate_type_a_message:"اكتب رسالة...",translate_completed:"مكتمل",translate_attach_files:"إرفاق ملفات",translate_drop_files_here:"أفلت ملفاتك هنا...",translate_remove_attachment:"إزالة المرفق",translate_attachment_rejected:"لا يمكن إرفاق هذا الملف",translate_attachment_rejected_type:"يمكن إرفاق ملفات {{types}} فقط",translate_attachment_rejected_size:"الحد الأقصى لحجم الملف {{size}} ميغابايت",translate_attachment_rejected_name:"اسم الملف طويل جدًا",translate_attachment_rejected_count:{zero:"لا يمكن إرفاق ملفات بالرسالة",one:"يمكن إرفاق ملف واحد كحد أقصى لكل رسالة",two:"يمكن إرفاق ملفين كحد أقصى لكل رسالة",few:"يمكن إرفاق {{count}} ملفات كحد أقصى لكل رسالة",many:"يمكن إرفاق {{count}} ملفًا كحد أقصى لكل رسالة",other:"يمكن إرفاق {{count}} ملف كحد أقصى لكل رسالة"},translate_attachment_caption:"من فضلك اطّلع على الملفات المرفقة.",translate_download:"تنزيل",translate_tool_status:"جارٍ تنفيذ خطوة…",translate_tool_done:"اكتملت الخطوة",translate_tool_cancelled:"أُلغيت الخطوة",translate_rows:{zero:"لا صفوف",one:"صف واحد",two:"صفان",few:"{{count}} صفوف",many:"{{count}} صفًا",other:"{{count}} صف"},translate_more_steps:{zero:"ولا خطوات أخرى",one:"وخطوة أخرى",two:"وخطوتان أخريان",few:"و{{count}} خطوات أخرى",many:"و{{count}} خطوة أخرى",other:"و{{count}} خطوة أخرى"},translate_tool_error:"حدث خطأ",translate_attachment_status:"جارٍ قراءة الملف المرفق…",translate_attachment_done:"تمت قراءة الملف المرفق",translate_code_0:"جارٍ حساب الأرقام...",translate_code_1:"جارٍ معالجة البيانات...",translate_code_2:"جارٍ تنفيذ طلبك...",translate_code_3:"جارٍ تحليل الأرقام...",translate_code_4:"جارٍ تجميع كل شيء...",translate_code_5:"جارٍ تحليل النتائج...",translate_code_6:"جارٍ العمل خلف الكواليس...",translate_code_7:"جارٍ ترتيب التفاصيل...",translate_code_8:"جارٍ تحضير إجابتك...",translate_code_9:"أوشك على الانتهاء...",translate_reasoning_0:"جارٍ التفكير...",translate_reasoning_1:"جارٍ دراسة الخيارات...",translate_reasoning_2:"جارٍ تقييم الاحتمالات...",translate_reasoning_3:"جارٍ التأمل في هذا...",translate_reasoning_4:"جارٍ إيجاد الحل...",translate_reasoning_5:"جارٍ ترتيب الأفكار...",translate_reasoning_6:"جارٍ التمعن في الأمر...",translate_reasoning_7:"جارٍ إيجاد أفضل طريقة...",translate_reasoning_8:"جارٍ تنظيم أفكاري...",translate_reasoning_9:"أوشك على الانتهاء...",translate_running:"قيد التنفيذ",translate_aborted:"تم الإلغاء",translate_input:"المدخلات",translate_output:"المخرجات",translate_calling:"جارٍ الاستدعاء",translate_input_ready:"المدخلات جاهزة",translate_needs_approval:"بحاجة إلى موافقة",translate_approved:"تمت الموافقة",translate_responded:"تم الرد",translate_declined:"تم الرفض",translate_approve:"موافقة",translate_deny:"رفض",translate_error:"خطأ",translate_approval_pending:"وافق على الطلب أعلاه أو ارفضه أولًا.",translate_approval_requested:"طلب موافقة",translate_approval_response:"رد الموافقة",translate_waiting_for_approval:"في انتظار الموافقة لتنفيذ هذه الأداة.",translate_tool_approved:"تمت الموافقة.",translate_tool_response_received:"تم استلام الرد.",translate_tokens:"رمز",translate_fresh:"جديد",translate_cache_read:"قراءة من الذاكرة",translate_cache_write:"كتابة في الذاكرة",translate_n_percent_cached:"{{percent}}٪ مخزّن مؤقتًا",translate_text:"نص",translate_reasoning:"الاستنتاج",translate_read:"قراءة",translate_write:"كتابة",translate_total:"الإجمالي",translate_request:"الطلب",translate_response:"الرد",translate_step_n:"الخطوة {{number}}",translate_inspect_llm_requests:"فحص طلبات النموذج",translate_loading:"جارٍ التحميل…",translate_no_llm_requests:"لا توجد طلبات نموذج مسجّلة لهذه الرسالة.",translate_unhandled_type:"نوع غير مدعوم:",translate_client_tool_title:"أكمل هذه الخطوة للمتابعة",translate_client_tool_loading:"جارٍ تجهيز خطوة آمنة...",translate_client_tool_failed:"تعذّر تحميل هذه الخطوة",translate_client_tool_retry:"حاول مرة أخرى",translate_client_tool_cancel:"إلغاء",translate_location_hint:"انقر على الخريطة لتثبيت الدبوس",translate_location_locate:"استخدم موقعي",translate_location_locating:"جارٍ تحديد موقعك",translate_location_locate_failed:"موقعك غير متاح",translate_location_map_failed:"تعذّر تحميل الخريطة",translate_location_send_failed:"تعذّر الإرسال، حاول مرة أخرى",translate_location_skip:"ليس الآن",translate_location_send:"إرسال",translate_location_shared:"تمت مشاركة الموقع",translate_location_not_shared:"لم تتم مشاركة الموقع",translate_trigger_fired:"تم التشغيل بواسطة",translate_trigger_payload:"الحمولة",translate_messages_disabled:"يعمل هذا الوكيل من مشغّلاته فقط.",translate_read_only:"أنت تطّلع على هذه المحادثة. لا يمكن إرسال شيء من هنا.",translate_access_refused:"لم يقبل هذا الوكيل تسجيل دخولك.",translate_visitor_unverified:"لم نتمكن من التأكد من أنك شخص حقيقي.",translate_agent_unreachable:"تعذّر الوصول إلى هذا الوكيل الآن. نعيد المحاولة...",translate_agent_missing:"هذا الوكيل غير متاح.",translate_streaming:"جارٍ البث",translate_done:"تم",translate_no_reasoning:"لا يوجد تفكير مسجّل.",translate_copy:"نسخ إلى الحافظة",translate_copied:"تم النسخ",translate_media_pending_mermaid:"جارٍ رسم المخطط",translate_media_pending_vega_lite:"جارٍ رسم الرسم البياني",translate_media_pending_map:"جارٍ رسم الخريطة",translate_media_pending_report:"جارٍ كتابة التقرير",translate_media_cut_off:"انقطع هذا المقطع قبل اكتماله.",translate_media_failed:"تعذر عرض هذا المقطع.",translate_media_source:"المصدر",translate_media_pending:"جارٍ الرسم",translate_media_mermaid:"مخطط",translate_media_vega_lite:"رسم بياني",translate_media_map:"خريطة",translate_media_report:"تقرير",translate_media:"معاينة",translate_image_unavailable:"الصورة غير متاحة",translate_image_unavailable_alt:"الصورة غير متاحة: {{alt}}",translate_image:"صورة",translate_send:"إرسال",translate_stop:"إيقاف",translate_delete_conversation:"حذف المحادثة",translate_table:"جدول",translate_expand:"توسيع {{name}}",translate_table_export:"تصدير إلى Excel",translate_close:"إغلاق",translate_approval_needed:"بحاجة إلى موافقتك",translate_approval_action:"تنفيذ {{tool}}",translate_approved_failed:"تمت الموافقة لكنه فشل",translate_approval_cancelled:"لم يُتخذ قرار"};var f4={translate_history:"History",translate_back:"Back",translate_greeting:"What can I help you with today?",translate_conversations:{one:"1 conversation",other:"{{count}} conversations"},translate_no_threads_yet:"No threads yet",translate_start_a_new_conversation:"Start a new conversation",translate_untitled:"Untitled",translate_new_chat:"New Chat",translate_normal:"Normal",translate_debug:"Debug",translate_type_a_message:"Type a message...",translate_completed:"Completed",translate_attach_files:"Attach files",translate_drop_files_here:"Drop your files here...",translate_remove_attachment:"Remove attachment",translate_attachment_rejected:"This file cannot be attached",translate_attachment_rejected_type:"Only {{types}} files can be attached",translate_attachment_rejected_size:"Files can be up to {{size}} MB",translate_attachment_rejected_name:"The file name is too long",translate_attachment_rejected_count:{one:"Up to 1 file per message",other:"Up to {{count}} files per message"},translate_attachment_caption:"Please take a look at the attached files.",translate_download:"Download",translate_tool_status:"Running a step...",translate_tool_done:"Step completed",translate_tool_cancelled:"Step cancelled",translate_rows:{one:"1 row",other:"{{count}} rows"},translate_more_steps:{one:"and 1 more step",other:"and {{count}} more steps"},translate_tool_error:"Something went wrong",translate_attachment_status:"Reading the attached file...",translate_attachment_done:"Finished reading the file",translate_code_0:"Running the numbers...",translate_code_1:"Working through the data...",translate_code_2:"Processing your request...",translate_code_3:"Crunching the figures...",translate_code_4:"Putting it all together...",translate_code_5:"Analyzing the results...",translate_code_6:"Working behind the scenes...",translate_code_7:"Sorting through the details...",translate_code_8:"Preparing your answer...",translate_code_9:"Almost ready...",translate_reasoning_0:"Thinking it through...",translate_reasoning_1:"Considering the options...",translate_reasoning_2:"Weighing the possibilities...",translate_reasoning_3:"Reflecting on this...",translate_reasoning_4:"Working it out...",translate_reasoning_5:"Putting thoughts together...",translate_reasoning_6:"Mulling it over...",translate_reasoning_7:"Finding the best approach...",translate_reasoning_8:"Organizing my thoughts...",translate_reasoning_9:"Almost there...",translate_running:"Running",translate_aborted:"Aborted",translate_input:"Input",translate_output:"Output",translate_calling:"Calling",translate_input_ready:"Input ready",translate_needs_approval:"Needs approval",translate_approved:"Approved",translate_responded:"Responded",translate_declined:"Declined",translate_approve:"Approve",translate_deny:"Deny",translate_error:"Error",translate_approval_pending:"Approve or deny the request above first.",translate_approval_requested:"Approval requested",translate_approval_response:"Approval response",translate_waiting_for_approval:"Waiting for approval to execute this tool.",translate_tool_approved:"Approved.",translate_tool_response_received:"Response received.",translate_tokens:"tokens",translate_fresh:"Fresh",translate_cache_read:"Cache read",translate_cache_write:"Cache write",translate_n_percent_cached:"{{percent}}% cached",translate_text:"Text",translate_reasoning:"Reasoning",translate_read:"Read",translate_write:"Write",translate_total:"Total",translate_request:"Request",translate_response:"Response",translate_step_n:"Step {{number}}",translate_inspect_llm_requests:"Inspect LLM requests",translate_loading:"loading…",translate_no_llm_requests:"No LLM requests recorded for this message.",translate_unhandled_type:"Unhandled type:",translate_client_tool_title:"Complete this step to continue",translate_client_tool_loading:"Preparing a secure step...",translate_client_tool_failed:"This step could not be loaded",translate_client_tool_retry:"Try again",translate_client_tool_cancel:"Cancel",translate_location_hint:"Tap the map to drop a pin",translate_location_locate:"Use my location",translate_location_locating:"Finding your location",translate_location_locate_failed:"Your location is not available",translate_location_map_failed:"The map could not be loaded",translate_location_send_failed:"Could not send, try again",translate_location_skip:"Not now",translate_location_send:"Send",translate_location_shared:"Location shared",translate_location_not_shared:"Location not shared",translate_trigger_fired:"Triggered by",translate_trigger_payload:"Payload",translate_messages_disabled:"This agent only runs from its triggers.",translate_read_only:"You're viewing this conversation. Nothing can be sent from here.",translate_access_refused:"This agent did not accept your sign-in.",translate_visitor_unverified:"We couldn't confirm you're a person.",translate_agent_unreachable:"This agent cannot be reached right now. Trying again...",translate_agent_missing:"This agent is not available.",translate_streaming:"Streaming",translate_done:"Done",translate_no_reasoning:"No reasoning provided.",translate_copy:"Copy to clipboard",translate_copied:"Copied",translate_media_pending_mermaid:"Drawing diagram",translate_media_pending_vega_lite:"Drawing chart",translate_media_pending_map:"Drawing map",translate_media_pending_report:"Writing report",translate_media_cut_off:"This block was cut off before it finished.",translate_media_failed:"Could not render this block.",translate_media_source:"Source",translate_media_pending:"Drawing",translate_media_mermaid:"Diagram",translate_media_vega_lite:"Chart",translate_media_map:"Map",translate_media_report:"Report",translate_media:"Preview",translate_image_unavailable:"Image unavailable",translate_image_unavailable_alt:"Image unavailable: {{alt}}",translate_image:"Image",translate_send:"Send",translate_stop:"Stop",translate_delete_conversation:"Delete conversation",translate_table:"Table",translate_expand:"Expand {{name}}",translate_table_export:"Export to Excel",translate_close:"Close",translate_approval_needed:"Needs your approval",translate_approval_action:"Run {{tool}}",translate_approved_failed:"Approved, but it failed",translate_approval_cancelled:"Not decided"};var P6={en:f4,ar:v4};function I_(_){return _&&h1.includes(_)?_:W4}function __(_,$,Q){let Z=P6[_][$],J=typeof Z==="string"?Z:Z[new Intl.PluralRules(_).select(Number(Q?.count))]??Z.other;if(!Q)return J;return J.replace(/\{\{\s*(\w+)\s*\}\}/g,(Y,z)=>(z in Q)?String(Q[z]):Y)}function w4(_,$,Q){let Z=_!==void 0&&_.messages!==!1;return{greeting:_===void 0?"":S_(_.greeting,$)||__($,"translate_greeting"),suggestions:Z&&S_(_.suggestions,$)||[],send:(J)=>{if(Z)Q(J)}}}var j4="cortex-recaptcha-enterprise",z0;function L6(_){return z0??=new Promise(($,Q)=>{let Z=()=>{let Y=window.grecaptcha?.enterprise;if(Y)Y.ready(()=>$(Y));else Q(Error("reCAPTCHA Enterprise did not load"))};if(document.getElementById(j4))return Z();let J=document.createElement("script");J.id=j4,J.src=`https://www.google.com/recaptcha/enterprise.js?render=${encodeURIComponent(_)}`,J.async=!0,J.addEventListener("load",Z,{once:!0}),J.addEventListener("error",()=>{J.remove(),Q(Error("reCAPTCHA Enterprise failed to load"))},{once:!0}),document.head.appendChild(J)}).catch(($)=>{throw z0=void 0,$}),z0}function g4(_,$=document){for(let Q of $.querySelectorAll(".grecaptcha-badge")){let Z=Q.querySelector("iframe")?.getAttribute("src");if(Z&&new URL(Z,"https://www.google.com").searchParams.get("k")===_)Q.style.visibility="hidden"}}async function m4(_){let $=await L6(_);g4(_);let Q=await $.execute(_,{action:B4});return g4(_),Q}class B_ extends Error{status;constructor(_,$){super(`HTTP ${_}: ${$}`);this.status=_;this.name="CortexHttpError"}}class o_ extends Error{constructor(){super("The visitor check failed");this.name="CortexVisitorUnverified"}}var V0="cortex:visitor:",r_=new Map,i_=new Map,W0=new Set,G0=new Set;function h4(_){try{return localStorage.getItem(V0+_)}catch{return null}}function u4(_,$){try{if($===null)localStorage.removeItem(V0+_);else localStorage.setItem(V0+_,$)}catch{}}async function x4(_,$){let Q=await fetch(`${_}/visitors`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)});if(Q.status===403)return await Q.json();if(!Q.ok)throw new B_(Q.status,Q.statusText);return await Q.json()}async function R6(_){let $=await x4(_,{});if("error"in $&&$.error==="recaptcha_required")$=await x4(_,{recaptcha:await m4($.siteKey)});if("error"in $)throw new o_;return W0.add($.token),u4(_,$.token),$.token}function O6(_){let $=r_.get(_)??h4(_);if($)return r_.set(_,$),Promise.resolve($);let Q=i_.get(_);if(!Q){Q=R6(_),i_.set(_,Q);let Z=Q,J=()=>{if(i_.get(_)===Z)i_.delete(_)};Z.then((Y)=>{J(),r_.set(_,Y)},(Y)=>{if(!(Y instanceof o_))J()})}return Q}function E6(_,$){let Q=r_.get(_)===$;if(Q)r_.delete(_);let Z=h4(_)===$;if(Z)u4(_,null);return Q||Z}function q0(_){if(!_.getHeaders)return O6(n_(_,"")).then((Q)=>K0({Authorization:`Bearer ${Q}`}));let $=_.getHeaders();return $ instanceof Promise?$.then(K0):Promise.resolve(K0($))}function K0(_){let $={..._},Q=A6(),Z=Object.keys($).some((J)=>J.toLowerCase()===i1.toLowerCase());if(Q&&!Z)$[i1]=Q;return $}function A6(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function n_(_,$){let Q=_.baseUrl;return(typeof Q==="string"?Q:Q()).replace(/\/$/,"")+$}function k6(_){let $=_?.match(/filename\*\s*=\s*[^']*'[^']*'([^;\r\n]+)/i)?.[1]?.trim().replace(/^"|"$/g,"");if($)try{return decodeURIComponent($)}catch{}return _?.match(/filename\s*=\s*"?([^";\r\n]+)"?/i)?.[1]}function c4(_){function $(){return q0(_())}function Q(Y){return n_(_(),Y)}function Z(Y,z){let X=_(),G=new Headers(z).get("Authorization")?.replace(/^Bearer /,"");if(X.getHeaders||G===void 0)return;if(Y.ok)W0.delete(G);if(Y.status!==401)return;let K=n_(X,""),V=E6(K,G);if(W0.delete(G))return"refused";if(V){for(let W of[...G0])if(W.visitorOf()===K)W.heard()}return"stale"}async function J(Y,z,X=!1){let G=new Headers(await $());if(new Headers(z?.headers).forEach((W,q)=>{G.set(q,W)}),z?.body instanceof FormData)G.delete("Content-Type");else if(!G.has("Content-Type"))G.set("Content-Type","application/json");let K=await fetch(Q(Y),{...z,headers:G});if(!K.ok){if(Z(K,G)==="stale"&&!X)return J(Y,z,!0);throw new B_(K.status,K.statusText)}Z(K,G);let V=await K.text();return V?JSON.parse(V):void 0}return{onVisitorReplaced(Y){let X={visitorOf:()=>{let G=_();return G.getHeaders?void 0:n_(G,"")},heard:Y};return G0.add(X),()=>{G0.delete(X)}},retrySignIn(){i_.delete(n_(_(),""))},getCapabilities(){return J("/capabilities")},listThreads(){return J("/threads")},createThread(){let Y=_().threadBody;return J("/threads",{method:"POST",...Y&&{body:JSON.stringify(Y)}})},deleteThread(Y){return J(`/threads/${Y}`,{method:"DELETE"})},listMessages(Y){return J(`/threads/${Y}/messages`)},listLlmRequests(Y,z){return J(`/threads/${Y}/messages/${z}/llm-requests`)},abortStream(Y){return J(`/chat/${Y}/abort`,{method:"POST"})},initiateToolCall(Y,z){return J(`/chat/${Y}/tools/${z}/initiate`,{method:"POST"})},uploadAttachment(Y,z){let X=new FormData;return X.append("file",z),J(`/threads/${Y}/files`,{method:"POST",body:X})},deleteAttachment(Y){return J(`/files/${Y}`,{method:"DELETE"})},async downloadAttachment(Y){let z=await $(),X=await fetch(Q(`/files/${Y}`),{headers:z});if(Z(X,z),!X.ok)throw new B_(X.status,X.statusText);return{blob:await X.blob(),name:k6(X.headers.get("Content-Disposition"))??Y}},resolveHeaders:$,resolveUrl:Q,readVisitorAnswer:Z}}var D0=30000;function B0(_){return Math.min(1000*2**(_-1),D0)}var y6=1e4;function p4(_){let $,Q,Z=0,J=!1,Y=!1;function z(){let{wsUrl:G,transport:K}=_.getConfig();if(G===!1)return;let V=S6(G,K.baseUrl);q0(K).then((W)=>{if(J)return;$=new WebSocket(I6(V,W)),$.addEventListener("open",()=>{Y=!0;let q=$;setTimeout(()=>{if($===q&&!J)Z=0},y6),_.onOpen?.()}),$.addEventListener("message",(q)=>{let B=q.data;if(typeof B!=="string")return;let D;try{D=JSON.parse(B)}catch{return}_.onEvent(D)}),$.addEventListener("close",()=>{if(!Y&&!J)_.onFailedOpen?.();Y=!1,X()})}).catch(X)}function X(){if(J||Q)return;Z+=1,Q=setTimeout(()=>{Q=void 0,z()},B0(Z))}return z(),{close(){J=!0,Y=!1,clearTimeout(Q),$?.close()},isOpen(){return Y}}}function S6(_,$){if(_)return _;let Q=typeof $==="string"?$:$(),Z=new URL(Q,window.location.origin);return Z.protocol=Z.protocol==="https:"?"wss:":"ws:",Z.pathname=Z.pathname.replace(/\/$/,"")+"/ws",Z.toString()}function I6(_,$){let Q=(z)=>Object.entries($).find(([X])=>X.toLowerCase()===z.toLowerCase())?.[1],Z=Q("Authorization"),J=Object.entries({token:Z?.startsWith("Bearer ")?Z.slice(7):void 0,operator:Q(P4),inspect:Q(L4)}).filter((z)=>Boolean(z[1]));if(J.length===0)return _;let Y=new URL(_,window.location.origin);for(let[z,X]of J)if(!Y.searchParams.has(z))Y.searchParams.set(z,X);return Y.toString()}var d4={unreachable:"translate_agent_unreachable",refused:"translate_access_refused",unverified:"translate_visitor_unverified",missing:"translate_agent_missing"};function C6(_){if(_ instanceof o_)return"unverified";let $=_ instanceof B_?_.status:void 0;if($===401)return"refused";if($===404)return"missing";return"unreachable"}function N0(_,$,Q=B0){let Z=!1,J,Y=0;function z(){_().then((X)=>{if(!Z)$.onAnswered(X)},(X)=>{if(Z)return;let G=C6(X);if($.onMissed?.(G),G==="missing")return;Y+=1,J=setTimeout(z,G==="refused"||G==="unverified"?D0:Q(Y))})}return z(),function(){Z=!0,clearTimeout(J)}}function U1(){if(typeof crypto.randomUUID==="function")return crypto.randomUUID();let _=crypto.getRandomValues(new Uint8Array(16));_[6]=_[6]&15|64,_[8]=_[8]&63|128;let $=Array.from(_,(Q)=>Q.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}var b6={type:"translate_attachment_rejected_type",size:"translate_attachment_rejected_size",name:"translate_attachment_rejected_name",count:"translate_attachment_rejected_count"};function F0(_,$){if(!_.refusal)return __($,"translate_attachment_rejected");return __($,b6[_.refusal],{types:new Intl.ListFormat($).format(p_.map((Q)=>Q.slice(Q.indexOf("/")+1).toUpperCase())),size:u1/1024/1024,count:c1})}function l4(_){let{api:$}=_,Q=new Set,Z=new Set,J=[],Y=[],z=Promise.resolve();function X(){return J}function G(N){return Q.add(N),()=>{Q.delete(N)}}function K(N){J=N;for(let P of Q)P()}function V(N,P){K(J.map((A)=>A.localId===N?{...A,...P}:A))}function W(N){if(Z.delete(N))return;V(N,{status:"error"})}async function q(N,P,A){if(Z.delete(N))return;let v;try{v=await $.uploadAttachment(P,A)}catch{W(N);return}if(Z.delete(N)){$.deleteAttachment(v.id).catch(()=>{});return}V(N,{status:"ready",attachmentId:v.id,summary:v})}function B(N){let P=[];for(let A of N){let v=D4(A),T=J.filter((z_)=>z_.status!=="error").length>=c1,l=v!=="ok"?v:T?"count":void 0,Z_=U1();if(K([...J,l?{localId:Z_,filename:A.name,status:"error",refusal:l}:{localId:Z_,filename:A.name,status:"uploading"}]),!l)P.push({localId:Z_,file:A})}if(!P.length)return;_.ensureThread().then((A)=>{for(let{localId:v,file:T}of P){if(Z.delete(v))continue;V(v,{threadId:A}),z=z.then(()=>q(v,A,T)).catch(()=>{})}},()=>{for(let{localId:A}of P)W(A)})}function D(N){let P=J.find((A)=>A.localId===N);if(!P)return;if(P.status==="uploading"){Z.add(N),K(J.filter((A)=>A.localId!==N));return}if(P.attachmentId){V(N,{status:"deleting"}),$.deleteAttachment(P.attachmentId).then(()=>K(J.filter((A)=>A.localId!==N)),()=>V(N,{status:"error"}));return}K(J.filter((A)=>A.localId!==N))}function U(N){let P=[];for(let A of J){if(A.threadId!==void 0&&A.threadId!==N){P.push(A);continue}if(A.status==="uploading")Z.add(A.localId);else if(A.status==="ready"&&A.threadId===N&&A.attachmentId)$.deleteAttachment(A.attachmentId).catch(()=>{})}if(P.length!==J.length)K(P)}function y(){let N=J.flatMap((P)=>P.status==="ready"&&P.summary?[{...P,status:"ready",summary:P.summary}]:[]);return K(J.filter((P)=>P.status!=="ready")),Y=N,N}function E(N){let P=Y;if(Y=[],P.some((A)=>A.threadId!==N))return;K([...P.map((A)=>({...A,status:"error"})),...J])}function O(){Y=[]}return{getState:X,subscribe:G,accept:B,remove:D,clear:U,consumeReady:y,restoreConsumed:E,discardConsumed:O}}function i4(_){return{uploading:_.some(($)=>$.status==="uploading"),busy:_.some(($)=>$.status==="uploading"||$.status==="deleting"),hasReady:_.some(($)=>$.status==="ready")}}import{ChatClient as h6}from"@tanstack/ai-client";import{EventType as o4}from"@tanstack/ai";import{fetchServerSentEvents as n4}from"@tanstack/ai-client";function T6(_){for(let $=_.length-1;$>=0;$-=1){let Q=_[$],Z="parts"in Q&&Q.parts.some((J)=>J.type==="tool-result"||J.type==="tool-call"&&J.state==="approval-responded");if(Q.role==="user"||Z)return _.slice($,$+1)}return _.slice(-1)}function v6(_){if(_.state==="approval-responded"){let $=_.approval?.approved;if($===void 0)return null;return{toolCallId:_.id,output:null,state:$?"approved":"denied"}}if(!o(_.state))return null;return{toolCallId:_.id,output:_.output??null,state:_.state==="error"?"error":"complete"}}function f6(_){let[$]=_;if(!$||$.role!=="assistant"||!("parts"in $))return null;let Q=$.parts.flatMap((Z)=>{let J=Z.type==="tool-call"?v6(Z):null;return J?[J]:[]});return Q.length>0?Q:null}async function w6(_){if(_.status!==409)return;let $=await _.clone().json().catch(()=>{return});return $!==null&&typeof $==="object"&&"outcome"in $&&$.outcome==="dropped"&&"reason"in $&&$.reason==="approval_pending"?"approval_pending":void 0}async function*r4(_,$,Q){for await(let Z of _){if(Z.type!==o4.MESSAGES_SNAPSHOT){yield Z;continue}let J=$.localMessages(),Y=J.findIndex((X)=>X.id===Q),z=Y===-1?[]:J.slice(Y+1).filter((X)=>X.role==="user");$.onTranscriptCarried?.(Z.timestamp??Date.now()),yield{...Z,messages:[...Z.messages,...z]}}}function a4(_){let{api:$,thread:Q}=_,Z=async()=>({headers:await $.resolveHeaders()}),J=0;async function*Y(W,q){J+=1,_.onStreamStarted?.();try{yield*W}finally{J-=1,q?.()}}function z(W,q){let B=Object.assign(async(D,U)=>{let y=await fetch(D,U).catch((N)=>{throw W("lost"),N});W(R4(y.status)),$.readVisitorAnswer(y,U?.headers);let E=new Headers(U?.headers).has("Last-Event-ID");if(q&&!E&&y.status===401)_.onMessageRefused?.();let O=await w6(y);if(O)_.onRefused?.(O);return y},fetch);return n4(()=>$.resolveUrl("/chat"),async()=>({...await Z(),fetchClient:B}))}let X=function(W,q,B,D){let U=T6(W),y=f6(U),E=y?.map((A)=>A.toolCallId),O,N=z((A)=>{if(O)return;if(O=A,E&&O==="persisted")_.onReceipt?.(E,O)},!y&&U[0]?.role==="user"),P=y?N.connect([],{...q,[H4]:y},B,D):N.connect(U,q,B,D);return Y(r4(P,_,W.at(-1)?.id),()=>{if(E&&O!=="persisted")_.onReceipt?.(E,O??"lost")})},G=n4(()=>$.resolveUrl(`/chat/${Q.id}/stream`),Z),K=[];async function*V(W,q){yield{type:o4.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:K},yield*r4(G.joinRun(W,q),_,K.at(-1)?.id)}return{connect:X,joinRun:(W,q)=>Y(V(W,q)),streaming:()=>J>0,hydrate:async()=>{let W=await j6(_);return K=W.messages,W}}}async function j6(_){let{api:$,thread:Q,mode:Z}=_,J=Q.isRunning?{runId:Q.id}:null;if(Z==="skip")return{messages:[],activeRun:J,interrupts:null};if(Z==="load")_.setLoadingMessages?.(!0);try{let z=(await $.listMessages(Q.id)).map(l1);return _.onHydrated?.(z),{messages:z,activeRun:J,interrupts:null}}finally{_.setLoadingMessages?.(!1)}}async function s4(_){if(_.isStale?.()||_.isStreaming())return;try{let $=await _.api.listMessages(_.threadId);if(_.isStale?.()||_.isStreaming())return;let Q=$.map(l1);return _.setMessages(Q),Q}catch{return}}import{EventType as g6}from"@tanstack/ai";function m6(_){return new Set(M_(_).filter(($)=>$.state!=="approval-responded").map(($)=>$.id))}function H0(_){return _.refusal==="approval_pending"?"translate_approval_pending":"translate_error"}var x6=2;function t4(_){let $=!1,Q=!1,Z=!1,J,Y,z,X,G=!1,K=!1,V,W,q=new Set,B=new Map,D=new Map,U=0,y=0,E=0,O=!1;function N(){if($)return;$=!0,_.setRunning(!0)}function P(R,S){B.get(R)?.waiters.forEach(S),B.delete(R)}function A(R,S,C=!1){for(let f of R){let m=B.get(f);if(!m)continue;if(m.failure=S,C)m.mayHaveLanded=!0}z_()}async function v(R,S,C){try{await S()}catch(f){if(C)C.failures+=1;A([R],f instanceof Error?f:Error("The answer was not sent"))}}function T(R){for(let[S,C]of B)if(!R.has(S)){if(C.mayHaveLanded)N();P(S,(f)=>f.resolve())}else if(C.failure){let{failure:f}=C;P(S,(m)=>m.reject(f))}else v(S,C.deliver)}function l(R){for(let[C,f]of D){if(R.has(C))continue;if(D.delete(C),f.mayHaveLanded)N()}let S=[...D.values()];if(S.some((C)=>C.failures>x6))return;for(let C of S)Z_(C)}function Z_(R){if(!_.answers())return O=!0,Promise.resolve();return v(R.answer.toolCallId,()=>_.deliver(R.answer),R)}async function z_(){let R=U,S=++y,C=()=>U!==R||E>S||!_.isAlive(),f=await _.refreshMessages(C).catch(()=>{return});if(!f||C())return;E=S;let m=m6(f),U_=O;if(O=!1,T(m),l(m),$||U_)J_(f)}async function i(R,S){let C;try{let U_=S({toolCallId:R.id,toolName:R.name,input:R.input},{threadId:_.threadId});if(U_===null||U_===void 0)return;C=await Promise.resolve(U_)}catch{q.delete(R.id);return}if(C===null||C===void 0)return;if(!_.isAlive())return;let m={answer:{toolCallId:R.id,tool:R.name,output:C},failures:0,mayHaveLanded:!1};D.set(R.id,m),await Z_(m)}function J_(R){let S=M_(R),C=_.onToolCall();if(!C)return S.length>0;if(!_.answers())return O||=S.length>0,S.length>0;for(let f of S){if(f.state!=="input-complete"||q.has(f.id))continue;q.add(f.id),i(f,C)}return S.length>0}async function u_(R){if(Z)_.reloadThreads().catch(()=>{});else _.setRunning(!1);if($&&!G&&J_(R()))return;if(W===void 0&&V!==void 0)return;W=void 0,await z_()}return{chunkArrived(R){if(Q=!0,R.type===g6.RUN_ERROR&&R.code!=="aborted")J={reason:R.message||void 0}},transcriptCarried(R){if(V=R,W!==void 0&&W<=R)W=void 0},transcriptUpdated(R){let S=Date.parse(R);if(V!==void 0&&S<=V)return;if(!K){z_();return}W=Math.max(W??0,S)},streamFailed(){if(Z=!0,G)return;if(Q)_.onTurnFinished();else _.onSendFailed();if(Y){if(_.setTurnFailed({reason:void 0,refusal:Y}),X!==void 0)_.returnDraft(X);return}let S=J??(X!==void 0&&!Q?{reason:void 0}:void 0);if(S)_.setTurnFailed(S)},loadingChanged(R,S){if(R){K=!0;return}if(!K)return;K=!1,_.onTurnFinished(),u_(S)},hydrated(R,S){if(S)return;setTimeout(()=>{if(_.isAlive())J_(R)},0)},deliverAnswer(R,S){return new Promise((C,f)=>{let m=[...B.get(R)?.waiters??[],{resolve:C,reject:f}];B.set(R,{deliver:S,waiters:m}),v(R,S)})},receiptArrived(R,S){if(S==="persisted"){for(let f of R)D.delete(f),P(f,(m)=>m.resolve());N();return}let C=S==="lost";for(let f of R){let m=D.get(f);if(!m)continue;m.failures+=1,m.mayHaveLanded||=C}A(R,Error(C?"The answer was lost":"Cortex refused the answer"),C)},readBack:z_,resumeAnswers(){if(O&&!K)z_()},streamStarted(){if($)_.setRunning(!0);U+=1,Z=!1,J=void 0,Y=void 0,X=z,z=void 0,V=void 0,G=!1,_.setTurnFailed(void 0)},sendStarted(R){U+=1,z=R,$=!0,Q=!1},sendRefused(R){Y=R},abortConfirmed(){G=!0}}}var M1={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1,awaitsApproval:!1,turnFailure:void 0};function e4(_){let{api:$}=_,Q=_.thread.id,Z=new Set,J=M1,Y=X(_.thread,_.mode);function z(D,U){if(Object.is(J[D],U))return;let y={...J,[D]:U};J={...y,hasPendingToolCalls:!y.isAgentWorking&&M_(y.messages).length>0,awaitsApproval:O4(y.messages)},Z.forEach((E)=>E())}function X(D,U,y){let E=!0;function O(T){return(...l)=>{if(E)T(...l)}}let N=Promise.resolve(),P=t4({threadId:Q,isAlive:()=>E,onToolCall:()=>_.getHooks()?.onToolCall,answers:_.answers,deliver:(T)=>v.addToolResult(T),setRunning:_.setRunning,reloadThreads:_.reloadThreads,refreshMessages:(T)=>{let l=N.then(()=>s4({api:$,threadId:Q,isStale:()=>!E||T(),isStreaming:A.streaming,setMessages:(Z_)=>v.setMessagesManually(Z_)}));return N=l,l},onTurnFinished:_.onTurnFinished,onSendFailed:_.onSendFailed,setTurnFailed:O((T)=>z("turnFailure",T)),returnDraft:O(_.onReturned)}),A=a4({api:$,thread:D,mode:U,localMessages:()=>v.getMessages(),onHydrated:O((T)=>P.hydrated(T,D.isRunning)),onTranscriptCarried:O((T)=>P.transcriptCarried(T)),onStreamStarted:O(()=>P.streamStarted()),onRefused:O((T)=>P.sendRefused(T)),onMessageRefused:_.onMessageRefused,onReceipt:O((T,l)=>P.receiptArrived(T,l)),setLoadingMessages:O((T)=>z("isLoadingMessages",T))}),v=new h6({threadId:Q,persistence:!0,initialMessages:y,connection:A,onChunk:O((T)=>P.chunkArrived(T)),onError:O(()=>P.streamFailed()),onMessagesChange:O((T)=>z("messages",T)),onLoadingChange:O((T)=>{z("isAgentWorking",T);let l=()=>v.getMessages();if(T){P.loadingChanged(!0,l);return}setTimeout(O(()=>{if(!v.getIsLoading())P.loadingChanged(!1,l)}))})});return v.attach(),{client:v,lifecycle:P,isAlive:()=>E,close(){E=!1,v.detach(),v.stop(),v.dispose()}}}async function G(D,U=()=>[]){if(!Y.isAlive()||J.isAgentWorking||J.awaitsApproval)return!1;let{client:y,lifecycle:E}=Y;return E.loadingChanged(!1,()=>y.getMessages()),E.sendStarted(D),await y.append({id:U1(),role:"user",parts:[{type:"text",content:D}],metadata:{createdAt:new Date().toISOString(),attachments:U()}}),!0}async function K(){let{client:D,lifecycle:U,isAlive:y}=Y;if(!y()||!D.getIsLoading())return;let{aborted:E}=await $.abortStream(Q).catch(()=>({aborted:!1}));if(!y())return;if(E)U.abortConfirmed();else D.stop()}function V(D,U,y){let{client:E,lifecycle:O,isAlive:N}=Y;if(!N())return Promise.resolve();return O.deliverAnswer(D,()=>E.addToolResult({toolCallId:D,tool:U,output:y}))}function W(D,U){let{client:y,lifecycle:E,isAlive:O}=Y;if(!O())return Promise.resolve();let N=U4(D);return E.deliverAnswer(D.id,async()=>{let P=y.getInterrupts().find((A)=>A.id===N);if(P&&"resolveInterrupt"in P)P.resolveInterrupt({approved:U});else await y.addToolApprovalResponse({id:N,approved:U})})}function q(D){if(!Y.isAlive()||D.id!==Q||Y.client.getIsLoading())return;if(!D.isRunning){Y.lifecycle.readBack();return}Y.close(),z("isLoadingMessages",!1),z("turnFailure",void 0),Y=X(D,"reload",J.messages)}function B(D){if(Y.isAlive()&&D.id===Q)Y.lifecycle.transcriptUpdated(D.updatedAt)}return{threadId:Q,getState:()=>J,subscribe:(D)=>{return Z.add(D),()=>{Z.delete(D)}},send:G,abort:K,addToolResult:V,respondToApproval:W,reattach:q,transcriptUpdated:B,resumeAnswers:()=>{if(Y.isAlive())Y.lifecycle.resumeAnswers()},dispose(){Y.close(),Z.clear()}}}function U0(_){return[..._].sort(($,Q)=>{let Z=Date.parse(Q.updatedAt)-Date.parse($.updatedAt);if(Z!==0)return Z;return Date.parse(Q.createdAt)-Date.parse($.createdAt)})}function M0(_,$){let Q=[..._],Z=Q.findIndex((J)=>J.id===$.id);if(Z===-1)Q.push($);else Q[Z]={...Q[Z],...$};return U0(Q)}function _2(_,$){return _.filter((Q)=>Q.id!==$)}function u6(_,$,Q){return _.map((Z)=>Z.id===$?{...Z,title:Q}:Z)}var c6=[0,1000,2000,3000,4000];function $2(_){let $=_.delays??c6,Q=!1,Z;function J(){let X=_.selected();return!Q&&!_.socketOpen()&&X?.id===_.threadId&&!X.title}async function Y(X){if(!J())return;let K=(await _.listThreads().catch(()=>{return}))?.find((V)=>V.id===_.threadId)?.title;if(!J())return;if(K)_.setTitle(K);else z(X+1)}function z(X){let G=$[X];if(G!==void 0)Z=setTimeout(()=>void Y(X),G)}return z(0),function(){Q=!0,clearTimeout(Z)}}function Q2(_,$){switch($.type){case"thread:deleted":return _2(_,$.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return M0(_,$.payload.thread);default:return _}}function Z2(){let _=new Map,$=new Map,Q=new Map,Z=new Set,J=0,Y=0;function z(X){if(X.type==="thread:run-started")return _.set(X.payload.thread.id,X.payload.runId),!0;if(X.type!=="thread:run-finished")return!0;let G=_.get(X.payload.thread.id);return G===void 0||G===X.payload.runId}return{admits(X){if(!z(X))return!1;if("thread"in X.payload)$.set(X.payload.thread.id,++J);if(X.type==="thread:deleted")Z.add(X.payload.threadId);return!0},running(X,G){return Q.set(X,++J),(K)=>{let V=K?.find((W)=>W.id===X);return K&&V?M0(K,{...V,isRunning:G}):K}},created(X){return $.set(X.id,++J),(G)=>M0(G??[],X)},retitled(X,G){return $.set(X,++J),(K)=>K&&u6(K,X,G)},deleted(X){return Z.add(X),(G)=>G&&_2(G,X)},async read(X){_.clear();let G=++J,K=U0(await X()),V=G<Y;Y=Math.max(Y,G);function W(q){if(V&&q)return q;let B=new Map(K.map((D)=>[D.id,D]));for(let D of q??[]){let U=B.get(D.id);if(($.get(D.id)??0)>G)B.set(D.id,D);else if(U&&(Q.get(D.id)??0)>G)B.set(D.id,{...U,isRunning:D.isRunning})}for(let D of Z)B.delete(D);return U0([...B.values()])}return{listed:K,show:W}}}}function J2(_,$){for(let Q in _)if(!Object.is(_[Q],$[Q]))return!1;return!0}function a_(_,$){let{capabilities:Q,session:Z}=_,J=i4(_.attachments);return Q!==void 0&&Q.messages!==!1&&!_.creating&&!Z.isAgentWorking&&!Z.awaitsApproval&&!J.busy&&(Boolean($.trim())||J.hasReady)}function P0(_){let{capabilities:$,unanswered:Q}=_;if(_.session.hasPendingToolCalls)return;if($===void 0)return Q&&d4[Q];if($.messages)return"composer";return $.readOnly?"translate_read_only":"translate_messages_disabled"}function L0(_){let{getConfig:$}=_,Q=c4(()=>$().transport),Z=new Set,J=Z2(),Y=l4({api:Q,ensureThread:X4}),z={threads:void 0,selected:void 0,session:M1,capabilities:void 0,unanswered:void 0,attachments:Y.getState(),creating:!1,screen:"chat",sidebarOpen:!1,debugMode:!1},X={...z,parts:Y2(z)},G="",K,V,W=0,q,B,D,U,y,E,O,N,P=[],A=!1,v={reported:X.session,debug:!1,session:X.session};Y.subscribe(()=>i({attachments:Y.getState()}));function T(){for(let F of Z)F()}function l(F){return Z.add(F),()=>{Z.delete(F)}}function Z_(F){let k=V;return k&&(F?.find((b)=>b.id===k.id)??k)}function z_(F){let k=B?.getState()??M1;if(k===v.reported&&F===v.debug)return v.session;let b=k.turnFailure,g=F||b?.reason===void 0?k:{...k,turnFailure:{...b,reason:void 0}};return v={reported:k,debug:F,session:g},g}function i(F={}){let k={...X,...F},b={...k,selected:Z_(k.threads),session:z_(Boolean(k.capabilities?.debug)),creating:q?.generation===W&&q.forMessage},g=Y2(b),r={...b,parts:J2(g,X.parts)?X.parts:g};if(J2(r,X))return;X=r,T()}function J_(F){i({threads:F(X.threads)})}function u_(F){if(F===G)return;G=F,T()}function R(F){if(F)u_(G?`${F}
3
3
  ${G}`:F)}function S(F,k=!1){let b=X.selected;J_(F);let g=X.selected;if(g){if(k||g.isRunning&&!b?.isRunning)B?.reattach(g);else if(g.updatedAt!==b?.updatedAt)B?.transcriptUpdated(g)}C()}function C(){let F=$().thread,k=!A&&F&&X.threads?.find((b)=>b.id===F);if(!k)return;A=!0,Y4(k)}async function f(F=!1){let k=U,b=await J.read(()=>Q.listThreads()).catch(()=>{return});if(!b||!U||U!==k)return!1;return S(b.show,F),!0}function m(){E?.(),i({capabilities:void 0,unanswered:void 0}),E=N0(()=>Q.getCapabilities(),{onAnswered:(F)=>{if(i({capabilities:F,unanswered:void 0,debugMode:X.debugMode&&F.debug}),F1())B?.resumeAnswers()},onMissed:(F)=>i({unanswered:F})})}function U_(){O?.();let F=V?.id;if(!F)return;O=$2({threadId:F,listThreads:()=>Q.listThreads(),selected:()=>X.selected,socketOpen:()=>U?.isOpen()??!1,setTitle:(k)=>J_(J.retitled(F,k))})}function c_(F){B?.dispose(),B=void 0,D=void 0;let k=Z_(X.threads);if(U&&k){let b=e4({api:Q,thread:k,mode:F,getHooks:()=>$().hooks,answers:F1,setRunning:(g)=>{if(g||!D)J_(J.running(k.id,g))},reloadThreads:()=>f(),onTurnFinished:()=>{if(Y.discardConsumed(),U_(),D)f().then((g)=>{D=void 0;let r=X.selected;if(g&&r?.isRunning)B?.reattach(r)})},onSendFailed:()=>Y.restoreConsumed(k.id),onReturned:R,onMessageRefused:()=>{if(K?.session!==b||B===b)return;if($().transport.getHeaders)return;R(K.text),K=void 0}});B=b,b.subscribe(()=>i())}i()}function Z4(){W+=1,Y.clear(V?.id)}function J4(){i({screen:"chat",sidebarOpen:!1})}function Y4(F){if(J4(),V?.id===F.id)return;let k=X.selected;Z4(),V=F,c_("load");let b=$().hooks;if(k)b?.onThreadDeselected?.(k);b?.onThreadSelected?.(F)}function N1(){let F=X.selected;if(Z4(),V=void 0,c_("load"),F)$().hooks?.onThreadDeselected?.(F)}function g8(){N1(),J4()}async function m8(F){if(V?.id===F)N1();await Q.deleteThread(F),J_(J.deleted(F))}function x8(){return new Promise((F)=>{if(U)F();else P.push(F)})}function X4(F=!1){if(V)return Promise.resolve(V.id);if(q?.generation===W)q={...q,forMessage:q.forMessage||F};else{let k=W,b=()=>{if(q?.generation===k)q=void 0},g=Q.createThread().then(async(r)=>{if(J_(J.created(r)),await x8(),b(),W===k)V=r,c_("skip"),$().hooks?.onThreadSelected?.(r);return r.id},(r)=>{throw b(),i(),r});q={generation:k,threadId:g,forMessage:F}}return i(),q.threadId}function h8(F){let k=G;if(!a_(X,k))return;F(k.trim()),u_(""),z4(k)}function g1(F){return R(F),{sent:!1,text:F}}async function z4(F){if(!a_(X,F))return g1(F);let k=W,b=await X4(!0).catch(()=>{return}),g=B;if(!g||g.threadId!==b||W!==k)return g1(F);let r=__(I_($().locale),"translate_attachment_caption"),G4={session:g,text:F};return K=G4,await g.send(F.trim()||r,()=>Y.consumeReady().map((r8)=>r8.summary)).finally(()=>{if(K===G4)K=void 0})?{sent:!0}:g1(F)}function u8(F){if(J.admits(F))J_((k)=>{let b=Q2(k??[],F);return k||b.length?b:k});switch(F.type){case"thread:deleted":if(V?.id===F.payload.threadId)N1();break;case"thread:run-started":if(F.payload.thread.id===V?.id&&X.session.isAgentWorking)D=F.payload.runId;B?.reattach(F.payload.thread);break;case"thread:run-finished":if(F.payload.runId===D)D=void 0;B?.transcriptUpdated(F.payload.thread);break;case"thread:messages-updated":B?.transcriptUpdated(F.payload.thread);break}}function c8(){m(),f(!0)}function p8(){N1(),x1(),m1()}function m1(){if(U)return;N=Q.onVisitorReplaced(p8);let F=!1;U=p4({getConfig:$,onEvent:u8,onOpen:()=>{if(F)c8();F=!0},onFailedOpen:()=>{if(!$().transport.getHeaders)Q.getCapabilities().catch(()=>{return})}}),y=N0(()=>J.read(()=>Q.listThreads()),{onAnswered:({show:k})=>S(k),onMissed:(k)=>{if(k!=="unreachable")J_((b)=>b??[])}}),m(),c_("load");for(let k of P.splice(0))k()}function x1(){if(!U)return;N?.(),U.close(),U=void 0,y?.(),E?.(),O?.(),c_("load")}function d8(){if($().viewMode==="full")i({sidebarOpen:!0});else i({screen:"threads"})}function l8(){if($().viewMode==="full")i({sidebarOpen:!1});else i({screen:"chat"})}function F1(){return X.capabilities?.messages===!0}function i8(F,k,b){if(!F1())return Promise.resolve();return B?.addToolResult(F,k,b)??Promise.resolve()}function n8(F,k){if(!F1())return Promise.resolve();return B?.respondToApproval(F,k)??Promise.resolve()}return{api:Q,getState:()=>X,getDraft:()=>G,subscribe:l,start:m1,stop:x1,setDraft:u_,submit:z4,sendDraft:h8,abort:()=>B?.abort()??Promise.resolve(),addToolResult:i8,respondToApproval:n8,openThread:Y4,newChat:g8,deleteThread:m8,attachFiles:Y.accept,removeAttachment:Y.remove,openHistory:d8,closeHistory:l8,toggleDebug:()=>i({debugMode:!X.debugMode}),retry:()=>{Q.retrySignIn(),x1(),m1()}}}function Y2(_){let{threads:$,selected:Q,capabilities:Z,debugMode:J}=_;return{threads:$,selected:Q,capabilities:Z,debugMode:J,isWorking:_.session.isAgentWorking}}function R0(_,$,Q,Z){let J=I_(Q.locale),Y=$.capabilities?.readOnly===!1?{newChat:_.newChat,deleteThread:(X)=>void _.deleteThread(X)}:void 0;function z(X){return{screen:X,viewMode:Q.viewMode??"helper",title:$.selected?.title??null,agentName:S_(Q.agentName,J),threadCount:$.threads?.length,isWorking:$.isWorking,debug:{shown:Boolean($.capabilities?.debug),on:$.debugMode},newChat:Y?.newChat,openHistory:_.openHistory,closeHistory:_.closeHistory,toggleDebug:_.toggleDebug}}return{chatHeader:z("chat"),threadsHeader:z("threads"),landing:{...w4($.capabilities,J,(X)=>void _.submit(X)),threads:$.threads,composer:Z,openThread:_.openThread,openHistory:_.openHistory},threadList:{threads:$.threads,selectedThreadId:$.selected?.id,openThread:_.openThread,...Y}}}var X2="allow-scripts allow-forms allow-popups";function p6(_,$){try{return _.contentWindow?.location.origin===$}catch{return!1}}function O0(_){let $=_.host.location.origin,Q=!1,Z=!1,J,Y=!1,z;function X(q){if(!Q)_.onState(q)}function G(){if(Q)return;Z=!1,X({phase:"error"})}function K(q){if(Q||Z)return;Z=!0,X({phase:"settling"});try{let B=_.submit(q);if(B instanceof Promise)B.catch(G)}catch{G()}}function V(q){if(!J)return;if(z===void 0||q.source!==z)return;let B=V4(q.data,q.origin,J);if(!B)return;K({status:B.status,reference:B.reference,result:B.result})}function W(){if(Q||Z)return;J=void 0,z=void 0,X({phase:"error"})}return _.host.addEventListener("message",V),{async start(){X({phase:"initiating"});try{let q=await _.initiate(),B=new URL(q.embedUrl);if(!/^https?:$/.test(B.protocol)){X({phase:"error"});return}let D=B.origin===$;Y=D&&_.trustSameOrigin===!0,J=q.embedOrigin,X({phase:"embedded",embedUrl:q.embedUrl,surface:q.surface,sandbox:D&&!Y?X2:`${X2} allow-same-origin`})}catch(q){let B=q instanceof B_&&q.status===404;X({phase:B?"unavailable":"error"})}},setSource(q){if(q!==null&&q!==void 0)z=q},frameLoaded(q){if(!Y&&p6(q,$))W()},cancel(){K({status:"cancelled"})},dispose(){Q=!0,_.host.removeEventListener("message",V)}}}async function s_(_,$){let Q=await import("leaflet"),Z=!$.interactive,J=Q.map(_,{center:$.center,zoom:$.zoom,zoomControl:!Z,dragging:!Z,scrollWheelZoom:!Z,doubleClickZoom:!Z,touchZoom:!Z,boxZoom:!Z,keyboard:!Z});Q.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(J);let Y=new ResizeObserver(()=>J.invalidateSize());return Y.observe(_),{leaflet:Q,map:J,dispose(){Y.disconnect(),J.remove()}}}var P1={position:void 0,locating:!1,locateFailed:!1,mapFailed:!1,submitting:!1,deliveryFailed:!1},d6={center:{lat:20,lng:0},zoom:2},l6=13,G2=16,i6=1e4;function E0(_,$){let Q=P1,Z=!1,J=!1,Y,z,X,G=0;function K(B){if(Q={...Q,...B},!Z)$.onState(Q)}function V(){let B=Q.position;if(!Y||!B)return;let{leaflet:D,map:U}=Y;if(z)z.setLatLng(B);else{let y=D.marker(B,{draggable:!Q.submitting}).addTo(U);y.on("dragend",()=>{let{lat:E,lng:O}=y.getLatLng();W({lat:E,lng:z2(O)})}),z=y}X?.remove(),X=B.accuracy?D.circle(B,{radius:B.accuracy}).addTo(U):void 0}function W(B){if(Q.submitting)return;G+=1,K({position:B,locating:!1,locateFailed:!1}),V()}function q(B){if(Z||J)return;J=!0,G+=1,z?.dragging?.disable(),K({submitting:!0,locating:!1,deliveryFailed:!1});let D=()=>{J=!1,z?.dragging?.enable(),K({submitting:!1,deliveryFailed:!0})};try{let U=$.submit(B);if(U instanceof Promise)U.catch(D)}catch{D()}}return{async start(){let B=$.center?{center:$.center,zoom:l6}:d6,D;try{D=await s_(_,{...B,interactive:!0})}catch{K({mapFailed:!0});return}if(Z){D.dispose();return}Y=D,D.map.on("click",(U)=>W({lat:U.latlng.lat,lng:z2(U.latlng.lng)})),V()},locate(){if(Q.locating||Q.submitting)return;if(!navigator.geolocation){K({locateFailed:!0});return}G+=1;let B=G;K({locating:!0,locateFailed:!1}),navigator.geolocation.getCurrentPosition(({coords:D})=>{if(Z||B!==G)return;let U={lat:D.latitude,lng:D.longitude,accuracy:Math.round(D.accuracy)};W(U),Y?.map.setView(U,G2)},()=>{if(B===G)K({locating:!1,locateFailed:!0})},{enableHighAccuracy:!0,timeout:i6})},confirm(){if(Q.position)q({status:"completed",result:Q.position})},cancel(){q({status:"cancelled"})},dispose(){Z=!0,Y?.dispose()}}}function A0(_,$,Q){let Z=!1,J;return s_(_,{center:$,zoom:G2,interactive:!1}).then((Y)=>{if(Z){Y.dispose();return}J=Y.dispose,Y.leaflet.marker($).addTo(Y.map)},()=>{if(!Z)Q()}),()=>{Z=!0,J?.()}}function z2(_){if(_>=-180&&_<=180)return _;return((_+180)%360+360)%360-180}function K2(_){if(!_||typeof _!=="object")return!1;let{lat:$,lng:Q}=_;return typeof $==="number"&&typeof Q==="number"&&Math.abs($)<=90&&Math.abs(Q)<=180}function k0(_){let $=_&&typeof _==="object"?_.center:void 0;return K2($)?$:void 0}function y0(_){if(!_||typeof _!=="object")return;let{status:$,result:Q}=_;if($!=="completed"||!K2(Q))return;let{accuracy:Z}=Q;return{...Q,...typeof Z==="number"?{accuracy:Z}:{}}}function L1(_){let $=`${_.lat.toFixed(4)}, ${_.lng.toFixed(4)}`;return _.accuracy?`${$} ±${_.accuracy} m`:$}function S0(_){if(_.locating)return{key:"translate_location_locating",failed:!1};if(_.deliveryFailed)return{key:"translate_location_send_failed",failed:!0};if(_.locateFailed)return{key:"translate_location_locate_failed",failed:!0};if(_.mapFailed)return{key:"translate_location_map_failed",failed:!0};return{key:"translate_location_hint",failed:!1}}import{marked as n6}from"marked";import r6 from"dompurify";function t_(_,$=[]){if(!_)return"";let Q=document.createElement("template");if(Q.innerHTML=n6.parse(_,{async:!1}).replace(/<table>/g,'<div style="overflow-x:auto"><table style="width:max-content">').replace(/<\/table>/g,"</table></div>").replace(/<(t[hd])([\s>])/g,'<$1 style="padding:0.5rem 1rem"$2'),a6(Q.content),$.length)s6(Q.content,$);return r6.sanitize(Q.innerHTML,{FORBID_TAGS:["img","picture","source"]})}var o6=/[\p{Script=Arabic}\p{Script=Hebrew}]/u;function a6(_){for(let $ of Array.from(_.children))if($.localName!=="div")$.setAttribute("dir","auto");_.querySelectorAll("table").forEach(($)=>{let Q=/\p{L}/u.exec($.textContent??"")?.[0];if(!Q)return;let Z=o6.test(Q)?"rtl":"ltr";if($.setAttribute("dir",Z),$.parentElement?.childElementCount===1)$.parentElement.setAttribute("dir",Z)}),_.querySelectorAll("th, td").forEach(($)=>$.setAttribute("dir","auto")),_.querySelectorAll("pre").forEach(($)=>$.setAttribute("dir","ltr"))}function s6(_,$){let Q=[...$].sort((Y,z)=>Y.length-z.length),Z=Q[Q.length-1]?.length??0,J=0;for(let Y of t6(_)){if(J>=Z)break;Y.replaceWith(...e6(Y.data,J,Q)),J+=Y.data.length}}function t6(_){let $=document.createTreeWalker(_,4),Q=[];for(let Z=$.nextNode();Z;Z=$.nextNode())if(Z.data.trim())Q.push(Z);return Q.reverse()}function e6(_,$,Q){let Z=[],J=_.length;for(let Y of Q){if(Y.length<=$)continue;if(J<=0)break;let z=Math.min(J,Y.length-$);if(z<J&&/[\uDC00-\uDFFF]/.test(_.charAt(J-z)))z+=1;let X=document.createElement("span");X.className="cortex-stream-fade",X.style.animationDelay=`-${Y.age}ms`,X.textContent=_.slice(J-z,J),Z.unshift(X),J-=z,$+=z}if(J>0)Z.unshift(document.createTextNode(_.slice(0,J)));return Z}import{marked as D2}from"marked";var V2=/^ {0,3}(`{3,}|~{3,})(.*)$/;function W2(){let _=null;return($)=>{let Q=V2.exec($),Z=Q?.[1],J=Q?.[2]??"";if(Z){let Y=Z.charAt(0);if(_){if(Y===_.marker&&Z.length>=_.length&&J.trim()==="")return _=null,"close";return"inside"}if(Y==="`"&&J.includes("`"))return"outside";return _={marker:Y,length:Z.length},"open"}return _?"inside":"outside"}}function q2(_){return V2.exec(_)?.[2]?.trim().split(/\s+/)[0]??""}var _$=/^\s*!\[([^\]]*)\]\(attachment#([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)\s*$/i;function I0(_,$){if($.role!=="assistant")return[{kind:"markdown",text:_}];return $$(_,$.languages).map((Q)=>{switch(Q.kind){case"table":return{...Q,closed:Q.closed||!$.arriving};case"attachment":return{...Q,attachment:$.attachments?.find((Z)=>Z.id.toLowerCase()===Q.id)};default:return Q}})}function $$(_,$){let Q=[],Z=[],J=null;function Y(K=!1){if(Z.length)Q.push(...Z$(Z.join(`
4
4
  `),K));Z=[]}function z(K){if(J)Q.push({kind:"media",...J,source:J.source.join(`
5
5
  `),closed:K});J=null}let X=W2(),G=_.split(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m6d/cortex-react",
3
- "version": "0.15.0",
3
+ "version": "0.15.1",
4
4
  "description": "React chat widget for Cortex agents",
5
5
  "license": "MIT",
6
6
  "sideEffects": [