@m6d/cortex-react 0.16.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.js +11 -11
- package/dist/styles.css +68 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ export function Chat() {
|
|
|
22
22
|
}
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
`baseUrl` is the agent's URL: the engine's public origin (`ENGINE_PUBLIC_URL`) plus `/agents/<agent name>`. Add the page's origin to `ENGINE_CORS_ORIGINS`, or proxy the engine under your own origin as the samples do. The WebSocket URL is `baseUrl` plus `/ws`; set `wsUrl` only to override it, and point it at that same agent-scoped path. The bearer is the end user's token, which Cortex verifies the way the agent's auth says: a JWKS, a shared secret, or the agent's server. For an anonymous agent, leave `getHeaders` out: the widget signs in as a visitor, and Cortex gives the browser an ID it keeps in local storage. When the agent checks visitors with reCAPTCHA Enterprise, the widget loads Google's script with the agent's site key and runs the check invisibly. The widget hides the badge Google draws for the agent's site key, and Google's terms then ask your page to show its reCAPTCHA attribution. A badge your page draws for its own key stays.
|
|
25
|
+
`baseUrl` is the agent's URL: the engine's public origin (`ENGINE_PUBLIC_URL`) plus `/agents/<agent name>`. Add the page's origin to `ENGINE_CORS_ORIGINS`, or proxy the engine under your own origin as the samples do. Connecting an end user's account to an MCP server (the widget's connect card) posts from the page to the engine itself, so list the page's origin there even behind a proxy, and give the page a `Referrer-Policy` other than `no-referrer`, which sends no origin. The WebSocket URL is `baseUrl` plus `/ws`; set `wsUrl` only to override it, and point it at that same agent-scoped path. The bearer is the end user's token, which Cortex verifies the way the agent's auth says: a JWKS, a shared secret, or the agent's server. For an anonymous agent, leave `getHeaders` out: the widget signs in as a visitor, and Cortex gives the browser an ID it keeps in local storage. When the agent checks visitors with reCAPTCHA Enterprise, the widget loads Google's script with the agent's site key and runs the check invisibly. The widget hides the badge Google draws for the agent's site key, and Google's terms then ask your page to show its reCAPTCHA attribution. A badge your page draws for its own key stays.
|
|
26
26
|
|
|
27
27
|
Each widget is self-contained, so one page can render several widgets with different configs. `className` sizes the widget's root element.
|
|
28
28
|
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import{useEffect as
|
|
2
|
-
`)}]:[]}):[],r=e;if(t){let o=Object.fromEntries(Object.entries(t).filter(([a])=>!Object.hasOwn(Cr,a)));r=Object.keys(o).length>0?o:null}return{codeSnippets:n,remainingInput:r,remainingInputText:r?JSON.stringify(r,null,2):""}}var rs=10,os={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function as(e){let t=e.output;if(typeof t==="string")try{t=JSON.parse(t)}catch{return}if(!t||typeof t!=="object")return;if("error"in t&&t.error===!0)return"failed";if(!jt(e)?.embed||!("status"in t))return;let n=t.status;return n==="failed"||n==="cancelled"?n:void 0}function ss(e){let t=e.output;if(!t||typeof t!=="object"||!("rowCount"in t))return;let n=t.rowCount;return typeof n==="number"?n:void 0}function is(e,t,n){if(n==="declined")return"translate_declined";if(n==="cancelled")return"translate_tool_cancelled";if(t==="error")return"translate_tool_error";if(t==="approval")return"translate_needs_approval";return`translate_${e.name==="readAttachment"?"attachment":"tool"}_${t==="complete"?"done":"status"}`}function je(e){let t=e.approval?.approved===!1?"declined":e.state==="complete"?as(e):void 0,n=t?"error":os[e.state]??"processing";return{state:n,active:n==="starting"||n==="processing",gated:xr(e),titleKey:is(e,n,t),statement:fr.some((r)=>r===e.name)?$t(e.input,"status"):void 0,rows:n==="complete"?ss(e):void 0}}function Jt(e){let t=e.approval?.approved,{state:n,active:r}=je(e),o=t===void 0?e.state==="approval-requested"?"pending":"cancelled":!t?"declined":n==="error"?"failed":"approved";return{title:gr(e.input),fallbackKey:"translate_approval_action",fallbackParams:{tool:cs(e.name)},decision:o,decisionKey:ls[o],state:n,active:r}}var ls={pending:void 0,approved:"translate_approved",declined:"translate_declined",failed:"translate_approved_failed",cancelled:"translate_approval_cancelled"};function cs(e){let t=e.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return t.charAt(0).toUpperCase()+t.slice(1)}function Xt(e){return Array.from({length:rs},(t,n)=>`translate_${e}_${n}`)}function ze(e,t){return e.filter((n,r)=>{if(n.type==="tool-result")return!1;if(t.debugMode)return!0;if(n.type==="text"&&!n.content.trim())return!1;let o=r===e.length-1;return n.type!=="thinking"||t.isStreaming&&o})}var ds=[_t];function kr(e){return ds.find((t)=>t===e)}function Sr(e,t){let{consumerTools:n,capabilities:r}=t;if(r?.messages!==!0&&!X(e.state))return;return n&&Object.hasOwn(n,e.name)?n[e.name]:void 0}function Mr(e,t){if(Sr(e,t))return!1;return!kr(e.name)||!X(e.state)}function Zt(e,t){let n=je(e),r=t.capabilities?.messages===!0&&!t.agentWorking;if(e.state==="approval-requested"&&r)return{kind:"approval",asking:!0};if(t.debugMode)return{kind:"debug"};let o=Sr(e,t);if(o)return{kind:"consumer",component:o};let a=e.state==="input-complete"&&r,i=a||X(e.state)?kr(e.name):void 0;if(i)return{kind:"builtIn",component:t.builtInTools[i]};if(a&&!t.embedUnavailable&&jt(e)?.embed)return{kind:"embed"};if(e.name==="executeCode"&&!X(e.state)&&!n.statement)return{kind:"activity",activity:"code"};if(n.gated)return{kind:"approval",asking:!1};return{kind:"pill"}}function Yt(e){let t=e.approval?.id;switch(e.state){case"complete":return{kind:"output",text:wr(e)};case"error":return{kind:"error",text:wr(e)};case"approval-requested":return{kind:"approval",approvalId:t,labelKey:"translate_approval_requested",messageKey:"translate_waiting_for_approval"};case"approval-responded":return{kind:"approval",approvalId:t,labelKey:"translate_approval_response",messageKey:e.approval?.approved?"translate_tool_approved":"translate_tool_response_received"};default:return}}var Qt=new WeakMap;function en(e,t){let n=e.closest(".cortex-widget__screen"),r=n?.querySelector(".cortex-message-list");if(!n||!r||!e.value.trim())return;let o=getComputedStyle(e),a=e.getBoundingClientRect(),i=(s)=>parseFloat(o[`padding${s}`])+parseFloat(o[`border${s}Width`]);Qt.set(n,{text:t,textarea:e,from:new DOMRect(a.left+i("Left"),a.top+i("Top"),a.width-i("Left")-i("Right"),a.height-i("Top")-i("Bottom")),rtl:o.direction==="rtl",scrollTop:r.scrollTop})}function us(e,t){let n=e.closest(".cortex-widget__screen"),r=n?Qt.get(n):void 0;if(!n||!r)return;Qt.delete(n);let o=e.querySelectorAll(":scope > .cortex-message"),a=o[o.length-1]?.querySelector(".cortex-text-bubble--user"),i=e.closest(".cortex-message-list");if(!a||!i||r.text!==t||!r.textarea.isConnected)return;a.closest(".cortex-message-part")?.getAnimations().forEach((C)=>C.finish()),Lr(i);let s=a.getBoundingClientRect(),l=n.getBoundingClientRect(),c=getComputedStyle(a),d=parseFloat(c.paddingTop)+parseFloat(c.borderTopWidth),u=r.rtl?parseFloat(c.paddingRight)+parseFloat(c.borderRightWidth):parseFloat(c.paddingLeft)+parseFloat(c.borderLeftWidth),p=r.rtl?r.from.right+u-s.width:r.from.left-u,f=i.scrollTop-r.scrollTop;if(f)e.style.setProperty("--cortex-slide",`${f}px`),e.classList.remove("cortex-message-list__content--settling"),e.offsetWidth,e.classList.add("cortex-message-list__content--settling"),e.getAnimations()[0]?.finished.then(()=>e.classList.remove("cortex-message-list__content--settling"),()=>{return});let m=a.cloneNode(!0);m.classList.add("cortex-send-flight"),m.setAttribute("aria-hidden","true"),Object.assign(m.style,{left:`${s.left-l.left}px`,top:`${s.top-l.top}px`,width:`${s.width}px`}),m.style.setProperty("--cortex-fly-x",`${p-s.left}px`),m.style.setProperty("--cortex-fly-y",`${r.from.top-d-s.top}px`),a.style.visibility="hidden",n.append(m);let x=i.scrollTop,M=()=>{m.style.top=`${s.top-l.top-(i.scrollTop-x)}px`};i.addEventListener("scroll",M,{passive:!0}),Er(m).then(()=>{i.removeEventListener("scroll",M),a.style.visibility="",m.remove()})}function Lr(e){e.scrollTop=Ar(e)}var ps=100;function tn(e,t){let n=!0,r=!0,o=!1,a=0,i;function s(){if(o)return;o=!0,queueMicrotask(()=>{o=!1,Lr(e),r=!0,n=!1})}function l(){r=Ar(e)-e.scrollTop<ps}let c=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([d])=>{let u=d?.contentRect.height??0,p=u>a;if(a=u,p&&(n||r))s()});return c?.observe(t),e.addEventListener("scroll",l,{passive:!0}),s(),{pin(){n=!0},messagesChanged(d){if(d?.role==="user"&&d.id!==i){i=d.id,n=!0;let u=d.parts.find((p)=>p.type==="text")?.content;if(u!==void 0)us(t,u)}if(n)s()},dispose(){c?.disconnect(),e.removeEventListener("scroll",l)}}}function Ar(e){let t=e.querySelector(".cortex-message-list__content");if(!t)return e.scrollHeight-e.clientHeight;let n=getComputedStyle(e);return t.offsetHeight+parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)-e.clientHeight}function nn(e){let t=!1,n=e.parentElement,r=typeof ResizeObserver>"u"?void 0:new ResizeObserver(()=>{if(t)o()});r?.observe(n);function o(){let a=n.querySelector(":scope > .cortex-working-thinking, :scope > .cortex-message > .cortex-message-parts > [data-cortex-frontier]");if(!a)return!1;return e.style.setProperty("--cortex-avatar-y",`${ms(a,n)-e.offsetHeight/2}px`),!0}return{sync(a){if(a===t){if(a)o();return}if(a){if(!o())return;e.classList.remove("cortex-working-avatar--leaving"),e.offsetWidth,e.classList.add("cortex-working-avatar--shown"),t=!0;return}t=!1;let[,i="0px"]=getComputedStyle(e).translate.split(" ");e.style.setProperty("--cortex-avatar-y",i),e.classList.add("cortex-working-avatar--leaving"),Er(e,!0).then(()=>{if(t)return;e.classList.remove("cortex-working-avatar--shown","cortex-working-avatar--leaving")})},dispose(){r?.disconnect()}}}function ms(e,t){let n=e.querySelector(".cortex-text-bubble");if(!n)return Nr(e,t)+e.offsetHeight/2;let r=getComputedStyle(n);return Nr(n,t)+parseFloat(r.paddingTop)+parseFloat(r.borderTopWidth)+parseFloat(r.lineHeight)/2}function Nr(e,t){let n=0;for(let r=e;r instanceof HTMLElement&&r!==t;)n+=r.offsetTop,r=r.offsetParent;return n}function Er(e,t=!1){return Promise.allSettled(e.getAnimations({subtree:t}).map((n)=>n.finished))}function rn(e,t){let n=0,r,o;function a(){r=setTimeout(()=>{t({index:n,phase:"exiting"}),r=setTimeout(()=>{n=(n+1)%e,t({index:n,phase:"enter-start"}),o=requestAnimationFrame(()=>{t({index:n,phase:"entering"}),r=setTimeout(()=>{t({index:n,phase:"idle"}),a()},300)})},300)},2000)}return a(),()=>{if(clearTimeout(r),o!==void 0)cancelAnimationFrame(o)}}function on(e,t){function n(){t.sendDraft((l)=>en(e,l))}function r(l){if(l.key!=="Enter"||l.shiftKey)return;l.preventDefault(),n()}function o(){e.style.overflowY="hidden",e.style.height="0px",e.style.height=`${e.scrollHeight+1}px`,e.style.overflowY=""}let a=0,i=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([l])=>{let c=l?.borderBoxSize[0]?.inlineSize??0;if(c===a)return;a=c,requestAnimationFrame(o)});function s(){e.removeEventListener("keydown",r),i?.disconnect()}return e.style.transition="none",e.addEventListener("keydown",r),i?.observe(e,{box:"border-box"}),{send:n,fit:o,dispose:s}}function an(e){return{onDragOver:(t)=>{if(t.preventDefault(),e.enabled)e.setDragging(!0)},onDragLeave:(t)=>{if(!t.currentTarget?.contains(t.relatedTarget))e.setDragging(!1)},onDrop:(t)=>{if(t.preventDefault(),e.setDragging(!1),e.enabled)e.accept([...t.dataTransfer?.files??[]])},onPaste:(t)=>{let n=[...t.clipboardData?.files??[]];if(!e.enabled||!n.length)return;t.preventDefault(),e.accept(n)}}}var Rr={translate_history:"السجل",translate_back:"رجوع",translate_greeting:"بماذا يمكنني مساعدتك اليوم؟",translate_conversations:{zero:"لا محادثات",one:"محادثة واحدة",two:"محادثتان",few:"{{count}} محادثات",many:"{{count}} محادثة",other:"{{count}} محادثة"},translate_no_threads_yet:"لا توجد محادثات بعد",translate_start_a_new_conversation:"ابدأ محادثة جديدة",translate_untitled:"بدون عنوان",translate_new_chat:"محادثة جديدة",translate_normal:"عادي",translate_debug:"تصحيح",translate_type_a_message:"اكتب رسالة...",translate_completed:"مكتمل",translate_attach_files:"إرفاق ملفات",translate_drop_files_here:"أفلت ملفاتك هنا...",translate_remove_attachment:"إزالة المرفق",translate_attachment_rejected:"لا يمكن إرفاق هذا الملف",translate_attachment_rejected_type:"يمكن إرفاق ملفات {{types}} فقط",translate_attachment_rejected_size:"الحد الأقصى لحجم الملف {{size}} ميغابايت",translate_attachment_rejected_name:"اسم الملف طويل جدًا",translate_attachment_rejected_count:{zero:"لا يمكن إرفاق ملفات بالرسالة",one:"يمكن إرفاق ملف واحد كحد أقصى لكل رسالة",two:"يمكن إرفاق ملفين كحد أقصى لكل رسالة",few:"يمكن إرفاق {{count}} ملفات كحد أقصى لكل رسالة",many:"يمكن إرفاق {{count}} ملفًا كحد أقصى لكل رسالة",other:"يمكن إرفاق {{count}} ملف كحد أقصى لكل رسالة"},translate_attachment_caption:"من فضلك اطّلع على الملفات المرفقة.",translate_download:"تنزيل",translate_tool_status:"جارٍ تنفيذ خطوة…",translate_tool_done:"اكتملت الخطوة",translate_tool_cancelled:"أُلغيت الخطوة",translate_rows:{zero:"لا صفوف",one:"صف واحد",two:"صفان",few:"{{count}} صفوف",many:"{{count}} صفًا",other:"{{count}} صف"},translate_more_steps:{zero:"ولا خطوات أخرى",one:"وخطوة أخرى",two:"وخطوتان أخريان",few:"و{{count}} خطوات أخرى",many:"و{{count}} خطوة أخرى",other:"و{{count}} خطوة أخرى"},translate_tool_error:"حدث خطأ",translate_attachment_status:"جارٍ قراءة الملف المرفق…",translate_attachment_done:"تمت قراءة الملف المرفق",translate_code_0:"جارٍ حساب الأرقام...",translate_code_1:"جارٍ معالجة البيانات...",translate_code_2:"جارٍ تنفيذ طلبك...",translate_code_3:"جارٍ تحليل الأرقام...",translate_code_4:"جارٍ تجميع كل شيء...",translate_code_5:"جارٍ تحليل النتائج...",translate_code_6:"جارٍ العمل خلف الكواليس...",translate_code_7:"جارٍ ترتيب التفاصيل...",translate_code_8:"جارٍ تحضير إجابتك...",translate_code_9:"أوشك على الانتهاء...",translate_reasoning_0:"جارٍ التفكير...",translate_reasoning_1:"جارٍ دراسة الخيارات...",translate_reasoning_2:"جارٍ تقييم الاحتمالات...",translate_reasoning_3:"جارٍ التأمل في هذا...",translate_reasoning_4:"جارٍ إيجاد الحل...",translate_reasoning_5:"جارٍ ترتيب الأفكار...",translate_reasoning_6:"جارٍ التمعن في الأمر...",translate_reasoning_7:"جارٍ إيجاد أفضل طريقة...",translate_reasoning_8:"جارٍ تنظيم أفكاري...",translate_reasoning_9:"أوشك على الانتهاء...",translate_running:"قيد التنفيذ",translate_aborted:"تم الإلغاء",translate_input:"المدخلات",translate_output:"المخرجات",translate_calling:"جارٍ الاستدعاء",translate_input_ready:"المدخلات جاهزة",translate_needs_approval:"بحاجة إلى موافقة",translate_approved:"تمت الموافقة",translate_responded:"تم الرد",translate_declined:"تم الرفض",translate_approve:"موافقة",translate_deny:"رفض",translate_error:"خطأ",translate_approval_pending:"وافق على الطلب أعلاه أو ارفضه أولًا.",translate_approval_requested:"طلب موافقة",translate_approval_response:"رد الموافقة",translate_waiting_for_approval:"في انتظار الموافقة لتنفيذ هذه الأداة.",translate_tool_approved:"تمت الموافقة.",translate_tool_response_received:"تم استلام الرد.",translate_tokens:"رمز",translate_fresh:"جديد",translate_cache_read:"قراءة من الذاكرة",translate_cache_write:"كتابة في الذاكرة",translate_n_percent_cached:"{{percent}}٪ مخزّن مؤقتًا",translate_text:"نص",translate_reasoning:"الاستنتاج",translate_read:"قراءة",translate_write:"كتابة",translate_total:"الإجمالي",translate_request:"الطلب",translate_response:"الرد",translate_step_n:"الخطوة {{number}}",translate_inspect_llm_requests:"فحص طلبات النموذج",translate_loading:"جارٍ التحميل…",translate_no_llm_requests:"لا توجد طلبات نموذج مسجّلة لهذه الرسالة.",translate_unhandled_type:"نوع غير مدعوم:",translate_client_tool_title:"أكمل هذه الخطوة للمتابعة",translate_client_tool_loading:"جارٍ تجهيز خطوة آمنة...",translate_client_tool_failed:"تعذّر تحميل هذه الخطوة",translate_client_tool_retry:"حاول مرة أخرى",translate_client_tool_cancel:"إلغاء",translate_location_hint:"انقر على الخريطة لتثبيت الدبوس",translate_location_locate:"استخدم موقعي",translate_location_locating:"جارٍ تحديد موقعك",translate_location_locate_failed:"موقعك غير متاح",translate_location_map_failed:"تعذّر تحميل الخريطة",translate_location_send_failed:"تعذّر الإرسال، حاول مرة أخرى",translate_location_skip:"ليس الآن",translate_location_send:"إرسال",translate_location_shared:"تمت مشاركة الموقع",translate_location_not_shared:"لم تتم مشاركة الموقع",translate_trigger_fired:"تم التشغيل بواسطة",translate_trigger_payload:"الحمولة",translate_messages_disabled:"يعمل هذا الوكيل من مشغّلاته فقط.",translate_read_only:"أنت تطّلع على هذه المحادثة. لا يمكن إرسال شيء من هنا.",translate_access_refused:"لم يقبل هذا الوكيل تسجيل دخولك.",translate_visitor_unverified:"لم نتمكن من التأكد من أنك شخص حقيقي.",translate_agent_unreachable:"تعذّر الوصول إلى هذا الوكيل الآن. نعيد المحاولة...",translate_agent_missing:"هذا الوكيل غير متاح.",translate_streaming:"جارٍ البث",translate_done:"تم",translate_no_reasoning:"لا يوجد تفكير مسجّل.",translate_copy:"نسخ إلى الحافظة",translate_copied:"تم النسخ",translate_media_pending_mermaid:"جارٍ رسم المخطط",translate_media_pending_vega_lite:"جارٍ رسم الرسم البياني",translate_media_pending_map:"جارٍ رسم الخريطة",translate_media_pending_report:"جارٍ كتابة التقرير",translate_media_cut_off:"انقطع هذا المقطع قبل اكتماله.",translate_media_failed:"تعذر عرض هذا المقطع.",translate_media_source:"المصدر",translate_media_pending:"جارٍ الرسم",translate_media_mermaid:"مخطط",translate_media_vega_lite:"رسم بياني",translate_media_map:"خريطة",translate_media_report:"تقرير",translate_media:"معاينة",translate_image_unavailable:"الصورة غير متاحة",translate_image_unavailable_alt:"الصورة غير متاحة: {{alt}}",translate_image:"صورة",translate_send:"إرسال",translate_stop:"إيقاف",translate_delete_conversation:"حذف المحادثة",translate_table:"جدول",translate_expand:"توسيع {{name}}",translate_table_export:"تصدير إلى Excel",translate_close:"إغلاق",translate_approval_needed:"بحاجة إلى موافقتك",translate_approval_action:"تنفيذ {{tool}}",translate_approved_failed:"تمت الموافقة لكنه فشل",translate_approval_cancelled:"لم يُتخذ قرار"};var Ir={translate_history:"History",translate_back:"Back",translate_greeting:"What can I help you with today?",translate_conversations:{one:"1 conversation",other:"{{count}} conversations"},translate_no_threads_yet:"No threads yet",translate_start_a_new_conversation:"Start a new conversation",translate_untitled:"Untitled",translate_new_chat:"New Chat",translate_normal:"Normal",translate_debug:"Debug",translate_type_a_message:"Type a message...",translate_completed:"Completed",translate_attach_files:"Attach files",translate_drop_files_here:"Drop your files here...",translate_remove_attachment:"Remove attachment",translate_attachment_rejected:"This file cannot be attached",translate_attachment_rejected_type:"Only {{types}} files can be attached",translate_attachment_rejected_size:"Files can be up to {{size}} MB",translate_attachment_rejected_name:"The file name is too long",translate_attachment_rejected_count:{one:"Up to 1 file per message",other:"Up to {{count}} files per message"},translate_attachment_caption:"Please take a look at the attached files.",translate_download:"Download",translate_tool_status:"Running a step...",translate_tool_done:"Step completed",translate_tool_cancelled:"Step cancelled",translate_rows:{one:"1 row",other:"{{count}} rows"},translate_more_steps:{one:"and 1 more step",other:"and {{count}} more steps"},translate_tool_error:"Something went wrong",translate_attachment_status:"Reading the attached file...",translate_attachment_done:"Finished reading the file",translate_code_0:"Running the numbers...",translate_code_1:"Working through the data...",translate_code_2:"Processing your request...",translate_code_3:"Crunching the figures...",translate_code_4:"Putting it all together...",translate_code_5:"Analyzing the results...",translate_code_6:"Working behind the scenes...",translate_code_7:"Sorting through the details...",translate_code_8:"Preparing your answer...",translate_code_9:"Almost ready...",translate_reasoning_0:"Thinking it through...",translate_reasoning_1:"Considering the options...",translate_reasoning_2:"Weighing the possibilities...",translate_reasoning_3:"Reflecting on this...",translate_reasoning_4:"Working it out...",translate_reasoning_5:"Putting thoughts together...",translate_reasoning_6:"Mulling it over...",translate_reasoning_7:"Finding the best approach...",translate_reasoning_8:"Organizing my thoughts...",translate_reasoning_9:"Almost there...",translate_running:"Running",translate_aborted:"Aborted",translate_input:"Input",translate_output:"Output",translate_calling:"Calling",translate_input_ready:"Input ready",translate_needs_approval:"Needs approval",translate_approved:"Approved",translate_responded:"Responded",translate_declined:"Declined",translate_approve:"Approve",translate_deny:"Deny",translate_error:"Error",translate_approval_pending:"Approve or deny the request above first.",translate_approval_requested:"Approval requested",translate_approval_response:"Approval response",translate_waiting_for_approval:"Waiting for approval to execute this tool.",translate_tool_approved:"Approved.",translate_tool_response_received:"Response received.",translate_tokens:"tokens",translate_fresh:"Fresh",translate_cache_read:"Cache read",translate_cache_write:"Cache write",translate_n_percent_cached:"{{percent}}% cached",translate_text:"Text",translate_reasoning:"Reasoning",translate_read:"Read",translate_write:"Write",translate_total:"Total",translate_request:"Request",translate_response:"Response",translate_step_n:"Step {{number}}",translate_inspect_llm_requests:"Inspect LLM requests",translate_loading:"loading…",translate_no_llm_requests:"No LLM requests recorded for this message.",translate_unhandled_type:"Unhandled type:",translate_client_tool_title:"Complete this step to continue",translate_client_tool_loading:"Preparing a secure step...",translate_client_tool_failed:"This step could not be loaded",translate_client_tool_retry:"Try again",translate_client_tool_cancel:"Cancel",translate_location_hint:"Tap the map to drop a pin",translate_location_locate:"Use my location",translate_location_locating:"Finding your location",translate_location_locate_failed:"Your location is not available",translate_location_map_failed:"The map could not be loaded",translate_location_send_failed:"Could not send, try again",translate_location_skip:"Not now",translate_location_send:"Send",translate_location_shared:"Location shared",translate_location_not_shared:"Location not shared",translate_trigger_fired:"Triggered by",translate_trigger_payload:"Payload",translate_messages_disabled:"This agent only runs from its triggers.",translate_read_only:"You're viewing this conversation. Nothing can be sent from here.",translate_access_refused:"This agent did not accept your sign-in.",translate_visitor_unverified:"We couldn't confirm you're a person.",translate_agent_unreachable:"This agent cannot be reached right now. Trying again...",translate_agent_missing:"This agent is not available.",translate_streaming:"Streaming",translate_done:"Done",translate_no_reasoning:"No reasoning provided.",translate_copy:"Copy to clipboard",translate_copied:"Copied",translate_media_pending_mermaid:"Drawing diagram",translate_media_pending_vega_lite:"Drawing chart",translate_media_pending_map:"Drawing map",translate_media_pending_report:"Writing report",translate_media_cut_off:"This block was cut off before it finished.",translate_media_failed:"Could not render this block.",translate_media_source:"Source",translate_media_pending:"Drawing",translate_media_mermaid:"Diagram",translate_media_vega_lite:"Chart",translate_media_map:"Map",translate_media_report:"Report",translate_media:"Preview",translate_image_unavailable:"Image unavailable",translate_image_unavailable_alt:"Image unavailable: {{alt}}",translate_image:"Image",translate_send:"Send",translate_stop:"Stop",translate_delete_conversation:"Delete conversation",translate_table:"Table",translate_expand:"Expand {{name}}",translate_table_export:"Export to Excel",translate_close:"Close",translate_approval_needed:"Needs your approval",translate_approval_action:"Run {{tool}}",translate_approved_failed:"Approved, but it failed",translate_approval_cancelled:"Not decided"};var _s={en:Ir,ar:Rr};function Me(e){return e&&Ut.includes(e)?e:dr}function Y(e,t,n){let r=_s[e][t],o=typeof r==="string"?r:r[new Intl.PluralRules(e).select(Number(n?.count))]??r.other;if(!n)return o;return o.replace(/\{\{\s*(\w+)\s*\}\}/g,(a,i)=>(i in n)?String(n[i]):a)}function Or(e,t,n){let r=e!==void 0&&e.messages!==!1;return{greeting:e===void 0?"":$e(e.greeting,t)||Y(t,"translate_greeting"),suggestions:r&&$e(e.suggestions,t)||[],send:(o)=>{if(r)n(o)}}}var Pr="cortex-recaptcha-enterprise",sn;function hs(e){return sn??=new Promise((t,n)=>{let r=()=>{let a=window.grecaptcha?.enterprise;if(a)a.ready(()=>t(a));else n(Error("reCAPTCHA Enterprise did not load"))};if(document.getElementById(Pr))return r();let o=document.createElement("script");o.id=Pr,o.src=`https://www.google.com/recaptcha/enterprise.js?render=${encodeURIComponent(e)}`,o.async=!0,o.addEventListener("load",r,{once:!0}),o.addEventListener("error",()=>{o.remove(),n(Error("reCAPTCHA Enterprise failed to load"))},{once:!0}),document.head.appendChild(o)}).catch((t)=>{throw sn=void 0,t}),sn}function Fr(e,t=document){for(let n of t.querySelectorAll(".grecaptcha-badge")){let r=n.querySelector("iframe")?.getAttribute("src");if(r&&new URL(r,"https://www.google.com").searchParams.get("k")===e)n.style.visibility="hidden"}}async function Hr(e){let t=await hs(e);Fr(e);let n=await t.execute(e,{action:mr});return Fr(e),n}class ge extends Error{status;constructor(e,t){super(`HTTP ${e}: ${t}`);this.status=e;this.name="CortexHttpError"}}class Ke extends Error{constructor(){super("The visitor check failed");this.name="CortexVisitorUnverified"}}var dn="cortex:visitor:",Ge=new Map,qe=new Map,un=new Set,ln=new Set;function Ur(e){try{return localStorage.getItem(dn+e)}catch{return null}}function Wr(e,t){try{if(t===null)localStorage.removeItem(dn+e);else localStorage.setItem(dn+e,t)}catch{}}async function Dr(e,t){let n=await fetch(`${e}/visitors`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(n.status===403)return await n.json();if(!n.ok)throw new ge(n.status,n.statusText);return await n.json()}async function xs(e){let t=await Dr(e,{});if("error"in t&&t.error==="recaptcha_required")t=await Dr(e,{recaptcha:await Hr(t.siteKey)});if("error"in t)throw new Ke;return un.add(t.token),Wr(e,t.token),t.token}function ys(e){let t=Ge.get(e)??Ur(e);if(t)return Ge.set(e,t),Promise.resolve(t);let n=qe.get(e);if(!n){n=xs(e),qe.set(e,n);let r=n,o=()=>{if(qe.get(e)===r)qe.delete(e)};r.then((a)=>{o(),Ge.set(e,a)},(a)=>{if(!(a instanceof Ke))o()})}return n}function bs(e,t){let n=Ge.get(e)===t;if(n)Ge.delete(e);let r=Ur(e)===t;if(r)Wr(e,null);return n||r}function pn(e){if(!e.getHeaders)return ys(Ve(e,"")).then((n)=>cn({Authorization:`Bearer ${n}`}));let t=e.getHeaders();return t instanceof Promise?t.then(cn):Promise.resolve(cn(t))}function cn(e){let t={...e},n=vs(),r=Object.keys(t).some((o)=>o.toLowerCase()===qt.toLowerCase());if(n&&!r)t[qt]=n;return t}function vs(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function Ve(e,t){let n=e.baseUrl;return(typeof n==="string"?n:n()).replace(/\/$/,"")+t}function Ts(e){let t=e?.match(/filename\*\s*=\s*[^']*'[^']*'([^;\r\n]+)/i)?.[1]?.trim().replace(/^"|"$/g,"");if(t)try{return decodeURIComponent(t)}catch{}return e?.match(/filename\s*=\s*"?([^";\r\n]+)"?/i)?.[1]}function Br(e){function t(){return pn(e())}function n(a){return Ve(e(),a)}function r(a,i){let s=e(),l=new Headers(i).get("Authorization")?.replace(/^Bearer /,"");if(s.getHeaders||l===void 0)return;if(a.ok)un.delete(l);if(a.status!==401)return;let c=Ve(s,""),d=bs(c,l);if(un.delete(l))return"refused";if(d){for(let u of[...ln])if(u.visitorOf()===c)u.heard()}return"stale"}async function o(a,i,s=!1){let l=new Headers(await t());if(new Headers(i?.headers).forEach((u,p)=>{l.set(p,u)}),i?.body instanceof FormData)l.delete("Content-Type");else if(!l.has("Content-Type"))l.set("Content-Type","application/json");let c=await fetch(n(a),{...i,headers:l});if(!c.ok){if(r(c,l)==="stale"&&!s)return o(a,i,!0);throw new ge(c.status,c.statusText)}r(c,l);let d=await c.text();return d?JSON.parse(d):void 0}return{onVisitorReplaced(a){let s={visitorOf:()=>{let l=e();return l.getHeaders?void 0:Ve(l,"")},heard:a};return ln.add(s),()=>{ln.delete(s)}},retrySignIn(){qe.delete(Ve(e(),""))},getCapabilities(){return o("/capabilities")},listThreads(){return o("/threads")},createThread(){let a=e().threadBody;return o("/threads",{method:"POST",...a&&{body:JSON.stringify(a)}})},deleteThread(a){return o(`/threads/${a}`,{method:"DELETE"})},listMessages(a){return o(`/threads/${a}/messages`)},listLlmRequests(a,i){return o(`/threads/${a}/messages/${i}/llm-requests`)},abortStream(a){return o(`/chat/${a}/abort`,{method:"POST"})},initiateToolCall(a,i){return o(`/chat/${a}/tools/${i}/initiate`,{method:"POST"})},uploadAttachment(a,i){let s=new FormData;return s.append("file",i),o(`/threads/${a}/files`,{method:"POST",body:s})},deleteAttachment(a){return o(`/files/${a}`,{method:"DELETE"})},async downloadAttachment(a){let i=await t(),s=await fetch(n(`/files/${a}`),{headers:i});if(r(s,i),!s.ok)throw new ge(s.status,s.statusText);return{blob:await s.blob(),name:Ts(s.headers.get("Content-Disposition"))??a}},resolveHeaders:t,resolveUrl:n,readVisitorAnswer:r}}var mn=30000;function fn(e){return Math.min(1000*2**(e-1),mn)}var ws=1e4;function $r(e){let t,n,r=0,o=!1,a=!1;function i(){let{wsUrl:l,transport:c}=e.getConfig();if(l===!1)return;let d=Cs(l,c.baseUrl);pn(c).then((u)=>{if(o)return;t=new WebSocket(ks(d,u)),t.addEventListener("open",()=>{a=!0;let p=t;setTimeout(()=>{if(t===p&&!o)r=0},ws),e.onOpen?.()}),t.addEventListener("message",(p)=>{let f=p.data;if(typeof f!=="string")return;let m;try{m=JSON.parse(f)}catch{return}e.onEvent(m)}),t.addEventListener("close",()=>{if(!a&&!o)e.onFailedOpen?.();a=!1,s()})}).catch(s)}function s(){if(o||n)return;r+=1,n=setTimeout(()=>{n=void 0,i()},fn(r))}return i(),{close(){o=!0,a=!1,clearTimeout(n),t?.close()},isOpen(){return a}}}function Cs(e,t){if(e)return e;let n=typeof t==="string"?t:t(),r=new URL(n,window.location.origin);return r.protocol=r.protocol==="https:"?"wss:":"ws:",r.pathname=r.pathname.replace(/\/$/,"")+"/ws",r.toString()}function ks(e,t){let n=(i)=>Object.entries(t).find(([s])=>s.toLowerCase()===i.toLowerCase())?.[1],r=n("Authorization"),o=Object.entries({token:r?.startsWith("Bearer ")?r.slice(7):void 0,operator:n(yr),inspect:n(br)}).filter((i)=>Boolean(i[1]));if(o.length===0)return e;let a=new URL(e,window.location.origin);for(let[i,s]of o)if(!a.searchParams.has(i))a.searchParams.set(i,s);return a.toString()}var jr={unreachable:"translate_agent_unreachable",refused:"translate_access_refused",unverified:"translate_visitor_unverified",missing:"translate_agent_missing"};function Ss(e){if(e instanceof Ke)return"unverified";let t=e instanceof ge?e.status:void 0;if(t===401)return"refused";if(t===404)return"missing";return"unreachable"}function gn(e,t,n=fn){let r=!1,o,a=0;function i(){e().then((s)=>{if(!r)t.onAnswered(s)},(s)=>{if(r)return;let l=Ss(s);if(t.onMissed?.(l),l==="missing")return;a+=1,o=setTimeout(i,l==="refused"||l==="unverified"?mn:n(a))})}return i(),function(){r=!0,clearTimeout(o)}}function ht(){if(typeof crypto.randomUUID==="function")return crypto.randomUUID();let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,(n)=>n.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var Ms={type:"translate_attachment_rejected_type",size:"translate_attachment_rejected_size",name:"translate_attachment_rejected_name",count:"translate_attachment_rejected_count"};function _n(e,t){if(!e.refusal)return Y(t,"translate_attachment_rejected");return Y(t,Ms[e.refusal],{types:new Intl.ListFormat(t).format(Be.map((n)=>n.slice(n.indexOf("/")+1).toUpperCase())),size:Wt/1024/1024,count:Bt})}function zr(e){let{api:t}=e,n=new Set,r=new Set,o=[],a=[],i=Promise.resolve();function s(){return o}function l(g){return n.add(g),()=>{n.delete(g)}}function c(g){o=g;for(let b of n)b()}function d(g,b){c(o.map((k)=>k.localId===g?{...k,...b}:k))}function u(g){if(r.delete(g))return;d(g,{status:"error"})}async function p(g,b,k){if(r.delete(g))return;let I;try{I=await t.uploadAttachment(b,k)}catch{u(g);return}if(r.delete(g)){t.deleteAttachment(I.id).catch(()=>{});return}d(g,{status:"ready",attachmentId:I.id,summary:I})}function f(g){let b=[];for(let k of g){let I=pr(k),R=o.filter((le)=>le.status!=="error").length>=Bt,V=I!=="ok"?I:R?"count":void 0,oe=ht();if(c([...o,V?{localId:oe,filename:k.name,status:"error",refusal:V}:{localId:oe,filename:k.name,status:"uploading"}]),!V)b.push({localId:oe,file:k})}if(!b.length)return;e.ensureThread().then((k)=>{for(let{localId:I,file:R}of b){if(r.delete(I))continue;d(I,{threadId:k}),i=i.then(()=>p(I,k,R)).catch(()=>{})}},()=>{for(let{localId:k}of b)u(k)})}function m(g){let b=o.find((k)=>k.localId===g);if(!b)return;if(b.status==="uploading"){r.add(g),c(o.filter((k)=>k.localId!==g));return}if(b.attachmentId){d(g,{status:"deleting"}),t.deleteAttachment(b.attachmentId).then(()=>c(o.filter((k)=>k.localId!==g)),()=>d(g,{status:"error"}));return}c(o.filter((k)=>k.localId!==g))}function x(g){let b=[];for(let k of o){if(k.threadId!==void 0&&k.threadId!==g){b.push(k);continue}if(k.status==="uploading")r.add(k.localId);else if(k.status==="ready"&&k.threadId===g&&k.attachmentId)t.deleteAttachment(k.attachmentId).catch(()=>{})}if(b.length!==o.length)c(b)}function M(){let g=o.flatMap((b)=>b.status==="ready"&&b.summary?[{...b,status:"ready",summary:b.summary}]:[]);return c(o.filter((b)=>b.status!=="ready")),a=g,g}function C(g){let b=a;if(a=[],b.some((k)=>k.threadId!==g))return;c([...b.map((k)=>({...k,status:"error"})),...o])}function w(){a=[]}return{getState:s,subscribe:l,accept:f,remove:m,clear:x,consumeReady:M,restoreConsumed:C,discardConsumed:w}}function qr(e){return{uploading:e.some((t)=>t.status==="uploading"),busy:e.some((t)=>t.status==="uploading"||t.status==="deleting"),hasReady:e.some((t)=>t.status==="ready")}}import{ChatClient as Fs}from"@tanstack/ai-client";import{EventType as Kr}from"@tanstack/ai";import{fetchServerSentEvents as Vr}from"@tanstack/ai-client";function Ns(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t],r="parts"in n&&n.parts.some((o)=>o.type==="tool-result"||o.type==="tool-call"&&o.state==="approval-responded");if(n.role==="user"||r)return e.slice(t,t+1)}return e.slice(-1)}function Ls(e){if(e.state==="approval-responded"){let t=e.approval?.approved;if(t===void 0)return null;return{toolCallId:e.id,output:null,state:t?"approved":"denied"}}if(!X(e.state))return null;return{toolCallId:e.id,output:e.output??null,state:e.state==="error"?"error":"complete"}}function As(e){let[t]=e;if(!t||t.role!=="assistant"||!("parts"in t))return null;let n=t.parts.flatMap((r)=>{let o=r.type==="tool-call"?Ls(r):null;return o?[o]:[]});return n.length>0?n:null}async function Es(e){if(e.status!==409)return;let t=await e.clone().json().catch(()=>{return});return t!==null&&typeof t==="object"&&"outcome"in t&&t.outcome==="dropped"&&"reason"in t&&t.reason==="approval_pending"?"approval_pending":void 0}async function*Gr(e,t,n){for await(let r of e){if(r.type!==Kr.MESSAGES_SNAPSHOT){yield r;continue}let o=t.localMessages(),a=o.findIndex((s)=>s.id===n),i=a===-1?[]:o.slice(a+1).filter((s)=>s.role==="user");t.onTranscriptCarried?.(r.timestamp??Date.now()),yield{...r,messages:[...r.messages,...i]}}}function Jr(e){let{api:t,thread:n}=e,r=async()=>({headers:await t.resolveHeaders()}),o=0;async function*a(u,p){o+=1,e.onStreamStarted?.();try{yield*u}finally{o-=1,p?.()}}function i(u,p){let f=Object.assign(async(m,x)=>{let M=await fetch(m,x).catch((g)=>{throw u("lost"),g});u(vr(M.status)),t.readVisitorAnswer(M,x?.headers);let C=new Headers(x?.headers).has("Last-Event-ID");if(p&&!C&&M.status===401)e.onMessageRefused?.();let w=await Es(M);if(w)e.onRefused?.(w);return M},fetch);return Vr(()=>t.resolveUrl("/chat"),async()=>({...await r(),fetchClient:f}))}let s=function(u,p,f,m){let x=Ns(u),M=As(x),C=M?.map((k)=>k.toolCallId),w,g=i((k)=>{if(w)return;if(w=k,C&&w==="persisted")e.onReceipt?.(C,w)},!M&&x[0]?.role==="user"),b=M?g.connect([],{...p,[_r]:M},f,m):g.connect(x,p,f,m);return a(Gr(b,e,u.at(-1)?.id),()=>{if(C&&w!=="persisted")e.onReceipt?.(C,w??"lost")})},l=Vr(()=>t.resolveUrl(`/chat/${n.id}/stream`),r),c=[];async function*d(u,p){yield{type:Kr.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:c},yield*Gr(l.joinRun(u,p),e,c.at(-1)?.id)}return{connect:s,joinRun:(u,p)=>a(d(u,p)),streaming:()=>o>0,hydrate:async()=>{let u=await Rs(e);return c=u.messages,u}}}async function Rs(e){let{api:t,thread:n,mode:r}=e,o=n.isRunning?{runId:n.id}:null;if(r==="skip")return{messages:[],activeRun:o,interrupts:null};if(r==="load")e.setLoadingMessages?.(!0);try{let i=(await t.listMessages(n.id)).map(zt);return e.onHydrated?.(i),{messages:i,activeRun:o,interrupts:null}}finally{e.setLoadingMessages?.(!1)}}async function Xr(e){if(e.isStale?.()||e.isStreaming())return;try{let t=await e.api.listMessages(e.threadId);if(e.isStale?.()||e.isStreaming())return;let n=t.map(zt);return e.setMessages(n),n}catch{return}}import{EventType as Is}from"@tanstack/ai";function Os(e){return new Set(be(e).filter((t)=>t.state!=="approval-responded").map((t)=>t.id))}function hn(e){return e.refusal==="approval_pending"?"translate_approval_pending":"translate_error"}var Ps=2;function Zr(e){let t=!1,n=!1,r=!1,o,a,i,s,l=!1,c=!1,d,u,p=new Set,f=new Map,m=new Map,x=0,M=0,C=0,w=!1;function g(){if(t)return;t=!0,e.setRunning(!0)}function b(T,N){f.get(T)?.waiters.forEach(N),f.delete(T)}function k(T,N,A=!1){for(let O of T){let D=f.get(O);if(!D)continue;if(D.failure=N,A)D.mayHaveLanded=!0}le()}async function I(T,N,A){try{await N()}catch(O){if(A)A.failures+=1;k([T],O instanceof Error?O:Error("The answer was not sent"))}}function R(T){for(let[N,A]of f)if(!T.has(N)){if(A.mayHaveLanded)g();b(N,(O)=>O.resolve())}else if(A.failure){let{failure:O}=A;b(N,(D)=>D.reject(O))}else I(N,A.deliver)}function V(T){for(let[A,O]of m){if(T.has(A))continue;if(m.delete(A),O.mayHaveLanded)g()}let N=[...m.values()];if(N.some((A)=>A.failures>Ps))return;for(let A of N)oe(A)}function oe(T){if(!e.answers())return w=!0,Promise.resolve();return I(T.answer.toolCallId,()=>e.deliver(T.answer),T)}async function le(){let T=x,N=++M,A=()=>x!==T||C>N||!e.isAlive(),O=await e.refreshMessages(A).catch(()=>{return});if(!O||A())return;C=N;let D=Os(O),ye=w;if(w=!1,R(D),V(D),t||ye)ae(O)}async function G(T,N){let A;try{let ye=N({toolCallId:T.id,toolName:T.name,input:T.input},{threadId:e.threadId});if(ye===null||ye===void 0)return;A=await Promise.resolve(ye)}catch{p.delete(T.id);return}if(A===null||A===void 0)return;if(!e.isAlive())return;let D={answer:{toolCallId:T.id,tool:T.name,output:A},failures:0,mayHaveLanded:!1};m.set(T.id,D),await oe(D)}function ae(T){let N=be(T),A=e.onToolCall();if(!A)return N.length>0;if(!e.answers())return w||=N.length>0,N.length>0;for(let O of N){if(O.state!=="input-complete"||p.has(O.id))continue;p.add(O.id),G(O,A)}return N.length>0}async function Ue(T){if(r)e.reloadThreads().catch(()=>{});else e.setRunning(!1);if(t&&!l&&ae(T()))return;if(u===void 0&&d!==void 0)return;u=void 0,await le()}return{chunkArrived(T){if(n=!0,T.type===Is.RUN_ERROR&&T.code!=="aborted")o={reason:T.message||void 0}},transcriptCarried(T){if(d=T,u!==void 0&&u<=T)u=void 0},transcriptUpdated(T){let N=Date.parse(T);if(d!==void 0&&N<=d)return;if(!c){le();return}u=Math.max(u??0,N)},streamFailed(){if(r=!0,l)return;if(n)e.onTurnFinished();else e.onSendFailed();if(a){if(e.setTurnFailed({reason:void 0,refusal:a}),s!==void 0)e.returnDraft(s);return}let N=o??(s!==void 0&&!n?{reason:void 0}:void 0);if(N)e.setTurnFailed(N)},loadingChanged(T,N){if(T){c=!0;return}if(!c)return;c=!1,e.onTurnFinished(),Ue(N)},hydrated(T,N){if(N)return;setTimeout(()=>{if(e.isAlive())ae(T)},0)},deliverAnswer(T,N){return new Promise((A,O)=>{let D=[...f.get(T)?.waiters??[],{resolve:A,reject:O}];f.set(T,{deliver:N,waiters:D}),I(T,N)})},receiptArrived(T,N){if(N==="persisted"){for(let O of T)m.delete(O),b(O,(D)=>D.resolve());g();return}let A=N==="lost";for(let O of T){let D=m.get(O);if(!D)continue;D.failures+=1,D.mayHaveLanded||=A}k(T,Error(A?"The answer was lost":"Cortex refused the answer"),A)},readBack:le,resumeAnswers(){if(w&&!c)le()},streamStarted(){if(t)e.setRunning(!0);x+=1,r=!1,o=void 0,a=void 0,s=i,i=void 0,d=void 0,l=!1,e.setTurnFailed(void 0)},sendStarted(T){x+=1,i=T,t=!0,n=!1},sendRefused(T){a=T},abortConfirmed(){l=!0}}}var xt={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1,awaitsApproval:!1,turnFailure:void 0};function Yr(e){let{api:t}=e,n=e.thread.id,r=new Set,o=xt,a=s(e.thread,e.mode);function i(m,x){if(Object.is(o[m],x))return;let M={...o,[m]:x};o={...M,hasPendingToolCalls:!M.isAgentWorking&&be(M.messages).length>0,awaitsApproval:Tr(M.messages)},r.forEach((C)=>C())}function s(m,x,M){let C=!0;function w(R){return(...V)=>{if(C)R(...V)}}let g=Promise.resolve(),b=Zr({threadId:n,isAlive:()=>C,onToolCall:()=>e.getHooks()?.onToolCall,answers:e.answers,deliver:(R)=>I.addToolResult(R),setRunning:e.setRunning,reloadThreads:e.reloadThreads,refreshMessages:(R)=>{let V=g.then(()=>Xr({api:t,threadId:n,isStale:()=>!C||R(),isStreaming:k.streaming,setMessages:(oe)=>I.setMessagesManually(oe)}));return g=V,V},onTurnFinished:e.onTurnFinished,onSendFailed:e.onSendFailed,setTurnFailed:w((R)=>i("turnFailure",R)),returnDraft:w(e.onReturned)}),k=Jr({api:t,thread:m,mode:x,localMessages:()=>I.getMessages(),onHydrated:w((R)=>b.hydrated(R,m.isRunning)),onTranscriptCarried:w((R)=>b.transcriptCarried(R)),onStreamStarted:w(()=>b.streamStarted()),onRefused:w((R)=>b.sendRefused(R)),onMessageRefused:e.onMessageRefused,onReceipt:w((R,V)=>b.receiptArrived(R,V)),setLoadingMessages:w((R)=>i("isLoadingMessages",R))}),I=new Fs({threadId:n,persistence:!0,initialMessages:M,connection:k,onChunk:w((R)=>b.chunkArrived(R)),onError:w(()=>b.streamFailed()),onMessagesChange:w((R)=>i("messages",R)),onLoadingChange:w((R)=>{i("isAgentWorking",R);let V=()=>I.getMessages();if(R){b.loadingChanged(!0,V);return}setTimeout(w(()=>{if(!I.getIsLoading())b.loadingChanged(!1,V)}))})});return I.attach(),{client:I,lifecycle:b,isAlive:()=>C,close(){C=!1,I.detach(),I.stop(),I.dispose()}}}async function l(m,x=()=>[]){if(!a.isAlive()||o.isAgentWorking||o.awaitsApproval)return!1;let{client:M,lifecycle:C}=a;return C.loadingChanged(!1,()=>M.getMessages()),C.sendStarted(m),await M.append({id:ht(),role:"user",parts:[{type:"text",content:m}],metadata:{createdAt:new Date().toISOString(),attachments:x()}}),!0}async function c(){let{client:m,lifecycle:x,isAlive:M}=a;if(!M()||!m.getIsLoading())return;let{aborted:C}=await t.abortStream(n).catch(()=>({aborted:!1}));if(!M())return;if(C)x.abortConfirmed();else m.stop()}function d(m,x,M){let{client:C,lifecycle:w,isAlive:g}=a;if(!g())return Promise.resolve();return w.deliverAnswer(m,()=>C.addToolResult({toolCallId:m,tool:x,output:M}))}function u(m,x){let{client:M,lifecycle:C,isAlive:w}=a;if(!w())return Promise.resolve();let g=hr(m);return C.deliverAnswer(m.id,async()=>{let b=M.getInterrupts().find((k)=>k.id===g);if(b&&"resolveInterrupt"in b)b.resolveInterrupt({approved:x});else await M.addToolApprovalResponse({id:g,approved:x})})}function p(m){if(!a.isAlive()||m.id!==n||a.client.getIsLoading())return;if(!m.isRunning){a.lifecycle.readBack();return}a.close(),i("isLoadingMessages",!1),i("turnFailure",void 0),a=s(m,"reload",o.messages)}function f(m){if(a.isAlive()&&m.id===n)a.lifecycle.transcriptUpdated(m.updatedAt)}return{threadId:n,getState:()=>o,subscribe:(m)=>(r.add(m),()=>{r.delete(m)}),send:l,abort:c,addToolResult:d,respondToApproval:u,reattach:p,transcriptUpdated:f,resumeAnswers:()=>{if(a.isAlive())a.lifecycle.resumeAnswers()},dispose(){a.close(),r.clear()}}}function xn(e){return[...e].sort((t,n)=>{let r=Date.parse(n.updatedAt)-Date.parse(t.updatedAt);if(r!==0)return r;return Date.parse(n.createdAt)-Date.parse(t.createdAt)})}function yn(e,t){let n=[...e],r=n.findIndex((o)=>o.id===t.id);if(r===-1)n.push(t);else n[r]={...n[r],...t};return xn(n)}function Qr(e,t){return e.filter((n)=>n.id!==t)}function Hs(e,t,n){return e.map((r)=>r.id===t?{...r,title:n}:r)}var Ds=[0,1000,2000,3000,4000];function eo(e){let t=e.delays??Ds,n=!1,r;function o(){let s=e.selected();return!n&&!e.socketOpen()&&s?.id===e.threadId&&!s.title}async function a(s){if(!o())return;let c=(await e.listThreads().catch(()=>{return}))?.find((d)=>d.id===e.threadId)?.title;if(!o())return;if(c)e.setTitle(c);else i(s+1)}function i(s){let l=t[s];if(l!==void 0)r=setTimeout(()=>void a(s),l)}return i(0),function(){n=!0,clearTimeout(r)}}function to(e,t){switch(t.type){case"thread:deleted":return Qr(e,t.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return yn(e,t.payload.thread);default:return e}}function no(){let e=new Map,t=new Map,n=new Map,r=new Set,o=0,a=0;function i(s){if(s.type==="thread:run-started")return e.set(s.payload.thread.id,s.payload.runId),!0;if(s.type!=="thread:run-finished")return!0;let l=e.get(s.payload.thread.id);return l===void 0||l===s.payload.runId}return{admits(s){if(!i(s))return!1;if("thread"in s.payload)t.set(s.payload.thread.id,++o);if(s.type==="thread:deleted")r.add(s.payload.threadId);return!0},running(s,l){return n.set(s,++o),(c)=>{let d=c?.find((u)=>u.id===s);return c&&d?yn(c,{...d,isRunning:l}):c}},created(s){return t.set(s.id,++o),(l)=>yn(l??[],s)},retitled(s,l){return t.set(s,++o),(c)=>c&&Hs(c,s,l)},deleted(s){return r.add(s),(l)=>l&&Qr(l,s)},async read(s){e.clear();let l=++o,c=xn(await s()),d=l<a;a=Math.max(a,l);function u(p){if(d&&p)return p;let f=new Map(c.map((m)=>[m.id,m]));for(let m of p??[]){let x=f.get(m.id);if((t.get(m.id)??0)>l)f.set(m.id,m);else if(x&&(n.get(m.id)??0)>l)f.set(m.id,{...x,isRunning:m.isRunning})}for(let m of r)f.delete(m);return xn([...f.values()])}return{listed:c,show:u}}}}function ro(e,t){for(let n in e)if(!Object.is(e[n],t[n]))return!1;return!0}function Je(e,t){let{capabilities:n,session:r}=e,o=qr(e.attachments);return n!==void 0&&n.messages!==!1&&!e.creating&&!r.isAgentWorking&&!r.awaitsApproval&&!o.busy&&(Boolean(t.trim())||o.hasReady)}function bn(e){let{capabilities:t,unanswered:n}=e;if(e.session.hasPendingToolCalls)return;if(t===void 0)return n&&jr[n];if(t.messages)return"composer";return t.readOnly?"translate_read_only":"translate_messages_disabled"}function vn(e){let{getConfig:t}=e,n=Br(()=>t().transport),r=new Set,o=no(),a=zr({api:n,ensureThread:sr}),i={threads:void 0,selected:void 0,session:xt,capabilities:void 0,displayName:void 0,unanswered:void 0,attachments:a.getState(),creating:!1,screen:"chat",sidebarOpen:!1,debugMode:!1},s={...i,parts:oo(i)},l="",c,d,u=0,p,f,m,x,M,C,w,g,b=[],k=!1,I={reported:s.session,debug:!1,session:s.session};a.subscribe(()=>G({attachments:a.getState()}));function R(){for(let _ of r)_()}function V(_){return r.add(_),()=>{r.delete(_)}}function oe(_){let S=d;return S&&(_?.find((E)=>E.id===S.id)??S)}function le(_){let S=f?.getState()??xt;if(S===I.reported&&_===I.debug)return I.session;let E=S.turnFailure,H=_||E?.reason===void 0?S:{...S,turnFailure:{...E,reason:void 0}};return I={reported:S,debug:_,session:H},H}function G(_={}){let S={...s,..._},E={...S,selected:oe(S.threads),session:le(Boolean(S.capabilities?.debug)),creating:p?.generation===u&&p.forMessage},H=oo(E),J={...E,parts:ro(H,s.parts)?s.parts:H};if(ro(J,s))return;s=J,R()}function ae(_){G({threads:_(s.threads)})}function Ue(_){if(_===l)return;l=_,R()}function T(_){if(_)Ue(l?`${_}
|
|
3
|
-
${l}`:_)}function N(_,S=!1){let E=s.selected;ae(_);let H=s.selected;if(H){if(S||H.isRunning&&!E?.isRunning)f?.reattach(H);else if(H.updatedAt!==E?.updatedAt)f?.transcriptUpdated(H)}A()}function A(){let _=t().thread,S=!k&&_&&s.threads?.find((E)=>E.id===_);if(!S)return;k=!0,ar(S)}async function O(_=!1){let S=x,E=await o.read(()=>n.listThreads()).catch(()=>{return});if(!E||!x||x!==S)return!1;return N(E.show,_),!0}function D(){C?.(),G({capabilities:void 0,unanswered:void 0}),C=gn(()=>n.getCapabilities(),{onAnswered:(_)=>{if(G({capabilities:_,displayName:_.displayName,unanswered:void 0,debugMode:s.debugMode&&_.debug}),gt())f?.resumeAnswers()},onMissed:(_)=>G({unanswered:_,displayName:s.displayName??{}})})}function ye(){w?.();let _=d?.id;if(!_)return;w=eo({threadId:_,listThreads:()=>n.listThreads(),selected:()=>s.selected,socketOpen:()=>x?.isOpen()??!1,setTitle:(S)=>ae(o.retitled(_,S))})}function We(_){f?.dispose(),f=void 0,m=void 0;let S=oe(s.threads);if(x&&S){let E=Yr({api:n,thread:S,mode:_,getHooks:()=>t().hooks,answers:gt,setRunning:(H)=>{if(H||!m)ae(o.running(S.id,H))},reloadThreads:()=>O(),onTurnFinished:()=>{if(a.discardConsumed(),ye(),m)O().then((H)=>{m=void 0;let J=s.selected;if(H&&J?.isRunning)f?.reattach(J)})},onSendFailed:()=>a.restoreConsumed(S.id),onReturned:T,onMessageRefused:()=>{if(c?.session!==E||f===E)return;if(t().transport.getHeaders)return;T(c.text),c=void 0}});f=E,E.subscribe(()=>G())}G()}function rr(){u+=1,a.clear(d?.id)}function or(){G({screen:"chat",sidebarOpen:!1})}function ar(_){if(or(),d?.id===_.id)return;let S=s.selected;rr(),d=_,We("load");let E=t().hooks;if(S)E?.onThreadDeselected?.(S);E?.onThreadSelected?.(_)}function ft(){let _=s.selected;if(rr(),d=void 0,We("load"),_)t().hooks?.onThreadDeselected?.(_)}function Ha(){ft(),or()}async function Da(_){if(d?.id===_)ft();await n.deleteThread(_),ae(o.deleted(_))}function Ua(){return new Promise((_)=>{if(x)_();else b.push(_)})}function sr(_=!1){if(d)return Promise.resolve(d.id);if(p?.generation===u)p={...p,forMessage:p.forMessage||_};else{let S=u,E=()=>{if(p?.generation===S)p=void 0},H=n.createThread().then(async(J)=>{if(ae(o.created(J)),await Ua(),E(),u===S)d=J,We("skip"),t().hooks?.onThreadSelected?.(J);return J.id},(J)=>{throw E(),G(),J});p={generation:S,threadId:H,forMessage:_}}return G(),p.threadId}function Wa(_){let S=l;if(!Je(s,S))return;_(S.trim()),Ue(""),ir(S)}function Ft(_){return T(_),{sent:!1,text:_}}async function ir(_){if(!Je(s,_))return Ft(_);let S=u,E=await sr(!0).catch(()=>{return}),H=f;if(!H||H.threadId!==E||u!==S)return Ft(_);let J=Y(Me(t().locale),"translate_attachment_caption"),lr={session:H,text:_};return c=lr,await H.send(_.trim()||J,()=>a.consumeReady().map((Ka)=>Ka.summary)).finally(()=>{if(c===lr)c=void 0})?{sent:!0}:Ft(_)}function Ba(_){if(o.admits(_))ae((S)=>{let E=to(S??[],_);return S||E.length?E:S});switch(_.type){case"thread:deleted":if(d?.id===_.payload.threadId)ft();break;case"thread:run-started":if(_.payload.thread.id===d?.id&&s.session.isAgentWorking)m=_.payload.runId;f?.reattach(_.payload.thread);break;case"thread:run-finished":if(_.payload.runId===m)m=void 0;f?.transcriptUpdated(_.payload.thread);break;case"thread:messages-updated":f?.transcriptUpdated(_.payload.thread);break}}function $a(){D(),O(!0)}function ja(){ft(),Dt(),Ht()}function Ht(){if(x)return;g=n.onVisitorReplaced(ja);let _=!1;x=$r({getConfig:t,onEvent:Ba,onOpen:()=>{if(_)$a();_=!0},onFailedOpen:()=>{if(!t().transport.getHeaders)n.getCapabilities().catch(()=>{return})}}),M=gn(()=>o.read(()=>n.listThreads()),{onAnswered:({show:S})=>N(S),onMissed:(S)=>{if(S!=="unreachable")ae((E)=>E??[])}}),D(),We("load");for(let S of b.splice(0))S()}function Dt(){if(!x)return;g?.(),x.close(),x=void 0,M?.(),C?.(),w?.(),We("load")}function za(){if(t().viewMode==="full")G({sidebarOpen:!0});else G({screen:"threads"})}function qa(){if(t().viewMode==="full")G({sidebarOpen:!1});else G({screen:"chat"})}function gt(){return s.capabilities?.messages===!0}function Va(_,S,E){if(!gt())return Promise.resolve();return f?.addToolResult(_,S,E)??Promise.resolve()}function Ga(_,S){if(!gt())return Promise.resolve();return f?.respondToApproval(_,S)??Promise.resolve()}return{api:n,getState:()=>s,getDraft:()=>l,subscribe:V,start:Ht,stop:Dt,setDraft:Ue,submit:ir,sendDraft:Wa,abort:()=>f?.abort()??Promise.resolve(),addToolResult:Va,respondToApproval:Ga,openThread:ar,newChat:Ha,deleteThread:Da,attachFiles:a.accept,removeAttachment:a.remove,openHistory:za,closeHistory:qa,toggleDebug:()=>G({debugMode:!s.debugMode}),retry:()=>{n.retrySignIn(),Dt(),Ht()}}}function oo(e){let{threads:t,selected:n,capabilities:r,displayName:o,debugMode:a}=e;return{threads:t,selected:n,capabilities:r,displayName:o,debugMode:a,isWorking:e.session.isAgentWorking}}function Tn(e,t,n,r){let o=Me(n.locale),a=t.capabilities?.readOnly===!1?{newChat:e.newChat,deleteThread:(l)=>void e.deleteThread(l)}:void 0,i=t.displayName===void 0?"":$e(t.displayName,o)??Y(o,"translate_new_chat");function s(l){return{screen:l,viewMode:n.viewMode??"helper",title:t.selected?.title??i,threadCount:t.threads?.length,isWorking:t.isWorking,debug:{shown:Boolean(t.capabilities?.debug),on:t.debugMode},newChat:a?.newChat,openHistory:e.openHistory,closeHistory:e.closeHistory,toggleDebug:e.toggleDebug}}return{chatHeader:s("chat"),threadsHeader:s("threads"),landing:{...Or(t.capabilities,o,(l)=>void e.submit(l)),threads:t.threads,composer:r,openThread:e.openThread,openHistory:e.openHistory},threadList:{threads:t.threads,selectedThreadId:t.selected?.id,openThread:e.openThread,...a}}}var ao="allow-scripts allow-forms allow-popups";function Us(e,t){try{return e.contentWindow?.location.origin===t}catch{return!1}}function wn(e){let t=e.host.location.origin,n=!1,r=!1,o,a=!1,i;function s(p){if(!n)e.onState(p)}function l(){if(n)return;r=!1,s({phase:"error"})}function c(p){if(n||r)return;r=!0,s({phase:"settling"});try{let f=e.submit(p);if(f instanceof Promise)f.catch(l)}catch{l()}}function d(p){if(!o)return;if(i===void 0||p.source!==i)return;let f=cr(p.data,p.origin,o);if(!f)return;c({status:f.status,reference:f.reference,result:f.result})}function u(){if(n||r)return;o=void 0,i=void 0,s({phase:"error"})}return e.host.addEventListener("message",d),{async start(){s({phase:"initiating"});try{let p=await e.initiate(),f=new URL(p.embedUrl);if(!/^https?:$/.test(f.protocol)){s({phase:"error"});return}let m=f.origin===t;a=m&&e.trustSameOrigin===!0,o=p.embedOrigin,s({phase:"embedded",embedUrl:p.embedUrl,surface:p.surface,sandbox:m&&!a?ao:`${ao} allow-same-origin`})}catch(p){let f=p instanceof ge&&p.status===404;s({phase:f?"unavailable":"error"})}},setSource(p){if(p!==null&&p!==void 0)i=p},frameLoaded(p){if(!a&&Us(p,t))u()},cancel(){c({status:"cancelled"})},dispose(){n=!0,e.host.removeEventListener("message",d)}}}async function Xe(e,t){let n=await import("leaflet"),r=!t.interactive,o=n.map(e,{center:t.center,zoom:t.zoom,zoomControl:!r,dragging:!r,scrollWheelZoom:!r,doubleClickZoom:!r,touchZoom:!r,boxZoom:!r,keyboard:!r});n.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(o);let a=new ResizeObserver(()=>o.invalidateSize());return a.observe(e),{leaflet:n,map:o,dispose(){a.disconnect(),o.remove()}}}var yt={position:void 0,locating:!1,locateFailed:!1,mapFailed:!1,submitting:!1,deliveryFailed:!1},Ws={center:{lat:20,lng:0},zoom:2},Bs=13,io=16,$s=1e4;function Cn(e,t){let n=yt,r=!1,o=!1,a,i,s,l=0;function c(f){if(n={...n,...f},!r)t.onState(n)}function d(){let f=n.position;if(!a||!f)return;let{leaflet:m,map:x}=a;if(i)i.setLatLng(f);else{let M=m.marker(f,{draggable:!n.submitting}).addTo(x);M.on("dragend",()=>{let{lat:C,lng:w}=M.getLatLng();u({lat:C,lng:so(w)})}),i=M}s?.remove(),s=f.accuracy?m.circle(f,{radius:f.accuracy}).addTo(x):void 0}function u(f){if(n.submitting)return;l+=1,c({position:f,locating:!1,locateFailed:!1}),d()}function p(f){if(r||o)return;o=!0,l+=1,i?.dragging?.disable(),c({submitting:!0,locating:!1,deliveryFailed:!1});let m=()=>{o=!1,i?.dragging?.enable(),c({submitting:!1,deliveryFailed:!0})};try{let x=t.submit(f);if(x instanceof Promise)x.catch(m)}catch{m()}}return{async start(){let f=t.center?{center:t.center,zoom:Bs}:Ws,m;try{m=await Xe(e,{...f,interactive:!0})}catch{c({mapFailed:!0});return}if(r){m.dispose();return}a=m,m.map.on("click",(x)=>u({lat:x.latlng.lat,lng:so(x.latlng.lng)})),d()},locate(){if(n.locating||n.submitting)return;if(!navigator.geolocation){c({locateFailed:!0});return}l+=1;let f=l;c({locating:!0,locateFailed:!1}),navigator.geolocation.getCurrentPosition(({coords:m})=>{if(r||f!==l)return;let x={lat:m.latitude,lng:m.longitude,accuracy:Math.round(m.accuracy)};u(x),a?.map.setView(x,io)},()=>{if(f===l)c({locating:!1,locateFailed:!0})},{enableHighAccuracy:!0,timeout:$s})},confirm(){if(n.position)p({status:"completed",result:n.position})},cancel(){p({status:"cancelled"})},dispose(){r=!0,a?.dispose()}}}function kn(e,t,n){let r=!1,o;return Xe(e,{center:t,zoom:io,interactive:!1}).then((a)=>{if(r){a.dispose();return}o=a.dispose,a.leaflet.marker(t).addTo(a.map)},()=>{if(!r)n()}),()=>{r=!0,o?.()}}function so(e){if(e>=-180&&e<=180)return e;return((e+180)%360+360)%360-180}function lo(e){if(!e||typeof e!=="object")return!1;let{lat:t,lng:n}=e;return typeof t==="number"&&typeof n==="number"&&Math.abs(t)<=90&&Math.abs(n)<=180}function Sn(e){let t=e&&typeof e==="object"?e.center:void 0;return lo(t)?t:void 0}function Mn(e){if(!e||typeof e!=="object")return;let{status:t,result:n}=e;if(t!=="completed"||!lo(n))return;let{accuracy:r}=n;return{...n,...typeof r==="number"?{accuracy:r}:{}}}function bt(e){let t=`${e.lat.toFixed(4)}, ${e.lng.toFixed(4)}`;return e.accuracy?`${t} ±${e.accuracy} m`:t}function Nn(e){if(e.locating)return{key:"translate_location_locating",failed:!1};if(e.deliveryFailed)return{key:"translate_location_send_failed",failed:!0};if(e.locateFailed)return{key:"translate_location_locate_failed",failed:!0};if(e.mapFailed)return{key:"translate_location_map_failed",failed:!0};return{key:"translate_location_hint",failed:!1}}import{marked as js}from"marked";import zs from"dompurify";function Ze(e,t=[]){if(!e)return"";let n=document.createElement("template");if(n.innerHTML=js.parse(e,{async:!1}).replace(/<table>/g,'<div style="overflow-x:auto"><table style="width:max-content">').replace(/<\/table>/g,"</table></div>").replace(/<(t[hd])([\s>])/g,'<$1 style="padding:0.5rem 1rem"$2'),Vs(n.content),t.length)Gs(n.content,t);return zs.sanitize(n.innerHTML,{FORBID_TAGS:["img","picture","source"]})}var qs=/[\p{Script=Arabic}\p{Script=Hebrew}]/u;function Vs(e){for(let t of Array.from(e.children))if(t.localName!=="div")t.setAttribute("dir","auto");e.querySelectorAll("table").forEach((t)=>{let n=/\p{L}/u.exec(t.textContent??"")?.[0];if(!n)return;let r=qs.test(n)?"rtl":"ltr";if(t.setAttribute("dir",r),t.parentElement?.childElementCount===1)t.parentElement.setAttribute("dir",r)}),e.querySelectorAll("th, td").forEach((t)=>t.setAttribute("dir","auto")),e.querySelectorAll("pre").forEach((t)=>t.setAttribute("dir","ltr"))}function Gs(e,t){let n=[...t].sort((a,i)=>a.length-i.length),r=n[n.length-1]?.length??0,o=0;for(let a of Ks(e)){if(o>=r)break;a.replaceWith(...Js(a.data,o,n)),o+=a.data.length}}function Ks(e){let t=document.createTreeWalker(e,4),n=[];for(let r=t.nextNode();r;r=t.nextNode())if(r.data.trim())n.push(r);return n.reverse()}function Js(e,t,n){let r=[],o=e.length;for(let a of n){if(a.length<=t)continue;if(o<=0)break;let i=Math.min(o,a.length-t);if(i<o&&/[\uDC00-\uDFFF]/.test(e.charAt(o-i)))i+=1;let s=document.createElement("span");s.className="cortex-stream-fade",s.style.animationDelay=`-${a.age}ms`,s.textContent=e.slice(o-i,o),r.unshift(s),o-=i,t+=i}if(o>0)r.unshift(document.createTextNode(e.slice(0,o)));return r}import{marked as mo}from"marked";var co=/^ {0,3}(`{3,}|~{3,})(.*)$/;function uo(){let e=null;return(t)=>{let n=co.exec(t),r=n?.[1],o=n?.[2]??"";if(r){let a=r.charAt(0);if(e){if(a===e.marker&&r.length>=e.length&&o.trim()==="")return e=null,"close";return"inside"}if(a==="`"&&o.includes("`"))return"outside";return e={marker:a,length:r.length},"open"}return e?"inside":"outside"}}function po(e){return co.exec(e)?.[2]?.trim().split(/\s+/)[0]??""}var Xs=/^\s*!\[([^\]]*)\]\(attachment#([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)\s*$/i;function Ln(e,t){if(t.role!=="assistant")return[{kind:"markdown",text:e}];return Zs(e,t.languages).map((n)=>{switch(n.kind){case"table":return{...n,closed:n.closed||!t.arriving};case"attachment":return{...n,attachment:t.attachments?.find((r)=>r.id.toLowerCase()===n.id)};default:return n}})}function Zs(e,t){let n=[],r=[],o=null;function a(c=!1){if(r.length)n.push(...Qs(r.join(`
|
|
1
|
+
import{useEffect as Ac,useMemo as Xa,useState as Lc}from"react";var cs=["completed","cancelled","failed"],yt="requestLocation",bt="connectAccount",yr=600000;function br(e,t,n){if(t!==n)return null;if(typeof e!=="object"||e===null)return null;let r=e;if(r.type!=="cortex:client-tool")return null;let o=cs.find((i)=>i===r.status);if(!o)return null;let a=r.reference;return{type:"cortex:client-tool",status:o,...typeof a==="string"?{reference:a}:{},...r.result!==void 0?{result:r.result}:{}}}var zt=["en","ar"],vr=zt[0],wr={en:"ltr",ar:"rtl"};var je=["image/png","image/jpeg","image/webp","application/pdf"],qt=10485760,ds=255,Kt=5;function Tr(e){if(!je.some((t)=>t===e.type))return"type";if(e.size>qt)return"size";if(e.name.length>ds)return"name";return"ok"}var Cr="cortex_visitor";function we(e,t){return e[t]??e.en??Object.values(e)[0]}var kr=["executeCode","queryDataset","describeDataset"],us="approvalTitle";function ze(e,t){if(!e||typeof e!=="object")return;let n=Reflect.get(e,t);return typeof n==="string"&&n.trim()?n.trim():void 0}function Sr(e){return ze(e,us)}function qe(e){return e.metadata?.cortex??void 0}function Vt(e){return{...e,role:e.role==="trigger"?"user":e.role}}var Mr="clientToolAnswers";function Nr(e){return e.approval?.id??`approval_${e.id}`}function Ar(e){return e.approval!==void 0||e.state==="approval-requested"}var Gt="X-Cortex-Timezone",Lr="X-Cortex-Operator",Er="X-Cortex-Inspect",ps=["busy","approval_pending","budget","rate_limited"],Pc=[...ps,"invalid_payload","missing_thread_key","no_turn","no_output","invalid_output"];function Rr(e){if(e>=500)return"lost";return e>=400?"refused":"persisted"}var ms=new Set(["complete","error"]);function X(e){return ms.has(e)}function Te(e){return(fs(e)?.parts??[]).filter((n)=>n.type==="tool-call"&&!X(n.state))}function Ir(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n?.parts.some((o)=>o.type==="tool-call"&&o.state==="approval-requested"))return!0;if(n?.role==="user")return!1}return!1}function Jt(e){let t=e.at(-1);if(t?.role!=="assistant")return;let n=t.parts.at(-1),r=n?.type==="tool-call"||n?.type==="tool-result",o=t.parts.every((a)=>a.type!=="tool-call"||X(a.state));return r&&o?void 0:t}function fs(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if(n?.role==="assistant")return n}return}var gs={complete:"success",error:"error","approval-requested":"approval","approval-responded":"approval","awaiting-input":"pending","input-streaming":"pending","input-complete":"pending"},_s={"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 Xt(e){let{state:t,approval:n}=e;return{modifier:gs[t],labelKey:n?.approved===!1?"translate_declined":t==="approval-responded"&&n?.approved?"translate_approved":_s[t],pulse:t==="awaiting-input"||t==="input-streaming"?"default":t==="approval-requested"?"violet":void 0}}function Or(e){let t=e.output;if(t===void 0||t===null)return"";if(typeof t==="string")return t;return JSON.stringify(t,null,2)}var Pr={code:"javascript"};function Yt(e){let t=e&&typeof e==="object"?e:null,n=t?Object.entries(Pr).flatMap(([o,a])=>{let i=t[o];return typeof i==="string"?[{key:o,lang:a,value:i.replace(/\\n/g,`
|
|
2
|
+
`)}]:[]}):[],r=e;if(t){let o=Object.fromEntries(Object.entries(t).filter(([a])=>!Object.hasOwn(Pr,a)));r=Object.keys(o).length>0?o:null}return{codeSnippets:n,remainingInput:r,remainingInputText:r?JSON.stringify(r,null,2):""}}var hs=10,xs={"awaiting-input":"starting","input-streaming":"starting","input-complete":"processing","approval-requested":"approval","approval-responded":"processing",complete:"complete",error:"error"};function ys(e){let t=e.output;if(typeof t==="string")try{t=JSON.parse(t)}catch{return}if(!t||typeof t!=="object")return;if("error"in t&&t.error===!0)return"failed";if(!qe(e)?.embed||!("status"in t))return;let n=t.status;return n==="failed"||n==="cancelled"?n:void 0}function bs(e){let t=e.output;if(!t||typeof t!=="object"||!("rowCount"in t))return;let n=t.rowCount;return typeof n==="number"?n:void 0}function vs(e,t,n){if(n==="declined")return"translate_declined";if(n==="cancelled")return"translate_tool_cancelled";if(t==="error")return"translate_tool_error";if(t==="approval")return"translate_needs_approval";return`translate_${e.name==="readAttachment"?"attachment":"tool"}_${t==="complete"?"done":"status"}`}function Ke(e){let t=e.approval?.approved===!1?"declined":e.state==="complete"?ys(e):void 0,n=t?"error":xs[e.state]??"processing";return{state:n,active:n==="starting"||n==="processing",gated:Ar(e),titleKey:vs(e,n,t),statement:kr.some((r)=>r===e.name)?ze(e.input,"status"):void 0,rows:n==="complete"?bs(e):void 0}}function Zt(e){let t=e.approval?.approved,{state:n,active:r}=Ke(e),o=t===void 0?e.state==="approval-requested"?"pending":"cancelled":!t?"declined":n==="error"?"failed":"approved";return{title:Sr(e.input),fallbackKey:"translate_approval_action",fallbackParams:{tool:Ts(e.name)},decision:o,decisionKey:ws[o],state:n,active:r}}var ws={pending:void 0,approved:"translate_approved",declined:"translate_declined",failed:"translate_approved_failed",cancelled:"translate_approval_cancelled"};function Ts(e){let t=e.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return t.charAt(0).toUpperCase()+t.slice(1)}function Qt(e){return Array.from({length:hs},(t,n)=>`translate_${e}_${n}`)}function Ve(e,t){return e.filter((n,r)=>{if(n.type==="tool-result")return!1;if(t.debugMode)return!0;if(n.type==="text"&&!n.content.trim())return!1;let o=r===e.length-1;return n.type!=="thinking"||t.isStreaming&&o})}var Cs=[yt,bt];function Fr(e){return Cs.find((t)=>t===e)}function Hr(e,t){let{consumerTools:n,capabilities:r}=t;if(r?.messages!==!0&&!X(e.state))return;return n&&Object.hasOwn(n,e.name)?n[e.name]:void 0}function Ur(e,t){if(Hr(e,t))return!1;return!Fr(e.name)||!X(e.state)}function en(e,t){let n=Ke(e),r=t.capabilities?.messages===!0&&!t.agentWorking;if(e.state==="approval-requested"&&r)return{kind:"approval",asking:!0};if(t.debugMode)return{kind:"debug"};let o=Hr(e,t);if(o)return{kind:"consumer",component:o};let a=e.state==="input-complete"&&r,i=a||X(e.state)?Fr(e.name):void 0;if(i)return{kind:"builtIn",component:t.builtInTools[i]};if(a&&!t.embedUnavailable&&qe(e)?.embed)return{kind:"embed"};if(e.name==="executeCode"&&!X(e.state)&&!n.statement)return{kind:"activity",activity:"code"};if(n.gated)return{kind:"approval",asking:!1};return{kind:"pill"}}function tn(e){let t=e.approval?.id;switch(e.state){case"complete":return{kind:"output",text:Or(e)};case"error":return{kind:"error",text:Or(e)};case"approval-requested":return{kind:"approval",approvalId:t,labelKey:"translate_approval_requested",messageKey:"translate_waiting_for_approval"};case"approval-responded":return{kind:"approval",approvalId:t,labelKey:"translate_approval_response",messageKey:e.approval?.approved?"translate_tool_approved":"translate_tool_response_received"};default:return}}var nn=new WeakMap;function rn(e,t){let n=e.closest(".cortex-widget__screen"),r=n?.querySelector(".cortex-message-list");if(!n||!r||!e.value.trim())return;let o=getComputedStyle(e),a=e.getBoundingClientRect(),i=(s)=>parseFloat(o[`padding${s}`])+parseFloat(o[`border${s}Width`]);nn.set(n,{text:t,textarea:e,from:new DOMRect(a.left+i("Left"),a.top+i("Top"),a.width-i("Left")-i("Right"),a.height-i("Top")-i("Bottom")),rtl:o.direction==="rtl",scrollTop:r.scrollTop})}function ks(e,t){let n=e.closest(".cortex-widget__screen"),r=n?nn.get(n):void 0;if(!n||!r)return;nn.delete(n);let o=e.querySelectorAll(":scope > .cortex-message"),a=o[o.length-1]?.querySelector(".cortex-text-bubble--user"),i=e.closest(".cortex-message-list");if(!a||!i||r.text!==t||!r.textarea.isConnected)return;a.closest(".cortex-message-part")?.getAnimations().forEach((v)=>v.finish()),Wr(i);let s=a.getBoundingClientRect(),l=n.getBoundingClientRect(),c=getComputedStyle(a),d=parseFloat(c.paddingTop)+parseFloat(c.borderTopWidth),u=r.rtl?parseFloat(c.paddingRight)+parseFloat(c.borderRightWidth):parseFloat(c.paddingLeft)+parseFloat(c.borderLeftWidth),m=r.rtl?r.from.right+u-s.width:r.from.left-u,f=i.scrollTop-r.scrollTop;if(f)e.style.setProperty("--cortex-slide",`${f}px`),e.classList.remove("cortex-message-list__content--settling"),e.offsetWidth,e.classList.add("cortex-message-list__content--settling"),e.getAnimations()[0]?.finished.then(()=>e.classList.remove("cortex-message-list__content--settling"),()=>{return});let p=a.cloneNode(!0);p.classList.add("cortex-send-flight"),p.setAttribute("aria-hidden","true"),Object.assign(p.style,{left:`${s.left-l.left}px`,top:`${s.top-l.top}px`,width:`${s.width}px`}),p.style.setProperty("--cortex-fly-x",`${m-s.left}px`),p.style.setProperty("--cortex-fly-y",`${r.from.top-d-s.top}px`),a.style.visibility="hidden",n.append(p);let h=i.scrollTop,b=()=>{p.style.top=`${s.top-l.top-(i.scrollTop-h)}px`};i.addEventListener("scroll",b,{passive:!0}),$r(p).then(()=>{i.removeEventListener("scroll",b),a.style.visibility="",p.remove()})}function Wr(e){e.scrollTop=Br(e)}var Ss=100;function on(e,t){let n=!0,r=!0,o=!1,a=0,i;function s(){if(o)return;o=!0,queueMicrotask(()=>{o=!1,Wr(e),r=!0,n=!1})}function l(){r=Br(e)-e.scrollTop<Ss}let c=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([d])=>{let u=d?.contentRect.height??0,m=u>a;if(a=u,m&&(n||r))s()});return c?.observe(t),e.addEventListener("scroll",l,{passive:!0}),s(),{pin(){n=!0},messagesChanged(d){if(d?.role==="user"&&d.id!==i){i=d.id,n=!0;let u=d.parts.find((m)=>m.type==="text")?.content;if(u!==void 0)ks(t,u)}if(n)s()},dispose(){c?.disconnect(),e.removeEventListener("scroll",l)}}}function Br(e){let t=e.querySelector(".cortex-message-list__content");if(!t)return e.scrollHeight-e.clientHeight;let n=getComputedStyle(e);return t.offsetHeight+parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)-e.clientHeight}function an(e){let t=!1,n=e.parentElement,r=typeof ResizeObserver>"u"?void 0:new ResizeObserver(()=>{if(t)o()});r?.observe(n);function o(){let a=n.querySelector(":scope > .cortex-working-thinking, :scope > .cortex-message > .cortex-message-parts > [data-cortex-frontier]");if(!a)return!1;return e.style.setProperty("--cortex-avatar-y",`${Ms(a,n)-e.offsetHeight/2}px`),!0}return{sync(a){if(a===t){if(a)o();return}if(a){if(!o())return;e.classList.remove("cortex-working-avatar--leaving"),e.offsetWidth,e.classList.add("cortex-working-avatar--shown"),t=!0;return}t=!1;let[,i="0px"]=getComputedStyle(e).translate.split(" ");e.style.setProperty("--cortex-avatar-y",i),e.classList.add("cortex-working-avatar--leaving"),$r(e,!0).then(()=>{if(t)return;e.classList.remove("cortex-working-avatar--shown","cortex-working-avatar--leaving")})},dispose(){r?.disconnect()}}}function Ms(e,t){let n=e.querySelector(".cortex-text-bubble");if(!n)return Dr(e,t)+e.offsetHeight/2;let r=getComputedStyle(n);return Dr(n,t)+parseFloat(r.paddingTop)+parseFloat(r.borderTopWidth)+parseFloat(r.lineHeight)/2}function Dr(e,t){let n=0;for(let r=e;r instanceof HTMLElement&&r!==t;)n+=r.offsetTop,r=r.offsetParent;return n}function $r(e,t=!1){return Promise.allSettled(e.getAnimations({subtree:t}).map((n)=>n.finished))}function sn(e,t){let n=0,r,o;function a(){r=setTimeout(()=>{t({index:n,phase:"exiting"}),r=setTimeout(()=>{n=(n+1)%e,t({index:n,phase:"enter-start"}),o=requestAnimationFrame(()=>{t({index:n,phase:"entering"}),r=setTimeout(()=>{t({index:n,phase:"idle"}),a()},300)})},300)},2000)}return a(),()=>{if(clearTimeout(r),o!==void 0)cancelAnimationFrame(o)}}function ln(e){e.classList.add("cortex-widget__container--switching"),e.offsetWidth,e.classList.remove("cortex-widget__container--switching")}function cn(e,t){function n(){t.sendDraft((l)=>rn(e,l))}function r(l){if(l.key!=="Enter"||l.shiftKey)return;l.preventDefault(),n()}function o(){e.style.overflowY="hidden",e.style.height="0px",e.style.height=`${e.scrollHeight+1}px`,e.style.overflowY=""}let a=0,i=typeof ResizeObserver>"u"?void 0:new ResizeObserver(([l])=>{let c=l?.borderBoxSize[0]?.inlineSize??0;if(c===a)return;a=c,requestAnimationFrame(o)});function s(){e.removeEventListener("keydown",r),i?.disconnect()}return e.style.transition="none",e.addEventListener("keydown",r),i?.observe(e,{box:"border-box"}),{send:n,fit:o,dispose:s}}function dn(e){return{onDragOver:(t)=>{if(t.preventDefault(),e.enabled)e.setDragging(!0)},onDragLeave:(t)=>{if(!t.currentTarget?.contains(t.relatedTarget))e.setDragging(!1)},onDrop:(t)=>{if(t.preventDefault(),e.setDragging(!1),e.enabled)e.accept([...t.dataTransfer?.files??[]])},onPaste:(t)=>{let n=[...t.clipboardData?.files??[]];if(!e.enabled||!n.length)return;t.preventDefault(),e.accept(n)}}}var jr={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_connect_title:"ربط {{server}}",translate_connect_reason:"يتيح لهذا المساعد استخدام {{server}} باسمك.",translate_connect_not_now:"ليس الآن",translate_connect_button:"ربط",translate_connect_waiting:"أكمل تسجيل الدخول في النافذة التي فُتحت.",translate_connect_failed:"تعذّر الربط، حاول مرة أخرى",translate_connect_connected:"تم ربط {{server}}",translate_connect_not_connected:"لم يتم ربط {{server}}",translate_connect_more_title:"منح {{server}} وصولًا إضافيًا",translate_connect_more_reason:"يحتاج هذا المساعد إلى وصول إضافي إلى {{server}} لإنجاز ذلك.",translate_connect_more_button:"منح الوصول",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 zr={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_connect_title:"Connect {{server}}",translate_connect_reason:"Lets this assistant use {{server}} as you.",translate_connect_not_now:"Not now",translate_connect_button:"Connect",translate_connect_waiting:"Finish signing in in the window that opened.",translate_connect_failed:"Could not connect, try again",translate_connect_connected:"{{server}} connected",translate_connect_not_connected:"{{server}} not connected",translate_connect_more_title:"Give {{server}} more access",translate_connect_more_reason:"This assistant needs more access to {{server}} to do this.",translate_connect_more_button:"Give access",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 Ls={en:zr,ar:jr};function Le(e){return e&&zt.includes(e)?e:vr}function Z(e,t,n){let r=Ls[e][t],o=typeof r==="string"?r:r[new Intl.PluralRules(e).select(Number(n?.count))]??r.other;if(!n)return o;return o.replace(/\{\{\s*(\w+)\s*\}\}/g,(a,i)=>(i in n)?String(n[i]):a)}function qr(e,t,n){let r=e!==void 0&&e.messages!==!1;return{greeting:e===void 0?"":we(e.greeting,t)||Z(t,"translate_greeting"),suggestions:r&&we(e.suggestions,t)||[],send:(o)=>{if(r)n(o)}}}var Kr="cortex-recaptcha-enterprise",un;function Es(e){return un??=new Promise((t,n)=>{let r=()=>{let a=window.grecaptcha?.enterprise;if(a)a.ready(()=>t(a));else n(Error("reCAPTCHA Enterprise did not load"))};if(document.getElementById(Kr))return r();let o=document.createElement("script");o.id=Kr,o.src=`https://www.google.com/recaptcha/enterprise.js?render=${encodeURIComponent(e)}`,o.async=!0,o.addEventListener("load",r,{once:!0}),o.addEventListener("error",()=>{o.remove(),n(Error("reCAPTCHA Enterprise failed to load"))},{once:!0}),document.head.appendChild(o)}).catch((t)=>{throw un=void 0,t}),un}function Vr(e,t=document){for(let n of t.querySelectorAll(".grecaptcha-badge")){let r=n.querySelector("iframe")?.getAttribute("src");if(r&&new URL(r,"https://www.google.com").searchParams.get("k")===e)n.style.visibility="hidden"}}async function Gr(e){let t=await Es(e);Vr(e);let n=await t.execute(e,{action:Cr});return Vr(e),n}class ge extends Error{status;constructor(e,t){super(`HTTP ${e}: ${t}`);this.status=e;this.name="CortexHttpError"}}class Ye extends Error{constructor(){super("The visitor check failed");this.name="CortexVisitorUnverified"}}var fn="cortex:visitor:",Xe=new Map,Ge=new Map,gn=new Set,pn=new Set;function Xr(e){try{return localStorage.getItem(fn+e)}catch{return null}}function Yr(e,t){try{if(t===null)localStorage.removeItem(fn+e);else localStorage.setItem(fn+e,t)}catch{}}async function Jr(e,t){let n=await fetch(`${e}/visitors`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(n.status===403)return await n.json();if(!n.ok)throw new ge(n.status,n.statusText);return await n.json()}async function Rs(e){let t=await Jr(e,{});if("error"in t&&t.error==="recaptcha_required")t=await Jr(e,{recaptcha:await Gr(t.siteKey)});if("error"in t)throw new Ye;return gn.add(t.token),Yr(e,t.token),t.token}function Is(e){let t=Xe.get(e)??Xr(e);if(t)return Xe.set(e,t),Promise.resolve(t);let n=Ge.get(e);if(!n){n=Rs(e),Ge.set(e,n);let r=n,o=()=>{if(Ge.get(e)===r)Ge.delete(e)};r.then((a)=>{o(),Xe.set(e,a)},(a)=>{if(!(a instanceof Ye))o()})}return n}function Os(e,t){let n=Xe.get(e)===t;if(n)Xe.delete(e);let r=Xr(e)===t;if(r)Yr(e,null);return n||r}function _n(e){if(!e.getHeaders)return Is(Je(e,"")).then((n)=>mn({Authorization:`Bearer ${n}`}));let t=e.getHeaders();return t instanceof Promise?t.then(mn):Promise.resolve(mn(t))}function mn(e){let t={...e},n=Ps(),r=Object.keys(t).some((o)=>o.toLowerCase()===Gt.toLowerCase());if(n&&!r)t[Gt]=n;return t}function Ps(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function Je(e,t){let n=e.baseUrl;return(typeof n==="string"?n:n()).replace(/\/$/,"")+t}function Fs(e){let t=e?.match(/filename\*\s*=\s*[^']*'[^']*'([^;\r\n]+)/i)?.[1]?.trim().replace(/^"|"$/g,"");if(t)try{return decodeURIComponent(t)}catch{}return e?.match(/filename\s*=\s*"?([^";\r\n]+)"?/i)?.[1]}function Zr(e){function t(){return _n(e())}function n(a){return Je(e(),a)}function r(a,i){let s=e(),l=new Headers(i).get("Authorization")?.replace(/^Bearer /,"");if(s.getHeaders||l===void 0)return;if(a.ok)gn.delete(l);if(a.status!==401)return;let c=Je(s,""),d=Os(c,l);if(gn.delete(l))return"refused";if(d){for(let u of[...pn])if(u.visitorOf()===c)u.heard()}return"stale"}async function o(a,i,s=!1){let l=new Headers(await t());if(new Headers(i?.headers).forEach((u,m)=>{l.set(m,u)}),i?.body instanceof FormData)l.delete("Content-Type");else if(!l.has("Content-Type"))l.set("Content-Type","application/json");let c=await fetch(n(a),{...i,headers:l});if(!c.ok){if(r(c,l)==="stale"&&!s)return o(a,i,!0);throw new ge(c.status,c.statusText)}r(c,l);let d=await c.text();return d?JSON.parse(d):void 0}return{onVisitorReplaced(a){let s={visitorOf:()=>{let l=e();return l.getHeaders?void 0:Je(l,"")},heard:a};return pn.add(s),()=>{pn.delete(s)}},retrySignIn(){Ge.delete(Je(e(),""))},getCapabilities(){return o("/capabilities")},listThreads(){return o("/threads")},createThread(){let a=e().threadBody;return o("/threads",{method:"POST",...a&&{body:JSON.stringify(a)}})},deleteThread(a){return o(`/threads/${a}`,{method:"DELETE"})},listMessages(a){return o(`/threads/${a}/messages`)},listLlmRequests(a,i){return o(`/threads/${a}/messages/${i}/llm-requests`)},abortStream(a){return o(`/chat/${a}/abort`,{method:"POST"})},initiateToolCall(a,i){return o(`/chat/${a}/tools/${i}/initiate`,{method:"POST"})},accountConnection(a,i,s){return o(`/connections/${encodeURIComponent(a)}?call=${encodeURIComponent(i)}`,{signal:s})},uploadAttachment(a,i){let s=new FormData;return s.append("file",i),o(`/threads/${a}/files`,{method:"POST",body:s})},deleteAttachment(a){return o(`/files/${a}`,{method:"DELETE"})},async downloadAttachment(a){let i=await t(),s=await fetch(n(`/files/${a}`),{headers:i});if(r(s,i),!s.ok)throw new ge(s.status,s.statusText);return{blob:await s.blob(),name:Fs(s.headers.get("Content-Disposition"))??a}},resolveHeaders:t,resolveUrl:n,readVisitorAnswer:r}}var hn=30000;function xn(e){return Math.min(1000*2**(e-1),hn)}var Hs=1e4;function Qr(e){let t,n,r=0,o=!1,a=!1;function i(){let{wsUrl:l,transport:c}=e.getConfig();if(l===!1)return;let d=Us(l,c.baseUrl);_n(c).then((u)=>{if(o)return;t=new WebSocket(Ds(d,u)),t.addEventListener("open",()=>{a=!0;let m=t;setTimeout(()=>{if(t===m&&!o)r=0},Hs),e.onOpen?.()}),t.addEventListener("message",(m)=>{let f=m.data;if(typeof f!=="string")return;let p;try{p=JSON.parse(f)}catch{return}e.onEvent(p)}),t.addEventListener("close",()=>{if(!a&&!o)e.onFailedOpen?.();a=!1,s()})}).catch(s)}function s(){if(o||n)return;r+=1,n=setTimeout(()=>{n=void 0,i()},xn(r))}return i(),{close(){o=!0,a=!1,clearTimeout(n),t?.close()},isOpen(){return a}}}function Us(e,t){if(e)return e;let n=typeof t==="string"?t:t(),r=new URL(n,window.location.origin);return r.protocol=r.protocol==="https:"?"wss:":"ws:",r.pathname=r.pathname.replace(/\/$/,"")+"/ws",r.toString()}function Ds(e,t){let n=(i)=>Object.entries(t).find(([s])=>s.toLowerCase()===i.toLowerCase())?.[1],r=n("Authorization"),o=Object.entries({token:r?.startsWith("Bearer ")?r.slice(7):void 0,operator:n(Lr),inspect:n(Er)}).filter((i)=>Boolean(i[1]));if(o.length===0)return e;let a=new URL(e,window.location.origin);for(let[i,s]of o)if(!a.searchParams.has(i))a.searchParams.set(i,s);return a.toString()}var eo={unreachable:"translate_agent_unreachable",refused:"translate_access_refused",unverified:"translate_visitor_unverified",missing:"translate_agent_missing"};function Ws(e){if(e instanceof Ye)return"unverified";let t=e instanceof ge?e.status:void 0;if(t===401)return"refused";if(t===404)return"missing";return"unreachable"}function yn(e,t,n=xn){let r=!1,o,a=0;function i(){e().then((s)=>{if(!r)t.onAnswered(s)},(s)=>{if(r)return;let l=Ws(s);if(t.onMissed?.(l),l==="missing")return;a+=1,o=setTimeout(i,l==="refused"||l==="unverified"?hn:n(a))})}return i(),function(){r=!0,clearTimeout(o)}}function vt(){if(typeof crypto.randomUUID==="function")return crypto.randomUUID();let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,(n)=>n.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var Bs={type:"translate_attachment_rejected_type",size:"translate_attachment_rejected_size",name:"translate_attachment_rejected_name",count:"translate_attachment_rejected_count"};function bn(e,t){if(!e.refusal)return Z(t,"translate_attachment_rejected");return Z(t,Bs[e.refusal],{types:new Intl.ListFormat(t).format(je.map((n)=>n.slice(n.indexOf("/")+1).toUpperCase())),size:qt/1024/1024,count:Kt})}function to(e){let{api:t}=e,n=new Set,r=new Set,o=[],a=[],i=Promise.resolve();function s(){return o}function l(g){return n.add(g),()=>{n.delete(g)}}function c(g){o=g;for(let w of n)w()}function d(g,w){c(o.map((S)=>S.localId===g?{...S,...w}:S))}function u(g){if(r.delete(g))return;d(g,{status:"error"})}async function m(g,w,S){if(r.delete(g))return;let I;try{I=await t.uploadAttachment(w,S)}catch{u(g);return}if(r.delete(g)){t.deleteAttachment(I.id).catch(()=>{});return}d(g,{status:"ready",attachmentId:I.id,summary:I})}function f(g){let w=[];for(let S of g){let I=Tr(S),R=o.filter((le)=>le.status!=="error").length>=Kt,K=I!=="ok"?I:R?"count":void 0,oe=vt();if(c([...o,K?{localId:oe,filename:S.name,status:"error",refusal:K}:{localId:oe,filename:S.name,status:"uploading"}]),!K)w.push({localId:oe,file:S})}if(!w.length)return;e.ensureThread().then((S)=>{for(let{localId:I,file:R}of w){if(r.delete(I))continue;d(I,{threadId:S}),i=i.then(()=>m(I,S,R)).catch(()=>{})}},()=>{for(let{localId:S}of w)u(S)})}function p(g){let w=o.find((S)=>S.localId===g);if(!w)return;if(w.status==="uploading"){r.add(g),c(o.filter((S)=>S.localId!==g));return}if(w.attachmentId){d(g,{status:"deleting"}),t.deleteAttachment(w.attachmentId).then(()=>c(o.filter((S)=>S.localId!==g)),()=>d(g,{status:"error"}));return}c(o.filter((S)=>S.localId!==g))}function h(g){let w=[];for(let S of o){if(S.threadId!==void 0&&S.threadId!==g){w.push(S);continue}if(S.status==="uploading")r.add(S.localId);else if(S.status==="ready"&&S.threadId===g&&S.attachmentId)t.deleteAttachment(S.attachmentId).catch(()=>{})}if(w.length!==o.length)c(w)}function b(){let g=o.flatMap((w)=>w.status==="ready"&&w.summary?[{...w,status:"ready",summary:w.summary}]:[]);return c(o.filter((w)=>w.status!=="ready")),a=g,g}function v(g){let w=a;if(a=[],w.some((S)=>S.threadId!==g))return;c([...w.map((S)=>({...S,status:"error"})),...o])}function C(){a=[]}return{getState:s,subscribe:l,accept:f,remove:p,clear:h,consumeReady:b,restoreConsumed:v,discardConsumed:C}}function no(e){return{uploading:e.some((t)=>t.status==="uploading"),busy:e.some((t)=>t.status==="uploading"||t.status==="deleting"),hasReady:e.some((t)=>t.status==="ready")}}import{StreamProcessor as Xs}from"@tanstack/ai";import{ChatClient as Ys}from"@tanstack/ai-client";import{EventType as ao}from"@tanstack/ai";import{fetchServerSentEvents as ro}from"@tanstack/ai-client";function $s(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t],r="parts"in n&&n.parts.some((o)=>o.type==="tool-result"||o.type==="tool-call"&&o.state==="approval-responded");if(n.role==="user"||r)return e.slice(t,t+1)}return e.slice(-1)}function js(e){if(e.state==="approval-responded"){let t=e.approval?.approved;if(t===void 0)return null;return{toolCallId:e.id,output:null,state:t?"approved":"denied"}}if(!X(e.state))return null;return{toolCallId:e.id,output:e.output??null,state:e.state==="error"?"error":"complete"}}function zs(e){let[t]=e;if(!t||t.role!=="assistant"||!("parts"in t))return null;let n=t.parts.flatMap((r)=>{let o=r.type==="tool-call"?js(r):null;return o?[o]:[]});return n.length>0?n:null}async function qs(e){if(e.status!==409)return;let t=await e.clone().json().catch(()=>{return});return t!==null&&typeof t==="object"&&"outcome"in t&&t.outcome==="dropped"&&"reason"in t&&t.reason==="approval_pending"?"approval_pending":void 0}async function*oo(e,t,n){for await(let r of e){if(r.type!==ao.MESSAGES_SNAPSHOT){yield r;continue}let o=t.localMessages(),a=o.findIndex((s)=>s.id===n),i=a===-1?[]:o.slice(a+1).filter((s)=>s.role==="user");t.onTranscriptCarried?.(r.timestamp??Date.now()),yield{...r,messages:[...r.messages,...i]}}}function so(e){let{api:t,thread:n}=e,r=async()=>({headers:await t.resolveHeaders()}),o=0;async function*a(u,m){o+=1,e.onStreamStarted?.();try{yield*u}finally{o-=1,m?.()}}function i(u,m){let f=Object.assign(async(p,h)=>{let b=await fetch(p,h).catch((g)=>{throw u("lost"),g});u(Rr(b.status)),t.readVisitorAnswer(b,h?.headers);let v=new Headers(h?.headers).has("Last-Event-ID");if(m&&!v&&b.status===401)e.onMessageRefused?.();let C=await qs(b);if(C)e.onRefused?.(C);return b},fetch);return ro(()=>t.resolveUrl("/chat"),async()=>({...await r(),fetchClient:f}))}let s=function(u,m,f,p){let h=$s(u),b=zs(h),v=b?.map((S)=>S.toolCallId),C,g=i((S)=>{if(C)return;if(C=S,v&&C==="persisted")e.onReceipt?.(v,C)},!b&&h[0]?.role==="user"),w=b?g.connect([],{...m,[Mr]:b},f,p):g.connect(h,m,f,p);return a(oo(w,e,u.at(-1)?.id),()=>{if(v&&C!=="persisted")e.onReceipt?.(v,C??"lost")})},l=ro(()=>t.resolveUrl(`/chat/${n.id}/stream`),r),c=[];async function*d(u,m){yield{type:ao.MESSAGES_SNAPSHOT,timestamp:Date.now(),messages:c},yield*oo(l.joinRun(u,m),e,c.at(-1)?.id)}return{connect:s,joinRun:(u,m)=>a(d(u,m)),streaming:()=>o>0,hydrate:async()=>{let u=await Ks(e);return c=u.messages,u}}}async function Ks(e){let{api:t,thread:n,mode:r}=e,o=n.isRunning?{runId:n.id}:null;if(r==="skip")return{messages:[],activeRun:o,interrupts:null};if(r==="load")e.setLoadingMessages?.(!0);try{let i=(await t.listMessages(n.id)).map(Vt);return e.onHydrated?.(i),{messages:i,activeRun:o,interrupts:null}}finally{e.setLoadingMessages?.(!1)}}async function io(e){if(e.isStale?.()||e.isStreaming())return;try{let t=await e.api.listMessages(e.threadId);if(e.isStale?.()||e.isStreaming())return;let n=t.map(Vt);return e.setMessages(n),n}catch{return}}import{EventType as Vs}from"@tanstack/ai";function Gs(e){return new Set(Te(e).filter((t)=>t.state!=="approval-responded").map((t)=>t.id))}function vn(e){return e.refusal==="approval_pending"?"translate_approval_pending":"translate_error"}var Js=2;function lo(e){let t=!1,n=!1,r=!1,o,a,i,s,l=!1,c=!1,d,u,m=new Set,f=new Map,p=new Map,h=0,b=0,v=0,C=!1;function g(){if(t)return;t=!0,e.setRunning(!0)}function w(k,N){f.get(k)?.waiters.forEach(N),f.delete(k)}function S(k,N,L=!1){for(let O of k){let U=f.get(O);if(!U)continue;if(U.failure=N,L)U.mayHaveLanded=!0}le()}async function I(k,N,L){try{await N()}catch(O){if(L)L.failures+=1;S([k],O instanceof Error?O:Error("The answer was not sent"))}}function R(k){for(let[N,L]of f)if(!k.has(N)){if(L.mayHaveLanded)g();w(N,(O)=>O.resolve())}else if(L.failure){let{failure:O}=L;w(N,(U)=>U.reject(O))}else I(N,L.deliver)}function K(k){for(let[L,O]of p){if(k.has(L))continue;if(p.delete(L),O.mayHaveLanded)g()}let N=[...p.values()];if(N.some((L)=>L.failures>Js))return;for(let L of N)oe(L)}function oe(k){if(!e.answers())return C=!0,Promise.resolve();return I(k.answer.toolCallId,()=>e.deliver(k.answer),k)}async function le(){let k=h,N=++b,L=()=>h!==k||v>N||!e.isAlive(),O=await e.refreshMessages(L).catch(()=>{return});if(!O||L())return;v=N;let U=Gs(O),ve=C;if(C=!1,R(U),K(U),t||ve)ae(O)}async function V(k,N){let L;try{let ve=N({toolCallId:k.id,toolName:k.name,input:k.input},{threadId:e.threadId});if(ve===null||ve===void 0)return;L=await Promise.resolve(ve)}catch{m.delete(k.id);return}if(L===null||L===void 0)return;if(!e.isAlive())return;let U={answer:{toolCallId:k.id,tool:k.name,output:L},failures:0,mayHaveLanded:!1};p.set(k.id,U),await oe(U)}function ae(k){let N=Te(k),L=e.onToolCall();if(!L)return N.length>0;if(!e.answers())return C||=N.length>0,N.length>0;for(let O of N){if(O.state!=="input-complete"||m.has(O.id))continue;m.add(O.id),V(O,L)}return N.length>0}async function Be(k){if(r)e.reloadThreads().catch(()=>{});else e.setRunning(!1);if(t&&!l&&ae(k()))return;if(u===void 0&&d!==void 0)return;u=void 0,await le()}return{chunkArrived(k){if(n=!0,k.type===Vs.RUN_ERROR&&k.code!=="aborted")o={reason:k.message||void 0}},transcriptCarried(k){if(d=k,u!==void 0&&u<=k)u=void 0},transcriptUpdated(k){let N=Date.parse(k);if(d!==void 0&&N<=d)return;if(!c){le();return}u=Math.max(u??0,N)},streamFailed(){if(r=!0,l)return;if(n)e.onTurnFinished();else e.onSendFailed();if(a){if(e.setTurnFailed({reason:void 0,refusal:a}),s!==void 0)e.returnDraft(s);return}let N=o??(s!==void 0&&!n?{reason:void 0}:void 0);if(N)e.setTurnFailed(N)},loadingChanged(k,N){if(k){c=!0;return}if(!c)return;c=!1,e.onTurnFinished(),Be(N)},hydrated(k,N){if(N)return;setTimeout(()=>{if(e.isAlive())ae(k)},0)},deliverAnswer(k,N){return new Promise((L,O)=>{let U=[...f.get(k)?.waiters??[],{resolve:L,reject:O}];f.set(k,{deliver:N,waiters:U}),I(k,N)})},receiptArrived(k,N){if(N==="persisted"){for(let O of k)p.delete(O),w(O,(U)=>U.resolve());g();return}let L=N==="lost";for(let O of k){let U=p.get(O);if(!U)continue;U.failures+=1,U.mayHaveLanded||=L}S(k,Error(L?"The answer was lost":"Cortex refused the answer"),L)},readBack:le,resumeAnswers(){if(C&&!c)le()},streamStarted(){if(t)e.setRunning(!0);h+=1,r=!1,o=void 0,a=void 0,s=i,i=void 0,d=void 0,l=!1,e.setTurnFailed(void 0)},sendStarted(k){h+=1,i=k,t=!0,n=!1},sendRefused(k){a=k},abortConfirmed(){l=!0}}}var wt={messages:[],isAgentWorking:!1,isLoadingMessages:!1,hasPendingToolCalls:!1,awaitsApproval:!1,turnFailure:void 0};function co(e){let{api:t}=e,n=e.thread.id,r=new Set,o=wt,a=s(e.thread,e.mode);function i(p,h){if(Object.is(o[p],h))return;let b={...o,[p]:h};o={...b,hasPendingToolCalls:!b.isAgentWorking&&Te(b.messages).length>0,awaitsApproval:Ir(b.messages)},r.forEach((v)=>v())}function s(p,h,b){let v=!0;function C(R){return(...K)=>{if(v)R(...K)}}let g=Promise.resolve(),w=lo({threadId:n,isAlive:()=>v,onToolCall:()=>e.getHooks()?.onToolCall,answers:e.answers,deliver:(R)=>I.addToolResult(R),setRunning:e.setRunning,reloadThreads:e.reloadThreads,refreshMessages:(R)=>{let K=g.then(()=>io({api:t,threadId:n,isStale:()=>!v||R(),isStreaming:S.streaming,setMessages:(oe)=>I.setMessagesManually(oe)}));return g=K,K},onTurnFinished:e.onTurnFinished,onSendFailed:e.onSendFailed,setTurnFailed:C((R)=>i("turnFailure",R)),returnDraft:C(e.onReturned)}),S=so({api:t,thread:p,mode:h,localMessages:()=>I.getMessages(),onHydrated:C((R)=>w.hydrated(R,p.isRunning)),onTranscriptCarried:C((R)=>w.transcriptCarried(R)),onStreamStarted:C(()=>w.streamStarted()),onRefused:C((R)=>w.sendRefused(R)),onMessageRefused:e.onMessageRefused,onReceipt:C((R,K)=>w.receiptArrived(R,K)),setLoadingMessages:C((R)=>i("isLoadingMessages",R))}),I=new Ys({threadId:n,persistence:!0,initialMessages:b,connection:S,onChunk:C((R)=>w.chunkArrived(R)),onError:C(()=>w.streamFailed()),onMessagesChange:C((R)=>i("messages",R)),onLoadingChange:C((R)=>{i("isAgentWorking",R);let K=()=>I.getMessages();if(R){w.loadingChanged(!0,K);return}setTimeout(C(()=>{if(!I.getIsLoading())w.loadingChanged(!1,K)}))})});return I.attach(),{client:I,lifecycle:w,isAlive:()=>v,close(){v=!1,I.detach(),I.stop(),I.dispose()}}}async function l(p,h=()=>[]){if(!a.isAlive()||o.isAgentWorking||o.awaitsApproval)return!1;let{client:b,lifecycle:v}=a;return v.loadingChanged(!1,()=>b.getMessages()),v.sendStarted(p),await b.append({id:vt(),role:"user",parts:[{type:"text",content:p}],metadata:{createdAt:new Date().toISOString(),attachments:h()}}),!0}async function c(){let{client:p,lifecycle:h,isAlive:b}=a;if(!b()||!p.getIsLoading())return;let{aborted:v}=await t.abortStream(n).catch(()=>({aborted:!1}));if(!b())return;if(v)h.abortConfirmed();else p.stop()}function d(p,h,b){let{client:v,lifecycle:C,isAlive:g}=a;if(!g())return Promise.resolve();return C.deliverAnswer(p,()=>v.addToolResult({toolCallId:p,tool:h,output:b}))}function u(p,h){let{client:b,lifecycle:v,isAlive:C}=a;if(!C())return Promise.resolve();let g=Nr(p);return v.deliverAnswer(p.id,async()=>{let w=b.getInterrupts().find((S)=>S.id===g);if(w&&"resolveInterrupt"in w)w.resolveInterrupt({approved:h});else await Zs(b,g,h)})}function m(p){if(!a.isAlive()||p.id!==n||a.client.getIsLoading())return;if(!p.isRunning){a.lifecycle.readBack();return}a.close(),i("isLoadingMessages",!1),i("turnFailure",void 0),a=s(p,"reload",o.messages)}function f(p){if(a.isAlive()&&p.id===n)a.lifecycle.transcriptUpdated(p.updatedAt)}return{threadId:n,getState:()=>o,subscribe:(p)=>(r.add(p),()=>{r.delete(p)}),send:l,abort:c,addToolResult:d,respondToApproval:u,reattach:m,transcriptUpdated:f,resumeAnswers:()=>{if(a.isAlive())a.lifecycle.resumeAnswers()},dispose(){a.close(),r.clear()}}}async function Zs(e,t,n){let r=new Xs;r.setMessages(e.getMessages()),r.addToolApprovalResponse(t,n);let o=r.getMessages(),a=o.filter((s)=>s.role==="assistant").at(-1),i=a?.parts.some((s)=>s.type==="tool-call"&&s.approval?.id===t);if(!a||!i||!r.areAllToolsComplete()||e.getInterrupts().length>0){e.setMessagesManually(o);return}e.setMessagesManually(o.filter((s)=>s!==a)),await e.append(a)}function wn(e){return[...e].sort((t,n)=>{let r=Date.parse(n.updatedAt)-Date.parse(t.updatedAt);if(r!==0)return r;return Date.parse(n.createdAt)-Date.parse(t.createdAt)})}function Tn(e,t){let n=[...e],r=n.findIndex((o)=>o.id===t.id);if(r===-1)n.push(t);else n[r]={...n[r],...t};return wn(n)}function uo(e,t){return e.filter((n)=>n.id!==t)}function Qs(e,t,n){return e.map((r)=>r.id===t?{...r,title:n}:r)}var ei=[0,1000,2000,3000,4000];function po(e){let t=e.delays??ei,n=!1,r;function o(){let s=e.selected();return!n&&!e.socketOpen()&&s?.id===e.threadId&&!s.title}async function a(s){if(!o())return;let c=(await e.listThreads().catch(()=>{return}))?.find((d)=>d.id===e.threadId)?.title;if(!o())return;if(c)e.setTitle(c);else i(s+1)}function i(s){let l=t[s];if(l!==void 0)r=setTimeout(()=>void a(s),l)}return i(0),function(){n=!0,clearTimeout(r)}}function mo(e,t){switch(t.type){case"thread:deleted":return uo(e,t.payload.threadId);case"thread:created":case"thread:title-updated":case"thread:run-started":case"thread:run-finished":case"thread:messages-updated":return Tn(e,t.payload.thread);default:return e}}function fo(){let e=new Map,t=new Map,n=new Map,r=new Set,o=0,a=0;function i(s){if(s.type==="thread:run-started")return e.set(s.payload.thread.id,s.payload.runId),!0;if(s.type!=="thread:run-finished")return!0;let l=e.get(s.payload.thread.id);return l===void 0||l===s.payload.runId}return{admits(s){if(!i(s))return!1;if("thread"in s.payload)t.set(s.payload.thread.id,++o);if(s.type==="thread:deleted")r.add(s.payload.threadId);return!0},running(s,l){return n.set(s,++o),(c)=>{let d=c?.find((u)=>u.id===s);return c&&d?Tn(c,{...d,isRunning:l}):c}},created(s){return t.set(s.id,++o),(l)=>Tn(l??[],s)},retitled(s,l){return t.set(s,++o),(c)=>c&&Qs(c,s,l)},deleted(s){return r.add(s),(l)=>l&&uo(l,s)},async read(s){e.clear();let l=++o,c=wn(await s()),d=l<a;a=Math.max(a,l);function u(m){if(d&&m)return m;let f=new Map(c.map((p)=>[p.id,p]));for(let p of m??[]){let h=f.get(p.id);if((t.get(p.id)??0)>l)f.set(p.id,p);else if(h&&(n.get(p.id)??0)>l)f.set(p.id,{...h,isRunning:p.isRunning})}for(let p of r)f.delete(p);return wn([...f.values()])}return{listed:c,show:u}}}}function go(e,t){for(let n in e)if(!Object.is(e[n],t[n]))return!1;return!0}function Ze(e,t){let{capabilities:n,session:r}=e,o=no(e.attachments);return n!==void 0&&n.messages!==!1&&!e.creating&&!r.isAgentWorking&&!r.awaitsApproval&&!o.busy&&(Boolean(t.trim())||o.hasReady)}function Cn(e){let{capabilities:t,unanswered:n}=e;if(e.session.hasPendingToolCalls)return;if(t===void 0)return n&&eo[n];if(t.messages)return"composer";return t.readOnly?"translate_read_only":"translate_messages_disabled"}function kn(e){let{getConfig:t}=e,n=Zr(()=>t().transport),r=new Set,o=fo(),a=to({api:n,ensureThread:_r}),i={threads:void 0,selected:void 0,session:wt,capabilities:void 0,displayName:void 0,unanswered:void 0,attachments:a.getState(),creating:!1,screen:"chat",sidebarOpen:!1,debugMode:!1},s={...i,parts:_o(i)},l="",c,d,u=0,m,f,p,h,b,v,C,g,w=[],S=!1,I={reported:s.session,debug:!1,session:s.session};a.subscribe(()=>V({attachments:a.getState()}));function R(){for(let _ of r)_()}function K(_){return r.add(_),()=>{r.delete(_)}}function oe(_){let M=d;return M&&(_?.find((E)=>E.id===M.id)??M)}function le(_){let M=f?.getState()??wt;if(M===I.reported&&_===I.debug)return I.session;let E=M.turnFailure,H=_||E?.reason===void 0?M:{...M,turnFailure:{...E,reason:void 0}};return I={reported:M,debug:_,session:H},H}function V(_={}){let M={...s,..._},E={...M,selected:oe(M.threads),session:le(Boolean(M.capabilities?.debug)),creating:m?.generation===u&&m.forMessage},H=_o(E),J={...E,parts:go(H,s.parts)?s.parts:H};if(go(J,s))return;s=J,R()}function ae(_){V({threads:_(s.threads)})}function Be(_){if(_===l)return;l=_,R()}function k(_){if(_)Be(l?`${_}
|
|
3
|
+
${l}`:_)}function N(_,M=!1){let E=s.selected;ae(_);let H=s.selected;if(H){if(M||H.isRunning&&!E?.isRunning)f?.reattach(H);else if(H.updatedAt!==E?.updatedAt)f?.transcriptUpdated(H)}L()}function L(){let _=t().thread,M=!S&&_&&s.threads?.find((E)=>E.id===_);if(!M)return;S=!0,gr(M)}async function O(_=!1){let M=h,E=await o.read(()=>n.listThreads()).catch(()=>{return});if(!E||!h||h!==M)return!1;return N(E.show,_),!0}function U(){v?.(),V({capabilities:void 0,unanswered:void 0}),v=yn(()=>n.getCapabilities(),{onAnswered:(_)=>{if(V({capabilities:_,displayName:_.displayName,unanswered:void 0,debugMode:s.debugMode&&_.debug}),xt())f?.resumeAnswers()},onMissed:(_)=>V({unanswered:_,displayName:s.displayName??{}})})}function ve(){C?.();let _=d?.id;if(!_)return;C=po({threadId:_,listThreads:()=>n.listThreads(),selected:()=>s.selected,socketOpen:()=>h?.isOpen()??!1,setTitle:(M)=>ae(o.retitled(_,M))})}function $e(_){f?.dispose(),f=void 0,p=void 0;let M=oe(s.threads);if(h&&M){let E=co({api:n,thread:M,mode:_,getHooks:()=>t().hooks,answers:xt,setRunning:(H)=>{if(H||!p)ae(o.running(M.id,H))},reloadThreads:()=>O(),onTurnFinished:()=>{if(a.discardConsumed(),ve(),p)O().then((H)=>{p=void 0;let J=s.selected;if(H&&J?.isRunning)f?.reattach(J)})},onSendFailed:()=>a.restoreConsumed(M.id),onReturned:k,onMessageRefused:()=>{if(c?.session!==E||f===E)return;if(t().transport.getHeaders)return;k(c.text),c=void 0}});f=E,E.subscribe(()=>V())}V()}function mr(){u+=1,a.clear(d?.id)}function fr(){V({screen:"chat",sidebarOpen:!1})}function gr(_){if(fr(),d?.id===_.id)return;let M=s.selected;mr(),d=_,$e("load");let E=t().hooks;if(M)E?.onThreadDeselected?.(M);E?.onThreadSelected?.(_)}function ht(){let _=s.selected;if(mr(),d=void 0,$e("load"),_)t().hooks?.onThreadDeselected?.(_)}function Ya(){ht(),fr()}async function Za(_){if(d?.id===_)ht();await n.deleteThread(_),ae(o.deleted(_))}function Qa(){return new Promise((_)=>{if(h)_();else w.push(_)})}function _r(_=!1){if(d)return Promise.resolve(d.id);if(m?.generation===u)m={...m,forMessage:m.forMessage||_};else{let M=u,E=()=>{if(m?.generation===M)m=void 0},H=n.createThread().then(async(J)=>{if(ae(o.created(J)),await Qa(),E(),u===M)d=J,$e("skip"),t().hooks?.onThreadSelected?.(J);return J.id},(J)=>{throw E(),V(),J});m={generation:M,threadId:H,forMessage:_}}return V(),m.threadId}function es(_){let M=l;if(!Ze(s,M))return;_(M.trim()),Be(""),hr(M)}function Bt(_){return k(_),{sent:!1,text:_}}async function hr(_){if(!Ze(s,_))return Bt(_);let M=u,E=await _r(!0).catch(()=>{return}),H=f;if(!H||H.threadId!==E||u!==M)return Bt(_);let J=Z(Le(t().locale),"translate_attachment_caption"),xr={session:H,text:_};return c=xr,await H.send(_.trim()||J,()=>a.consumeReady().map((ls)=>ls.summary)).finally(()=>{if(c===xr)c=void 0})?{sent:!0}:Bt(_)}function ts(_){if(o.admits(_))ae((M)=>{let E=mo(M??[],_);return M||E.length?E:M});switch(_.type){case"thread:deleted":if(d?.id===_.payload.threadId)ht();break;case"thread:run-started":if(_.payload.thread.id===d?.id&&s.session.isAgentWorking)p=_.payload.runId;f?.reattach(_.payload.thread);break;case"thread:run-finished":if(_.payload.runId===p)p=void 0;f?.transcriptUpdated(_.payload.thread);break;case"thread:messages-updated":f?.transcriptUpdated(_.payload.thread);break}}function ns(){U(),O(!0)}function rs(){ht(),jt(),$t()}function $t(){if(h)return;g=n.onVisitorReplaced(rs);let _=!1;h=Qr({getConfig:t,onEvent:ts,onOpen:()=>{if(_)ns();_=!0},onFailedOpen:()=>{if(!t().transport.getHeaders)n.getCapabilities().catch(()=>{return})}}),b=yn(()=>o.read(()=>n.listThreads()),{onAnswered:({show:M})=>N(M),onMissed:(M)=>{if(M!=="unreachable")ae((E)=>E??[])}}),U(),$e("load");for(let M of w.splice(0))M()}function jt(){if(!h)return;g?.(),h.close(),h=void 0,b?.(),v?.(),C?.(),$e("load")}function os(){if(t().viewMode==="full")V({sidebarOpen:!0});else V({screen:"threads"})}function as(){if(t().viewMode==="full")V({sidebarOpen:!1});else V({screen:"chat"})}function xt(){return s.capabilities?.messages===!0}function ss(_,M,E){if(!xt())return Promise.resolve();return f?.addToolResult(_,M,E)??Promise.resolve()}function is(_,M){if(!xt())return Promise.resolve();return f?.respondToApproval(_,M)??Promise.resolve()}return{api:n,getState:()=>s,getDraft:()=>l,subscribe:K,start:$t,stop:jt,setDraft:Be,submit:hr,sendDraft:es,abort:()=>f?.abort()??Promise.resolve(),addToolResult:ss,respondToApproval:is,openThread:gr,newChat:Ya,deleteThread:Za,attachFiles:a.accept,removeAttachment:a.remove,openHistory:os,closeHistory:as,toggleDebug:()=>V({debugMode:!s.debugMode}),retry:()=>{n.retrySignIn(),jt(),$t()}}}function _o(e){let{threads:t,selected:n,capabilities:r,displayName:o,debugMode:a}=e;return{threads:t,selected:n,capabilities:r,displayName:o,debugMode:a,isWorking:e.session.isAgentWorking}}function Sn(e,t,n,r){let o=Le(n.locale),a=t.capabilities?.readOnly===!1?{newChat:e.newChat,deleteThread:(l)=>void e.deleteThread(l)}:void 0,i=t.displayName===void 0?"":we(t.displayName,o)??Z(o,"translate_new_chat");function s(l){return{screen:l,viewMode:n.viewMode??"helper",title:t.selected?.title??i,threadCount:t.threads?.length,isWorking:t.isWorking,debug:{shown:Boolean(t.capabilities?.debug),on:t.debugMode},newChat:a?.newChat,openHistory:e.openHistory,closeHistory:e.closeHistory,toggleDebug:e.toggleDebug}}return{chatHeader:s("chat"),threadsHeader:s("threads"),landing:{...qr(t.capabilities,o,(l)=>void e.submit(l)),threads:t.threads,composer:r,openThread:e.openThread,openHistory:e.openHistory},threadList:{threads:t.threads,selectedThreadId:t.selected?.id,openThread:e.openThread,...a}}}var ho="allow-scripts allow-forms allow-popups";function ti(e,t){try{return e.contentWindow?.location.origin===t}catch{return!1}}function Mn(e){let t=e.host.location.origin,n=!1,r=!1,o,a=!1,i;function s(m){if(!n)e.onState(m)}function l(){if(n)return;r=!1,s({phase:"error"})}function c(m){if(n||r)return;r=!0,s({phase:"settling"});try{let f=e.submit(m);if(f instanceof Promise)f.catch(l)}catch{l()}}function d(m){if(!o)return;if(i===void 0||m.source!==i)return;let f=br(m.data,m.origin,o);if(!f)return;c({status:f.status,reference:f.reference,result:f.result})}function u(){if(n||r)return;o=void 0,i=void 0,s({phase:"error"})}return e.host.addEventListener("message",d),{async start(){s({phase:"initiating"});try{let m=await e.initiate(),f=new URL(m.embedUrl);if(!/^https?:$/.test(f.protocol)){s({phase:"error"});return}let p=f.origin===t;a=p&&e.trustSameOrigin===!0,o=m.embedOrigin,s({phase:"embedded",embedUrl:m.embedUrl,surface:m.surface,sandbox:p&&!a?ho:`${ho} allow-same-origin`})}catch(m){let f=m instanceof ge&&m.status===404;s({phase:f?"unavailable":"error"})}},setSource(m){if(m!==null&&m!==void 0)i=m},frameLoaded(m){if(!a&&ti(m,t))u()},cancel(){c({status:"cancelled"})},dispose(){n=!0,e.host.removeEventListener("message",d)}}}async function Qe(e,t){let n=await import("leaflet"),r=!t.interactive,o=n.map(e,{center:t.center,zoom:t.zoom,zoomControl:!r,dragging:!r,scrollWheelZoom:!r,doubleClickZoom:!r,touchZoom:!r,boxZoom:!r,keyboard:!r});n.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(o);let a=new ResizeObserver(()=>o.invalidateSize());return a.observe(e),{leaflet:n,map:o,dispose(){a.disconnect(),o.remove()}}}var Tt={position:void 0,locating:!1,locateFailed:!1,mapFailed:!1,submitting:!1,deliveryFailed:!1},ni={center:{lat:20,lng:0},zoom:2},ri=13,yo=16,oi=1e4;function Nn(e,t){let n=Tt,r=!1,o=!1,a,i,s,l=0;function c(f){if(n={...n,...f},!r)t.onState(n)}function d(){let f=n.position;if(!a||!f)return;let{leaflet:p,map:h}=a;if(i)i.setLatLng(f);else{let b=p.marker(f,{draggable:!n.submitting}).addTo(h);b.on("dragend",()=>{let{lat:v,lng:C}=b.getLatLng();u({lat:v,lng:xo(C)})}),i=b}s?.remove(),s=f.accuracy?p.circle(f,{radius:f.accuracy}).addTo(h):void 0}function u(f){if(n.submitting)return;l+=1,c({position:f,locating:!1,locateFailed:!1}),d()}function m(f){if(r||o)return;o=!0,l+=1,i?.dragging?.disable(),c({submitting:!0,locating:!1,deliveryFailed:!1});let p=()=>{o=!1,i?.dragging?.enable(),c({submitting:!1,deliveryFailed:!0})};try{let h=t.submit(f);if(h instanceof Promise)h.catch(p)}catch{p()}}return{async start(){let f=t.center?{center:t.center,zoom:ri}:ni,p;try{p=await Qe(e,{...f,interactive:!0})}catch{c({mapFailed:!0});return}if(r){p.dispose();return}a=p,p.map.on("click",(h)=>u({lat:h.latlng.lat,lng:xo(h.latlng.lng)})),d()},locate(){if(n.locating||n.submitting)return;if(!navigator.geolocation){c({locateFailed:!0});return}l+=1;let f=l;c({locating:!0,locateFailed:!1}),navigator.geolocation.getCurrentPosition(({coords:p})=>{if(r||f!==l)return;let h={lat:p.latitude,lng:p.longitude,accuracy:Math.round(p.accuracy)};u(h),a?.map.setView(h,yo)},()=>{if(f===l)c({locating:!1,locateFailed:!0})},{enableHighAccuracy:!0,timeout:oi})},confirm(){if(n.position)m({status:"completed",result:n.position})},cancel(){m({status:"cancelled"})},dispose(){r=!0,a?.dispose()}}}function An(e,t,n){let r=!1,o;return Qe(e,{center:t,zoom:yo,interactive:!1}).then((a)=>{if(r){a.dispose();return}o=a.dispose,a.leaflet.marker(t).addTo(a.map)},()=>{if(!r)n()}),()=>{r=!0,o?.()}}function xo(e){if(e>=-180&&e<=180)return e;return((e+180)%360+360)%360-180}function bo(e){if(!e||typeof e!=="object")return!1;let{lat:t,lng:n}=e;return typeof t==="number"&&typeof n==="number"&&Math.abs(t)<=90&&Math.abs(n)<=180}function Ln(e){let t=e&&typeof e==="object"?e.center:void 0;return bo(t)?t:void 0}function En(e){if(!e||typeof e!=="object")return;let{status:t,result:n}=e;if(t!=="completed"||!bo(n))return;let{accuracy:r}=n;return{...n,...typeof r==="number"?{accuracy:r}:{}}}function Ct(e){let t=`${e.lat.toFixed(4)}, ${e.lng.toFixed(4)}`;return e.accuracy?`${t} ±${e.accuracy} m`:t}function Rn(e){if(e.locating)return{key:"translate_location_locating",failed:!1};if(e.deliveryFailed)return{key:"translate_location_send_failed",failed:!0};if(e.locateFailed)return{key:"translate_location_locate_failed",failed:!0};if(e.mapFailed)return{key:"translate_location_map_failed",failed:!0};return{key:"translate_location_hint",failed:!1}}function vo(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}var kt={phase:"asking",failed:!1},ai=2000,si="popup,width=520,height=720";function In(e,t){let n=qe(e)?.connect,r=ze(e.input,"server");if(!n||!r)return;let o=Object.hasOwn(n.servers,r)?n.servers[r]:void 0;return{startUrl:n.startUrl,agent:n.agent,server:r,label:(o&&we(o.displayName,t))??r,moreAccess:o?.scope!==void 0}}function On(e){let t=e.output,n=vo(t)?t.status:void 0;return{glyph:n==="completed"?"complete":n==="cancelled"&&e.state!=="error"?"declined":"error",titleKey:n==="completed"?"translate_connect_connected":"translate_connect_not_connected"}}var ii={connect:{titleKey:"translate_connect_title",reasonKey:"translate_connect_reason",actionKey:"translate_connect_button"},moreAccess:{titleKey:"translate_connect_more_title",reasonKey:"translate_connect_more_reason",actionKey:"translate_connect_more_button"}};function Pn(e,t){let n=e.phase!=="signingIn",{titleKey:r,reasonKey:o,actionKey:a}=ii[t?"moreAccess":"connect"];return{asking:n,titleKey:r,lineKey:!n?"translate_connect_waiting":e.failed?"translate_connect_failed":o,actionKey:a,failed:n&&e.failed,dismissKey:n?"translate_connect_not_now":"translate_client_tool_cancel",disabled:e.phase==="sending"}}function li(e){return new Headers(e).get("Authorization")?.replace(/^Bearer\s+/i,"")||void 0}function ci(e,t){return new Promise((n)=>{let r=()=>{clearTimeout(o),t.removeEventListener("abort",r),n()},o=setTimeout(r,e);t.addEventListener("abort",r,{once:!0})})}function Fn(e){let{call:t,host:n}=e,r=kt,o=new AbortController,a,i=0;function s(f){if(r={...r,...f},!o.signal.aborted)e.onState(r)}function l(){if(!a)return;a.reads.abort(),clearTimeout(a.expiry),a.window.close(),a=void 0}function c(f){if(o.signal.aborted||r.phase==="sending")return;l(),s({phase:"sending",failed:!1});let p=()=>s({phase:"asking",failed:!0});try{let h=e.submit(f);if(h instanceof Promise)h.catch(p)}catch{p()}}function d(f,p){let{document:h}=n,b={token:p,agent:t.agent,server:t.server,threadId:e.threadId,toolCallId:e.toolCallId},v=Object.assign(h.createElement("form"),{method:"POST",action:t.startUrl,target:f,hidden:!0});v.append(...Object.entries(b).map(([C,g])=>Object.assign(h.createElement("input"),{type:"hidden",name:C,value:g}))),h.body.append(v),v.submit(),v.remove()}async function u(f){let p=await e.api.accountConnection(t.server,e.toolCallId,f).catch(()=>{return});if(!p||f.aborted)return;if(p.status==="connected")c({status:"completed"});else if(p.status==="refused")c({status:"failed"})}async function m(f,p){let h=await e.api.resolveHeaders().catch(()=>{return});if(p.aborted)return;let b=h&&li(h);if(!b){l(),s({phase:"asking",failed:!0});return}d(f,b);while(!p.aborted)if(await ci(ai,p),!p.aborted)await u(p)}return u(o.signal),{connect(){if(o.signal.aborted||r.phase!=="asking")return;i+=1;let f=`cortex-sign-in-${e.toolCallId}-${i}`,p=n.open("",f,si);if(!p){s({failed:!0});return}p.opener=null;let h=new AbortController,b=setTimeout(()=>c({status:"failed"}),yr);a={window:p,expiry:b,reads:h},s({phase:"signingIn",failed:!1}),m(f,h.signal)},cancel(){c({status:"cancelled"})},dispose(){o.abort(),l()}}}import{marked as di}from"marked";import ui from"dompurify";function et(e,t=[]){if(!e)return"";let n=document.createElement("template");if(n.innerHTML=di.parse(e,{async:!1}).replace(/<table>/g,'<div style="overflow-x:auto"><table style="width:max-content">').replace(/<\/table>/g,"</table></div>").replace(/<(t[hd])([\s>])/g,'<$1 style="padding:0.5rem 1rem"$2'),mi(n.content),t.length)fi(n.content,t);return ui.sanitize(n.innerHTML,{FORBID_TAGS:["img","picture","source"]})}var pi=/[\p{Script=Arabic}\p{Script=Hebrew}]/u;function mi(e){for(let t of Array.from(e.children))if(t.localName!=="div")t.setAttribute("dir","auto");e.querySelectorAll("table").forEach((t)=>{let n=/\p{L}/u.exec(t.textContent??"")?.[0];if(!n)return;let r=pi.test(n)?"rtl":"ltr";if(t.setAttribute("dir",r),t.parentElement?.childElementCount===1)t.parentElement.setAttribute("dir",r)}),e.querySelectorAll("th, td").forEach((t)=>t.setAttribute("dir","auto")),e.querySelectorAll("pre").forEach((t)=>t.setAttribute("dir","ltr"))}function fi(e,t){let n=[...t].sort((a,i)=>a.length-i.length),r=n[n.length-1]?.length??0,o=0;for(let a of gi(e)){if(o>=r)break;a.replaceWith(..._i(a.data,o,n)),o+=a.data.length}}function gi(e){let t=document.createTreeWalker(e,4),n=[];for(let r=t.nextNode();r;r=t.nextNode())if(r.data.trim())n.push(r);return n.reverse()}function _i(e,t,n){let r=[],o=e.length;for(let a of n){if(a.length<=t)continue;if(o<=0)break;let i=Math.min(o,a.length-t);if(i<o&&/[\uDC00-\uDFFF]/.test(e.charAt(o-i)))i+=1;let s=document.createElement("span");s.className="cortex-stream-fade",s.style.animationDelay=`-${a.age}ms`,s.textContent=e.slice(o-i,o),r.unshift(s),o-=i,t+=i}if(o>0)r.unshift(document.createTextNode(e.slice(0,o)));return r}import{marked as ko}from"marked";var wo=/^ {0,3}(`{3,}|~{3,})(.*)$/;function To(){let e=null;return(t)=>{let n=wo.exec(t),r=n?.[1],o=n?.[2]??"";if(r){let a=r.charAt(0);if(e){if(a===e.marker&&r.length>=e.length&&o.trim()==="")return e=null,"close";return"inside"}if(a==="`"&&o.includes("`"))return"outside";return e={marker:a,length:r.length},"open"}return e?"inside":"outside"}}function Co(e){return wo.exec(e)?.[2]?.trim().split(/\s+/)[0]??""}var hi=/^\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 Hn(e,t){if(t.role!=="assistant")return[{kind:"markdown",text:e}];return xi(e,t.languages).map((n)=>{switch(n.kind){case"table":return{...n,closed:n.closed||!t.arriving};case"attachment":return{...n,attachment:t.attachments?.find((r)=>r.id.toLowerCase()===n.id)};default:return n}})}function xi(e,t){let n=[],r=[],o=null;function a(c=!1){if(r.length)n.push(...bi(r.join(`
|
|
4
4
|
`),c));r=[]}function i(c){if(o)n.push({kind:"media",...o,source:o.source.join(`
|
|
5
|
-
`),closed:c});o=null}let s=
|
|
6
|
-
`);for(let[c,d]of l.entries()){let u=s(d);if(o){if(u==="close")i(!0);else o.source.push(d);continue}if(u==="open"&&c===l.length-1)break;let
|
|
5
|
+
`),closed:c});o=null}let s=To(),l=e.split(`
|
|
6
|
+
`);for(let[c,d]of l.entries()){let u=s(d);if(o){if(u==="close")i(!0);else o.source.push(d);continue}if(u==="open"&&c===l.length-1)break;let m=yi(d,u,t);if(!m){r.push(d);continue}if(a(),m.kind==="media")o={language:m.language,source:[]};else n.push(m)}return i(!1),a(!0),n}function yi(e,t,n){if(t==="open"){let o=Co(e),a=n.find((i)=>i===o);return a?{kind:"media",language:a}:void 0}let r=t==="outside"?hi.exec(e):null;return r?{kind:"attachment",alt:r[1]??"",id:(r[2]??"").toLowerCase()}:void 0}function bi(e,t){let n=ko.lexer(e);if(!n.some((d)=>d.type==="table"))return[{kind:"markdown",text:e}];let r=[];ko.walkTokens(n,(d)=>{if(d.type==="def")r.push(d.raw.trim())});let o=r.join(`
|
|
7
7
|
`),a=(d)=>o?`${o}
|
|
8
8
|
|
|
9
|
-
${d}`:d,i=[],s="";function l(){if(s.trim())i.push({kind:"markdown",text:a(s)});s=""}let c=n.filter((d)=>d.type!=="def");for(let[d,u]of c.entries()){if(u.type!=="table"){s+=u.raw;continue}l();let
|
|
10
|
-
`));return(t.textContent??"").trim()}function
|
|
9
|
+
${d}`:d,i=[],s="";function l(){if(s.trim())i.push({kind:"markdown",text:a(s)});s=""}let c=n.filter((d)=>d.type!=="def");for(let[d,u]of c.entries()){if(u.type!=="table"){s+=u.raw;continue}l();let m=c.slice(d+1).some((f)=>f.raw.trim()!=="");i.push({kind:"table",text:a(u.raw.trimEnd()),closed:m||!t})}return l(),i}function St(e,t){let n=URL.createObjectURL(e),r=document.createElement("a");r.href=n,r.download=t,document.body.append(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),40000)}var vi=/^-?(?:0|[1-9]\d*)(?:\.\d*[1-9])?$/;function wi(e){return vi.test(e)&&e!=="-0"&&e.replace(/[-.]/g,"").replace(/^0/,"").length<=15}var Ti=32767,So=new TextEncoder;function Un(e){let t=e.querySelector("table");if(t)St(Si(Ci(t)),"table.xlsx")}function Ci(e){return Array.from(e.rows,(t)=>Array.from(t.cells,ki))}function ki(e){let t=e.cloneNode(!0);if(t instanceof Element)t.querySelectorAll("br").forEach((n)=>n.replaceWith(`
|
|
10
|
+
`));return(t.textContent??"").trim()}function Si(e){return new Blob([Ii(Li(e))],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}function Mi(e){return e.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\ufffe\uffff]/g,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/_(x[0-9a-f]{4}_)/gi,"_x005F_$1")}function Ni(e){let t="";for(let n=e+1;n>0;n=Math.floor((n-1)/26))t=String.fromCharCode(65+(n-1)%26)+t;return t}function Ai(e){return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetData>${e.map((n,r)=>{let o=n.map((a,i)=>{let s=`${Ni(i)}${r+1}`,l=r===0?' s="1"':"";return r>0&&wi(a)?`<c r="${s}"${l}><v>${a}</v></c>`:`<c r="${s}"${l} t="inlineStr"><is><t xml:space="preserve">${Mi(a.slice(0,Ti))}</t></is></c>`}).join("");return`<row r="${r+1}">${o}</row>`}).join("")}</sheetData></worksheet>`}function Li(e){return[{name:"[Content_Types].xml",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/></Types>'},{name:"_rels/.rels",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>'},{name:"xl/workbook.xml",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/></sheets></workbook>'},{name:"xl/_rels/workbook.xml.rels",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>'},{name:"xl/styles.xml",text:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><fonts count="2"><font><sz val="11"/><name val="Calibri"/></font><font><b/><sz val="11"/><name val="Calibri"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border/></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="2"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>'},{name:"xl/worksheets/sheet1.xml",text:Ai(e)}]}var Ei=Array.from({length:256},(e,t)=>{let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;return n>>>0});function Ri(e){let t=4294967295;for(let n of e)t=(Ei[(t^n)&255]??0)^t>>>8;return(t^4294967295)>>>0}function Ii(e){let t=[],n=[],r=0;for(let c of e){let d=So.encode(c.name),u=So.encode(c.text),m=Ri(u),f=new DataView(new ArrayBuffer(30));f.setUint32(0,67324752,!0),f.setUint16(4,20,!0),f.setUint16(6,2048,!0),f.setUint32(14,m,!0),f.setUint32(18,u.length,!0),f.setUint32(22,u.length,!0),f.setUint16(26,d.length,!0),t.push(new Uint8Array(f.buffer),d,u);let p=new DataView(new ArrayBuffer(46));p.setUint32(0,33639248,!0),p.setUint16(4,20,!0),p.setUint16(6,20,!0),p.setUint16(8,2048,!0),p.setUint32(16,m,!0),p.setUint32(20,u.length,!0),p.setUint32(24,u.length,!0),p.setUint16(28,d.length,!0),p.setUint32(42,r,!0),n.push(new Uint8Array(p.buffer),d),r+=30+d.length+u.length}let o=n.reduce((c,d)=>c+d.length,0),a=new DataView(new ArrayBuffer(22));a.setUint32(0,101010256,!0),a.setUint16(8,e.length,!0),a.setUint16(10,e.length,!0),a.setUint32(12,o,!0),a.setUint32(16,r,!0);let i=[...t,...n,new Uint8Array(a.buffer)],s=new Uint8Array(i.reduce((c,d)=>c+d.length,0)),l=0;for(let c of i)s.set(c,l),l+=c.length;return s}function Dn(e,t,n){let r=!1,o;return n({url:void 0,failed:!1}),e.downloadAttachment(t).then(({blob:a})=>{if(r)return;o=URL.createObjectURL(a),n({url:o,failed:!1})},()=>{if(!r)n({url:void 0,failed:!0})}),()=>{if(r=!0,o)URL.revokeObjectURL(o)}}async function Wn(e,t){let n=await e.downloadAttachment(t).catch(()=>{return});if(n)St(n.blob,n.name)}var Ao=new Set(["flatten","fold","density","impute","regression","loess","quantile","sample"]),Oi=`Use Vega-Lite JSON with inline \`data.values\` only, at most 200 rows, and no \`url\` anywhere. Compute folds, trend lines and densities yourself. For several series, write one row per series and x value, or keep one row per x value and draw a layer per series (color by \`datum\`) when that would exceed the row limit. These keys are refused anywhere in the spec: ${[...Ao,"params","selection"].join(", ")}. Expressions in \`calculate\`, \`filter\` and \`labelExpr\` may use only datum fields, literals, operators and simple math or date-part functions (no format or timeFormat), so put formatted values in the rows or use an axis \`format\`.`;function Lo(e,t){if(e==="url")return"Charts may only use inline data and no URLs.";if(e==="sequence"||e==="graticule")return"Charts may only use inline data.";if(Ao.has(e))return"Charts may not use transforms that generate rows.";if(e==="params"||e==="selection"||e==="signals"||e==="on")return"Charts may not be interactive.";if(e==="expr")return"Charts may not carry expressions.";if(Pi.has(e)&&typeof t==="string"&&!Fi(t))return"Charts may only use simple expressions over datum.";if(e==="usermeta")return"Charts may not carry usermeta.";if(typeof t==="string"&&Mt(t))return"Charts may not reference URLs.";if((e==="width"||e==="height")&&Hi(t)>4000)return"Charts may be at most 4000 pixels wide or tall.";return}var Pi=new Set(["calculate","filter","test","signal","labelExpr"]),Mo=new Set(["abs","ceil","floor","round","min","max","sqrt","pow","log","exp","year","month","date","day","hours","minutes","toNumber","toString","toDate","isValid","isNaN","if","indexof","length"]);function Fi(e){if(e.length>500||/[\\`]/.test(e))return!1;let t=e.replace(/'[^']*'|"[^"]*"/g,'""');for(let[,r]of t.matchAll(/([A-Za-z_$][\w$]*)\s*\(/g))if(!Mo.has(r??""))return!1;let n=t.replace(/(datum|parent)(\s*\.[\w$]+|\s*\[\s*""\s*\])+|\b\d[\w.]*/g,"").matchAll(/[A-Za-z_$][\w$]*/g);for(let[r]of n)if(!Mo.has(r)&&!["true","false","null"].includes(r))return!1;return!0}function Hi(e){if(typeof e==="number")return e;let t=e?.step;return typeof t==="number"?t:0}function No(e,t){let n=e?.features,r=Array.isArray(e)?e.length:Array.isArray(n)?n.length:-1;if(r<0)return Lo(t,e)??$n(Bn(e,t),tt);return r>200?"Charts may hold at most 200 rows.":void 0}function tt(e,t=""){if(t==="values")return No(e,t);if(t==="datasets")return $n(Bn(e),No);return Lo(t,e)??$n(Bn(e,t),(n,r)=>tt(n,r))}function Bn(e,t=""){if(Array.isArray(e))return e.map((n)=>[t,n]);return e&&typeof e==="object"?Object.entries(e):[]}function $n(e,t){for(let[n,r]of e){let o=t(r,n);if(o)return o}return}var Eo=/url\(([^)]*)\)/gi,jn="src|image|image-set|-webkit-image-set|cross-fade|element",zn=new RegExp(String.raw`\b(url|${jn})\(`,"i"),Ui=new RegExp(String.raw`\b(${jn})\(`,"i"),Di=new RegExp(String.raw`\b(${jn})\([^)]*\)`,"gi"),Wi=/\\([0-9a-f]{1,6})\s?|\\(.)/gi,Bi=/@import[^;]*;?/gi;function $i(e){return e.replace(Wi,(t,n,r)=>{if(!n)return r??"";let o=parseInt(n,16),a=o===0||o>=55296&&o<=57343||o>1114111;return String.fromCodePoint(a?65533:o)})}function Ro(e){return e.trim().replace(/^(['"])(.*)\1$/s,"$2").trim()}function Mt(e){if(e.includes("\\")||Ui.test(e))return!0;for(let[,t]of e.matchAll(Eo))if(!Ro(t??"").startsWith("#"))return!0;return!1}function qn(e){return $i(e).replaceAll("\\"," ").replace(Bi," ").replace(Di,"none").replace(Eo,(t,n)=>Ro(n).startsWith("#")?t:"none")}var ji=new Set(["src","srcset","poster","background","action","formaction","ping"]);function nt(e){for(let t of[e,...e.querySelectorAll("*")]){for(let n of[...t.attributes])if(ji.has(n.name)||(n.name==="href"||n.name==="xlink:href")&&t.localName!=="a"&&!n.value.trim().startsWith("#")||Mt(n.value))t.removeAttribute(n.name);if(t.localName==="style"&&t.textContent)t.textContent=qn(t.textContent)}}var zi=`
|
|
11
11
|
@layer {
|
|
12
12
|
:host {
|
|
13
13
|
display: block !important;
|
|
@@ -185,8 +185,8 @@ ${d}`:d,i=[],s="";function l(){if(s.trim())i.push({kind:"markdown",text:a(s)});s
|
|
|
185
185
|
display: block;
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
|
-
`,
|
|
189
|
-
${t}`;return await r.parse(c),(await r.render(`cortex-mermaid-${
|
|
190
|
-
`).find((n)=>/\S/.test(n)&&!/^\s*%%/.test(n));return/^\s*(\S+)/.exec(t??"")?.[1]??""}function
|
|
188
|
+
`,qi=/(["'])(?:(?!\1)[^\n\r\f])*\1?|\/\*[\s\S]*?(?:\*\/|$)/g;function Ki(e){return/:host|@(-[a-z]+-)?keyframes|@property/i.test(Io(e))}function Io(e){return e.replace(qi,(t)=>t.startsWith("/*")?"":t)}async function Oo(e){let{default:t}=await import("dompurify"),n=t.sanitize(e,{FORCE_BODY:!0,RETURN_DOM_FRAGMENT:!0,USE_PROFILES:{html:!0,svg:!0,svgFilters:!0},FORBID_TAGS:["img","picture","source","video","audio","track","a","area","form","input","button","select","textarea","dialog","template","slot","marquee","animatecolor","animatemotion","animatetransform","image","feimage"],FORBID_ATTR:["popover","popovertarget","popovertargetaction"]}),r=n.ownerDocument.createElement("div");r.append(n);for(let o of r.querySelectorAll("[style]"))Gi(o);nt(r);for(let o of r.querySelectorAll("style"))if(Ki(o.textContent??""))o.remove();return r}var Vi=/^(-[a-z]+-)?(animation|transition)/i;function Gi(e){let t=Io(e.getAttribute("style")??"").split(";");e.setAttribute("style",t.filter((n)=>!Vi.test(n.trim())).join(";"))}function Po(e,t,n,r){let o=document.createElement("style");o.textContent=zi,t.className="cortex-report",e.attachShadow({mode:"open"}).append(o,t);let a=[...t.querySelectorAll("figure[data-chart]")].map((i)=>{let{box:s,spec:l}=Ji(i);return n(s,l,()=>{let c=document.createElement("p");c.className="cortex-report-chart-failed",c.textContent=r,s.append(c)})});return()=>{for(let i of a)i()}}function Ji(e){let t=[...e.childNodes].filter((o)=>o.nodeName!=="FIGCAPTION"),n=document.createElement("div");e.insertBefore(n,t.find((o)=>o.textContent?.trim())??null);for(let o of t)o.remove();let r=t.map((o)=>o.textContent).join("");return{box:n,spec:Xi.exec(r)?.[2]??r}}var Xi=/^\s*(`{3,}|~{3,})[^\n]*\n([\s\S]*?)\n\s*\1\s*$/;var Wo={async mermaid(e,t,{scheme:n}){let[{default:r},{default:o}]=await Promise.all([import("mermaid"),import("dompurify")]);if(zn.test(t)||t.includes("\\"))throw Error("Diagrams may not reference URLs.");if(/%%\{/.test(t))throw Error("Diagrams may not carry init directives.");if(/^\s*---\s*$/m.test(t))throw Error("Diagrams may not carry frontmatter.");if(/\bimg\s*:/.test(t))throw Error("Diagrams may not embed images.");let a=Qi(t);if(!Zi.test(a))throw Error(`Unsupported diagram type: ${a}`);let i=Fo.then(async()=>{if(!Ho)r.initialize({startOnLoad:!1,securityLevel:"strict",htmlLabels:!1}),Ho=!0;let c=`%%{init: {"theme": "${n==="dark"?"dark":"default"}"}}%%
|
|
189
|
+
${t}`;return await r.parse(c),(await r.render(`cortex-mermaid-${ol()}`,c,e)).svg});Fo=i.catch(()=>{return});let s=await i,l=document.createElement("div");return l.innerHTML=o.sanitize(s,{USE_PROFILES:{svg:!0,svgFilters:!0}}),nt(l),e.replaceChildren(...l.childNodes),()=>{e.innerHTML=""}},async "vega-lite"(e,t,{scheme:n}){let r=JSON.parse(t),o=tt(r);if(o)throw Error(o);if(!r||typeof r!=="object"||Array.isArray(r))throw Error("A chart needs a JSON object.");let a=r,[{default:i},s]=await Promise.all([import("vega-embed"),import("vega")]),l=()=>Promise.reject(Error("Charts may only use inline data."));async function c(v){let C=document.createElement("div"),g=await i(C,nl(a,v),{actions:!1,renderer:"svg",mode:"vega-lite",loader:{...s.loader(),load:l,sanitize:l},ast:!0,...n==="dark"?{theme:"dark"}:{},config:{background:"transparent"}});return nt(C),{drawing:C,result:g,width:v}}let d=await c(e.clientWidth);e.replaceChildren(d.drawing);let u=!1,m,f=0;function p(){m??=(async()=>{let v=e.clientWidth;while(!u&&v>0&&v!==d.width&&v!==f){try{let C=await c(v);if(u){C.result.finalize();return}d.result.finalize(),d=C,e.replaceChildren(C.drawing)}catch{f=v}v=e.clientWidth}})().finally(()=>{m=void 0})}let h=new ResizeObserver(p);if(Bo(a))h.observe(e);function b(){let v=document.getElementById(rl),C=$o(e)??document.body;if(v&&v.parentElement!==C)C.append(v)}return e.addEventListener("pointermove",b),()=>{u=!0,h.disconnect(),e.removeEventListener("pointermove",b),d.result.finalize()}},async map(e,t){let n=al(JSON.parse(t)),{leaflet:r,map:o,dispose:a}=await Qe(e,{...n,interactive:!0});for(let i of n.markers){let s=r.marker(i.position).addTo(o);if(i.label){let l=document.createElement("span");l.textContent=i.label,s.bindTooltip(l)}}return a},async report(e,t,n){let r=await Oo(t);return Po(e,r,(o,a,i)=>At(o,{language:"vega-lite",source:a,context:n,overrides:void 0,onError:i}),Z(n.locale,"translate_media_failed"))}},Yi={mermaid:{title:"translate_media_mermaid",pending:"translate_media_pending_mermaid"},"vega-lite":{title:"translate_media_vega_lite",pending:"translate_media_pending_vega_lite"},map:{title:"translate_media_map",pending:"translate_media_pending_map"},report:{title:"translate_media_report",pending:"translate_media_pending_report"}};function Nt(e){return Yi[e]??{title:"translate_media",pending:"translate_media_pending"}}function Vn(e){return Object.keys({...Wo,...e})}function At(e,t){let{language:n,source:r,context:o,overrides:a,onError:i}=t,s=e.appendChild(document.createElement("div")),l=a?.[n]??Wo[n],c,d=!1;return(l?l(s,r,o):Promise.reject(Error(`No renderer for ${n}.`))).then((m)=>{if(d)m();else c=m},(m)=>{if(!d)i(m instanceof Error?m.message:String(m))}),()=>{d=!0,c?.(),s.remove()}}var Zi=/^(flowchart|graph|sequenceDiagram|stateDiagram(-v2)?|erDiagram|gantt|pie|classDiagram|journey|timeline|mindmap)$/;function Qi(e){let t=e.split(`
|
|
190
|
+
`).find((n)=>/\S/.test(n)&&!/^\s*%%/.test(n));return/^\s*(\S+)/.exec(t??"")?.[1]??""}function Kn(e){return e===void 0||e==="container"}var el=["row","column","facet"];function Bo(e){let t=e.encoding,n=typeof t==="object"&&t!==null&&el.some((r)=>(r in t));return(("mark"in e)||("layer"in e))&&Kn(e.width)&&!n}function tl(e){let t={...e};if(Kn(t.width))delete t.width;if(Kn(t.height))delete t.height;return t}function nl(e,t){let n=tl(e);if(t<=0||!Bo(e))return n;return{...n,width:t,height:n.height??Math.round(Math.min(480,Math.max(200,t/2))),autosize:n.autosize??{type:"fit",contains:"padding"}}}var rl="vg-tooltip-element";function $o(e){let t=e.getRootNode();return e.closest("dialog")??(t instanceof ShadowRoot?$o(t.host):null)}var Fo=Promise.resolve(),Ho=!1,Uo=0;function ol(){return Uo+=1,Uo}function al(e){if(!e||typeof e!=="object")throw Error("A map needs a JSON object.");let t=e,n=t.zoom??10;if(typeof n!=="number"||n<0||n>22)throw Error("zoom must be 0 to 22.");let r=t.markers??[];if(!Array.isArray(r))throw Error("markers must be a list.");return{center:Do(t.center,"center"),zoom:n,markers:r.map((o,a)=>{let i=o??{},s=i.label;return{position:Do(i.position,`markers[${a}].position`),label:typeof s==="string"?s:void 0}})}}function Do(e,t){let n=Array.isArray(e)?e:[],[r,o]=n;if(typeof r!=="number"||typeof o!=="number"||Math.abs(r)>90||Math.abs(o)>180)throw Error(`${t} must be [latitude, longitude].`);return{lat:r,lng:o}}function Gn(e,t){if(e!=="system")return t(e??"light"),()=>{};let n=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>t(n.matches?"dark":"light");return r(),n.addEventListener("change",r),()=>n.removeEventListener("change",r)}import Lt from"highlight.js/lib/core";import sl from"highlight.js/lib/languages/javascript";import il from"highlight.js/lib/languages/json";var jo=!1;function ll(){if(jo)return;jo=!0,Lt.registerLanguage("javascript",sl),Lt.registerLanguage("json",il)}function Jn(e,t){if(!e)return"";return ll(),Lt.getLanguage(t)?Lt.highlight(e,{language:t}).value:cl(e)}function cl(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function Ee(e){if(typeof e==="string"){let t=e.trim();if(!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return e;try{return Ee(JSON.parse(t))}catch{return e}}if(Array.isArray(e))return e.map((t)=>Ee(t));if(e!==null&&typeof e==="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Ee(r);return t}return e}function Xn(e,t){if(Array.isArray(e)){let n=e;return{kind:"container",open:"[",close:"]",summary:zo(n.length,"item","items"),entries:n.map((r,o)=>({key:null,value:r,path:`${t}[${o}]`}))}}if(e!==null&&typeof e==="object"){let n=Object.entries(e);return{kind:"container",open:"{",close:"}",summary:zo(n.length,"property","properties"),entries:n.map(([r,o])=>({key:r,value:o,path:`${t}.${r}`}))}}return{kind:"primitive",text:dl(e),className:ul(e)}}function zo(e,t,n){return`${e} ${e===1?t:n}`}function dl(e){if(e===null||e===void 0)return"null";if(typeof e==="string")return JSON.stringify(e);if(typeof e==="number"||typeof e==="boolean")return String(e);return JSON.stringify(e)??"null"}function ul(e){if(e===null||e===void 0)return"cortex-json-tree__null";if(typeof e==="string")return"cortex-json-tree__string";if(typeof e==="number")return"cortex-json-tree__number";if(typeof e==="boolean")return"cortex-json-tree__boolean";return""}function Yn(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}function Zn(e){if(!e)return"";try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function ce(e,t,n=Date.now()){let r=new Date(e);if(Number.isNaN(r.getTime()))return"";let o=r.toDateString()===new Date(n).toDateString();return new Intl.DateTimeFormat(t,{...o?{}:{dateStyle:"medium"},timeStyle:"short"}).format(r)}class Ce{onUpdate;fullText="";displayedLength=0;animationFrameId=null;followed=!1;releases=[];static DRAIN_FRACTION=0.03;static MIN_CHARS_PER_FRAME=1;static FADE_WINDOW_MS=500;constructor(e){this.onUpdate=e}follow(e,t){let n=!this.followed;if(this.followed=!0,n||!t){this.stopAnimation(),this.show(e);return}if(this.fullText=e,this.displayedLength=Math.min(this.displayedLength,e.length),this.releases=this.releases.filter((r)=>r.from<this.displayedLength),!this.animationFrameId)this.scheduleFrame()}destroy(){this.stopAnimation()}show(e){this.fullText=e,this.displayedLength=e.length,this.releases=[],this.onUpdate(e,[])}scheduleFrame(){this.animationFrameId=requestAnimationFrame((e)=>this.tick(e))}tick(e){let t=this.fullText.length-this.displayedLength;if(t<=0){this.animationFrameId=null;return}let n=Math.max(Ce.MIN_CHARS_PER_FRAME,Math.ceil(t*Ce.DRAIN_FRACTION));if(this.releases=this.releases.filter((r)=>e-r.at<Ce.FADE_WINDOW_MS),this.releases.push({from:this.displayedLength,at:e}),this.displayedLength=Math.min(this.fullText.length,this.displayedLength+n),this.onUpdate(this.fullText.substring(0,this.displayedLength),this.releases.map((r)=>({length:this.displayedLength-r.from,age:e-r.at}))),this.displayedLength<this.fullText.length)this.scheduleFrame();else this.animationFrameId=null}stopAnimation(){if(this.animationFrameId)cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null}}function qo(){let e=new Map;return(t,n)=>{let r=new Map;for(let[o,a]of pl(t,n)){let i=e.get(o);r.set(o,i&&fl(i,a)?i:a)}return e=r,r}}function pl(e,t){let n=new Map;if(t.debugMode)return n;let o=t.agentWorking||Te(e).length>0?ml(e):e,a=[];function i(){let s=a[0]?.part.id;if(a.length>1&&s&&!t.opened.has(s))for(let[l,{messageId:c,part:d}]of a.entries()){let u=n.get(c)??new Map;n.set(c,u);let m=l===a.length-1;u.set(d,m?{kind:"more",count:a.length-1,runId:s}:{kind:"hidden"})}a=[]}for(let s of o){if(s.role!=="assistant"){i();continue}let l=Ve(s.parts,{debugMode:!1,isStreaming:!1});for(let c of l)if(c.type==="tool-call"&&X(c.state)&&t.foldable(c))a.push({messageId:s.id,part:c});else i()}return i(),n}function ml(e){let t=e.map((n)=>n.role).lastIndexOf("user");return t<0?[]:e.slice(0,t)}function fl(e,t){if(e.size!==t.size)return!1;for(let[n,r]of e){let o=t.get(n);if(!o||o.kind!==r.kind)return!1;if(r.kind==="more"&&o.kind==="more"){if(r.count!==o.count||r.runId!==o.runId)return!1}}return!0}function Qn(){let e=qo();return(t,n)=>{let r=(d)=>Ur(d,n),o=e(t,{...n,foldable:r}),a=n.agentWorking?Jt(t)?.id:void 0,i=n.agentWorking&&!n.debugMode,s=i?gl(t,{foldable:r}):void 0,l=t.map((d)=>d.role).lastIndexOf("user");return{rows:t.map((d,u)=>({message:d,isStreaming:d.id===a,closesTurn:d.role==="assistant"&&t[u+1]?.role!=="assistant",workingTurn:i&&u>l,frontier:d.id===a?s:void 0,fold:o.get(d.id)})),thinking:n.agentWorking&&!s}}}function Ko(e,t){if(e.type!=="tool-call")return!0;return!X(e.state)&&!e.approval&&t.foldable(e)}function gl(e,t){let n=Jt(e);if(!n)return;let r=Ve(n.parts,{debugMode:!1,isStreaming:!0}),o=r.at(-1);if(o&&Ko(o,t))return o;return r.filter((a)=>a.type==="tool-call"&&Ko(a,t)).at(-1)}function er(e,t){let n=e.metadata,r=Ve(e.parts,t),o=r.filter((s)=>t.fold?.get(s)?.kind!=="hidden"),a=o.filter((s)=>s.type==="text").at(-1),i=(e.role==="user"||e.role==="assistant")&&!t.isStreaming;return{metadata:n,parts:r,drawsBody:r.length>0||Boolean(n?.attachments?.length||n?.isAborted),streamingPart:t.isStreaming?r.at(-1):void 0,actionsAfter:i&&a?a===o.at(-1)?"end":a:void 0,debugStrip:t.debugMode&&n!==void 0&&t.closesTurn}}function tr(e){return e.filter((t)=>t.type==="text").map((t)=>t.content).join(`
|
|
191
191
|
|
|
192
|
-
`)}var v={alert:"M8 4.75v4M8 10.75v.5",alertSmall:"M6 1.5v5M6 8.75v.5",arrowRight:"M3 8h10M9 4l4 4-4 4",bolt:"M6.75 1 2.5 6.75h3l-.25 4.25L9.5 5.25h-3z",bubble:"M13.5 7.6c0 2.4-2.5 4.4-5.5 4.4-.6 0-1.2-.08-1.7-.23L3 13l.8-2.3C3 9.8 2.5 8.7 2.5 7.6 2.5 5.2 5 3.2 8 3.2s5.5 2 5.5 4.4Z",bulb:["M10 2C6.686 2 4 4.686 4 8c0 1.655.672 3.154 1.757 4.243.362.363.576.858.576 1.371V14.5a1 1 0 0 0 1 1h5.334a1 1 0 0 0 1-1v-.886c0-.513.214-1.008.576-1.371A5.978 5.978 0 0 0 16 8c0-3.314-2.686-6-6-6Z","M7.5 17.5h5M8.5 8a2 2 0 0 1 2-2"],check:"M5 13l4 4L19 7",chevronDown:"M3 4.5L6 7.5L9 4.5",chevronDownLarge:"m5.75 8.25 4.25 4.25 4.25-4.25",chevronLeft:"M10 3L5 8l5 5",chevronRight:"M6 4l4 4-4 4",clockHands:"M8 5v3l2 1.5",close:"M4 4l8 8M12 4l-8 8",closeSmall:"M4.5 4.5l7 7m0-7l-7 7",copy:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",crosshair:"M10 1.5v3M10 15.5v3M1.5 10h3M15.5 10h3",download:"M8 3v7m0 0L5.5 7.5M8 10l2.5-2.5M3 13h10",downloadTray:"M8 2.5v7.5M5 7l3 3 3-3M2.75 11v1.25a1.25 1.25 0 0 0 1.25 1.25h8a1.25 1.25 0 0 0 1.25-1.25V11",expand:"M9.5 2.5h4v4M6.5 13.5h-4v-4M13.5 2.5 9 7M2.5 13.5 7 9",file:["M4 1.5h5.172a2 2 0 0 1 1.414.586l2.328 2.328a2 2 0 0 1 .586 1.414V12.5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2Z","M9.5 1.5v2a2 2 0 0 0 2 2h2"],menu:"M2.5 4h11M2.5 8h11M2.5 12h11",paperclip:"M10.5 5.5 6.2 9.8a1.4 1.4 0 0 0 2 2l4.6-4.6a2.8 2.8 0 0 0-4-4L4.2 7.8a4.2 4.2 0 0 0 6 6l4-4",plus:"M8 3v10M3 8h10",search:"M6 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM0 6a6 6 0 1 1 10.89 3.477l4.817 4.816a1 1 0 0 1-1.414 1.414l-4.816-4.816A6 6 0 0 1 0 6Z",shield:"M8 1.75 2.75 3.75v4c0 3 2.2 5.3 5.25 6.5 3.05-1.2 5.25-3.5 5.25-6.5v-4L8 1.75Z",sparkles:["M9.94 15.5a2 2 0 0 0-1.44-1.44l-6.13-1.58a.5.5 0 0 1 0-.96L8.5 9.94A2 2 0 0 0 9.94 8.5l1.58-6.14a.5.5 0 0 1 .96 0l1.58 6.14a2 2 0 0 0 1.44 1.44l6.14 1.58a.5.5 0 0 1 0 .96l-6.14 1.58a2 2 0 0 0-1.44 1.44l-1.58 6.14a.5.5 0 0 1-.96 0z","M20 3v4M22 5h-4M4 17v2M5 18H3"],spinnerArc:"M14 8a6 6 0 0 0-6-6",statusCheck:"M5.5 10.5 L8.5 13.5 L14.5 7",statusCross:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5"};function et(e){if(e.input.total<=0)return null;return Math.round(e.input.cacheRead/e.input.total*100)}function F(e){return e.toLocaleString("en-US")}import{createContext as Ji,useContext as Xi,useSyncExternalStore as Zi}from"react";var Kn=Ji(void 0);function h(){let e=Xi(Kn);if(!e)throw Error("useCortex must be used inside <CortexChatWidget>");return e}function L(e){let{widget:t}=h(),n=()=>e(t.getState());return Zi(t.subscribe,n,n)}import{useEffect as Yi,useRef as Qi,useState as el,useSyncExternalStore as tl}from"react";function Po(e){let t=Qi(e);t.current=e;let[n]=el(()=>vn({getConfig:()=>t.current}));Yi(()=>(n.start(),n.stop),[n]);let r=()=>n.getState().parts,o=tl(n.subscribe,r,r);return{widget:n,parts:o}}import{useEffect as sl,useLayoutEffect as Wo,useRef as Xn,useState as il,useSyncExternalStore as ll}from"react";function y(...e){return e.filter(Boolean).join(" ")}import{jsx as Q,jsxs as tt}from"react/jsx-runtime";function Fo(){let{widget:e,t,locale:n}=h(),r=L((o)=>o.attachments);if(!r.length)return null;return Q("div",{className:"cortex-attachment-queue",children:r.map((o)=>tt("div",{className:y("cortex-attachment-chip",o.status==="error"&&"cortex-attachment-chip--error"),children:[o.status==="uploading"||o.status==="deleting"?tt("svg",{className:"cortex-attachment-chip__spinner",viewBox:"0 0 16 16",fill:"none",children:[Q("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",className:"cortex-attachment-chip__spinner-track"}),Q("path",{d:v.spinnerArc,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):o.status==="error"?tt("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[Q("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.25"}),Q("path",{d:v.alert,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]}):tt("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[Q("path",{d:v.file[0],stroke:"currentColor",strokeWidth:"1.25"}),Q("path",{d:v.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),tt("span",{className:"cortex-attachment-chip__text",children:[Q("span",{className:"cortex-attachment-chip__name",children:Q("bdi",{children:o.filename})}),o.status==="error"&&Q("span",{className:"cortex-attachment-chip__reason",children:_n(o,n)})]}),Q("button",{type:"button",onClick:()=>e.removeAttachment(o.localId),className:"cortex-attachment-chip__remove",disabled:o.status==="deleting","aria-label":t("translate_remove_attachment"),children:Q("svg",{viewBox:"0 0 16 16",fill:"none",children:Q("path",{d:v.closeSmall,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},o.localId))})}import{useRef as nl}from"react";import{jsx as Te,jsxs as Ho,Fragment as ol}from"react/jsx-runtime";var rl=Be.join(",");function Do({attachmentsEnabled:e,canSend:t,onSend:n}){let{t:r,widget:o}=h(),a=nl(null);return Ho("div",{className:"cortex-widget__input-actions",children:[e&&Ho(ol,{children:[Te("button",{type:"button",onClick:()=>a.current?.click(),className:"cortex-widget__attach-btn","aria-label":r("translate_attach_files"),children:Te("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:Te("path",{d:v.paperclip,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),Te("input",{ref:a,type:"file",multiple:!0,accept:rl,onChange:(i)=>{o.attachFiles([...i.target.files??[]]),i.target.value=""},className:"cortex-widget__file-input"})]}),Te("button",{onClick:n,"aria-label":r("translate_send"),className:y("cortex-widget__send-btn",!t&&"cortex-widget__send-btn--empty",t&&"cortex-widget__send-btn--ready"),disabled:!t,children:Te("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__send-icon",children:Te("path",{d:v.arrowRight,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}import{jsx as al}from"react/jsx-runtime";function Uo(e){let{t}=h();return al("textarea",{ref:e.inputRef,onPaste:e.onPaste,value:e.value,onChange:(n)=>e.onChange(n.target.value),placeholder:e.dragging?t("translate_drop_files_here"):e.disabled?"":t("translate_type_a_message"),disabled:e.disabled,rows:1,className:y("cortex-widget__textarea",e.disabled&&"cortex-widget__textarea--disabled")})}import{jsx as Le,jsxs as Jn}from"react/jsx-runtime";function cl(e,t){let n=Xn(null),r=Xn(void 0);return Wo(()=>{if(!n.current)return;let o=on(n.current,e);return r.current=o,o.dispose},[e]),Wo(()=>r.current?.fit(),[t]),{messageInput:n,input:r}}function Bo(){let{t:e,widget:t}=h(),n=ll(t.subscribe,t.getDraft,t.getDraft),r=L((f)=>f.session.isAgentWorking),o=L((f)=>f.session.isAgentWorking||f.creating),a=L((f)=>f.capabilities?.attachments??!1),i=L((f)=>Je(f,n)),[s,l]=il(!1),c=an({enabled:a,accept:t.attachFiles,setDragging:l}),{messageInput:d,input:u}=cl(t,n),p=Xn(o);return sl(()=>{if(p.current&&!o)d.current?.focus();p.current=o},[o,d]),Jn("div",{className:"cortex-widget__input-area",onDragOver:c.onDragOver,onDragLeave:c.onDragLeave,onDrop:c.onDrop,children:[Le(Fo,{}),Jn("div",{className:y("cortex-widget__input-box",o&&"cortex-widget__input-box--disabled",!o&&"cortex-widget__input-box--enabled",s&&"cortex-widget__input-box--dragging"),children:[Le(Uo,{inputRef:d,value:n,onChange:t.setDraft,onPaste:c.onPaste,disabled:o,dragging:s}),r?Jn("button",{type:"button","aria-label":e("translate_stop"),onClick:()=>void t.abort(),className:"cortex-stop-btn",children:[Le("span",{className:"cortex-stop-btn__ring"}),Le("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"cortex-stop-btn__icon",children:Le("rect",{x:"1",y:"1",width:"10",height:"10",rx:"2.5",fill:"currentColor"})})]}):Le(Do,{attachmentsEnabled:a,canSend:i,onSend:()=>u.current?.send()})]})]})}import{jsx as $o,jsxs as dl}from"react/jsx-runtime";function St(){let{t:e,widget:t}=h(),n=L(bn),r=L((o)=>o.unanswered==="unverified");if(n==="composer")return $o(Bo,{});if(!n)return null;return dl("p",{className:"cortex-widget__messages-disabled",children:[e(n),r?$o("button",{type:"button",className:"cortex-widget__retry",onClick:t.retry,children:e("translate_client_tool_retry")}):null]})}import{jsx as K,jsxs as Mt}from"react/jsx-runtime";function jo(e){let{t}=h(),n=e.newChat&&K("button",{type:"button",onClick:e.newChat,"aria-label":t("translate_new_chat"),title:t("translate_new_chat"),className:"cortex-widget__header-btn cortex-widget__new-btn",children:K("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:K("path",{d:v.plus,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})});if(e.screen==="threads")return Mt("div",{className:"cortex-widget__threads-header",children:[K("button",{type:"button",onClick:e.closeHistory,"aria-label":t("translate_back"),className:"cortex-widget__header-btn cortex-widget__back-btn",children:K("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"cortex-widget__back-icon",children:K("path",{d:v.chevronLeft,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),Mt("div",{children:[K("h2",{className:"cortex-widget__threads-title",children:t("translate_history")}),e.threadCount!==void 0&&K("p",{className:"cortex-widget__threads-count",children:t("translate_conversations",{count:e.threadCount})})]}),n]});return Mt("div",{className:"cortex-widget__chat-header",children:[K("button",{onClick:e.openHistory,className:"cortex-widget__sidebar-toggle-btn",children:K("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:K("path",{d:v.menu,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),K("div",{className:"cortex-widget__chat-title-wrap",children:K("p",{className:"cortex-widget__chat-title",children:e.title})}),e.debug.shown&&K("button",{onClick:e.toggleDebug,className:y("cortex-widget__debug-btn",e.debug.on?"cortex-widget__debug-btn--on":"cortex-widget__debug-btn--off"),children:e.debug.on?t("translate_debug"):t("translate_normal")}),n,K("button",{type:"button",onClick:e.openHistory,"aria-label":t("translate_history"),title:t("translate_history"),className:"cortex-widget__header-btn cortex-widget__history-btn",children:Mt("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[K("circle",{cx:"8",cy:"8",r:"5.75",stroke:"currentColor",strokeWidth:"1.3"}),K("path",{d:v.clockHands,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})}import{jsx as de,jsxs as zo}from"react/jsx-runtime";function qo(e){let{locale:t,t:n}=h();return zo("div",{className:"cortex-widget__landing",children:[de("div",{className:"cortex-widget__landing-icon",children:de("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",children:de("path",{d:v.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),de("p",{className:"cortex-widget__landing-greeting",children:e.greeting}),!!e.suggestions.length&&de("div",{className:"cortex-widget__landing-chips",children:e.suggestions.map((r,o)=>de("button",{type:"button",onClick:()=>e.send(r.prompt),className:"cortex-widget__landing-chip",children:r.title},o))}),e.composer,!!e.threads?.length&&de("div",{className:"cortex-widget__landing-recent",children:e.threads.slice(0,2).map((r)=>{let o=ce(r.updatedAt,t);return zo("button",{type:"button",onClick:()=>e.openThread(r),className:"cortex-widget__landing-recent-item",children:[de("p",{className:"cortex-widget__landing-recent-title",children:r.title??n("translate_untitled")}),o&&de("p",{className:"cortex-widget__landing-recent-time",children:o})]},r.id)})})]})}import{useCallback as Xl,useEffect as Zl,useLayoutEffect as ut,useMemo as Yl,useRef as pt,useState as tr}from"react";import{memo as Kl}from"react";import{Fragment as ql}from"react";import{useRef as ul,useState as pl}from"react";import{jsx as Ae,jsxs as ml}from"react/jsx-runtime";function ne({value:e,className:t}){let{t:n}=h(),[r,o]=pl(!1),a=ul(null);async function i(s){s.stopPropagation(),s.preventDefault();try{if(await navigator.clipboard.writeText(e),o(!0),a.current)clearTimeout(a.current);a.current=setTimeout(()=>o(!1),1500)}catch{}}return Ae("span",{className:y("cortex-copy-btn",t),children:Ae("button",{className:y("cortex-copy-btn__button",r&&"cortex-copy-btn__button--copied"),onClick:(s)=>void i(s),"aria-label":r?n("translate_copied"):n("translate_copy"),type:"button",children:r?Ae("svg",{className:"cortex-copy-btn__icon cortex-copy-btn__icon--check",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:Ae("path",{d:v.check,stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):ml("svg",{className:"cortex-copy-btn__icon",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:[Ae("rect",{x:"9",y:"9",width:"12",height:"12",rx:"2",stroke:"currentColor",strokeWidth:"2"}),Ae("path",{d:v.copy,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})})})}import{jsx as Nt,jsxs as Vo}from"react/jsx-runtime";function Lt({label:e}){return Vo("div",{className:"cortex-aborted-flag",children:[Nt("span",{className:"cortex-aborted-flag__line"}),Vo("span",{className:"cortex-aborted-flag__label",children:[Nt("svg",{className:"cortex-aborted-flag__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:Nt("path",{d:v.alertSmall,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),e]}),Nt("span",{className:"cortex-aborted-flag__line"})]})}import{jsx as Ee,jsxs as Go}from"react/jsx-runtime";function Ko(e){let{widget:t,t:n}=h();return Ee("div",{className:y("cortex-message-attachments",e.isUser&&"cortex-message-attachments--user"),children:e.attachments.map((r)=>Go("button",{type:"button",onClick:()=>void Rn(t.api,r.id),className:"cortex-message-attachment","aria-label":`${n("translate_download")}: ${r.filename}`,children:[Go("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__icon",fill:"none",children:[Ee("path",{d:v.file[0],stroke:"currentColor",strokeWidth:"1.25"}),Ee("path",{d:v.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),Ee("span",{className:"cortex-message-attachment__name",children:r.filename}),Ee("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__dl-icon",fill:"none",children:Ee("path",{d:v.download,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},r.id))})}import{useState as nt}from"react";import{useMemo as fl,useState as gl}from"react";import{jsx as ee,jsxs as we,Fragment as At}from"react/jsx-runtime";function _e({data:e,expandDepth:t,className:n}){let r=fl(()=>Ne(e),[e]),[o,a]=gl({});function i(l,c){return o[l]??c>=t}function s(l,c){a((d)=>({...d,[l]:!i(l,c)}))}return ee("div",{className:y("cortex-json-tree",n),children:ee(Jo,{value:r,path:"$",depth:0,isCollapsed:i,toggle:s})})}function Jo({value:e,path:t,depth:n,isCollapsed:r,toggle:o}){let a=$n(e,t);if(a.kind==="primitive")return ee("span",{className:a.className,children:a.text});if(a.entries.length===0)return we("span",{className:"cortex-json-tree__bracket",children:[a.open,a.close]});let i=r(t,n);function s(l){o(t,n),l.stopPropagation()}return we(At,{children:[we("span",{className:"cortex-json-tree__toggle",onClick:s,role:"button",children:[ee("span",{className:y("cortex-json-tree__arrow",i&&"cortex-json-tree__arrow--collapsed"),children:"▾"}),ee("span",{className:"cortex-json-tree__bracket",children:a.open})]}),i?we(At,{children:[ee("span",{className:"cortex-json-tree__collapsed-hint",onClick:s,role:"button",children:a.summary}),ee("span",{className:"cortex-json-tree__bracket",children:a.close})]}):we(At,{children:[ee("div",{className:"cortex-json-tree__indent",children:a.entries.map((l,c)=>we("div",{className:"cortex-json-tree__line",children:[l.key!==null&&we(At,{children:[ee("span",{className:"cortex-json-tree__key",children:`"${l.key}"`}),ee("span",{className:"cortex-json-tree__colon",children:": "})]}),ee(Jo,{value:l.value,path:l.path,depth:n+1,isCollapsed:r,toggle:o}),c<a.entries.length-1&&ee("span",{className:"cortex-json-tree__comma",children:","})]},l.path))}),ee("span",{className:"cortex-json-tree__bracket",children:a.close})]})]})}import{jsx as Re,jsxs as Ie}from"react/jsx-runtime";function Xo({usage:e}){let{t}=h();return Ie("div",{className:"cortex-llm-inspector__usage-rows",children:[Ie("div",{className:"cortex-llm-inspector__usage-row",children:[Re("span",{className:"cortex-llm-inspector__usage-lbl",children:t("translate_input")}),Re("span",{className:"cortex-llm-inspector__usage-val",children:F(e.input.total)}),Ie("span",{className:"cortex-llm-inspector__usage-detail",children:[t("translate_fresh")," ",F(e.input.noCache)," · ",t("translate_read")," ",F(e.input.cacheRead)," · ",t("translate_write")," ",F(e.input.cacheWrite)]})]}),Ie("div",{className:"cortex-llm-inspector__usage-row",children:[Re("span",{className:"cortex-llm-inspector__usage-lbl",children:t("translate_output")}),Re("span",{className:"cortex-llm-inspector__usage-val",children:F(e.output.total)}),Ie("span",{className:"cortex-llm-inspector__usage-detail",children:[t("translate_text")," ",F(e.output.text)," · ",t("translate_reasoning")," ",F(e.output.reasoning)]})]}),Ie("div",{className:"cortex-llm-inspector__usage-row cortex-llm-inspector__usage-row--total",children:[Re("span",{className:"cortex-llm-inspector__usage-lbl",children:t("translate_total")}),Re("span",{className:"cortex-llm-inspector__usage-val",children:F(e.total)})]})]})}import{jsx as Zo,jsxs as Et}from"react/jsx-runtime";function Yo({usage:e}){let t=et(e);return Et("span",{className:"cortex-llm-inspector__step-metrics",children:[Et("span",{className:"cortex-llm-inspector__metric",children:[Zo("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--input"}),F(e.input.total)]}),Et("span",{className:"cortex-llm-inspector__metric",children:[Zo("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--output"}),F(e.output.total)]}),t!==null&&Et("span",{className:"cortex-llm-inspector__cache-pct",children:[t,"%"]})]})}import{jsx as U,jsxs as he}from"react/jsx-runtime";function Qo({messageId:e}){let{t,widget:n}=h(),r=L((g)=>g.selected?.id),[o,a]=nt(!1),[i,s]=nt("idle"),[l,c]=nt([]),[d,u]=nt(null),[p,f]=nt({});async function m(){if(!o&&i!=="loaded"&&r){s("loading");try{c(await n.api.listLlmRequests(r,e)),s("loaded")}catch{s("failed")}}a((g)=>!g)}function x(g){u((b)=>b===g?null:g)}function M(g){return p[g]??"prompt"}function C(g,b){f((k)=>({...k,[g]:b}))}function w(g){return M(g.id)==="prompt"?g.prompt:g.output}return he("div",{className:y("cortex-llm-inspector",o&&"cortex-llm-inspector--open"),children:[he("button",{className:"cortex-llm-inspector__trigger",onClick:()=>void m(),children:[U("svg",{className:"cortex-llm-inspector__icon",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:U("path",{d:v.search,fill:"currentColor"})}),U("span",{children:t("translate_inspect_llm_requests")}),i==="loading"?U("span",{className:"cortex-llm-inspector__loading",children:t("translate_loading")}):l.length>0?U("span",{className:"cortex-llm-inspector__badge",children:l.length}):null,U("svg",{className:"cortex-llm-inspector__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:U("path",{d:v.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),U("div",{className:"cortex-llm-inspector__panel-wrapper",children:U("div",{className:"cortex-llm-inspector__panel-inner",children:he("div",{className:"cortex-llm-inspector__panel",children:[l.length===0&&i!=="loading"&&U("div",{className:"cortex-llm-inspector__empty",children:t(i==="failed"?"translate_error":"translate_no_llm_requests")}),l.map((g,b)=>he("div",{className:y("cortex-llm-inspector__step",d===g.id&&"cortex-llm-inspector__step--expanded"),children:[he("button",{className:"cortex-llm-inspector__step-header",onClick:()=>x(g.id),children:[U("span",{className:"cortex-llm-inspector__step-label",children:t("translate_step_n",{number:b+1})}),g.tokenUsage&&U(Yo,{usage:g.tokenUsage}),U("svg",{className:"cortex-llm-inspector__step-chevron",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:U("path",{d:v.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),U("div",{className:"cortex-llm-inspector__step-body-wrapper",children:U("div",{className:"cortex-llm-inspector__step-body-inner",children:he("div",{className:"cortex-llm-inspector__step-body",children:[g.tokenUsage&&U(Xo,{usage:g.tokenUsage}),he("div",{className:"cortex-llm-inspector__tabs",children:[U("button",{className:y("cortex-llm-inspector__tab",M(g.id)==="prompt"&&"cortex-llm-inspector__tab--active"),onClick:()=>C(g.id,"prompt"),children:t("translate_request")}),U("button",{className:y("cortex-llm-inspector__tab",M(g.id)==="response"&&"cortex-llm-inspector__tab--active"),onClick:()=>C(g.id,"response"),children:t("translate_response")})]}),he("div",{className:"cortex-llm-inspector__json-pane",children:[U(ne,{className:"cortex-llm-inspector__json-copy",value:zn(w(g))}),U(_e,{data:jn(w(g)),expandDepth:2})]})]})})})]},g.id))]})})})]})}import{useState as _l}from"react";import{jsx as P,jsxs as B}from"react/jsx-runtime";function ea({usage:e,modelId:t}){let{t:n}=h(),[r,o]=_l(!1),a=et(e)??0;return B("div",{className:y("cortex-token-usage",r&&"cortex-token-usage--expanded"),children:[B("button",{className:"cortex-token-usage__summary",onClick:()=>o((i)=>!i),children:[B("span",{className:"cortex-token-usage__total",children:[P("span",{className:"cortex-token-usage__total-number",children:F(e.total)}),P("span",{className:"cortex-token-usage__total-label",children:n("translate_tokens")})]}),t?P("span",{className:"cortex-token-usage__model",children:t}):null,B("span",{className:"cortex-token-usage__pills",children:[B("span",{className:"cortex-token-usage__pill",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),F(e.input.total)]}),B("span",{className:"cortex-token-usage__pill",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),F(e.output.total)]})]}),a>0&&B("span",{className:"cortex-token-usage__cache-badge",children:[a,"%"]}),P("svg",{className:"cortex-token-usage__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:P("path",{d:v.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),P("div",{className:"cortex-token-usage__details",children:P("div",{className:"cortex-token-usage__details-inner",children:B("div",{className:"cortex-token-usage__columns",children:[B("div",{className:"cortex-token-usage__col",children:[B("div",{className:"cortex-token-usage__col-header",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),P("span",{className:"cortex-token-usage__col-label",children:n("translate_input")}),P("span",{className:"cortex-token-usage__col-total",children:F(e.input.total)})]}),B("div",{className:"cortex-token-usage__rows",children:[e.input.noCache?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_fresh")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.input.noCache)})]}):null,e.input.cacheRead?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_cache_read")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.input.cacheRead)})]}):null,e.input.cacheWrite?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_cache_write")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.input.cacheWrite)})]}):null]}),a>0&&B("div",{className:"cortex-token-usage__cache-bar-row",children:[P("div",{className:"cortex-token-usage__cache-bar",children:P("div",{className:"cortex-token-usage__cache-fill",style:{width:`${a}%`}})}),P("span",{className:"cortex-token-usage__cache-label",children:n("translate_n_percent_cached",{percent:a})})]})]}),B("div",{className:"cortex-token-usage__col",children:[B("div",{className:"cortex-token-usage__col-header",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),P("span",{className:"cortex-token-usage__col-label",children:n("translate_output")}),P("span",{className:"cortex-token-usage__col-total",children:F(e.output.total)})]}),B("div",{className:"cortex-token-usage__rows",children:[e.output.text?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_text")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.output.text)})]}):null,e.output.reasoning?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_reasoning")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.output.reasoning)})]}):null]})]})]})})})]})}import{jsx as ta,jsxs as hl}from"react/jsx-runtime";function na({messageId:e,metadata:t}){let{tokenUsage:n}=t;return hl("div",{className:"cortex-message-debug-zone",children:[n&&ta(ea,{usage:n,modelId:t.modelId}),ta(Qo,{messageId:e})]})}import{jsx as re,jsxs as rt}from"react/jsx-runtime";function ra(e){let{reasoningPart:t,streaming:n=!1}=e,{t:r}=h();return rt("details",{className:"cortex-reasoning-details",children:[rt("summary",{className:"cortex-reasoning-details__summary",children:[rt("div",{className:"cortex-reasoning-details__header",children:[re("span",{className:"cortex-reasoning-details__icon",children:rt("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:[re("path",{d:v.bulb[0],stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}),re("path",{d:v.bulb[1],stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}),re("div",{className:"cortex-reasoning-details__title-group",children:rt("div",{className:"cortex-reasoning-details__title-row",children:[re("div",{className:"cortex-reasoning-details__title",children:r("translate_reasoning")}),re("span",{className:y("cortex-reasoning-details__badge",n?"cortex-reasoning-details__badge--streaming":"cortex-reasoning-details__badge--done"),children:n?r("translate_streaming"):r("translate_done")})]})})]}),re("span",{className:"cortex-reasoning-details__chevron","aria-hidden":"true",children:re("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:re("path",{d:v.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),re("div",{className:"cortex-reasoning-details__body",children:re("div",{className:"cortex-reasoning-details__content",children:re("pre",{dir:"auto",className:"cortex-reasoning-details__pre",children:t.content.trim()?t.content:r("translate_no_reasoning")})})})]})}import{useEffect as ca,useMemo as Al,useState as da}from"react";import{useEffect as bl,useState as vl}from"react";import{useRef as xl,useState as yl}from"react";import{jsx as ue,jsxs as Rt}from"react/jsx-runtime";function Oe(e){let{label:t,ready:n=!0,actions:r,expanded:o,children:a}=e,{t:i}=h(),s=xl(null),[l,c]=yl(!1);return Rt("div",{className:"cortex-expandable",children:[n&&Rt("div",{className:"cortex-expandable__toolbar",role:"group","aria-label":t,children:[r,ue("button",{type:"button",className:"cortex-expandable__action","aria-label":i("translate_expand",{name:t}),title:i("translate_expand",{name:t}),onClick:()=>{c(!0),s.current?.showModal()},children:ue("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:ue("path",{d:v.expand,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),ue("div",{className:"cortex-expandable__content",children:a}),Rt("dialog",{ref:s,className:"cortex-expandable__dialog","aria-label":t,closedby:"any",onClose:()=>c(!1),children:[Rt("div",{className:"cortex-expandable__head",children:[ue("span",{className:"cortex-expandable__title",children:t}),r,ue("button",{type:"button",className:"cortex-expandable__action","aria-label":i("translate_close"),title:i("translate_close"),onClick:()=>s.current?.close(),children:ue("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:ue("path",{d:v.close,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})})]}),l&&ue("div",{className:"cortex-expandable__body",children:o})]})]})}import{jsx as ot,jsxs as Tl}from"react/jsx-runtime";function oa(e){let{id:t,alt:n,attachment:r}=e,{widget:o,t:a}=h(),[{url:i,failed:s},l]=vl({url:void 0,failed:!1});if(bl(()=>En(o.api,t,l),[o,t]),s)return ot("p",{className:"cortex-attachment-image__caption",children:n?a("translate_image_unavailable_alt",{alt:n}):a("translate_image_unavailable")});if(!i)return null;return Tl("figure",{className:"cortex-attachment-image",children:[ot(Oe,{label:r?.filename||n||a("translate_image"),expanded:ot("img",{className:"cortex-attachment-image__expanded",src:i,alt:n}),children:ot("img",{src:i,alt:n})}),r&&ot("figcaption",{className:"cortex-attachment-image__caption",children:r.filename})]})}import{useEffect as wl,useRef as Cl,useState as Zn}from"react";import{jsx as Z,jsxs as at,Fragment as Ml}from"react/jsx-runtime";function kl(e){let{t}=h();if(!e.pending&&!e.debugMode)return null;return at("div",{className:"cortex-media-block__head",children:[e.debugMode&&Z("span",{className:"cortex-media-block__lang",children:e.language}),e.pending&&Z("span",{className:"cortex-media-block__pending",children:t(wt(e.language).pending)}),e.debugMode&&e.closed&&at("span",{className:"cortex-media-block__actions",children:[e.onToggleSource&&Z("button",{type:"button",className:"cortex-media-block__action","aria-pressed":e.sourceShown,onClick:e.onToggleSource,children:t("translate_media_source")}),Z(ne,{value:e.source})]})]})}function aa(e){let{t}=h(),n=L((r)=>r.debugMode);return Z("div",{className:"cortex-media-block__body",children:at("p",{className:"cortex-media-block__error",children:[e.cutOff?t("translate_media_cut_off"):t("translate_media_failed"),!e.cutOff&&n&&` ${e.reason}`]})})}function sa(e){let{language:t,source:n,closed:r,hidden:o,onError:a}=e,{config:i,scheme:s,locale:l}=h(),c=Cl(null);return wl(()=>{a(void 0);let d=c.current;if(!r||!s||!d)return;return Ct(d,{language:t,source:n,context:{scheme:s,locale:l},overrides:i.mediaRenderers,onError:a})},[t,n,r,s,l,i.mediaRenderers,a]),Z("div",{ref:c,hidden:o,className:y("cortex-media-block__body",`cortex-media-block__body--${t}`)})}function Sl(e){let[t,n]=Zn();return at(Ml,{children:[t&&Z(aa,{cutOff:!1,reason:t}),Z(sa,{language:e.language,source:e.source,closed:!0,hidden:Boolean(t),onError:n})]})}function ia(e){let{language:t,source:n,closed:r,streaming:o}=e,{t:a}=h(),i=L((m)=>m.debugMode),[s,l]=Zn(),[c,d]=Zn(!1),u=!r&&!o,p=u||Boolean(s);return at("div",{className:"cortex-media-block",children:[Z(kl,{language:t,source:n,pending:!r&&o,closed:r,debugMode:i,sourceShown:c,onToggleSource:p?void 0:()=>d((m)=>!m)}),p&&Z(aa,{cutOff:u,reason:s}),Z(Oe,{label:a(wt(t).title),ready:r&&!p,expanded:Z(Sl,{language:t,source:n}),children:Z(sa,{language:t,source:n,closed:r,hidden:p,onError:l})}),i&&(p||c)&&Z("pre",{dir:"ltr",className:"cortex-media-block__source",children:n})]})}import{useMemo as Nl,useRef as Ll}from"react";import{jsx as Ce}from"react/jsx-runtime";function la(e){let{t}=h(),n=Ll(null),r=Nl(()=>({__html:Ze(e.text)}),[e.text]);return Ce("div",{className:"cortex-table-block",children:Ce(Oe,{label:t("translate_table"),ready:e.closed,actions:Ce("button",{type:"button",className:"cortex-expandable__action","aria-label":t("translate_table_export"),title:t("translate_table_export"),onClick:()=>n.current&&An(n.current),children:Ce("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:Ce("path",{d:v.downloadTray,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),expanded:Ce("div",{className:"cortex-table-block__expanded",dangerouslySetInnerHTML:r}),children:Ce("div",{ref:n,dangerouslySetInnerHTML:r})})})}import{jsx as Pe}from"react/jsx-runtime";function ua(e){let{role:t,textPart:n,streaming:r=!1,attachments:o}=e,{config:a}=h(),[i,s]=da({text:n.content,fading:[]}),[l]=da(()=>new ve((u,p)=>s((f)=>f.text===u&&!f.fading.length&&!p.length?f:{text:u,fading:p})));ca(()=>l.follow(n.content,t==="assistant"&&r),[l,t,r,n]),ca(()=>()=>l.destroy(),[l]);let c=r||i.text!==n.content,d=Al(()=>{let u=Ln(i.text,{role:t,languages:Un(a.mediaRenderers),attachments:o,arriving:c});return u.map((p,f)=>p.kind==="markdown"?{...p,html:{__html:Ze(p.text,f===u.length-1?i.fading:[])}}:p)},[t,i,a.mediaRenderers,o,c]);return Pe("div",{className:y("cortex-text-part",t==="assistant"&&"cortex-text-part--assistant",t==="user"&&"cortex-text-part--user"),children:Pe("div",{className:y("cortex-text-bubble",t==="assistant"&&"cortex-text-bubble--assistant",t==="user"&&"cortex-text-bubble--user"),children:d.map((u,p)=>{switch(u.kind){case"markdown":return Pe("div",{dangerouslySetInnerHTML:u.html},p);case"media":return Pe(ia,{...u,streaming:c},p);case"table":return Pe(la,{text:u.text,closed:u.closed},p);case"attachment":return Pe(oa,{...u},p)}})})})}import{useEffect as ba,useRef as Yn,useState as va}from"react";import{useEffect as El,useState as Rl}from"react";import{jsx as st,jsxs as pa}from"react/jsx-runtime";function Fe({activity:e,className:t}){let{t:n}=h(),r=Xt(e),[o,a]=Rl({index:0,phase:"idle"}),i=r.length;return El(()=>rn(i,a),[i]),pa("div",{className:y("cortex-subtle-activity",t),children:[pa("div",{className:"cortex-subtle-activity__dots",children:[st("span",{className:"cortex-subtle-activity__dot"}),st("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d1"}),st("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d2"})]}),st("div",{className:"cortex-subtle-activity__label-mask",children:st("span",{className:y("cortex-subtle-activity__label",`cortex-subtle-activity__label--${o.phase}`),children:n(r[o.index])})})]})}import{jsx as it,jsxs as Il}from"react/jsx-runtime";function He({state:e,active:t}){return Il("span",{className:"cortex-tool-pill__icon","aria-hidden":"true",children:[it("span",{className:y("cortex-tool-pill__spinner",t&&"cortex-tool-pill__spinner--visible")}),it("svg",{className:y("cortex-tool-pill__svg cortex-tool-pill__svg--check",e==="complete"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:it("path",{d:v.statusCheck,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),it("svg",{className:y("cortex-tool-pill__svg",e==="error"&&"cortex-tool-pill__svg--error",(e==="error"||e==="declined")&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:it("path",{d:v.statusCross,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]})}import{jsx as xe,jsxs as lt,Fragment as Ol}from"react/jsx-runtime";function ma({toolCallPart:e,asking:t}){let{t:n,widget:r}=h(),o=Jt(e),a=o.title??n(o.fallbackKey,o.fallbackParams),i=`cortex-approval-${e.id}`,s=o.decision==="pending";function l(c){r.respondToApproval(e,c).catch(()=>{})}return lt("div",{className:y("cortex-approval-card",s&&"cortex-approval-card--asking"),children:[s?lt(Ol,{children:[lt("div",{className:"cortex-approval-card__head",children:[xe("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:xe("path",{d:v.shield,stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),n("translate_approval_needed")]}),xe("p",{className:"cortex-approval-card__sentence",id:i,children:a})]}):lt("div",{className:"cortex-approval-card__line",children:[xe(He,{state:o.state,active:o.active}),o.decisionKey&&xe("span",{className:"cortex-approval-card__decision",children:n(o.decisionKey)}),xe("span",{className:"cortex-approval-card__summary",children:a})]}),s&&t&<("div",{className:"cortex-approval-card__foot",children:[xe("button",{type:"button",className:"cortex-approval-card__button cortex-approval-card__button--approve","aria-describedby":i,onClick:()=>l(!0),children:n("translate_approve")}),xe("button",{type:"button",className:"cortex-approval-card__button","aria-describedby":i,onClick:()=>l(!1),children:n("translate_deny")})]})]})}import{useEffect as fa,useRef as It,useState as ga}from"react";import{jsx as j,jsxs as se}from"react/jsx-runtime";function _a({toolCallPart:e,setOutput:t}){let{t:n}=h(),{state:r,id:o,input:a}=e;if(r==="complete"||r==="error"){let i=Mn(e.output);return i?j(Fl,{position:i}):se("div",{className:"cortex-tool-pill",children:[j(He,{state:r==="error"?"error":"declined",active:!1}),j("span",{className:"cortex-tool-pill__title",children:n("translate_location_not_shared")})]})}if(r!=="input-complete")return null;return j(Pl,{center:Sn(a),submit:t},o)}function Pl({center:e,submit:t}){let{t:n}=h(),r=It(null),o=It(void 0),[a,i]=ga(yt),s=It({center:e,submit:t});s.current={center:e,submit:t},fa(()=>{let c=r.current;if(!c)return;let d=Cn(c,{center:s.current.center,onState:i,submit:(u)=>s.current.submit(u)});return o.current=d,d.start(),()=>{if(d.dispose(),o.current===d)o.current=void 0}},[]);let l=Nn(a);return se("div",{className:"cortex-location-input",children:[se("div",{className:"cortex-location-input__map",children:[j("div",{className:"cortex-location-input__canvas",ref:r}),j("button",{type:"button",className:"cortex-location-input__locate","aria-label":n("translate_location_locate"),title:n("translate_location_locate"),disabled:a.locating||a.submitting,onClick:()=>o.current?.locate(),children:j(Hl,{})})]}),se("div",{className:"cortex-location-input__foot",children:[a.position&&!a.deliveryFailed?j("span",{className:"cortex-location-input__coords",children:bt(a.position)}):se("span",{className:y("cortex-location-input__hint",l.failed&&"cortex-location-input__hint--failed"),children:[a.locating&&j("span",{className:"cortex-location-input__spinner"}),n(l.key)]}),se("span",{className:"cortex-location-input__actions",children:[j("button",{type:"button",className:"cortex-location-input__skip",disabled:a.submitting,onClick:()=>o.current?.cancel(),children:n("translate_location_skip")}),j("button",{type:"button",className:"cortex-location-input__send",disabled:!a.position||a.submitting,onClick:()=>o.current?.confirm(),children:n("translate_location_send")})]})]})]})}function Fl({position:e}){let{t}=h(),n=It(null),[r,o]=ga(!1),{lat:a,lng:i}=e;return fa(()=>{let s=n.current;if(!s)return;return o(!1),kn(s,{lat:a,lng:i},()=>o(!0))},[a,i]),se("div",{className:"cortex-location-input cortex-location-input--settled",children:[se("div",{className:"cortex-location-input__map cortex-location-input__map--still",children:[j("div",{className:"cortex-location-input__canvas",ref:n,hidden:r}),r&&j("span",{className:"cortex-location-input__still-failed",children:t("translate_location_map_failed")})]}),se("div",{className:"cortex-location-input__body",children:[se("span",{className:"cortex-location-input__title",children:[j("svg",{viewBox:"0 0 20 20",fill:"none",children:j("path",{d:v.statusCheck,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),t("translate_location_shared")]}),j("span",{className:"cortex-location-input__coords",children:bt(e)})]})]})}function Hl(){return se("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:[j("circle",{cx:"10",cy:"10",r:"5.5"}),j("circle",{cx:"10",cy:"10",r:"1.6",fill:"currentColor",stroke:"none"}),j("path",{d:v.crosshair})]})}import{jsx as ie,jsxs as De}from"react/jsx-runtime";function ha({toolCallPart:e}){let{t}=h(),n=Yt(e),r=e.output;switch(n?.kind){case"output":return De("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--success",children:[De("div",{className:"cortex-debug-tool__section-bar",children:[ie("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--success",children:t("translate_output")}),ie("span",{className:"cortex-debug-tool__section-lang",children:"json"}),ie(ne,{value:n.text})]}),ie("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:ie(_e,{data:r,expandDepth:2})})]});case"error":return De("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--error",children:[De("div",{className:"cortex-debug-tool__section-bar",children:[ie("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--error",children:t("translate_error")}),ie(ne,{value:n.text})]}),ie("pre",{dir:"ltr",className:"cortex-debug-tool__error-pre",children:n.text})]});case"approval":return De("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[De("div",{className:"cortex-debug-tool__section-bar",children:[ie("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:t(n.labelKey)}),ie("span",{className:"cortex-debug-tool__section-lang",children:n.approvalId})]}),ie("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:t(n.messageKey)})]});default:return null}}import{jsx as Dl,jsxs as Ul}from"react/jsx-runtime";function xa({toolCallPart:e}){let{t}=h(),n=Gt(e);return Ul("span",{className:y("cortex-debug-tool__state",n.modifier&&`cortex-debug-tool__state--${n.modifier}`),children:[n.pulse&&Dl("span",{className:y("cortex-debug-tool__pulse",n.pulse==="violet"&&"cortex-debug-tool__pulse--violet")}),t(n.labelKey)]})}import{jsx as z,jsxs as pe}from"react/jsx-runtime";function ya({toolCallPart:e}){let{t}=h(),{codeSnippets:n,remainingInput:r,remainingInputText:o}=Kt(e.input);return pe("details",{className:"cortex-debug-tool","data-state":e.state,children:[z("summary",{className:"cortex-debug-tool__summary",children:pe("div",{className:"cortex-debug-tool__header",children:[pe("div",{className:"cortex-debug-tool__meta",children:[z("div",{className:"cortex-debug-tool__title-row",children:z("span",{className:"cortex-debug-tool__name",title:e.name,children:e.name})}),z("div",{className:"cortex-debug-tool__id-row",children:z("span",{className:"cortex-debug-tool__id",children:e.id})})]}),pe("div",{className:"cortex-debug-tool__actions",children:[z(xa,{toolCallPart:e}),z("svg",{className:"cortex-debug-tool__chevron",width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:z("path",{d:v.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),pe("div",{className:"cortex-debug-tool__body",children:[n.map((a)=>pe("div",{className:"cortex-debug-tool__section",children:[pe("div",{className:"cortex-debug-tool__section-bar",children:[z("span",{className:"cortex-debug-tool__section-label",children:a.key}),z("span",{className:"cortex-debug-tool__section-lang",children:a.lang}),z(ne,{value:a.value})]}),z("pre",{dir:"ltr",className:"cortex-debug-tool__pre",children:z("code",{className:"hljs",dangerouslySetInnerHTML:{__html:Bn(a.value,a.lang)}})})]},a.key)),!!r&&pe("div",{className:"cortex-debug-tool__section",children:[pe("div",{className:"cortex-debug-tool__section-bar",children:[z("span",{className:"cortex-debug-tool__section-label",children:t("translate_input")}),z("span",{className:"cortex-debug-tool__section-lang",children:"json"}),z(ne,{value:o})]}),z("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:z(_e,{data:r,expandDepth:2})})]}),z(ha,{toolCallPart:e})]})]})}import{jsx as q,jsxs as Ot}from"react/jsx-runtime";var Wl={[_t]:_a};function Ta({message:e,toolCallPart:t}){let{config:n,widget:r}=h(),o=L((u)=>u.session.isAgentWorking),a=L((u)=>u.capabilities),i=L((u)=>u.debugMode),[s,l]=va(!1),c=Zt(t,{agentWorking:o,capabilities:a,debugMode:i,consumerTools:n.toolComponents,builtInTools:Wl,embedUnavailable:s});function d(){switch(c.kind){case"consumer":case"builtIn":return q(c.component,{toolCallPart:t,message:e,setOutput:(u)=>r.addToolResult(t.id,t.name,u)});case"embed":return q(Bl,{toolCallPart:t,onUnavailable:()=>l(!0)});case"approval":return q(ma,{toolCallPart:t,asking:c.asking});case"debug":return q(ya,{toolCallPart:t});case"activity":return q(Fe,{activity:c.activity});case"pill":return q(jl,{toolCallPart:t})}}return q("div",{className:"cortex-tool-call-animated",children:d()})}function Bl({toolCallPart:e,onUnavailable:t}){let{t:n,widget:r,config:o}=h(),a=L((u)=>u.selected?.id),[i,s]=va({phase:"initiating"}),l=Yn(void 0),c=Yn({widget:r,config:o,onUnavailable:t,toolName:e.name});if(c.current={widget:r,config:o,onUnavailable:t,toolName:e.name},ba(()=>{if(!a){c.current.onUnavailable();return}let u=wn({initiate:()=>c.current.widget.api.initiateToolCall(a,e.id),onState:(p)=>{if(s(p),p.phase==="unavailable")c.current.onUnavailable()},submit:(p)=>c.current.widget.addToolResult(e.id,c.current.toolName,p),host:window,trustSameOrigin:c.current.config.trustSameOriginEmbeds});return l.current=u,u.start(),()=>{if(u.dispose(),l.current===u)l.current=void 0}},[e.id,a]),!a||i.phase==="unavailable")return null;let d=Ot("div",{className:"cortex-client-tool-embed",children:[Ot("div",{className:"cortex-client-tool-embed__bar",children:[q("span",{children:n("translate_client_tool_title")}),q("button",{type:"button",className:"cortex-client-tool-embed__cancel",onClick:()=>l.current?.cancel(),children:n("translate_client_tool_cancel")})]}),i.phase==="embedded"?q("iframe",{className:"cortex-client-tool-embed__frame",src:i.embedUrl,sandbox:i.sandbox,title:n("translate_client_tool_title"),ref:(u)=>l.current?.setSource(u?.contentWindow),onLoad:(u)=>l.current?.frameLoaded(u.currentTarget)}):i.phase==="error"?Ot("div",{className:"cortex-client-tool-embed__status",children:[q("span",{children:n("translate_client_tool_failed")}),q("button",{type:"button",className:"cortex-client-tool-embed__retry",onClick:()=>void l.current?.start(),children:n("translate_client_tool_retry")})]}):q("div",{className:"cortex-client-tool-embed__status",children:n("translate_client_tool_loading")})]});return i.phase==="embedded"&&i.surface==="modal"?q($l,{label:n("translate_client_tool_title"),onCancel:()=>l.current?.cancel(),children:d}):d}function $l({label:e,onCancel:t,children:n}){let r=Yn(null);return ba(()=>{let o=r.current;return o?.showModal(),()=>o?.close()},[]),q("dialog",{ref:r,className:"cortex-client-tool-embed-dialog","aria-label":e,onCancel:(o)=>{o.preventDefault(),t()},children:n})}function jl({toolCallPart:e}){let{t}=h(),{state:n,active:r,titleKey:o,statement:a,rows:i}=je(e);return Ot("div",{className:"cortex-tool-pill",children:[q(He,{state:n,active:r}),q("span",{className:y("cortex-tool-pill__title",n==="error"&&"cortex-tool-pill__title--error",n==="starting"&&a&&"cortex-tool-pill__title--pending"),children:a??t(o)}),i!==void 0&&q("span",{className:"cortex-tool-pill__meta",children:t("translate_rows",{count:i})})]})}import{jsx as ct,jsxs as zl}from"react/jsx-runtime";function wa(e){let{message:t,part:n,animate:r,streaming:o,attachments:a}=e,{t:i}=h(),s=L((c)=>c.debugMode);function l(){switch(n.type){case"text":return ct(ua,{textPart:n,role:t.role,streaming:o,attachments:a});case"thinking":return s?ct(ra,{reasoningPart:n,streaming:o}):ct(Fe,{activity:"reasoning",className:"cortex-reasoning-animated"});case"tool-call":return ct(Ta,{toolCallPart:n,message:t});default:return zl("p",{className:"cortex-unhandled-type",children:[i("translate_unhandled_type")," ",n.type]})}}return ct("div",{className:y("cortex-message-part",r&&"cortex-message-part--animated",e.folded&&"cortex-message-part--folded"),"data-cortex-frontier":e.frontier?"":void 0,children:l()})}import{jsx as me,jsxs as Qn}from"react/jsx-runtime";function Vl({isUser:e,clipboardText:t,createdAt:n}){let{locale:r}=h();return Qn("div",{className:y("cortex-message-actions",e&&"cortex-message-actions--user"),children:[t&&me(ne,{value:t}),n&&me("time",{className:"cortex-message-actions__time",dateTime:n,children:ce(n,r)})]})}function Gl({count:e,animate:t,onOpen:n}){let{t:r}=h();return me("button",{type:"button",className:y("cortex-tool-fold",t&&"cortex-message-part--animated"),onClick:n,children:r("translate_more_steps",{count:e})})}function Ca(e){let{message:t,layout:n,animate:r,fold:o,onOpenRun:a,frontier:i}=e,{parts:s,metadata:l,actionsAfter:c}=n,{t:d}=h(),u=t.role==="user",p=l?.attachments,f=c&&me(Vl,{isUser:u,clipboardText:Gn(s),createdAt:l?.createdAt});return Qn("div",{className:"cortex-message-parts",children:[s.map((m)=>{let x=o?.get(m);return Qn(ql,{children:[me(wa,{part:m,message:t,animate:r,streaming:m===n.streamingPart,attachments:p,frontier:m===i,folded:x?.kind==="hidden"}),x?.kind==="more"&&me(Gl,{count:x.count,animate:r,onOpen:()=>a(x.runId)}),m===c&&f]},t.parts.indexOf(m))}),p?.length?me(Ko,{attachments:p,isUser:u}):null,l?.isAborted&&me(Lt,{label:d("translate_aborted")}),c==="end"&&f,n.debugStrip&&l&&me(na,{messageId:t.id,metadata:l})]})}import{jsx as ke,jsxs as er}from"react/jsx-runtime";function ka({firing:e}){let{t,locale:n}=h(),r=L((o)=>o.debugMode);return er("div",{className:y("cortex-trigger-block",r&&"cortex-trigger-block--debug"),children:[er("div",{className:"cortex-trigger-block__head",children:[ke("svg",{className:"cortex-trigger-block__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:ke("path",{d:v.bolt,fill:"currentColor"})}),r&&ke("span",{children:t("translate_trigger_fired")}),ke("span",{className:"cortex-trigger-block__name",children:e.name}),ke("time",{className:"cortex-trigger-block__time",dateTime:e.firedAt,children:ce(e.firedAt,n)})]}),r&&er("details",{className:"cortex-trigger-block__payload",children:[ke("summary",{children:t("translate_trigger_payload")}),ke(_e,{data:e.payload,expandDepth:2})]})]})}import{jsx as dt}from"react/jsx-runtime";var Sa=Kl(function(t){let{message:n,isStreaming:r,closesTurn:o,animate:a,fold:i,onOpenRun:s,workingTurn:l,frontier:c}=t,d=L((p)=>p.debugMode),u=Vn(n,{debugMode:d,isStreaming:r,fold:i,closesTurn:o});if(u.metadata?.trigger)return dt("div",{className:"cortex-message",children:dt(ka,{firing:u.metadata.trigger})});if(!u.drawsBody)return dt("div",{className:"cortex-message"});return dt("div",{className:y("cortex-message",l&&"cortex-message--working-turn"),children:dt(Ca,{message:n,layout:u,animate:a,fold:i,onOpenRun:s,frontier:c})})});import{jsx as Pt}from"react/jsx-runtime";var Jl=[{role:"user",lines:[13,9]},{role:"assistant",lines:[16,18,12]},{role:"user",lines:[11]},{role:"assistant",lines:[14,15]}];function Ma(){return Pt("div",{className:"cortex-widget__messages-skeleton",children:Jl.map((e,t)=>Pt("div",{className:`cortex-widget__msg-skel cortex-widget__msg-skel--${e.role}`,children:Pt("div",{className:`cortex-widget__msg-skel-bubble cortex-widget__msg-skel-bubble--${e.role}`,children:e.lines.map((n)=>Pt("div",{className:"cortex-skeleton cortex-widget__msg-skel-line",style:{width:`${n}rem`}},n))})},t))})}import{jsx as te,jsxs as mt,Fragment as Na}from"react/jsx-runtime";function Ql(e,t,n){let r=pt(null),o=pt(null),a=pt(void 0),[i,s]=tr(!1);return ut(()=>{let l=r.current,c=o.current;if(!e||!l||!c)return;let d=tn(l,c);return a.current=d,()=>{d.dispose(),a.current=void 0}},[e]),ut(()=>a.current?.pin(),[t]),ut(()=>a.current?.messagesChanged(n.at(-1)),[n]),Zl(()=>{s(!1),queueMicrotask(()=>s(!0))},[t]),{containerRef:r,contentRef:o,animateNewParts:i}}function ec({working:e}){let t=pt(null),n=pt(void 0);return ut(()=>{let r=t.current;if(!r)return;let o=nn(r);return n.current=o,()=>{o.dispose(),n.current=void 0}},[]),ut(()=>n.current?.sync(e)),mt("div",{ref:t,className:"cortex-working-avatar","aria-hidden":"true",children:[mt("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[te("path",{d:v.sparkles[0]}),te("path",{d:v.sparkles[1]})]}),te("span",{className:"cortex-working-avatar__ring"})]})}function La(e){let{config:t,t:n}=h(),r=L((g)=>g.selected?.id),{messages:o,isAgentWorking:a,isLoadingMessages:i,turnFailure:s}=L((g)=>g.session),l=L((g)=>g.debugMode),c=L((g)=>g.capabilities),d=!i||a,u=Ql(d,r,o),[p,f]=tr(new Set),m=Xl((g)=>f((b)=>new Set(b).add(g)),[]),x=t.toolComponents,[M]=tr(qn),{rows:C,thinking:w}=Yl(()=>M(o,{agentWorking:a,debugMode:l,opened:p,consumerTools:x,capabilities:c}),[M,o,a,l,p,x,c]);return mt(Na,{children:[!d?te(Ma,{}):te("div",{className:e.className,children:te("div",{ref:u.containerRef,className:"cortex-message-list",children:mt("div",{ref:u.contentRef,className:"cortex-message-list__content",children:[C.map((g)=>te(Sa,{...g,onOpenRun:m,animate:u.animateNewParts},g.message.id)),s&&mt(Na,{children:[te(Lt,{label:n(hn(s))}),s.reason&&te("p",{className:"cortex-aborted-flag__reason",children:s.reason})]}),w&&te("div",{className:"cortex-working-thinking","data-cortex-frontier":"",children:te(Fe,{activity:"reasoning"})}),te(ec,{working:a},r)]})})}),te(St,{})]})}import{jsx as Aa,jsxs as tc}from"react/jsx-runtime";function Ea(e){let{widget:t}=h(),n=L((o)=>o.screen),r=L((o)=>o.selected!==void 0);return tc("div",{className:y("cortex-widget__screen",n==="chat"&&"cortex-widget__screen--active",n!=="chat"&&"cortex-widget__screen--right"),children:[e.header,r?Aa(La,{className:"cortex-widget__messages"}):e.landing,Aa("div",{className:"cortex-widget__sidebar-backdrop",onClick:t.closeHistory})]})}import{jsx as W,jsxs as Se,Fragment as nc}from"react/jsx-runtime";function Ra(e){let{locale:t,t:n}=h(),{threads:r,deleteThread:o}=e;return W("div",{className:"cortex-widget__threads-list",children:r===void 0?[1,2,3,4].map((a)=>Se("div",{className:"cortex-widget__thread-skeleton",children:[W("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-icon"}),W("div",{className:"cortex-widget__thread-skeleton-lines",children:W("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-line",style:{width:`${40+a*12}%`}})})]},a)):Se(nc,{children:[r.map((a)=>{let i=a.id===e.selectedThreadId,s=ce(a.updatedAt,t);return Se("div",{className:y("cortex-widget__thread-item",i&&"cortex-widget__thread-item--active"),children:[W("div",{className:y("cortex-widget__thread-icon",i&&"cortex-widget__thread-icon--active"),children:W("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:W("path",{d:v.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),Se("button",{type:"button",onClick:()=>e.openThread(a),className:"cortex-widget__thread-info",children:[Se("div",{className:"cortex-widget__thread-title-row",children:[W("p",{dir:"auto",className:y("cortex-widget__thread-title",i&&"cortex-widget__thread-title--active"),children:a.title??n("translate_untitled")}),a.isRunning&&Se("span",{className:y("cortex-widget__thread-running",i&&"cortex-widget__thread-running--active"),children:[W("span",{className:"cortex-widget__thread-running-dot"}),n("translate_running")]})]}),s&&W("p",{className:"cortex-widget__thread-time",children:s})]}),o&&W("button",{type:"button","aria-label":n("translate_delete_conversation"),onClick:()=>o(a.id),className:y("cortex-widget__thread-delete",i&&"cortex-widget__thread-delete--active"),children:W("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:W("path",{d:v.close,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),W("svg",{className:y("cortex-widget__thread-arrow",i&&"cortex-widget__thread-arrow--active"),width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:W("path",{d:v.chevronRight,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},a.id)}),!r.length&&Se("div",{className:"cortex-widget__threads-empty",children:[W("div",{className:"cortex-widget__threads-empty-icon",children:W("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__threads-empty-svg",children:W("path",{d:v.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),W("p",{className:"cortex-widget__threads-empty-title",children:n("translate_no_threads_yet")}),W("p",{className:"cortex-widget__threads-empty-subtitle",children:n("translate_start_a_new_conversation")}),e.newChat&&W("button",{onClick:e.newChat,className:"cortex-widget__new-chat-btn cortex-widget__new-chat-btn--empty-state",children:n("translate_new_chat")})]})]})})}import{jsx as rc,jsxs as Oa}from"react/jsx-runtime";function Ia(e){e.preventDefault()}function Pa(e){let{locale:t}=h(),n=L((o)=>o.screen),r=L((o)=>o.sidebarOpen);return rc("div",{className:y("cortex-widget",e.className),"data-cortex-theme":e.theme,dir:ur[t],children:Oa("div",{className:y("cortex-widget__container",e.viewMode==="full"&&"cortex-widget__container--full",r&&"cortex-widget__container--sidebar-open"),onDragOver:Ia,onDrop:Ia,children:[Oa("div",{className:y("cortex-widget__screen",n==="threads"&&"cortex-widget__screen--active",n!=="threads"&&"cortex-widget__screen--left"),children:[e.header,e.threadList]}),e.children]})})}import{jsx as fe}from"react/jsx-runtime";var sc={header:jo,landing:qo,threadList:Ra};function nr(e,t){return e?.[t]??sc[t]}function ic({config:e,className:t,slots:n}){let{widget:r,parts:o}=Po(e),[a,i]=ac();oc(()=>Wn(e.theme,i),[e.theme]);let s=Me(e.locale),l=Fa(()=>({config:e,locale:s,t:(d,u)=>Y(s,d,u),scheme:a,widget:r}),[e,s,a,r]),c=Fa(()=>{let d=Tn(r,o,e,fe("div",{className:"cortex-widget__landing-composer",children:fe(St,{})})),u=nr(n,"header"),p=nr(n,"landing"),f=nr(n,"threadList");return{threadsHeader:fe(u,{...d.threadsHeader}),threadList:fe(f,{...d.threadList}),chatHeader:fe(u,{...d.chatHeader}),landing:fe(p,{...d.landing})}},[r,o,e,n]);return fe(Kn.Provider,{value:l,children:fe(Pa,{className:t,theme:e.theme,viewMode:e.viewMode??"helper",header:c.threadsHeader,threadList:c.threadList,children:fe(Ea,{header:c.chatHeader,landing:c.landing})})})}export{ic as CortexChatWidget};
|
|
192
|
+
`)}var T={alert:"M8 4.75v4M8 10.75v.5",alertSmall:"M6 1.5v5M6 8.75v.5",arrowRight:"M3 8h10M9 4l4 4-4 4",bolt:"M6.75 1 2.5 6.75h3l-.25 4.25L9.5 5.25h-3z",bubble:"M13.5 7.6c0 2.4-2.5 4.4-5.5 4.4-.6 0-1.2-.08-1.7-.23L3 13l.8-2.3C3 9.8 2.5 8.7 2.5 7.6 2.5 5.2 5 3.2 8 3.2s5.5 2 5.5 4.4Z",bulb:["M10 2C6.686 2 4 4.686 4 8c0 1.655.672 3.154 1.757 4.243.362.363.576.858.576 1.371V14.5a1 1 0 0 0 1 1h5.334a1 1 0 0 0 1-1v-.886c0-.513.214-1.008.576-1.371A5.978 5.978 0 0 0 16 8c0-3.314-2.686-6-6-6Z","M7.5 17.5h5M8.5 8a2 2 0 0 1 2-2"],check:"M5 13l4 4L19 7",chevronDown:"M3 4.5L6 7.5L9 4.5",chevronDownLarge:"m5.75 8.25 4.25 4.25 4.25-4.25",chevronLeft:"M10 3L5 8l5 5",chevronRight:"M6 4l4 4-4 4",clockHands:"M8 5v3l2 1.5",close:"M4 4l8 8M12 4l-8 8",closeSmall:"M4.5 4.5l7 7m0-7l-7 7",copy:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",crosshair:"M10 1.5v3M10 15.5v3M1.5 10h3M15.5 10h3",download:"M8 3v7m0 0L5.5 7.5M8 10l2.5-2.5M3 13h10",downloadTray:"M8 2.5v7.5M5 7l3 3 3-3M2.75 11v1.25a1.25 1.25 0 0 0 1.25 1.25h8a1.25 1.25 0 0 0 1.25-1.25V11",expand:"M9.5 2.5h4v4M6.5 13.5h-4v-4M13.5 2.5 9 7M2.5 13.5 7 9",file:["M4 1.5h5.172a2 2 0 0 1 1.414.586l2.328 2.328a2 2 0 0 1 .586 1.414V12.5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2Z","M9.5 1.5v2a2 2 0 0 0 2 2h2"],menu:"M2.5 4h11M2.5 8h11M2.5 12h11",paperclip:"M10.5 5.5 6.2 9.8a1.4 1.4 0 0 0 2 2l4.6-4.6a2.8 2.8 0 0 0-4-4L4.2 7.8a4.2 4.2 0 0 0 6 6l4-4",plus:"M8 3v10M3 8h10",search:"M6 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM0 6a6 6 0 1 1 10.89 3.477l4.817 4.816a1 1 0 0 1-1.414 1.414l-4.816-4.816A6 6 0 0 1 0 6Z",shield:"M8 1.75 2.75 3.75v4c0 3 2.2 5.3 5.25 6.5 3.05-1.2 5.25-3.5 5.25-6.5v-4L8 1.75Z",sparkles:["M9.94 15.5a2 2 0 0 0-1.44-1.44l-6.13-1.58a.5.5 0 0 1 0-.96L8.5 9.94A2 2 0 0 0 9.94 8.5l1.58-6.14a.5.5 0 0 1 .96 0l1.58 6.14a2 2 0 0 0 1.44 1.44l6.14 1.58a.5.5 0 0 1 0 .96l-6.14 1.58a2 2 0 0 0-1.44 1.44l-1.58 6.14a.5.5 0 0 1-.96 0z","M20 3v4M22 5h-4M4 17v2M5 18H3"],spinnerArc:"M14 8a6 6 0 0 0-6-6",statusCheck:"M5.5 10.5 L8.5 13.5 L14.5 7",statusCross:"M6.5 6.5 L13.5 13.5 M13.5 6.5 L6.5 13.5"};function rt(e){if(e.input.total<=0)return null;return Math.round(e.input.cacheRead/e.input.total*100)}function F(e){return e.toLocaleString("en-US")}import{createContext as _l,useContext as hl,useSyncExternalStore as xl}from"react";var nr=_l(void 0);function x(){let e=hl(nr);if(!e)throw Error("useCortex must be used inside <CortexChatWidget>");return e}function A(e){let{widget:t}=x(),n=()=>e(t.getState());return xl(t.subscribe,n,n)}import{useEffect as yl,useRef as bl,useState as vl,useSyncExternalStore as wl}from"react";function Vo(e){let t=bl(e);t.current=e;let[n]=vl(()=>kn({getConfig:()=>t.current}));yl(()=>(n.start(),n.stop),[n]);let r=()=>n.getState().parts,o=wl(n.subscribe,r,r);return{widget:n,parts:o}}import{useEffect as Ml,useLayoutEffect as Zo,useRef as or,useState as Nl,useSyncExternalStore as Al}from"react";function y(...e){return e.filter(Boolean).join(" ")}import{jsx as Q,jsxs as ot}from"react/jsx-runtime";function Go(){let{widget:e,t,locale:n}=x(),r=A((o)=>o.attachments);if(!r.length)return null;return Q("div",{className:"cortex-attachment-queue",children:r.map((o)=>ot("div",{className:y("cortex-attachment-chip",o.status==="error"&&"cortex-attachment-chip--error"),children:[o.status==="uploading"||o.status==="deleting"?ot("svg",{className:"cortex-attachment-chip__spinner",viewBox:"0 0 16 16",fill:"none",children:[Q("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",className:"cortex-attachment-chip__spinner-track"}),Q("path",{d:T.spinnerArc,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):o.status==="error"?ot("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[Q("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.25"}),Q("path",{d:T.alert,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]}):ot("svg",{viewBox:"0 0 16 16",className:"cortex-attachment-chip__icon",fill:"none",children:[Q("path",{d:T.file[0],stroke:"currentColor",strokeWidth:"1.25"}),Q("path",{d:T.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),ot("span",{className:"cortex-attachment-chip__text",children:[Q("span",{className:"cortex-attachment-chip__name",children:Q("bdi",{children:o.filename})}),o.status==="error"&&Q("span",{className:"cortex-attachment-chip__reason",children:bn(o,n)})]}),Q("button",{type:"button",onClick:()=>e.removeAttachment(o.localId),className:"cortex-attachment-chip__remove",disabled:o.status==="deleting","aria-label":t("translate_remove_attachment"),children:Q("svg",{viewBox:"0 0 16 16",fill:"none",children:Q("path",{d:T.closeSmall,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},o.localId))})}import{useRef as Tl}from"react";import{jsx as ke,jsxs as Jo,Fragment as kl}from"react/jsx-runtime";var Cl=je.join(",");function Xo({attachmentsEnabled:e,canSend:t,onSend:n}){let{t:r,widget:o}=x(),a=Tl(null);return Jo("div",{className:"cortex-widget__input-actions",children:[e&&Jo(kl,{children:[ke("button",{type:"button",onClick:()=>a.current?.click(),className:"cortex-widget__attach-btn","aria-label":r("translate_attach_files"),children:ke("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:ke("path",{d:T.paperclip,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),ke("input",{ref:a,type:"file",multiple:!0,accept:Cl,onChange:(i)=>{o.attachFiles([...i.target.files??[]]),i.target.value=""},className:"cortex-widget__file-input"})]}),ke("button",{onClick:n,"aria-label":r("translate_send"),className:y("cortex-widget__send-btn",!t&&"cortex-widget__send-btn--empty",t&&"cortex-widget__send-btn--ready"),disabled:!t,children:ke("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__send-icon",children:ke("path",{d:T.arrowRight,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}import{jsx as Sl}from"react/jsx-runtime";function Yo(e){let{t}=x();return Sl("textarea",{ref:e.inputRef,onPaste:e.onPaste,value:e.value,onChange:(n)=>e.onChange(n.target.value),placeholder:e.dragging?t("translate_drop_files_here"):e.disabled?"":t("translate_type_a_message"),disabled:e.disabled,rows:1,className:y("cortex-widget__textarea",e.disabled&&"cortex-widget__textarea--disabled")})}import{jsx as Re,jsxs as rr}from"react/jsx-runtime";function Ll(e,t){let n=or(null),r=or(void 0);return Zo(()=>{if(!n.current)return;let o=cn(n.current,e);return r.current=o,o.dispose},[e]),Zo(()=>r.current?.fit(),[t]),{messageInput:n,input:r}}function Qo(){let{t:e,widget:t}=x(),n=Al(t.subscribe,t.getDraft,t.getDraft),r=A((f)=>f.session.isAgentWorking),o=A((f)=>f.session.isAgentWorking||f.creating),a=A((f)=>f.capabilities?.attachments??!1),i=A((f)=>Ze(f,n)),[s,l]=Nl(!1),c=dn({enabled:a,accept:t.attachFiles,setDragging:l}),{messageInput:d,input:u}=Ll(t,n),m=or(o);return Ml(()=>{if(m.current&&!o)d.current?.focus();m.current=o},[o,d]),rr("div",{className:"cortex-widget__input-area",onDragOver:c.onDragOver,onDragLeave:c.onDragLeave,onDrop:c.onDrop,children:[Re(Go,{}),rr("div",{className:y("cortex-widget__input-box",o&&"cortex-widget__input-box--disabled",!o&&"cortex-widget__input-box--enabled",s&&"cortex-widget__input-box--dragging"),children:[Re(Yo,{inputRef:d,value:n,onChange:t.setDraft,onPaste:c.onPaste,disabled:o,dragging:s}),r?rr("button",{type:"button","aria-label":e("translate_stop"),onClick:()=>void t.abort(),className:"cortex-stop-btn",children:[Re("span",{className:"cortex-stop-btn__ring"}),Re("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"cortex-stop-btn__icon",children:Re("rect",{x:"1",y:"1",width:"10",height:"10",rx:"2.5",fill:"currentColor"})})]}):Re(Xo,{attachmentsEnabled:a,canSend:i,onSend:()=>u.current?.send()})]})]})}import{jsx as ea,jsxs as El}from"react/jsx-runtime";function Et(){let{t:e,widget:t}=x(),n=A(Cn),r=A((o)=>o.unanswered==="unverified");if(n==="composer")return ea(Qo,{});if(!n)return null;return El("p",{className:"cortex-widget__messages-disabled",children:[e(n),r?ea("button",{type:"button",className:"cortex-widget__retry",onClick:t.retry,children:e("translate_client_tool_retry")}):null]})}import{jsx as G,jsxs as Rt}from"react/jsx-runtime";function ta(e){let{t}=x(),n=e.newChat&&G("button",{type:"button",onClick:e.newChat,"aria-label":t("translate_new_chat"),title:t("translate_new_chat"),className:"cortex-widget__header-btn cortex-widget__new-btn",children:G("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:G("path",{d:T.plus,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})});if(e.screen==="threads")return Rt("div",{className:"cortex-widget__threads-header",children:[G("button",{type:"button",onClick:e.closeHistory,"aria-label":t("translate_back"),className:"cortex-widget__header-btn cortex-widget__back-btn",children:G("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"cortex-widget__back-icon",children:G("path",{d:T.chevronLeft,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),Rt("div",{children:[G("h2",{className:"cortex-widget__threads-title",children:t("translate_history")}),e.threadCount!==void 0&&G("p",{className:"cortex-widget__threads-count",children:t("translate_conversations",{count:e.threadCount})})]}),n]});return Rt("div",{className:"cortex-widget__chat-header",children:[G("button",{onClick:e.openHistory,className:"cortex-widget__sidebar-toggle-btn",children:G("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:G("path",{d:T.menu,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),G("div",{className:"cortex-widget__chat-title-wrap",children:G("p",{className:"cortex-widget__chat-title",children:e.title})}),e.debug.shown&&G("button",{onClick:e.toggleDebug,className:y("cortex-widget__debug-btn",e.debug.on?"cortex-widget__debug-btn--on":"cortex-widget__debug-btn--off"),children:e.debug.on?t("translate_debug"):t("translate_normal")}),n,G("button",{type:"button",onClick:e.openHistory,"aria-label":t("translate_history"),title:t("translate_history"),className:"cortex-widget__header-btn cortex-widget__history-btn",children:Rt("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[G("circle",{cx:"8",cy:"8",r:"5.75",stroke:"currentColor",strokeWidth:"1.3"}),G("path",{d:T.clockHands,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})}import{jsx as de,jsxs as na}from"react/jsx-runtime";function ra(e){let{locale:t,t:n}=x();return na("div",{className:"cortex-widget__landing",children:[de("div",{className:"cortex-widget__landing-icon",children:de("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",children:de("path",{d:T.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),de("p",{className:"cortex-widget__landing-greeting",children:e.greeting}),!!e.suggestions.length&&de("div",{className:"cortex-widget__landing-chips",children:e.suggestions.map((r,o)=>de("button",{type:"button",onClick:()=>e.send(r.prompt),className:"cortex-widget__landing-chip",children:r.title},o))}),e.composer,!!e.threads?.length&&de("div",{className:"cortex-widget__landing-recent",children:e.threads.slice(0,2).map((r)=>{let o=ce(r.updatedAt,t);return na("button",{type:"button",onClick:()=>e.openThread(r),className:"cortex-widget__landing-recent-item",children:[de("p",{className:"cortex-widget__landing-recent-title",children:r.title??n("translate_untitled")}),o&&de("p",{className:"cortex-widget__landing-recent-time",children:o})]},r.id)})})]})}import{useCallback as yc,useEffect as bc,useLayoutEffect as ft,useMemo as vc,useRef as gt,useState as ur}from"react";import{memo as hc}from"react";import{Fragment as fc}from"react";import{useRef as Rl,useState as Il}from"react";import{jsx as Ie,jsxs as Ol}from"react/jsx-runtime";function ne({value:e,className:t}){let{t:n}=x(),[r,o]=Il(!1),a=Rl(null);async function i(s){s.stopPropagation(),s.preventDefault();try{if(await navigator.clipboard.writeText(e),o(!0),a.current)clearTimeout(a.current);a.current=setTimeout(()=>o(!1),1500)}catch{}}return Ie("span",{className:y("cortex-copy-btn",t),children:Ie("button",{className:y("cortex-copy-btn__button",r&&"cortex-copy-btn__button--copied"),onClick:(s)=>void i(s),"aria-label":r?n("translate_copied"):n("translate_copy"),type:"button",children:r?Ie("svg",{className:"cortex-copy-btn__icon cortex-copy-btn__icon--check",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:Ie("path",{d:T.check,stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}):Ol("svg",{className:"cortex-copy-btn__icon",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",children:[Ie("rect",{x:"9",y:"9",width:"12",height:"12",rx:"2",stroke:"currentColor",strokeWidth:"2"}),Ie("path",{d:T.copy,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})})})}import{jsx as It,jsxs as oa}from"react/jsx-runtime";function Ot({label:e}){return oa("div",{className:"cortex-aborted-flag",children:[It("span",{className:"cortex-aborted-flag__line"}),oa("span",{className:"cortex-aborted-flag__label",children:[It("svg",{className:"cortex-aborted-flag__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:It("path",{d:T.alertSmall,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),e]}),It("span",{className:"cortex-aborted-flag__line"})]})}import{jsx as Oe,jsxs as aa}from"react/jsx-runtime";function sa(e){let{widget:t,t:n}=x();return Oe("div",{className:y("cortex-message-attachments",e.isUser&&"cortex-message-attachments--user"),children:e.attachments.map((r)=>aa("button",{type:"button",onClick:()=>void Wn(t.api,r.id),className:"cortex-message-attachment","aria-label":`${n("translate_download")}: ${r.filename}`,children:[aa("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__icon",fill:"none",children:[Oe("path",{d:T.file[0],stroke:"currentColor",strokeWidth:"1.25"}),Oe("path",{d:T.file[1],stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round"})]}),Oe("span",{className:"cortex-message-attachment__name",children:r.filename}),Oe("svg",{viewBox:"0 0 16 16",className:"cortex-message-attachment__dl-icon",fill:"none",children:Oe("path",{d:T.download,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},r.id))})}import{useState as at}from"react";import{useMemo as Pl,useState as Fl}from"react";import{jsx as ee,jsxs as Se,Fragment as Pt}from"react/jsx-runtime";function _e({data:e,expandDepth:t,className:n}){let r=Pl(()=>Ee(e),[e]),[o,a]=Fl({});function i(l,c){return o[l]??c>=t}function s(l,c){a((d)=>({...d,[l]:!i(l,c)}))}return ee("div",{className:y("cortex-json-tree",n),children:ee(ia,{value:r,path:"$",depth:0,isCollapsed:i,toggle:s})})}function ia({value:e,path:t,depth:n,isCollapsed:r,toggle:o}){let a=Xn(e,t);if(a.kind==="primitive")return ee("span",{className:a.className,children:a.text});if(a.entries.length===0)return Se("span",{className:"cortex-json-tree__bracket",children:[a.open,a.close]});let i=r(t,n);function s(l){o(t,n),l.stopPropagation()}return Se(Pt,{children:[Se("span",{className:"cortex-json-tree__toggle",onClick:s,role:"button",children:[ee("span",{className:y("cortex-json-tree__arrow",i&&"cortex-json-tree__arrow--collapsed"),children:"▾"}),ee("span",{className:"cortex-json-tree__bracket",children:a.open})]}),i?Se(Pt,{children:[ee("span",{className:"cortex-json-tree__collapsed-hint",onClick:s,role:"button",children:a.summary}),ee("span",{className:"cortex-json-tree__bracket",children:a.close})]}):Se(Pt,{children:[ee("div",{className:"cortex-json-tree__indent",children:a.entries.map((l,c)=>Se("div",{className:"cortex-json-tree__line",children:[l.key!==null&&Se(Pt,{children:[ee("span",{className:"cortex-json-tree__key",children:`"${l.key}"`}),ee("span",{className:"cortex-json-tree__colon",children:": "})]}),ee(ia,{value:l.value,path:l.path,depth:n+1,isCollapsed:r,toggle:o}),c<a.entries.length-1&&ee("span",{className:"cortex-json-tree__comma",children:","})]},l.path))}),ee("span",{className:"cortex-json-tree__bracket",children:a.close})]})]})}import{jsx as Pe,jsxs as Fe}from"react/jsx-runtime";function la({usage:e}){let{t}=x();return Fe("div",{className:"cortex-llm-inspector__usage-rows",children:[Fe("div",{className:"cortex-llm-inspector__usage-row",children:[Pe("span",{className:"cortex-llm-inspector__usage-lbl",children:t("translate_input")}),Pe("span",{className:"cortex-llm-inspector__usage-val",children:F(e.input.total)}),Fe("span",{className:"cortex-llm-inspector__usage-detail",children:[t("translate_fresh")," ",F(e.input.noCache)," · ",t("translate_read")," ",F(e.input.cacheRead)," · ",t("translate_write")," ",F(e.input.cacheWrite)]})]}),Fe("div",{className:"cortex-llm-inspector__usage-row",children:[Pe("span",{className:"cortex-llm-inspector__usage-lbl",children:t("translate_output")}),Pe("span",{className:"cortex-llm-inspector__usage-val",children:F(e.output.total)}),Fe("span",{className:"cortex-llm-inspector__usage-detail",children:[t("translate_text")," ",F(e.output.text)," · ",t("translate_reasoning")," ",F(e.output.reasoning)]})]}),Fe("div",{className:"cortex-llm-inspector__usage-row cortex-llm-inspector__usage-row--total",children:[Pe("span",{className:"cortex-llm-inspector__usage-lbl",children:t("translate_total")}),Pe("span",{className:"cortex-llm-inspector__usage-val",children:F(e.total)})]})]})}import{jsx as ca,jsxs as Ft}from"react/jsx-runtime";function da({usage:e}){let t=rt(e);return Ft("span",{className:"cortex-llm-inspector__step-metrics",children:[Ft("span",{className:"cortex-llm-inspector__metric",children:[ca("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--input"}),F(e.input.total)]}),Ft("span",{className:"cortex-llm-inspector__metric",children:[ca("span",{className:"cortex-llm-inspector__dot cortex-llm-inspector__dot--output"}),F(e.output.total)]}),t!==null&&Ft("span",{className:"cortex-llm-inspector__cache-pct",children:[t,"%"]})]})}import{jsx as D,jsxs as he}from"react/jsx-runtime";function ua({messageId:e}){let{t,widget:n}=x(),r=A((g)=>g.selected?.id),[o,a]=at(!1),[i,s]=at("idle"),[l,c]=at([]),[d,u]=at(null),[m,f]=at({});async function p(){if(!o&&i!=="loaded"&&r){s("loading");try{c(await n.api.listLlmRequests(r,e)),s("loaded")}catch{s("failed")}}a((g)=>!g)}function h(g){u((w)=>w===g?null:g)}function b(g){return m[g]??"prompt"}function v(g,w){f((S)=>({...S,[g]:w}))}function C(g){return b(g.id)==="prompt"?g.prompt:g.output}return he("div",{className:y("cortex-llm-inspector",o&&"cortex-llm-inspector--open"),children:[he("button",{className:"cortex-llm-inspector__trigger",onClick:()=>void p(),children:[D("svg",{className:"cortex-llm-inspector__icon",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:D("path",{d:T.search,fill:"currentColor"})}),D("span",{children:t("translate_inspect_llm_requests")}),i==="loading"?D("span",{className:"cortex-llm-inspector__loading",children:t("translate_loading")}):l.length>0?D("span",{className:"cortex-llm-inspector__badge",children:l.length}):null,D("svg",{className:"cortex-llm-inspector__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:D("path",{d:T.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),D("div",{className:"cortex-llm-inspector__panel-wrapper",children:D("div",{className:"cortex-llm-inspector__panel-inner",children:he("div",{className:"cortex-llm-inspector__panel",children:[l.length===0&&i!=="loading"&&D("div",{className:"cortex-llm-inspector__empty",children:t(i==="failed"?"translate_error":"translate_no_llm_requests")}),l.map((g,w)=>he("div",{className:y("cortex-llm-inspector__step",d===g.id&&"cortex-llm-inspector__step--expanded"),children:[he("button",{className:"cortex-llm-inspector__step-header",onClick:()=>h(g.id),children:[D("span",{className:"cortex-llm-inspector__step-label",children:t("translate_step_n",{number:w+1})}),g.tokenUsage&&D(da,{usage:g.tokenUsage}),D("svg",{className:"cortex-llm-inspector__step-chevron",width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",children:D("path",{d:T.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),D("div",{className:"cortex-llm-inspector__step-body-wrapper",children:D("div",{className:"cortex-llm-inspector__step-body-inner",children:he("div",{className:"cortex-llm-inspector__step-body",children:[g.tokenUsage&&D(la,{usage:g.tokenUsage}),he("div",{className:"cortex-llm-inspector__tabs",children:[D("button",{className:y("cortex-llm-inspector__tab",b(g.id)==="prompt"&&"cortex-llm-inspector__tab--active"),onClick:()=>v(g.id,"prompt"),children:t("translate_request")}),D("button",{className:y("cortex-llm-inspector__tab",b(g.id)==="response"&&"cortex-llm-inspector__tab--active"),onClick:()=>v(g.id,"response"),children:t("translate_response")})]}),he("div",{className:"cortex-llm-inspector__json-pane",children:[D(ne,{className:"cortex-llm-inspector__json-copy",value:Zn(C(g))}),D(_e,{data:Yn(C(g)),expandDepth:2})]})]})})})]},g.id))]})})})]})}import{useState as Hl}from"react";import{jsx as P,jsxs as B}from"react/jsx-runtime";function pa({usage:e,modelId:t}){let{t:n}=x(),[r,o]=Hl(!1),a=rt(e)??0;return B("div",{className:y("cortex-token-usage",r&&"cortex-token-usage--expanded"),children:[B("button",{className:"cortex-token-usage__summary",onClick:()=>o((i)=>!i),children:[B("span",{className:"cortex-token-usage__total",children:[P("span",{className:"cortex-token-usage__total-number",children:F(e.total)}),P("span",{className:"cortex-token-usage__total-label",children:n("translate_tokens")})]}),t?P("span",{className:"cortex-token-usage__model",children:t}):null,B("span",{className:"cortex-token-usage__pills",children:[B("span",{className:"cortex-token-usage__pill",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),F(e.input.total)]}),B("span",{className:"cortex-token-usage__pill",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),F(e.output.total)]})]}),a>0&&B("span",{className:"cortex-token-usage__cache-badge",children:[a,"%"]}),P("svg",{className:"cortex-token-usage__chevron",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:P("path",{d:T.chevronDown,stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),P("div",{className:"cortex-token-usage__details",children:P("div",{className:"cortex-token-usage__details-inner",children:B("div",{className:"cortex-token-usage__columns",children:[B("div",{className:"cortex-token-usage__col",children:[B("div",{className:"cortex-token-usage__col-header",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--input"}),P("span",{className:"cortex-token-usage__col-label",children:n("translate_input")}),P("span",{className:"cortex-token-usage__col-total",children:F(e.input.total)})]}),B("div",{className:"cortex-token-usage__rows",children:[e.input.noCache?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_fresh")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.input.noCache)})]}):null,e.input.cacheRead?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_cache_read")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.input.cacheRead)})]}):null,e.input.cacheWrite?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_cache_write")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.input.cacheWrite)})]}):null]}),a>0&&B("div",{className:"cortex-token-usage__cache-bar-row",children:[P("div",{className:"cortex-token-usage__cache-bar",children:P("div",{className:"cortex-token-usage__cache-fill",style:{width:`${a}%`}})}),P("span",{className:"cortex-token-usage__cache-label",children:n("translate_n_percent_cached",{percent:a})})]})]}),B("div",{className:"cortex-token-usage__col",children:[B("div",{className:"cortex-token-usage__col-header",children:[P("span",{className:"cortex-token-usage__dot cortex-token-usage__dot--output"}),P("span",{className:"cortex-token-usage__col-label",children:n("translate_output")}),P("span",{className:"cortex-token-usage__col-total",children:F(e.output.total)})]}),B("div",{className:"cortex-token-usage__rows",children:[e.output.text?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_text")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.output.text)})]}):null,e.output.reasoning?B("div",{className:"cortex-token-usage__row",children:[P("span",{className:"cortex-token-usage__row-label",children:n("translate_reasoning")}),P("span",{className:"cortex-token-usage__row-value",children:F(e.output.reasoning)})]}):null]})]})]})})})]})}import{jsx as ma,jsxs as Ul}from"react/jsx-runtime";function fa({messageId:e,metadata:t}){let{tokenUsage:n}=t;return Ul("div",{className:"cortex-message-debug-zone",children:[n&&ma(pa,{usage:n,modelId:t.modelId}),ma(ua,{messageId:e})]})}import{jsx as re,jsxs as st}from"react/jsx-runtime";function ga(e){let{reasoningPart:t,streaming:n=!1}=e,{t:r}=x();return st("details",{className:"cortex-reasoning-details",children:[st("summary",{className:"cortex-reasoning-details__summary",children:[st("div",{className:"cortex-reasoning-details__header",children:[re("span",{className:"cortex-reasoning-details__icon",children:st("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:[re("path",{d:T.bulb[0],stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}),re("path",{d:T.bulb[1],stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}),re("div",{className:"cortex-reasoning-details__title-group",children:st("div",{className:"cortex-reasoning-details__title-row",children:[re("div",{className:"cortex-reasoning-details__title",children:r("translate_reasoning")}),re("span",{className:y("cortex-reasoning-details__badge",n?"cortex-reasoning-details__badge--streaming":"cortex-reasoning-details__badge--done"),children:n?r("translate_streaming"):r("translate_done")})]})})]}),re("span",{className:"cortex-reasoning-details__chevron","aria-hidden":"true",children:re("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:re("path",{d:T.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),re("div",{className:"cortex-reasoning-details__body",children:re("div",{className:"cortex-reasoning-details__content",children:re("pre",{dir:"auto",className:"cortex-reasoning-details__pre",children:t.content.trim()?t.content:r("translate_no_reasoning")})})})]})}import{useEffect as va,useMemo as Yl,useState as wa}from"react";import{useEffect as Bl,useState as $l}from"react";import{useRef as Dl,useState as Wl}from"react";import{jsx as ue,jsxs as Ht}from"react/jsx-runtime";function He(e){let{label:t,ready:n=!0,actions:r,expanded:o,children:a}=e,{t:i}=x(),s=Dl(null),[l,c]=Wl(!1);return Ht("div",{className:"cortex-expandable",children:[n&&Ht("div",{className:"cortex-expandable__toolbar",role:"group","aria-label":t,children:[r,ue("button",{type:"button",className:"cortex-expandable__action","aria-label":i("translate_expand",{name:t}),title:i("translate_expand",{name:t}),onClick:()=>{c(!0),s.current?.showModal()},children:ue("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:ue("path",{d:T.expand,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),ue("div",{className:"cortex-expandable__content",children:a}),Ht("dialog",{ref:s,className:"cortex-expandable__dialog","aria-label":t,closedby:"any",onClose:()=>c(!1),children:[Ht("div",{className:"cortex-expandable__head",children:[ue("span",{className:"cortex-expandable__title",children:t}),r,ue("button",{type:"button",className:"cortex-expandable__action","aria-label":i("translate_close"),title:i("translate_close"),onClick:()=>s.current?.close(),children:ue("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:ue("path",{d:T.close,stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})})]}),l&&ue("div",{className:"cortex-expandable__body",children:o})]})]})}import{jsx as it,jsxs as jl}from"react/jsx-runtime";function _a(e){let{id:t,alt:n,attachment:r}=e,{widget:o,t:a}=x(),[{url:i,failed:s},l]=$l({url:void 0,failed:!1});if(Bl(()=>Dn(o.api,t,l),[o,t]),s)return it("p",{className:"cortex-attachment-image__caption",children:n?a("translate_image_unavailable_alt",{alt:n}):a("translate_image_unavailable")});if(!i)return null;return jl("figure",{className:"cortex-attachment-image",children:[it(He,{label:r?.filename||n||a("translate_image"),expanded:it("img",{className:"cortex-attachment-image__expanded",src:i,alt:n}),children:it("img",{src:i,alt:n})}),r&&it("figcaption",{className:"cortex-attachment-image__caption",children:r.filename})]})}import{useEffect as zl,useRef as ql,useState as ar}from"react";import{jsx as Y,jsxs as lt,Fragment as Gl}from"react/jsx-runtime";function Kl(e){let{t}=x();if(!e.pending&&!e.debugMode)return null;return lt("div",{className:"cortex-media-block__head",children:[e.debugMode&&Y("span",{className:"cortex-media-block__lang",children:e.language}),e.pending&&Y("span",{className:"cortex-media-block__pending",children:t(Nt(e.language).pending)}),e.debugMode&&e.closed&<("span",{className:"cortex-media-block__actions",children:[e.onToggleSource&&Y("button",{type:"button",className:"cortex-media-block__action","aria-pressed":e.sourceShown,onClick:e.onToggleSource,children:t("translate_media_source")}),Y(ne,{value:e.source})]})]})}function ha(e){let{t}=x(),n=A((r)=>r.debugMode);return Y("div",{className:"cortex-media-block__body",children:lt("p",{className:"cortex-media-block__error",children:[e.cutOff?t("translate_media_cut_off"):t("translate_media_failed"),!e.cutOff&&n&&` ${e.reason}`]})})}function xa(e){let{language:t,source:n,closed:r,hidden:o,onError:a}=e,{config:i,scheme:s,locale:l}=x(),c=ql(null);return zl(()=>{a(void 0);let d=c.current;if(!r||!s||!d)return;return At(d,{language:t,source:n,context:{scheme:s,locale:l},overrides:i.mediaRenderers,onError:a})},[t,n,r,s,l,i.mediaRenderers,a]),Y("div",{ref:c,hidden:o,className:y("cortex-media-block__body",`cortex-media-block__body--${t}`)})}function Vl(e){let[t,n]=ar();return lt(Gl,{children:[t&&Y(ha,{cutOff:!1,reason:t}),Y(xa,{language:e.language,source:e.source,closed:!0,hidden:Boolean(t),onError:n})]})}function ya(e){let{language:t,source:n,closed:r,streaming:o}=e,{t:a}=x(),i=A((p)=>p.debugMode),[s,l]=ar(),[c,d]=ar(!1),u=!r&&!o,m=u||Boolean(s);return lt("div",{className:"cortex-media-block",children:[Y(Kl,{language:t,source:n,pending:!r&&o,closed:r,debugMode:i,sourceShown:c,onToggleSource:m?void 0:()=>d((p)=>!p)}),m&&Y(ha,{cutOff:u,reason:s}),Y(He,{label:a(Nt(t).title),ready:r&&!m,expanded:Y(Vl,{language:t,source:n}),children:Y(xa,{language:t,source:n,closed:r,hidden:m,onError:l})}),i&&(m||c)&&Y("pre",{dir:"ltr",className:"cortex-media-block__source",children:n})]})}import{useMemo as Jl,useRef as Xl}from"react";import{jsx as Me}from"react/jsx-runtime";function ba(e){let{t}=x(),n=Xl(null),r=Jl(()=>({__html:et(e.text)}),[e.text]);return Me("div",{className:"cortex-table-block",children:Me(He,{label:t("translate_table"),ready:e.closed,actions:Me("button",{type:"button",className:"cortex-expandable__action","aria-label":t("translate_table_export"),title:t("translate_table_export"),onClick:()=>n.current&&Un(n.current),children:Me("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:Me("path",{d:T.downloadTray,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),expanded:Me("div",{className:"cortex-table-block__expanded",dangerouslySetInnerHTML:r}),children:Me("div",{ref:n,dangerouslySetInnerHTML:r})})})}import{jsx as Ue}from"react/jsx-runtime";function Ta(e){let{role:t,textPart:n,streaming:r=!1,attachments:o}=e,{config:a}=x(),[i,s]=wa({text:n.content,fading:[]}),[l]=wa(()=>new Ce((u,m)=>s((f)=>f.text===u&&!f.fading.length&&!m.length?f:{text:u,fading:m})));va(()=>l.follow(n.content,t==="assistant"&&r),[l,t,r,n]),va(()=>()=>l.destroy(),[l]);let c=r||i.text!==n.content,d=Yl(()=>{let u=Hn(i.text,{role:t,languages:Vn(a.mediaRenderers),attachments:o,arriving:c});return u.map((m,f)=>m.kind==="markdown"?{...m,html:{__html:et(m.text,f===u.length-1?i.fading:[])}}:m)},[t,i,a.mediaRenderers,o,c]);return Ue("div",{className:y("cortex-text-part",t==="assistant"&&"cortex-text-part--assistant",t==="user"&&"cortex-text-part--user"),children:Ue("div",{className:y("cortex-text-bubble",t==="assistant"&&"cortex-text-bubble--assistant",t==="user"&&"cortex-text-bubble--user"),children:d.map((u,m)=>{switch(u.kind){case"markdown":return Ue("div",{dangerouslySetInnerHTML:u.html},m);case"media":return Ue(ya,{...u,streaming:c},m);case"table":return Ue(ba,{text:u.text,closed:u.closed},m);case"attachment":return Ue(_a,{...u},m)}})})})}import{useEffect as Oa,useRef as lr,useState as Pa}from"react";import{useEffect as Zl,useState as Ql}from"react";import{jsx as ct,jsxs as Ca}from"react/jsx-runtime";function De({activity:e,className:t}){let{t:n}=x(),r=Qt(e),[o,a]=Ql({index:0,phase:"idle"}),i=r.length;return Zl(()=>sn(i,a),[i]),Ca("div",{className:y("cortex-subtle-activity",t),children:[Ca("div",{className:"cortex-subtle-activity__dots",children:[ct("span",{className:"cortex-subtle-activity__dot"}),ct("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d1"}),ct("span",{className:"cortex-subtle-activity__dot cortex-subtle-activity__dot--d2"})]}),ct("div",{className:"cortex-subtle-activity__label-mask",children:ct("span",{className:y("cortex-subtle-activity__label",`cortex-subtle-activity__label--${o.phase}`),children:n(r[o.index])})})]})}import{jsx as dt,jsxs as ec}from"react/jsx-runtime";function xe({state:e,active:t}){return ec("span",{className:"cortex-tool-pill__icon","aria-hidden":"true",children:[dt("span",{className:y("cortex-tool-pill__spinner",t&&"cortex-tool-pill__spinner--visible")}),dt("svg",{className:y("cortex-tool-pill__svg cortex-tool-pill__svg--check",e==="complete"&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:dt("path",{d:T.statusCheck,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),dt("svg",{className:y("cortex-tool-pill__svg",e==="error"&&"cortex-tool-pill__svg--error",(e==="error"||e==="declined")&&"cortex-tool-pill__svg--visible"),viewBox:"0 0 20 20",fill:"none",children:dt("path",{d:T.statusCross,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]})}import{jsx as ye,jsxs as ut,Fragment as tc}from"react/jsx-runtime";function ka({toolCallPart:e,asking:t}){let{t:n,widget:r}=x(),o=Zt(e),a=o.title??n(o.fallbackKey,o.fallbackParams),i=`cortex-approval-${e.id}`,s=o.decision==="pending";function l(c){r.respondToApproval(e,c).catch(()=>{})}return ut("div",{className:y("cortex-approval-card",s&&"cortex-approval-card--asking"),children:[s?ut(tc,{children:[ut("div",{className:"cortex-approval-card__head",children:[ye("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:ye("path",{d:T.shield,stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),n("translate_approval_needed")]}),ye("p",{className:"cortex-approval-card__sentence",id:i,children:a})]}):ut("div",{className:"cortex-approval-card__line",children:[ye(xe,{state:o.state,active:o.active}),o.decisionKey&&ye("span",{className:"cortex-approval-card__decision",children:n(o.decisionKey)}),ye("span",{className:"cortex-approval-card__summary",children:a})]}),s&&t&&ut("div",{className:"cortex-approval-card__foot",children:[ye("button",{type:"button",className:"cortex-approval-card__button cortex-approval-card__button--primary","aria-describedby":i,onClick:()=>l(!0),children:n("translate_approve")}),ye("button",{type:"button",className:"cortex-approval-card__button","aria-describedby":i,onClick:()=>l(!1),children:n("translate_deny")})]})]})}import{useEffect as Sa,useRef as sr,useState as nc}from"react";import{jsx as be,jsxs as ir}from"react/jsx-runtime";function Ma({toolCallPart:e,setOutput:t}){let{t:n,locale:r}=x(),o=A((l)=>l.selected?.id),{state:a,id:i}=e,s=In(e,r);if(a==="complete"||a==="error"){let{glyph:l,titleKey:c}=On(e);return ir("div",{className:"cortex-tool-pill",children:[be(xe,{state:l,active:!1}),be("span",{className:"cortex-tool-pill__title",children:n(c,{server:s?.label??""})})]})}if(a!=="input-complete"||!s||!o)return null;return be(rc,{call:s,threadId:o,toolCallId:i,submit:t},i)}function rc({call:e,threadId:t,toolCallId:n,submit:r}){let{t:o,widget:a}=x(),i=sr(void 0),[s,l]=nc(kt),c=sr({call:e,submit:r});c.current={call:e,submit:r},Sa(()=>{let b=Fn({call:c.current.call,threadId:t,toolCallId:n,api:a.api,host:window,onState:l,submit:(v)=>c.current.submit(v)});return i.current=b,()=>{if(b.dispose(),i.current===b)i.current=void 0}},[t,n,a]);let d=Pn(s,e.moreAccess),u=sr(null);Sa(()=>{if(!d.asking)u.current?.focus()},[d.asking]);let m={server:e.label},f=`cortex-connect-${n}`,p=`${f}-status`,h=d.asking?f:p;return ir("div",{className:"cortex-connect-card",children:[be("span",{className:"cortex-connect-card__server",children:e.label}),d.asking&&be("p",{className:"cortex-connect-card__title",id:f,children:o(d.titleKey,m)}),be("p",{className:y("cortex-connect-card__text",d.failed&&"cortex-connect-card__text--failed"),id:p,role:"status",children:o(d.lineKey,m)}),ir("div",{className:"cortex-connect-card__actions",children:[be("button",{ref:u,type:"button",className:"cortex-connect-card__button","aria-describedby":h,disabled:d.disabled,onClick:()=>i.current?.cancel(),children:o(d.dismissKey)}),d.asking&&be("button",{type:"button",className:"cortex-connect-card__button cortex-connect-card__button--primary","aria-describedby":h,disabled:d.disabled,onClick:()=>i.current?.connect(),children:o(d.actionKey)})]})]})}import{useEffect as Na,useRef as Ut,useState as Aa}from"react";import{jsx as j,jsxs as se}from"react/jsx-runtime";function La({toolCallPart:e,setOutput:t}){let{t:n}=x(),{state:r,id:o,input:a}=e;if(r==="complete"||r==="error"){let i=En(e.output);return i?j(ac,{position:i}):se("div",{className:"cortex-tool-pill",children:[j(xe,{state:r==="error"?"error":"declined",active:!1}),j("span",{className:"cortex-tool-pill__title",children:n("translate_location_not_shared")})]})}if(r!=="input-complete")return null;return j(oc,{center:Ln(a),submit:t},o)}function oc({center:e,submit:t}){let{t:n}=x(),r=Ut(null),o=Ut(void 0),[a,i]=Aa(Tt),s=Ut({center:e,submit:t});s.current={center:e,submit:t},Na(()=>{let c=r.current;if(!c)return;let d=Nn(c,{center:s.current.center,onState:i,submit:(u)=>s.current.submit(u)});return o.current=d,d.start(),()=>{if(d.dispose(),o.current===d)o.current=void 0}},[]);let l=Rn(a);return se("div",{className:"cortex-location-input",children:[se("div",{className:"cortex-location-input__map",children:[j("div",{className:"cortex-location-input__canvas",ref:r}),j("button",{type:"button",className:"cortex-location-input__locate","aria-label":n("translate_location_locate"),title:n("translate_location_locate"),disabled:a.locating||a.submitting,onClick:()=>o.current?.locate(),children:j(sc,{})})]}),se("div",{className:"cortex-location-input__foot",children:[a.position&&!a.deliveryFailed?j("span",{className:"cortex-location-input__coords",children:Ct(a.position)}):se("span",{className:y("cortex-location-input__hint",l.failed&&"cortex-location-input__hint--failed"),children:[a.locating&&j("span",{className:"cortex-location-input__spinner"}),n(l.key)]}),se("span",{className:"cortex-location-input__actions",children:[j("button",{type:"button",className:"cortex-location-input__skip",disabled:a.submitting,onClick:()=>o.current?.cancel(),children:n("translate_location_skip")}),j("button",{type:"button",className:"cortex-location-input__send",disabled:!a.position||a.submitting,onClick:()=>o.current?.confirm(),children:n("translate_location_send")})]})]})]})}function ac({position:e}){let{t}=x(),n=Ut(null),[r,o]=Aa(!1),{lat:a,lng:i}=e;return Na(()=>{let s=n.current;if(!s)return;return o(!1),An(s,{lat:a,lng:i},()=>o(!0))},[a,i]),se("div",{className:"cortex-location-input cortex-location-input--settled",children:[se("div",{className:"cortex-location-input__map cortex-location-input__map--still",children:[j("div",{className:"cortex-location-input__canvas",ref:n,hidden:r}),r&&j("span",{className:"cortex-location-input__still-failed",children:t("translate_location_map_failed")})]}),se("div",{className:"cortex-location-input__body",children:[se("span",{className:"cortex-location-input__title",children:[j("svg",{viewBox:"0 0 20 20",fill:"none",children:j("path",{d:T.statusCheck,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),t("translate_location_shared")]}),j("span",{className:"cortex-location-input__coords",children:Ct(e)})]})]})}function sc(){return se("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:[j("circle",{cx:"10",cy:"10",r:"5.5"}),j("circle",{cx:"10",cy:"10",r:"1.6",fill:"currentColor",stroke:"none"}),j("path",{d:T.crosshair})]})}import{jsx as ie,jsxs as We}from"react/jsx-runtime";function Ea({toolCallPart:e}){let{t}=x(),n=tn(e),r=e.output;switch(n?.kind){case"output":return We("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--success",children:[We("div",{className:"cortex-debug-tool__section-bar",children:[ie("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--success",children:t("translate_output")}),ie("span",{className:"cortex-debug-tool__section-lang",children:"json"}),ie(ne,{value:n.text})]}),ie("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:ie(_e,{data:r,expandDepth:2})})]});case"error":return We("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--error",children:[We("div",{className:"cortex-debug-tool__section-bar",children:[ie("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--error",children:t("translate_error")}),ie(ne,{value:n.text})]}),ie("pre",{dir:"ltr",className:"cortex-debug-tool__error-pre",children:n.text})]});case"approval":return We("div",{className:"cortex-debug-tool__section cortex-debug-tool__section--approval",children:[We("div",{className:"cortex-debug-tool__section-bar",children:[ie("span",{className:"cortex-debug-tool__section-label cortex-debug-tool__section-label--approval",children:t(n.labelKey)}),ie("span",{className:"cortex-debug-tool__section-lang",children:n.approvalId})]}),ie("div",{className:"cortex-debug-tool__message cortex-debug-tool__message--approval",children:t(n.messageKey)})]});default:return null}}import{jsx as ic,jsxs as lc}from"react/jsx-runtime";function Ra({toolCallPart:e}){let{t}=x(),n=Xt(e);return lc("span",{className:y("cortex-debug-tool__state",n.modifier&&`cortex-debug-tool__state--${n.modifier}`),children:[n.pulse&&ic("span",{className:y("cortex-debug-tool__pulse",n.pulse==="violet"&&"cortex-debug-tool__pulse--violet")}),t(n.labelKey)]})}import{jsx as z,jsxs as pe}from"react/jsx-runtime";function Ia({toolCallPart:e}){let{t}=x(),{codeSnippets:n,remainingInput:r,remainingInputText:o}=Yt(e.input);return pe("details",{className:"cortex-debug-tool","data-state":e.state,children:[z("summary",{className:"cortex-debug-tool__summary",children:pe("div",{className:"cortex-debug-tool__header",children:[pe("div",{className:"cortex-debug-tool__meta",children:[z("div",{className:"cortex-debug-tool__title-row",children:z("span",{className:"cortex-debug-tool__name",title:e.name,children:e.name})}),z("div",{className:"cortex-debug-tool__id-row",children:z("span",{className:"cortex-debug-tool__id",children:e.id})})]}),pe("div",{className:"cortex-debug-tool__actions",children:[z(Ra,{toolCallPart:e}),z("svg",{className:"cortex-debug-tool__chevron",width:"14",height:"14",viewBox:"0 0 20 20",fill:"none",children:z("path",{d:T.chevronDownLarge,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),pe("div",{className:"cortex-debug-tool__body",children:[n.map((a)=>pe("div",{className:"cortex-debug-tool__section",children:[pe("div",{className:"cortex-debug-tool__section-bar",children:[z("span",{className:"cortex-debug-tool__section-label",children:a.key}),z("span",{className:"cortex-debug-tool__section-lang",children:a.lang}),z(ne,{value:a.value})]}),z("pre",{dir:"ltr",className:"cortex-debug-tool__pre",children:z("code",{className:"hljs",dangerouslySetInnerHTML:{__html:Jn(a.value,a.lang)}})})]},a.key)),!!r&&pe("div",{className:"cortex-debug-tool__section",children:[pe("div",{className:"cortex-debug-tool__section-bar",children:[z("span",{className:"cortex-debug-tool__section-label",children:t("translate_input")}),z("span",{className:"cortex-debug-tool__section-lang",children:"json"}),z(ne,{value:o})]}),z("div",{dir:"ltr",className:"cortex-debug-tool__tree",children:z(_e,{data:r,expandDepth:2})})]}),z(Ea,{toolCallPart:e})]})]})}import{jsx as q,jsxs as Dt}from"react/jsx-runtime";var cc={[yt]:La,[bt]:Ma};function Fa({message:e,toolCallPart:t}){let{config:n,widget:r}=x(),o=A((u)=>u.session.isAgentWorking),a=A((u)=>u.capabilities),i=A((u)=>u.debugMode),[s,l]=Pa(!1),c=en(t,{agentWorking:o,capabilities:a,debugMode:i,consumerTools:n.toolComponents,builtInTools:cc,embedUnavailable:s});function d(){switch(c.kind){case"consumer":case"builtIn":return q(c.component,{toolCallPart:t,message:e,setOutput:(u)=>r.addToolResult(t.id,t.name,u)});case"embed":return q(dc,{toolCallPart:t,onUnavailable:()=>l(!0)});case"approval":return q(ka,{toolCallPart:t,asking:c.asking});case"debug":return q(Ia,{toolCallPart:t});case"activity":return q(De,{activity:c.activity});case"pill":return q(pc,{toolCallPart:t})}}return q("div",{className:"cortex-tool-call-animated",children:d()})}function dc({toolCallPart:e,onUnavailable:t}){let{t:n,widget:r,config:o}=x(),a=A((u)=>u.selected?.id),[i,s]=Pa({phase:"initiating"}),l=lr(void 0),c=lr({widget:r,config:o,onUnavailable:t,toolName:e.name});if(c.current={widget:r,config:o,onUnavailable:t,toolName:e.name},Oa(()=>{if(!a){c.current.onUnavailable();return}let u=Mn({initiate:()=>c.current.widget.api.initiateToolCall(a,e.id),onState:(m)=>{if(s(m),m.phase==="unavailable")c.current.onUnavailable()},submit:(m)=>c.current.widget.addToolResult(e.id,c.current.toolName,m),host:window,trustSameOrigin:c.current.config.trustSameOriginEmbeds});return l.current=u,u.start(),()=>{if(u.dispose(),l.current===u)l.current=void 0}},[e.id,a]),!a||i.phase==="unavailable")return null;let d=Dt("div",{className:"cortex-client-tool-embed",children:[Dt("div",{className:"cortex-client-tool-embed__bar",children:[q("span",{children:n("translate_client_tool_title")}),q("button",{type:"button",className:"cortex-client-tool-embed__cancel",onClick:()=>l.current?.cancel(),children:n("translate_client_tool_cancel")})]}),i.phase==="embedded"?q("iframe",{className:"cortex-client-tool-embed__frame",src:i.embedUrl,sandbox:i.sandbox,title:n("translate_client_tool_title"),ref:(u)=>l.current?.setSource(u?.contentWindow),onLoad:(u)=>l.current?.frameLoaded(u.currentTarget)}):i.phase==="error"?Dt("div",{className:"cortex-client-tool-embed__status",children:[q("span",{children:n("translate_client_tool_failed")}),q("button",{type:"button",className:"cortex-client-tool-embed__retry",onClick:()=>void l.current?.start(),children:n("translate_client_tool_retry")})]}):q("div",{className:"cortex-client-tool-embed__status",children:n("translate_client_tool_loading")})]});return i.phase==="embedded"&&i.surface==="modal"?q(uc,{label:n("translate_client_tool_title"),onCancel:()=>l.current?.cancel(),children:d}):d}function uc({label:e,onCancel:t,children:n}){let r=lr(null);return Oa(()=>{let o=r.current;return o?.showModal(),()=>o?.close()},[]),q("dialog",{ref:r,className:"cortex-client-tool-embed-dialog","aria-label":e,onCancel:(o)=>{o.preventDefault(),t()},children:n})}function pc({toolCallPart:e}){let{t}=x(),{state:n,active:r,titleKey:o,statement:a,rows:i}=Ke(e);return Dt("div",{className:"cortex-tool-pill",children:[q(xe,{state:n,active:r}),q("span",{className:y("cortex-tool-pill__title",n==="error"&&"cortex-tool-pill__title--error",n==="starting"&&a&&"cortex-tool-pill__title--pending"),children:a??t(o)}),i!==void 0&&q("span",{className:"cortex-tool-pill__meta",children:t("translate_rows",{count:i})})]})}import{jsx as pt,jsxs as mc}from"react/jsx-runtime";function Ha(e){let{message:t,part:n,animate:r,streaming:o,attachments:a}=e,{t:i}=x(),s=A((c)=>c.debugMode);function l(){switch(n.type){case"text":return pt(Ta,{textPart:n,role:t.role,streaming:o,attachments:a});case"thinking":return s?pt(ga,{reasoningPart:n,streaming:o}):pt(De,{activity:"reasoning",className:"cortex-reasoning-animated"});case"tool-call":return pt(Fa,{toolCallPart:n,message:t});default:return mc("p",{className:"cortex-unhandled-type",children:[i("translate_unhandled_type")," ",n.type]})}}return pt("div",{className:y("cortex-message-part",r&&"cortex-message-part--animated",e.folded&&"cortex-message-part--folded"),"data-cortex-frontier":e.frontier?"":void 0,children:l()})}import{jsx as me,jsxs as cr}from"react/jsx-runtime";function gc({isUser:e,clipboardText:t,createdAt:n}){let{locale:r}=x();return cr("div",{className:y("cortex-message-actions",e&&"cortex-message-actions--user"),children:[t&&me(ne,{value:t}),n&&me("time",{className:"cortex-message-actions__time",dateTime:n,children:ce(n,r)})]})}function _c({count:e,animate:t,onOpen:n}){let{t:r}=x();return me("button",{type:"button",className:y("cortex-tool-fold",t&&"cortex-message-part--animated"),onClick:n,children:r("translate_more_steps",{count:e})})}function Ua(e){let{message:t,layout:n,animate:r,fold:o,onOpenRun:a,frontier:i}=e,{parts:s,metadata:l,actionsAfter:c}=n,{t:d}=x(),u=t.role==="user",m=l?.attachments,f=c&&me(gc,{isUser:u,clipboardText:tr(s),createdAt:l?.createdAt});return cr("div",{className:"cortex-message-parts",children:[s.map((p)=>{let h=o?.get(p);return cr(fc,{children:[me(Ha,{part:p,message:t,animate:r,streaming:p===n.streamingPart,attachments:m,frontier:p===i,folded:h?.kind==="hidden"}),h?.kind==="more"&&me(_c,{count:h.count,animate:r,onOpen:()=>a(h.runId)}),p===c&&f]},t.parts.indexOf(p))}),m?.length?me(sa,{attachments:m,isUser:u}):null,l?.isAborted&&me(Ot,{label:d("translate_aborted")}),c==="end"&&f,n.debugStrip&&l&&me(fa,{messageId:t.id,metadata:l})]})}import{jsx as Ne,jsxs as dr}from"react/jsx-runtime";function Da({firing:e}){let{t,locale:n}=x(),r=A((o)=>o.debugMode);return dr("div",{className:y("cortex-trigger-block",r&&"cortex-trigger-block--debug"),children:[dr("div",{className:"cortex-trigger-block__head",children:[Ne("svg",{className:"cortex-trigger-block__icon",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:Ne("path",{d:T.bolt,fill:"currentColor"})}),r&&Ne("span",{children:t("translate_trigger_fired")}),Ne("span",{className:"cortex-trigger-block__name",children:e.name}),Ne("time",{className:"cortex-trigger-block__time",dateTime:e.firedAt,children:ce(e.firedAt,n)})]}),r&&dr("details",{className:"cortex-trigger-block__payload",children:[Ne("summary",{children:t("translate_trigger_payload")}),Ne(_e,{data:e.payload,expandDepth:2})]})]})}import{jsx as mt}from"react/jsx-runtime";var Wa=hc(function(t){let{message:n,isStreaming:r,closesTurn:o,animate:a,fold:i,onOpenRun:s,workingTurn:l,frontier:c}=t,d=A((m)=>m.debugMode),u=er(n,{debugMode:d,isStreaming:r,fold:i,closesTurn:o});if(u.metadata?.trigger)return mt("div",{className:"cortex-message",children:mt(Da,{firing:u.metadata.trigger})});if(!u.drawsBody)return mt("div",{className:"cortex-message"});return mt("div",{className:y("cortex-message",l&&"cortex-message--working-turn"),children:mt(Ua,{message:n,layout:u,animate:a,fold:i,onOpenRun:s,frontier:c})})});import{jsx as Wt}from"react/jsx-runtime";var xc=[{role:"user",lines:[13,9]},{role:"assistant",lines:[16,18,12]},{role:"user",lines:[11]},{role:"assistant",lines:[14,15]}];function Ba(){return Wt("div",{className:"cortex-widget__messages-skeleton",children:xc.map((e,t)=>Wt("div",{className:`cortex-widget__msg-skel cortex-widget__msg-skel--${e.role}`,children:Wt("div",{className:`cortex-widget__msg-skel-bubble cortex-widget__msg-skel-bubble--${e.role}`,children:e.lines.map((n)=>Wt("div",{className:"cortex-skeleton cortex-widget__msg-skel-line",style:{width:`${n}rem`}},n))})},t))})}import{jsx as te,jsxs as _t,Fragment as $a}from"react/jsx-runtime";function wc(e,t,n){let r=gt(null),o=gt(null),a=gt(void 0),[i,s]=ur(!1);return ft(()=>{let l=r.current,c=o.current;if(!e||!l||!c)return;let d=on(l,c);return a.current=d,()=>{d.dispose(),a.current=void 0}},[e]),ft(()=>a.current?.pin(),[t]),ft(()=>a.current?.messagesChanged(n.at(-1)),[n]),bc(()=>{s(!1),queueMicrotask(()=>s(!0))},[t]),{containerRef:r,contentRef:o,animateNewParts:i}}function Tc({working:e}){let t=gt(null),n=gt(void 0);return ft(()=>{let r=t.current;if(!r)return;let o=an(r);return n.current=o,()=>{o.dispose(),n.current=void 0}},[]),ft(()=>n.current?.sync(e)),_t("div",{ref:t,className:"cortex-working-avatar","aria-hidden":"true",children:[_t("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[te("path",{d:T.sparkles[0]}),te("path",{d:T.sparkles[1]})]}),te("span",{className:"cortex-working-avatar__ring"})]})}function ja(e){let{config:t,t:n}=x(),r=A((g)=>g.selected?.id),{messages:o,isAgentWorking:a,isLoadingMessages:i,turnFailure:s}=A((g)=>g.session),l=A((g)=>g.debugMode),c=A((g)=>g.capabilities),d=!i||a,u=wc(d,r,o),[m,f]=ur(new Set),p=yc((g)=>f((w)=>new Set(w).add(g)),[]),h=t.toolComponents,[b]=ur(Qn),{rows:v,thinking:C}=vc(()=>b(o,{agentWorking:a,debugMode:l,opened:m,consumerTools:h,capabilities:c}),[b,o,a,l,m,h,c]);return _t($a,{children:[!d?te(Ba,{}):te("div",{className:e.className,children:te("div",{ref:u.containerRef,className:"cortex-message-list",children:_t("div",{ref:u.contentRef,className:"cortex-message-list__content",children:[v.map((g)=>te(Wa,{...g,onOpenRun:p,animate:u.animateNewParts},g.message.id)),s&&_t($a,{children:[te(Ot,{label:n(vn(s))}),s.reason&&te("p",{className:"cortex-aborted-flag__reason",children:s.reason})]}),C&&te("div",{className:"cortex-working-thinking","data-cortex-frontier":"",children:te(De,{activity:"reasoning"})}),te(Tc,{working:a},r)]})})}),te(Et,{})]})}import{jsx as za,jsxs as Cc}from"react/jsx-runtime";function qa(e){let{widget:t}=x(),n=A((o)=>o.screen),r=A((o)=>o.selected!==void 0);return Cc("div",{className:y("cortex-widget__screen",n==="chat"&&"cortex-widget__screen--active",n!=="chat"&&"cortex-widget__screen--right"),children:[e.header,r?za(ja,{className:"cortex-widget__messages"}):e.landing,za("div",{className:"cortex-widget__sidebar-backdrop",onClick:t.closeHistory})]})}import{jsx as W,jsxs as Ae,Fragment as kc}from"react/jsx-runtime";function Ka(e){let{locale:t,t:n}=x(),{threads:r,deleteThread:o}=e;return W("div",{className:"cortex-widget__threads-list",children:r===void 0?[1,2,3,4].map((a)=>Ae("div",{className:"cortex-widget__thread-skeleton",children:[W("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-icon"}),W("div",{className:"cortex-widget__thread-skeleton-lines",children:W("div",{className:"cortex-skeleton cortex-widget__thread-skeleton-line",style:{width:`${40+a*12}%`}})})]},a)):Ae(kc,{children:[r.map((a)=>{let i=a.id===e.selectedThreadId,s=ce(a.updatedAt,t);return Ae("div",{className:y("cortex-widget__thread-item",i&&"cortex-widget__thread-item--active"),children:[W("div",{className:y("cortex-widget__thread-icon",i&&"cortex-widget__thread-icon--active"),children:W("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:W("path",{d:T.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),Ae("button",{type:"button",onClick:()=>e.openThread(a),className:"cortex-widget__thread-info",children:[Ae("div",{className:"cortex-widget__thread-title-row",children:[W("p",{dir:"auto",className:y("cortex-widget__thread-title",i&&"cortex-widget__thread-title--active"),children:a.title??n("translate_untitled")}),a.isRunning&&Ae("span",{className:y("cortex-widget__thread-running",i&&"cortex-widget__thread-running--active"),children:[W("span",{className:"cortex-widget__thread-running-dot"}),n("translate_running")]})]}),s&&W("p",{className:"cortex-widget__thread-time",children:s})]}),o&&W("button",{type:"button","aria-label":n("translate_delete_conversation"),onClick:()=>o(a.id),className:y("cortex-widget__thread-delete",i&&"cortex-widget__thread-delete--active"),children:W("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:W("path",{d:T.close,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),W("svg",{className:y("cortex-widget__thread-arrow",i&&"cortex-widget__thread-arrow--active"),width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:W("path",{d:T.chevronRight,stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},a.id)}),!r.length&&Ae("div",{className:"cortex-widget__threads-empty",children:[W("div",{className:"cortex-widget__threads-empty-icon",children:W("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",className:"cortex-widget__threads-empty-svg",children:W("path",{d:T.bubble,stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})}),W("p",{className:"cortex-widget__threads-empty-title",children:n("translate_no_threads_yet")}),W("p",{className:"cortex-widget__threads-empty-subtitle",children:n("translate_start_a_new_conversation")}),e.newChat&&W("button",{onClick:e.newChat,className:"cortex-widget__new-chat-btn cortex-widget__new-chat-btn--empty-state",children:n("translate_new_chat")})]})]})})}import{useLayoutEffect as Sc,useRef as Mc}from"react";import{jsx as Nc,jsxs as Ga}from"react/jsx-runtime";function Va(e){e.preventDefault()}function Ja(e){let{locale:t}=x(),n=A((a)=>a.screen),r=A((a)=>a.sidebarOpen),o=Mc(null);return Sc(()=>{if(o.current)ln(o.current)},[e.viewMode]),Nc("div",{className:y("cortex-widget",e.className),"data-cortex-theme":e.theme,dir:wr[t],children:Ga("div",{ref:o,className:y("cortex-widget__container",e.viewMode==="full"&&"cortex-widget__container--full",r&&"cortex-widget__container--sidebar-open"),onDragOver:Va,onDrop:Va,children:[Ga("div",{className:y("cortex-widget__screen",n==="threads"&&"cortex-widget__screen--active",n!=="threads"&&"cortex-widget__screen--left"),children:[e.header,e.threadList]}),e.children]})})}import{jsx as fe}from"react/jsx-runtime";var Ec={header:ta,landing:ra,threadList:Ka};function pr(e,t){return e?.[t]??Ec[t]}function Rc({config:e,className:t,slots:n}){let{widget:r,parts:o}=Vo(e),[a,i]=Lc();Ac(()=>Gn(e.theme,i),[e.theme]);let s=Le(e.locale),l=Xa(()=>({config:e,locale:s,t:(d,u)=>Z(s,d,u),scheme:a,widget:r}),[e,s,a,r]),c=Xa(()=>{let d=Sn(r,o,e,fe("div",{className:"cortex-widget__landing-composer",children:fe(Et,{})})),u=pr(n,"header"),m=pr(n,"landing"),f=pr(n,"threadList");return{threadsHeader:fe(u,{...d.threadsHeader}),threadList:fe(f,{...d.threadList}),chatHeader:fe(u,{...d.chatHeader}),landing:fe(m,{...d.landing})}},[r,o,e,n]);return fe(nr.Provider,{value:l,children:fe(Ja,{className:t,theme:e.theme,viewMode:e.viewMode??"helper",header:c.threadsHeader,threadList:c.threadList,children:fe(qa,{header:c.chatHeader,landing:c.landing})})})}export{Rc as CortexChatWidget};
|
package/dist/styles.css
CHANGED
|
@@ -308,6 +308,10 @@
|
|
|
308
308
|
transform: translateX(-100%);
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
+
.cortex-widget__container--switching > .cortex-widget__screen {
|
|
312
|
+
transition: none !important;
|
|
313
|
+
}
|
|
314
|
+
|
|
311
315
|
@keyframes cortex-skeleton-shimmer {
|
|
312
316
|
0% {
|
|
313
317
|
background-position: -200% 0;
|
|
@@ -2622,11 +2626,15 @@ details[open] > summary .cortex-debug-tool__chevron {
|
|
|
2622
2626
|
color: var(--cortex-color-text-strong);
|
|
2623
2627
|
cursor: pointer;
|
|
2624
2628
|
}
|
|
2625
|
-
.cortex-approval-card__button--
|
|
2629
|
+
.cortex-approval-card__button--primary {
|
|
2626
2630
|
border-color: var(--cortex-color-accent);
|
|
2627
2631
|
background: var(--cortex-color-accent);
|
|
2628
2632
|
color: var(--cortex-color-primary-foreground);
|
|
2629
2633
|
}
|
|
2634
|
+
.cortex-approval-card__button:disabled {
|
|
2635
|
+
opacity: 0.45;
|
|
2636
|
+
cursor: default;
|
|
2637
|
+
}
|
|
2630
2638
|
|
|
2631
2639
|
.cortex-approval-card__line {
|
|
2632
2640
|
display: flex;
|
|
@@ -2911,6 +2919,65 @@ details[open] > summary .cortex-debug-tool__chevron {
|
|
|
2911
2919
|
color: var(--cortex-color-success);
|
|
2912
2920
|
}
|
|
2913
2921
|
|
|
2922
|
+
.cortex-connect-card {
|
|
2923
|
+
display: flex;
|
|
2924
|
+
flex-direction: column;
|
|
2925
|
+
gap: 0.125rem;
|
|
2926
|
+
max-width: min(100%, 28rem);
|
|
2927
|
+
margin: 0.25rem 0;
|
|
2928
|
+
padding: 0.625rem 0.75rem;
|
|
2929
|
+
border: 1px solid var(--cortex-color-border);
|
|
2930
|
+
border-radius: var(--cortex-radius);
|
|
2931
|
+
background: var(--cortex-color-surface);
|
|
2932
|
+
font-size: 0.8125rem;
|
|
2933
|
+
}
|
|
2934
|
+
|
|
2935
|
+
.cortex-connect-card__server {
|
|
2936
|
+
font-size: 0.75rem;
|
|
2937
|
+
color: var(--cortex-color-text-muted);
|
|
2938
|
+
}
|
|
2939
|
+
|
|
2940
|
+
.cortex-connect-card__title {
|
|
2941
|
+
margin: 0;
|
|
2942
|
+
font-weight: 600;
|
|
2943
|
+
color: var(--cortex-color-text-heading);
|
|
2944
|
+
}
|
|
2945
|
+
|
|
2946
|
+
.cortex-connect-card__text {
|
|
2947
|
+
margin: 0;
|
|
2948
|
+
color: var(--cortex-color-text-secondary);
|
|
2949
|
+
}
|
|
2950
|
+
.cortex-connect-card__text--failed {
|
|
2951
|
+
color: var(--cortex-color-danger);
|
|
2952
|
+
}
|
|
2953
|
+
|
|
2954
|
+
.cortex-connect-card__actions {
|
|
2955
|
+
display: flex;
|
|
2956
|
+
gap: 0.5rem;
|
|
2957
|
+
margin-block-start: 0.5rem;
|
|
2958
|
+
}
|
|
2959
|
+
|
|
2960
|
+
.cortex-connect-card__button {
|
|
2961
|
+
border: 1px solid var(--cortex-color-border-strong);
|
|
2962
|
+
border-radius: calc(var(--cortex-radius) * 0.75);
|
|
2963
|
+
background: var(--cortex-color-surface);
|
|
2964
|
+
padding: 0.375rem 0.875rem;
|
|
2965
|
+
font: inherit;
|
|
2966
|
+
font-size: 0.8125rem;
|
|
2967
|
+
font-weight: 500;
|
|
2968
|
+
color: var(--cortex-color-text-strong);
|
|
2969
|
+
cursor: pointer;
|
|
2970
|
+
}
|
|
2971
|
+
.cortex-connect-card__button--primary {
|
|
2972
|
+
border-color: var(--cortex-color-accent);
|
|
2973
|
+
background: var(--cortex-color-accent);
|
|
2974
|
+
color: var(--cortex-color-primary-foreground);
|
|
2975
|
+
}
|
|
2976
|
+
.cortex-connect-card__button:disabled {
|
|
2977
|
+
opacity: 0.45;
|
|
2978
|
+
cursor: default;
|
|
2979
|
+
}
|
|
2980
|
+
|
|
2914
2981
|
.cortex-reasoning-animated {
|
|
2915
2982
|
display: block;
|
|
2916
2983
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@m6d/cortex-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "React chat widget for Cortex agents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"sideEffects": [
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"@cortex/client": "workspace:*",
|
|
33
33
|
"@cortex/contracts": "workspace:*",
|
|
34
34
|
"@m6d/tsconfig": "workspace:*",
|
|
35
|
-
"@tanstack/ai": "^0.
|
|
36
|
-
"@tanstack/ai-client": "^0.
|
|
35
|
+
"@tanstack/ai": "^1.0.1",
|
|
36
|
+
"@tanstack/ai-client": "^1.0.1",
|
|
37
37
|
"@types/bun": "1.4.4",
|
|
38
38
|
"@types/jsdom": "^28.0.0",
|
|
39
39
|
"@types/leaflet": "^1.9.22",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"vega-lite": "^6.4.3"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@tanstack/ai": ">=0.
|
|
58
|
-
"@tanstack/ai-client": ">=0.
|
|
57
|
+
"@tanstack/ai": ">=1.0.0 <2.0.0",
|
|
58
|
+
"@tanstack/ai-client": ">=1.0.0 <2.0.0",
|
|
59
59
|
"dompurify": "^3.0.0",
|
|
60
60
|
"highlight.js": "^11.0.0",
|
|
61
61
|
"leaflet": "^1.9.0",
|