@runtypelabs/persona 4.31.0 → 4.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/activity-ui.cjs +2 -2
- package/dist/activity-ui.d.cts +11 -3
- package/dist/activity-ui.d.ts +11 -3
- package/dist/activity-ui.js +1 -1
- package/dist/animations/glyph-cycle.d.cts +1 -1
- package/dist/animations/glyph-cycle.d.ts +1 -1
- package/dist/animations/wipe.d.cts +1 -1
- package/dist/animations/wipe.d.ts +1 -1
- package/dist/approval-ui.d.cts +2 -2
- package/dist/approval-ui.d.ts +2 -2
- package/dist/artifacts-ui.d.cts +3 -3
- package/dist/artifacts-ui.d.ts +3 -3
- package/dist/background-runtime.d.cts +1 -1
- package/dist/background-runtime.d.ts +1 -1
- package/dist/{chunk-BrptyKSq.js → chunk-B3l7TOOv.js} +1 -1
- package/dist/chunk-B4ecQzeK.js +2 -0
- package/dist/{chunk-BWCo3rCm.js → chunk-B_H0l3u2.js} +1 -1
- package/dist/{chunk-MdlQetfC.js → chunk-BbXc58OA.js} +1 -1
- package/dist/chunk-BkOYJ11B.js +1 -0
- package/dist/{chunk-DE0cSmku.js → chunk-BpjtKnGI.js} +1 -1
- package/dist/{chunk-Co4LmTFv.js → chunk-C9uOhfk5.js} +1 -1
- package/dist/{chunk-CHAwCqpk.js → chunk-CdpVP6LZ.js} +1 -1
- package/dist/{chunk-WA9UucGf.js → chunk-CumoXK3u.js} +1 -1
- package/dist/{chunk-BBtVdcKU.js → chunk-DM-OJt5q.js} +1 -1
- package/dist/{chunk-Cb7qy0c7.js → chunk-DNdeIFJ6.js} +1 -1
- package/dist/{chunk-VaT6xry9.js → chunk-DTGvDx8o.js} +1 -1
- package/dist/{chunk-ezlpsYGk.js → chunk-DVZ8ri1z.js} +1 -1
- package/dist/{chunk-DhedQnek.js → chunk-DgZZqy14.js} +1 -1
- package/dist/{chunk-C2IbR39s.js → chunk-UWMfWW2a.js} +1 -1
- package/dist/client-dispatch.js +1 -1
- package/dist/client-history.js +1 -1
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.js +1 -1
- package/dist/composer-actions-runtime.d.cts +2 -2
- package/dist/composer-actions-runtime.d.ts +2 -2
- package/dist/{composer-input-C2_WizXV.d.cts → composer-input-dwg_o9Z-.d.cts} +1 -1
- package/dist/{composer-input-C2_WizXV.d.ts → composer-input-dwg_o9Z-.d.ts} +1 -1
- package/dist/{composer-store-BV6kTlKv.d.cts → composer-store-Dw7Zbqxr.d.cts} +1 -1
- package/dist/{composer-store-BV6kTlKv.d.ts → composer-store-Dw7Zbqxr.d.ts} +1 -1
- package/dist/{context-mention-manager-BfZzcydV.d.cts → context-mention-manager-D2p0-JH-.d.cts} +2 -2
- package/dist/{context-mention-manager-BfZzcydV.d.ts → context-mention-manager-D2p0-JH-.d.ts} +2 -2
- package/dist/context-mentions-inline.d.cts +2 -2
- package/dist/context-mentions-inline.d.ts +2 -2
- package/dist/context-mentions.d.cts +3 -3
- package/dist/context-mentions.d.ts +3 -3
- package/dist/{defaults-DiTeXyr3.d.cts → defaults-CjX0kKzb.d.cts} +1 -1
- package/dist/{defaults-DiTeXyr3.d.ts → defaults-CjX0kKzb.d.ts} +1 -1
- package/dist/dictation-runtime.d.cts +2 -2
- package/dist/dictation-runtime.d.ts +2 -2
- package/dist/event-stream-view.d.cts +1 -1
- package/dist/event-stream-view.d.ts +1 -1
- package/dist/{fallback-speech-engine-DZ6Of7VU.d.cts → fallback-speech-engine-DmF7MczI.d.cts} +1 -1
- package/dist/{fallback-speech-engine-DZ6Of7VU.d.ts → fallback-speech-engine-DmF7MczI.d.ts} +1 -1
- package/dist/{feature-preferences-BT549D_E.d.cts → feature-preferences-CVFDt9Xf.d.cts} +1 -1
- package/dist/{feature-preferences-BT549D_E.d.ts → feature-preferences-CVFDt9Xf.d.ts} +1 -1
- package/dist/forms-ui.d.cts +2 -2
- package/dist/forms-ui.d.ts +2 -2
- package/dist/{history-confirm-dialog-Cm4oK4am.d.cts → history-confirm-dialog-DJEXsTyE.d.cts} +1 -1
- package/dist/{history-confirm-dialog-Cm4oK4am.d.ts → history-confirm-dialog-DJEXsTyE.d.ts} +1 -1
- package/dist/history-shell.d.cts +6 -6
- package/dist/history-shell.d.ts +6 -6
- package/dist/history-view.d.cts +1 -1
- package/dist/history-view.d.ts +1 -1
- package/dist/index.cjs +11 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.global.js +1 -1
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +23 -22
- package/dist/index.js.map +1 -1
- package/dist/launcher.global.js +1 -1
- package/dist/launcher.global.js.map +1 -1
- package/dist/{loading-label-runtime-loader-DmiPDkBu.d.cts → loading-label-runtime-loader-CPxnoaoi.d.cts} +1 -1
- package/dist/{loading-label-runtime-loader-DmiPDkBu.d.ts → loading-label-runtime-loader-CPxnoaoi.d.ts} +1 -1
- package/dist/loading-label-runtime.d.cts +1 -1
- package/dist/loading-label-runtime.d.ts +1 -1
- package/dist/{message-bubble-D0rosKuK.d.cts → message-bubble-CkZGlCLC.d.cts} +1 -1
- package/dist/{message-bubble-D0rosKuK.d.ts → message-bubble-CkZGlCLC.d.ts} +1 -1
- package/dist/preferences-runtime.d.cts +1 -1
- package/dist/preferences-runtime.d.ts +1 -1
- package/dist/{preview-DRU27q-X.d.cts → preview-DdUvoLb4.d.cts} +2 -2
- package/dist/{preview-DRU27q-X.d.ts → preview-DdUvoLb4.d.ts} +2 -2
- package/dist/{registry-DRk3VMFc.d.cts → registry-Dz4iHNST.d.cts} +1 -1
- package/dist/{registry-DRk3VMFc.d.ts → registry-Dz4iHNST.d.ts} +1 -1
- package/dist/{session-Dj4bOm5y.d.cts → session-Baxp9iRK.d.cts} +14 -8
- package/dist/{session-Dj4bOm5y.d.ts → session-Baxp9iRK.d.ts} +14 -8
- package/dist/session-reconnect.d.cts +2 -2
- package/dist/session-reconnect.d.ts +2 -2
- package/dist/smart-dom-reader.d.cts +1 -1
- package/dist/smart-dom-reader.d.ts +1 -1
- package/dist/theme-editor-preview.cjs +46 -45
- package/dist/theme-editor-preview.d.cts +1 -1
- package/dist/theme-editor-preview.d.ts +1 -1
- package/dist/theme-editor-preview.js +19 -18
- package/dist/theme-editor.cjs +1 -1
- package/dist/theme-editor.d.cts +2 -2
- package/dist/theme-editor.d.ts +2 -2
- package/dist/theme-editor.js +1 -1
- package/dist/theme-reference.cjs +1 -1
- package/dist/theme-reference.d.cts +2 -2
- package/dist/theme-reference.d.ts +2 -2
- package/dist/theme-reference.js +1 -1
- package/dist/{tool-loading-animation-D1MS5Ace.d.cts → tool-loading-animation-un3kA5Ur.d.cts} +1 -1
- package/dist/{tool-loading-animation-D1MS5Ace.d.ts → tool-loading-animation-un3kA5Ur.d.ts} +1 -1
- package/dist/{turn-activity-ui-CorwdlI0.d.cts → turn-activity-ui-BGNhtMcH.d.cts} +2 -2
- package/dist/{turn-activity-ui-CorwdlI0.d.ts → turn-activity-ui-BGNhtMcH.d.ts} +2 -2
- package/dist/turn-activity-ui.d.cts +1 -1
- package/dist/turn-activity-ui.d.ts +1 -1
- package/dist/{types-CSXHl5cN.d.cts → types-BOZHQIk0.d.cts} +8 -1
- package/dist/{types-CSXHl5cN.d.ts → types-BOZHQIk0.d.ts} +8 -1
- package/dist/voice-client-tools.d.cts +1 -1
- package/dist/voice-client-tools.d.ts +1 -1
- package/dist/voice-runtime.cjs +1 -1
- package/dist/voice-runtime.d.cts +2 -2
- package/dist/voice-runtime.d.ts +2 -2
- package/dist/voice-runtime.js +1 -1
- package/dist/voice-worklet-player.d.cts +2 -2
- package/dist/voice-worklet-player.d.ts +2 -2
- package/dist/{webmcp-runtime-entry-DpDN6k-6.d.cts → webmcp-runtime-entry-DuAG1_yF.d.cts} +1 -1
- package/dist/{webmcp-runtime-entry-DpDN6k-6.d.ts → webmcp-runtime-entry-DuAG1_yF.d.ts} +1 -1
- package/dist/webmcp-runtime.d.cts +1 -1
- package/dist/webmcp-runtime.d.ts +1 -1
- package/dist/widget.css +1 -1
- package/package.json +1 -1
- package/src/activity-ui.ts +23 -0
- package/src/components/disclosure-animation.ts +5 -0
- package/src/components/tool-bubble.ts +1 -0
- package/src/index-core.ts +1 -0
- package/src/styles/widget.css +18 -0
- package/src/types.ts +8 -0
- package/src/ui.footer-visibility.test.ts +54 -0
- package/src/ui.reveal-tool-call.test.ts +258 -0
- package/src/ui.ts +127 -5
- package/src/utils/brand.test.ts +50 -0
- package/src/utils/brand.ts +6 -2
- package/src/utils/tokens.ts +2 -1
- package/src/utils/tool-activity-summary.test.ts +8 -0
- package/src/utils/tool-activity-summary.ts +2 -1
- package/dist/chunk-B3OrH9Ng.js +0 -2
- package/dist/chunk-CjhA_5Jk.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./chunk-Bb41bKyp.js";import{i as e}from"./chunk-BAdIgC5d.js";import{i as t,l as n,t as r,u as i}from"./chunk-BWCo3rCm.js";async function a(e,t,n,r){let i={"Content-Type":`application/json`,...e.headers};e.getHeaders&&Object.assign(i,await e.getHeaders());let a={executionId:t.executionId,approvalId:t.approvalId,decision:n,streamResponse:!0},o=(t,n)=>fetch(`${e.clientApiBase()}${t}`,{method:`POST`,headers:i,body:JSON.stringify({...n,...a})}),s=`/v1/agents/${t.agentId}/approve`;if(!e.isClientTokenMode())return o(s);let{sessionId:c}=await e.initSession(),l=await o(`/v1/client/approve`,{sessionId:c,...r?.assistantMessageId?{assistantMessageId:r.assistantMessageId}:{}});if(l.status===404){let e=await l.clone().json().catch(()=>null);if(!e||e.error===`Not Found`)return o(s)}return l}async function o(e,t,n,r){let a=e.isClientTokenMode(),o=a?e.getClientApiUrl(`resume`):`${e.config.apiUrl?.replace(/\/+$/,``)||`https://api.runtype.com`}/resume`,s,c=null;if(a){let t=await e.initSession();s=t.sessionId,t.durableRecovery?.enabled===!0&&(c=await e.readVisitorToken())}let l={"Content-Type":`application/json`,...c?{"X-Visitor-Token":c}:{},...e.headers};e.getHeaders&&Object.assign(l,await e.getHeaders());let u={executionId:t,toolOutputs:n,streamResponse:r?.streamResponse??!0,...r?.after?{after:r.after}:{}};if(s&&(u.sessionId=s,r?.assistantMessageId&&(u.assistantMessageId=r.assistantMessageId)),a&&s){let t=[...i(e.config),...await(await e.getWebMcpBridge())?.snapshotForDispatch()??[]],{response:n,commit:a}=await e.sendWithClientToolsDiff(s,t,t=>{let n={...u,...t};return e.debug&&console.debug(`[AgentWidgetClient] client token resume`,n),fetch(o,{method:`POST`,headers:l,body:JSON.stringify(n),signal:r?.signal})},{emptyMeansReplace:!0});return n.ok&&a(),n}return fetch(o,{method:`POST`,headers:l,body:JSON.stringify(u),signal:r?.signal})}const s=e=>e===`commentary`||e===`partial_answer`||e===`final_answer`?e:void 0;function c(e){let t=e.toLowerCase(),n=t===`text/plain`?`txt`:t===`text/markdown`?`md`:void 0;if(n)return`attachment.${n}`;let r=t.indexOf(`/`);if(r>0){let e=t.slice(r+1).split(`;`)[0]?.trim()??``;if(e&&e!==`octet-stream`&&/^[a-z0-9.+-]+$/i.test(e))return`attachment.${e}`}return`attachment`}const l=e=>/^[{[<]/.test(e);function u(e,t){if(!e)return t;let r=e.trim(),i=t.trim();if(!r)return t;if(!i)return e;let a=l(r);if(!l(i))return e;if(!a||i.startsWith(r))return t;let o=n(e);return n(t)!==null&&o===null?t:e}async function d(e,t,n,r,i,a,o){if(!e.parseSSEEvent)return!1;try{let s=await e.parseSSEEvent(t);if(s===null)return!1;let c=e=>{let t={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`assistant`,sequence:a(),...e!==void 0&&{partId:e}};return r.current=t,i(t),t},l=e=>r.current?r.current:c(e);if(s.text!==void 0){s.partId!==void 0&&o.current!==null&&s.partId!==o.current&&(r.current&&(r.current.streaming=!1,i(r.current)),c(s.partId)),s.partId!==void 0&&(o.current=s.partId);let e=l(s.partId);s.partId!==void 0&&!e.partId&&(e.partId=s.partId),e.content+=s.text,i(e)}return s.done&&(r.current&&(r.current.streaming=!1,i(r.current)),o.current=null,n({type:`status`,status:`idle`})),s.error&&(o.current=null,n({type:`error`,error:Error(s.error)})),!0}catch(e){return typeof console<`u`&&console.error(`[AgentWidget] parseSSEEvent error:`,e),!1}}async function ee(i,a,o,l,ee,f,p,m){let h=i.streamGeneration(),g=a.getReader();i.streamReaders.add(g);let te=!!i.config().backgroundConversations,ne=()=>{te&&g.cancel().catch(()=>{})};f?.addEventListener(`abort`,ne,{once:!0});let re=new TextDecoder,_=``,ie=Date.now(),ae=0,v=()=>ie+ae++,oe=e=>({...e,chunks:e.chunks?[...e.chunks]:void 0}),y=e=>({...e,reasoning:e.reasoning?{...e.reasoning,chunks:[...e.reasoning.chunks]}:void 0,toolCall:e.toolCall?oe(e.toolCall):void 0,tools:e.tools?.map(oe)}),se=e=>{if(e.role!==`assistant`||e.variant)return!0;let t=Array.isArray(e.contentParts)&&e.contentParts.length>0,n=typeof e.rawContent==`string`&&e.rawContent.trim()!==``;return typeof e.content==`string`&&e.content.trim()!==``||t||n||!!e.stopReason},b=e=>{!f?.aborted&&h===i.streamGeneration()&&se(e)&&o({type:`message`,message:y(e)})},x=null,S=null,C={current:null},ce={current:null},w=null,T=``,E=new Map(m?.textPhases),D=/* @__PURE__ */ new Map,O=/* @__PURE__ */ new Map,k=/* @__PURE__ */ new Map,A=/* @__PURE__ */ new Map,j=/* @__PURE__ */ new Map,M=l,N=!1,P=p?.find(e=>e.id===l);P&&(x=y(P),x.streaming=m?.openAssistant??!0,N=!0,w=P.agentMetadata?.textBlockId??null,T=P.rawContent??P.content,S=x,m&&!m.openAssistant&&(x=null)),m&&(w=m.textBlockId,T=m.rawText,m.nestedParents.forEach(([e,t])=>D.set(e,t)),m.nestedRaw.forEach(([e,t])=>k.set(e,t)));for(let e of p??[]){e.variant===`tool`&&e.toolCall?.id&&j.set(e.toolCall.id,y(e)),e.variant===`reasoning`&&e.reasoning?.id&&A.set(e.reasoning.id,y(e));let t=e.agentMetadata?.textBlockId;t&&(O.set(t,e.id===x?.id?x:y(e)),e.agentMetadata?.phase&&E.set(t,e.agentMetadata.phase));let n=e.agentMetadata?.parentToolId;t&&n&&(D.set(t,n),k.set(t,e.rawContent??e.content))}let le=()=>{if(x)return x;let e,t=``,n=w;return!N&&M?(e=M,N=!0,t=ee??``):e=M&&n?`${M}_${n}`:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,x={id:e,role:`assistant`,content:t,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v()},b(x),x},F=(e,t)=>{let n=A.get(e);if(n)return n;let r={id:`reason-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`reasoning`,agentMetadata:{executionId:t},sequence:v(),reasoning:{id:e,status:`streaming`,chunks:[]}};return A.set(e,r),b(r),r},I=/* @__PURE__ */ new Set,L=/* @__PURE__ */ new Map,R=/* @__PURE__ */ new Set;for(let e of p??[])if(e.id.startsWith(`artifact-ref-`)){let t=e.id.slice(13);R.add(t),L.set(t,y(e))}m?.artifactTools.forEach(e=>I.add(e));let z=/* @__PURE__ */ new Map;m?.artifactContent.forEach(([e,t])=>z.set(e,{...t}));let ue=e=>{if(!e)return!1;let t=e.replace(/_+/g,`_`).replace(/^_|_$/g,``);return t===`emit_artifact_markdown`||t===`emit_artifact_component`},B=(e,t,n)=>{let r=j.get(e),i={...r?.agentMetadata,executionId:t??r?.agentMetadata?.executionId,iteration:n??r?.agentMetadata?.iteration??(Y||void 0)};if(r)return r.agentMetadata=i,r;let a={id:`tool-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`tool`,agentMetadata:i,sequence:v(),toolCall:{id:e,status:`pending`}};return j.set(e,a),b(a),a},de=e=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t=Number(e);if(Number.isFinite(t))return t;let n=Date.parse(e);if(!Number.isNaN(n))return n}return Date.now()},V=e=>{if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e)}catch{return String(e)}},H=/* @__PURE__ */ new Map,U=/* @__PURE__ */ new Map,fe=(e,t)=>{let r=V(t),i=u(U.get(e.id),r);e.rawContent=i;let a=H.get(e.id),o=t=>{let n=e.content??``;t.trim()!==``&&(!n.trim()||t.startsWith(n)||t.trimStart().startsWith(n.trim()))&&(e.content=t)},s=()=>{let t=a?.close?.();t instanceof Promise&&t.catch(()=>{}),H.delete(e.id),U.delete(e.id),e.streaming=!1,b(e)};if(!a){o(r),s();return}let c=n(i);if(c!==null&&c.trim()!==``){o(c),s();return}let l=e=>{let t=typeof e==`string`?e:e?.text??null;if(t!==null&&t.trim()!==``)return t;let n=a.getExtractedText();return n!==null&&n.trim()!==``?n:r},d;try{d=a.processChunk(i)}catch{o(r),s();return}d instanceof Promise?d.then(e=>{o(l(e)),s()}).catch(()=>{o(r),s()}):(o(l(d)),s())},W=null,pe=p?.find(e=>e.id===m?.sealedFlowMessageId);pe&&(W=y(pe));let me=(e,t,n)=>{e.rawContent=t,H.has(e.id)||H.set(e.id,i.createStreamParser());let r=H.get(e.id),a=/^[{[]/.test(t.trim());a&&U.set(e.id,t);let o=()=>{e.content+=n,U.delete(e.id),H.delete(e.id),e.rawContent=void 0,b(e)};if(r.__isPlainTextParser===!0){o();return}let s=n=>{let r=typeof n==`string`?n:n?.text??null;r!==null&&r.trim()!==``?(e.content=r,b(e)):!a&&!t.trim().startsWith(`<`)&&o()},c=r.processChunk(t);c instanceof Promise?c.then(s).catch(o):s(c)},G=(e,t)=>{let r=t??e.content;if(r==null||r===``){e.streaming=!1,b(e);return}let i=U.get(e.id)??V(r);e.rawContent=i;let a=H.get(e.id),o=null,s=!1;if(a&&(o=a.getExtractedText(),o===null&&(o=n(i)),o===null)){let t=a.processChunk(i);t instanceof Promise?(s=!0,t.then(t=>{let n=typeof t==`string`?t:t?.text??null;n!==null&&(e.content=n,e.streaming=!1,H.delete(e.id),U.delete(e.id),b(e))}).catch(()=>{})):o=typeof t==`string`?t:t?.text??null}if(!s){o!==null&&o.trim()!==``?e.content=o:U.has(e.id)||(e.content=V(r));let t=H.get(e.id);if(t){let n=t.close?.();n instanceof Promise&&n.catch(()=>{}),H.delete(e.id)}U.delete(e.id),e.streaming=!1,b(e)}},he=(e,t,n,r)=>{let i=O.get(e);if(i)return i;let a={id:`nested-${t}-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v(),...n?{variant:n}:{},...n===`reasoning`?{reasoning:{id:e,status:`streaming`,chunks:[]}}:{},agentMetadata:{parentToolId:t,textBlockId:e,executionId:r,phase:E.get(e)}};return O.set(e,a),b(a),a},K=[],q,J=/* @__PURE__ */ new Map;m?.media.forEach(([e,t])=>J.set(e,{...t,parts:[...t.parts]}));let Y=m?.iteration??0,X=m?.executionKind??`agent`,Z=m?.executionKindResolved??!1,Q=m?.turnId??null,$=null,ge=i.config().iterationDisplay??`separate`;q=()=>{for(let n=0;n<K.length;n++){let a=K[n];if(!Z&&X!==`flow`&&typeof a.stepType==`string`&&(X=`flow`),a.type===`reasoning_start`){let e=typeof a.id==`string`?a.id:null,t=typeof a.parentToolCallId==`string`&&a.parentToolCallId?a.parentToolCallId:null;if(e&&t){D.set(e,t),he(e,t,`reasoning`,a.executionId);continue}let n=a.id,r=F(n,a.executionId);r.reasoning=r.reasoning??{id:n,status:`streaming`,chunks:[]},r.reasoning.startedAt=r.reasoning.startedAt??Date.now(),r.reasoning.completedAt=void 0,r.reasoning.durationMs=void 0,(a.scope===`loop`||a.scope===`turn`)&&(r.reasoning.scope=a.scope),r.streaming=!0,r.reasoning.status=`streaming`,b(r)}else if(a.type===`reasoning_delta`){let e=typeof a.id==`string`?a.id:null;if(e&&D.has(e)&&O.has(e)){let t=O.get(e),n=a.delta;n&&t.reasoning&&(t.reasoning.chunks.push(String(n)),b(t));continue}let t=a.id,n=F(t,a.executionId);n.reasoning=n.reasoning??{id:t,status:`streaming`,chunks:[]},n.reasoning.startedAt=n.reasoning.startedAt??Date.now(),a.delta&&n.reasoning.chunks.push(a.delta),n.reasoning.status=`streaming`,n.streaming=!0,b(n)}else if(a.type===`reasoning_complete`){let e=typeof a.id==`string`?a.id:null;if(e&&D.has(e)&&O.has(e)){let t=O.get(e);if(t.reasoning){let e=typeof a.text==`string`?a.text:``;e&&t.reasoning.chunks.length===0&&t.reasoning.chunks.push(e),t.reasoning.status=`complete`,t.streaming=!1,b(t)}D.delete(e),O.delete(e);continue}let t=a.id,n=typeof a.text==`string`?a.text:``;!A.get(t)&&(n||a.scope===`loop`)&&F(t,a.executionId);let r=A.get(t);if(r?.reasoning){(a.scope===`loop`||a.scope===`turn`)&&(r.reasoning.scope=a.scope),n&&r.reasoning.chunks.length===0&&r.reasoning.chunks.push(n),r.reasoning.status=`complete`,r.reasoning.completedAt=Date.now();let e=r.reasoning.startedAt??Date.now();r.reasoning.durationMs=Math.max(0,(r.reasoning.completedAt??Date.now())-e),r.streaming=!1,b(r)}}else if(a.type===`tool_start`){x&&=(x.streaming=!1,b(x),null),typeof a.iteration==`number`&&(Y=a.iteration);let e=a.toolCallId,t=a.toolName;if(ue(t)){I.add(e);continue}let n=B(e,a.executionId,a.iteration),r=n.toolCall??{id:e,status:`pending`};r.name=t??r.name,r.status=`running`,r.success=void 0,r.error=void 0,r.duration=void 0,a.parameters!==void 0&&(r.args=a.parameters),r.startedAt=r.startedAt??de(a.startedAt),r.completedAt=void 0,r.durationMs=void 0,n.toolCall=r,n.streaming=!0,b(n)}else if(a.type===`tool_output_delta`){let e=a.toolCallId;if(I.has(e))continue;let t=B(e,a.executionId),n=t.toolCall??{id:e,status:`running`};n.startedAt=n.startedAt??Date.now();let r=a.delta;r&&(n.chunks=n.chunks??[],n.chunks.push(String(r))),n.status=`running`,t.toolCall=n,t.streaming=!0,b(t)}else if(a.type===`tool_complete`){let e=a.toolCallId;if(I.has(e)){I.delete(e);continue}let t=B(e,a.executionId,a.iteration),n=t.toolCall??{id:e,status:`running`};n.status=`complete`,a.result!==void 0&&(n.result=a.result),n.name=a.toolName??n.name,n.success=a.success,n.error=a.error,n.completedAt=Date.now();let r=a.executionTime;if(typeof r==`number`)n.durationMs=r,n.duration=r;else{let e=n.startedAt??Date.now();n.durationMs=Math.max(0,(n.completedAt??Date.now())-e)}t.toolCall=n,t.streaming=!1,b(t)}else if(a.type===`await`&&a.toolName){let t=typeof a.toolCallId==`string`&&a.toolCallId.length>0?a.toolCallId:void 0,n=t??a.toolId??`local-${v()}`,r=B(n,a.executionId),i=a.toolName,o=a.origin===`webmcp`&&!e(i)?`webmcp:${i}`:i,s=e(o),c=r.toolCall??{id:n,status:`pending`};c.name=o,c.args=a.parameters,c.status=s?`running`:`complete`,c.chunks=c.chunks??[],c.startedAt=c.startedAt??de(a.awaitedAt),s?(c.completedAt=void 0,c.duration=void 0,c.durationMs=void 0):c.completedAt=c.completedAt??c.startedAt,r.toolCall=c,r.streaming=!1,r.agentMetadata={...r.agentMetadata,executionId:a.executionId??r.agentMetadata?.executionId,awaitingLocalTool:!0,...t?{webMcpToolCallId:t}:{}},b(r)}else if(a.type===`text_start`){let e=typeof a.id==`string`?a.id:null;if(e){let t=s(a.phase);t?E.set(e,t):E.delete(e)}let t=typeof a.parentToolCallId==`string`&&a.parentToolCallId?a.parentToolCallId:null;if(e&&t){D.set(e,t);continue}let n=x;n&&(X===`flow`?(G(n),W=n):(n.streaming=!1,b(n)),x=null),w=e??w,T=``}else if(a.type===`text_delta`){let e=typeof a.id==`string`?a.id:null,t=e?D.get(e):void 0;if(e&&t){let n=typeof a.delta==`string`?a.delta:``,r=(k.get(e)??``)+n;if(k.set(e,r),r.trim()===``)continue;let i=he(e,t,void 0,a.executionId);me(i,r,n);continue}w=e??w;let n=typeof a.delta==`string`?a.delta:``;if(T+=n,X===`flow`&&T.trim()===``)continue;let r=le();r.agentMetadata={textBlockId:w??void 0,phase:E.get(w??``),executionId:a.executionId,iteration:Y,...X===`flow`?{}:{turnId:Q??void 0,agentName:$?.agentName}},w&&O.set(w,r),me(r,T,n),S=r}else if(a.type===`text_complete`){let e=typeof a.id==`string`?a.id:null;e&&E.delete(e);let t=e?O.get(e):x,n=s(a.phase);if(t&&n&&(t.agentMetadata={...t.agentMetadata,providerPhase:n}),e&&D.has(e)){let t=O.get(e);t&&G(t),D.delete(e),k.delete(e),O.delete(e);continue}if(e&&t!==x){t&&(t.streaming=!1,b(t));continue}let r=x;r&&(X===`flow`?(G(r),W=r):((r.content??``)===``&&typeof a.text==`string`&&(r.content=a.text),r.streaming=!1,b(r)),x=null),w=null,T=``}else if(a.type===`step_complete`){if(a.stepType===`tool`)continue;if(a.success===!1){let e=a.error||`Step failed`;o({type:`error`,error:Error(e)});let t=x;t&&t.streaming&&(t.streaming=!1,b(t)),o({type:`status`,status:`idle`});continue}{let e=W;W=null;let t=a.stopReason,n=(a.result&&typeof a.result==`object`?a.result:null)?.response;if(e)t&&(e.stopReason=t),n==null?e.streaming!==!1&&(H.delete(e.id),U.delete(e.id),e.streaming=!1,b(e)):fe(e,n);else{let e=n!=null&&n!==``;if(e||t&&t!==`end_turn`&&t!==`unknown`){let r=le();t&&(r.stopReason=t),e?G(r,n):(r.streaming=!1,b(r))}}continue}}else if(a.type===`execution_start`)X=a.kind===`flow`?`flow`:`agent`,Z=!0,i.config().backgroundConversations&&o({type:`status`,status:`connected`,executionId:a.executionId}),X===`agent`&&($={executionId:a.executionId,agentId:a.agentId??`virtual`,agentName:a.agentName??``});else if(a.type===`turn_start`){let e=typeof a.iteration==`number`?a.iteration:Y;if(e!==Y){if(ge===`separate`&&e>1){let e=x;e&&(e.streaming=!1,b(e),x=null)}Y=e}Q=typeof a.id==`string`?a.id:null,S=null}else if(a.type===`tool_input_delta`){let e=a.toolCallId;if(e){let t=j.get(e);t?.toolCall&&(t.toolCall.chunks=t.toolCall.chunks??[],t.toolCall.chunks.push(a.delta??``),b(t))}}else if(a.type===`tool_input_complete`){if(I.has(a.toolCallId))continue;let e=B(a.toolCallId,a.executionId),t=e.toolCall;t.args=a.parameters,t.name=a.toolName??t.name,b(e)}else if(a.type===`turn_complete`){let e=a.stopReason,t=x??S;if(e&&t!==null){let n=a.id;(!n||t.agentMetadata?.turnId===n)&&(t.stopReason=e,b(t))}Q===a.id&&(Q=null)}else if(a.type===`media_start`){let e=String(a.id);J.set(e,{mediaType:typeof a.mediaType==`string`?a.mediaType:void 0,toolCallId:a.toolCallId,parts:[]})}else if(a.type===`media_delta`){let e=J.get(String(a.id));e&&typeof a.delta==`string`&&e.parts.push(a.delta)}else if(a.type===`media_complete`){let e=String(a.id),t=J.get(e);J.delete(e);let n=(typeof a.mediaType==`string`?a.mediaType:void 0)??t?.mediaType??`application/octet-stream`,r=typeof a.data==`string`?a.data:void 0,i=typeof a.url==`string`?a.url:t&&t.parts.length>0?t.parts.join(``):void 0,o=null;if(r)o={type:`media`,data:r,mediaType:n};else if(i){let e=n.toLowerCase();o={type:e===`image`||e.startsWith(`image/`)?`image-url`:`file-url`,url:i,mediaType:n}}let s=a.toolCallId??t?.toolCallId,l=o?[o]:[],u=[];for(let e of l){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.type==`string`?t.type:void 0,r=typeof t.mediaType==`string`?t.mediaType.toLowerCase():``,i=null,a=``;if(n===`media`){let e=typeof t.data==`string`?t.data:void 0;if(!e)continue;a=r.length>0?r:`application/octet-stream`,i=`data:${a};base64,${e}`}else if(n===`image-url`){let e=typeof t.url==`string`?t.url:void 0;if(!e)continue;a=r,i=e}else if(n===`file-url`){let e=typeof t.url==`string`?t.url:void 0;if(!e)continue;a=r,i=e}else continue;if(i){if(n===`image-url`||a.startsWith(`image/`))u.push({type:`image`,image:i,...a.includes(`/`)?{mimeType:a}:{}});else if(a.startsWith(`audio/`))u.push({type:`audio`,audio:i,mimeType:a});else if(a.startsWith(`video/`))u.push({type:`video`,video:i,mimeType:a});else{let e=a||`application/octet-stream`;u.push({type:`file`,data:i,mimeType:e,filename:c(e)})}}}if(u.length>0){let e=v(),t=s,n={id:`agent-media-${typeof t==`string`&&t.length>0?`${t}-${e}`:String(e)}`,role:`assistant`,content:``,contentParts:u,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,sequence:e,agentMetadata:{executionId:a.executionId,iteration:Y}};b(n);let r=x;r&&(r.streaming=!1,b(r)),x=null,C.current=null}}else if(a.type===`execution_complete`){let e=x;e&&(a.kind===`flow`&&e.streaming!==!1?G(e):(e.streaming=!1,b(e)),x=null),w=null,T=``,W=null,o({type:`status`,status:a.success===!1?`error`:`idle`,terminal:!0})}else if(a.type===`execution_error`){let e=typeof a.error==`string`?a.error:a.error?.message??`Execution error`;o({type:`error`,error:Error(e)})}else if(a.type!==`ping`){if(a.type===`approval_start`){let e=a.approvalId??`approval-${v()}`,t={id:`approval-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,variant:`approval`,sequence:v(),approval:{id:e,status:`pending`,agentId:$?.agentId??`virtual`,executionId:a.executionId??$?.executionId??``,toolName:a.toolName??``,toolType:a.toolType,description:a.description??`Execute ${a.toolName??`tool`}`,...typeof a.reason==`string`&&a.reason?{reason:a.reason}:{},parameters:a.parameters,...typeof a.toolCallId==`string`&&a.toolCallId?{toolCallId:a.toolCallId}:{}}};b(t)}else if(a.type===`approval_complete`){let e=a.approvalId;if(e){let t={id:`approval-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,variant:`approval`,sequence:v(),approval:{id:e,status:a.decision??`approved`,agentId:$?.agentId??`virtual`,executionId:a.executionId??$?.executionId??``,toolName:``,description:``,resolvedAt:Date.now()}};b(t)}}else if(a.type===`artifact_start`||a.type===`artifact_delta`||a.type===`artifact_update`||a.type===`artifact_complete`){if(a.type===`artifact_start`){let e=a.artifactType,n=String(a.id),s=typeof a.title==`string`?a.title:void 0,c=a.file,l;if(c&&typeof c==`object`&&!Array.isArray(c)&&typeof c.path==`string`&&typeof c.mimeType==`string`&&(l={path:c.path,mimeType:c.mimeType,...typeof c.language==`string`?{language:c.language}:{}}),o({type:`artifact_start`,id:n,artifactType:e,title:s,component:typeof a.component==`string`?a.component:void 0,...l?{file:l}:{}}),z.set(n,{markdown:``,title:s,file:l}),!R.has(n)){R.add(n);let o=t(i.config().features?.artifacts,{artifactType:e,...l?{file:l}:{}}),c=typeof a.component==`string`?a.component:void 0,u={id:`artifact-ref-${n}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v(),rawContent:r(o,{artifactId:n,title:s,artifactType:e,status:`streaming`,...l?{file:l}:{},...c?{component:c}:{}})};L.set(n,u),b(u)}}else if(a.type===`artifact_delta`){let e=String(a.id),t=typeof a.delta==`string`?a.delta:String(a.delta??``);o({type:`artifact_delta`,id:e,artDelta:t});let n=z.get(e);n&&(n.markdown+=t)}else if(a.type===`artifact_update`){let e=a.props&&typeof a.props==`object`&&!Array.isArray(a.props)?a.props:{};o({type:`artifact_update`,id:String(a.id),props:e,component:typeof a.component==`string`?a.component:void 0});let t=z.get(String(a.id));t&&(t.props={...t.props??{},...e})}else if(a.type===`artifact_complete`){let e=String(a.id);o({type:`artifact_complete`,id:e});let t=L.get(e);if(t){t.streaming=!1;try{let n=JSON.parse(t.rawContent??`{}`);if(n.props){n.props.status=`complete`;let t=z.get(e);t?.markdown&&(n.props.markdown=t.markdown),t?.file&&(n.props.file=t.file),n.component===`PersonaArtifactInline`&&t?.props&&Object.keys(t.props).length>0&&(n.props.componentProps=t.props)}t.rawContent=JSON.stringify(n)}catch{}z.delete(e),b(t),L.delete(e)}}}else if(a.type===`error`&&a.recoverable===!1&&a.error!=null&&a.error!==``){let e=typeof a.error==`string`?a.error:a.error?.message==null?`Execution error`:String(a.error.message);o({type:`error`,error:Error(e)});let t=x;t&&t.streaming&&(t.streaming=!1,b(t)),o({type:`status`,status:`idle`})}}}K.length=0};try{for(;;){if(h!==i.streamGeneration())return;f?.throwIfAborted();let{done:e,value:t}=await g.read();if(h!==i.streamGeneration())return;if(f?.throwIfAborted(),e)break;_+=re.decode(t,{stream:!0});let n=_.split(`
|
|
1
|
+
import"./chunk-Bb41bKyp.js";import{i as e}from"./chunk-BAdIgC5d.js";import{i as t,l as n,t as r,u as i}from"./chunk-B_H0l3u2.js";async function a(e,t,n,r){let i={"Content-Type":`application/json`,...e.headers};e.getHeaders&&Object.assign(i,await e.getHeaders());let a={executionId:t.executionId,approvalId:t.approvalId,decision:n,streamResponse:!0},o=(t,n)=>fetch(`${e.clientApiBase()}${t}`,{method:`POST`,headers:i,body:JSON.stringify({...n,...a})}),s=`/v1/agents/${t.agentId}/approve`;if(!e.isClientTokenMode())return o(s);let{sessionId:c}=await e.initSession(),l=await o(`/v1/client/approve`,{sessionId:c,...r?.assistantMessageId?{assistantMessageId:r.assistantMessageId}:{}});if(l.status===404){let e=await l.clone().json().catch(()=>null);if(!e||e.error===`Not Found`)return o(s)}return l}async function o(e,t,n,r){let a=e.isClientTokenMode(),o=a?e.getClientApiUrl(`resume`):`${e.config.apiUrl?.replace(/\/+$/,``)||`https://api.runtype.com`}/resume`,s,c=null;if(a){let t=await e.initSession();s=t.sessionId,t.durableRecovery?.enabled===!0&&(c=await e.readVisitorToken())}let l={"Content-Type":`application/json`,...c?{"X-Visitor-Token":c}:{},...e.headers};e.getHeaders&&Object.assign(l,await e.getHeaders());let u={executionId:t,toolOutputs:n,streamResponse:r?.streamResponse??!0,...r?.after?{after:r.after}:{}};if(s&&(u.sessionId=s,r?.assistantMessageId&&(u.assistantMessageId=r.assistantMessageId)),a&&s){let t=[...i(e.config),...await(await e.getWebMcpBridge())?.snapshotForDispatch()??[]],{response:n,commit:a}=await e.sendWithClientToolsDiff(s,t,t=>{let n={...u,...t};return e.debug&&console.debug(`[AgentWidgetClient] client token resume`,n),fetch(o,{method:`POST`,headers:l,body:JSON.stringify(n),signal:r?.signal})},{emptyMeansReplace:!0});return n.ok&&a(),n}return fetch(o,{method:`POST`,headers:l,body:JSON.stringify(u),signal:r?.signal})}const s=e=>e===`commentary`||e===`partial_answer`||e===`final_answer`?e:void 0;function c(e){let t=e.toLowerCase(),n=t===`text/plain`?`txt`:t===`text/markdown`?`md`:void 0;if(n)return`attachment.${n}`;let r=t.indexOf(`/`);if(r>0){let e=t.slice(r+1).split(`;`)[0]?.trim()??``;if(e&&e!==`octet-stream`&&/^[a-z0-9.+-]+$/i.test(e))return`attachment.${e}`}return`attachment`}const l=e=>/^[{[<]/.test(e);function u(e,t){if(!e)return t;let r=e.trim(),i=t.trim();if(!r)return t;if(!i)return e;let a=l(r);if(!l(i))return e;if(!a||i.startsWith(r))return t;let o=n(e);return n(t)!==null&&o===null?t:e}async function d(e,t,n,r,i,a,o){if(!e.parseSSEEvent)return!1;try{let s=await e.parseSSEEvent(t);if(s===null)return!1;let c=e=>{let t={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`assistant`,sequence:a(),...e!==void 0&&{partId:e}};return r.current=t,i(t),t},l=e=>r.current?r.current:c(e);if(s.text!==void 0){s.partId!==void 0&&o.current!==null&&s.partId!==o.current&&(r.current&&(r.current.streaming=!1,i(r.current)),c(s.partId)),s.partId!==void 0&&(o.current=s.partId);let e=l(s.partId);s.partId!==void 0&&!e.partId&&(e.partId=s.partId),e.content+=s.text,i(e)}return s.done&&(r.current&&(r.current.streaming=!1,i(r.current)),o.current=null,n({type:`status`,status:`idle`})),s.error&&(o.current=null,n({type:`error`,error:Error(s.error)})),!0}catch(e){return typeof console<`u`&&console.error(`[AgentWidget] parseSSEEvent error:`,e),!1}}async function ee(i,a,o,l,ee,f,p,m){let h=i.streamGeneration(),g=a.getReader();i.streamReaders.add(g);let te=!!i.config().backgroundConversations,ne=()=>{te&&g.cancel().catch(()=>{})};f?.addEventListener(`abort`,ne,{once:!0});let re=new TextDecoder,_=``,ie=Date.now(),ae=0,v=()=>ie+ae++,oe=e=>({...e,chunks:e.chunks?[...e.chunks]:void 0}),y=e=>({...e,reasoning:e.reasoning?{...e.reasoning,chunks:[...e.reasoning.chunks]}:void 0,toolCall:e.toolCall?oe(e.toolCall):void 0,tools:e.tools?.map(oe)}),se=e=>{if(e.role!==`assistant`||e.variant)return!0;let t=Array.isArray(e.contentParts)&&e.contentParts.length>0,n=typeof e.rawContent==`string`&&e.rawContent.trim()!==``;return typeof e.content==`string`&&e.content.trim()!==``||t||n||!!e.stopReason},b=e=>{!f?.aborted&&h===i.streamGeneration()&&se(e)&&o({type:`message`,message:y(e)})},x=null,S=null,C={current:null},ce={current:null},w=null,T=``,E=new Map(m?.textPhases),D=/* @__PURE__ */ new Map,O=/* @__PURE__ */ new Map,k=/* @__PURE__ */ new Map,A=/* @__PURE__ */ new Map,j=/* @__PURE__ */ new Map,M=l,N=!1,P=p?.find(e=>e.id===l);P&&(x=y(P),x.streaming=m?.openAssistant??!0,N=!0,w=P.agentMetadata?.textBlockId??null,T=P.rawContent??P.content,S=x,m&&!m.openAssistant&&(x=null)),m&&(w=m.textBlockId,T=m.rawText,m.nestedParents.forEach(([e,t])=>D.set(e,t)),m.nestedRaw.forEach(([e,t])=>k.set(e,t)));for(let e of p??[]){e.variant===`tool`&&e.toolCall?.id&&j.set(e.toolCall.id,y(e)),e.variant===`reasoning`&&e.reasoning?.id&&A.set(e.reasoning.id,y(e));let t=e.agentMetadata?.textBlockId;t&&(O.set(t,e.id===x?.id?x:y(e)),e.agentMetadata?.phase&&E.set(t,e.agentMetadata.phase));let n=e.agentMetadata?.parentToolId;t&&n&&(D.set(t,n),k.set(t,e.rawContent??e.content))}let le=()=>{if(x)return x;let e,t=``,n=w;return!N&&M?(e=M,N=!0,t=ee??``):e=M&&n?`${M}_${n}`:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,x={id:e,role:`assistant`,content:t,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v()},b(x),x},F=(e,t)=>{let n=A.get(e);if(n)return n;let r={id:`reason-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`reasoning`,agentMetadata:{executionId:t},sequence:v(),reasoning:{id:e,status:`streaming`,chunks:[]}};return A.set(e,r),b(r),r},I=/* @__PURE__ */ new Set,L=/* @__PURE__ */ new Map,R=/* @__PURE__ */ new Set;for(let e of p??[])if(e.id.startsWith(`artifact-ref-`)){let t=e.id.slice(13);R.add(t),L.set(t,y(e))}m?.artifactTools.forEach(e=>I.add(e));let z=/* @__PURE__ */ new Map;m?.artifactContent.forEach(([e,t])=>z.set(e,{...t}));let ue=e=>{if(!e)return!1;let t=e.replace(/_+/g,`_`).replace(/^_|_$/g,``);return t===`emit_artifact_markdown`||t===`emit_artifact_component`},B=(e,t,n)=>{let r=j.get(e),i={...r?.agentMetadata,executionId:t??r?.agentMetadata?.executionId,iteration:n??r?.agentMetadata?.iteration??(Y||void 0)};if(r)return r.agentMetadata=i,r;let a={id:`tool-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`tool`,agentMetadata:i,sequence:v(),toolCall:{id:e,status:`pending`}};return j.set(e,a),b(a),a},de=e=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t=Number(e);if(Number.isFinite(t))return t;let n=Date.parse(e);if(!Number.isNaN(n))return n}return Date.now()},V=e=>{if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e)}catch{return String(e)}},H=/* @__PURE__ */ new Map,U=/* @__PURE__ */ new Map,fe=(e,t)=>{let r=V(t),i=u(U.get(e.id),r);e.rawContent=i;let a=H.get(e.id),o=t=>{let n=e.content??``;t.trim()!==``&&(!n.trim()||t.startsWith(n)||t.trimStart().startsWith(n.trim()))&&(e.content=t)},s=()=>{let t=a?.close?.();t instanceof Promise&&t.catch(()=>{}),H.delete(e.id),U.delete(e.id),e.streaming=!1,b(e)};if(!a){o(r),s();return}let c=n(i);if(c!==null&&c.trim()!==``){o(c),s();return}let l=e=>{let t=typeof e==`string`?e:e?.text??null;if(t!==null&&t.trim()!==``)return t;let n=a.getExtractedText();return n!==null&&n.trim()!==``?n:r},d;try{d=a.processChunk(i)}catch{o(r),s();return}d instanceof Promise?d.then(e=>{o(l(e)),s()}).catch(()=>{o(r),s()}):(o(l(d)),s())},W=null,pe=p?.find(e=>e.id===m?.sealedFlowMessageId);pe&&(W=y(pe));let me=(e,t,n)=>{e.rawContent=t,H.has(e.id)||H.set(e.id,i.createStreamParser());let r=H.get(e.id),a=/^[{[]/.test(t.trim());a&&U.set(e.id,t);let o=()=>{e.content+=n,U.delete(e.id),H.delete(e.id),e.rawContent=void 0,b(e)};if(r.__isPlainTextParser===!0){o();return}let s=n=>{let r=typeof n==`string`?n:n?.text??null;r!==null&&r.trim()!==``?(e.content=r,b(e)):!a&&!t.trim().startsWith(`<`)&&o()},c=r.processChunk(t);c instanceof Promise?c.then(s).catch(o):s(c)},G=(e,t)=>{let r=t??e.content;if(r==null||r===``){e.streaming=!1,b(e);return}let i=U.get(e.id)??V(r);e.rawContent=i;let a=H.get(e.id),o=null,s=!1;if(a&&(o=a.getExtractedText(),o===null&&(o=n(i)),o===null)){let t=a.processChunk(i);t instanceof Promise?(s=!0,t.then(t=>{let n=typeof t==`string`?t:t?.text??null;n!==null&&(e.content=n,e.streaming=!1,H.delete(e.id),U.delete(e.id),b(e))}).catch(()=>{})):o=typeof t==`string`?t:t?.text??null}if(!s){o!==null&&o.trim()!==``?e.content=o:U.has(e.id)||(e.content=V(r));let t=H.get(e.id);if(t){let n=t.close?.();n instanceof Promise&&n.catch(()=>{}),H.delete(e.id)}U.delete(e.id),e.streaming=!1,b(e)}},he=(e,t,n,r)=>{let i=O.get(e);if(i)return i;let a={id:`nested-${t}-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v(),...n?{variant:n}:{},...n===`reasoning`?{reasoning:{id:e,status:`streaming`,chunks:[]}}:{},agentMetadata:{parentToolId:t,textBlockId:e,executionId:r,phase:E.get(e)}};return O.set(e,a),b(a),a},K=[],q,J=/* @__PURE__ */ new Map;m?.media.forEach(([e,t])=>J.set(e,{...t,parts:[...t.parts]}));let Y=m?.iteration??0,X=m?.executionKind??`agent`,Z=m?.executionKindResolved??!1,Q=m?.turnId??null,$=null,ge=i.config().iterationDisplay??`separate`;q=()=>{for(let n=0;n<K.length;n++){let a=K[n];if(!Z&&X!==`flow`&&typeof a.stepType==`string`&&(X=`flow`),a.type===`reasoning_start`){let e=typeof a.id==`string`?a.id:null,t=typeof a.parentToolCallId==`string`&&a.parentToolCallId?a.parentToolCallId:null;if(e&&t){D.set(e,t),he(e,t,`reasoning`,a.executionId);continue}let n=a.id,r=F(n,a.executionId);r.reasoning=r.reasoning??{id:n,status:`streaming`,chunks:[]},r.reasoning.startedAt=r.reasoning.startedAt??Date.now(),r.reasoning.completedAt=void 0,r.reasoning.durationMs=void 0,(a.scope===`loop`||a.scope===`turn`)&&(r.reasoning.scope=a.scope),r.streaming=!0,r.reasoning.status=`streaming`,b(r)}else if(a.type===`reasoning_delta`){let e=typeof a.id==`string`?a.id:null;if(e&&D.has(e)&&O.has(e)){let t=O.get(e),n=a.delta;n&&t.reasoning&&(t.reasoning.chunks.push(String(n)),b(t));continue}let t=a.id,n=F(t,a.executionId);n.reasoning=n.reasoning??{id:t,status:`streaming`,chunks:[]},n.reasoning.startedAt=n.reasoning.startedAt??Date.now(),a.delta&&n.reasoning.chunks.push(a.delta),n.reasoning.status=`streaming`,n.streaming=!0,b(n)}else if(a.type===`reasoning_complete`){let e=typeof a.id==`string`?a.id:null;if(e&&D.has(e)&&O.has(e)){let t=O.get(e);if(t.reasoning){let e=typeof a.text==`string`?a.text:``;e&&t.reasoning.chunks.length===0&&t.reasoning.chunks.push(e),t.reasoning.status=`complete`,t.streaming=!1,b(t)}D.delete(e),O.delete(e);continue}let t=a.id,n=typeof a.text==`string`?a.text:``;!A.get(t)&&(n||a.scope===`loop`)&&F(t,a.executionId);let r=A.get(t);if(r?.reasoning){(a.scope===`loop`||a.scope===`turn`)&&(r.reasoning.scope=a.scope),n&&r.reasoning.chunks.length===0&&r.reasoning.chunks.push(n),r.reasoning.status=`complete`,r.reasoning.completedAt=Date.now();let e=r.reasoning.startedAt??Date.now();r.reasoning.durationMs=Math.max(0,(r.reasoning.completedAt??Date.now())-e),r.streaming=!1,b(r)}}else if(a.type===`tool_start`){x&&=(x.streaming=!1,b(x),null),typeof a.iteration==`number`&&(Y=a.iteration);let e=a.toolCallId,t=a.toolName;if(ue(t)){I.add(e);continue}let n=B(e,a.executionId,a.iteration),r=n.toolCall??{id:e,status:`pending`};r.name=t??r.name,r.status=`running`,r.success=void 0,r.error=void 0,r.duration=void 0,a.parameters!==void 0&&(r.args=a.parameters),r.startedAt=r.startedAt??de(a.startedAt),r.completedAt=void 0,r.durationMs=void 0,n.toolCall=r,n.streaming=!0,b(n)}else if(a.type===`tool_output_delta`){let e=a.toolCallId;if(I.has(e))continue;let t=B(e,a.executionId),n=t.toolCall??{id:e,status:`running`};n.startedAt=n.startedAt??Date.now();let r=a.delta;r&&(n.chunks=n.chunks??[],n.chunks.push(String(r))),n.status=`running`,t.toolCall=n,t.streaming=!0,b(t)}else if(a.type===`tool_complete`){let e=a.toolCallId;if(I.has(e)){I.delete(e);continue}let t=B(e,a.executionId,a.iteration),n=t.toolCall??{id:e,status:`running`};n.status=`complete`,a.result!==void 0&&(n.result=a.result),n.name=a.toolName??n.name,n.success=a.success,n.error=a.error,n.completedAt=Date.now();let r=a.executionTime;if(typeof r==`number`)n.durationMs=r,n.duration=r;else{let e=n.startedAt??Date.now();n.durationMs=Math.max(0,(n.completedAt??Date.now())-e)}t.toolCall=n,t.streaming=!1,b(t)}else if(a.type===`await`&&a.toolName){let t=typeof a.toolCallId==`string`&&a.toolCallId.length>0?a.toolCallId:void 0,n=t??a.toolId??`local-${v()}`,r=B(n,a.executionId),i=a.toolName,o=a.origin===`webmcp`&&!e(i)?`webmcp:${i}`:i,s=e(o),c=r.toolCall??{id:n,status:`pending`};c.name=o,c.args=a.parameters,c.status=s?`running`:`complete`,c.chunks=c.chunks??[],c.startedAt=c.startedAt??de(a.awaitedAt),s?(c.completedAt=void 0,c.duration=void 0,c.durationMs=void 0):c.completedAt=c.completedAt??c.startedAt,r.toolCall=c,r.streaming=!1,r.agentMetadata={...r.agentMetadata,executionId:a.executionId??r.agentMetadata?.executionId,awaitingLocalTool:!0,...t?{webMcpToolCallId:t}:{}},b(r)}else if(a.type===`text_start`){let e=typeof a.id==`string`?a.id:null;if(e){let t=s(a.phase);t?E.set(e,t):E.delete(e)}let t=typeof a.parentToolCallId==`string`&&a.parentToolCallId?a.parentToolCallId:null;if(e&&t){D.set(e,t);continue}let n=x;n&&(X===`flow`?(G(n),W=n):(n.streaming=!1,b(n)),x=null),w=e??w,T=``}else if(a.type===`text_delta`){let e=typeof a.id==`string`?a.id:null,t=e?D.get(e):void 0;if(e&&t){let n=typeof a.delta==`string`?a.delta:``,r=(k.get(e)??``)+n;if(k.set(e,r),r.trim()===``)continue;let i=he(e,t,void 0,a.executionId);me(i,r,n);continue}w=e??w;let n=typeof a.delta==`string`?a.delta:``;if(T+=n,X===`flow`&&T.trim()===``)continue;let r=le();r.agentMetadata={textBlockId:w??void 0,phase:E.get(w??``),executionId:a.executionId,iteration:Y,...X===`flow`?{}:{turnId:Q??void 0,agentName:$?.agentName}},w&&O.set(w,r),me(r,T,n),S=r}else if(a.type===`text_complete`){let e=typeof a.id==`string`?a.id:null;e&&E.delete(e);let t=e?O.get(e):x,n=s(a.phase);if(t&&n&&(t.agentMetadata={...t.agentMetadata,providerPhase:n}),e&&D.has(e)){let t=O.get(e);t&&G(t),D.delete(e),k.delete(e),O.delete(e);continue}if(e&&t!==x){t&&(t.streaming=!1,b(t));continue}let r=x;r&&(X===`flow`?(G(r),W=r):((r.content??``)===``&&typeof a.text==`string`&&(r.content=a.text),r.streaming=!1,b(r)),x=null),w=null,T=``}else if(a.type===`step_complete`){if(a.stepType===`tool`)continue;if(a.success===!1){let e=a.error||`Step failed`;o({type:`error`,error:Error(e)});let t=x;t&&t.streaming&&(t.streaming=!1,b(t)),o({type:`status`,status:`idle`});continue}{let e=W;W=null;let t=a.stopReason,n=(a.result&&typeof a.result==`object`?a.result:null)?.response;if(e)t&&(e.stopReason=t),n==null?e.streaming!==!1&&(H.delete(e.id),U.delete(e.id),e.streaming=!1,b(e)):fe(e,n);else{let e=n!=null&&n!==``;if(e||t&&t!==`end_turn`&&t!==`unknown`){let r=le();t&&(r.stopReason=t),e?G(r,n):(r.streaming=!1,b(r))}}continue}}else if(a.type===`execution_start`)X=a.kind===`flow`?`flow`:`agent`,Z=!0,i.config().backgroundConversations&&o({type:`status`,status:`connected`,executionId:a.executionId}),X===`agent`&&($={executionId:a.executionId,agentId:a.agentId??`virtual`,agentName:a.agentName??``});else if(a.type===`turn_start`){let e=typeof a.iteration==`number`?a.iteration:Y;if(e!==Y){if(ge===`separate`&&e>1){let e=x;e&&(e.streaming=!1,b(e),x=null)}Y=e}Q=typeof a.id==`string`?a.id:null,S=null}else if(a.type===`tool_input_delta`){let e=a.toolCallId;if(e){let t=j.get(e);t?.toolCall&&(t.toolCall.chunks=t.toolCall.chunks??[],t.toolCall.chunks.push(a.delta??``),b(t))}}else if(a.type===`tool_input_complete`){if(I.has(a.toolCallId))continue;let e=B(a.toolCallId,a.executionId),t=e.toolCall;t.args=a.parameters,t.name=a.toolName??t.name,b(e)}else if(a.type===`turn_complete`){let e=a.stopReason,t=x??S;if(e&&t!==null){let n=a.id;(!n||t.agentMetadata?.turnId===n)&&(t.stopReason=e,b(t))}Q===a.id&&(Q=null)}else if(a.type===`media_start`){let e=String(a.id);J.set(e,{mediaType:typeof a.mediaType==`string`?a.mediaType:void 0,toolCallId:a.toolCallId,parts:[]})}else if(a.type===`media_delta`){let e=J.get(String(a.id));e&&typeof a.delta==`string`&&e.parts.push(a.delta)}else if(a.type===`media_complete`){let e=String(a.id),t=J.get(e);J.delete(e);let n=(typeof a.mediaType==`string`?a.mediaType:void 0)??t?.mediaType??`application/octet-stream`,r=typeof a.data==`string`?a.data:void 0,i=typeof a.url==`string`?a.url:t&&t.parts.length>0?t.parts.join(``):void 0,o=null;if(r)o={type:`media`,data:r,mediaType:n};else if(i){let e=n.toLowerCase();o={type:e===`image`||e.startsWith(`image/`)?`image-url`:`file-url`,url:i,mediaType:n}}let s=a.toolCallId??t?.toolCallId,l=o?[o]:[],u=[];for(let e of l){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.type==`string`?t.type:void 0,r=typeof t.mediaType==`string`?t.mediaType.toLowerCase():``,i=null,a=``;if(n===`media`){let e=typeof t.data==`string`?t.data:void 0;if(!e)continue;a=r.length>0?r:`application/octet-stream`,i=`data:${a};base64,${e}`}else if(n===`image-url`){let e=typeof t.url==`string`?t.url:void 0;if(!e)continue;a=r,i=e}else if(n===`file-url`){let e=typeof t.url==`string`?t.url:void 0;if(!e)continue;a=r,i=e}else continue;if(i){if(n===`image-url`||a.startsWith(`image/`))u.push({type:`image`,image:i,...a.includes(`/`)?{mimeType:a}:{}});else if(a.startsWith(`audio/`))u.push({type:`audio`,audio:i,mimeType:a});else if(a.startsWith(`video/`))u.push({type:`video`,video:i,mimeType:a});else{let e=a||`application/octet-stream`;u.push({type:`file`,data:i,mimeType:e,filename:c(e)})}}}if(u.length>0){let e=v(),t=s,n={id:`agent-media-${typeof t==`string`&&t.length>0?`${t}-${e}`:String(e)}`,role:`assistant`,content:``,contentParts:u,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,sequence:e,agentMetadata:{executionId:a.executionId,iteration:Y}};b(n);let r=x;r&&(r.streaming=!1,b(r)),x=null,C.current=null}}else if(a.type===`execution_complete`){let e=x;e&&(a.kind===`flow`&&e.streaming!==!1?G(e):(e.streaming=!1,b(e)),x=null),w=null,T=``,W=null,o({type:`status`,status:a.success===!1?`error`:`idle`,terminal:!0})}else if(a.type===`execution_error`){let e=typeof a.error==`string`?a.error:a.error?.message??`Execution error`;o({type:`error`,error:Error(e)})}else if(a.type!==`ping`){if(a.type===`approval_start`){let e=a.approvalId??`approval-${v()}`,t={id:`approval-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,variant:`approval`,sequence:v(),approval:{id:e,status:`pending`,agentId:$?.agentId??`virtual`,executionId:a.executionId??$?.executionId??``,toolName:a.toolName??``,toolType:a.toolType,description:a.description??`Execute ${a.toolName??`tool`}`,...typeof a.reason==`string`&&a.reason?{reason:a.reason}:{},parameters:a.parameters,...typeof a.toolCallId==`string`&&a.toolCallId?{toolCallId:a.toolCallId}:{}}};b(t)}else if(a.type===`approval_complete`){let e=a.approvalId;if(e){let t={id:`approval-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,variant:`approval`,sequence:v(),approval:{id:e,status:a.decision??`approved`,agentId:$?.agentId??`virtual`,executionId:a.executionId??$?.executionId??``,toolName:``,description:``,resolvedAt:Date.now()}};b(t)}}else if(a.type===`artifact_start`||a.type===`artifact_delta`||a.type===`artifact_update`||a.type===`artifact_complete`){if(a.type===`artifact_start`){let e=a.artifactType,n=String(a.id),s=typeof a.title==`string`?a.title:void 0,c=a.file,l;if(c&&typeof c==`object`&&!Array.isArray(c)&&typeof c.path==`string`&&typeof c.mimeType==`string`&&(l={path:c.path,mimeType:c.mimeType,...typeof c.language==`string`?{language:c.language}:{}}),o({type:`artifact_start`,id:n,artifactType:e,title:s,component:typeof a.component==`string`?a.component:void 0,...l?{file:l}:{}}),z.set(n,{markdown:``,title:s,file:l}),!R.has(n)){R.add(n);let o=t(i.config().features?.artifacts,{artifactType:e,...l?{file:l}:{}}),c=typeof a.component==`string`?a.component:void 0,u={id:`artifact-ref-${n}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v(),rawContent:r(o,{artifactId:n,title:s,artifactType:e,status:`streaming`,...l?{file:l}:{},...c?{component:c}:{}})};L.set(n,u),b(u)}}else if(a.type===`artifact_delta`){let e=String(a.id),t=typeof a.delta==`string`?a.delta:String(a.delta??``);o({type:`artifact_delta`,id:e,artDelta:t});let n=z.get(e);n&&(n.markdown+=t)}else if(a.type===`artifact_update`){let e=a.props&&typeof a.props==`object`&&!Array.isArray(a.props)?a.props:{};o({type:`artifact_update`,id:String(a.id),props:e,component:typeof a.component==`string`?a.component:void 0});let t=z.get(String(a.id));t&&(t.props={...t.props??{},...e})}else if(a.type===`artifact_complete`){let e=String(a.id);o({type:`artifact_complete`,id:e});let t=L.get(e);if(t){t.streaming=!1;try{let n=JSON.parse(t.rawContent??`{}`);if(n.props){n.props.status=`complete`;let t=z.get(e);t?.markdown&&(n.props.markdown=t.markdown),t?.file&&(n.props.file=t.file),n.component===`PersonaArtifactInline`&&t?.props&&Object.keys(t.props).length>0&&(n.props.componentProps=t.props)}t.rawContent=JSON.stringify(n)}catch{}z.delete(e),b(t),L.delete(e)}}}else if(a.type===`error`&&a.recoverable===!1&&a.error!=null&&a.error!==``){let e=typeof a.error==`string`?a.error:a.error?.message==null?`Execution error`:String(a.error.message);o({type:`error`,error:Error(e)});let t=x;t&&t.streaming&&(t.streaming=!1,b(t)),o({type:`status`,status:`idle`})}}}K.length=0};try{for(;;){if(h!==i.streamGeneration())return;f?.throwIfAborted();let{done:e,value:t}=await g.read();if(h!==i.streamGeneration())return;if(f?.throwIfAborted(),e)break;_+=re.decode(t,{stream:!0});let n=_.split(`
|
|
2
2
|
|
|
3
3
|
`);_=n.pop()??``;for(let e of n){if(h!==i.streamGeneration())return;f?.throwIfAborted();let t=e.split(`
|
|
4
4
|
`),n=`message`,r=``,a=null;for(let e of t)e.startsWith(`event:`)?n=e.replace(`event:`,``).trim():e.startsWith(`data:`)?r+=e.replace(`data:`,``).trim():e.startsWith(`id:`)&&(a=e.slice(3).trim());let s=()=>{a!==null&&a!==``&&o({type:`cursor`,id:a,...i.config().backgroundConversations?{checkpoint:{textBlockId:w,openAssistant:x!==null,sealedFlowMessageId:W?.id??null,rawText:T,executionKind:X,executionKindResolved:Z,turnId:Q,iteration:Y,textPhases:[...E],nestedParents:[...D],nestedRaw:[...k],media:[...J].map(([e,t])=>[e,{...t,parts:[...t.parts]}]),artifactContent:[...z].map(([e,t])=>[e,{...t,props:t.props?{...t.props}:void 0}]),artifactTools:[...I]}}:{}})};if(!r){s();continue}let c;try{c=JSON.parse(r)}catch(e){o({type:`error`,error:e instanceof Error?e:/* @__PURE__ */ Error(`Failed to parse chat stream payload`)});continue}let l=typeof c==`object`&&c&&!Array.isArray(c)?c:null,u=n===`message`?typeof l?.type==`string`?l.type:`message`:n;if(i.onSSEEvent?.(u,c),i.parseSSEEvent){C.current=x;let e=await d(i,c,o,C,b,v,ce);if(h!==i.streamGeneration())return;if(f?.throwIfAborted(),C.current&&C.current!==x&&(x=C.current),e){s();continue}}l&&(K.push({...l,type:u}),q()),s()}}q()}finally{i.streamReaders.delete(g),f?.removeEventListener(`abort`,ne),g.releaseLock()}}export{u as preferFinalStructuredContent,a as resolveApproval,o as resumeFlow,ee as streamResponse};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CHAwCqpk.js";import{t}from"./chunk-D5BxWOFB.js";import{ARR as n,OBJ as r,STR as i,parse as a}from"partial-json";const o=`ask_user_question`,s=`data-persona-ask-sheet-for`,c=`Type your own answer here`,l=`Send`,u=`data-ask-current-index`,d=`data-ask-question-count`,f=`data-ask-answers`,p=`data-ask-grouped`,m=e=>e.layout===`pills`?`pills`:`rows`,h=e=>e.getAttribute(`data-ask-layout`)===`pills`?`pills`:`rows`;let g=!1;const _=e=>e.replace(/["\\]/g,`\\$&`),v=e=>e.variant===`tool`&&!!e.toolCall&&e.toolCall.name===`ask_user_question`,y=e=>e?.features?.askUserQuestion??{},b=e=>{let t=e.toolCall;if(!t)return{payload:null,complete:!1};let o=t.status===`complete`;if(t.args&&typeof t.args==`object`)return{payload:t.args,complete:o};let s=t.chunks;if(!s||s.length===0)return{payload:null,complete:o};try{let e=s.join(``),t=a(e,i|r|n);if(t&&typeof t==`object`)return{payload:t,complete:o}}catch{}return{payload:null,complete:o}},x=e=>{let t=Array.isArray(e?.questions)?e.questions:[];return t.length>8&&!g&&(g=!0,typeof console<`u`&&console.warn(`[AgentWidget] ask_user_question received ${t.length} questions; truncating to 8.`)),t.slice(0,8)},S=e=>x(e)[0]??null,C=(e,t)=>x(e)[t]??null,w={sheetBackground:`--persona-ask-sheet-bg`,sheetBorder:`--persona-ask-sheet-border`,sheetShadow:`--persona-ask-sheet-shadow`,pillBackground:`--persona-ask-pill-bg`,pillBackgroundSelected:`--persona-ask-pill-bg-selected`,pillTextColor:`--persona-ask-pill-fg`,pillTextColorSelected:`--persona-ask-pill-fg-selected`,pillBorderRadius:`--persona-ask-pill-radius`,customInputBackground:`--persona-ask-input-bg`},T=(t,n)=>{Object.entries(w).forEach(([r,i])=>{let a=e(n,`features.askUserQuestion.styles.${r}`);typeof a==`string`&&a?t.style.setProperty(i,a):t.style.removeProperty(i)})},E=(e,n,r)=>{if(e!==`rows`)return null;let i=t(`span`,`persona-ask-row-affordance`);if(i.setAttribute(`aria-hidden`,`true`),n){let e=t(`span`,`persona-ask-row-check`);i.appendChild(e)}else{let e=t(`span`,`persona-ask-row-badge`);e.textContent=String(r+1),i.appendChild(e)}return i},D=(e,n,r,i)=>{let a=t(`button`,r===`rows`?`persona-ask-pill persona-ask-row persona-pointer-events-auto`:`persona-ask-pill persona-pointer-events-auto`);if(a.type=`button`,a.setAttribute(`role`,i?`checkbox`:`button`),a.setAttribute(`aria-pressed`,`false`),a.setAttribute(`data-ask-user-action`,`pick`),a.setAttribute(`data-option-index`,String(n)),a.setAttribute(`data-option-label`,e.label),r===`rows`){let o=t(`span`,`persona-ask-row-content`),s=t(`span`,`persona-ask-row-label`);if(s.textContent=e.label,o.appendChild(s),e.description){let n=t(`span`,`persona-ask-row-description`);n.textContent=e.description,o.appendChild(n)}a.appendChild(o);let c=E(r,i,n);c&&a.appendChild(c)}else a.textContent=e.label,e.description&&(a.title=e.description);return a},O=e=>{let n=t(`span`,e===`rows`?`persona-ask-pill persona-ask-row persona-ask-pill-skeleton persona-pointer-events-none`:`persona-ask-pill persona-ask-pill-skeleton persona-pointer-events-none`);return n.setAttribute(`aria-hidden`,`true`),n},k=(e,n,r,i)=>{let a=t(`div`,i===`rows`?`persona-ask-pills persona-ask-pills--rows persona-flex persona-flex-col persona-gap-2`:`persona-ask-pills persona-flex persona-flex-wrap persona-gap-2`);a.setAttribute(`role`,`group`),a.setAttribute(`data-ask-pill-list`,`true`);let o=!!e?.multiSelect,s=(Array.isArray(e?.options)?e.options:[]).filter(e=>e&&typeof e.label==`string`&&e.label.length>0);if(s.length===0&&!r){for(let e=0;e<3;e++)a.appendChild(O(i));return a}if(s.forEach((e,t)=>{a.appendChild(D(e,t,i,o))}),e?.allowFreeText!==!1){let e=i===`rows`?`Other`:`Other…`;if(i===`rows`){let r=t(`div`,`persona-ask-pill persona-ask-row persona-ask-row--other persona-ask-pill-custom persona-pointer-events-auto`);r.setAttribute(`data-ask-user-action`,`focus-free-text`),r.setAttribute(`data-option-index`,String(s.length)),r.setAttribute(`data-ask-other-row`,`true`);let l=t(`span`,`persona-ask-row-content`),u=document.createElement(`input`);u.type=`text`,u.className=`persona-ask-row-input persona-flex-1 persona-pointer-events-auto`,u.placeholder=n.freeTextPlaceholder??c,u.setAttribute(`data-ask-free-text-input`,`true`),u.setAttribute(`aria-label`,n.freeTextLabel??e),l.appendChild(u),r.appendChild(l);let d=E(i,o,s.length);d&&r.appendChild(d),a.appendChild(r)}else{let r=t(`button`,`persona-ask-pill persona-ask-pill-custom persona-pointer-events-auto`);r.type=`button`,r.setAttribute(`data-ask-user-action`,`open-free-text`),r.textContent=n.freeTextLabel??e,a.appendChild(r)}}return a},A=(e,n)=>{let r=t(`div`,n===`rows`?`persona-ask-free-text persona-ask-free-text--rows persona-flex persona-gap-2 persona-mt-2`:`persona-ask-free-text persona-hidden persona-flex persona-gap-2 persona-mt-2`);r.setAttribute(`data-ask-free-text-row`,`true`);let i=document.createElement(`input`);if(i.type=`text`,i.className=`persona-ask-free-text-input persona-flex-1 persona-pointer-events-auto`,i.placeholder=e.freeTextPlaceholder??c,i.setAttribute(`data-ask-free-text-input`,`true`),r.appendChild(i),n!==`rows`){let n=t(`button`,`persona-ask-free-text-submit persona-pointer-events-auto`);n.type=`button`,n.textContent=e.submitLabel??l,n.setAttribute(`data-ask-user-action`,`submit-free-text`),r.appendChild(n)}return r},j=e=>{let n=t(`div`,`persona-ask-multi-actions persona-flex persona-justify-end persona-mt-2`);n.setAttribute(`data-ask-multi-actions`,`true`);let r=t(`button`,`persona-ask-multi-submit persona-pointer-events-auto`);return r.type=`button`,r.textContent=e.submitLabel??l,r.setAttribute(`data-ask-user-action`,`submit-multi`),r.disabled=!0,n.appendChild(r),n},M=(e,n,r)=>{let i=t(`div`,`persona-ask-nav persona-flex persona-justify-between persona-items-center persona-gap-2 persona-mt-2`);i.setAttribute(`data-ask-nav-row`,`true`);let a=t(`button`,`persona-ask-nav-back persona-pointer-events-auto`);a.type=`button`,a.textContent=r.backLabel??`Back`,a.setAttribute(`data-ask-user-action`,`back`),a.disabled=e===0,i.appendChild(a);let o=t(`div`,`persona-ask-nav-right persona-flex persona-items-center persona-gap-2`),s=t(`button`,`persona-ask-nav-skip persona-pointer-events-auto`);s.type=`button`,s.textContent=r.skipLabel??`Skip`,s.setAttribute(`data-ask-user-action`,`skip`),o.appendChild(s);let c=t(`button`,`persona-ask-nav-next persona-pointer-events-auto`);c.type=`button`;let l=e===n-1;return c.textContent=l?r.submitAllLabel??`Submit all`:r.nextLabel??`Next`,c.setAttribute(`data-ask-user-action`,l?`submit-all`:`next`),c.disabled=!0,o.appendChild(c),i.appendChild(o),i},N=e=>{let t=e.getAttribute(f);if(!t)return{};try{let e=JSON.parse(t);return e&&typeof e==`object`?e:{}}catch{return{}}},P=(e,t)=>{e.setAttribute(f,JSON.stringify(t))},F=e=>{let t=Number(e.getAttribute(`data-ask-current-index`)??`0`);return Number.isFinite(t)?Math.max(0,Math.floor(t)):0},I=(e,t)=>{e.setAttribute(u,String(Math.max(0,Math.floor(t))))},L=e=>{let t=Number(e.getAttribute(`data-ask-question-count`)??`1`);return Number.isFinite(t)?Math.max(1,Math.floor(t)):1},R=e=>e.getAttribute(p)===`true`,z=(e,t)=>{let n=e.agentMetadata?.askUserQuestionAnswers;if(!n||typeof n!=`object`)return{};let r={};return t.forEach((e,t)=>{let i=typeof e?.question==`string`?e.question:``;if(i&&Object.prototype.hasOwnProperty.call(n,i)){let e=n[i];(typeof e==`string`||Array.isArray(e))&&(r[t]=e)}}),r},B=(e,t)=>{let n=e.agentMetadata?.askUserQuestionIndex;return typeof n!=`number`||!Number.isFinite(n)?0:Math.max(0,Math.min(t-1,Math.floor(n)))},V=(e,t)=>{let{payload:n}=b(t),r=x(n),i=N(e),a={},o=/* @__PURE__ */ new Set;return r.forEach((e,t)=>{let n=typeof e?.question==`string`?e.question:``;n&&(o.has(n)&&typeof console<`u`&&console.warn(`[AgentWidget] ask_user_question has duplicate question text "${n}"; later answer wins.`),o.add(n),Object.prototype.hasOwnProperty.call(i,t)&&(a[n]=i[t]))}),a},H=e=>{let t=N(e)[F(e)],n=/* @__PURE__ */ new Set;typeof t==`string`?n.add(t):Array.isArray(t)&&t.forEach(e=>n.add(e));let r=e.querySelectorAll(`[data-ask-user-action="pick"][data-option-label]`);r.forEach(e=>{let t=e.getAttribute(`data-option-label`)??``,r=n.has(t);e.setAttribute(`aria-pressed`,r?`true`:`false`),e.classList.toggle(`persona-ask-pill-selected`,r)});let i=new Set(Array.from(r).map(e=>e.getAttribute(`data-option-label`)??``)),a=e.querySelector(`[data-ask-free-text-input="true"]`);a&&(typeof t==`string`&&t.length>0&&!i.has(t)?(a.value=t,a.closest(`[data-ask-free-text-row="true"]`)?.classList.remove(`persona-hidden`)):a.value=``)},U=e=>{if(!R(e))return;let t=N(e)[F(e)],n=typeof t==`string`&&t.length>0||Array.isArray(t)&&t.length>0,r=e.querySelector(`[data-ask-user-action="next"], [data-ask-user-action="submit-all"]`);r&&(r.disabled=!n);let i=e.querySelector(`[data-ask-user-action="submit-multi"]`);i&&(i.disabled=Array.from(e.querySelectorAll(`[aria-pressed="true"][data-option-label]`)).length===0)},W=(e,t,n)=>{let r=y(n),i=h(e),{payload:a,complete:o}=b(t),s=R(e),c=F(e),l=L(e),u=s?C(a,c):S(a),d=!!u?.multiSelect,f=e.querySelector(`[data-ask-step-inline="true"]`);f&&(f.textContent=s?`${c+1}/${l}`:``);let p=e.querySelector(`[data-ask-stepper="true"]`);p&&p.remove();let m=e.querySelector(`[data-ask-question="true"]`);if(m){let e=typeof u?.question==`string`?u.question:``;m.textContent=e,m.classList.toggle(`persona-ask-question-skeleton`,!e&&!o)}let g=e.querySelector(`[data-ask-pill-list="true"]`);if(g){let e=k(u,r,o,i);g.replaceWith(e)}if(i!==`rows`){let t=e.querySelector(`[data-ask-free-text-row="true"]`);t&&t.replaceWith(A(r,i))}let _=e.querySelector(`[data-ask-multi-actions="true"]`);!s&&d&&!_?e.appendChild(j(r)):(!d||s)&&_&&_.remove(),e.setAttribute(`data-multi-select`,d?`true`:`false`);let v=e.querySelector(`[data-ask-nav-row="true"]`);if(s){let t=M(c,l,r);v?v.replaceWith(t):e.appendChild(t)}else v&&v.remove();H(e),U(e)},G=(e,n,r)=>{let i=y(n),a=m(i),o=e.toolCall.id,c=x(r),l=Math.max(1,c.length),f=l>1,h=z(e,c),g=f?B(e,l):0,_=t(`div`,[`persona-ask-sheet`,`persona-ask-sheet--${a}`,`persona-pointer-events-auto`,`persona-ask-sheet-enter`].join(` `));_.setAttribute(s,o),_.setAttribute(`data-tool-call-id`,o),_.setAttribute(`data-message-id`,e.id),_.setAttribute(d,String(l)),_.setAttribute(u,String(g)),_.setAttribute(p,f?`true`:`false`),_.setAttribute(`data-ask-layout`,a),P(_,h),_.setAttribute(`role`,`group`),_.setAttribute(`aria-label`,`Suggested answers`),i.slideInMs!==void 0&&_.style.setProperty(`--persona-ask-sheet-duration`,`${i.slideInMs}ms`),T(_,n);let v=t(`div`,`persona-ask-sheet-header persona-flex persona-items-center persona-gap-3`),b=t(`div`,`persona-ask-sheet-question persona-flex-1`);b.setAttribute(`data-ask-question`,`true`),b.textContent=``,v.appendChild(b);let S=t(`span`,`persona-ask-sheet-step-inline`);S.setAttribute(`data-ask-step-inline`,`true`),S.textContent=``,v.appendChild(S),_.appendChild(v);let C=t(`div`,a===`rows`?`persona-ask-pills persona-ask-pills--rows persona-flex persona-flex-col persona-gap-2`:`persona-ask-pills persona-flex persona-flex-wrap persona-gap-2`);return C.setAttribute(`data-ask-pill-list`,`true`),C.setAttribute(`role`,`group`),_.appendChild(C),a!==`rows`&&_.appendChild(A(i,a)),W(_,e,n),requestAnimationFrame(()=>{requestAnimationFrame(()=>_.classList.remove(`persona-ask-sheet-enter`))}),_},K=(e,t,n)=>{T(e,n);let{payload:r}=b(t),i=Math.max(1,x(r).length);i>L(e)&&(e.setAttribute(d,String(i)),i>1&&!R(e)&&e.setAttribute(p,`true`)),W(e,t,n)},q=(e,t,n)=>{if(!n||!v(e)||y(t).enabled===!1)return;let r=e.toolCall.id;n.querySelectorAll(`[${s}]`).forEach(e=>{e.getAttribute(s)!==r&&e.remove()});let i=n.querySelector(`[${s}="${_(r)}"]`);if(i){K(i,e,t);return}let{payload:a}=b(e),o=G(e,t,a);n.appendChild(o)},J=(e,t)=>{if(!e)return;let n=t?`[${s}="${_(t)}"]`:`[${s}]`;e.querySelectorAll(n).forEach(e=>{e.classList.add(`persona-ask-sheet-leave`);let t=Number.parseInt(getComputedStyle(e).getPropertyValue(`--persona-ask-sheet-duration`)||`180`,10);setTimeout(()=>e.remove(),Number.isFinite(t)?t:180)})},Y=e=>Array.from(e.querySelectorAll(`[aria-pressed="true"][data-option-label]`)).map(e=>e.getAttribute(`data-option-label`)).filter(e=>typeof e==`string`&&e.length>0),X=(e,t)=>{let n=N(e),r=F(e);typeof t==`string`&&t.length===0||Array.isArray(t)&&t.length===0?delete n[r]:n[r]=t,P(e,n),H(e),U(e)},Z=(e,t,n,r)=>{let i=L(e),a=Math.max(0,Math.min(i-1,r));I(e,a),W(e,t,n)};export{L as a,R as c,N as d,J as f,F as i,Z as l,V as n,Y as o,X as p,q as r,v as s,o as t,b as u};
|
|
1
|
+
import{r as e}from"./chunk-CdpVP6LZ.js";import{t}from"./chunk-D5BxWOFB.js";import{ARR as n,OBJ as r,STR as i,parse as a}from"partial-json";const o=`ask_user_question`,s=`data-persona-ask-sheet-for`,c=`Type your own answer here`,l=`Send`,u=`data-ask-current-index`,d=`data-ask-question-count`,f=`data-ask-answers`,p=`data-ask-grouped`,m=e=>e.layout===`pills`?`pills`:`rows`,h=e=>e.getAttribute(`data-ask-layout`)===`pills`?`pills`:`rows`;let g=!1;const _=e=>e.replace(/["\\]/g,`\\$&`),v=e=>e.variant===`tool`&&!!e.toolCall&&e.toolCall.name===`ask_user_question`,y=e=>e?.features?.askUserQuestion??{},b=e=>{let t=e.toolCall;if(!t)return{payload:null,complete:!1};let o=t.status===`complete`;if(t.args&&typeof t.args==`object`)return{payload:t.args,complete:o};let s=t.chunks;if(!s||s.length===0)return{payload:null,complete:o};try{let e=s.join(``),t=a(e,i|r|n);if(t&&typeof t==`object`)return{payload:t,complete:o}}catch{}return{payload:null,complete:o}},x=e=>{let t=Array.isArray(e?.questions)?e.questions:[];return t.length>8&&!g&&(g=!0,typeof console<`u`&&console.warn(`[AgentWidget] ask_user_question received ${t.length} questions; truncating to 8.`)),t.slice(0,8)},S=e=>x(e)[0]??null,C=(e,t)=>x(e)[t]??null,w={sheetBackground:`--persona-ask-sheet-bg`,sheetBorder:`--persona-ask-sheet-border`,sheetShadow:`--persona-ask-sheet-shadow`,pillBackground:`--persona-ask-pill-bg`,pillBackgroundSelected:`--persona-ask-pill-bg-selected`,pillTextColor:`--persona-ask-pill-fg`,pillTextColorSelected:`--persona-ask-pill-fg-selected`,pillBorderRadius:`--persona-ask-pill-radius`,customInputBackground:`--persona-ask-input-bg`},T=(t,n)=>{Object.entries(w).forEach(([r,i])=>{let a=e(n,`features.askUserQuestion.styles.${r}`);typeof a==`string`&&a?t.style.setProperty(i,a):t.style.removeProperty(i)})},E=(e,n,r)=>{if(e!==`rows`)return null;let i=t(`span`,`persona-ask-row-affordance`);if(i.setAttribute(`aria-hidden`,`true`),n){let e=t(`span`,`persona-ask-row-check`);i.appendChild(e)}else{let e=t(`span`,`persona-ask-row-badge`);e.textContent=String(r+1),i.appendChild(e)}return i},D=(e,n,r,i)=>{let a=t(`button`,r===`rows`?`persona-ask-pill persona-ask-row persona-pointer-events-auto`:`persona-ask-pill persona-pointer-events-auto`);if(a.type=`button`,a.setAttribute(`role`,i?`checkbox`:`button`),a.setAttribute(`aria-pressed`,`false`),a.setAttribute(`data-ask-user-action`,`pick`),a.setAttribute(`data-option-index`,String(n)),a.setAttribute(`data-option-label`,e.label),r===`rows`){let o=t(`span`,`persona-ask-row-content`),s=t(`span`,`persona-ask-row-label`);if(s.textContent=e.label,o.appendChild(s),e.description){let n=t(`span`,`persona-ask-row-description`);n.textContent=e.description,o.appendChild(n)}a.appendChild(o);let c=E(r,i,n);c&&a.appendChild(c)}else a.textContent=e.label,e.description&&(a.title=e.description);return a},O=e=>{let n=t(`span`,e===`rows`?`persona-ask-pill persona-ask-row persona-ask-pill-skeleton persona-pointer-events-none`:`persona-ask-pill persona-ask-pill-skeleton persona-pointer-events-none`);return n.setAttribute(`aria-hidden`,`true`),n},k=(e,n,r,i)=>{let a=t(`div`,i===`rows`?`persona-ask-pills persona-ask-pills--rows persona-flex persona-flex-col persona-gap-2`:`persona-ask-pills persona-flex persona-flex-wrap persona-gap-2`);a.setAttribute(`role`,`group`),a.setAttribute(`data-ask-pill-list`,`true`);let o=!!e?.multiSelect,s=(Array.isArray(e?.options)?e.options:[]).filter(e=>e&&typeof e.label==`string`&&e.label.length>0);if(s.length===0&&!r){for(let e=0;e<3;e++)a.appendChild(O(i));return a}if(s.forEach((e,t)=>{a.appendChild(D(e,t,i,o))}),e?.allowFreeText!==!1){let e=i===`rows`?`Other`:`Other…`;if(i===`rows`){let r=t(`div`,`persona-ask-pill persona-ask-row persona-ask-row--other persona-ask-pill-custom persona-pointer-events-auto`);r.setAttribute(`data-ask-user-action`,`focus-free-text`),r.setAttribute(`data-option-index`,String(s.length)),r.setAttribute(`data-ask-other-row`,`true`);let l=t(`span`,`persona-ask-row-content`),u=document.createElement(`input`);u.type=`text`,u.className=`persona-ask-row-input persona-flex-1 persona-pointer-events-auto`,u.placeholder=n.freeTextPlaceholder??c,u.setAttribute(`data-ask-free-text-input`,`true`),u.setAttribute(`aria-label`,n.freeTextLabel??e),l.appendChild(u),r.appendChild(l);let d=E(i,o,s.length);d&&r.appendChild(d),a.appendChild(r)}else{let r=t(`button`,`persona-ask-pill persona-ask-pill-custom persona-pointer-events-auto`);r.type=`button`,r.setAttribute(`data-ask-user-action`,`open-free-text`),r.textContent=n.freeTextLabel??e,a.appendChild(r)}}return a},A=(e,n)=>{let r=t(`div`,n===`rows`?`persona-ask-free-text persona-ask-free-text--rows persona-flex persona-gap-2 persona-mt-2`:`persona-ask-free-text persona-hidden persona-flex persona-gap-2 persona-mt-2`);r.setAttribute(`data-ask-free-text-row`,`true`);let i=document.createElement(`input`);if(i.type=`text`,i.className=`persona-ask-free-text-input persona-flex-1 persona-pointer-events-auto`,i.placeholder=e.freeTextPlaceholder??c,i.setAttribute(`data-ask-free-text-input`,`true`),r.appendChild(i),n!==`rows`){let n=t(`button`,`persona-ask-free-text-submit persona-pointer-events-auto`);n.type=`button`,n.textContent=e.submitLabel??l,n.setAttribute(`data-ask-user-action`,`submit-free-text`),r.appendChild(n)}return r},j=e=>{let n=t(`div`,`persona-ask-multi-actions persona-flex persona-justify-end persona-mt-2`);n.setAttribute(`data-ask-multi-actions`,`true`);let r=t(`button`,`persona-ask-multi-submit persona-pointer-events-auto`);return r.type=`button`,r.textContent=e.submitLabel??l,r.setAttribute(`data-ask-user-action`,`submit-multi`),r.disabled=!0,n.appendChild(r),n},M=(e,n,r)=>{let i=t(`div`,`persona-ask-nav persona-flex persona-justify-between persona-items-center persona-gap-2 persona-mt-2`);i.setAttribute(`data-ask-nav-row`,`true`);let a=t(`button`,`persona-ask-nav-back persona-pointer-events-auto`);a.type=`button`,a.textContent=r.backLabel??`Back`,a.setAttribute(`data-ask-user-action`,`back`),a.disabled=e===0,i.appendChild(a);let o=t(`div`,`persona-ask-nav-right persona-flex persona-items-center persona-gap-2`),s=t(`button`,`persona-ask-nav-skip persona-pointer-events-auto`);s.type=`button`,s.textContent=r.skipLabel??`Skip`,s.setAttribute(`data-ask-user-action`,`skip`),o.appendChild(s);let c=t(`button`,`persona-ask-nav-next persona-pointer-events-auto`);c.type=`button`;let l=e===n-1;return c.textContent=l?r.submitAllLabel??`Submit all`:r.nextLabel??`Next`,c.setAttribute(`data-ask-user-action`,l?`submit-all`:`next`),c.disabled=!0,o.appendChild(c),i.appendChild(o),i},N=e=>{let t=e.getAttribute(f);if(!t)return{};try{let e=JSON.parse(t);return e&&typeof e==`object`?e:{}}catch{return{}}},P=(e,t)=>{e.setAttribute(f,JSON.stringify(t))},F=e=>{let t=Number(e.getAttribute(`data-ask-current-index`)??`0`);return Number.isFinite(t)?Math.max(0,Math.floor(t)):0},I=(e,t)=>{e.setAttribute(u,String(Math.max(0,Math.floor(t))))},L=e=>{let t=Number(e.getAttribute(`data-ask-question-count`)??`1`);return Number.isFinite(t)?Math.max(1,Math.floor(t)):1},R=e=>e.getAttribute(p)===`true`,z=(e,t)=>{let n=e.agentMetadata?.askUserQuestionAnswers;if(!n||typeof n!=`object`)return{};let r={};return t.forEach((e,t)=>{let i=typeof e?.question==`string`?e.question:``;if(i&&Object.prototype.hasOwnProperty.call(n,i)){let e=n[i];(typeof e==`string`||Array.isArray(e))&&(r[t]=e)}}),r},B=(e,t)=>{let n=e.agentMetadata?.askUserQuestionIndex;return typeof n!=`number`||!Number.isFinite(n)?0:Math.max(0,Math.min(t-1,Math.floor(n)))},V=(e,t)=>{let{payload:n}=b(t),r=x(n),i=N(e),a={},o=/* @__PURE__ */ new Set;return r.forEach((e,t)=>{let n=typeof e?.question==`string`?e.question:``;n&&(o.has(n)&&typeof console<`u`&&console.warn(`[AgentWidget] ask_user_question has duplicate question text "${n}"; later answer wins.`),o.add(n),Object.prototype.hasOwnProperty.call(i,t)&&(a[n]=i[t]))}),a},H=e=>{let t=N(e)[F(e)],n=/* @__PURE__ */ new Set;typeof t==`string`?n.add(t):Array.isArray(t)&&t.forEach(e=>n.add(e));let r=e.querySelectorAll(`[data-ask-user-action="pick"][data-option-label]`);r.forEach(e=>{let t=e.getAttribute(`data-option-label`)??``,r=n.has(t);e.setAttribute(`aria-pressed`,r?`true`:`false`),e.classList.toggle(`persona-ask-pill-selected`,r)});let i=new Set(Array.from(r).map(e=>e.getAttribute(`data-option-label`)??``)),a=e.querySelector(`[data-ask-free-text-input="true"]`);a&&(typeof t==`string`&&t.length>0&&!i.has(t)?(a.value=t,a.closest(`[data-ask-free-text-row="true"]`)?.classList.remove(`persona-hidden`)):a.value=``)},U=e=>{if(!R(e))return;let t=N(e)[F(e)],n=typeof t==`string`&&t.length>0||Array.isArray(t)&&t.length>0,r=e.querySelector(`[data-ask-user-action="next"], [data-ask-user-action="submit-all"]`);r&&(r.disabled=!n);let i=e.querySelector(`[data-ask-user-action="submit-multi"]`);i&&(i.disabled=Array.from(e.querySelectorAll(`[aria-pressed="true"][data-option-label]`)).length===0)},W=(e,t,n)=>{let r=y(n),i=h(e),{payload:a,complete:o}=b(t),s=R(e),c=F(e),l=L(e),u=s?C(a,c):S(a),d=!!u?.multiSelect,f=e.querySelector(`[data-ask-step-inline="true"]`);f&&(f.textContent=s?`${c+1}/${l}`:``);let p=e.querySelector(`[data-ask-stepper="true"]`);p&&p.remove();let m=e.querySelector(`[data-ask-question="true"]`);if(m){let e=typeof u?.question==`string`?u.question:``;m.textContent=e,m.classList.toggle(`persona-ask-question-skeleton`,!e&&!o)}let g=e.querySelector(`[data-ask-pill-list="true"]`);if(g){let e=k(u,r,o,i);g.replaceWith(e)}if(i!==`rows`){let t=e.querySelector(`[data-ask-free-text-row="true"]`);t&&t.replaceWith(A(r,i))}let _=e.querySelector(`[data-ask-multi-actions="true"]`);!s&&d&&!_?e.appendChild(j(r)):(!d||s)&&_&&_.remove(),e.setAttribute(`data-multi-select`,d?`true`:`false`);let v=e.querySelector(`[data-ask-nav-row="true"]`);if(s){let t=M(c,l,r);v?v.replaceWith(t):e.appendChild(t)}else v&&v.remove();H(e),U(e)},G=(e,n,r)=>{let i=y(n),a=m(i),o=e.toolCall.id,c=x(r),l=Math.max(1,c.length),f=l>1,h=z(e,c),g=f?B(e,l):0,_=t(`div`,[`persona-ask-sheet`,`persona-ask-sheet--${a}`,`persona-pointer-events-auto`,`persona-ask-sheet-enter`].join(` `));_.setAttribute(s,o),_.setAttribute(`data-tool-call-id`,o),_.setAttribute(`data-message-id`,e.id),_.setAttribute(d,String(l)),_.setAttribute(u,String(g)),_.setAttribute(p,f?`true`:`false`),_.setAttribute(`data-ask-layout`,a),P(_,h),_.setAttribute(`role`,`group`),_.setAttribute(`aria-label`,`Suggested answers`),i.slideInMs!==void 0&&_.style.setProperty(`--persona-ask-sheet-duration`,`${i.slideInMs}ms`),T(_,n);let v=t(`div`,`persona-ask-sheet-header persona-flex persona-items-center persona-gap-3`),b=t(`div`,`persona-ask-sheet-question persona-flex-1`);b.setAttribute(`data-ask-question`,`true`),b.textContent=``,v.appendChild(b);let S=t(`span`,`persona-ask-sheet-step-inline`);S.setAttribute(`data-ask-step-inline`,`true`),S.textContent=``,v.appendChild(S),_.appendChild(v);let C=t(`div`,a===`rows`?`persona-ask-pills persona-ask-pills--rows persona-flex persona-flex-col persona-gap-2`:`persona-ask-pills persona-flex persona-flex-wrap persona-gap-2`);return C.setAttribute(`data-ask-pill-list`,`true`),C.setAttribute(`role`,`group`),_.appendChild(C),a!==`rows`&&_.appendChild(A(i,a)),W(_,e,n),requestAnimationFrame(()=>{requestAnimationFrame(()=>_.classList.remove(`persona-ask-sheet-enter`))}),_},K=(e,t,n)=>{T(e,n);let{payload:r}=b(t),i=Math.max(1,x(r).length);i>L(e)&&(e.setAttribute(d,String(i)),i>1&&!R(e)&&e.setAttribute(p,`true`)),W(e,t,n)},q=(e,t,n)=>{if(!n||!v(e)||y(t).enabled===!1)return;let r=e.toolCall.id;n.querySelectorAll(`[${s}]`).forEach(e=>{e.getAttribute(s)!==r&&e.remove()});let i=n.querySelector(`[${s}="${_(r)}"]`);if(i){K(i,e,t);return}let{payload:a}=b(e),o=G(e,t,a);n.appendChild(o)},J=(e,t)=>{if(!e)return;let n=t?`[${s}="${_(t)}"]`:`[${s}]`;e.querySelectorAll(n).forEach(e=>{e.classList.add(`persona-ask-sheet-leave`);let t=Number.parseInt(getComputedStyle(e).getPropertyValue(`--persona-ask-sheet-duration`)||`180`,10);setTimeout(()=>e.remove(),Number.isFinite(t)?t:180)})},Y=e=>Array.from(e.querySelectorAll(`[aria-pressed="true"][data-option-label]`)).map(e=>e.getAttribute(`data-option-label`)).filter(e=>typeof e==`string`&&e.length>0),X=(e,t)=>{let n=N(e),r=F(e);typeof t==`string`&&t.length===0||Array.isArray(t)&&t.length===0?delete n[r]:n[r]=t,P(e,n),H(e),U(e)},Z=(e,t,n,r)=>{let i=L(e),a=Math.max(0,Math.min(i-1,r));I(e,a),W(e,t,n)};export{L as a,R as c,N as d,J as f,F as i,Z as l,V as n,Y as o,X as p,q as r,v as s,o as t,b as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,r as t}from"./chunk-CHAwCqpk.js";import{r as n,t as r}from"./chunk-D5BxWOFB.js";import{t as i}from"./chunk-BAdIgC5d.js";import{t as a}from"./chunk-DDZBCAer.js";import{t as o}from"./chunk-Bb3MaswO.js";import{n as s}from"./chunk-Bj8Hnh10.js";import{Ban as c}from"lucide";const l=(e,t)=>`var(--persona-components-approval-${e.split(`.`).join(`-`)}, ${t})`,u=(e,t)=>`var(--persona-consumer-approval-${e.split(`.`).join(`-`)}, ${t})`;function d(n,r){let i=e=>{let r=t(n,`approval.${e}`);return typeof r==`string`?r:void 0},a=(e,t,n)=>i(e)||l(t,u(`requested.text`,n)),o=(t,r)=>i(t)??(e(n,`approval.${r}`)?`var(--persona-components-approval-${r.split(`.`).join(`-`)})`:void 0),s=r===`public`,c=`var(--persona-muted, #6b7280)`,d=s?`var(--persona-primary, #171717)`:`var(--persona-text, #0b0b0b)`,f=s?`var(--persona-feedback-error, var(--persona-palette-colors-error-600))`:`var(--persona-text, #1f2937)`,p=i(`shadow`);return{backgroundColor:o(`backgroundColor`,`requested.background`),borderColor:o(`borderColor`,`requested.border`),shadow:p===void 0?o(`shadow`,`requested.shadow`):p.trim()===``?`none`:p,titleColor:a(`titleColor`,`requested.titleColor`,d),descriptionColor:a(`descriptionColor`,`requested.descriptionColor`,c),reasonColor:i(`reasonColor`)||i(`descriptionColor`)||l(`requested.reasonColor`,u(`requested.text`,c)),parameterBackgroundColor:i(`parameterBackgroundColor`)||l(`requested.parameters.background`,s?`var(--persona-container, #f8fafc)`:`var(--persona-container, rgba(11, 11, 11, 0.04))`),parameterTextColor:a(`parameterTextColor`,`requested.parameters.foreground`,s?`var(--persona-primary, #171717)`:`var(--persona-text, #1f2937)`),approveButtonColor:o(`approveButtonColor`,`approve.background`),approveButtonTextColor:i(`approveButtonTextColor`)||u(`approve.foreground`,`var(--persona-button-primary-fg)`),denyButtonColor:i(`denyButtonColor`)??(s?u(`deny.background`,`transparent`):void 0),denyButtonTextColor:i(`denyButtonTextColor`)||u(`deny.foreground`,f),denyBorderColor:i(`denyButtonTextColor`)||u(`deny.foreground`,`var(--persona-palette-colors-error-200)`),pendingIconColor:i(`titleColor`)||l(`requested.titleColor`,u(`requested.text`,`currentColor`))}}let f;const p=(...e)=>f?.render(...e)??null,m=(...e)=>f?.node(...e)??null;let h;const g=()=>{if(!h)throw Error(`Approval UI requires core popover dependencies.`);return h};let _=()=>void 0;const v=e=>{_=e.webMcpToolTitle,e.icons&&(f=e.icons),e.popover&&(h=e.popover)},y=e=>_(e),b=e=>{let t=(e.startsWith(`webmcp:`)?e.slice(i.length):e).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[_\-\s.]+/).filter(Boolean);if(t.length===0)return e;let n=t.join(` `).toLowerCase();return n.charAt(0).toUpperCase()+n.slice(1)},x=e=>e?.approval===!1?void 0:e?.approval,S=(e,t,n)=>{let r=x(n)?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},C=(e,t,n)=>{let r=x(n);e.setAttribute(`aria-expanded`,t?`true`:`false`);let i=e.querySelector(`[data-approval-details-label]`);i&&(i.textContent=t?r?.hideDetailsLabel??`Hide details`:r?.showDetailsLabel??`Show details`);let a=e.querySelector(`[data-approval-details-chevron]`);if(a){a.innerHTML=``;let e=p(t?`chevron-up`:`chevron-down`,14,`currentColor`,2);e&&a.appendChild(e)}},w=(e,t,n,r=/* @__PURE__ */ new Map)=>{let i=t.querySelector(`button[data-bubble-type="approval"]`),a=t.querySelector(`[data-approval-details]`);if(!i||!a)return;let o=S(e,r,n);C(i,o,n),a.style.display=o?``:`none`},T=(e,t,n,r)=>{let i=d(n,`public`);if(D(t,n),!r)return;let a=t.querySelector(`[data-approval-status]`);if(a){a.textContent=r.status===`approved`?`Approved`:r.status===`denied`?`Denied`:r.status===`timeout`&&r.interrupted?`Interrupted`:r.status===`timeout`?`Timeout`:`Pending`;let e=r.status===`approved`?`success`:r.status===`denied`?`error`:r.status===`timeout`?`warning`:void 0;e&&(a.className=`persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium`,a.style.backgroundColor=`var(--persona-palette-colors-${e}-100)`,a.style.color=`var(--persona-palette-colors-${e}-700)`),a.setAttribute(`data-approval-status`,r.status)}let o=t.querySelector(`[data-approval-icon]`);if(o){o.innerHTML=``;let e=r.status===`denied`?`shield-x`:r.status===`timeout`?`shield-alert`:`shield-check`,t=r.status===`approved`?`var(--persona-feedback-success, var(--persona-palette-colors-success-600))`:r.status===`denied`?`var(--persona-feedback-error, var(--persona-palette-colors-error-600))`:r.status===`timeout`?`var(--persona-feedback-warning, var(--persona-palette-colors-warning-600))`:i.pendingIconColor,n=p(e,20,t,2);n&&o.appendChild(n)}let s=t.querySelector(`[data-approval-buttons]`);s&&(s.style.display=r.status===`pending`?``:`none`)},E=(e,t,i=/* @__PURE__ */ new Map)=>{let s=e.approval,c=x(t),l=s?.status===`pending`,u=r(`div`,`persona-approval-bubble persona-w-full persona-rounded-2xl persona-border persona-shadow-sm persona-overflow-hidden`);if(u.id=`bubble-${e.id}`,u.setAttribute(`data-message-id`,e.id),!s)return D(u,t),u;let d=r(`div`,`persona-flex persona-items-start persona-gap-3 persona-px-4 persona-py-3`),f=n(`div`,{className:`persona-flex-shrink-0 persona-mt-0.5`,attrs:{"data-approval-icon":`true`}}),m=r(`div`,`persona-flex-1 persona-min-w-0`),h=r(`div`,`persona-flex persona-items-center persona-gap-2`),g=n(`span`,{className:`persona-text-sm persona-font-medium persona-text-persona-primary`,attrs:{"data-approval-title":`true`},text:c?.title??`Approval Required`});if(h.appendChild(g),!l){let e=r(`span`,`persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium`);e.setAttribute(`data-approval-status`,s.status),h.appendChild(e)}if(m.appendChild(h),s.status===`timeout`&&s.interrupted){let e=r(`p`,`persona-text-sm`);e.textContent=a,m.appendChild(e)}let _=s.toolType===`webmcp`||s.toolName.startsWith(`webmcp:`)?y(s.toolName):void 0,v=c?.formatDescription?.({toolName:s.toolName,toolType:s.toolType,description:s.description,parameters:s.parameters,..._?{displayTitle:_}:{},...s.reason?{reason:s.reason}:{}}),w=!s.toolName,E=v||(w?s.description:`The assistant wants to use “${_??b(s.toolName)}”.`),O=n(`p`,{className:`persona-text-sm persona-mt-0.5 persona-text-persona-muted`,attrs:{"data-approval-summary":`true`},text:E});if(m.appendChild(O),s.reason){let e=r(`p`,`persona-text-sm persona-mt-1 persona-text-persona-muted`);e.setAttribute(`data-approval-reason`,`true`);let t=r(`span`,`persona-font-medium`);t.textContent=`${c?.reasonLabel??`Agent's stated reason:`} `,e.appendChild(t),e.appendChild(document.createTextNode(s.reason)),m.appendChild(e)}let k=c?.detailsDisplay??`collapsed`,A=!!s.description&&!w,j=A||!!s.parameters;if(k!==`hidden`&&j){let n=S(e.id,i,t),a=r(`button`,`persona-inline-flex persona-items-center persona-gap-1 persona-mt-1 persona-p-0 persona-border-none persona-bg-transparent persona-text-xs persona-font-medium persona-cursor-pointer persona-text-persona-muted`);a.type=`button`,a.setAttribute(`data-expand-header`,`true`),a.setAttribute(`data-bubble-type`,`approval`);let c=r(`span`);c.setAttribute(`data-approval-details-label`,`true`);let l=r(`span`,`persona-inline-flex persona-items-center`);l.setAttribute(`data-approval-details-chevron`,`true`),a.append(c,l),C(a,n,t),m.appendChild(a);let u=r(`div`);if(u.setAttribute(`data-approval-details`,`true`),u.style.display=n?``:`none`,A){let e=r(`p`,`persona-text-sm persona-mt-1 persona-text-persona-muted`);e.setAttribute(`data-approval-description`,`true`),e.textContent=s.description,u.appendChild(e)}if(s.parameters){let e=r(`pre`,`persona-mt-2 persona-text-xs persona-p-2 persona-rounded persona-overflow-x-auto persona-max-h-32 persona-bg-persona-container persona-text-persona-primary`);e.setAttribute(`data-approval-parameters`,`true`),e.style.fontSize=`0.75rem`,e.style.lineHeight=`1rem`,e.textContent=o(s.parameters),u.appendChild(e)}m.appendChild(u)}if(l){let e=r(`div`,`persona-flex persona-gap-2 persona-mt-2`);e.setAttribute(`data-approval-buttons`,`true`);for(let t of[`approve`,`deny`]){let r=n(`button`,{className:`persona-inline-flex persona-items-center persona-px-3 persona-py-1.5 persona-rounded-md persona-text-xs persona-font-medium persona-cursor-pointer`+(t===`approve`?` persona-border-none`:``),attrs:{type:`button`,"data-approval-action":t}}),i=p(t===`approve`?`shield-check`:`shield-x`,14,`currentColor`,2);i&&(i.style.marginRight=`4px`,r.appendChild(i)),r.appendChild(document.createTextNode(t===`approve`?c?.approveLabel??`Approve`:c?.denyLabel??`Deny`)),e.appendChild(r)}m.appendChild(e)}return d.append(f,m),u.appendChild(d),T(e.id,u,t,s),u},D=(e,t)=>{let n=d(t,`public`);e.style.backgroundColor=n.backgroundColor??`var(--persona-approval-bg)`,e.style.borderColor=n.borderColor??`var(--persona-approval-border)`,e.style.boxShadow=n.shadow===void 0?`var(--persona-approval-shadow)`:n.shadow.trim()||`none`;let r=(t,n)=>{e.querySelectorAll(t).forEach(e=>{e.style.color=n??``})};e.querySelector(`[data-approval-status]`)||e.querySelector(`[data-approval-icon] svg`)?.setAttribute(`stroke`,n.pendingIconColor),r(`[data-approval-title]`,n.titleColor),r(`[data-approval-summary], [data-approval-description], button[data-bubble-type='approval']`,n.descriptionColor),r(`[data-approval-reason]`,n.reasonColor),r(`[data-approval-parameters]`,n.parameterTextColor),e.querySelectorAll(`[data-approval-parameters]`).forEach(e=>{e.style.backgroundColor=n.parameterBackgroundColor??``});for(let t of[`approve`,`deny`]){let r=e.querySelector(`[data-approval-action="${t}"]`);if(!r)continue;let i=t===`approve`?n.approveButtonTextColor:n.denyButtonTextColor;r.style.backgroundColor=(t===`approve`?n.approveButtonColor??`var(--persona-approval-approve-bg)`:n.denyButtonColor)??``,r.style.color=i??``,r.querySelector(`svg`)?.setAttribute(`stroke`,i??`currentColor`),t===`deny`&&(r.style.border=`1px solid ${n.denyBorderColor}`)}};let O=0;const k=()=>({disclosurePrefix:`approval-${++O}`,keyHandlers:/* @__PURE__ */ new Map,popovers:/* @__PURE__ */ new Map,pendingOrder:[],latestPendingApprovalId:null}),A=(e,t)=>{let n=e.keyHandlers.get(t);n&&(document.removeEventListener(`keydown`,n),e.keyHandlers.delete(t));let r=e.popovers.get(t);r&&(r.destroy(),e.popovers.delete(t))},j=(e,t)=>{A(e,t);let n=e.pendingOrder.indexOf(t);n!==-1&&e.pendingOrder.splice(n,1),e.latestPendingApprovalId===t&&(e.latestPendingApprovalId=e.pendingOrder.length?e.pendingOrder[e.pendingOrder.length-1]:null)},M=(e,t,n)=>{let r=n?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},N=e=>{let t=r(`span`,`persona-approval-kbd`);return t.textContent=e,t},P=(e,t)=>{let n=r(`span`,`persona-approval-title`);t?.titleColor&&(n.style.color=t.titleColor);let i=e.toolType===`webmcp`||e.toolName.startsWith(`webmcp:`)?y(e.toolName):void 0,a=t?.formatDescription?.({toolName:e.toolName,toolType:e.toolType,description:e.description??``,parameters:e.parameters,...i?{displayTitle:i}:{},...e.reason?{reason:e.reason}:{}});if(a)return n.textContent=a,n;let o=i??b(e.toolName),s=e.toolType&&e.toolType!==`webmcp`?e.toolType:null;n.append(`The assistant wants to use `);let c=document.createElement(`strong`);if(c.textContent=o,n.appendChild(c),s){n.append(` from `);let e=document.createElement(`strong`);e.textContent=s,n.appendChild(e)}return n},F=e=>{let t=r(`div`,`persona-approval-resolved`),i=m(c,15,`currentColor`,2);i&&t.appendChild(i);let o=r(`span`,`persona-approval-resolved-name`);o.textContent=e.toolName?b(e.toolName):`Tool`;let s=e.status===`timeout`&&e.interrupted?` approval expired. ${a}`:e.status===`timeout`?` timed out`:` denied`;return t.appendChild(n(`span`,{className:`persona-approval-resolved-text`},o,s)),t},I=(e,t,n,i,a,s,c,l,u=!1,d)=>{let f=d!==void 0,m=r(`div`,f?`persona-approval-row persona-activity-row`:`persona-approval-card persona-shadow-sm`);m.id=`bubble-${n.id}`,m.setAttribute(`data-message-id`,n.id),m.setAttribute(`data-bubble-type`,`approval`),a?.backgroundColor&&(m.style.background=a.backgroundColor),a?.borderColor&&(m.style.borderColor=a.borderColor),a?.shadow!==void 0&&(m.style.boxShadow=a.shadow.trim()===``?`none`:a.shadow);let h=a?.detailsDisplay??`collapsed`,_=!!i.description&&h!==`hidden`,v=i.parameters!=null&&h!==`hidden`&&!u,x=!!i.reason&&h!==`hidden`,S=_||v||f&&x,C=S&&M(n.id,t,a),w=a?.showDetailsLabel??`Show details`,T=a?.hideDetailsLabel??`Hide details`,E=r(f&&!S?`div`:`button`,`persona-approval-head`);E instanceof HTMLButtonElement&&(E.type=`button`),S?(E.setAttribute(`data-action`,`toggle-params`),E.setAttribute(`aria-expanded`,C?`true`:`false`),E.setAttribute(`aria-label`,C?T:w)):E.setAttribute(`data-static`,`true`);let D=r(`span`,`persona-approval-logo`),O=p(`shield-check`,16,`currentColor`,2);O&&D.appendChild(O),f||E.appendChild(D);let k=f?r(`span`,`persona-approval-title`):P(i,a),A=``;if(f){let e=(i.toolType===`webmcp`||i.toolName.startsWith(`webmcp:`)?y(i.toolName):void 0)??b(i.toolName),t=r(`span`,`persona-approval-status`);t.setAttribute(`role`,`status`),t.textContent=d,k.append(e,` · `,t),a?.titleColor&&(k.style.color=a.titleColor),A=`${e} · ${d}`}if(S){let e=r(`span`,`persona-approval-toggle`);e.setAttribute(`aria-hidden`,`true`);let t=p(`chevron-down`,14,`currentColor`,2);t&&e.appendChild(t),k.append(` `),k.appendChild(e)}E.appendChild(k),m.appendChild(E);let F=r(`div`,`persona-approval-body`),I;if(S){let e=r(`div`,`persona-approval-details`);e.setAttribute(`data-role`,`params`),e.hidden=!C;let t=t=>{let n=r(`div`,`persona-tool-detail`),i=r(`div`,`persona-tool-detail-label`);return i.textContent=t,n.appendChild(i),e.appendChild(n),n},n=f&&v?t(`Request`):e;if(f&&(_||x)&&(I=t(`Context`)),_){let t=r(`p`,`persona-approval-desc`);a?.descriptionColor&&(t.style.color=a.descriptionColor),t.textContent=i.description,(I??e).appendChild(t)}if(v){let e=r(`pre`,f?`persona-approval-params persona-tool-detail-value persona-tool-detail-code`:`persona-approval-params`);a?.parameterBackgroundColor&&(e.style.background=a.parameterBackgroundColor),a?.parameterTextColor&&(e.style.color=a.parameterTextColor),e.textContent=o(i.parameters),n.appendChild(e)}F.appendChild(e)}if(u){let e=r(`div`,`persona-approval-call`);e.setAttribute(`data-role`,`raw-call`);let t=r(`code`,`persona-approval-tool-name`);if(t.textContent=i.toolName,e.appendChild(t),i.parameters!=null){let t=r(`pre`,`persona-approval-params`);a?.parameterBackgroundColor&&(t.style.background=a.parameterBackgroundColor),a?.parameterTextColor&&(t.style.color=a.parameterTextColor),t.textContent=o(i.parameters),e.appendChild(t)}F.appendChild(e)}if(i.reason){let e=r(`p`,`persona-approval-reason`);a?.reasonColor?e.style.color=a.reasonColor:a?.descriptionColor&&(e.style.color=a.descriptionColor);let t=r(`span`,`persona-approval-reason-label`);t.textContent=`${a?.reasonLabel??`Agent's stated reason:`} `,e.append(t,document.createTextNode(i.reason)),f?I?.appendChild(e):F.appendChild(e)}let L=e=>{E.setAttribute(`aria-expanded`,String(e));let t=e?T:w;E.setAttribute(`aria-label`,f?`${A}. ${t}`:t)},R=()=>{let e=m.querySelector(`[data-role="params"]`);if(!e)return;let r=e.hidden!==!1;e.hidden=!r,f&&(F.hidden=!r),L(r),t.set(n.id,r)};if(f){if(S){let t=F.querySelector(`[data-role="params"]`);t.id=`${e.disclosurePrefix}-details-${n.id}`,E.setAttribute(`aria-controls`,t.id),L(C),F.hidden=!C,m.appendChild(F),E.addEventListener(`click`,R)}return m}let z=r(`div`,`persona-approval-actions`),B=a?.primaryAction===`allow-once`,V=a?.keyboardShortcuts!==!1&&a?.keyboardShortcuts!==`focused`,H=null,U=e=>{a?.approveButtonColor&&(e.style.background=a.approveButtonColor),a?.approveButtonTextColor&&(e.style.color=a.approveButtonTextColor)},W=r(`button`,`persona-approval-deny`);if(W.type=`button`,W.setAttribute(`data-action`,`deny`),a?.denyButtonColor&&(W.style.background=a.denyButtonColor),a?.denyButtonTextColor&&(W.style.color=a.denyButtonTextColor),W.append(a?.denyLabel??`Deny`),l){let t=r(`div`,`persona-approval-split`),i=r(`button`,`persona-approval-primary`);i.type=`button`,i.setAttribute(`data-action`,B?`allow`:`always`),U(i),i.append(a?.approveLabel??(B?`Allow once`:`Always allow`)),V&&i.append(N(`⏎`));let o=r(`button`,`persona-approval-caret`);o.type=`button`,o.setAttribute(`data-action`,`toggle-menu`),o.setAttribute(`aria-label`,`More options`),U(o);let c=p(`chevron-down`,15,`currentColor`,2);c&&o.appendChild(c),t.append(i,o),z.append(t,W),V&&W.append(N(`Esc`));let l=r(`div`,`persona-approval-menu`),u=r(`button`,`persona-approval-menu-item`);u.type=`button`,u.append(B?a?.alwaysAllowLabel??`Always allow`:`Allow once`),!B&&V&&u.append(N(`⌘⏎`)),l.appendChild(u),H=g().createPopover({anchor:t,content:l,placement:`bottom-start`,matchAnchorWidth:!0}),e.popovers.set(n.id,H),u.addEventListener(`click`,()=>{j(e,n.id),B?s({remember:!0}):s()})}else{let e=r(`button`,`persona-approval-primary persona-approval-primary--solo`);e.type=`button`,e.setAttribute(`data-action`,`allow`),U(e),e.append(a?.approveLabel??(B?`Allow once`:`Allow`)),z.append(e,W)}return F.appendChild(z),m.appendChild(F),m.addEventListener(`click`,t=>{let r=t.target instanceof Element?t.target.closest(`[data-action]`):null;if(!r)return;let i=r.getAttribute(`data-action`);i===`toggle-params`?R():i===`toggle-menu`?H?.toggle():i===`always`?(j(e,n.id),s({remember:!0})):i===`allow`?(j(e,n.id),s()):i===`deny`&&(j(e,n.id),c())}),m},L=(e=/* @__PURE__ */ new Map)=>{let t=k();return{plugin:{id:`persona-built-in-approval`,renderApproval:({message:n,approve:i,deny:a,config:o,execution:c,signal:l})=>{let u=n?.approval;if(!u)return null;let f={...s(o),...d(o,`plugin`)},p=!1,m=i,h=a;if(i=e=>{p||l?.aborted||u.status!==`pending`||(p=!0,e===void 0?m():m(e))},a=e=>{p||l?.aborted||u.status!==`pending`||(p=!0,e===void 0?h():h(e))},u.status!==`pending`){j(t,n.id);let o=u.status===`denied`?`Denied`:u.status===`timeout`?`Timed out`:c?.status===`running`?`Allowed · running`:c?.status===`completed`?`Completed`:c?.status===`failed`?`Failed`:`Allowed`;if(f?.resolvedDisplay===`row`)return I(t,e,n,u,f,i,a,!1,!1,o);if(f?.resolvedDisplay===`status-line`){let s=I(t,e,n,u,f,i,a,!1),c=r(`div`,`persona-approval-status`);return c.setAttribute(`role`,`status`),c.textContent=o,s.querySelector(`.persona-approval-actions`)?.replaceWith(c),s}if(u.status===`approved`){let e=document.createElement(`div`);return e.style.display=`none`,e}return F(u)}A(t,n.id);let _=!!o?.clientToken,v=f?.enableAlwaysAllow===!0,y=I(t,e,n,u,f,i,a,v,_),b=f?.keyboardShortcuts??`legacy`;if(b===`focused`||b===`legacy`&&v){t.pendingOrder.includes(n.id)||t.pendingOrder.push(n.id),t.latestPendingApprovalId=t.pendingOrder[t.pendingOrder.length-1];let e=e=>{if(!(e.defaultPrevented||e.isComposing||g().isEditableEventTarget(e))){if(b===`focused`){if(!e.composedPath().includes(y)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.composedPath()[0];if(e.key===`Enter`&&t instanceof Element&&t.closest(`[data-action]`)?.getAttribute(`data-action`)!==`allow`)return}(b!==`legacy`||n.id===t.latestPendingApprovalId)&&(e.key===`Escape`||e.key===`Enter`)&&(e.preventDefault(),e.stopImmediatePropagation(),j(t,n.id),e.key===`Escape`?a():b===`focused`||f?.primaryAction===`allow-once`||e.metaKey||e.ctrlKey?i():i({remember:!0}))}};t.keyHandlers.set(n.id,e),document.addEventListener(`keydown`,e)}return l?.addEventListener(`abort`,()=>j(t,n.id),{once:!0}),y}},teardown:()=>{for(let e of[...t.keyHandlers.keys(),...t.popovers.keys()])j(t,e);t.latestPendingApprovalId=null}}};function R(e,t,r){let i=n(`div`,{className:`persona-error-detail persona-message-bubble`});i.innerHTML=t({text:e.content,message:e,streaming:!1});let a=n(`summary`,{className:`persona-error-summary`},i,n(`span`,{className:`persona-error-more`,text:`Show more`}),n(`span`,{className:`persona-error-less`,text:`Show less`}));return n(`div`,{className:`persona-error-block`,attrs:{role:`alert`,"data-message-id":e.id,"data-actions-for":e.id}},n(`strong`,{className:`persona-error-title`,text:`Something went wrong`}),n(`details`,{className:`persona-error-details`},a),r?n(`button`,{className:`persona-message-action-btn persona-error-retry`,text:`Retry`,attrs:{type:`button`,"data-action":`regenerate`,"aria-label":`Retry response`}}):null)}export{E as createApprovalBubble,L as createBuiltInApprovalPlugin,R as createErrorBlock,b as humanizeToolName,v as initApprovalUi,w as updateApprovalDetailsUI};
|
|
1
|
+
import{a as e,r as t}from"./chunk-CdpVP6LZ.js";import{r as n,t as r}from"./chunk-D5BxWOFB.js";import{t as i}from"./chunk-BAdIgC5d.js";import{t as a}from"./chunk-DDZBCAer.js";import{t as o}from"./chunk-Bb3MaswO.js";import{n as s}from"./chunk-Bj8Hnh10.js";import{Ban as c}from"lucide";const l=(e,t)=>`var(--persona-components-approval-${e.split(`.`).join(`-`)}, ${t})`,u=(e,t)=>`var(--persona-consumer-approval-${e.split(`.`).join(`-`)}, ${t})`;function d(n,r){let i=e=>{let r=t(n,`approval.${e}`);return typeof r==`string`?r:void 0},a=(e,t,n)=>i(e)||l(t,u(`requested.text`,n)),o=(t,r)=>i(t)??(e(n,`approval.${r}`)?`var(--persona-components-approval-${r.split(`.`).join(`-`)})`:void 0),s=r===`public`,c=`var(--persona-muted, #6b7280)`,d=s?`var(--persona-primary, #171717)`:`var(--persona-text, #0b0b0b)`,f=s?`var(--persona-feedback-error, var(--persona-palette-colors-error-600))`:`var(--persona-text, #1f2937)`,p=i(`shadow`);return{backgroundColor:o(`backgroundColor`,`requested.background`),borderColor:o(`borderColor`,`requested.border`),shadow:p===void 0?o(`shadow`,`requested.shadow`):p.trim()===``?`none`:p,titleColor:a(`titleColor`,`requested.titleColor`,d),descriptionColor:a(`descriptionColor`,`requested.descriptionColor`,c),reasonColor:i(`reasonColor`)||i(`descriptionColor`)||l(`requested.reasonColor`,u(`requested.text`,c)),parameterBackgroundColor:i(`parameterBackgroundColor`)||l(`requested.parameters.background`,s?`var(--persona-container, #f8fafc)`:`var(--persona-container, rgba(11, 11, 11, 0.04))`),parameterTextColor:a(`parameterTextColor`,`requested.parameters.foreground`,s?`var(--persona-primary, #171717)`:`var(--persona-text, #1f2937)`),approveButtonColor:o(`approveButtonColor`,`approve.background`),approveButtonTextColor:i(`approveButtonTextColor`)||u(`approve.foreground`,`var(--persona-button-primary-fg)`),denyButtonColor:i(`denyButtonColor`)??(s?u(`deny.background`,`transparent`):void 0),denyButtonTextColor:i(`denyButtonTextColor`)||u(`deny.foreground`,f),denyBorderColor:i(`denyButtonTextColor`)||u(`deny.foreground`,`var(--persona-palette-colors-error-200)`),pendingIconColor:i(`titleColor`)||l(`requested.titleColor`,u(`requested.text`,`currentColor`))}}let f;const p=(...e)=>f?.render(...e)??null,m=(...e)=>f?.node(...e)??null;let h;const g=()=>{if(!h)throw Error(`Approval UI requires core popover dependencies.`);return h};let _=()=>void 0;const v=e=>{_=e.webMcpToolTitle,e.icons&&(f=e.icons),e.popover&&(h=e.popover)},y=e=>_(e),b=e=>{let t=(e.startsWith(`webmcp:`)?e.slice(i.length):e).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[_\-\s.]+/).filter(Boolean);if(t.length===0)return e;let n=t.join(` `).toLowerCase();return n.charAt(0).toUpperCase()+n.slice(1)},x=e=>e?.approval===!1?void 0:e?.approval,S=(e,t,n)=>{let r=x(n)?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},C=(e,t,n)=>{let r=x(n);e.setAttribute(`aria-expanded`,t?`true`:`false`);let i=e.querySelector(`[data-approval-details-label]`);i&&(i.textContent=t?r?.hideDetailsLabel??`Hide details`:r?.showDetailsLabel??`Show details`);let a=e.querySelector(`[data-approval-details-chevron]`);if(a){a.innerHTML=``;let e=p(t?`chevron-up`:`chevron-down`,14,`currentColor`,2);e&&a.appendChild(e)}},w=(e,t,n,r=/* @__PURE__ */ new Map)=>{let i=t.querySelector(`button[data-bubble-type="approval"]`),a=t.querySelector(`[data-approval-details]`);if(!i||!a)return;let o=S(e,r,n);C(i,o,n),a.style.display=o?``:`none`},T=(e,t,n,r)=>{let i=d(n,`public`);if(D(t,n),!r)return;let a=t.querySelector(`[data-approval-status]`);if(a){a.textContent=r.status===`approved`?`Approved`:r.status===`denied`?`Denied`:r.status===`timeout`&&r.interrupted?`Interrupted`:r.status===`timeout`?`Timeout`:`Pending`;let e=r.status===`approved`?`success`:r.status===`denied`?`error`:r.status===`timeout`?`warning`:void 0;e&&(a.className=`persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium`,a.style.backgroundColor=`var(--persona-palette-colors-${e}-100)`,a.style.color=`var(--persona-palette-colors-${e}-700)`),a.setAttribute(`data-approval-status`,r.status)}let o=t.querySelector(`[data-approval-icon]`);if(o){o.innerHTML=``;let e=r.status===`denied`?`shield-x`:r.status===`timeout`?`shield-alert`:`shield-check`,t=r.status===`approved`?`var(--persona-feedback-success, var(--persona-palette-colors-success-600))`:r.status===`denied`?`var(--persona-feedback-error, var(--persona-palette-colors-error-600))`:r.status===`timeout`?`var(--persona-feedback-warning, var(--persona-palette-colors-warning-600))`:i.pendingIconColor,n=p(e,20,t,2);n&&o.appendChild(n)}let s=t.querySelector(`[data-approval-buttons]`);s&&(s.style.display=r.status===`pending`?``:`none`)},E=(e,t,i=/* @__PURE__ */ new Map)=>{let s=e.approval,c=x(t),l=s?.status===`pending`,u=r(`div`,`persona-approval-bubble persona-w-full persona-rounded-2xl persona-border persona-shadow-sm persona-overflow-hidden`);if(u.id=`bubble-${e.id}`,u.setAttribute(`data-message-id`,e.id),!s)return D(u,t),u;let d=r(`div`,`persona-flex persona-items-start persona-gap-3 persona-px-4 persona-py-3`),f=n(`div`,{className:`persona-flex-shrink-0 persona-mt-0.5`,attrs:{"data-approval-icon":`true`}}),m=r(`div`,`persona-flex-1 persona-min-w-0`),h=r(`div`,`persona-flex persona-items-center persona-gap-2`),g=n(`span`,{className:`persona-text-sm persona-font-medium persona-text-persona-primary`,attrs:{"data-approval-title":`true`},text:c?.title??`Approval Required`});if(h.appendChild(g),!l){let e=r(`span`,`persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium`);e.setAttribute(`data-approval-status`,s.status),h.appendChild(e)}if(m.appendChild(h),s.status===`timeout`&&s.interrupted){let e=r(`p`,`persona-text-sm`);e.textContent=a,m.appendChild(e)}let _=s.toolType===`webmcp`||s.toolName.startsWith(`webmcp:`)?y(s.toolName):void 0,v=c?.formatDescription?.({toolName:s.toolName,toolType:s.toolType,description:s.description,parameters:s.parameters,..._?{displayTitle:_}:{},...s.reason?{reason:s.reason}:{}}),w=!s.toolName,E=v||(w?s.description:`The assistant wants to use “${_??b(s.toolName)}”.`),O=n(`p`,{className:`persona-text-sm persona-mt-0.5 persona-text-persona-muted`,attrs:{"data-approval-summary":`true`},text:E});if(m.appendChild(O),s.reason){let e=r(`p`,`persona-text-sm persona-mt-1 persona-text-persona-muted`);e.setAttribute(`data-approval-reason`,`true`);let t=r(`span`,`persona-font-medium`);t.textContent=`${c?.reasonLabel??`Agent's stated reason:`} `,e.appendChild(t),e.appendChild(document.createTextNode(s.reason)),m.appendChild(e)}let k=c?.detailsDisplay??`collapsed`,A=!!s.description&&!w,j=A||!!s.parameters;if(k!==`hidden`&&j){let n=S(e.id,i,t),a=r(`button`,`persona-inline-flex persona-items-center persona-gap-1 persona-mt-1 persona-p-0 persona-border-none persona-bg-transparent persona-text-xs persona-font-medium persona-cursor-pointer persona-text-persona-muted`);a.type=`button`,a.setAttribute(`data-expand-header`,`true`),a.setAttribute(`data-bubble-type`,`approval`);let c=r(`span`);c.setAttribute(`data-approval-details-label`,`true`);let l=r(`span`,`persona-inline-flex persona-items-center`);l.setAttribute(`data-approval-details-chevron`,`true`),a.append(c,l),C(a,n,t),m.appendChild(a);let u=r(`div`);if(u.setAttribute(`data-approval-details`,`true`),u.style.display=n?``:`none`,A){let e=r(`p`,`persona-text-sm persona-mt-1 persona-text-persona-muted`);e.setAttribute(`data-approval-description`,`true`),e.textContent=s.description,u.appendChild(e)}if(s.parameters){let e=r(`pre`,`persona-mt-2 persona-text-xs persona-p-2 persona-rounded persona-overflow-x-auto persona-max-h-32 persona-bg-persona-container persona-text-persona-primary`);e.setAttribute(`data-approval-parameters`,`true`),e.style.fontSize=`0.75rem`,e.style.lineHeight=`1rem`,e.textContent=o(s.parameters),u.appendChild(e)}m.appendChild(u)}if(l){let e=r(`div`,`persona-flex persona-gap-2 persona-mt-2`);e.setAttribute(`data-approval-buttons`,`true`);for(let t of[`approve`,`deny`]){let r=n(`button`,{className:`persona-inline-flex persona-items-center persona-px-3 persona-py-1.5 persona-rounded-md persona-text-xs persona-font-medium persona-cursor-pointer`+(t===`approve`?` persona-border-none`:``),attrs:{type:`button`,"data-approval-action":t}}),i=p(t===`approve`?`shield-check`:`shield-x`,14,`currentColor`,2);i&&(i.style.marginRight=`4px`,r.appendChild(i)),r.appendChild(document.createTextNode(t===`approve`?c?.approveLabel??`Approve`:c?.denyLabel??`Deny`)),e.appendChild(r)}m.appendChild(e)}return d.append(f,m),u.appendChild(d),T(e.id,u,t,s),u},D=(e,t)=>{let n=d(t,`public`);e.style.backgroundColor=n.backgroundColor??`var(--persona-approval-bg)`,e.style.borderColor=n.borderColor??`var(--persona-approval-border)`,e.style.boxShadow=n.shadow===void 0?`var(--persona-approval-shadow)`:n.shadow.trim()||`none`;let r=(t,n)=>{e.querySelectorAll(t).forEach(e=>{e.style.color=n??``})};e.querySelector(`[data-approval-status]`)||e.querySelector(`[data-approval-icon] svg`)?.setAttribute(`stroke`,n.pendingIconColor),r(`[data-approval-title]`,n.titleColor),r(`[data-approval-summary], [data-approval-description], button[data-bubble-type='approval']`,n.descriptionColor),r(`[data-approval-reason]`,n.reasonColor),r(`[data-approval-parameters]`,n.parameterTextColor),e.querySelectorAll(`[data-approval-parameters]`).forEach(e=>{e.style.backgroundColor=n.parameterBackgroundColor??``});for(let t of[`approve`,`deny`]){let r=e.querySelector(`[data-approval-action="${t}"]`);if(!r)continue;let i=t===`approve`?n.approveButtonTextColor:n.denyButtonTextColor;r.style.backgroundColor=(t===`approve`?n.approveButtonColor??`var(--persona-approval-approve-bg)`:n.denyButtonColor)??``,r.style.color=i??``,r.querySelector(`svg`)?.setAttribute(`stroke`,i??`currentColor`),t===`deny`&&(r.style.border=`1px solid ${n.denyBorderColor}`)}};let O=0;const k=()=>({disclosurePrefix:`approval-${++O}`,keyHandlers:/* @__PURE__ */ new Map,popovers:/* @__PURE__ */ new Map,pendingOrder:[],latestPendingApprovalId:null}),A=(e,t)=>{let n=e.keyHandlers.get(t);n&&(document.removeEventListener(`keydown`,n),e.keyHandlers.delete(t));let r=e.popovers.get(t);r&&(r.destroy(),e.popovers.delete(t))},j=(e,t)=>{A(e,t);let n=e.pendingOrder.indexOf(t);n!==-1&&e.pendingOrder.splice(n,1),e.latestPendingApprovalId===t&&(e.latestPendingApprovalId=e.pendingOrder.length?e.pendingOrder[e.pendingOrder.length-1]:null)},M=(e,t,n)=>{let r=n?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},N=e=>{let t=r(`span`,`persona-approval-kbd`);return t.textContent=e,t},P=(e,t)=>{let n=r(`span`,`persona-approval-title`);t?.titleColor&&(n.style.color=t.titleColor);let i=e.toolType===`webmcp`||e.toolName.startsWith(`webmcp:`)?y(e.toolName):void 0,a=t?.formatDescription?.({toolName:e.toolName,toolType:e.toolType,description:e.description??``,parameters:e.parameters,...i?{displayTitle:i}:{},...e.reason?{reason:e.reason}:{}});if(a)return n.textContent=a,n;let o=i??b(e.toolName),s=e.toolType&&e.toolType!==`webmcp`?e.toolType:null;n.append(`The assistant wants to use `);let c=document.createElement(`strong`);if(c.textContent=o,n.appendChild(c),s){n.append(` from `);let e=document.createElement(`strong`);e.textContent=s,n.appendChild(e)}return n},F=e=>{let t=r(`div`,`persona-approval-resolved`),i=m(c,15,`currentColor`,2);i&&t.appendChild(i);let o=r(`span`,`persona-approval-resolved-name`);o.textContent=e.toolName?b(e.toolName):`Tool`;let s=e.status===`timeout`&&e.interrupted?` approval expired. ${a}`:e.status===`timeout`?` timed out`:` denied`;return t.appendChild(n(`span`,{className:`persona-approval-resolved-text`},o,s)),t},I=(e,t,n,i,a,s,c,l,u=!1,d)=>{let f=d!==void 0,m=r(`div`,f?`persona-approval-row persona-activity-row`:`persona-approval-card persona-shadow-sm`);m.id=`bubble-${n.id}`,m.setAttribute(`data-message-id`,n.id),m.setAttribute(`data-bubble-type`,`approval`),a?.backgroundColor&&(m.style.background=a.backgroundColor),a?.borderColor&&(m.style.borderColor=a.borderColor),a?.shadow!==void 0&&(m.style.boxShadow=a.shadow.trim()===``?`none`:a.shadow);let h=a?.detailsDisplay??`collapsed`,_=!!i.description&&h!==`hidden`,v=i.parameters!=null&&h!==`hidden`&&!u,x=!!i.reason&&h!==`hidden`,S=_||v||f&&x,C=S&&M(n.id,t,a),w=a?.showDetailsLabel??`Show details`,T=a?.hideDetailsLabel??`Hide details`,E=r(f&&!S?`div`:`button`,`persona-approval-head`);E instanceof HTMLButtonElement&&(E.type=`button`),S?(E.setAttribute(`data-action`,`toggle-params`),E.setAttribute(`aria-expanded`,C?`true`:`false`),E.setAttribute(`aria-label`,C?T:w)):E.setAttribute(`data-static`,`true`);let D=r(`span`,`persona-approval-logo`),O=p(`shield-check`,16,`currentColor`,2);O&&D.appendChild(O),f||E.appendChild(D);let k=f?r(`span`,`persona-approval-title`):P(i,a),A=``;if(f){let e=(i.toolType===`webmcp`||i.toolName.startsWith(`webmcp:`)?y(i.toolName):void 0)??b(i.toolName),t=r(`span`,`persona-approval-status`);t.setAttribute(`role`,`status`),t.textContent=d,k.append(e,` · `,t),a?.titleColor&&(k.style.color=a.titleColor),A=`${e} · ${d}`}if(S){let e=r(`span`,`persona-approval-toggle`);e.setAttribute(`aria-hidden`,`true`);let t=p(`chevron-down`,14,`currentColor`,2);t&&e.appendChild(t),k.append(` `),k.appendChild(e)}E.appendChild(k),m.appendChild(E);let F=r(`div`,`persona-approval-body`),I;if(S){let e=r(`div`,`persona-approval-details`);e.setAttribute(`data-role`,`params`),e.hidden=!C;let t=t=>{let n=r(`div`,`persona-tool-detail`),i=r(`div`,`persona-tool-detail-label`);return i.textContent=t,n.appendChild(i),e.appendChild(n),n},n=f&&v?t(`Request`):e;if(f&&(_||x)&&(I=t(`Context`)),_){let t=r(`p`,`persona-approval-desc`);a?.descriptionColor&&(t.style.color=a.descriptionColor),t.textContent=i.description,(I??e).appendChild(t)}if(v){let e=r(`pre`,f?`persona-approval-params persona-tool-detail-value persona-tool-detail-code`:`persona-approval-params`);a?.parameterBackgroundColor&&(e.style.background=a.parameterBackgroundColor),a?.parameterTextColor&&(e.style.color=a.parameterTextColor),e.textContent=o(i.parameters),n.appendChild(e)}F.appendChild(e)}if(u){let e=r(`div`,`persona-approval-call`);e.setAttribute(`data-role`,`raw-call`);let t=r(`code`,`persona-approval-tool-name`);if(t.textContent=i.toolName,e.appendChild(t),i.parameters!=null){let t=r(`pre`,`persona-approval-params`);a?.parameterBackgroundColor&&(t.style.background=a.parameterBackgroundColor),a?.parameterTextColor&&(t.style.color=a.parameterTextColor),t.textContent=o(i.parameters),e.appendChild(t)}F.appendChild(e)}if(i.reason){let e=r(`p`,`persona-approval-reason`);a?.reasonColor?e.style.color=a.reasonColor:a?.descriptionColor&&(e.style.color=a.descriptionColor);let t=r(`span`,`persona-approval-reason-label`);t.textContent=`${a?.reasonLabel??`Agent's stated reason:`} `,e.append(t,document.createTextNode(i.reason)),f?I?.appendChild(e):F.appendChild(e)}let L=e=>{E.setAttribute(`aria-expanded`,String(e));let t=e?T:w;E.setAttribute(`aria-label`,f?`${A}. ${t}`:t)},R=()=>{let e=m.querySelector(`[data-role="params"]`);if(!e)return;let r=e.hidden!==!1;e.hidden=!r,f&&(F.hidden=!r),L(r),t.set(n.id,r)};if(f){if(S){let t=F.querySelector(`[data-role="params"]`);t.id=`${e.disclosurePrefix}-details-${n.id}`,E.setAttribute(`aria-controls`,t.id),L(C),F.hidden=!C,m.appendChild(F),E.addEventListener(`click`,R)}return m}let z=r(`div`,`persona-approval-actions`),B=a?.primaryAction===`allow-once`,V=a?.keyboardShortcuts!==!1&&a?.keyboardShortcuts!==`focused`,H=null,U=e=>{a?.approveButtonColor&&(e.style.background=a.approveButtonColor),a?.approveButtonTextColor&&(e.style.color=a.approveButtonTextColor)},W=r(`button`,`persona-approval-deny`);if(W.type=`button`,W.setAttribute(`data-action`,`deny`),a?.denyButtonColor&&(W.style.background=a.denyButtonColor),a?.denyButtonTextColor&&(W.style.color=a.denyButtonTextColor),W.append(a?.denyLabel??`Deny`),l){let t=r(`div`,`persona-approval-split`),i=r(`button`,`persona-approval-primary`);i.type=`button`,i.setAttribute(`data-action`,B?`allow`:`always`),U(i),i.append(a?.approveLabel??(B?`Allow once`:`Always allow`)),V&&i.append(N(`⏎`));let o=r(`button`,`persona-approval-caret`);o.type=`button`,o.setAttribute(`data-action`,`toggle-menu`),o.setAttribute(`aria-label`,`More options`),U(o);let c=p(`chevron-down`,15,`currentColor`,2);c&&o.appendChild(c),t.append(i,o),z.append(t,W),V&&W.append(N(`Esc`));let l=r(`div`,`persona-approval-menu`),u=r(`button`,`persona-approval-menu-item`);u.type=`button`,u.append(B?a?.alwaysAllowLabel??`Always allow`:`Allow once`),!B&&V&&u.append(N(`⌘⏎`)),l.appendChild(u),H=g().createPopover({anchor:t,content:l,placement:`bottom-start`,matchAnchorWidth:!0}),e.popovers.set(n.id,H),u.addEventListener(`click`,()=>{j(e,n.id),B?s({remember:!0}):s()})}else{let e=r(`button`,`persona-approval-primary persona-approval-primary--solo`);e.type=`button`,e.setAttribute(`data-action`,`allow`),U(e),e.append(a?.approveLabel??(B?`Allow once`:`Allow`)),z.append(e,W)}return F.appendChild(z),m.appendChild(F),m.addEventListener(`click`,t=>{let r=t.target instanceof Element?t.target.closest(`[data-action]`):null;if(!r)return;let i=r.getAttribute(`data-action`);i===`toggle-params`?R():i===`toggle-menu`?H?.toggle():i===`always`?(j(e,n.id),s({remember:!0})):i===`allow`?(j(e,n.id),s()):i===`deny`&&(j(e,n.id),c())}),m},L=(e=/* @__PURE__ */ new Map)=>{let t=k();return{plugin:{id:`persona-built-in-approval`,renderApproval:({message:n,approve:i,deny:a,config:o,execution:c,signal:l})=>{let u=n?.approval;if(!u)return null;let f={...s(o),...d(o,`plugin`)},p=!1,m=i,h=a;if(i=e=>{p||l?.aborted||u.status!==`pending`||(p=!0,e===void 0?m():m(e))},a=e=>{p||l?.aborted||u.status!==`pending`||(p=!0,e===void 0?h():h(e))},u.status!==`pending`){j(t,n.id);let o=u.status===`denied`?`Denied`:u.status===`timeout`?`Timed out`:c?.status===`running`?`Allowed · running`:c?.status===`completed`?`Completed`:c?.status===`failed`?`Failed`:`Allowed`;if(f?.resolvedDisplay===`row`)return I(t,e,n,u,f,i,a,!1,!1,o);if(f?.resolvedDisplay===`status-line`){let s=I(t,e,n,u,f,i,a,!1),c=r(`div`,`persona-approval-status`);return c.setAttribute(`role`,`status`),c.textContent=o,s.querySelector(`.persona-approval-actions`)?.replaceWith(c),s}if(u.status===`approved`){let e=document.createElement(`div`);return e.style.display=`none`,e}return F(u)}A(t,n.id);let _=!!o?.clientToken,v=f?.enableAlwaysAllow===!0,y=I(t,e,n,u,f,i,a,v,_),b=f?.keyboardShortcuts??`legacy`;if(b===`focused`||b===`legacy`&&v){t.pendingOrder.includes(n.id)||t.pendingOrder.push(n.id),t.latestPendingApprovalId=t.pendingOrder[t.pendingOrder.length-1];let e=e=>{if(!(e.defaultPrevented||e.isComposing||g().isEditableEventTarget(e))){if(b===`focused`){if(!e.composedPath().includes(y)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.composedPath()[0];if(e.key===`Enter`&&t instanceof Element&&t.closest(`[data-action]`)?.getAttribute(`data-action`)!==`allow`)return}(b!==`legacy`||n.id===t.latestPendingApprovalId)&&(e.key===`Escape`||e.key===`Enter`)&&(e.preventDefault(),e.stopImmediatePropagation(),j(t,n.id),e.key===`Escape`?a():b===`focused`||f?.primaryAction===`allow-once`||e.metaKey||e.ctrlKey?i():i({remember:!0}))}};t.keyHandlers.set(n.id,e),document.addEventListener(`keydown`,e)}return l?.addEventListener(`abort`,()=>j(t,n.id),{once:!0}),y}},teardown:()=>{for(let e of[...t.keyHandlers.keys(),...t.popovers.keys()])j(t,e);t.latestPendingApprovalId=null}}};function R(e,t,r){let i=n(`div`,{className:`persona-error-detail persona-message-bubble`});i.innerHTML=t({text:e.content,message:e,streaming:!1});let a=n(`summary`,{className:`persona-error-summary`},i,n(`span`,{className:`persona-error-more`,text:`Show more`}),n(`span`,{className:`persona-error-less`,text:`Show less`}));return n(`div`,{className:`persona-error-block`,attrs:{role:`alert`,"data-message-id":e.id,"data-actions-for":e.id}},n(`strong`,{className:`persona-error-title`,text:`Something went wrong`}),n(`details`,{className:`persona-error-details`},a),r?n(`button`,{className:`persona-message-action-btn persona-error-retry`,text:`Retry`,attrs:{type:`button`,"data-action":`regenerate`,"aria-label":`Retry response`}}):null)}export{E as createApprovalBubble,L as createBuiltInApprovalPlugin,R as createErrorBlock,b as humanizeToolName,v as initApprovalUi,w as updateApprovalDetailsUI};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as e,m as t,p as n,r,s as i}from"./chunk-CHAwCqpk.js";import{r as a,t as o}from"./chunk-BnfM7-qg.js";import{t as s}from"./chunk-CnxIZOzx.js";import{i as c,r as l,t as u}from"./chunk-D5BxWOFB.js";import{r as d}from"./chunk-Bb41bKyp.js";import{t as f}from"./chunk-BlTD-Wgn.js";import{n as p,t as m}from"./chunk-BAkaTZpd.js";import{i as h,n as g,r as _,t as v}from"./chunk-BGPPJ_ui.js";import{t as y}from"./chunk-Bj8Hnh10.js";import{r as b}from"./chunk-Cy1A8vbF.js";import{Activity as x,ArrowDown as S,ArrowLeft as C,ArrowRight as w,ArrowUp as T,ArrowUpRight as E,AtSign as ee,Bot as D,Check as O,ChevronDown as k,ChevronLeft as A,ChevronRight as j,ChevronUp as M,Clipboard as N,ClipboardCopy as P,CodeXml as te,Copy as ne,Download as re,Ellipsis as ie,ExternalLink as ae,Eye as oe,File as se,FileCode as ce,FileSpreadsheet as le,FileText as ue,History as de,ImagePlus as fe,Loader as pe,LoaderCircle as me,Maximize as he,Menu as ge,MessageSquare as _e,Mic as ve,Minimize as ye,Minus as be,PanelLeft as xe,Paperclip as Se,Pencil as Ce,Plus as we,Quote as Te,RefreshCw as Ee,Search as De,Send as Oe,ShieldAlert as ke,ShieldCheck as Ae,ShieldX as je,Square as Me,Star as Ne,ThumbsDown as Pe,ThumbsUp as Fe,Trash as Ie,Trash2 as Le,Upload as Re,Volume2 as ze,X as Be}from"lucide";const Ve={activity:x,"arrow-down":S,"arrow-up":T,"arrow-up-right":E,bot:D,"chevron-down":k,"chevron-up":M,"chevron-right":j,"chevron-left":A,check:O,clipboard:N,"clipboard-copy":P,"code-xml":te,copy:ne,file:se,"file-code":ce,"file-spreadsheet":le,"file-text":ue,"image-plus":fe,loader:pe,"loader-circle":me,mic:ve,paperclip:Se,quote:Te,"refresh-cw":Ee,search:De,send:Oe,"shield-alert":ke,"shield-check":Ae,"shield-x":je,square:Me,"square-text":[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M7 8h10M7 12h10M7 16h6`}]],"thumbs-down":Pe,"thumbs-up":Fe,upload:Re,"volume-2":ze,"voice-bars":[[`path`,{d:`M4 10v4`}],[`path`,{d:`M8 6v12`}],[`path`,{d:`M12 3v18`}],[`path`,{d:`M16 7v10`}],[`path`,{d:`M20 10v4`}]],x:Be,"at-sign":ee,"arrow-left":C,"arrow-right":w,"external-link":ae,ellipsis:ie,menu:ge,"panel-left":xe,plus:we,minus:be,pencil:Ce,trash:Ie,"trash-2":Le,download:re,maximize:he,minimize:ye,"message-square":_e,star:Ne,eye:oe,history:de},He=/* @__PURE__ */ `brain.toolbox.wrench.circle.database.terminal.user.mail.phone.calendar.clock.building.map-pin.lock.key.credit-card.hash.globe.link.circle-check.circle-x.triangle-alert.info.ban.shield.ellipsis-vertical.house.pen-line.save.share.funnel.settings.rotate-cw.shopping-cart.shopping-bag.package.truck.tag.gift.receipt.wallet.store.dollar-sign.percent.play.pause.volume-x.camera.image.film.headphones.message-circle.bell.heart.eye-off.bookmark.calendar-days.timer.folder.folder-open.files.chart-column.sparkles.zap.sun.moon.flag.lightbulb.monitor.smartphone`.split(`.`),F=new Map(Object.entries(Ve)),I=/* @__PURE__ */ new Map;let L=!1;const Ue=/* @__PURE__ */ new Set,We=e=>{let t=[...Ue];e&&Ue.clear();for(let e of t)try{e()}catch{}},Ge=()=>{let e=0;for(let[t,n]of I){let r=F.get(n);if(!r)continue;I.delete(t),e++;let i=s(r);if(i)for(t.removeAttribute(`data-persona-icon-pending`);i.firstChild;)t.appendChild(i.firstChild)}return e},Ke=e=>{if(!L){for(let[t,n]of Object.entries(e))F.has(t)||F.set(t,n);L=!0,Ge(),We(!0)}},qe=()=>L?null:o().then(e=>Ke(e.EXTRA_LUCIDE_ICONS)),Je=()=>{qe()?.catch(e=>{console.warn(`[Persona] Failed to load the icons-extra chunk`,e)})},Ye=(e,t,n)=>{let r=s([],e,t,n);return r.setAttribute(`data-persona-icon-pending`,`true`),r},R=(e,t=24,n=`currentColor`,r=2)=>{let i=F.get(e);if(i)return s(i,t,n,r);if(He.includes(e)){let i=Ye(t,n,r);return I.size>=500&&I.delete(I.keys().next().value),I.set(i,e),Je(),i}return console.warn(`Unknown Persona icon "${e}". Use registerIcons().`),null},Xe=(e,t)=>e.visible!==!1&&(e.mode!==`transient`||t===`connecting`||t===`paused`||t===`resuming`||t===`error`),Ze=(e,t,n)=>{let r=t.mode===`transient`,i=e.hasAttribute(`data-persona-composer-reason`)||e.hasAttribute(`data-persona-composer-notice`);e.style.display=Xe(t,n)||r&&i&&t.visible!==!1?``:`none`,e.classList.toggle(`persona-mt-2`,!r),e.classList.toggle(`persona-mb-2`,r)},Qe=(e,t,n)=>{t.parentElement&&e.parentElement===t.parentElement&&(n.mode===`transient`?e.nextElementSibling!==t&&t.before(e):t.nextElementSibling!==e&&t.after(e))};function $e(e){let t=e.ownerDocument?.defaultView;if(!t?.getComputedStyle)return 20;let n=t.getComputedStyle(e).lineHeight;if(!n||!n.trim().endsWith(`px`))return 20;let r=parseFloat(n);return Number.isFinite(r)&&r>0?r:20}function et(e,t){return typeof e!=`number`||!Number.isFinite(e)?t:e>0?e:t}function tt(e,t){e.style.maxHeight=`${t*$e(e)}px`,e.style.overflowY=`auto`}function nt(e){let t=e?.ownerDocument?.defaultView??(typeof window<`u`?window:null);if(!t||typeof t.matchMedia!=`function`)return!1;try{return t.matchMedia(`(pointer: coarse)`).matches===!0}catch{return!1}}function rt(e){return e.insertNewlineOnTouchEnter===!0&&e.coarsePointer===!0}function it(e,t){if(e.key!==`Enter`||e.shiftKey||e.isComposing)return!1;let n=e.metaKey===!0||e.ctrlKey===!0,r=t.submitKey??`enter`;return r===`none`?!1:r===`mod-enter`?n:n||!rt(t)}function at(e){return(e.submitKey??`enter`)===`enter`?rt(e)?`enter`:`send`:`enter`}function ot(e,t){e.setAttribute(`enterkeyhint`,at(t))}function z(e,t){let n=t?.autocomplete;e.setAttribute(`autocomplete`,typeof n==`string`&&n?n:`off`);let r=(t,n)=>{n===void 0?e.removeAttribute(t):e.setAttribute(t,n)};r(`autocapitalize`,typeof t?.autocapitalize==`string`?t.autocapitalize:void 0),r(`spellcheck`,typeof t?.spellcheck==`boolean`?String(t.spellcheck):void 0),r(`inputmode`,typeof t?.inputmode==`string`&&t.inputmode?t.inputmode:void 0),r(`aria-label`,typeof t?.ariaLabel==`string`&&t.ariaLabel?t.ariaLabel:void 0)}function st(e){return e===!0?{disabled:!0}:!e||typeof e!=`object`?{disabled:!1}:{disabled:!0,reason:typeof e.reason==`string`&&e.reason?e.reason:void 0}}const{setLoader:ct,load:lt}=a({fallbackImport:()=>import(`./chunk-Co3VVwGe.js`)}),ut=lt,{setLoader:dt,load:ft}=a({fallbackImport:()=>import(`./chunk-Bkma5hIU.js`),resetOnSetLoader:!0}),pt=ft;let B=400,V=300,H=0;const U=e=>Math.max(0,e);function mt(e){e.delayMs!==void 0&&(B=U(e.delayMs)),e.skipDelayMs!==void 0&&(V=U(e.skipDelayMs))}const ht=()=>Date.now()<H,gt=e=>{H=e>0?Date.now()+e:0},W=/* @__PURE__ */ new WeakMap,_t=e=>typeof e.closest==`function`&&e.closest(`[data-persona-tooltip-suppressed]`)!==null;function vt(e){W.get(e)?.hide()}const yt=e=>e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&`host`in e,bt=e=>{let t=e.getRootNode?.();return yt(t)?t:e.closest(`dialog[open]`)??e.ownerDocument.body},G=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),xt=[...[`background`,`foreground`,`hint-fg`,`radius`,`font-size`,`padding`,`max-width`,`shadow`,`arrow-display`].map(e=>`--persona-tooltip-${e}`),`--persona-font-family`,`--persona-radius-sm`];function K(e){W.get(e.anchor)?.destroy();let{anchor:t,trigger:n=t,text:r,hint:i,enabled:a=!0,gap:o=8,viewportPadding:s=8}=e,c=()=>t.ownerDocument,l=()=>c().defaultView??window,u=null,f=null,p=null,m=null,h,g=!1,_=!1,v=!1,y=()=>(typeof r==`function`?r():r).trim(),b=()=>(typeof i==`function`?i():i??``).trim(),x=()=>U(e.delayMs??B),S=()=>U(e.skipDelayMs??V),C=()=>{h!==void 0&&(l().clearTimeout(h),h=void 0)},w=()=>{C();let e=u!==null;m?.(),m=null,u?.remove(),u=null,f=null,p=null,e&>(S())},T=()=>{if(!u)return;let e=c(),n=l(),r=t.getBoundingClientRect(),i=u.getBoundingClientRect(),a=e.documentElement.clientWidth||n.innerWidth,d=e.documentElement.clientHeight||n.innerHeight,f=a-s-i.width,p=r.left+r.width/2-i.width/2,m=G(p,s,f),h=r.top-s,g=d-s-r.bottom,_=h>=i.height+o||h>=g?`top`:`bottom`,v=_===`top`?r.top-o-i.height:r.bottom+o,y=d-s-i.height,b=G(v,s,y),x=r.left+r.width/2,S=Math.max(10,i.width-10),C=G(x-m,10,S);u.dataset.placement=_,u.style.left=`${m}px`,u.style.top=`${b}px`,u.style.setProperty(`--persona-tooltip-arrow-x`,`${C}px`)},E=()=>{if(v||!a||u||!t.isConnected||_t(t))return;let e=y(),n=bt(t);if(!e||!n)return;let r=c(),i=l();u=r.createElement(`div`),u.className=`persona-control-tooltip`,u.setAttribute(`role`,`tooltip`),u.dataset.state=`measuring`,u.style.zIndex=String(d);let o=i.getComputedStyle?.(t);if(o){for(let e of xt){let t=o.getPropertyValue(e).trim();t&&u.style.setProperty(e,t)}o.fontFamily&&(u.style.fontFamily=o.fontFamily)}f=r.createElement(`span`),f.className=`persona-control-tooltip__label`,f.textContent=e,u.appendChild(f);let s=b();s&&(p=r.createElement(`span`),p.className=`persona-control-tooltip__hint`,p.textContent=s,u.appendChild(p));let h=r.createElement(`span`);h.className=`persona-control-tooltip__arrow`,u.appendChild(h),n.appendChild(u),T(),u.dataset.state=`open`;let g=()=>{if(!t.isConnected){w();return}f&&(f.textContent=y()),p&&(p.textContent=b());let e=bt(t);u&&e&&u.parentNode!==e&&e.appendChild(u),T()};i.addEventListener(`scroll`,g,!0),i.addEventListener(`resize`,g);let _=t.closest(`[data-persona-root]`);_?.addEventListener(`persona:internal:host-moved`,g);let x=t.getRootNode(),S=yt(x)?x:r.documentElement,C=typeof MutationObserver>`u`?null:new MutationObserver(()=>{t.isConnected||w()});C?.observe(S,{childList:!0,subtree:!0}),m=()=>{i.removeEventListener(`scroll`,g,!0),i.removeEventListener(`resize`,g),_?.removeEventListener(`persona:internal:host-moved`,g),C?.disconnect()}},ee=e=>{v||u||(C(),e||x()<=0||ht()?E():h=l().setTimeout(()=>{h=void 0,E()},x()))},D=()=>{g||_?ee(_):w()},O=()=>{let e=l();e.matchMedia&&e.matchMedia(`(hover: none)`).matches||(g=!0,D())},k=()=>{g=!1,D()},A=()=>{try{_=t.matches(`:focus-visible`)}catch{_=!0}D()},j=()=>{_=!1,D()},M=()=>{g=!1,_=!1,w()},N=e=>{e.key===`Escape`&&M()};n.addEventListener(`mouseenter`,O),n.addEventListener(`mouseleave`,k),t.addEventListener(`focus`,A),t.addEventListener(`blur`,j),t.addEventListener(`keydown`,N),t.addEventListener(`click`,M);let P={get isOpen(){return u!==null},show:E,hide:w,reposition:T,destroy:()=>{v||(v=!0,w(),n.removeEventListener(`mouseenter`,O),n.removeEventListener(`mouseleave`,k),t.removeEventListener(`focus`,A),t.removeEventListener(`blur`,j),t.removeEventListener(`keydown`,N),t.removeEventListener(`click`,M),W.delete(t))}};return W.set(t,P),P}const q=(e,t,n,r)=>{let[i,a]=t.split(`.`);return[e?.theme,e?.darkTheme].some(e=>e?.components?.[i]?.[a]?.[n]!==void 0)?`var(--persona-components-${t.replace(`.`,`-`)}-${n}, ${r})`:r},J=(e,t)=>{let n=e&&r(e,t);return typeof n==`string`&&n?n:void 0},Y=(e,t,n,r)=>{let i=t.startsWith(`var(`);e.classList.toggle(`persona-theme-padding`,i),e.style.padding=i?``:t,i?e.style.setProperty(`--persona-theme-padding`,t):e.style.removeProperty(`--persona-theme-padding`),n&&(e.style.paddingLeft=e.style.paddingRight=n),r&&(e.style.paddingTop=e.style.paddingBottom=r)},X=(e,t,n)=>{let r=t.startsWith(`var(`)&&t.includes(`--persona-components-`);e.classList.toggle(`persona-control-size`,r),r?e.style.setProperty(`--persona-control-size`,t):e.style.removeProperty(`--persona-control-size`),e.style.width=e.style.height=t,e.style.minWidth=e.style.minHeight=n??``},St=`min(440px, calc(100vw - 24px))`,Ct=`40px`,wt={apiUrl:`https://api.runtype.com/api/chat/dispatch`,clientToken:void 0,agentId:void 0,target:void 0,theme:void 0,darkTheme:void 0,colorScheme:`light`,tooltip:{delayMs:400,skipDelayMs:300},launcher:{enabled:!0,mountMode:`floating`,dock:{side:`right`,width:`420px`},title:`Chat Assistant`,subtitle:`Here to help you get answers fast`,agentIconText:`💬`,agentIconName:`bot`,headerIconName:`bot`,position:`bottom-right`,width:St,heightOffset:0,autoExpand:!1,callToActionIconHidden:!1,agentIconSize:`40px`,headerIconSize:Ct,closeButtonPaddingX:`0px`,closeButtonPaddingY:`0px`,callToActionIconName:`arrow-up-right`,callToActionIconText:``,callToActionIconSize:`32px`,callToActionIconPadding:`5px`,callToActionIconColor:void 0,callToActionIconBackgroundColor:void 0,closeButtonBackgroundColor:`transparent`,clearChat:{backgroundColor:`transparent`,borderColor:`transparent`,enabled:!0,placement:`inline`,iconName:`refresh-cw`,showTooltip:!0,tooltipText:`Clear chat`,paddingX:`0px`,paddingY:`0px`},headerIconHidden:!1,border:void 0,shadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)`},copy:{inputPlaceholder:`How can I help...`,sendButtonLabel:`Send`},sendButton:{borderWidth:`0px`,paddingX:`12px`,paddingY:`10px`,borderColor:void 0,useIcon:!0,iconText:`↑`,showTooltip:!0,tooltipText:`Send message`,iconName:`send`},statusIndicator:{visible:!0,idleText:`Online`,connectingText:`Connecting…`,connectedText:`Streaming…`,errorText:`Offline`},voiceRecognition:{enabled:!0,pauseDuration:2e3,iconName:`mic`,borderWidth:`0px`,iconColor:void 0,backgroundColor:`transparent`,borderColor:`transparent`,recordingIconColor:void 0,recordingBackgroundColor:void 0,recordingBorderColor:`transparent`,showTooltip:!0,tooltipText:`Start voice recognition`},features:{showReasoning:!0,showToolCalls:!0,scrollToBottom:{enabled:!0,iconName:`arrow-down`,label:``,streamingIndicator:`arrow`,scrollBehavior:`instant`,scrollDurationMs:220,transition:`none`},scrollBehavior:{mode:`anchor-top`,anchorTopOffset:16,showActivityWhilePinned:!0},toolCallDisplay:_,reasoningDisplay:v,streamAnimation:{type:`none`,placeholder:`none`,speed:120,duration:1800},askUserQuestion:{enabled:!0,slideInMs:180,freeTextLabel:`Other…`,freeTextPlaceholder:`Type your answer…`,submitLabel:`Send`},history:{enabled:!1,presentation:`panel`,showScopeStatus:!0,showDelete:!0,showDeleteAll:!0}},suggestionChips:[`Show me what you can help with`,`Walk me through getting started`,`Answer a question about this page`],suggestionChipsConfig:{fontFamily:`sans-serif`,fontWeight:`500`,paddingX:`12px`,paddingY:`6px`},layout:{header:{layout:`default`,showIcon:!0,showTitle:!0,showSubtitle:!0,showCloseButton:!0,showClearChat:!0},messages:{layout:`bubble`,avatar:{show:!1,position:`left`},timestamp:{show:!1,position:`below`},groupConsecutive:!1},slots:{}},markdown:{options:{gfm:!0,breaks:!0},disableDefaultStyles:!1},messageActions:{enabled:!0,showCopy:!0,showUpvote:!1,showDownvote:!1,visibility:`hover`,align:`right`,layout:`pill-inside`},debug:!1},Tt={},Z={colorScheme:`light`,errorDisplay:`block`,messageActions:{visibility:void 0},suggestionChipsConfig:{fontWeight:void 0},approval:y,loadingIndicator:{variant:`label`},launcher:{variant:`circle`,width:`min(400px, calc(100vw - 24px))`,headerIconSize:`20px`},features:{artifacts:{enabled:!0},scrollToBottom:{streamingIndicator:`dots`,transition:`fade`,scrollBehavior:`smooth`},toolCallDisplay:h,reasoningDisplay:g},composer:{layout:`single-row`,placement:`overlay`},sendButton:{iconName:`arrow-up`},statusIndicator:{mode:`transient`},layout:{contentMaxWidth:`768px`,topFade:!0,header:{showSubtitle:!1},messages:{assistant:{width:`full`}}}};function Et(e){return e?.future?.v5Defaults===!0?`v5`:`v4`}function Q(t){let n=Et(t)===`v5`?Z:Tt;return e(wt,n)}Q();function Dt(t,n){if(t||n)return t?n?e(t,n):t:n}function Ot(e){let r=Q(e);return e?i(t(b({...r,...e,colorScheme:n(e,[`colorScheme`]).includes(`colorScheme`)?e.colorScheme:e.brand?void 0:r.colorScheme,...r.approval||e.approval!==void 0?{approval:e.approval!==!1&&{...r.approval||{},...e.approval}}:{},theme:Dt(r.theme,e.theme),darkTheme:Dt(r.darkTheme,e.darkTheme),launcher:{...r.launcher,...e.launcher,dock:{...r.launcher?.dock,...e.launcher?.dock},clearChat:{...r.launcher?.clearChat,...e.launcher?.clearChat}},...r.composer||e.composer?{composer:{...r.composer,...e.composer}}:{},tooltip:{...r.tooltip,...e.tooltip},copy:{...r.copy,...e.copy},sendButton:{...r.sendButton,...e.sendButton},statusIndicator:{...r.statusIndicator,...e.statusIndicator},voiceRecognition:{...r.voiceRecognition,...e.voiceRecognition},features:(()=>{let t=r.features?.artifacts,n=e.features?.artifacts,i=r.features?.scrollToBottom,a=e.features?.scrollToBottom,o=r.features?.scrollBehavior,s=e.features?.scrollBehavior,c=r.features?.streamAnimation,l=e.features?.streamAnimation,u=r.features?.askUserQuestion,d=e.features?.askUserQuestion,f=r.features?.history,p=e.features?.history,m=t===void 0&&n===void 0?void 0:{...t,...n,layout:{...t?.layout,...n?.layout}},h=i===void 0&&a===void 0?void 0:{...i,...a},g=o===void 0&&s===void 0?void 0:{...o,...s},_=c===void 0&&l===void 0?void 0:{...c,...l},v=u===void 0&&d===void 0?void 0:{...u,...d,styles:{...u?.styles,...d?.styles}},y=f===void 0&&p===void 0?void 0:{...f,...p,copy:{...f?.copy,...p?.copy}};return{...r.features,...e.features,toolCallDisplay:{...r.features?.toolCallDisplay,...e.features?.toolCallDisplay,...e.features?.toolCallDisplay?.layout===void 0&&e.features?.toolCallDisplay?.variant!==void 0?{layout:e.features.toolCallDisplay.variant}:{}},reasoningDisplay:{...r.features?.reasoningDisplay,...e.features?.reasoningDisplay,...e.features?.reasoningDisplay?.layout===void 0&&e.features?.reasoningDisplay?.variant!==void 0?{layout:e.features.reasoningDisplay.variant}:{}},...h===void 0?{}:{scrollToBottom:h},...g===void 0?{}:{scrollBehavior:g},...m===void 0?{}:{artifacts:m},..._===void 0?{}:{streamAnimation:_},...v===void 0?{}:{askUserQuestion:v},...y===void 0?{}:{history:y}}})(),suggestionChips:e.suggestionChips??r.suggestionChips,suggestionChipsConfig:{...r.suggestionChipsConfig,...e.suggestionChipsConfig},layout:{...r.layout,...e.layout,header:{...r.layout?.header,...e.layout?.header},messages:{...r.layout?.messages,...e.layout?.messages,...r.layout?.messages?.user||e.layout?.messages?.user?{user:{...r.layout?.messages?.user,...e.layout?.messages?.user}}:{},...r.layout?.messages?.assistant||e.layout?.messages?.assistant?{assistant:{...r.layout?.messages?.assistant,...e.layout?.messages?.assistant}}:{},avatar:{...r.layout?.messages?.avatar,...e.layout?.messages?.avatar},timestamp:{...r.layout?.messages?.timestamp,...e.layout?.messages?.timestamp}},slots:{...r.layout?.slots,...e.layout?.slots}},markdown:{...r.markdown,...e.markdown,options:{...r.markdown?.options,...e.markdown?.options}},messageActions:{...r.messageActions,...e.messageActions}},e),e,Z),e):i(t(b(r),void 0,Z))}const kt=(e,t)=>{let n=u(`textarea`);n.setAttribute(`data-persona-composer-input`,``),n.placeholder=e?.copy?.inputPlaceholder??`How can I help...`,n.dir=`auto`,ot(n,{submitKey:e?.composer?.submitKey,insertNewlineOnTouchEnter:e?.composer?.insertNewlineOnTouchEnter,coarsePointer:nt(n)}),z(n,e?.composer?.inputAttributes),n.className=`persona-w-full persona-min-h-[24px] persona-resize-none persona-border-none persona-bg-transparent persona-text-sm persona-text-persona-text focus:persona-outline-none focus:persona-border-none persona-composer-textarea`,n.rows=1,n.style.fontFamily=`var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))`,n.style.fontWeight=`var(--persona-input-font-weight, var(--persona-font-weight, 400))`;let r=et(e?.composer?.maxLines,t?.defaultMaxLines??3),i=`${r*20}px`;n.style.maxHeight=i,n.style.overflowY=`auto`;let a=()=>{let e=n.style.maxHeight;if(e!==i){let t=parseFloat(e);if(Number.isFinite(t)&&t>0)return t}let t=r*$e(n);return i=`${t}px`,n.style.maxHeight=i,t},o=()=>{n.addEventListener(`input`,()=>{n.style.height=`auto`;let e=Math.min(n.scrollHeight,a());n.style.height=`${e}px`})};return n.style.border=`none`,n.style.outline=`none`,n.style.borderWidth=`0`,n.style.borderStyle=`none`,n.style.borderColor=`transparent`,n.addEventListener(`focus`,()=>{n.style.border=`none`,n.style.outline=`none`,n.style.borderWidth=`0`,n.style.borderStyle=`none`,n.style.borderColor=`transparent`,n.style.boxShadow=`none`}),n.addEventListener(`blur`,()=>{n.style.border=`none`,n.style.outline=`none`}),{textarea:n,attachAutoResize:o}},At=`[data-persona-glyph-stack]`,jt=(e,t,n=`send`)=>{let r=l(`span`,{className:`persona-composer-glyph-stack`,attrs:{"data-mode":n,"data-persona-glyph-stack":``}});return e.setAttribute(`data-glyph`,`send`),t.setAttribute(`data-glyph`,`stop`),r.append(e,t),r},Mt=/* @__PURE__ */ new WeakMap,$=(e,t,n=!0)=>{Mt.set(e,t);let r=t?.sendButton??{},i=r.useIcon??!1,a=e.getAttribute(`data-persona-send-mode`)===`stop`?`stop`:`send`,o=e=>J(t,`sendButton.${e}`),s=(e,n)=>q(t,`composer.send`,e,n),l=o(`size`)||r.size;e.style.fontSize=i?`18px`:``,e.style.lineHeight=i?`1`:``,e.className=c(`persona-rounded-button disabled:persona-opacity-50 persona-cursor-pointer`,i?`persona-flex persona-items-center persona-justify-center ${m}`:`persona-bg-persona-accent persona-px-4 persona-py-2 persona-text-sm persona-font-semibold`,i&&!o(`backgroundColor`)&&`persona-bg-persona-primary`,!i&&!o(`textColor`)&&`persona-text-white`),X(e,i?l||(s(`size`,``)?s(`size`,`var(--persona-composer-control-size, 40px)`):``):``,i?l:void 0);let u=s(`foreground`,i?`var(--persona-send-button-fg, var(--persona-button-primary-fg, #ffffff))`:`#ffffff`),d=s(`background`,i?`var(--persona-button-primary-bg, var(--persona-primary, #111827))`:`var(--persona-accent, #0f0f0f)`);e.style.color=o(`textColor`)||(a===`stop`&&s(`foreground`,``)?`var(--persona-button-stop-fg, ${u})`:s(`foreground`,``)||(i?u:``)),e.style.backgroundColor=(i?o(`backgroundColor`):void 0)||(s(`background`,``)?a===`stop`?`var(--persona-button-stop-bg, ${d})`:d:``);let f=o(`borderWidth`)||(s(`borderWidth`,``)?s(`borderWidth`,r.borderWidth||`0px`):r.borderWidth||``);e.style.borderWidth=f,e.style.borderStyle=f?`solid`:``,e.style.borderColor=o(`borderColor`)||(s(`borderColor`,``)?s(`borderColor`,r.borderColor||`transparent`):r.borderColor||``),e.style.borderRadius=s(`borderRadius`,``)?s(`borderRadius`,`var(--persona-components-composer-sendButtonRadius, var(--persona-button-radius))`):``,Y(e,s(`padding`,i?`0`:`8px 16px`),i?void 0:o(`paddingX`)||(s(`padding`,``)?void 0:r.paddingX),i?void 0:o(`paddingY`)||(s(`padding`,``)?void 0:r.paddingY));let p=parseFloat(r.iconSize??``)||Math.round((parseFloat(r.size??``)||40)*.5);if(n){if(e.replaceChildren(),i){let t=r.iconStrokeWidth??2,n=r.iconName?R(r.iconName,p,`currentColor`,t):null,i=R(r.stopIconName??`square`,p,`currentColor`,t);n&&i?e.appendChild(jt(n,i,a)):n?e.appendChild(n):e.textContent=r.iconText??`↑`}else e.textContent=a===`stop`?t?.copy?.stopButtonLabel??`Stop`:t?.copy?.sendButtonLabel??`Send`}for(let n of Array.from(e.querySelectorAll(`svg`))){n.style.width=n.style.height=o(`iconSize`)?``:s(`iconSize`,`var(--persona-components-composer-sendIconSize, ${p}px)`);let e=t?.sendButton?.iconStrokeWidth;n.style.strokeWidth=e===void 0?s(`iconStrokeWidth`,``):String(e)}},Nt=e=>{let t=e?.sendButton,n=u(`div`,`persona-send-button-wrapper`),r=l(`button`,{attrs:{type:`submit`,"data-persona-composer-submit":``,"data-persona-send-mode":`send`}});return $(r,e),r.setAttribute(`aria-label`,t?.tooltipText??`Send message`),n.appendChild(r),K({anchor:r,trigger:n,text:()=>r.getAttribute(`aria-label`)??``,enabled:t?.showTooltip??!1}),{button:r,wrapper:n,setMode:e=>{if(r.getAttribute(`data-persona-send-mode`)===e)return;r.setAttribute(`data-persona-send-mode`,e),r.setAttribute(`aria-label`,e===`stop`?t?.stopTooltipText??`Stop generating`:t?.tooltipText??`Send message`);let n=Mt.get(r);$(r,n,!1),r.querySelector(At)?.setAttribute(`data-mode`,e),(n?.sendButton?.useIcon??!1)||(r.textContent=e===`stop`?n?.copy?.stopButtonLabel??`Stop`:n?.copy?.sendButtonLabel??`Send`)},glyphStack:r.querySelector(At)}},Pt=(e,t,n=`idle`,r=`none`)=>{let i=t?.voiceRecognition??{},a=e=>J(t,`voiceRecognition.${e}`),o=(e,n)=>q(t,`voice.control`,e,n),s=a(`iconSize`)||i.iconSize;X(e,s||(o(`size`,``)?o(`size`,`var(--persona-composer-control-size, 40px)`):``),s),e.classList.add(m),e.classList.toggle(p,!s&&!o(`size`,``)),e.style.fontSize=`18px`,e.style.lineHeight=`1`;let c=a(`iconColor`)||J(t,`sendButton.textColor`)||o(`foreground`,`var(--persona-text, #111827)`),l=a(`backgroundColor`)||J(t,`sendButton.backgroundColor`)||o(`background`,i.backgroundColor||`transparent`),u=a(`borderColor`)||o(`borderColor`,i.borderColor||`transparent`),d=a(`borderWidth`)||o(`borderWidth`,i.borderWidth||``);e.style.borderWidth=d,e.style.borderStyle=d?`solid`:``,e.style.borderRadius=o(`borderRadius`,``)?o(`borderRadius`,`var(--persona-button-radius)`):``,Y(e,o(`padding`,``)?o(`padding`,`0px`):``,a(`paddingX`)||(o(`padding`,``)?void 0:i.paddingX),a(`paddingY`)||(o(`padding`,``)?void 0:i.paddingY));let f=a(`recordingBackgroundColor`)||`var(--persona-voice-recording-bg, #ef4444)`,h=a(`recordingIconColor`)||`var(--persona-voice-recording-indicator, #ffffff)`,g=a(`recordingBorderColor`)||`var(--persona-consumer-voice-recording-border, ${i.recordingBorderColor||u})`,_=c,v=l,y=u,b=i.iconName??`mic`;if(n===`recording`)_=h,v=f,y=g;else if(n===`processing`)_=a(`processingIconColor`)||`var(--persona-consumer-voice-processing-icon, ${c})`,v=a(`processingBackgroundColor`)||`var(--persona-consumer-voice-processing-background, ${l})`,y=a(`processingBorderColor`)||`var(--persona-components-voice-processing-border, ${u})`,b=i.processingIconName??`loader`;else if(n===`speaking`){let e=r===`barge-in`;_=a(`speakingIconColor`)||`var(--persona-consumer-voice-speaking-icon, ${e&&a(`recordingIconColor`)||c})`,v=a(`speakingBackgroundColor`)||`var(--persona-components-voice-speaking-background, ${e?f:l})`,y=a(`speakingBorderColor`)||`var(--persona-components-voice-speaking-border, ${e?g:u})`,b=i.speakingIconName??(r===`cancel`?`square`:e?`mic`:`volume-2`)}e.style.color=_,e.style.backgroundColor=v,e.style.borderColor=y,e.setAttribute(`data-state`,n);let x=parseFloat(i.iconSize??``)||24,S=R(b,x,`currentColor`,1.5);if(e.replaceChildren(),S){let t=s||(o(`iconSize`,``)?o(`iconSize`,`var(--persona-composer-control-icon-size, 24px)`):``);S.style.width=S.style.height=t,!s&&o(`iconSize`,``)&&(S.style.flexBasis=t),S.style.strokeWidth=o(`iconStrokeWidth`,`1.5`),e.appendChild(S)}else e.textContent=`🎤`},Ft=e=>{let t=e?.voiceRecognition??{};if(t.enabled!==!0||t.showButton===!1)return null;let n=typeof window<`u`&&(window.webkitSpeechRecognition!==void 0||window.SpeechRecognition!==void 0),r=t.provider?.type===`runtype`,i=t.provider?.type===`custom`||t.dictation?.provider?.type===`custom`;if(!(n||r||i))return null;let a=u(`div`,`persona-send-button-wrapper`),o=l(`button`,{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-composer-control`,attrs:{type:`button`,"data-persona-composer-mic":``,"data-state":`idle`,"aria-label":t.tooltipText??`Start voice recognition`}});Pt(o,e),a.appendChild(o);let s=t.tooltipText??`Start voice recognition`;return K({anchor:o,trigger:a,text:()=>o.getAttribute(`aria-label`)??s,enabled:t.showTooltip??!1}),{button:o,wrapper:a}},It=e=>{let t=e?.attachments??{};if(t.enabled!==!0)return null;let n=u(`div`,`persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2`);n.setAttribute(`data-persona-composer-attachment-previews`,``),n.style.display=`none`;let r=u(`input`);r.type=`file`,r.setAttribute(`data-persona-composer-attachment-input`,``),r.accept=(t.allowedTypes??f).join(`,`),r.multiple=(t.maxFiles??4)>1,r.style.display=`none`,r.setAttribute(`aria-label`,`Attach files`);let i=t.buttonIconName??`paperclip`,a=u(`div`,`persona-send-button-wrapper`),o=l(`button`,{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button ${m} ${p}`,attrs:{type:`button`,"data-persona-composer-attachment-button":``,"aria-label":t.buttonTooltipText??`Attach file`},style:{fontSize:`18px`,lineHeight:`1`}}),s=R(i,24,`currentColor`,1.5);s?o.appendChild(s):o.textContent=`📎`,o.addEventListener(`click`,e=>{e.preventDefault(),r.click()}),a.appendChild(o);let c=t.buttonTooltipText??`Attach file`;return K({anchor:o,trigger:a,text:()=>o.getAttribute(`aria-label`)??c}),{button:o,wrapper:a,input:r,previewsContainer:n}},Lt=e=>{let t=e?.statusIndicator??{},n=t.align===`left`?`persona-text-left`:t.align===`center`?`persona-text-center`:`persona-text-right`,r=u(`div`,`persona-mt-2 ${n} persona-text-xs persona-text-persona-muted`);r.setAttribute(`data-persona-composer-status`,``),Ze(r,t,`idle`);let i=t.idleText??`Online`;if(t.idleLink){let e=u(`a`);e.href=t.idleLink,e.target=`_blank`,e.rel=`noopener noreferrer`,e.textContent=i,e.style.color=`inherit`,e.style.textDecoration=`none`,r.appendChild(e)}else r.textContent=i;return r},Rt=()=>l(`div`,{className:`persona-mb-3 persona-flex persona-flex-wrap persona-gap-2`,attrs:{"data-persona-composer-suggestions":``}});function zt(e){let{config:t,onOpen:n}=e,r=t.buttonIconName??`plus`,i=t.buttonTooltipText??`Add context`,a=u(`div`,`persona-send-button-wrapper`),o=l(`button`,{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-mention-button ${m} ${p}`,attrs:{type:`button`,"data-persona-composer-mention-button":``,"aria-label":i,"aria-haspopup":`listbox`,"aria-expanded":`false`},style:{fontSize:`18px`,lineHeight:`1`}}),s=R(r,24,`currentColor`,1.5);return s?o.appendChild(s):o.textContent=`+`,o.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),n()}),a.appendChild(o),K({anchor:o,trigger:a,text:()=>o.getAttribute(`aria-label`)??i}),{button:o,wrapper:a}}function Bt(e,t={}){if(t.render)return t.render({ref:e,readonly:!!t.readonly});let n=l(`span`,{className:c(`persona-mention-token`,t.readonly&&`persona-mention-token-readonly`),attrs:{"data-mention-source":e.sourceId,title:e.label,role:`img`,"aria-label":`${e.label} mention`}});e.color&&n.style.setProperty(`--persona-mention-token-accent`,e.color);let r=R(e.iconName??`at-sign`,13,`currentColor`,2);if(r){let e=u(`span`,`persona-mention-token-icon`);e.appendChild(r),n.appendChild(e)}return n.appendChild(l(`span`,{className:`persona-mention-token-label`,text:`@${e.label}`})),n}export{it as A,vt as C,z as D,ot as E,qe as F,R as I,et as M,Ze as N,tt as O,Qe as P,mt as S,ut as T,Y as _,It as a,J as b,Nt as c,Z as d,St as f,Et as g,Q as h,$ as i,st as j,nt as k,Lt as l,Ot as m,zt as n,kt as o,Ct as p,Pt as r,Ft as s,Bt as t,Rt as u,X as v,pt as w,K as x,q as y};
|
|
1
|
+
import{f as e,m as t,p as n,r,s as i}from"./chunk-CdpVP6LZ.js";import{r as a,t as o}from"./chunk-BnfM7-qg.js";import{t as s}from"./chunk-CnxIZOzx.js";import{i as c,r as l,t as u}from"./chunk-D5BxWOFB.js";import{r as d}from"./chunk-Bb41bKyp.js";import{t as f}from"./chunk-BlTD-Wgn.js";import{n as p,t as m}from"./chunk-BAkaTZpd.js";import{i as h,n as g,r as _,t as v}from"./chunk-BGPPJ_ui.js";import{t as y}from"./chunk-Bj8Hnh10.js";import{r as b}from"./chunk-Cy1A8vbF.js";import{Activity as x,ArrowDown as S,ArrowLeft as C,ArrowRight as w,ArrowUp as T,ArrowUpRight as E,AtSign as ee,Bot as D,Check as O,ChevronDown as k,ChevronLeft as A,ChevronRight as j,ChevronUp as M,Clipboard as N,ClipboardCopy as P,CodeXml as te,Copy as ne,Download as re,Ellipsis as ie,ExternalLink as ae,Eye as oe,File as se,FileCode as ce,FileSpreadsheet as le,FileText as ue,History as de,ImagePlus as fe,Loader as pe,LoaderCircle as me,Maximize as he,Menu as ge,MessageSquare as _e,Mic as ve,Minimize as ye,Minus as be,PanelLeft as xe,Paperclip as Se,Pencil as Ce,Plus as we,Quote as Te,RefreshCw as Ee,Search as De,Send as Oe,ShieldAlert as ke,ShieldCheck as Ae,ShieldX as je,Square as Me,Star as Ne,ThumbsDown as Pe,ThumbsUp as Fe,Trash as Ie,Trash2 as Le,Upload as Re,Volume2 as ze,X as Be}from"lucide";const Ve={activity:x,"arrow-down":S,"arrow-up":T,"arrow-up-right":E,bot:D,"chevron-down":k,"chevron-up":M,"chevron-right":j,"chevron-left":A,check:O,clipboard:N,"clipboard-copy":P,"code-xml":te,copy:ne,file:se,"file-code":ce,"file-spreadsheet":le,"file-text":ue,"image-plus":fe,loader:pe,"loader-circle":me,mic:ve,paperclip:Se,quote:Te,"refresh-cw":Ee,search:De,send:Oe,"shield-alert":ke,"shield-check":Ae,"shield-x":je,square:Me,"square-text":[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M7 8h10M7 12h10M7 16h6`}]],"thumbs-down":Pe,"thumbs-up":Fe,upload:Re,"volume-2":ze,"voice-bars":[[`path`,{d:`M4 10v4`}],[`path`,{d:`M8 6v12`}],[`path`,{d:`M12 3v18`}],[`path`,{d:`M16 7v10`}],[`path`,{d:`M20 10v4`}]],x:Be,"at-sign":ee,"arrow-left":C,"arrow-right":w,"external-link":ae,ellipsis:ie,menu:ge,"panel-left":xe,plus:we,minus:be,pencil:Ce,trash:Ie,"trash-2":Le,download:re,maximize:he,minimize:ye,"message-square":_e,star:Ne,eye:oe,history:de},He=/* @__PURE__ */ `brain.toolbox.wrench.circle.database.terminal.user.mail.phone.calendar.clock.building.map-pin.lock.key.credit-card.hash.globe.link.circle-check.circle-x.triangle-alert.info.ban.shield.ellipsis-vertical.house.pen-line.save.share.funnel.settings.rotate-cw.shopping-cart.shopping-bag.package.truck.tag.gift.receipt.wallet.store.dollar-sign.percent.play.pause.volume-x.camera.image.film.headphones.message-circle.bell.heart.eye-off.bookmark.calendar-days.timer.folder.folder-open.files.chart-column.sparkles.zap.sun.moon.flag.lightbulb.monitor.smartphone`.split(`.`),F=new Map(Object.entries(Ve)),I=/* @__PURE__ */ new Map;let L=!1;const Ue=/* @__PURE__ */ new Set,We=e=>{let t=[...Ue];e&&Ue.clear();for(let e of t)try{e()}catch{}},Ge=()=>{let e=0;for(let[t,n]of I){let r=F.get(n);if(!r)continue;I.delete(t),e++;let i=s(r);if(i)for(t.removeAttribute(`data-persona-icon-pending`);i.firstChild;)t.appendChild(i.firstChild)}return e},Ke=e=>{if(!L){for(let[t,n]of Object.entries(e))F.has(t)||F.set(t,n);L=!0,Ge(),We(!0)}},qe=()=>L?null:o().then(e=>Ke(e.EXTRA_LUCIDE_ICONS)),Je=()=>{qe()?.catch(e=>{console.warn(`[Persona] Failed to load the icons-extra chunk`,e)})},Ye=(e,t,n)=>{let r=s([],e,t,n);return r.setAttribute(`data-persona-icon-pending`,`true`),r},R=(e,t=24,n=`currentColor`,r=2)=>{let i=F.get(e);if(i)return s(i,t,n,r);if(He.includes(e)){let i=Ye(t,n,r);return I.size>=500&&I.delete(I.keys().next().value),I.set(i,e),Je(),i}return console.warn(`Unknown Persona icon "${e}". Use registerIcons().`),null},Xe=(e,t)=>e.visible!==!1&&(e.mode!==`transient`||t===`connecting`||t===`paused`||t===`resuming`||t===`error`),Ze=(e,t,n)=>{let r=t.mode===`transient`,i=e.hasAttribute(`data-persona-composer-reason`)||e.hasAttribute(`data-persona-composer-notice`);e.style.display=Xe(t,n)||r&&i&&t.visible!==!1?``:`none`,e.classList.toggle(`persona-mt-2`,!r),e.classList.toggle(`persona-mb-2`,r)},Qe=(e,t,n)=>{t.parentElement&&e.parentElement===t.parentElement&&(n.mode===`transient`?e.nextElementSibling!==t&&t.before(e):t.nextElementSibling!==e&&t.after(e))};function $e(e){let t=e.ownerDocument?.defaultView;if(!t?.getComputedStyle)return 20;let n=t.getComputedStyle(e).lineHeight;if(!n||!n.trim().endsWith(`px`))return 20;let r=parseFloat(n);return Number.isFinite(r)&&r>0?r:20}function et(e,t){return typeof e!=`number`||!Number.isFinite(e)?t:e>0?e:t}function tt(e,t){e.style.maxHeight=`${t*$e(e)}px`,e.style.overflowY=`auto`}function nt(e){let t=e?.ownerDocument?.defaultView??(typeof window<`u`?window:null);if(!t||typeof t.matchMedia!=`function`)return!1;try{return t.matchMedia(`(pointer: coarse)`).matches===!0}catch{return!1}}function rt(e){return e.insertNewlineOnTouchEnter===!0&&e.coarsePointer===!0}function it(e,t){if(e.key!==`Enter`||e.shiftKey||e.isComposing)return!1;let n=e.metaKey===!0||e.ctrlKey===!0,r=t.submitKey??`enter`;return r===`none`?!1:r===`mod-enter`?n:n||!rt(t)}function at(e){return(e.submitKey??`enter`)===`enter`?rt(e)?`enter`:`send`:`enter`}function ot(e,t){e.setAttribute(`enterkeyhint`,at(t))}function z(e,t){let n=t?.autocomplete;e.setAttribute(`autocomplete`,typeof n==`string`&&n?n:`off`);let r=(t,n)=>{n===void 0?e.removeAttribute(t):e.setAttribute(t,n)};r(`autocapitalize`,typeof t?.autocapitalize==`string`?t.autocapitalize:void 0),r(`spellcheck`,typeof t?.spellcheck==`boolean`?String(t.spellcheck):void 0),r(`inputmode`,typeof t?.inputmode==`string`&&t.inputmode?t.inputmode:void 0),r(`aria-label`,typeof t?.ariaLabel==`string`&&t.ariaLabel?t.ariaLabel:void 0)}function st(e){return e===!0?{disabled:!0}:!e||typeof e!=`object`?{disabled:!1}:{disabled:!0,reason:typeof e.reason==`string`&&e.reason?e.reason:void 0}}const{setLoader:ct,load:lt}=a({fallbackImport:()=>import(`./chunk-Co3VVwGe.js`)}),ut=lt,{setLoader:dt,load:ft}=a({fallbackImport:()=>import(`./chunk-Bkma5hIU.js`),resetOnSetLoader:!0}),pt=ft;let B=400,V=300,H=0;const U=e=>Math.max(0,e);function mt(e){e.delayMs!==void 0&&(B=U(e.delayMs)),e.skipDelayMs!==void 0&&(V=U(e.skipDelayMs))}const ht=()=>Date.now()<H,gt=e=>{H=e>0?Date.now()+e:0},W=/* @__PURE__ */ new WeakMap,_t=e=>typeof e.closest==`function`&&e.closest(`[data-persona-tooltip-suppressed]`)!==null;function vt(e){W.get(e)?.hide()}const yt=e=>e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&`host`in e,bt=e=>{let t=e.getRootNode?.();return yt(t)?t:e.closest(`dialog[open]`)??e.ownerDocument.body},G=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),xt=[...[`background`,`foreground`,`hint-fg`,`radius`,`font-size`,`padding`,`max-width`,`shadow`,`arrow-display`].map(e=>`--persona-tooltip-${e}`),`--persona-font-family`,`--persona-radius-sm`];function K(e){W.get(e.anchor)?.destroy();let{anchor:t,trigger:n=t,text:r,hint:i,enabled:a=!0,gap:o=8,viewportPadding:s=8}=e,c=()=>t.ownerDocument,l=()=>c().defaultView??window,u=null,f=null,p=null,m=null,h,g=!1,_=!1,v=!1,y=()=>(typeof r==`function`?r():r).trim(),b=()=>(typeof i==`function`?i():i??``).trim(),x=()=>U(e.delayMs??B),S=()=>U(e.skipDelayMs??V),C=()=>{h!==void 0&&(l().clearTimeout(h),h=void 0)},w=()=>{C();let e=u!==null;m?.(),m=null,u?.remove(),u=null,f=null,p=null,e&>(S())},T=()=>{if(!u)return;let e=c(),n=l(),r=t.getBoundingClientRect(),i=u.getBoundingClientRect(),a=e.documentElement.clientWidth||n.innerWidth,d=e.documentElement.clientHeight||n.innerHeight,f=a-s-i.width,p=r.left+r.width/2-i.width/2,m=G(p,s,f),h=r.top-s,g=d-s-r.bottom,_=h>=i.height+o||h>=g?`top`:`bottom`,v=_===`top`?r.top-o-i.height:r.bottom+o,y=d-s-i.height,b=G(v,s,y),x=r.left+r.width/2,S=Math.max(10,i.width-10),C=G(x-m,10,S);u.dataset.placement=_,u.style.left=`${m}px`,u.style.top=`${b}px`,u.style.setProperty(`--persona-tooltip-arrow-x`,`${C}px`)},E=()=>{if(v||!a||u||!t.isConnected||_t(t))return;let e=y(),n=bt(t);if(!e||!n)return;let r=c(),i=l();u=r.createElement(`div`),u.className=`persona-control-tooltip`,u.setAttribute(`role`,`tooltip`),u.dataset.state=`measuring`,u.style.zIndex=String(d);let o=i.getComputedStyle?.(t);if(o){for(let e of xt){let t=o.getPropertyValue(e).trim();t&&u.style.setProperty(e,t)}o.fontFamily&&(u.style.fontFamily=o.fontFamily)}f=r.createElement(`span`),f.className=`persona-control-tooltip__label`,f.textContent=e,u.appendChild(f);let s=b();s&&(p=r.createElement(`span`),p.className=`persona-control-tooltip__hint`,p.textContent=s,u.appendChild(p));let h=r.createElement(`span`);h.className=`persona-control-tooltip__arrow`,u.appendChild(h),n.appendChild(u),T(),u.dataset.state=`open`;let g=()=>{if(!t.isConnected){w();return}f&&(f.textContent=y()),p&&(p.textContent=b());let e=bt(t);u&&e&&u.parentNode!==e&&e.appendChild(u),T()};i.addEventListener(`scroll`,g,!0),i.addEventListener(`resize`,g);let _=t.closest(`[data-persona-root]`);_?.addEventListener(`persona:internal:host-moved`,g);let x=t.getRootNode(),S=yt(x)?x:r.documentElement,C=typeof MutationObserver>`u`?null:new MutationObserver(()=>{t.isConnected||w()});C?.observe(S,{childList:!0,subtree:!0}),m=()=>{i.removeEventListener(`scroll`,g,!0),i.removeEventListener(`resize`,g),_?.removeEventListener(`persona:internal:host-moved`,g),C?.disconnect()}},ee=e=>{v||u||(C(),e||x()<=0||ht()?E():h=l().setTimeout(()=>{h=void 0,E()},x()))},D=()=>{g||_?ee(_):w()},O=()=>{let e=l();e.matchMedia&&e.matchMedia(`(hover: none)`).matches||(g=!0,D())},k=()=>{g=!1,D()},A=()=>{try{_=t.matches(`:focus-visible`)}catch{_=!0}D()},j=()=>{_=!1,D()},M=()=>{g=!1,_=!1,w()},N=e=>{e.key===`Escape`&&M()};n.addEventListener(`mouseenter`,O),n.addEventListener(`mouseleave`,k),t.addEventListener(`focus`,A),t.addEventListener(`blur`,j),t.addEventListener(`keydown`,N),t.addEventListener(`click`,M);let P={get isOpen(){return u!==null},show:E,hide:w,reposition:T,destroy:()=>{v||(v=!0,w(),n.removeEventListener(`mouseenter`,O),n.removeEventListener(`mouseleave`,k),t.removeEventListener(`focus`,A),t.removeEventListener(`blur`,j),t.removeEventListener(`keydown`,N),t.removeEventListener(`click`,M),W.delete(t))}};return W.set(t,P),P}const q=(e,t,n,r)=>{let[i,a]=t.split(`.`);return[e?.theme,e?.darkTheme].some(e=>e?.components?.[i]?.[a]?.[n]!==void 0)?`var(--persona-components-${t.replace(`.`,`-`)}-${n}, ${r})`:r},J=(e,t)=>{let n=e&&r(e,t);return typeof n==`string`&&n?n:void 0},Y=(e,t,n,r)=>{let i=t.startsWith(`var(`);e.classList.toggle(`persona-theme-padding`,i),e.style.padding=i?``:t,i?e.style.setProperty(`--persona-theme-padding`,t):e.style.removeProperty(`--persona-theme-padding`),n&&(e.style.paddingLeft=e.style.paddingRight=n),r&&(e.style.paddingTop=e.style.paddingBottom=r)},X=(e,t,n)=>{let r=t.startsWith(`var(`)&&t.includes(`--persona-components-`);e.classList.toggle(`persona-control-size`,r),r?e.style.setProperty(`--persona-control-size`,t):e.style.removeProperty(`--persona-control-size`),e.style.width=e.style.height=t,e.style.minWidth=e.style.minHeight=n??``},St=`min(440px, calc(100vw - 24px))`,Ct=`40px`,wt={apiUrl:`https://api.runtype.com/api/chat/dispatch`,clientToken:void 0,agentId:void 0,target:void 0,theme:void 0,darkTheme:void 0,colorScheme:`light`,tooltip:{delayMs:400,skipDelayMs:300},launcher:{enabled:!0,mountMode:`floating`,dock:{side:`right`,width:`420px`},title:`Chat Assistant`,subtitle:`Here to help you get answers fast`,agentIconText:`💬`,agentIconName:`bot`,headerIconName:`bot`,position:`bottom-right`,width:St,heightOffset:0,autoExpand:!1,callToActionIconHidden:!1,agentIconSize:`40px`,headerIconSize:Ct,closeButtonPaddingX:`0px`,closeButtonPaddingY:`0px`,callToActionIconName:`arrow-up-right`,callToActionIconText:``,callToActionIconSize:`32px`,callToActionIconPadding:`5px`,callToActionIconColor:void 0,callToActionIconBackgroundColor:void 0,closeButtonBackgroundColor:`transparent`,clearChat:{backgroundColor:`transparent`,borderColor:`transparent`,enabled:!0,placement:`inline`,iconName:`refresh-cw`,showTooltip:!0,tooltipText:`Clear chat`,paddingX:`0px`,paddingY:`0px`},headerIconHidden:!1,border:void 0,shadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)`},copy:{inputPlaceholder:`How can I help...`,sendButtonLabel:`Send`},sendButton:{borderWidth:`0px`,paddingX:`12px`,paddingY:`10px`,borderColor:void 0,useIcon:!0,iconText:`↑`,showTooltip:!0,tooltipText:`Send message`,iconName:`send`},statusIndicator:{visible:!0,idleText:`Online`,connectingText:`Connecting…`,connectedText:`Streaming…`,errorText:`Offline`},voiceRecognition:{enabled:!0,pauseDuration:2e3,iconName:`mic`,borderWidth:`0px`,iconColor:void 0,backgroundColor:`transparent`,borderColor:`transparent`,recordingIconColor:void 0,recordingBackgroundColor:void 0,recordingBorderColor:`transparent`,showTooltip:!0,tooltipText:`Start voice recognition`},features:{showReasoning:!0,showToolCalls:!0,scrollToBottom:{enabled:!0,iconName:`arrow-down`,label:``,streamingIndicator:`arrow`,scrollBehavior:`instant`,scrollDurationMs:220,transition:`none`},scrollBehavior:{mode:`anchor-top`,anchorTopOffset:16,showActivityWhilePinned:!0},toolCallDisplay:_,reasoningDisplay:v,streamAnimation:{type:`none`,placeholder:`none`,speed:120,duration:1800},askUserQuestion:{enabled:!0,slideInMs:180,freeTextLabel:`Other…`,freeTextPlaceholder:`Type your answer…`,submitLabel:`Send`},history:{enabled:!1,presentation:`panel`,showScopeStatus:!0,showDelete:!0,showDeleteAll:!0}},suggestionChips:[`Show me what you can help with`,`Walk me through getting started`,`Answer a question about this page`],suggestionChipsConfig:{fontFamily:`sans-serif`,fontWeight:`500`,paddingX:`12px`,paddingY:`6px`},layout:{header:{layout:`default`,showIcon:!0,showTitle:!0,showSubtitle:!0,showCloseButton:!0,showClearChat:!0},messages:{layout:`bubble`,avatar:{show:!1,position:`left`},timestamp:{show:!1,position:`below`},groupConsecutive:!1},slots:{}},markdown:{options:{gfm:!0,breaks:!0},disableDefaultStyles:!1},messageActions:{enabled:!0,showCopy:!0,showUpvote:!1,showDownvote:!1,visibility:`hover`,align:`right`,layout:`pill-inside`},debug:!1},Tt={},Z={colorScheme:`light`,errorDisplay:`block`,messageActions:{visibility:void 0},suggestionChipsConfig:{fontWeight:void 0},approval:y,loadingIndicator:{variant:`label`},launcher:{variant:`circle`,width:`min(400px, calc(100vw - 24px))`,headerIconSize:`20px`},features:{artifacts:{enabled:!0},scrollToBottom:{streamingIndicator:`dots`,transition:`fade`,scrollBehavior:`smooth`},toolCallDisplay:h,reasoningDisplay:g},composer:{layout:`single-row`,placement:`overlay`},sendButton:{iconName:`arrow-up`},statusIndicator:{mode:`transient`},layout:{contentMaxWidth:`768px`,topFade:!0,header:{showSubtitle:!1},messages:{assistant:{width:`full`}}}};function Et(e){return e?.future?.v5Defaults===!0?`v5`:`v4`}function Q(t){let n=Et(t)===`v5`?Z:Tt;return e(wt,n)}Q();function Dt(t,n){if(t||n)return t?n?e(t,n):t:n}function Ot(e){let r=Q(e);return e?i(t(b({...r,...e,colorScheme:n(e,[`colorScheme`]).includes(`colorScheme`)?e.colorScheme:e.brand?void 0:r.colorScheme,...r.approval||e.approval!==void 0?{approval:e.approval!==!1&&{...r.approval||{},...e.approval}}:{},theme:Dt(r.theme,e.theme),darkTheme:Dt(r.darkTheme,e.darkTheme),launcher:{...r.launcher,...e.launcher,dock:{...r.launcher?.dock,...e.launcher?.dock},clearChat:{...r.launcher?.clearChat,...e.launcher?.clearChat}},...r.composer||e.composer?{composer:{...r.composer,...e.composer}}:{},tooltip:{...r.tooltip,...e.tooltip},copy:{...r.copy,...e.copy},sendButton:{...r.sendButton,...e.sendButton},statusIndicator:{...r.statusIndicator,...e.statusIndicator},voiceRecognition:{...r.voiceRecognition,...e.voiceRecognition},features:(()=>{let t=r.features?.artifacts,n=e.features?.artifacts,i=r.features?.scrollToBottom,a=e.features?.scrollToBottom,o=r.features?.scrollBehavior,s=e.features?.scrollBehavior,c=r.features?.streamAnimation,l=e.features?.streamAnimation,u=r.features?.askUserQuestion,d=e.features?.askUserQuestion,f=r.features?.history,p=e.features?.history,m=t===void 0&&n===void 0?void 0:{...t,...n,layout:{...t?.layout,...n?.layout}},h=i===void 0&&a===void 0?void 0:{...i,...a},g=o===void 0&&s===void 0?void 0:{...o,...s},_=c===void 0&&l===void 0?void 0:{...c,...l},v=u===void 0&&d===void 0?void 0:{...u,...d,styles:{...u?.styles,...d?.styles}},y=f===void 0&&p===void 0?void 0:{...f,...p,copy:{...f?.copy,...p?.copy}};return{...r.features,...e.features,toolCallDisplay:{...r.features?.toolCallDisplay,...e.features?.toolCallDisplay,...e.features?.toolCallDisplay?.layout===void 0&&e.features?.toolCallDisplay?.variant!==void 0?{layout:e.features.toolCallDisplay.variant}:{}},reasoningDisplay:{...r.features?.reasoningDisplay,...e.features?.reasoningDisplay,...e.features?.reasoningDisplay?.layout===void 0&&e.features?.reasoningDisplay?.variant!==void 0?{layout:e.features.reasoningDisplay.variant}:{}},...h===void 0?{}:{scrollToBottom:h},...g===void 0?{}:{scrollBehavior:g},...m===void 0?{}:{artifacts:m},..._===void 0?{}:{streamAnimation:_},...v===void 0?{}:{askUserQuestion:v},...y===void 0?{}:{history:y}}})(),suggestionChips:e.suggestionChips??r.suggestionChips,suggestionChipsConfig:{...r.suggestionChipsConfig,...e.suggestionChipsConfig},layout:{...r.layout,...e.layout,header:{...r.layout?.header,...e.layout?.header},messages:{...r.layout?.messages,...e.layout?.messages,...r.layout?.messages?.user||e.layout?.messages?.user?{user:{...r.layout?.messages?.user,...e.layout?.messages?.user}}:{},...r.layout?.messages?.assistant||e.layout?.messages?.assistant?{assistant:{...r.layout?.messages?.assistant,...e.layout?.messages?.assistant}}:{},avatar:{...r.layout?.messages?.avatar,...e.layout?.messages?.avatar},timestamp:{...r.layout?.messages?.timestamp,...e.layout?.messages?.timestamp}},slots:{...r.layout?.slots,...e.layout?.slots}},markdown:{...r.markdown,...e.markdown,options:{...r.markdown?.options,...e.markdown?.options}},messageActions:{...r.messageActions,...e.messageActions}},e),e,Z),e):i(t(b(r),void 0,Z))}const kt=(e,t)=>{let n=u(`textarea`);n.setAttribute(`data-persona-composer-input`,``),n.placeholder=e?.copy?.inputPlaceholder??`How can I help...`,n.dir=`auto`,ot(n,{submitKey:e?.composer?.submitKey,insertNewlineOnTouchEnter:e?.composer?.insertNewlineOnTouchEnter,coarsePointer:nt(n)}),z(n,e?.composer?.inputAttributes),n.className=`persona-w-full persona-min-h-[24px] persona-resize-none persona-border-none persona-bg-transparent persona-text-sm persona-text-persona-text focus:persona-outline-none focus:persona-border-none persona-composer-textarea`,n.rows=1,n.style.fontFamily=`var(--persona-input-font-family, var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif))`,n.style.fontWeight=`var(--persona-input-font-weight, var(--persona-font-weight, 400))`;let r=et(e?.composer?.maxLines,t?.defaultMaxLines??3),i=`${r*20}px`;n.style.maxHeight=i,n.style.overflowY=`auto`;let a=()=>{let e=n.style.maxHeight;if(e!==i){let t=parseFloat(e);if(Number.isFinite(t)&&t>0)return t}let t=r*$e(n);return i=`${t}px`,n.style.maxHeight=i,t},o=()=>{n.addEventListener(`input`,()=>{n.style.height=`auto`;let e=Math.min(n.scrollHeight,a());n.style.height=`${e}px`})};return n.style.border=`none`,n.style.outline=`none`,n.style.borderWidth=`0`,n.style.borderStyle=`none`,n.style.borderColor=`transparent`,n.addEventListener(`focus`,()=>{n.style.border=`none`,n.style.outline=`none`,n.style.borderWidth=`0`,n.style.borderStyle=`none`,n.style.borderColor=`transparent`,n.style.boxShadow=`none`}),n.addEventListener(`blur`,()=>{n.style.border=`none`,n.style.outline=`none`}),{textarea:n,attachAutoResize:o}},At=`[data-persona-glyph-stack]`,jt=(e,t,n=`send`)=>{let r=l(`span`,{className:`persona-composer-glyph-stack`,attrs:{"data-mode":n,"data-persona-glyph-stack":``}});return e.setAttribute(`data-glyph`,`send`),t.setAttribute(`data-glyph`,`stop`),r.append(e,t),r},Mt=/* @__PURE__ */ new WeakMap,$=(e,t,n=!0)=>{Mt.set(e,t);let r=t?.sendButton??{},i=r.useIcon??!1,a=e.getAttribute(`data-persona-send-mode`)===`stop`?`stop`:`send`,o=e=>J(t,`sendButton.${e}`),s=(e,n)=>q(t,`composer.send`,e,n),l=o(`size`)||r.size;e.style.fontSize=i?`18px`:``,e.style.lineHeight=i?`1`:``,e.className=c(`persona-rounded-button disabled:persona-opacity-50 persona-cursor-pointer`,i?`persona-flex persona-items-center persona-justify-center ${m}`:`persona-bg-persona-accent persona-px-4 persona-py-2 persona-text-sm persona-font-semibold`,i&&!o(`backgroundColor`)&&`persona-bg-persona-primary`,!i&&!o(`textColor`)&&`persona-text-white`),X(e,i?l||(s(`size`,``)?s(`size`,`var(--persona-composer-control-size, 40px)`):``):``,i?l:void 0);let u=s(`foreground`,i?`var(--persona-send-button-fg, var(--persona-button-primary-fg, #ffffff))`:`#ffffff`),d=s(`background`,i?`var(--persona-button-primary-bg, var(--persona-primary, #111827))`:`var(--persona-accent, #0f0f0f)`);e.style.color=o(`textColor`)||(a===`stop`&&s(`foreground`,``)?`var(--persona-button-stop-fg, ${u})`:s(`foreground`,``)||(i?u:``)),e.style.backgroundColor=(i?o(`backgroundColor`):void 0)||(s(`background`,``)?a===`stop`?`var(--persona-button-stop-bg, ${d})`:d:``);let f=o(`borderWidth`)||(s(`borderWidth`,``)?s(`borderWidth`,r.borderWidth||`0px`):r.borderWidth||``);e.style.borderWidth=f,e.style.borderStyle=f?`solid`:``,e.style.borderColor=o(`borderColor`)||(s(`borderColor`,``)?s(`borderColor`,r.borderColor||`transparent`):r.borderColor||``),e.style.borderRadius=s(`borderRadius`,``)?s(`borderRadius`,`var(--persona-components-composer-sendButtonRadius, var(--persona-button-radius))`):``,Y(e,s(`padding`,i?`0`:`8px 16px`),i?void 0:o(`paddingX`)||(s(`padding`,``)?void 0:r.paddingX),i?void 0:o(`paddingY`)||(s(`padding`,``)?void 0:r.paddingY));let p=parseFloat(r.iconSize??``)||Math.round((parseFloat(r.size??``)||40)*.5);if(n){if(e.replaceChildren(),i){let t=r.iconStrokeWidth??2,n=r.iconName?R(r.iconName,p,`currentColor`,t):null,i=R(r.stopIconName??`square`,p,`currentColor`,t);n&&i?e.appendChild(jt(n,i,a)):n?e.appendChild(n):e.textContent=r.iconText??`↑`}else e.textContent=a===`stop`?t?.copy?.stopButtonLabel??`Stop`:t?.copy?.sendButtonLabel??`Send`}for(let n of Array.from(e.querySelectorAll(`svg`))){n.style.width=n.style.height=o(`iconSize`)?``:s(`iconSize`,`var(--persona-components-composer-sendIconSize, ${p}px)`);let e=t?.sendButton?.iconStrokeWidth;n.style.strokeWidth=e===void 0?s(`iconStrokeWidth`,``):String(e)}},Nt=e=>{let t=e?.sendButton,n=u(`div`,`persona-send-button-wrapper`),r=l(`button`,{attrs:{type:`submit`,"data-persona-composer-submit":``,"data-persona-send-mode":`send`}});return $(r,e),r.setAttribute(`aria-label`,t?.tooltipText??`Send message`),n.appendChild(r),K({anchor:r,trigger:n,text:()=>r.getAttribute(`aria-label`)??``,enabled:t?.showTooltip??!1}),{button:r,wrapper:n,setMode:e=>{if(r.getAttribute(`data-persona-send-mode`)===e)return;r.setAttribute(`data-persona-send-mode`,e),r.setAttribute(`aria-label`,e===`stop`?t?.stopTooltipText??`Stop generating`:t?.tooltipText??`Send message`);let n=Mt.get(r);$(r,n,!1),r.querySelector(At)?.setAttribute(`data-mode`,e),(n?.sendButton?.useIcon??!1)||(r.textContent=e===`stop`?n?.copy?.stopButtonLabel??`Stop`:n?.copy?.sendButtonLabel??`Send`)},glyphStack:r.querySelector(At)}},Pt=(e,t,n=`idle`,r=`none`)=>{let i=t?.voiceRecognition??{},a=e=>J(t,`voiceRecognition.${e}`),o=(e,n)=>q(t,`voice.control`,e,n),s=a(`iconSize`)||i.iconSize;X(e,s||(o(`size`,``)?o(`size`,`var(--persona-composer-control-size, 40px)`):``),s),e.classList.add(m),e.classList.toggle(p,!s&&!o(`size`,``)),e.style.fontSize=`18px`,e.style.lineHeight=`1`;let c=a(`iconColor`)||J(t,`sendButton.textColor`)||o(`foreground`,`var(--persona-text, #111827)`),l=a(`backgroundColor`)||J(t,`sendButton.backgroundColor`)||o(`background`,i.backgroundColor||`transparent`),u=a(`borderColor`)||o(`borderColor`,i.borderColor||`transparent`),d=a(`borderWidth`)||o(`borderWidth`,i.borderWidth||``);e.style.borderWidth=d,e.style.borderStyle=d?`solid`:``,e.style.borderRadius=o(`borderRadius`,``)?o(`borderRadius`,`var(--persona-button-radius)`):``,Y(e,o(`padding`,``)?o(`padding`,`0px`):``,a(`paddingX`)||(o(`padding`,``)?void 0:i.paddingX),a(`paddingY`)||(o(`padding`,``)?void 0:i.paddingY));let f=a(`recordingBackgroundColor`)||`var(--persona-voice-recording-bg, #ef4444)`,h=a(`recordingIconColor`)||`var(--persona-voice-recording-indicator, #ffffff)`,g=a(`recordingBorderColor`)||`var(--persona-consumer-voice-recording-border, ${i.recordingBorderColor||u})`,_=c,v=l,y=u,b=i.iconName??`mic`;if(n===`recording`)_=h,v=f,y=g;else if(n===`processing`)_=a(`processingIconColor`)||`var(--persona-consumer-voice-processing-icon, ${c})`,v=a(`processingBackgroundColor`)||`var(--persona-consumer-voice-processing-background, ${l})`,y=a(`processingBorderColor`)||`var(--persona-components-voice-processing-border, ${u})`,b=i.processingIconName??`loader`;else if(n===`speaking`){let e=r===`barge-in`;_=a(`speakingIconColor`)||`var(--persona-consumer-voice-speaking-icon, ${e&&a(`recordingIconColor`)||c})`,v=a(`speakingBackgroundColor`)||`var(--persona-components-voice-speaking-background, ${e?f:l})`,y=a(`speakingBorderColor`)||`var(--persona-components-voice-speaking-border, ${e?g:u})`,b=i.speakingIconName??(r===`cancel`?`square`:e?`mic`:`volume-2`)}e.style.color=_,e.style.backgroundColor=v,e.style.borderColor=y,e.setAttribute(`data-state`,n);let x=parseFloat(i.iconSize??``)||24,S=R(b,x,`currentColor`,1.5);if(e.replaceChildren(),S){let t=s||(o(`iconSize`,``)?o(`iconSize`,`var(--persona-composer-control-icon-size, 24px)`):``);S.style.width=S.style.height=t,!s&&o(`iconSize`,``)&&(S.style.flexBasis=t),S.style.strokeWidth=o(`iconStrokeWidth`,`1.5`),e.appendChild(S)}else e.textContent=`🎤`},Ft=e=>{let t=e?.voiceRecognition??{};if(t.enabled!==!0||t.showButton===!1)return null;let n=typeof window<`u`&&(window.webkitSpeechRecognition!==void 0||window.SpeechRecognition!==void 0),r=t.provider?.type===`runtype`,i=t.provider?.type===`custom`||t.dictation?.provider?.type===`custom`;if(!(n||r||i))return null;let a=u(`div`,`persona-send-button-wrapper`),o=l(`button`,{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-composer-control`,attrs:{type:`button`,"data-persona-composer-mic":``,"data-state":`idle`,"aria-label":t.tooltipText??`Start voice recognition`}});Pt(o,e),a.appendChild(o);let s=t.tooltipText??`Start voice recognition`;return K({anchor:o,trigger:a,text:()=>o.getAttribute(`aria-label`)??s,enabled:t.showTooltip??!1}),{button:o,wrapper:a}},It=e=>{let t=e?.attachments??{};if(t.enabled!==!0)return null;let n=u(`div`,`persona-attachment-previews persona-flex persona-flex-wrap persona-gap-2 persona-mb-2`);n.setAttribute(`data-persona-composer-attachment-previews`,``),n.style.display=`none`;let r=u(`input`);r.type=`file`,r.setAttribute(`data-persona-composer-attachment-input`,``),r.accept=(t.allowedTypes??f).join(`,`),r.multiple=(t.maxFiles??4)>1,r.style.display=`none`,r.setAttribute(`aria-label`,`Attach files`);let i=t.buttonIconName??`paperclip`,a=u(`div`,`persona-send-button-wrapper`),o=l(`button`,{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-attachment-button ${m} ${p}`,attrs:{type:`button`,"data-persona-composer-attachment-button":``,"aria-label":t.buttonTooltipText??`Attach file`},style:{fontSize:`18px`,lineHeight:`1`}}),s=R(i,24,`currentColor`,1.5);s?o.appendChild(s):o.textContent=`📎`,o.addEventListener(`click`,e=>{e.preventDefault(),r.click()}),a.appendChild(o);let c=t.buttonTooltipText??`Attach file`;return K({anchor:o,trigger:a,text:()=>o.getAttribute(`aria-label`)??c}),{button:o,wrapper:a,input:r,previewsContainer:n}},Lt=e=>{let t=e?.statusIndicator??{},n=t.align===`left`?`persona-text-left`:t.align===`center`?`persona-text-center`:`persona-text-right`,r=u(`div`,`persona-mt-2 ${n} persona-text-xs persona-text-persona-muted`);r.setAttribute(`data-persona-composer-status`,``),Ze(r,t,`idle`);let i=t.idleText??`Online`;if(t.idleLink){let e=u(`a`);e.href=t.idleLink,e.target=`_blank`,e.rel=`noopener noreferrer`,e.textContent=i,e.style.color=`inherit`,e.style.textDecoration=`none`,r.appendChild(e)}else r.textContent=i;return r},Rt=()=>l(`div`,{className:`persona-mb-3 persona-flex persona-flex-wrap persona-gap-2`,attrs:{"data-persona-composer-suggestions":``}});function zt(e){let{config:t,onOpen:n}=e,r=t.buttonIconName??`plus`,i=t.buttonTooltipText??`Add context`,a=u(`div`,`persona-send-button-wrapper`),o=l(`button`,{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-mention-button ${m} ${p}`,attrs:{type:`button`,"data-persona-composer-mention-button":``,"aria-label":i,"aria-haspopup":`listbox`,"aria-expanded":`false`},style:{fontSize:`18px`,lineHeight:`1`}}),s=R(r,24,`currentColor`,1.5);return s?o.appendChild(s):o.textContent=`+`,o.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),n()}),a.appendChild(o),K({anchor:o,trigger:a,text:()=>o.getAttribute(`aria-label`)??i}),{button:o,wrapper:a}}function Bt(e,t={}){if(t.render)return t.render({ref:e,readonly:!!t.readonly});let n=l(`span`,{className:c(`persona-mention-token`,t.readonly&&`persona-mention-token-readonly`),attrs:{"data-mention-source":e.sourceId,title:e.label,role:`img`,"aria-label":`${e.label} mention`}});e.color&&n.style.setProperty(`--persona-mention-token-accent`,e.color);let r=R(e.iconName??`at-sign`,13,`currentColor`,2);if(r){let e=u(`span`,`persona-mention-token-icon`);e.appendChild(r),n.appendChild(e)}return n.appendChild(l(`span`,{className:`persona-mention-token-label`,text:`@${e.label}`})),n}export{it as A,vt as C,z as D,ot as E,qe as F,R as I,et as M,Ze as N,tt as O,Qe as P,mt as S,ut as T,Y as _,It as a,J as b,Nt as c,Z as d,St as f,Et as g,Q as h,$ as i,st as j,nt as k,Lt as l,Ot as m,zt as n,kt as o,Ct as p,Pt as r,Ft as s,Bt as t,Rt as u,X as v,pt as w,K as x,q as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
1
|
+
import{a as e}from"./chunk-CdpVP6LZ.js";import{r as t}from"./chunk-BnfM7-qg.js";import{t as n}from"./chunk-DbD5qyBw.js";const{setLoader:r,load:i,provide:a,getSync:o}=t({fallbackImport:()=>import(`./chunk-DABqu7C3.js`)}),s=/* @__PURE__ */ new Set,c=()=>{let e=[...s];s.clear();for(let t of e)try{t()}catch{}},l=()=>{let e=o();return e?Promise.resolve(e):i().then(e=>(c(),e))},u=e=>o()?()=>{}:(s.add(e),()=>{s.delete(e)}),d=e=>{a(e),c()},f=o,p=new class{#e=/* @__PURE__ */ new Map;#t=/* @__PURE__ */ new Map;register(e,t,n){this.#e.has(e)&&console.warn(`[ComponentRegistry] Component "${e}" is already registered. Overwriting.`),this.#e.set(e,t),n?this.#t.set(e,n):this.#t.delete(e)}unregister(e){this.#e.delete(e),this.#t.delete(e)}get(e){return this.#e.get(e)}has(e){return this.#e.has(e)}getOptions(e){return this.#t.get(e)}getAllNames(){return Array.from(this.#e.keys())}clear(){this.#e.clear(),this.#t.clear()}registerAll(e){Object.entries(e).forEach(([e,t])=>{this.register(e,t)})}};function m(e,t){return e.components&&Object.prototype.hasOwnProperty.call(e.components,t)?e.components[t]:p.get(t)}function h(e,t){return e.components&&Object.prototype.hasOwnProperty.call(e.components,t)?void 0:p.getOptions(t)}const g=(e,t)=>t?(f()?.stabilizeStreamingMarkdown??n)(e):e,_=e=>{if(!e)return;let t={},n=e;if(n.heading){let e=n.heading;t.heading=(t,n,r)=>e({type:`heading`,raw:r,depth:n,text:t,tokens:[]})}if(n.code){let e=n.code;t.code=(t,n,r)=>e({type:`code`,raw:``,text:t,lang:n,escaped:r})}if(n.blockquote){let e=n.blockquote;t.blockquote=t=>e({type:`blockquote`,raw:``,text:t,tokens:[]})}if(n.table){let e=n.table;t.table=(t,n)=>e({type:`table`,raw:``,header:[],rows:[],align:[],headerHtml:t,bodyHtml:n})}if(n.link){let e=n.link;t.link=(t,n,r)=>e({type:`link`,raw:``,href:t,title:n??null,text:r,tokens:[]})}if(n.image){let e=n.image;t.image=(t,n,r)=>e({type:`image`,raw:``,href:t,title:n??null,text:r})}if(n.list){let e=n.list;t.list=(t,n,r)=>e({type:`list`,raw:``,ordered:n,start:r,loose:!1,items:[],itemsHtml:t})}if(n.listitem){let e=n.listitem;t.listitem=(t,n,r)=>e({type:`list_item`,raw:``,task:n,checked:r,loose:!1,text:t,tokens:[]})}if(n.paragraph){let e=n.paragraph;t.paragraph=t=>e({type:`paragraph`,raw:``,text:t,tokens:[]})}if(n.codespan){let e=n.codespan;t.codespan=t=>e({type:`codespan`,raw:``,text:t})}if(n.strong){let e=n.strong;t.strong=t=>e({type:`strong`,raw:``,text:t,tokens:[]})}if(n.em){let e=n.em;t.em=t=>e({type:`em`,raw:``,text:t,tokens:[]})}if(n.del){let e=n.del;t.del=t=>e({type:`del`,raw:``,text:t,tokens:[]})}if(n.html){let e=n.html;t.html=t=>e({type:`html`,raw:t,text:t})}if(n.text){let e=n.text;t.text=t=>e({type:`text`,raw:t,text:t})}if(n.checkbox){let e=n.checkbox;t.checkbox=t=>e({checked:t})}return n.hr&&(t.hr=n.hr),n.br&&(t.br=n.br),t},v=e=>{let t=null;return n=>{let r=f();if(!r)return b(n);if(!t){let{Marked:n}=r,i=e?.markedOptions;t=new n({gfm:i?.gfm??!0,breaks:i?.breaks??!0,pedantic:i?.pedantic,silent:i?.silent});let a=_(e?.renderer);a&&t.use({renderer:a})}return t.parse(n)}},y=e=>e?v({markedOptions:e.options,renderer:e.renderer}):v(),b=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),x={ALLOWED_TAGS:/* @__PURE__ */ `h1.h2.h3.h4.h5.h6.p.br.hr.div.span.ul.ol.li.dl.dt.dd.strong.em.b.i.u.s.del.ins.mark.small.sub.sup.abbr.kbd.var.samp.code.a.img.blockquote.pre.details.summary.table.thead.tbody.tfoot.tr.th.td.caption.colgroup.col.input.label.select.option.textarea.button`.split(`.`),ALLOWED_ATTR:/* @__PURE__ */ `href.src.alt.title.target.rel.loading.width.height.colspan.rowspan.scope.class.id.type.name.value.placeholder.disabled.checked.for.aria-label.aria-hidden.aria-expanded.role.tabindex.data-tv-form.data-message-id.data-persona-component-directive.data-preserve-animation.data-persona-instance`.split(`.`)},S=/^data:image\/(?:png|jpe?g|gif|webp|bmp|x-icon|avif)/i,C=()=>{let e=null;return t=>{let n=f();if(!n)return b(t);if(!e){let{DOMPurify:t}=n;e=t(typeof window<`u`?window:void 0),e.addHook(`uponSanitizeAttribute`,(e,t)=>{if(t.attrName===`src`||t.attrName===`href`){let e=t.attrValue;e.toLowerCase().startsWith(`data:`)&&!S.test(e)&&(t.attrValue=``,t.keepAttr=!1)}})}return e.sanitize(t,x)}},w=e=>e===!1?null:typeof e==`function`?e:C();function T(t,n,r){return n?.trim()||(e(t,`artifact.${r}`)?`var(--persona-components-artifact-${r.split(`.`).join(`-`)})`:void 0)}function E(e){return e?.features?.artifacts?.enabled===!0}function D(e,t){if(e.classList.remove(`persona-artifact-border-full`,`persona-artifact-border-left`),e.style.removeProperty(`--persona-artifact-pane-border`),e.style.removeProperty(`--persona-artifact-pane-border-left`),!E(t))return;let n=t.features?.artifacts?.layout,r=T(t,n?.paneBorder,`pane.border`),i=T(t,n?.paneBorderLeft,`pane.borderLeft`);r?(e.classList.add(`persona-artifact-border-full`),e.style.setProperty(`--persona-artifact-pane-border`,r)):i&&(e.classList.add(`persona-artifact-border-left`),e.style.setProperty(`--persona-artifact-pane-border-left`,i))}function O(e){e.style.removeProperty(`--persona-artifact-doc-toolbar-icon-color`),e.style.removeProperty(`--persona-artifact-doc-toggle-active-bg`),e.style.removeProperty(`--persona-artifact-doc-toggle-active-border`),e.style.removeProperty(`--persona-artifact-doc-toggle-active-color`)}const k=[`panel`,`seamless`,`detached`];function A(e){let t=e.features?.artifacts?.layout?.paneAppearance;return t&&k.includes(t)?t:t?`panel`:e.launcher?.detachedPanel?`detached`:`panel`}function j(e){return!e||!E(e)?!1:A(e)===`detached`}function M(e,t){if(!E(t)){e.style.removeProperty(`--persona-artifact-split-gap`),e.style.removeProperty(`--persona-artifact-pane-width`),e.style.removeProperty(`--persona-artifact-pane-max-width`),e.style.removeProperty(`--persona-artifact-pane-min-width`),e.style.removeProperty(`--persona-artifact-drawer-width`),e.style.removeProperty(`--persona-artifact-pane-bg`),e.style.removeProperty(`--persona-artifact-pane-padding`),O(e),D(e,t);return}let n=t.features?.artifacts?.layout,r=A(t)===`detached`?`var(--persona-panel-inset)`:`0`;e.style.setProperty(`--persona-artifact-split-gap`,n?.splitGap??r),e.style.setProperty(`--persona-artifact-pane-width`,n?.paneWidth??`40%`),e.style.setProperty(`--persona-artifact-pane-max-width`,n?.paneMaxWidth??`28rem`),n?.drawerWidth?e.style.setProperty(`--persona-artifact-drawer-width`,n.drawerWidth):e.style.removeProperty(`--persona-artifact-drawer-width`),n?.paneMinWidth?e.style.setProperty(`--persona-artifact-pane-min-width`,n.paneMinWidth):e.style.removeProperty(`--persona-artifact-pane-min-width`);let i=T(t,n?.paneBackground,`pane.background`);i?e.style.setProperty(`--persona-artifact-pane-bg`,i):e.style.removeProperty(`--persona-artifact-pane-bg`);let a=T(t,n?.panePadding,`pane.padding`);a?e.style.setProperty(`--persona-artifact-pane-padding`,a):e.style.removeProperty(`--persona-artifact-pane-padding`);let o=[[T(t,n?.documentToolbarIconColor,`toolbar.iconColor`),`--persona-artifact-doc-toolbar-icon-color`],[T(t,n?.documentToolbarToggleActiveBackground,`toolbar.toggleActiveBackground`),`--persona-artifact-doc-toggle-active-bg`],[T(t,n?.documentToolbarToggleActiveBorderColor,`toolbar.toggleActiveBorderColor`),`--persona-artifact-doc-toggle-active-border`],[T(t,n?.documentToolbarToggleActiveColor,`toolbar.toggleActiveColor`),`--persona-artifact-doc-toggle-active-color`]];for(let[t,n]of o){let r=t?.trim();r?e.style.setProperty(n,r):e.style.removeProperty(n)}D(e,t)}function N(e,t){for(let t of k)e.classList.remove(`persona-artifact-appearance-${t}`);if(e.style.removeProperty(`--persona-artifact-pane-radius`),e.style.removeProperty(`--persona-artifact-pane-shadow`),e.style.removeProperty(`--persona-artifact-chat-shadow`),!E(t))return;let n=t.features?.artifacts?.layout,r=A(t);e.classList.add(`persona-artifact-appearance-${r}`);let i=T(t,n?.paneBorderRadius,`pane.borderRadius`);i&&e.style.setProperty(`--persona-artifact-pane-radius`,i);let a=T(t,n?.paneShadow,`pane.shadow`);a&&e.style.setProperty(`--persona-artifact-pane-shadow`,a);let o=T(t,n?.chatShadow,`chat.shadow`);o&&e.style.setProperty(`--persona-artifact-chat-shadow`,o)}function P(e,t){return!t||!E(e)?!1:e.features?.artifacts?.layout?.expandLauncherPanelWhenOpen!==!1}function F(e,t){if(!e?.trim())return t;let n=/^(\d+(?:\.\d+)?)px\s*$/i.exec(e.trim());return n?Math.max(0,Number(n[1])):t}function I(e){if(!e?.trim())return null;let t=/^(\d+(?:\.\d+)?)px\s*$/i.exec(e.trim());return t?Math.max(0,Number(t[1])):null}function L(e,t,n){return n<t?t:Math.min(n,Math.max(t,e))}function R(e,t,n,r){let i=e-r-2*t-n;return Math.max(0,i)}function z(e,t){let n=(t.getComputedStyle(e).gap||`0px`).trim().split(/\s+/)[0]??`0px`,r=/^([\d.]+)px$/i.exec(n);if(r)return Number(r[1]);let i=/^([\d.]+)/.exec(n);return i?Number(i[1]):8}function B(e,t,n,r,i,a,o=200){let s=F(i,200),c=R(t,n,r,o);c=Math.max(s,c);let l=I(a);return l!==null&&(c=Math.min(c,l)),L(e,s,c)}export{l as _,T as a,P as c,b as d,g as f,f as g,m as h,N as i,w as l,h as m,B as n,E as o,p,M as r,j as s,z as t,y as u,u as v,d as y};
|
package/dist/client-dispatch.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}};function t(e){if(e.length===0)return`0:empty`;let t=e.map(e=>[e.name,e.description??``,e.parametersSchema?JSON.stringify(e.parametersSchema):``,e.origin??``,e.annotations?JSON.stringify(e.annotations):``].join(``)).sort();return`${e.length}:${r(t.join(``))}`}function n(e,t){let n=3735928559^t,r=1103547991^t;for(let t=0;t<e.length;t++){let i=e.charCodeAt(t);n=Math.imul(n^i,2654435761),r=Math.imul(r^i,1597334677)}return n=Math.imul(n^n>>>16,2246822507),n^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}function r(e){return`${n(e,0).toString(36)}.${n(e,2654435761).toString(36)}`}var i=e((()=>{})),a,o,s,c,l=e((()=>{a=e=>e.replace(/[^a-zA-Z0-9_]/g,`_`).toLowerCase().replace(/_+/g,`_`).replace(/^_|_$/g,``),o=e=>typeof e==`object`&&!!e&&!Array.isArray(e),s=e=>{if(e.variant!==`tool`)return null;let t=e.agentMetadata?.clientToolAnswer;if(!t||!t.toolCallId||t.result===void 0)return null;let n=a(t.toolName);return n?{call:{toolCallId:t.toolCallId,toolName:n,args:o(t.args)?t.args:{}},result:{toolCallId:t.toolCallId,toolName:n,result:t.result}}:null},c=(e,t)=>{let n=[],r=[],i=[],a=``,o,c=()=>{r.length!==0&&(n.push({role:`assistant`,content:``,createdAt:a,toolCalls:r},{role:`tool`,content:``,createdAt:a,toolResults:i}),r=[],i=[])};for(let l of e){let e=s(l);if(e){let t=l.agentMetadata?.clientToolAnswer?.batch;r.length>0&&(t===void 0||t!==o)&&c(),r.length===0&&(a=l.createdAt,o=t),r.some(t=>t.toolCallId===e.call.toolCallId)||(r.push(e.call),i.push(e.result));continue}let u=t(l);u&&(c(),n.push(u))}return c(),n}})),u,d,f=e((()=>{u=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`image/svg+xml`,`image/bmp`],d=[`application/pdf`,`text/plain`,`text/markdown`,`text/csv`,`application/msword`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,`application/vnd.ms-excel`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,`application/json`],[...u,...d]}));function p(e){let t=e.content;if(typeof t!=`string`||t===``)return;let n=e.contentParts??e.llmContent??e.rawContent??t;if(typeof n!=`string`||n!==t)return t}var m=e((()=>{f()})),h,g=e((()=>{h=e=>e.localOnly===!0||e.role===`assistant`&&typeof e.id==`string`&&e.id.startsWith(`reconnect-failed-`)})),_=`4.31.0`,v,y=e((()=>{v=_})),b,x,S,C,w;e((()=>{i(),l(),m(),g(),y(),b=e=>e.voiceCaption||h(e)?!1:!!(e.contentParts&&e.contentParts.length>0||e.llmContent&&e.llmContent.trim().length>0||e.rawContent&&e.rawContent.trim().length>0||e.content&&e.content.trim().length>0),x=e=>e.slice().sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()),S=e=>{let t=e.agentMetadata?.providerPhase??e.agentMetadata?.phase;return e.role===`assistant`&&(t===`commentary`||t===`partial_answer`||t===`final_answer`)?{phase:t}:{}},C=e=>({role:e.role,content:e.contentParts??e.llmContent??e.rawContent??e.content,createdAt:e.createdAt,...S(e)}),w=class{constructor(e){this.host=e}async initializeSession(){await this.host.historyInternals.historyBootstrapReady;let e=this.host.config.getStoredConversationId?.()||null,t=this.host.historyInternals.shouldResumeDurableConversation?.()===!0;if(!this.host.isHistoryCapable()&&!t)return this.#e(e,!1);let n=await this.host.readVisitorToken();if(e&&n)try{let n=await this.createClientSession({conversationId:e,durableResume:t});return t&&n.durableRecovery?.enabled!==!0&&this.host.historyInternals.setStoredResumableHandle?.(null),this.host.finishInit(n,e,!1)}catch(n){if(!(n instanceof this.host.HistoryClientError&&n.code===`not_found`)&&!(n instanceof this.host.HistoryClientError&&n.code===`visitor_required`)&&!(n instanceof this.host.HistoryClientError&&n.code===`history_disabled`))throw n;return t&&this.host.historyInternals.setStoredResumableHandle?.(null),this.#e(e,!0)}return this.#e(e,!1)}async#e(e,t){let n=this.host.historyInternals.visitorStore;return n&&!await this.host.readVisitorToken()?n.withFirstInitLock(()=>this.#t(e,t)):this.#t(e,t)}async#t(e,t){let n=this.host.config.getStoredSessionId?.()||null,r=await this.createClientSession({storedSessionId:n}),i=await this.#n(r);return this.host.finishInit(i,e,t)}async#n(e){if(!e.visitor?.token||this.host.claimInFlight||!this.host.isHistoryCapable()&&e.durableRecovery?.enabled!==!0)return e;this.host.claimInFlight=!0;try{return await this.createClientSession({storedSessionId:e.sessionId})}catch{return e}finally{this.host.claimInFlight=!1}}async sendWithClientToolsDiff(e,n,r,i){let a=!!(n&&n.length>0),o=a?t(n):void 0,s=this.host.clientToolsFingerprintSessionId===e,c=a&&s&&this.host.lastSentClientToolsFingerprint===o,l=!a&&i?.emptyMeansReplace===!0&&this.host.sentNonEmptyClientToolsSessionId===e,u=!1,d;for(let e=0;d=await r({...a&&(u||!c)&&n?{clientTools:n}:{},...l?{clientTools:[]}:{},...o?{clientToolsFingerprint:o}:{}}),d.status===409&&e===0&&a&&(await d.clone().json().catch(()=>null))?.error===`client_tools_resend_required`;e++)u=!0,this.host.lastSentClientToolsFingerprint=null;return{response:d,commit:()=>{this.host.lastSentClientToolsFingerprint=o??null,this.host.clientToolsFingerprintSessionId=e,a?this.host.sentNonEmptyClientToolsSessionId=e:l&&(this.host.sentNonEmptyClientToolsSessionId=null)}}}async createClientSession(e){let t=this.host.isHistoryCapable()&&!e.omitVisitorFields,n=!e.omitVisitorFields,r=null;(t||n)&&(await this.host.historyInternals.historyBootstrapReady,r=await this.host.readVisitorToken());let i=this.host.routing(),a=i.agentId??i.flowId,o=t||e.durableResume?e.conversationId:void 0,s={token:this.host.config.clientToken,...a&&{flowId:a},...t&&{visitorHistory:!0},...n&&{durableRecovery:!0},...(t||n)&&r?{visitorToken:r}:{},...t&&e.identityProof?{identityProof:e.identityProof}:{},...o?{conversationId:o}:e.storedSessionId?{sessionId:e.storedSessionId}:{}};e.signal?.throwIfAborted();let c=await fetch(this.host.getClientApiUrl(`init`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v},body:JSON.stringify(s),signal:e.signal});if(!c.ok){let n=await c.json().catch(()=>({error:`Session initialization failed`}));if(t&&c.status===403&&n.error===`visitor_history_disabled`){if(this.host.markHistoryUnavailable(),o)throw new this.host.HistoryClientError(`history_disabled`,`Visitor history is disabled for this surface`);return this.createClientSession({...e,omitVisitorFields:!0})}throw c.status===403&&n.error===`durable_recovery_disabled`?new this.host.HistoryClientError(`history_disabled`,`Durable recovery is disabled for this surface`):(t||e.durableResume)&&c.status===401&&n.error===`visitor_required`?new this.host.HistoryClientError(`visitor_required`,`Visitor credential no longer resolves`):o&&c.status===404?new this.host.HistoryClientError(`not_found`,`Conversation not found`):c.status===401?Error(`Invalid client token: ${n.hint||n.error}`):c.status===403?Error(`Origin not allowed: ${n.hint||n.error}`):Error(n.error||`Failed to initialize session`)}let l=await c.json();return l.visitor?.token&&await this.host.historyInternals.visitorStore?.set(l.visitor.token),{sessionId:l.sessionId,expiresAt:new Date(l.expiresAt),flow:l.flow,...l.conversationId?{conversationId:l.conversationId}:{},...l.targetId?{targetId:l.targetId}:{},...l.conversationRevision?{conversationRevision:l.conversationRevision}:{},...l.durableRecovery?{durableRecovery:l.durableRecovery}:{},...l.visitor?{visitor:l.visitor}:{},config:{welcomeMessage:l.config.welcomeMessage,placeholder:l.config.placeholder,theme:l.config.theme}}}async sendFeedback(e){if([`upvote`,`downvote`,`copy`].includes(e.type)&&!e.messageId)throw Error(`messageId is required for ${e.type} feedback type`);if(e.type===`csat`&&(e.rating===void 0||e.rating<1||e.rating>5))throw Error(`CSAT rating must be between 1 and 5`);if(e.type===`nps`&&(e.rating===void 0||e.rating<0||e.rating>10))throw Error(`NPS rating must be between 0 and 10`);this.host.debug&&console.debug(`[AgentWidgetClient] sending feedback`,e);let t={...e,...this.host.config.clientToken&&{token:this.host.config.clientToken}},n=await fetch(`${this.host.clientApiBase()}/v1/client/feedback`,{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:`Feedback submission failed`}));throw n.status===401?(this.host.clientSession=null,this.host.resetSessionWarmLatch(),this.host.config.onSessionExpired?.(),Error(`Session expired. Please refresh to continue.`)):Error(e.error||`Failed to submit feedback`)}}async dispatchClientToken(e,t,n){let{HistoryClientError:r}=this.host,i=()=>this.host.isCurrentTurn(n),a=e=>{i()&&t(e)};try{let t=()=>{if(e.signal?.throwIfAborted(),!i())throw new DOMException(`Turn superseded`,`AbortError`)},o=this.host.clientSession??await this.host.initSession();t();let s=async()=>{t();let n=o,r=n.durableRecovery?.enabled===!0;if(r&&(!n.conversationId||!await this.host.readVisitorToken()))throw Error(`Renewing this conversation requires its visitor credential.`);t();let i=await this.host.createClientSession({...r||this.host.isHistoryCapable()?{conversationId:n.conversationId,durableResume:r}:{storedSessionId:n.sessionId},signal:e.signal});if(t(),n.conversationId&&i.conversationId!==n.conversationId||r&&i.durableRecovery?.enabled!==!0)throw Error(`Session renewal did not preserve this conversation.`);o=this.host.finishInit(i,n.conversationId??null,!1),this.host.clientSession=o,this.host.resetSessionWarmLatch(),this.host.resetClientToolsFingerprint(),this.host.config.onSessionInit?.(o)};Date.now()>=o.expiresAt.getTime()-6e4&&await s();let c=await this.#c(e.messages),l=c.metadata?Object.fromEntries(Object.entries(c.metadata).filter(([e])=>e!==`sessionId`&&e!==`session_id`)):void 0,u=this.host.isHistoryCapable(),d={sessionId:o.sessionId,messages:e.messages.filter(b).map(e=>{let t=u?p(e):void 0;return{id:e.id,role:e.role,content:e.contentParts??e.llmContent??e.rawContent??e.content,...t!==void 0&&{displayContent:t}}}),...e.assistantMessageId&&{assistantMessageId:e.assistantMessageId},...l&&Object.keys(l).length>0&&{metadata:l},...c.inputs&&Object.keys(c.inputs).length>0&&{inputs:c.inputs},...c.context&&{context:c.context},turnId:n,...e.interrupt&&{submitMode:`interrupt`},...e.voiceSpoken&&{voice:{spoken:!0,...e.voicePriorToolResults?.length&&{priorToolResults:e.voicePriorToolResults}}}},f=async()=>{t();let n=o.durableRecovery?.enabled===!0?await this.host.readVisitorToken():null;return t(),this.host.sendWithClientToolsDiff(o.sessionId,c.clientTools,async r=>{t();let i=await this.host.resolveChatIdentityProof(e.signal);t();let a={...d,sessionId:o.sessionId,...r,...i&&{identityProof:i}};return this.host.debug&&console.debug(`[AgentWidgetClient] client token dispatch`,{...a,...i&&{identityProof:{provider:i.provider,token:`[REDACTED]`}}}),fetch(this.host.getClientApiUrl(`chat`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v,...n?{"X-Visitor-Token":n}:{}},body:JSON.stringify(a),signal:e.signal})})},m=await f();if(t(),m.response.status===401){let e=await m.response.clone().json().catch(()=>null);t(),e?.error===`Session not found or expired`&&(await s(),m=await f(),t())}let{response:h,commit:g}=m;if(!h.ok){let e=await h.json().catch(()=>({error:`Chat request failed`}));if(h.status===401&&e.error===`invalid_identity_proof`){let e=new r(`invalid_identity_proof`,`The identity proof was rejected`);throw a({type:`error`,error:e}),e}if(h.status===401){this.host.clearClientSession(),this.host.config.onSessionExpired?.();let e=/* @__PURE__ */ Error(`Session expired. Please refresh to continue.`);throw a({type:`error`,error:e}),e}if(h.status===429){let t=Error(e.hint||`Message limit reached for this session.`);throw a({type:`error`,error:t}),t}if(h.status===410&&e.error===`conversation_deleted`){let e=new r(`conversation_deleted`,`This conversation was deleted`);throw a({type:`error`,error:e}),e}let t=Error(e.error||`Failed to send message`);throw a({type:`error`,error:t}),t}if(!h.body){let e=/* @__PURE__ */ Error(`No response body received`);throw a({type:`error`,error:e}),e}g(),a({type:`status`,status:`connected`});try{await this.host.streamResponse(h.body,a,e.assistantMessageId,void 0,e.signal)}finally{a({type:`status`,status:`idle`})}}catch(e){let t=e instanceof Error?e:Error(String(e));throw!(t instanceof r)&&!t.message.includes(`Session expired`)&&!t.message.includes(`Message limit`)&&a({type:`error`,error:t}),t}}async dispatchProxy(e,t){let n=await this.#c(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Chat backend request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,void 0,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}async dispatchAgent(e,t){let n=await this.#s(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] agent dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Agent execution request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,e.assistantMessageId,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}#r(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`user`)return n.mentionContext&&Object.keys(n.mentionContext).length>0?{mentions:n.mentionContext}:null}return null}async#i(e){let t={};this.host.contextProviders.length&&await Promise.all(this.host.contextProviders.map(async n=>{try{let r=await n({messages:e,config:this.host.config});r&&typeof r==`object`&&Object.assign(t,r)}catch(e){typeof console<`u`&&console.warn(`[AgentWidget] Context provider failed:`,e)}}));let n=this.#r(e);return n&&Object.assign(t,n),Object.keys(t).length?t:null}#a(e){if(!e)return;let t={};return e.selectedModelId&&(t.selectedModelId=e.selectedModelId),e.activeModeIds?.length&&(t.activeModeIds=[...e.activeModeIds]),Object.keys(t).length>0?t:void 0}#o(e,t){let n=t?.selectedModelId;return!n||!(`model`in e)?e:this.host.config.composer?.models?.some(e=>e.id===n)?{...e,model:n}:e}async#s(e,t){let n=this.host.routing().agentId;if(!this.host.config.agent&&!n)throw Error(`Agent configuration required for agent mode`);let r=c(x(e),e=>b(e)&&(e.role===`user`||e.role===`assistant`||e.role===`system`)&&(!e.variant||e.variant===`assistant`)?C(e):null),i=this.#a(t),a={agent:this.#o(this.host.config.agent??{agentId:n},i),messages:r,options:{streamResponse:!0,recordMode:`virtual`,...this.host.config.agentOptions}};i&&(a.composerOptions=i);let o=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];o.length>0&&(a.clientTools=o);let s=await this.#i(e);return s&&(a.context=s),a}async#c(e,t){let n=c(x(e),e=>b(e)?C(e):null),r=this.host.routing(),i={messages:n,...r.agentId?{agent:{agentId:r.agentId}}:r.flowId?{flowId:r.flowId}:{}};if(r.targetPayload)for(let[e,t]of Object.entries(r.targetPayload))e!==`messages`&&(i[e]=t);let a=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];a.length>0&&(i.clientTools=a);let o=await this.#i(e);o&&(i.context=o);let s=this.#a(t);if(s&&(i.composerOptions=s),this.host.requestMiddleware)try{let e=await this.host.requestMiddleware({payload:{...i},config:this.host.config});if(e&&typeof e==`object`){let t=e;return i.clientTools!==void 0&&!(`clientTools`in t)&&(t.clientTools=i.clientTools),t}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] Request middleware error:`,e)}return i}}}))();export{w as ClientDispatch};
|
|
1
|
+
var e=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}};function t(e){if(e.length===0)return`0:empty`;let t=e.map(e=>[e.name,e.description??``,e.parametersSchema?JSON.stringify(e.parametersSchema):``,e.origin??``,e.annotations?JSON.stringify(e.annotations):``].join(``)).sort();return`${e.length}:${r(t.join(``))}`}function n(e,t){let n=3735928559^t,r=1103547991^t;for(let t=0;t<e.length;t++){let i=e.charCodeAt(t);n=Math.imul(n^i,2654435761),r=Math.imul(r^i,1597334677)}return n=Math.imul(n^n>>>16,2246822507),n^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}function r(e){return`${n(e,0).toString(36)}.${n(e,2654435761).toString(36)}`}var i=e((()=>{})),a,o,s,c,l=e((()=>{a=e=>e.replace(/[^a-zA-Z0-9_]/g,`_`).toLowerCase().replace(/_+/g,`_`).replace(/^_|_$/g,``),o=e=>typeof e==`object`&&!!e&&!Array.isArray(e),s=e=>{if(e.variant!==`tool`)return null;let t=e.agentMetadata?.clientToolAnswer;if(!t||!t.toolCallId||t.result===void 0)return null;let n=a(t.toolName);return n?{call:{toolCallId:t.toolCallId,toolName:n,args:o(t.args)?t.args:{}},result:{toolCallId:t.toolCallId,toolName:n,result:t.result}}:null},c=(e,t)=>{let n=[],r=[],i=[],a=``,o,c=()=>{r.length!==0&&(n.push({role:`assistant`,content:``,createdAt:a,toolCalls:r},{role:`tool`,content:``,createdAt:a,toolResults:i}),r=[],i=[])};for(let l of e){let e=s(l);if(e){let t=l.agentMetadata?.clientToolAnswer?.batch;r.length>0&&(t===void 0||t!==o)&&c(),r.length===0&&(a=l.createdAt,o=t),r.some(t=>t.toolCallId===e.call.toolCallId)||(r.push(e.call),i.push(e.result));continue}let u=t(l);u&&(c(),n.push(u))}return c(),n}})),u,d,f=e((()=>{u=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`image/svg+xml`,`image/bmp`],d=[`application/pdf`,`text/plain`,`text/markdown`,`text/csv`,`application/msword`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,`application/vnd.ms-excel`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,`application/json`],[...u,...d]}));function p(e){let t=e.content;if(typeof t!=`string`||t===``)return;let n=e.contentParts??e.llmContent??e.rawContent??t;if(typeof n!=`string`||n!==t)return t}var m=e((()=>{f()})),h,g=e((()=>{h=e=>e.localOnly===!0||e.role===`assistant`&&typeof e.id==`string`&&e.id.startsWith(`reconnect-failed-`)})),_=`4.32.1`,v,y=e((()=>{v=_})),b,x,S,C,w;e((()=>{i(),l(),m(),g(),y(),b=e=>e.voiceCaption||h(e)?!1:!!(e.contentParts&&e.contentParts.length>0||e.llmContent&&e.llmContent.trim().length>0||e.rawContent&&e.rawContent.trim().length>0||e.content&&e.content.trim().length>0),x=e=>e.slice().sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()),S=e=>{let t=e.agentMetadata?.providerPhase??e.agentMetadata?.phase;return e.role===`assistant`&&(t===`commentary`||t===`partial_answer`||t===`final_answer`)?{phase:t}:{}},C=e=>({role:e.role,content:e.contentParts??e.llmContent??e.rawContent??e.content,createdAt:e.createdAt,...S(e)}),w=class{constructor(e){this.host=e}async initializeSession(){await this.host.historyInternals.historyBootstrapReady;let e=this.host.config.getStoredConversationId?.()||null,t=this.host.historyInternals.shouldResumeDurableConversation?.()===!0;if(!this.host.isHistoryCapable()&&!t)return this.#e(e,!1);let n=await this.host.readVisitorToken();if(e&&n)try{let n=await this.createClientSession({conversationId:e,durableResume:t});return t&&n.durableRecovery?.enabled!==!0&&this.host.historyInternals.setStoredResumableHandle?.(null),this.host.finishInit(n,e,!1)}catch(n){if(!(n instanceof this.host.HistoryClientError&&n.code===`not_found`)&&!(n instanceof this.host.HistoryClientError&&n.code===`visitor_required`)&&!(n instanceof this.host.HistoryClientError&&n.code===`history_disabled`))throw n;return t&&this.host.historyInternals.setStoredResumableHandle?.(null),this.#e(e,!0)}return this.#e(e,!1)}async#e(e,t){let n=this.host.historyInternals.visitorStore;return n&&!await this.host.readVisitorToken()?n.withFirstInitLock(()=>this.#t(e,t)):this.#t(e,t)}async#t(e,t){let n=this.host.config.getStoredSessionId?.()||null,r=await this.createClientSession({storedSessionId:n}),i=await this.#n(r);return this.host.finishInit(i,e,t)}async#n(e){if(!e.visitor?.token||this.host.claimInFlight||!this.host.isHistoryCapable()&&e.durableRecovery?.enabled!==!0)return e;this.host.claimInFlight=!0;try{return await this.createClientSession({storedSessionId:e.sessionId})}catch{return e}finally{this.host.claimInFlight=!1}}async sendWithClientToolsDiff(e,n,r,i){let a=!!(n&&n.length>0),o=a?t(n):void 0,s=this.host.clientToolsFingerprintSessionId===e,c=a&&s&&this.host.lastSentClientToolsFingerprint===o,l=!a&&i?.emptyMeansReplace===!0&&this.host.sentNonEmptyClientToolsSessionId===e,u=!1,d;for(let e=0;d=await r({...a&&(u||!c)&&n?{clientTools:n}:{},...l?{clientTools:[]}:{},...o?{clientToolsFingerprint:o}:{}}),d.status===409&&e===0&&a&&(await d.clone().json().catch(()=>null))?.error===`client_tools_resend_required`;e++)u=!0,this.host.lastSentClientToolsFingerprint=null;return{response:d,commit:()=>{this.host.lastSentClientToolsFingerprint=o??null,this.host.clientToolsFingerprintSessionId=e,a?this.host.sentNonEmptyClientToolsSessionId=e:l&&(this.host.sentNonEmptyClientToolsSessionId=null)}}}async createClientSession(e){let t=this.host.isHistoryCapable()&&!e.omitVisitorFields,n=!e.omitVisitorFields,r=null;(t||n)&&(await this.host.historyInternals.historyBootstrapReady,r=await this.host.readVisitorToken());let i=this.host.routing(),a=i.agentId??i.flowId,o=t||e.durableResume?e.conversationId:void 0,s={token:this.host.config.clientToken,...a&&{flowId:a},...t&&{visitorHistory:!0},...n&&{durableRecovery:!0},...(t||n)&&r?{visitorToken:r}:{},...t&&e.identityProof?{identityProof:e.identityProof}:{},...o?{conversationId:o}:e.storedSessionId?{sessionId:e.storedSessionId}:{}};e.signal?.throwIfAborted();let c=await fetch(this.host.getClientApiUrl(`init`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v},body:JSON.stringify(s),signal:e.signal});if(!c.ok){let n=await c.json().catch(()=>({error:`Session initialization failed`}));if(t&&c.status===403&&n.error===`visitor_history_disabled`){if(this.host.markHistoryUnavailable(),o)throw new this.host.HistoryClientError(`history_disabled`,`Visitor history is disabled for this surface`);return this.createClientSession({...e,omitVisitorFields:!0})}throw c.status===403&&n.error===`durable_recovery_disabled`?new this.host.HistoryClientError(`history_disabled`,`Durable recovery is disabled for this surface`):(t||e.durableResume)&&c.status===401&&n.error===`visitor_required`?new this.host.HistoryClientError(`visitor_required`,`Visitor credential no longer resolves`):o&&c.status===404?new this.host.HistoryClientError(`not_found`,`Conversation not found`):c.status===401?Error(`Invalid client token: ${n.hint||n.error}`):c.status===403?Error(`Origin not allowed: ${n.hint||n.error}`):Error(n.error||`Failed to initialize session`)}let l=await c.json();return l.visitor?.token&&await this.host.historyInternals.visitorStore?.set(l.visitor.token),{sessionId:l.sessionId,expiresAt:new Date(l.expiresAt),flow:l.flow,...l.conversationId?{conversationId:l.conversationId}:{},...l.targetId?{targetId:l.targetId}:{},...l.conversationRevision?{conversationRevision:l.conversationRevision}:{},...l.durableRecovery?{durableRecovery:l.durableRecovery}:{},...l.visitor?{visitor:l.visitor}:{},config:{welcomeMessage:l.config.welcomeMessage,placeholder:l.config.placeholder,theme:l.config.theme}}}async sendFeedback(e){if([`upvote`,`downvote`,`copy`].includes(e.type)&&!e.messageId)throw Error(`messageId is required for ${e.type} feedback type`);if(e.type===`csat`&&(e.rating===void 0||e.rating<1||e.rating>5))throw Error(`CSAT rating must be between 1 and 5`);if(e.type===`nps`&&(e.rating===void 0||e.rating<0||e.rating>10))throw Error(`NPS rating must be between 0 and 10`);this.host.debug&&console.debug(`[AgentWidgetClient] sending feedback`,e);let t={...e,...this.host.config.clientToken&&{token:this.host.config.clientToken}},n=await fetch(`${this.host.clientApiBase()}/v1/client/feedback`,{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:`Feedback submission failed`}));throw n.status===401?(this.host.clientSession=null,this.host.resetSessionWarmLatch(),this.host.config.onSessionExpired?.(),Error(`Session expired. Please refresh to continue.`)):Error(e.error||`Failed to submit feedback`)}}async dispatchClientToken(e,t,n){let{HistoryClientError:r}=this.host,i=()=>this.host.isCurrentTurn(n),a=e=>{i()&&t(e)};try{let t=()=>{if(e.signal?.throwIfAborted(),!i())throw new DOMException(`Turn superseded`,`AbortError`)},o=this.host.clientSession??await this.host.initSession();t();let s=async()=>{t();let n=o,r=n.durableRecovery?.enabled===!0;if(r&&(!n.conversationId||!await this.host.readVisitorToken()))throw Error(`Renewing this conversation requires its visitor credential.`);t();let i=await this.host.createClientSession({...r||this.host.isHistoryCapable()?{conversationId:n.conversationId,durableResume:r}:{storedSessionId:n.sessionId},signal:e.signal});if(t(),n.conversationId&&i.conversationId!==n.conversationId||r&&i.durableRecovery?.enabled!==!0)throw Error(`Session renewal did not preserve this conversation.`);o=this.host.finishInit(i,n.conversationId??null,!1),this.host.clientSession=o,this.host.resetSessionWarmLatch(),this.host.resetClientToolsFingerprint(),this.host.config.onSessionInit?.(o)};Date.now()>=o.expiresAt.getTime()-6e4&&await s();let c=await this.#c(e.messages),l=c.metadata?Object.fromEntries(Object.entries(c.metadata).filter(([e])=>e!==`sessionId`&&e!==`session_id`)):void 0,u=this.host.isHistoryCapable(),d={sessionId:o.sessionId,messages:e.messages.filter(b).map(e=>{let t=u?p(e):void 0;return{id:e.id,role:e.role,content:e.contentParts??e.llmContent??e.rawContent??e.content,...t!==void 0&&{displayContent:t}}}),...e.assistantMessageId&&{assistantMessageId:e.assistantMessageId},...l&&Object.keys(l).length>0&&{metadata:l},...c.inputs&&Object.keys(c.inputs).length>0&&{inputs:c.inputs},...c.context&&{context:c.context},turnId:n,...e.interrupt&&{submitMode:`interrupt`},...e.voiceSpoken&&{voice:{spoken:!0,...e.voicePriorToolResults?.length&&{priorToolResults:e.voicePriorToolResults}}}},f=async()=>{t();let n=o.durableRecovery?.enabled===!0?await this.host.readVisitorToken():null;return t(),this.host.sendWithClientToolsDiff(o.sessionId,c.clientTools,async r=>{t();let i=await this.host.resolveChatIdentityProof(e.signal);t();let a={...d,sessionId:o.sessionId,...r,...i&&{identityProof:i}};return this.host.debug&&console.debug(`[AgentWidgetClient] client token dispatch`,{...a,...i&&{identityProof:{provider:i.provider,token:`[REDACTED]`}}}),fetch(this.host.getClientApiUrl(`chat`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v,...n?{"X-Visitor-Token":n}:{}},body:JSON.stringify(a),signal:e.signal})})},m=await f();if(t(),m.response.status===401){let e=await m.response.clone().json().catch(()=>null);t(),e?.error===`Session not found or expired`&&(await s(),m=await f(),t())}let{response:h,commit:g}=m;if(!h.ok){let e=await h.json().catch(()=>({error:`Chat request failed`}));if(h.status===401&&e.error===`invalid_identity_proof`){let e=new r(`invalid_identity_proof`,`The identity proof was rejected`);throw a({type:`error`,error:e}),e}if(h.status===401){this.host.clearClientSession(),this.host.config.onSessionExpired?.();let e=/* @__PURE__ */ Error(`Session expired. Please refresh to continue.`);throw a({type:`error`,error:e}),e}if(h.status===429){let t=Error(e.hint||`Message limit reached for this session.`);throw a({type:`error`,error:t}),t}if(h.status===410&&e.error===`conversation_deleted`){let e=new r(`conversation_deleted`,`This conversation was deleted`);throw a({type:`error`,error:e}),e}let t=Error(e.error||`Failed to send message`);throw a({type:`error`,error:t}),t}if(!h.body){let e=/* @__PURE__ */ Error(`No response body received`);throw a({type:`error`,error:e}),e}g(),a({type:`status`,status:`connected`});try{await this.host.streamResponse(h.body,a,e.assistantMessageId,void 0,e.signal)}finally{a({type:`status`,status:`idle`})}}catch(e){let t=e instanceof Error?e:Error(String(e));throw!(t instanceof r)&&!t.message.includes(`Session expired`)&&!t.message.includes(`Message limit`)&&a({type:`error`,error:t}),t}}async dispatchProxy(e,t){let n=await this.#c(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Chat backend request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,void 0,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}async dispatchAgent(e,t){let n=await this.#s(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] agent dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Agent execution request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,e.assistantMessageId,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}#r(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`user`)return n.mentionContext&&Object.keys(n.mentionContext).length>0?{mentions:n.mentionContext}:null}return null}async#i(e){let t={};this.host.contextProviders.length&&await Promise.all(this.host.contextProviders.map(async n=>{try{let r=await n({messages:e,config:this.host.config});r&&typeof r==`object`&&Object.assign(t,r)}catch(e){typeof console<`u`&&console.warn(`[AgentWidget] Context provider failed:`,e)}}));let n=this.#r(e);return n&&Object.assign(t,n),Object.keys(t).length?t:null}#a(e){if(!e)return;let t={};return e.selectedModelId&&(t.selectedModelId=e.selectedModelId),e.activeModeIds?.length&&(t.activeModeIds=[...e.activeModeIds]),Object.keys(t).length>0?t:void 0}#o(e,t){let n=t?.selectedModelId;return!n||!(`model`in e)?e:this.host.config.composer?.models?.some(e=>e.id===n)?{...e,model:n}:e}async#s(e,t){let n=this.host.routing().agentId;if(!this.host.config.agent&&!n)throw Error(`Agent configuration required for agent mode`);let r=c(x(e),e=>b(e)&&(e.role===`user`||e.role===`assistant`||e.role===`system`)&&(!e.variant||e.variant===`assistant`)?C(e):null),i=this.#a(t),a={agent:this.#o(this.host.config.agent??{agentId:n},i),messages:r,options:{streamResponse:!0,recordMode:`virtual`,...this.host.config.agentOptions}};i&&(a.composerOptions=i);let o=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];o.length>0&&(a.clientTools=o);let s=await this.#i(e);return s&&(a.context=s),a}async#c(e,t){let n=c(x(e),e=>b(e)?C(e):null),r=this.host.routing(),i={messages:n,...r.agentId?{agent:{agentId:r.agentId}}:r.flowId?{flowId:r.flowId}:{}};if(r.targetPayload)for(let[e,t]of Object.entries(r.targetPayload))e!==`messages`&&(i[e]=t);let a=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];a.length>0&&(i.clientTools=a);let o=await this.#i(e);o&&(i.context=o);let s=this.#a(t);if(s&&(i.composerOptions=s),this.host.requestMiddleware)try{let e=await this.host.requestMiddleware({payload:{...i},config:this.host.config});if(e&&typeof e==`object`){let t=e;return i.clientTools!==void 0&&!(`clientTools`in t)&&(t.clientTools=i.clientTools),t}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] Request middleware error:`,e)}return i}}}))();export{w as ClientDispatch};
|