@runtypelabs/persona 4.32.2 → 4.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/activity-ui.d.cts +3 -15
- package/dist/activity-ui.d.ts +3 -15
- package/dist/animations/glyph-cycle.d.cts +1 -3
- package/dist/animations/glyph-cycle.d.ts +1 -3
- package/dist/animations/wipe.d.cts +1 -3
- package/dist/animations/wipe.d.ts +1 -3
- package/dist/approval-ui.cjs +2 -2
- package/dist/approval-ui.d.cts +3 -15
- package/dist/approval-ui.d.ts +3 -15
- package/dist/approval-ui.js +1 -1
- package/dist/artifacts-ui.cjs +1 -1
- package/dist/artifacts-ui.d.cts +3 -21
- package/dist/artifacts-ui.d.ts +3 -21
- package/dist/background-runtime.d.cts +2 -3
- package/dist/background-runtime.d.ts +2 -3
- package/dist/{chunk-BbXc58OA.js → chunk-6CUrH_jm.js} +1 -1
- package/dist/{chunk-B_H0l3u2.js → chunk-BRM3bHcJ.js} +1 -1
- package/dist/{chunk-DNdeIFJ6.js → chunk-Brdx4NCz.js} +1 -1
- package/dist/chunk-C-rux8Q9.js +1 -0
- package/dist/{chunk-Ds_twaZn.js → chunk-C4v-HNhS.js} +1 -1
- package/dist/{chunk-Bkma5hIU.js → chunk-CE4seJxF.js} +1 -1
- package/dist/chunk-CEPM3FOp.js +1 -0
- package/dist/{chunk-BpjtKnGI.js → chunk-CV8EPIhT.js} +1 -1
- package/dist/{chunk-DVZ8ri1z.js → chunk-CWzHNuVK.js} +1 -1
- package/dist/{chunk-B3l7TOOv.js → chunk-CYpt7PsO.js} +1 -1
- package/dist/{chunk-2FnmZ9AA.js → chunk-Csr59G5V.js} +1 -1
- package/dist/{chunk-B9Zu-wrk.js → chunk-CxNPSY-b.js} +1 -1
- package/dist/{chunk-UWMfWW2a.js → chunk-D1G8tgYc.js} +1 -1
- package/dist/{chunk-DTGvDx8o.js → chunk-Dj2a9f9w.js} +1 -1
- package/dist/chunk-Dqa_GOcj.js +1 -0
- package/dist/chunk-DsWv3EGF.js +1 -0
- package/dist/{chunk-C7-m0EmI.js → chunk-NUNdcnAZ.js} +1 -1
- package/dist/{chunk-D0tcIZJM.js → chunk-YMkMvAsa.js} +2 -2
- package/dist/{chunk-C-EHtpbB.js → chunk-h5aOI_Pa.js} +1 -1
- package/dist/chunk-i4qGOJAL.js +1 -0
- package/dist/chunk-kizhspe5.js +1 -0
- package/dist/client-dispatch.js +1 -1
- package/dist/client-history.js +1 -1
- package/dist/client-stream.js +1 -1
- package/dist/{code-generators-DqauYyfX.d.cts → code-generators-DPAqTcAz.d.cts} +0 -2
- package/dist/{code-generators-DqauYyfX.d.ts → code-generators-DPAqTcAz.d.ts} +0 -2
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.d.cts +1 -1
- package/dist/codegen.d.ts +1 -1
- package/dist/codegen.js +1 -1
- package/dist/composer-actions-runtime.cjs +1 -1
- package/dist/composer-actions-runtime.d.cts +4 -20
- package/dist/composer-actions-runtime.d.ts +4 -20
- package/dist/composer-actions-runtime.js +1 -1
- package/dist/{composer-input-dwg_o9Z-.d.ts → composer-input-i_FiUp6J.d.cts} +1 -7
- package/dist/{composer-input-dwg_o9Z-.d.cts → composer-input-i_FiUp6J.d.ts} +1 -7
- package/dist/{composer-store-Dw7Zbqxr.d.ts → composer-store-DhGNgG7Z.d.cts} +1 -3
- package/dist/{composer-store-Dw7Zbqxr.d.cts → composer-store-DhGNgG7Z.d.ts} +1 -3
- package/dist/config-diagnostics.d.cts +0 -2
- package/dist/config-diagnostics.d.ts +0 -2
- package/dist/{context-mention-manager-D2p0-JH-.d.ts → context-mention-manager-DL-xwGfL.d.cts} +2 -6
- package/dist/{context-mention-manager-D2p0-JH-.d.cts → context-mention-manager-DL-xwGfL.d.ts} +2 -6
- package/dist/context-mentions-inline.cjs +1 -1
- package/dist/context-mentions-inline.d.cts +2 -4
- package/dist/context-mentions-inline.d.ts +2 -4
- package/dist/context-mentions-inline.js +1 -1
- package/dist/context-mentions.cjs +1 -1
- package/dist/context-mentions.d.cts +3 -9
- package/dist/context-mentions.d.ts +3 -9
- package/dist/{defaults-CjX0kKzb.d.ts → defaults-Bga2Xrsp.d.cts} +2 -5
- package/dist/{defaults-CjX0kKzb.d.cts → defaults-Bga2Xrsp.d.ts} +2 -5
- package/dist/dictation-runtime.cjs +1 -1
- package/dist/dictation-runtime.d.cts +4 -13
- package/dist/dictation-runtime.d.ts +4 -13
- package/dist/dictation-runtime.js +1 -1
- package/dist/{dom-context-DHTabIn7.d.ts → dom-context-Bw-_9Evh.d.cts} +0 -2
- package/dist/{dom-context-DHTabIn7.d.cts → dom-context-Bw-_9Evh.d.ts} +0 -2
- package/dist/event-stream-view.cjs +1 -1
- package/dist/event-stream-view.d.cts +3 -16
- package/dist/event-stream-view.d.ts +3 -16
- package/dist/{fallback-speech-engine-DmF7MczI.d.ts → fallback-speech-engine-kLdyPcmk.d.cts} +1 -3
- package/dist/{fallback-speech-engine-DmF7MczI.d.cts → fallback-speech-engine-kLdyPcmk.d.ts} +1 -3
- package/dist/{feature-preferences-CVFDt9Xf.d.ts → feature-preferences-CmwZGKrf.d.cts} +1 -5
- package/dist/{feature-preferences-CVFDt9Xf.d.cts → feature-preferences-CmwZGKrf.d.ts} +1 -5
- package/dist/forms-ui.d.cts +2 -4
- package/dist/forms-ui.d.ts +2 -4
- package/dist/{history-confirm-dialog-DJEXsTyE.d.cts → history-confirm-dialog-i46-lPN_.d.cts} +2 -14
- package/dist/{history-confirm-dialog-DJEXsTyE.d.ts → history-confirm-dialog-i46-lPN_.d.ts} +2 -14
- package/dist/history-shell.cjs +1 -1
- package/dist/history-shell.d.cts +8 -27
- package/dist/history-shell.d.ts +8 -27
- package/dist/history-shell.js +1 -1
- package/dist/history-view.d.cts +1 -1
- package/dist/history-view.d.ts +1 -1
- package/dist/icons-extra.cjs +1 -1
- package/dist/icons-extra.d.cts +0 -2
- package/dist/icons-extra.d.ts +0 -2
- package/dist/index.cjs +44 -44
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -11
- package/dist/index.d.ts +11 -11
- package/dist/index.global.js +1 -1
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +46 -46
- package/dist/index.js.map +1 -1
- package/dist/install.global.js +1 -1
- package/dist/install.global.js.map +1 -1
- package/dist/launcher.global.js +2 -2
- package/dist/launcher.global.js.map +1 -1
- package/dist/{loading-label-runtime-loader-CPxnoaoi.d.ts → loading-label-runtime-loader-Ccr3ETd3.d.cts} +1 -3
- package/dist/{loading-label-runtime-loader-CPxnoaoi.d.cts → loading-label-runtime-loader-Ccr3ETd3.d.ts} +1 -3
- package/dist/loading-label-runtime.cjs +1 -1
- package/dist/loading-label-runtime.d.cts +1 -1
- package/dist/loading-label-runtime.d.ts +1 -1
- package/dist/loading-label-runtime.js +1 -1
- package/dist/markdown-parsers.js +1 -1
- package/dist/{message-bubble-CkZGlCLC.d.ts → message-bubble-C6AVaH7f.d.cts} +21 -4
- package/dist/{message-bubble-CkZGlCLC.d.cts → message-bubble-C6AVaH7f.d.ts} +21 -4
- package/dist/{plugin-kit-C1mRjLgW.d.cts → plugin-kit-BVggqE3C.d.cts} +0 -2
- package/dist/{plugin-kit-C1mRjLgW.d.ts → plugin-kit-BVggqE3C.d.ts} +0 -2
- package/dist/plugin-kit.d.cts +1 -1
- package/dist/plugin-kit.d.ts +1 -1
- package/dist/preferences-runtime.cjs +1 -1
- package/dist/preferences-runtime.d.cts +1 -1
- package/dist/preferences-runtime.d.ts +1 -1
- package/dist/preferences-runtime.js +1 -1
- package/dist/{preview-DdUvoLb4.d.cts → preview-BMdRffo4.d.cts} +2 -6
- package/dist/{preview-DdUvoLb4.d.ts → preview-BMdRffo4.d.ts} +2 -6
- package/dist/{registry-Dz4iHNST.d.ts → registry-B16l8s1b.d.cts} +1 -8
- package/dist/{registry-Dz4iHNST.d.cts → registry-B16l8s1b.d.ts} +1 -8
- package/dist/{session-Baxp9iRK.d.cts → session-CtZHe7fc.d.cts} +10 -93
- package/dist/{session-Baxp9iRK.d.ts → session-CtZHe7fc.d.ts} +10 -93
- package/dist/session-reconnect.d.cts +2 -4
- package/dist/session-reconnect.d.ts +2 -4
- package/dist/smart-dom-reader.d.cts +2 -8
- package/dist/smart-dom-reader.d.ts +2 -8
- package/dist/testing.d.cts +0 -2
- package/dist/testing.d.ts +0 -2
- package/dist/theme-editor-preview.cjs +42 -42
- package/dist/theme-editor-preview.d.cts +1 -1
- package/dist/theme-editor-preview.d.ts +1 -1
- package/dist/theme-editor-preview.js +25 -25
- package/dist/theme-editor.cjs +25 -5
- package/dist/theme-editor.d.cts +2 -22
- package/dist/theme-editor.d.ts +2 -22
- package/dist/theme-editor.js +1 -1
- package/dist/theme-reference.cjs +1 -1
- package/dist/theme-reference.d.cts +4 -4
- package/dist/theme-reference.d.ts +4 -4
- package/dist/theme-reference.js +1 -1
- package/dist/{tool-loading-animation-un3kA5Ur.d.ts → tool-loading-animation-D2cyFvmM.d.cts} +1 -7
- package/dist/{tool-loading-animation-un3kA5Ur.d.cts → tool-loading-animation-D2cyFvmM.d.ts} +1 -7
- package/dist/{tooltip-BkW-8MnD.d.cts → tooltip-DbXkAuJL.d.cts} +0 -2
- package/dist/{tooltip-BkW-8MnD.d.ts → tooltip-DbXkAuJL.d.ts} +0 -2
- package/dist/{turn-activity-ui-BGNhtMcH.d.cts → turn-activity-ui-Do1Nd-Ow.d.cts} +2 -12
- package/dist/{turn-activity-ui-BGNhtMcH.d.ts → turn-activity-ui-Do1Nd-Ow.d.ts} +2 -12
- package/dist/turn-activity-ui.d.cts +1 -1
- package/dist/turn-activity-ui.d.ts +1 -1
- package/dist/{types-BOZHQIk0.d.cts → types-BC7MRxO5.d.cts} +167 -36
- package/dist/{types-BOZHQIk0.d.ts → types-BC7MRxO5.d.ts} +167 -36
- package/dist/ui-extras.js +3 -3
- package/dist/voice-client-tools.d.cts +1 -3
- package/dist/voice-client-tools.d.ts +1 -3
- package/dist/voice-runtime.cjs +1 -1
- package/dist/voice-runtime.d.cts +2 -12
- package/dist/voice-runtime.d.ts +2 -12
- package/dist/voice-runtime.js +2 -2
- package/dist/voice-worklet-player.d.cts +2 -6
- package/dist/voice-worklet-player.d.ts +2 -6
- package/dist/{webmcp-runtime-entry-DuAG1_yF.d.ts → webmcp-runtime-entry-B8g46vS0.d.cts} +1 -5
- package/dist/{webmcp-runtime-entry-DuAG1_yF.d.cts → webmcp-runtime-entry-B8g46vS0.d.ts} +1 -5
- 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 +4 -4
- package/src/client-dispatch.ts +69 -16
- package/src/client.operator-role.test.ts +217 -0
- package/src/components/event-stream-view.test.ts +5 -0
- package/src/components/message-bubble.test.ts +169 -0
- package/src/components/message-bubble.ts +123 -34
- package/src/components/scroll-to-bottom.test.ts +135 -0
- package/src/components/scroll-to-bottom.ts +50 -13
- package/src/components/user-message-collapse.ts +117 -0
- package/src/defaults-parity.test.ts +14 -0
- package/src/defaults.ts +6 -0
- package/src/index-core.ts +7 -0
- package/src/session.resubmit-from.test.ts +27 -0
- package/src/session.test.ts +10 -0
- package/src/session.ts +8 -5
- package/src/styles/widget.css +79 -1
- package/src/theme-reference.ts +5 -3
- package/src/types/theme.ts +50 -0
- package/src/types.ts +120 -11
- package/src/ui.ask-user-question-plugin.test.ts +154 -0
- package/src/ui.operator-role.test.ts +336 -0
- package/src/ui.scroll-additive.test.ts +219 -117
- package/src/ui.scroll.test.ts +176 -13
- package/src/ui.ts +267 -119
- package/src/ui.turn-activity.test.ts +7 -7
- package/src/ui.user-message-collapse.test.ts +540 -0
- package/src/utils/__snapshots__/tokens-parity.test.ts.snap +236 -0
- package/src/utils/auto-follow.test.ts +0 -38
- package/src/utils/auto-follow.ts +0 -35
- package/src/utils/brand.test.ts +14 -0
- package/src/utils/brand.ts +8 -4
- package/src/utils/history-messages.test.ts +30 -0
- package/src/utils/history-messages.ts +26 -8
- package/src/utils/message-fingerprint.ts +4 -0
- package/src/utils/resubmit-turn.test.ts +13 -0
- package/src/utils/resubmit-turn.ts +12 -1
- package/src/utils/theme.test.ts +23 -0
- package/src/utils/tokens.ts +47 -0
- package/src/welcome.test.ts +16 -0
- package/src/welcome.ts +10 -2
- package/dist/chunk-BNE40cEG.js +0 -1
- package/dist/chunk-Bz9jAgba.js +0 -1
- package/dist/chunk-CVMIncEY.js +0 -1
- package/dist/chunk-CdpVP6LZ.js +0 -1
- package/dist/chunk-CjkechxR.js +0 -1
- package/dist/chunk-DgZZqy14.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=Symbol.for(`persona.defaultsProvenance`),t=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function n(e,r=``){return Object.entries(e).flatMap(([e,i])=>{let a=r?`${r}.${e}`:e;return t(i)?n(i,a):[a]})}function r(e,n){let r=n.split(`.`);for(let n=0;n<r.length;n++){let i=r[n];if(!t(e)||!Object.prototype.hasOwnProperty.call(e,i))return`absent`;if(e=e[i],e===void 0||n<r.length-1&&!t(e))return`clear`}return`explicit`}function i(t,n){return t?.[e]??n.filter(e=>r(t,e)===`explicit`)}function a(t,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0}),t}function o(e,t,r){return a(e,i(t,n(r)))}function s(t,n,a){let o=n[e];if(o)return o;let s=new Set(i(t,a));for(let e of a){let t=r(n,e);t===`clear`&&s.delete(e),t===`explicit`&&s.add(e)}return[...s]}function c(e,n,r){let i={...e};for(let e of n){if(r.includes(e))continue;let n=e.split(`.`),a=i;for(let e of n.slice(0,-1)){let n=a[e];if(!t(n)){a=void 0;break}a[e]={...n},a=a[e]}a&&delete a[n[n.length-1]]}return i}const l=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function u(e,t){if(!e)return t;if(!t)return e;let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=l(t)&&l(r)?u(t,r):r}return n}const d=e=>{if(typeof e!=`string`)return;let t=e.trim(),n=/^#([\da-f]{3}|[\da-f]{6})$/i.exec(t)?.[1];if(n){let e=n.length===3?[...n].map(e=>e+e).join(``):n;return[0,2,4].map(t=>parseInt(e.slice(t,t+2),16))}let r=/^rgba?\(\s*([^)]*)\)$/i.exec(t);if(!r)return;let i=r[1].trim().split(/\s*[,/]\s*|\s+/);if(i.length===4&&/^(?:1(?:\.0+)?|100%)$/.test(i[3])&&i.pop(),i.length!==3)return;let a=i.map(e=>/^\d+(?:\.\d+)?%?$/.test(e)?Number.parseFloat(e)*(e.endsWith(`%`)?2.55:1):NaN);if(!a.some(e=>!Number.isFinite(e)||e<0||e>255))return a},f=e=>e.reduce((e,t,n)=>{let r=t/255;return e+(r<=.04045?r/12.92:((r+.055)/1.055)**2.4)*[.2126,.7152,.0722][n]},0),p=e=>`#`+e.map(e=>Math.round(e).toString(16).padStart(2,`0`)).join(``),m=(e,t,n)=>p(e.map(e=>e+(t-e)*n)),h=e=>f(e)>.179?`#000000`:`#ffffff`,g=e=>{let t=d(e?.neutral);return t?f(t)<.18?`dark`:`light`:void 0},_=(e,t=`light`,n,r=!1)=>{let i={};if(!e)return i;let a=d(e.accent);if(a){let e={};for(let[t,n]of[[50,.96],[100,.9],[200,.75],[300,.55],[400,.25]])e[t]=m(a,255,n);e[500]=p(a);for(let[t,n]of[[600,.15],[700,.3],[800,.45],[900,.6],[950,.75]])e[t]=m(a,0,n);let t=h(a);i.palette={colors:{primary:e,accent:e}},i.semantic={colors:{primary:e[500],accent:e[500],interactive:{default:e[500],hover:e[600],focus:e[500],active:e[700]}}},i.components={button:{primary:{background:e[500],foreground:t}},launcher:{background:e[500],foreground:t},header:r?{background:`semantic.colors.container`,foreground:`semantic.colors.text`,iconBackground:`transparent`,iconForeground:`semantic.colors.text`}:{background:e[500],foreground:t,iconBackground:e[500],iconForeground:t},approval:{approve:{foreground:t}},message:r?{user:{background:`color-mix(in srgb, var(--persona-primary) 12%, var(--persona-container))`,text:`semantic.colors.text`},operator:{border:`color-mix(in srgb, var(--persona-primary) 35%, var(--persona-border))`}}:{user:{background:e[500],text:t}}}}let o=d(e.neutral);if(o){let e=t===`dark`,n=e===f(o)<.18?o:d(m(o,e?0:255,.9)),r=p(n),a=m(n,e?255:0,e?.06:.025),s=m(n,e?255:0,e?.2:.16),c=h(n),l={};for(let[e,t]of[[50,0],[100,.06],[200,.16],[300,.28],[400,.45],[500,.65],[600,.72],[700,.8],[800,.9],[900,.97],[950,1]])l[e]=m(n,c===`#ffffff`?255:0,t);i.palette={...i.palette,colors:{...i.palette?.colors,gray:l}},i.semantic={...i.semantic,colors:{...i.semantic?.colors,surface:r,background:r,container:a,border:s,divider:s,text:c,textMuted:m(n,c===`#ffffff`?255:0,.65)}},i.components={...i.components,panel:{background:r},header:{...i.components?.header,background:r,foreground:c},composer:{footerBackground:r}}}if(a){let e=d(i.semantic?.colors?.surface)??(t===`dark`?[15,15,16]:[255,255,255]),n=p(a),r=h(e)===`#ffffff`?255:0;for(let t=0;t<=1;t+=.1){n=m(a,r,t);let i=f(d(n)),o=f(e);if((Math.max(i,o)+.05)/(Math.min(i,o)+.05)>=4.5)break}i.components={...i.components,markdown:{link:{foreground:n}},input:{focus:{border:n,ring:n}}}}e.font?.trim()&&(i.semantic={...i.semantic,typography:{fontFamily:e.font}});let s={none:`0px`,sm:`4px`,md:`8px`,lg:`16px`}[e.radius??`none`];e.radius&&s&&(i.palette={...i.palette,radius:{none:`0px`,sm:s,md:s,lg:s,xl:s,"2xl":s}},i.components={...i.components,input:{...i.components?.input,borderRadius:s},header:{...i.components?.header,controlBorderRadius:s}});let c={compact:[13,44,8],comfortable:[14,48,12],spacious:[15,52,16]}[e.density??`comfortable`];if(e.density&&c){let[e,t,n]=c;i.semantic={...i.semantic,typography:{...i.semantic?.typography,fontSize:`${e}px`}},i.components={...i.components,header:{...i.components?.header,minHeight:`${t}px`,padding:`${n}px 16px`,minimalPadding:`${n}px 16px`},history:{railHeader:{minHeight:`${t}px`}},composer:{...i.components?.composer,fontSize:`${e}px`,padding:`${n}px`,gap:`${n/2}px`},message:{...i.components?.message,gap:`${n}px`,user:{...i.components?.message?.user,fontSize:`${e}px`},assistant:{fontSize:`${e}px`},operator:{...i.components?.message?.operator,fontSize:`${e}px`}}}}if(e.elevation&&[`flat`,`subtle`,`raised`].includes(e.elevation)){let t=e.elevation===`flat`,a=t?`none`:e.elevation===`subtle`?`0 2px 8px rgba(0, 0, 0, 0.08)`:`0 12px 32px rgba(0, 0, 0, 0.18)`,o=t?`1px solid var(--persona-border)`:`1px solid color-mix(in srgb, var(--persona-border) 65%, transparent)`;i.palette={...i.palette,shadows:{sm:a,md:a,lg:a,xl:a,"2xl":a}};let s=(e,n=``)=>{let i={};if(r&&n===`message.assistant`)return i;for(let[r,c]of Object.entries(e))if(r.toLowerCase().endsWith(`shadow`)){i[r]=a;let n=r===`shadow`?`border`:r.replace(/Shadow$/,`Border`);n in e&&(i[n]=typeof e[n]==`string`&&e[n].includes(`solid`)?o:t?`semantic.colors.border`:`color-mix(in srgb, var(--persona-border) 65%, transparent)`)}else if(c&&typeof c==`object`){let e=s(c,n?`${n}.${r}`:r);Object.keys(e).length&&(i[r]=e)}return i},c=n?s(n):{};i.components=u(i.components,c),i.components={...i.components,panel:{...i.components?.panel,shadow:a,modes:{floating:{shadow:a,border:o},inline:{shadow:a,border:o},docked:{shadow:a,border:o},sidebar:{shadow:a,border:o},mobile:{shadow:a,border:o}}},launcher:{...i.components?.launcher,shadow:a,border:`semantic.colors.border`},composer:{...i.components?.composer,shadow:a,borderColor:`semantic.colors.border`},toolBubble:{shadow:a},reasoningBubble:{shadow:a}}}return i},v=(e,t)=>t.split(` `).map(t=>`${e}.${t}`),y=[...v(`launcher`,`closeButtonSize closeButtonColor closeButtonBackgroundColor closeButtonBorderWidth closeButtonBorderColor closeButtonBorderRadius closeButtonPaddingX closeButtonPaddingY`),...v(`launcher.clearChat`,`size iconColor backgroundColor borderWidth borderColor borderRadius paddingX paddingY`),...v(`sendButton`,`size iconSize iconStrokeWidth backgroundColor textColor borderWidth borderColor paddingX paddingY`),...v(`voiceRecognition`,`iconSize iconColor backgroundColor borderColor borderWidth paddingX paddingY recordingIconColor recordingBackgroundColor recordingBorderColor processingIconColor processingBackgroundColor processingBorderColor speakingIconColor speakingBackgroundColor speakingBorderColor`),...v(`toolCall`,`shadow backgroundColor borderColor borderWidth borderRadius headerBackgroundColor headerTextColor headerPaddingX headerPaddingY contentBackgroundColor contentTextColor contentPaddingX contentPaddingY codeBlockBackgroundColor codeBlockBorderColor codeBlockTextColor toggleTextColor labelTextColor loadingAnimationColor loadingAnimationSecondaryColor loadingAnimationDuration`),...v(`approval`,`backgroundColor borderColor shadow titleColor descriptionColor reasonColor approveButtonColor approveButtonTextColor denyButtonColor denyButtonTextColor parameterBackgroundColor parameterTextColor`),...v(`features.askUserQuestion.styles`,`sheetBackground sheetBorder sheetShadow pillBackground pillBackgroundSelected pillTextColor pillTextColorSelected pillBorderRadius customInputBackground`),...v(`features.artifacts.layout`,`paneBackground panePadding paneBorderRadius paneShadow chatShadow paneBorder paneBorderLeft unifiedSplitOuterRadius documentToolbarIconColor documentToolbarToggleActiveBackground documentToolbarToggleActiveBorderColor documentToolbarToggleActiveColor tabFadeSize`),...v(`suggestionChipsConfig`,`fontWeight paddingX paddingY`)],b=[`voice.recording.border`,`voice.processing.icon`,`voice.processing.background`,`voice.speaking.icon`,`approval.requested.text`,`approval.approve.foreground`,`approval.deny.foreground`,`approval.deny.background`,`reasoningBubble.shadow`,`toolBubble.shadow`],x=[...y,`suggestionChips`,`copy.welcomeTitle`,`copy.welcomeSubtitle`,`copy.showWelcomeCard`,`features.suggestReplies.enabled`,`features.suggestReplies.expose`,...[`theme`,`darkTheme`].flatMap(e=>b.map(t=>`${e}.components.${t}`))],S=Symbol.for(`persona.styleProvenance`),C=e=>e[S]!==void 0,w=(e,t)=>{for(let n of t.split(`.`)){if(typeof e!=`object`||!e)return;e=e[n]}return e},T=e=>{let t=e?.[S];if(!t)return x.filter(t=>r(e,t)===`explicit`);let n=new Set(t.explicit);return x.forEach(i=>{w(e,i)!==t.values[i]&&(r(e,i)===`explicit`?n.add(i):n.delete(i))}),[...n]},E=(e,t)=>(Object.defineProperty(e,S,{value:{explicit:t,values:Object.fromEntries(x.map(t=>[t,w(e,t)]))},enumerable:!0,configurable:!0}),e),D=(e,t)=>E(e,T(t)),O=(e,t)=>{if(t[S])return T(t);let n=new Set(T(e));for(let e of x){let i=r(t,e);i===`clear`&&n.delete(e),i===`explicit`&&n.add(e)}return[...n]},k=(e,t)=>{let n=e?.[S];return!n||!Object.prototype.hasOwnProperty.call(n.values,t)||w(e,t)!==n.values[t]?r(e,t)===`explicit`:n.explicit.includes(t)},A=(e,t)=>k(e,t)?w(e,t):void 0,j=(e,t,n)=>{let r=e,i=n??r?.colorScheme??g(r?.brand)??`light`,a=i===`dark`||i===`auto`&&(typeof document<`u`&&document.documentElement.classList.contains(`dark`)||typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches);return k(e,`theme.components.${t}`)||a&&k(e,`darkTheme.components.${t}`)};export{r as _,j as a,E as c,g as d,u as f,a as g,c as h,k as i,O as l,o as m,b as n,C as o,i as p,A as r,D as s,y as t,_ as u,s as v,n as y};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{I as e,T as t,n,t as r,w as i}from"./chunk-
|
|
1
|
+
import{I as e,T as t,n,t as r,w as i}from"./chunk-DsWv3EGF.js";import{r as a}from"./chunk-D5BxWOFB.js";import{a as o,c as s,d as c,f as l,i as u,l as d,n as f,o as p,p as m}from"./chunk-Dj2a9f9w.js";import{n as h,t as g}from"./chunk-Di5V0tA0.js";import{t as _}from"./chunk-D3NN94Ru.js";const v=e=>{let{mount:t,overlay:n,sessionRef:r}=e,i=(i,a,o)=>{let s=a.trim();if(!s||!r.current)return;let c=i.getAttribute(`data-tool-call-id`)??``,u=o.source===`free-text`;t.dispatchEvent(new CustomEvent(`persona:askUserQuestion:answered`,{detail:{instanceId:e.instanceId,toolUseId:c,answer:s,answers:o.structured,values:o.values??(o.source===`multi`?s.split(`, `):[s]),isFreeText:u,source:o.source},bubbles:!0,composed:!0})),l(n,c);let d=r.current.getMessages().find(e=>e.toolCall?.id===c);d?.agentMetadata?.awaitingLocalTool?r.current.resolveAskUserQuestion(d,o.structured??s):r.current.sendMessage(s)},a=e=>{let t=r.current;if(!t)return;let n=e.getAttribute(`data-tool-call-id`)??``,i=t.getMessages().find(e=>e.toolCall?.id===n);i&&t.persistAskUserQuestionProgress(i,{answers:f(e,i),currentIndex:u(e)})},h=e=>Object.entries(e).map(([e,t])=>`${e}: ${Array.isArray(t)?t.join(`, `):t}`).join(` | `),g=t=>{if(e.config().features?.askUserQuestion?.groupedAutoAdvance===!1)return;let n=u(t);if(n>=o(t)-1)return;let i=r.current?.getMessages().find(e=>e.toolCall?.id===t.getAttribute(`data-tool-call-id`));i&&(d(t,i,e.config(),n+1),a(t))};return{click:_=>{let v=_.target.closest(`[data-ask-user-action]`);if(!v)return;let y=v.closest(`[data-persona-ask-sheet-for]`);if(!y)return;let b=v.getAttribute(`data-ask-user-action`);if(_.preventDefault(),_.stopPropagation(),b===`dismiss`){let i=y.getAttribute(`data-tool-call-id`)??``;t.dispatchEvent(new CustomEvent(`persona:askUserQuestion:dismissed`,{detail:{instanceId:e.instanceId,toolUseId:i},bubbles:!0,composed:!0})),l(n,i);let a=r.current?.getMessages().find(e=>e.toolCall?.id===i);a?.agentMetadata?.awaitingLocalTool&&(r.current?.markAskUserQuestionResolved(a),r.current?.resolveAskUserQuestion(a,`(dismissed)`))}else if(b===`pick`){let e=v.getAttribute(`data-option-label`);if(!e)return;let t=y.getAttribute(`data-multi-select`)===`true`,n=s(y);if(n&&t){let t=c(y)[u(y)],n=new Set(Array.isArray(t)?t:[]);n.has(e)?n.delete(e):n.add(e),m(y,Array.from(n)),a(y);return}if(n){m(y,e),a(y),g(y);return}if(t){let e=v.getAttribute(`aria-pressed`)===`true`;v.setAttribute(`aria-pressed`,e?`false`:`true`),v.classList.toggle(`persona-ask-pill-selected`,!e);let t=y.querySelector(`[data-ask-user-action="submit-multi"]`);t&&(t.disabled=p(y).length===0);return}i(y,e,{source:`pick`,values:[e]})}else if(b===`submit-multi`){let e=p(y);if(e.length===0)return;i(y,e.join(`, `),{source:`multi`,values:e})}else if(b===`open-free-text`){let e=y.querySelector(`[data-ask-free-text-row="true"]`);e&&(e.classList.remove(`persona-hidden`),e.querySelector(`[data-ask-free-text-input="true"]`)?.focus())}else if(b===`focus-free-text`)y.querySelector(`[data-ask-free-text-input="true"]`)?.focus();else if(b===`submit-free-text`){let e=y.querySelector(`[data-ask-free-text-input="true"]`)?.value??``;if(!e.trim())return;if(s(y)){m(y,e.trim()),a(y),g(y);return}i(y,e,{source:`free-text`})}else if(b===`next`||b===`back`){if(!r.current)return;let t=y.getAttribute(`data-tool-call-id`)??``,n=r.current.getMessages().find(e=>e.toolCall?.id===t);if(!n)return;let i=y.querySelector(`[data-ask-free-text-input="true"]`)?.value?.trim()??``;if(i){let e=c(y)[u(y)];(typeof e!=`string`||e!==i)&&m(y,i)}let o=b===`next`?1:-1,s=u(y)+o;d(y,n,e.config(),s),a(y)}else if(b===`submit-all`){if(!r.current)return;let e=y.getAttribute(`data-tool-call-id`)??``,t=r.current.getMessages().find(t=>t.toolCall?.id===e);if(!t)return;let n=y.querySelector(`[data-ask-free-text-input="true"]`)?.value?.trim()??``;n&&m(y,n);let a=f(y,t);r.current.persistAskUserQuestionProgress(t,{answers:a,currentIndex:u(y)});let o=h(a);i(y,o||`(submitted)`,{source:`submit-all`,structured:a})}else if(b===`skip`){if(!r.current)return;let c=y.getAttribute(`data-tool-call-id`)??``,p=r.current.getMessages().find(e=>e.toolCall?.id===c);if(!p)return;let g=s(y),_=u(y),v=_>=o(y)-1;if(!g){t.dispatchEvent(new CustomEvent(`persona:askUserQuestion:dismissed`,{detail:{instanceId:e.instanceId,toolUseId:c},bubbles:!0,composed:!0})),l(n,c),p.agentMetadata?.awaitingLocalTool&&(r.current.markAskUserQuestionResolved(p),r.current.resolveAskUserQuestion(p,`(dismissed)`));return}m(y,``);let b=y.querySelector(`[data-ask-free-text-input="true"]`);if(b&&(b.value=``),v){let e=f(y,p),t=h(e);i(y,t||`(skipped)`,{source:`submit-all`,structured:e});return}d(y,p,e.config(),_+1),a(y)}},keydown:e=>{if(e.key!==`Enter`)return;let t=e.target;if(!t.matches?.(`[data-ask-free-text-input="true"]`))return;let n=t.closest(`[data-persona-ask-sheet-for]`);if(!n)return;e.preventDefault();let r=t.value;r.trim()&&(s(n)?(m(n,r.trim()),a(n),g(n)):i(n,r,{source:`free-text`}))}}},y={loadContextMentions:()=>t(),loadContextMentionsInline:()=>i(),renderLucideIcon:(...t)=>e(...t),createMentionButton:(...e)=>n(...e)};function b(e){let{loadContextMentions:t,loadContextMentionsInline:n,renderLucideIcon:i,createMentionButton:o}=e.deps??y,s=e.config.contextMentions;if(!s?.enabled)return null;let c=_(s).filter(e=>e.sources.length>0);if(c.length===0)return typeof console<`u`&&console.warn(`[Persona] contextMentions.enabled is true but no sources were provided; mentions are disabled.`),null;let l=c.filter(e=>e.sources.some(e=>typeof e.matchCommand==`function`)),u=e=>l.some(t=>t.trigger?t.position===`line-start`?e.split(`
|
|
2
2
|
`).some(e=>e.startsWith(t.trigger)):(t.position===`anywhere`?e:e.split(`
|
|
3
3
|
`)[0]).startsWith(t.trigger):!1),d=(t,n)=>{if(typeof window<`u`)try{window.dispatchEvent(new CustomEvent(`persona:mention:${t}`,{detail:{...n,instanceId:e.textarea.closest(`[data-persona-instance]`)?.dataset.personaInstance}}))}catch{}},f=!e.chipRow,p=e.chipRow??a(`div`,{className:`persona-mention-context-row`,attrs:{"data-persona-mention-context-row":``}}),m=null,v=null,b=e.textarea,x=null,S=null,C=null,w=null,T=()=>{if(m)return Promise.resolve(m);if(v)return v;let n=t().then(t=>(t.setMentionIconRenderer(i),m=t.mountContextMentions({mentionConfig:s,textarea:e.textarea,composerInput:x??void 0,anchor:e.anchor,contextRow:p,getMessages:e.getMessages,getConfig:()=>e.config,liveRegionHost:e.liveRegionHost,popoverContainer:e.popoverContainer,onPickerOpenChange:O,emit:d}),m)).catch(e=>(typeof console<`u`&&console.warn(`[Persona] Failed to load context mentions runtime`,e),v===n&&(v=null),null));return v=n,n};s.display===`inline`&&n().then(t=>{let n=t.mountInlineComposer({textarea:e.textarea,renderToken:e=>r(e,{render:s.renderMentionToken}),onMentionRemoved:e=>m?.untrackMention(e)});x=n.input,S=n.destroy;let i=b;i.replaceWith(n.element),b=n.element,w={next:n.element,prev:i},C?.(n.element,i),m?m.rebindComposer(n.input):v&&v.then(e=>e?.rebindComposer(n.input))}).catch(e=>{typeof console<`u`&&console.warn(`[Persona] Failed to load inline mention composer`,e)});let E=[],D=/* @__PURE__ */ new Map;for(let e of c){if(!e.showButton)continue;let t=o({config:{...s,buttonIconName:e.buttonIconName,buttonTooltipText:e.buttonTooltipText},onOpen:()=>{T().then(t=>t?.openMenu(e.trigger))}});E.push(t),D.set(e.trigger,t.button)}let O=(e,t,n)=>{let r=D.get(t);r&&(r.setAttribute(`aria-expanded`,e?`true`:`false`),e?r.setAttribute(`aria-controls`,n):r.removeAttribute(`aria-controls`))};return{affordanceButtons:E.map(e=>e.wrapper),contextRow:p,handleInput:e=>{if(m){m.handleInput();return}if(!g(e))return;let t=b,n=t.selectionStart??0;h(t.value,n,c)&&T().then(e=>e?.handleInput())},handleKeydown:e=>{if(m?.isMenuOpen())return m.handleKeydown(e);if(e.key===`Backspace`&&m?.hasMentions()&&!w){let t=b,n=t.selectionStart===0&&t.selectionEnd===0;if((t.value.length===0||n)&&m.removeLastChip())return e.preventDefault(),!0}return!1},isMenuOpen:()=>m?.isMenuOpen()??!1,hasMentions:()=>m?.hasMentions()??!1,getMentionRefs:()=>m?.getMentionRefs()??[],captureDraft:()=>m?.captureDraft()??[],restoreDraft:e=>m?.restoreDraft(e),getInlineInput:()=>x,collectForSubmit:()=>m?.collectForSubmit()??null,takeInlineCommand:async e=>u(e)?(m??await T())?.dispatchInlineCommand(e)??null:null,clear:()=>m?.clear(),prefetch:()=>{t().catch(()=>{})},onComposerSwap:e=>{C=e,w&&e(w.next,w.prev)},destroy:()=>{m?.destroy(),S?.();for(let e of E)e.wrapper.remove();f&&p.remove()}}}export{v as createAskUserSheetHandlers,b as createContextMentionOrchestrator};
|
|
@@ -1 +1 @@
|
|
|
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
|
+
import{a as e,r as t}from"./chunk-CEPM3FOp.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{a as e,r as t}from"./chunk-
|
|
1
|
+
import{a as e,r as t}from"./chunk-CEPM3FOp.js";import{t as n}from"./chunk-D5BxWOFB.js";import{t as r}from"./chunk-DehTFE4q.js";const i=(e,t,r)=>{let i=r;for(let r of t){let t=n(`span`,`persona-tool-char`);t.style.setProperty(`--char-index`,String(i)),t.textContent=r===` `?`\xA0`:r,e.appendChild(t),i++}return i};function a(e,t){let{animation:n,duration:r,color:a,secondaryColor:o}=t;if(n===`none`||(e.setAttribute(`data-preserve-animation`,`true`),e.classList.add(`persona-tool-loading-${n}`),r&&e.style.setProperty(`--persona-tool-anim-duration`,r),a&&e.style.setProperty(`--persona-tool-anim-color`,a),o&&e.style.setProperty(`--persona-tool-anim-secondary-color`,o),n===`pulse`))return;let s=0,c=e=>{for(let t of Array.from(e.childNodes))if(t.nodeType===3){let e=document.createElement(`span`);s=i(e,t.textContent??``,s),t.replaceWith(...Array.from(e.childNodes))}else t instanceof HTMLElement&&!t.hasAttribute(`data-tool-elapsed`)&&c(t)};c(e)}const{resolveToolStyles:o,applyToolPadding:s,toolLoadingDuration:c}=r({getExplicitLegacyStyle:t,hasExplicitThemeStyle:e});function l(e,t,n){let r=t?.loadingLabel,i=n===`reasoning`,s=i?t?.reasoning:o(t),l=n===`waiting`?void 0:i?t?.features?.reasoningDisplay:t?.features?.toolCallDisplay,u=r?.animation??l?.loadingAnimation??(n===`waiting`||t?.future?.v5Defaults?`shimmer`:`none`);if(u===`none`)return;let d={animation:u,duration:r?.duration===void 0?i?`${s?.loadingAnimationDuration??2e3}ms`:c(t):`${r.duration}ms`,color:r?.color??s?.loadingAnimationColor,secondaryColor:r?.secondaryColor??s?.loadingAnimationSecondaryColor};e.dataset.personaLoadingLabel=n,e.dataset.personaLoadingText=e.textContent??``,e.dataset.personaLoadingAnimation=JSON.stringify([n,e.textContent,d,!!r?.animate,e.className,e.getAttribute(`style`)]),r?.animate?e.setAttribute(`data-preserve-animation`,`true`):a(e,d)}function u(e,t){let n=!1,r=/* @__PURE__ */ new Map,i=e.ownerDocument.defaultView?.matchMedia?.(`(prefers-reduced-motion: reduce)`),a=e=>{try{e()}catch(e){console.warn(`[persona] Loading label animation failed`,e)}},o=e=>{let t=r.get(e);r.delete(e),t?.handle&&a(()=>t.handle?.destroy())},s=e=>`${e.closest(`[data-wrapper-id]`)?.dataset.wrapperId??``}:${e.dataset.personaLoadingLabel}`,c=e=>{if(n)return;let a=i?.matches?void 0:t().loadingLabel?.animate;if(!a&&!r.size)return;let c=new Set(Array.from(e.querySelectorAll(`[data-persona-loading-label]`),s)),l=new Set(Array.from(e.querySelectorAll(`[data-persona-reuse]`),e=>e.dataset.wrapperId));for(let[e,t]of r){let n=l.has(e.closest(`[data-wrapper-id]`)?.dataset.wrapperId);(t.start!==a||!n&&!c.has(s(e)))&&o(e)}},l=()=>{if(n)return;let s=t(),c=i?.matches?void 0:s.loadingLabel?.animate;if(!c&&!r.size)return;let l=new Set(e.querySelectorAll(`[data-persona-loading-label]`));for(let[e,t]of r)c&&t.start===c&&l.has(e)&&e.dataset.personaLoadingLabel===t.kind||o(e);if(c)for(let e of l){if(n||t().loadingLabel?.animate!==c)break;let i={element:e,config:s,text:e.dataset.personaLoadingText??``,kind:e.dataset.personaLoadingLabel,reducedMotion:!1},o=r.get(e);if(o)a(()=>o.handle?.update?.(i));else{let t={start:c,kind:i.kind,handle:void 0};r.set(e,t),a(()=>{let n=c(i);r.get(e)===t?t.handle=n:n?.destroy()})}}};return i?.addEventListener?.(`change`,l),{prepare:c,sync:l,destroy(){n=!0,i?.removeEventListener?.(`change`,l);for(let e of r.keys())o(e)}}}export{a as applyLoadingAnimation,l as applyLoadingLabel,u as createLoadingLabelLifecycle};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,r as t,t as n}from"./chunk-D5BxWOFB.js";import{r}from"./chunk-Bb41bKyp.js";import{n as i,r as a}from"./chunk-Bz9jAgba.js";import{a as o}from"./chunk-Cy1A8vbF.js";import{n as s}from"./chunk-CLMIHW4_.js";const c=(e,t)=>{console.warn(`[persona] ${e} threw`,t)},l=e=>Object.freeze({...e}),u=e=>Object.freeze({id:e.id,title:e.title,targetId:e.targetId,preview:e.preview,messageCount:e.messageCount,createdAt:e.createdAt,updatedAt:e.updatedAt}),d=e=>e?l(e):null;function ee(e){let{plugins:t,config:n}=e,r=!1,i=!1,a=!1,o=!1,s=null,ee=[],f=()=>{for(let e of ee.splice(0))try{e()}catch(e){c(`renderHistoryView cleanup`,e)}},p=(e,n)=>{for(let r of t){let t=r[e];if(t)try{let e=t(n);if(e)return e}catch(t){c(e,t)}}return null},m=()=>({presentation:e.getPresentation(),config:n}),h={header:t=>o?p(`renderHistoryHeader`,Object.freeze({...m(),returnSurface:e.getReturnSurface(),identityStatus:l(t.identityStatus),pendingAction:d(t.pendingAction),copy:l(t.copy),actions:Object.freeze({close:_.close,startNewConversation:_.startNewConversation}),defaultRenderer:t.defaultRenderer})):null,conversation:e=>o?p(`renderHistoryConversation`,Object.freeze({...m(),conversation:u(e.conversation),active:e.active,pending:e.pending,open:e.open,requestDelete:e.requestDelete,defaultRenderer:e.defaultRenderer})):null,state:e=>o?p(`renderHistoryState`,Object.freeze({...m(),state:l(e.state),identityStatus:l(e.identityStatus),copy:l(e.copy),...e.retry?{retry:e.retry}:{},...e.startNewConversation?{startNewConversation:e.startNewConversation}:{},defaultRenderer:e.defaultRenderer})):null},te=t.flatMap(t=>(t.railSections??[]).map(t=>({...t,placement:t.placement??`above-conversations`,items:[],render:n=>t.render(Object.freeze({collapsed:n,presentation:e.getPresentation(),actions:_}))}))),g=e.createView({slots:h,renderDom:!1,onModelChange:()=>b(),railSections:te}),_=Object.freeze({...g.operations,close:e.close}),v=()=>(o=!0,g.setDomRenderEnabled(!0),g.element),ne=t=>Object.freeze({conversations:Object.freeze(t.conversations.map(u)),activeConversationId:t.activeConversationId,state:l(t.state),pendingAction:d(t.pendingAction),identityStatus:l(t.identityStatus),nextCursor:t.nextCursor,presentation:e.getPresentation(),returnSurface:e.getReturnSurface(),config:n,copy:l(g.copy),actions:_,defaultRenderer:v,requestRender:()=>b(),onCleanup:e=>{ee.push(e)}}),y=()=>{o=!1;let e=null;for(let n of t)if(n.renderHistoryView){try{e=n.renderHistoryView(ne(g.getModel()))}catch(t){c(`renderHistoryView`,t),e=null}if(e)break}let n=!e||e.contains(g.element);return o=n,g.setDomRenderEnabled(n),e??g.element};function b(){if(!(!a||r||i)){i=!0;try{f();let t=y();if(t===s)return;let n=s;s=t,e.onElementChanged(t,n)}finally{i=!1}}}return a=!0,b(),{view:g,get element(){return s??g.element},requestRender:b,dispose:()=>{r=!0,f()}}}const f=/* @__PURE__ */ new Map([[`not_found`,`not_found`],[`conversation_deleted`,`not_found`],[`rate_limited`,`rate_limited`],[`authentication_required`,`authentication_required`],[`invalid_identity_proof`,`authentication_required`],[`visitor_identity_mismatch`,`authentication_required`],[`visitor_required`,`authentication_required`],[`identity_provider_failed`,`identity_provider_failed`],[`proof_not_admitted`,`proof_not_admitted`],[`identity_contract_violation`,`proof_not_admitted`],[`unauthorized`,`authentication_failed`],[`visitor_token_missing`,`authentication_failed`],[`conversation_credential_missing`,`authentication_failed`]]),p=/* @__PURE__ */ new Map([[`not_found`,`That conversation is no longer available.`],[`rate_limited`,`Too many history requests.`],[`authentication_failed`,`History access was not authorized.`],[`authentication_required`,`Sign in again to view account history.`],[`identity_provider_failed`,`The identity provider did not respond.`],[`proof_not_admitted`,`Account history is not available for this configuration.`],[`unsupported_scope`,`This history scope is not supported.`],[`unavailable`,`Conversation history is unavailable right now.`]]),m=e=>p.get(e)??`Conversation history is unavailable right now.`;function h(e,{HistoryClientError:t,HistoryProviderError:n}){if(e instanceof n)return e;if(e instanceof t){let t=f.get(e.code)??`unavailable`;return new n(t,m(t),{...e.retryAfterSeconds===void 0?{}:{retryAfterSeconds:e.retryAfterSeconds}})}return new n(`unavailable`,m(`unavailable`))}function te(e){let{HistoryProviderError:t}=e.errors,n=()=>e.getClient?.()??e.client,r=e.getIdentityProofConfigured()?[`browser`,`verified-user`]:[`browser`],o={scopes:r},s=e=>{if(!r.includes(e))throw new t(`unsupported_scope`,m(`unsupported_scope`))},c=async(t,n)=>{s(t);try{return await n()}catch(t){throw h(t,e.errors)}},l=t=>{let n=!1;return{conversationId:t.session.conversationId??``,conversationRevision:t.session.conversationRevision??``,async commit(){n||(n=!0,t.commit(),await e.onActivationCommitted(t.session))},discard(){n||(n=!0,t.discard())}}};return{capabilities:o,getIdentityStatus(){return n().getHistoryIdentityStatus()},subscribeIdentityStatus(e){return n().subscribeHistoryIdentityStatus(e)},subscribeAvailability(e){return n().subscribeHistoryAvailability(e)},async list(e){return c(e.context.scope,async()=>{let t=await n().listConversations({...e.cursor?{cursor:e.cursor}:{},...e.limit===void 0?{}:{limit:e.limit},...e.targetId?{targetId:e.targetId}:{},scope:e.context.scope});return{items:t.data,nextCursor:t.nextCursor}})},async getPage(e,t){return c(t.context.scope,async()=>{let r=await n().getConversation(e,{...t.cursor?{messageCursor:t.cursor}:{},scope:t.context.scope}),o=i(r.messages,{...t.beforeCreatedAt?{beforeCreatedAt:t.beforeCreatedAt}:{}});return{summary:r.summary,messages:a([],o),conversationRevision:r.conversationRevision??``,nextCursor:r.nextMessageCursor}})},async prepareOpen(e,t){return c(t.context.scope,async()=>l(await n().prepareConversationSession(e)))},async prepareStartNew(e){return c(e.context.scope,async()=>l(await n().prepareNewConversationSession()))},async delete(e,t){await c(t.context.scope,()=>n().deleteConversation(e,{scope:t.context.scope}))},async deleteAll(e){return c(e.context.scope,()=>n().deleteAllConversations({...e.targetId===void 0?{}:{targetId:e.targetId},scope:e.context.scope}))},async resetDevice(){try{return await n().resetVisitor(),{remoteRevocationConfirmed:!0}}catch{return{remoteRevocationConfirmed:!1}}}}}const g=i=>{let a=s(i.config.features?.history?.copy),c=null,l=!1,u=null,d=null,f=`conversation`,p=null,m=null,h=null,g=null,_=0,v=null,ne=null,y=null,b=`persona-history-${Math.random().toString(36).slice(2,8)}`,x=()=>i.historyFeatureEnabled()&&!!c&&!l,re=()=>{let e=i.session.getStatus();return i.isStreaming||e===`paused`||e===`resuming`},ie=()=>{let e=i.config.features?.history?.scope;if(e)return e;let t=i.config.getIdentityProof?`verified-user`:`browser`,n=c?.capabilities.scopes;return!n||n.includes(t)?t:n[0]??t},S=()=>d?.scope??ie(),ae=()=>i.session.getClientSession()?.targetId??null,oe=e=>`${e.state}:${`reason`in e?e.reason:``}`,se=e=>{let t=oe(e);t!==g&&(g=t,i.eventBus.emit(`history:identityStatusChanged`,{status:e,timestamp:Date.now()}))},ce=null,le=null,ue=()=>{if(!i.historyFeatureEnabled())return null;let e=i.getHistoryProviderFactory();if(e)return e();let t=i.config.features?.history?.provider;return t?typeof t==`function`?(ce!==t&&(ce=t,le=t()),le):t:i.session.isClientTokenMode()?te({errors:i.historyErrors,client:i.session.getClient(),getIdentityProofConfigured:()=>typeof i.config.getIdentityProof==`function`,onActivationCommitted:e=>i.session.bindActivatedSession(e),getClient:()=>i.session.getClient()}):null},de=()=>{ne?.(),ne=null,y?.(),y=null,l=!1;let e=c;c=ue(),e&&e!==c&&i.discardConversationContinuity();let t={...i.historyInternals};c?t.historyProvider=c:delete t.historyProvider,i.historyInternals=t,i.session.setHistoryInternals(i.historyInternals),c&&(ne=c.subscribeAvailability?.(e=>{l=!e,e||q({restoreFocus:!1}),$()})??null,y=c.subscribeIdentityStatus(e=>se(e)),g=oe(c.getIdentityStatus()))},fe=()=>{let e=i.config.features?.history?.presentation??`panel`;if(e===`panel`||e===`auto`&&i.launcherEnabled&&!i.isDockedMountMode(i.config))return`panel`;let t=i.artifactSplitRoot??i.container;return(t.getBoundingClientRect().width||t.clientWidth)>=720?`rail`:`panel`},C=(e,t)=>{t?(e.setAttribute(`aria-hidden`,`true`),e.setAttribute(`inert`,``)):(e.removeAttribute(`aria-hidden`),e.removeAttribute(`inert`))},pe=`data-persona-history-suppressed`,w=null,T=null,E=null,D=null,me=null,he=``,ge=()=>i.header===me?he:o(i.config)?``:`none`,_e=()=>i.historyPresentation===`panel`&&!!E&&D===E.element&&o(i.config)&&ge()!==`none`,ve=()=>{for(let e of Array.from(i.header.children))e!==w&&e.setAttribute(pe,``)},ye=()=>{for(let e of Array.from(i.container.querySelectorAll(`[${pe}]`)))e.removeAttribute(pe)},be=()=>{let e=E;if(!e)return;if(Array.from(i.header.children).some(e=>e!==w&&!e.hasAttribute(pe))){T&&T!==i.header&&(T.style.removeProperty(`min-height`),T=null);let e=i.header.offsetHeight;e>0&&(i.header.style.minHeight=`${e}px`,T=i.header)}w||=n(`div`,`persona-history-header-host`),e.setHeaderPlacement(`external`);let t=e.getHeaderElement();t.parentNode!==w&&w.replaceChildren(t),w.parentNode!==i.header&&i.header.appendChild(w),ve()},xe=()=>{T&&=(T.style.removeProperty(`min-height`),null),w&&(E?.setHeaderPlacement(`inline`),w.remove(),w=null,ye())},Se=null,Ce=()=>{Se&&(i.body.style.display=`none`,C(i.body,!0),i.footer.hidden=!0,C(i.footer,!0),i.panelSuggestions.style.display=`none`,C(i.panelSuggestions,!0),i.panelSuggestionsFade.style.display=`none`,_e()?(be(),i.header.style.display=ge(),C(i.header,!1)):(xe(),i.header.style.display=`none`,C(i.header,!0)))};i.reapplyHistoryHostChrome=Ce;let we=e=>{let t=i.body.style.display,n=i.footer.hidden,r=i.panelSuggestions.style.display,a=i.panelSuggestionsFade.style.display,s=i.footer,c=i.header,l=i.header.style.display;me=c,he=l,Se=()=>{Se=null,xe(),me=null,i.body.style.display=t,C(i.body,!1),i.panelSuggestions.style.display=r,C(i.panelSuggestions,!1),i.panelSuggestionsFade.style.display=a,s.hidden=n,C(s,!1),i.footer!==s&&(i.footer.hidden=!1,C(i.footer,!1)),c.style.display=l,C(c,!1),i.header!==c&&(i.header.style.display=o(i.config)?``:`none`,C(i.header,!1))},i.container.insertBefore(e,i.footer.parentNode===i.container?i.footer:i.panelSuggestions),Ce()},O=null,k=null,Te=null,A=null,Ee=()=>[i.header,i.panelElements.closeButtonWrapper,i.panelElements.clearChatButtonWrapper,i.body,i.footer,i.scrollToBottomButton],De=()=>i.config.features?.history?.rail?.collapsible!==!1,j=()=>i.config.features?.history?.rail?.side===`right`?`right`:`left`,Oe=e=>Math.min(400,Math.max(200,Math.round(e))),ke=()=>i.config.features?.history?.rail?.resizable===!0,M,Ae=()=>{if(M===void 0&&(M=null,i.config.persistState!==!1))try{let e=Number(window.localStorage.getItem(`${i.currentKeyPrefix()}rail-width`));e&&(M=e)}catch{}return M},N=()=>Oe(Ae()??i.config.features?.history?.rail?.width??260),je=e=>{if(M=e,i.config.persistState!==!1)try{window.localStorage.setItem(`${i.currentKeyPrefix()}rail-width`,String(e))}catch{}},Me=()=>De()&&i.config.features?.history?.rail?.collapsedBehavior===`overlay`,P=!1,Ne=e=>{let t=n(`img`);return t.src=e,t.alt=``,t.setAttribute(`aria-hidden`,`true`),t},Pe=()=>{let e=i.config.features?.history?.rail?.brand;if(!e)return;let t=!1,n;return r=>{if(e.render)try{return e.render({collapsed:r})??null}catch(e){return t||(t=!0,console.warn(`[persona] history rail brand threw`,e)),null}return n===void 0&&(n=e.iconUrl?Ne(e.iconUrl):e.icon?i.renderLucideIcon(e.icon,20):null),n?n.cloneNode(!0):null}},Fe=()=>i.config.features?.history?.rail?.sections?.map(e=>{let t=!1,n=n=>{t||(t=!0,console.warn(`[persona] history rail section threw`,e.id,n))};return{id:e.id,title:e.title,placement:e.placement??`above-conversations`,items:e.items.map(e=>{let t;return{id:e.id,label:e.label,badge:e.badge,iconNode:()=>{if(t!==void 0)return t;try{t=e.renderIcon?e.renderIcon()??null:e.iconUrl?Ne(e.iconUrl):e.icon?i.renderLucideIcon(e.icon,20):null}catch(e){n(e),t=null}return t},onSelect:()=>{try{e.onSelect()}catch(e){n(e)}}}})}})??[],Ie=e=>{let t=Fe();for(let n of e)t.some(e=>e.id===n.id)?console.warn(`[persona] duplicate history rail section id`,n.id):t.push(n);return t.length?t:void 0},F=null,Le=()=>`${i.currentKeyPrefix()}rail-collapsed`,Re=()=>{if(F===null&&(F=i.config.features?.history?.rail?.defaultCollapsed===!0,i.config.persistState!==!1))try{let e=window.localStorage.getItem(Le());e&&(F=e===`1`)}catch{}return F},ze=e=>{if(F=e,i.config.persistState!==!1)try{window.localStorage.setItem(Le(),e?`1`:`0`)}catch{}},I=()=>i.historyPresentation===`rail`&&De()&&!Me()&&Re(),Be=()=>{},Ve=()=>{Me()?Be():(ze(!Re()),u?.view.setCollapsed(I()),i.applyRailChrome(),i.repinAnchoredMessage())},He=()=>{let e=i.config.features?.history?.rail?.collapseShortcut;return!e||!i.parseCombo(e)?null:{combo:e,hint:i.formatCombo(e),aria:i.ariaCombo(e)}},Ue=`var(--persona-history-overlay-margin,8px)`,L=null,R=null,We=0,z=null,B=null,V=!1,Ge=0,Ke=()=>window.matchMedia?.(`(pointer: coarse)`).matches===!0,H=()=>x()&&Me()&&(i.historyPresentation??fe())===`rail`,qe=()=>i.historyVisible&&!P,U=()=>{B!==null&&clearTimeout(B),B=null},Je=()=>{i.loadHistoryView().catch(()=>{})},Ye=()=>{U(),P&&(B=setTimeout(()=>{B=null,!V&&P&&(z?.contains(document.activeElement)||q({restoreFocus:!1}))},300))},Xe=(e,t)=>{let n=z?.getBoundingClientRect();if(!n)return!1;let r=L?.getBoundingClientRect(),i=r?Math.min(r.top,n.top):n.top;return e>=n.left&&e<=n.right&&t>=i&&t<=n.bottom||!!r&&e>=r.left&&e<=r.right&&t>=r.top&&t<=r.bottom},Ze=e=>{P&&(V=Xe(e.clientX,e.clientY),V?U():B===null&&Ye())},Qe=e=>{!i.historyVisible&&H()&&(P=!0,K({invoker:L,keyboard:e?.keyboard===!0}).then(()=>{i.historyVisible?!V&&document.activeElement!==L&&q():P=!1}))},$e=()=>{let e=D?.querySelector(`[data-persona-history-focus="collapse"]`);e&&(e.setAttribute(`aria-label`,P?a.expandLabel:a.collapseLabel),e.setAttribute(`aria-expanded`,P?`false`:`true`))},et=()=>{ze(!1);let e=u;if(!P||!e){K({invoker:L});return}let t=document.activeElement===L;P=!1,ft(),e.element.remove(),mt(e.element),$e(),t&&_t(),i.repinAnchoredMessage(),$()},tt=()=>{ze(!0),q()};Be=()=>{!i.historyVisible||P?et():tt()};let nt=()=>{let e=He(),t=i.createHeaderIconButton({ariaLabel:a.expandLabel,iconName:`panel-left`,wrapperClassName:`persona-relative persona-inline-flex persona-items-center persona-justify-center`,extraClassName:`persona-rail-trigger`,tooltip:!1,attrs:{"data-persona-rail-trigger":``,"aria-controls":b,...e?{"aria-keyshortcuts":e.aria}:{}}}),n=t.button;n.addEventListener(`mouseenter`,()=>{V=!0,U(),!(Ke()||Date.now()<Ge)&&Qe()}),n.addEventListener(`mouseleave`,()=>{V=!1,Ge=0,Ye()}),n.addEventListener(`focus`,()=>{i.historyVisible||Je()}),n.addEventListener(`click`,e=>{x()&&(e.detail!==0&&Ke()&&!i.historyVisible?Qe():et())}),L=n,R=t.wrapper},W=()=>{if(R&&!R.isConnected&&(R=null,L=null),!H()){R?.remove(),R=null,L=null;return}L||nt();let e=R,t=L;if(!e||!t)return;let n=j()===`right`?null:i.header.firstChild;(n??i.header.lastChild)!==e&&i.header.insertBefore(e,n),e.style.display=qe()||We>0?`none`:``,t.setAttribute(`aria-label`,a.expandLabel),t.setAttribute(`aria-expanded`,i.historyVisible?`true`:`false`),z&&i.applyRailChrome()},rt=e=>{if(!P)return;let t=e.target;t instanceof Node&&(z?.contains(t)||R?.contains(t)||t instanceof Element&&t.closest(`.persona-dropdown-menu,[role="alertdialog"]`)||q({restoreFocus:!1}))};document.addEventListener(`pointerdown`,rt,!0),i.destroyCallbacks.push(()=>{document.removeEventListener(`pointerdown`,rt,!0),document.removeEventListener(`pointermove`,Ze),G?.(),U()});let it=null,G=null,at=e=>{je(Oe(e)),i.applyRailChrome(),i.repinAnchoredMessage()},ot=()=>{let e=n(`div`,`persona-rail-resizer`);return e.tabIndex=0,e.setAttribute(`role`,`separator`),e.setAttribute(`aria-orientation`,`vertical`),e.setAttribute(`aria-valuemin`,`200`),e.setAttribute(`aria-valuemax`,`400`),e.addEventListener(`pointerdown`,t=>{let n=k;if(!n||t.button!==0)return;t.preventDefault(),G?.();let r=t.clientX,a=n.getBoundingClientRect().width||N(),o=j()===`right`?-1:1,s=a,c=i.mount.ownerDocument;n.style.transition=`none`;let l=t=>{s=Oe(a+o*(t.clientX-r)),n.style.flex=`0 0 ${s}px`,e.setAttribute(`aria-valuenow`,String(s))},u=()=>{G=null,c.removeEventListener(`pointermove`,l),c.removeEventListener(`pointerup`,u),c.removeEventListener(`pointercancel`,u),n.style.removeProperty(`transition`);try{e.releasePointerCapture(t.pointerId)}catch{}at(s)};G=u,c.addEventListener(`pointermove`,l),c.addEventListener(`pointerup`,u),c.addEventListener(`pointercancel`,u);try{e.setPointerCapture(t.pointerId)}catch{}}),e.addEventListener(`keydown`,e=>{let t=j()===`right`?-16:16,n=N(),r=e.key===`ArrowRight`?n+t:e.key===`ArrowLeft`?n-t:e.key===`Home`?200:e.key===`End`?400:null;r!==null&&(e.preventDefault(),at(r))}),e},st=(e,t)=>{if(!ke()||I()){G?.(),it?.remove();return}let n=it??ot();it=n,n.setAttribute(`aria-label`,a.resizeLabel),n.setAttribute(`aria-valuenow`,String(N())),n.nextElementSibling!==t&&e.insertBefore(n,t)};i.applyRailChrome=()=>{u?.view.setRailSide(j());let e=j()===`right`,t=z;if(t){let n=L?L.getBoundingClientRect().bottom-i.container.getBoundingClientRect().top:0;t.style.top=`calc(${Math.max(0,Math.round(n))}px + ${Ue})`,t.style.width=`${N()}px`,t.style.left=e?``:Ue,t.style.right=e?Ue:``}let n=k,r=O,a=Te;if(!n||!r||!a)return;n.style.flex=`0 0 ${I()?52:N()}px`;let o=`1px solid var(--persona-divider,#e5e7eb)`;n.style.borderRight=e?``:o,n.style.borderLeft=e?o:``;let s=e?a:n;r.firstElementChild!==s&&r.append(s,e?n:a),st(r,e?n:a)};let ct=e=>{if(A&&k){A.replaceWith(e),A=null,i.applyRailChrome();return}let t=n(`div`,`persona-history-rail-shell`);t.style.cssText=`display:flex;flex-direction:row;flex:1 1 auto;min-height:0`;let r=n(`div`,`persona-history-rail-conversation`);r.style.cssText=`display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;position:relative`;let a=n(`div`,`persona-history-rail-host`);a.style.cssText=`display:flex;min-height:0;overflow:hidden`,i.container.insertBefore(t,i.header.parentNode===i.container?i.header:i.body);for(let e of Ee())e?.parentNode===i.container&&r.appendChild(e);t.append(a,r),a.appendChild(e),O=t,k=a,Te=r,i.applyRailChrome()},lt=()=>{if(O)return;let e=n(`div`,`persona-history-rail-placeholder`);e.style.cssText=`flex:1 1 auto;min-height:0`,A=e,ct(e),i.repinAnchoredMessage()},ut=()=>{A&&(ft(),i.repinAnchoredMessage())},dt=e=>{let t=n(`div`,`persona-history-rail-overlay`);t.style.cssText=`position:absolute;bottom:${Ue};display:flex;overflow:hidden;z-index:${r-1};border-radius:var(--persona-history-overlay-radius,16px);background:var(--persona-history-overlay-bg,var(--persona-container,#f7f7f8));box-shadow:var(--persona-history-overlay-shadow,0 12px 40px rgba(0,0,0,0.25))`,i.container.style.position=`relative`,i.container.appendChild(t),t.appendChild(e),document.addEventListener(`pointermove`,Ze),z=t,i.applyRailChrome(),$e()},ft=()=>{Se?.(),z&&=(V&&(Ge=Date.now()+150),document.removeEventListener(`pointermove`,Ze),z.remove(),null);let e=O;if(e){G?.();for(let t of Ee())if(t&&e.contains(t)){let n=t===i.scrollToBottomButton?i.panelSuggestions:e;i.container.insertBefore(t,n)}e.remove(),O=null,k=null,Te=null,A=null}},pt=e=>{D=e,e.id=b,e.style.flex=`1 1 auto`,e.style.minHeight=`0`},mt=e=>{pt(e),(i.historyPresentation!==`rail`||P)&&ut(),i.historyPresentation===`rail`?P?dt(e):ct(e):we(e)},ht=()=>{if(W(),Ht(),!i.historyVisible||!u)return;let e=fe();if(e===i.historyPresentation)return;let t=document.activeElement,n=t instanceof HTMLElement&&(u.element.contains(t)||w?.contains(t)===!0)?t:null;ft(),u.element.remove(),u.view.setHeaderPlacement(`inline`),i.historyPresentation=e,u.view.setPresentation(e),u.view.setCollapsed(I()),u.requestRender(),u.element.isConnected||mt(u.element),n?.isConnected?n.focus():_t(),i.syncScrollToBottomButton(),i.repinAnchoredMessage(),$()},gt=(e,t)=>w?.querySelector(t)??e.querySelector(t),_t=()=>{let e=u?.element??D;if(!e)return;let t=gt(e,`[data-persona-history-focus="close"],[data-persona-history-focus="collapse"]`);if(t){t.focus();return}let n=gt(e,`.persona-history-title`)??e;n.tabIndex=-1,n.focus()},K=async e=>{if(!x()||i.historyVisible)return;let t=c;if(!t)return;if(!P&&H()&&Re()){W();return}vt();let n=++_;f=e?.returnSurface??`conversation`,p=e?.invoker??m;let r=H()&&!P;r&&(We+=1,W(),lt());let s;try{s=await i.loadHistoryView()}catch{i.announceHistory(a.openHistoryLabel),r&&(--We,n===_&&(ut(),W()));return}if(r&&--We,n!==_||i.historyVisible)return;d={scope:ie()},i.historyPresentation=fe(),i.historyVisible=!0;let l=i.historyPresentation===`panel`&&o(i.config)&&i.header.style.display!==`none`?`external`:`inline`,h=i.config.features?.history?.rowAvatar,te=He(),g=te?{hint:te.hint,aria:te.aria}:null,v={provider:t,context:d,targetId:ae(),presentation:i.historyPresentation,collapsible:De(),collapsed:I(),railSide:j(),renderRailHeader:i.config.features?.history?.rail?.renderHeader,railBrand:Pe(),onToggleCollapse:Ve,...g?{collapseShortcut:g}:{},headerPlacement:l,showScopeStatus:i.config.features?.history?.showScopeStatus!==!1,showDelete:i.config.features?.history?.showDelete!==!1,showDeleteAll:i.config.features?.history?.showDeleteAll!==!1,...i.config.features?.history?.listActions?.length?{listActions:i.config.features.history.listActions}:{},rowAvatar:h===!1?!1:typeof h==`string`?h:i.config.launcher?.iconUrl,activeConversationId:i.session.getActiveConversationId(),...i.config.features?.history?.grouping?{grouping:i.config.features.history.grouping}:{},...i.config.features?.history?.copy?{copy:i.config.features.history.copy}:{},...i.config.features?.history?.pageSize===void 0?{}:{pageSize:i.config.features.history.pageSize},onSelect:e=>At(e,{focusComposer:!0}).catch(()=>{}),onActiveConversationChange:e=>i.setActiveConversationSummary(e),attachTooltip:i.attachTooltip,onStartNew:()=>jt({focusComposer:!0}),onClose:()=>q(),onRequestDeleteConversation:e=>Rt(e),onRequestClearHistory:()=>zt(),...t.resetDevice?{onRequestResetIdentity:()=>Bt()}:{}};u=ee({plugins:i.plugins,config:i.config,getPresentation:()=>i.historyPresentation??`panel`,getReturnSurface:()=>f,close:()=>q(),createView:({slots:e,renderDom:t,onModelChange:n,railSections:r})=>(E=s.createHistoryView({...v,railSections:Ie(r),slots:e,renderDom:t,onModelChange:n,onAnnounce:i.announceHistory}),E),onElementChanged:(e,t)=>{if(!t?.isConnected)return mt(e);pt(e),t.replaceWith(e),Ce()}}),u.view.setNewConversationRequired(i.historySessionState.recovery===`new_conversation_required`),e?.focus!==!1&&(i.historyPresentation!==`rail`||e?.keyboard===!0)&&_t(),i.syncScrollToBottomButton(),i.repinAnchoredMessage(),$(),i.eventBus.emit(`history:opened`,{presentation:i.historyPresentation,returnSurface:f,timestamp:Date.now()})},vt=()=>{},q=e=>{if(!i.historyVisible)return;_+=1;let t=f,n=p,r=u,a=e?.restoreFocus!==!1;i.historyVisible=!1;let o=!1,s=null,c=()=>{if(!o){if(o=!0,vt=()=>{},s!==null&&clearTimeout(s),P=!1,U(),ft(),r?.dispose(),r?.view.destroy(),r?.element.remove(),u===r&&(u=null,E=null,D=null,i.historyPresentation=null,d=null,p=null),i.syncScrollToBottomButton(),i.repinAnchoredMessage(),$(),a){let e=n??m;e?.isConnected?e.focus():i.maybeFocusInput()}i.eventBus.emit(`history:closed`,{returnSurface:t,timestamp:Date.now()})}},l=r&&r.element===r.view.element?r.view.playExit():null;l?(vt=c,s=setTimeout(c,250),l.then(c)):c()},yt=e=>{if(e.key===`Escape`&&i.historyVisible&&u){if(i.historyPresentation===`rail`){let t=e.target;if(!(t instanceof Node)||!(u.element.contains(t)||P&&R?.contains(t)===!0))return}e.preventDefault(),e.stopPropagation(),q()}};i.container.addEventListener(`keydown`,yt),i.destroyCallbacks.push(()=>i.container.removeEventListener(`keydown`,yt));let J=0,Y=null,bt=null,xt=()=>{bt&&clearTimeout(bt),bt=null};i.destroyCallbacks.push(xt);let St=()=>{xt();let e=i.conversationOpenPendingEl;e&&(i.conversationOpenTakeover=!0,e.hidden=!1,i.messagesWrapper.style.display=`none`,i.updateWelcome())},X=()=>{J+=1,xt(),Y?.remove(),Y=null,i.conversationOpenPendingEl&&(i.conversationOpenPendingEl.remove(),i.conversationOpenPendingEl=null,i.conversationOpenTakeover=!1,i.messagesWrapper.style.removeProperty(`display`),C(i.footer,!1),i.updateWelcome())},Ct=()=>{try{if(window.matchMedia?.(`(prefers-reduced-motion: reduce)`)?.matches)return;i.messagesWrapper.animate([{opacity:0},{opacity:1}],{duration:150,easing:`ease-out`})}catch{}},wt=n=>{let r=i.config.layout?.messages?.layout??`bubble`,a=t(`div`,{className:`persona-flex`,attrs:{"aria-hidden":`true`}});i.applyMessageRowLayout(a,n);let o=t(`div`,{className:e(i.getBubbleClasses(n,r).join(` `),`persona-conversation-loading-bubble`),attrs:{"data-persona-theme-zone":`${n}-message`},style:{width:n===`user`?`64%`:`100%`,backgroundColor:r===`flat`?`transparent`:`var(--persona-message-${n}-bg, var(--persona-${n===`user`?`accent`:`container`}))`,color:`var(--persona-message-${n}-text, ${n===`user`&&r!==`flat`?`white`:`var(--persona-text)`})`}},...[`94%`,...n===`assistant`?[`86%`]:[],`62%`].map(e=>t(`div`,{className:`persona-conversation-loading-line`,style:{width:e}})));return i.applyBubbleGeometry(o,n,r,{...i.resolveThemeDefaults(i.config.future).components.message[n],...i.config.theme?.components?.message?.[n],...i.config.darkTheme?.components?.message?.[n]}),a.appendChild(o),a},Tt=()=>t(`div`,{className:`persona-conversation-loading-body`,style:{gap:i.messagesWrapper.style.gap}},wt(`user`),wt(`assistant`),wt(`user`),wt(`assistant`)),Et=()=>i.config.loadingIndicator?.conversationOpenVariant===`skeleton`?Tt():t(`div`,{className:`persona-conversation-loading-spinner`,attrs:{"aria-hidden":`true`}},t(`span`,{className:`persona-conversation-loading-ring`})),Dt=e=>{i.conversationOpenPendingEl?.remove(),i.conversationOpenPendingEl=e,e.hidden=!i.conversationOpenTakeover,i.body.insertBefore(e,i.messagesWrapper),xt(),i.conversationOpenTakeover||(bt=setTimeout(St,250)),C(i.footer,!0)},Ot=()=>{let n={config:i.config,streaming:!1,location:`conversation-open`,defaultRenderer:Et},r=null,o=i.plugins.find(e=>e.renderLoadingIndicator);o?.renderLoadingIndicator&&(r=o.renderLoadingIndicator(n)),r===null&&i.config.loadingIndicator?.render&&(r=i.config.loadingIndicator.render(n));let s=r??Et();Dt(t(`div`,{className:e(`persona-conversation-loading`,s.classList.contains(`persona-conversation-loading-spinner`)&&`persona-conversation-loading--centered`),attrs:{role:`status`,"aria-label":a.openConversationLoadingLabel},style:{maxWidth:i.messagesWrapper.style.maxWidth||`none`}},s))},kt=e=>{let n=()=>{At(e,{focusComposer:!0}).catch(()=>{})},r=x()?()=>{X(),K()}:void 0,o=(e,n)=>{let r=t(`button`,{className:`persona-conversation-loading-error-action`,attrs:{type:`button`},text:e});return r.addEventListener(`click`,n),r},s=()=>t(`div`,{className:`persona-conversation-loading-error-body`},t(`p`,{className:`persona-conversation-loading-error-title`,text:a.openConversationErrorTitle}),t(`div`,{className:`persona-conversation-loading-error-actions`},o(a.openConversationRetryLabel,n),r?o(a.openConversationBackLabel,r):null)),c=Object.freeze({conversationId:e,config:i.config,copy:Object.freeze({title:a.openConversationErrorTitle,retryLabel:a.openConversationRetryLabel,backLabel:a.openConversationBackLabel}),retry:n,...r?{back:r}:{},defaultRenderer:s}),l=null;for(let e of i.plugins)if(e.renderHistoryOpenError){try{l=e.renderHistoryOpenError(c)}catch(e){console.warn(`[persona] renderHistoryOpenError threw`,e),l=null}if(l)break}if(Y?.remove(),Y=t(`div`,{className:`persona-conversation-loading-error`,attrs:{role:`alert`}},l??s()),!i.session.getActiveConversationId()&&i.session.getMessages().length===0&&!i.composerStore.getState().text&&!i.attachmentManager?.hasAttachments()){let e=Y;Y=null,Dt(e),St()}else i.body.insertBefore(Y,i.messagesWrapper);i.announceHistory(a.openConversationErrorTitle)};i.eventBus.on(`history:closed`,()=>{i.conversationOpenPendingEl&&C(i.footer,!0)});let At=async(e,{focusComposer:t=!1,busy:n=`reject`}={})=>{let r=S();if(n===`background`&&(i.session.assertBackgroundSwitchable(),i.composerStore.getState().phase===`preparing`))throw new i.SessionHistoryError(`conversation_busy`,`Finish preparing this turn before switching conversations`);if(n===`reject`&&(i.session.isStreaming()||[`paused`,`resuming`].includes(i.session.getStatus())||i.composerStore.getState().phase===`preparing`))throw new i.SessionHistoryError(`conversation_busy`,`Finish or stop the current turn before switching conversations`);n===`stop`&&(++i.composerConversationGeneration,i.submissionAbort?.abort(),i.submissionAbort=null,i.composerStore.setPreparing(!1),i.session.cancel());let a=i.conversationStateKey();(!i.conversationOpenPendingEl||i.pendingConversationReading?.key!==a)&&(i.pendingConversationReading={key:a,reading:i.captureConversationReading()});let o=null,s=!!u;u?.view.setActiveConversationId(e),X();let c=J;Ot(),i.historyVisible&&(i.historyPresentation===`panel`||P)&&q({restoreFocus:!1}),i.suppressScrollSend=!0;try{await i.session.openConversation(e,{scope:r,busy:n,onBeforeCommit:()=>{i.saveConversationContinuity(),o=i.composerConversationGeneration,i.conversationPersistenceOwner=o},onCommitted:()=>{i.restoreConversationContinuity(),i.conversationPersistenceOwner===o&&(i.conversationPersistenceOwner=null),i.usesSessionVoiceForConfig(i.config)&&i.session.setupVoice(),i.persistState()}})}catch(t){if(i.conversationPersistenceOwner===o&&(i.conversationPersistenceOwner=null),o===i.composerConversationGeneration&&i.usesSessionVoiceForConfig(i.config)&&i.session.setupVoice(),c===J){let t=i.pendingConversationReading?.reading;X(),t&&i.restoreConversationReading(t),i.pendingConversationReading=null,u?.view.setActiveConversationId(i.session.getActiveConversationId()),kt(e),i.suppressScrollSend=!1}throw t}finally{(c===J||!i.conversationOpenPendingEl)&&(i.suppressScrollSend=!1)}c===J&&(X(),i.pendingConversationReading=null,i.messageCache.clear(),Ct(),Q(),s||i.setActiveConversationSummary(null),i.eventBus.emit(`history:conversationOpened`,{conversationId:e,title:i.activeConversationTitle,scope:r,timestamp:Date.now()}),t&&i.maybeFocusInput())},jt=async({focusComposer:e=!1}={})=>{X();let t=null;try{await i.session.startNewConversation({scope:S(),onBeforeCommit:()=>{i.saveConversationContinuity(),t=i.composerConversationGeneration,i.conversationPersistenceOwner=t},onCommitted:()=>{i.restoreConversationContinuity(!0),i.conversationPersistenceOwner===t&&(i.conversationPersistenceOwner=null),i.usesSessionVoiceForConfig(i.config)&&i.session.setupVoice(),i.persistState(),i.pendingConversationReading=null}})}catch(e){throw i.conversationPersistenceOwner===t&&(i.conversationPersistenceOwner=null),t===i.composerConversationGeneration&&i.usesSessionVoiceForConfig(i.config)&&i.session.setupVoice(),e}i.setActiveConversationSummary(null),i.messageCache.clear(),i.resetAnchorState(),i.resumeAutoScroll(),i.jumpToBottomInstant(),Q();let n=i.session.getActiveConversationId();u?.view.setActiveConversationId(n),i.eventBus.emit(`history:conversationStarted`,{conversationId:n,timestamp:Date.now()}),i.historyVisible&&(i.historyPresentation===`panel`||P)&&q({restoreFocus:!1}),e&&i.maybeFocusInput()},Mt=async(e,t)=>{let n=await i.session.updateConversation(e,{...t,...t.title===void 0?{}:{title:t.title.trim()}});return u?.view.applyConversationSummary(n),!u&&e===i.session.getActiveConversationId()&&i.setActiveConversationSummary(n),n},Nt=async e=>{let t=S(),n=i.session.getActiveConversationId()===e;await i.session.deleteConversation(e,{scope:t}),i.discardConversationContinuity(e),n&&(i.attachmentManager?.destroy({release:!0}),i.attachmentManager=null,i.restoreConversationContinuity(!0)),u?.view.removeConversationSummary(e),n&&(i.setActiveConversationSummary(null),i.messageCache.clear(),i.resetAnchorState(),i.resumeAutoScroll(),Q()),i.eventBus.emit(`history:conversationDeleted`,{conversationId:e,scope:t,wasActive:n,timestamp:Date.now()})},Pt=async e=>{let t=e?.scope??S(),n=e?.allTargets?null:e?.targetId??ae(),r=await i.session.clearConversationHistory({...n?{targetId:n}:{},scope:t});return i.discardConversationContinuity(),i.setActiveConversationSummary(null),i.messageCache.clear(),i.resetAnchorState(),i.resumeAutoScroll(),Q(),i.eventBus.emit(`history:cleared`,{deleted:r.deleted,scope:t,targetId:n,timestamp:Date.now()}),r},Ft=async()=>{if(!c?.resetDevice)throw Error(`[Persona] resetHistoryIdentity() requires a history provider that can reset this device`);let e=!1;try{e=(await i.session.resetHistoryDevice()).remoteRevocationConfirmed}finally{i.discardConversationContinuity(),X(),i.setActiveConversationSummary(null),i.session.clearArtifacts(),i.messageCache.clear(),i.lastAppliedMessages=null,i.config.clearStoredSessionId?.(),i.config.clearStoredConversationId?.(),i.persistentMetadata={},i.actionManager.syncFromMetadata(),i.clearPersistedDraft();let e=i.storageAdapter;e?.clear&&i.runStorageMutation(()=>e.clear(),`[AgentWidget] Failed to clear storage adapter:`),i.resetAnchorState(),i.resumeAutoScroll(),Q(),q({restoreFocus:!1}),i.maybeFocusInput(),i.open||i.launcherSurfaceInstance?.launcher.element.focus()}return i.announceHistory(e?a.identityResetNotice:a.identityResetUnconfirmedNotice),i.eventBus.emit(`history:identityReset`,{remoteRevocationConfirmed:e,timestamp:Date.now()}),{remoteRevocationConfirmed:e}},It=()=>i.artifactSplitRoot?i.panel:i.container,Lt=async e=>{let t=await i.loadHistoryView().catch(()=>null);return typeof t?.showHistoryConfirm==`function`?t.showHistoryConfirm(e):window.confirm(`${e.title}\n\n${e.description}`)},Rt=async e=>await Lt({host:It(),title:a.deleteConversationConfirmTitle,description:a.deleteConversationConfirm,confirmLabel:a.deleteConversationConfirmLabel,cancelLabel:a.confirmCancelLabel})?(await Nt(e),`deleted`):`cancelled`,zt=async()=>{let e=S()===`verified-user`;return await Lt({host:It(),title:a.clearHistoryConfirmTitle,description:e?a.clearHistoryVerifiedConfirm:a.clearHistoryConfirm,confirmLabel:a.clearHistoryConfirmLabel,cancelLabel:a.confirmCancelLabel})?(await Pt(),`cleared`):`cancelled`},Bt=async()=>{if(!await Lt({host:It(),title:a.resetIdentityConfirmTitle,description:a.resetIdentityConfirm,confirmLabel:a.resetIdentityConfirmLabel,cancelLabel:a.confirmCancelLabel}))return{outcome:`cancelled`};let{remoteRevocationConfirmed:e}=await Ft();return{outcome:`reset`,remoteRevocationConfirmed:e}},Z=n(`button`,`persona-history-earlier`);Z.type=`button`,Z.textContent=a.showEarlierMessagesLabel,Z.setAttribute(`data-persona-history-earlier`,``),Object.assign(Z.style,{alignSelf:`center`,minHeight:`44px`,padding:`0 16px`,borderRadius:`999px`,border:`1px solid var(--persona-border, rgba(0,0,0,0.12))`,background:`transparent`,color:`inherit`,font:`inherit`,cursor:`pointer`,flexShrink:`0`});let Q=()=>{x()&&i.historySessionState.nextMessageCursor&&i.session.getActiveConversationId()?(Z.textContent=a.showEarlierMessagesLabel,Z.parentNode!==i.body&&i.body.insertBefore(Z,i.body.firstChild)):Z.remove()};Z.addEventListener(`click`,()=>{let e=i.session.getActiveConversationId(),t=i.historySessionState.nextMessageCursor;if(!e||!t||Z.disabled)return;Z.disabled=!0;let n=i.body.scrollHeight,r=i.body.scrollTop;i.session.loadOlderMessages(e,t,{scope:S()}).then(()=>{i.body.scrollTop=r+(i.body.scrollHeight-n),i.repinAnchoredMessage()}).catch(()=>{}).finally(()=>{Z.disabled=!1,Q()})});let Vt=()=>{let e=i.createHeaderIconButton({ariaLabel:a.openHistoryLabel,iconName:`history`,wrapperClassName:`persona-relative persona-inline-flex persona-items-center persona-justify-center`,extraClassName:`persona-history-toggle`,attrs:{"data-persona-history-toggle":``}});return e.button.addEventListener(`click`,t=>{x()&&!re()&&(i.historyVisible?q():K({invoker:e.button,keyboard:t.detail===0}))}),e},Ht=()=>{if(!x()){h?.remove(),m=null,h=null;return}if(h&&!h.isConnected&&(m=null,h=null),!m&&i.header){let e=Vt();m=e.button,h=e.wrapper;let t=i.panelElements.clearChatButtonWrapper||i.panelElements.closeButtonWrapper;t?.parentNode&&i.header.contains(t)?t.parentNode.insertBefore(h,t):i.header.appendChild(h)}if(!m||!h)return;let e=H()||i.historyVisible&&i.historyPresentation===`rail`;if(h.style.display=e?`none`:``,e){document.activeElement===m&&_t();return}let t=re();m.disabled=t,m.setAttribute(`aria-disabled`,t?`true`:`false`);let n=t?a.openHistoryBusyLabel:a.openHistoryLabel;m.setAttribute(`aria-label`,n),(i.config.features?.history?.presentation??`panel`)===`panel`?(m.removeAttribute(`aria-expanded`),m.removeAttribute(`aria-controls`)):(m.setAttribute(`aria-expanded`,i.historyVisible?`true`:`false`),m.setAttribute(`aria-controls`,b))},Ut=!1,Wt=()=>{let e=i.panelElements.clearChatButton;e&&(x()?(Ut||=(v=e.getAttribute(`aria-label`)??``,!0),e.setAttribute(`aria-label`,a.newConversationLabel),e.removeAttribute(`title`)):Ut&&(Ut=!1,v&&e.setAttribute(`aria-label`,v)))},$=()=>{a=s(i.config.features?.history?.copy),Ht(),W(),Wt(),Q()};return i.historyChromeSync=$,de(),$(),i.destroyCallbacks.push(()=>{ne?.(),y?.(),_+=1,vt(),u?.dispose(),u?.view.destroy(),u=null}),{clearConversationOpenPending:X,cancelConversationOpenTakeover:xt,historyOperationScope:S,discardConversationContinuity:i.discardConversationContinuity,historyAvailable:x,historyScope:ie,installHistoryProvider:de,syncHistoryChromeImpl:$,syncHistoryPresentation:ht,syncEarlierMessagesPill:Q,openHistory:K,closeHistory:q,openHistoryConversation:At,startNewConversation:jt,updateHistoryConversation:Mt,deleteHistoryConversation:Nt,requestDeleteConversation:Rt,clearConversationHistory:Pt,resetHistoryIdentity:Ft,railCollapseShortcut:He,railCollapsible:De,railTriggerApplies:H,railOverlayMode:Me,toggleRailCollapsed:Ve,toggleRailPinned:()=>Be(),get historyProvider(){return c},get historySurface(){return u},get railShell(){return O},get railHost(){return k},get railColumn(){return Te}}};export{g as createHistoryShell};
|
|
1
|
+
import{i as e,r as t,t as n}from"./chunk-D5BxWOFB.js";import{r}from"./chunk-Bb41bKyp.js";import{n as i,r as a}from"./chunk-i4qGOJAL.js";import{a as o}from"./chunk-Cy1A8vbF.js";import{n as s}from"./chunk-CLMIHW4_.js";const c=(e,t)=>{console.warn(`[persona] ${e} threw`,t)},l=e=>Object.freeze({...e}),u=e=>Object.freeze({id:e.id,title:e.title,targetId:e.targetId,preview:e.preview,messageCount:e.messageCount,createdAt:e.createdAt,updatedAt:e.updatedAt}),d=e=>e?l(e):null;function ee(e){let{plugins:t,config:n}=e,r=!1,i=!1,a=!1,o=!1,s=null,ee=[],f=()=>{for(let e of ee.splice(0))try{e()}catch(e){c(`renderHistoryView cleanup`,e)}},p=(e,n)=>{for(let r of t){let t=r[e];if(t)try{let e=t(n);if(e)return e}catch(t){c(e,t)}}return null},m=()=>({presentation:e.getPresentation(),config:n}),h={header:t=>o?p(`renderHistoryHeader`,Object.freeze({...m(),returnSurface:e.getReturnSurface(),identityStatus:l(t.identityStatus),pendingAction:d(t.pendingAction),copy:l(t.copy),actions:Object.freeze({close:_.close,startNewConversation:_.startNewConversation}),defaultRenderer:t.defaultRenderer})):null,conversation:e=>o?p(`renderHistoryConversation`,Object.freeze({...m(),conversation:u(e.conversation),active:e.active,pending:e.pending,open:e.open,requestDelete:e.requestDelete,defaultRenderer:e.defaultRenderer})):null,state:e=>o?p(`renderHistoryState`,Object.freeze({...m(),state:l(e.state),identityStatus:l(e.identityStatus),copy:l(e.copy),...e.retry?{retry:e.retry}:{},...e.startNewConversation?{startNewConversation:e.startNewConversation}:{},defaultRenderer:e.defaultRenderer})):null},te=t.flatMap(t=>(t.railSections??[]).map(t=>({...t,placement:t.placement??`above-conversations`,items:[],render:n=>t.render(Object.freeze({collapsed:n,presentation:e.getPresentation(),actions:_}))}))),g=e.createView({slots:h,renderDom:!1,onModelChange:()=>b(),railSections:te}),_=Object.freeze({...g.operations,close:e.close}),v=()=>(o=!0,g.setDomRenderEnabled(!0),g.element),ne=t=>Object.freeze({conversations:Object.freeze(t.conversations.map(u)),activeConversationId:t.activeConversationId,state:l(t.state),pendingAction:d(t.pendingAction),identityStatus:l(t.identityStatus),nextCursor:t.nextCursor,presentation:e.getPresentation(),returnSurface:e.getReturnSurface(),config:n,copy:l(g.copy),actions:_,defaultRenderer:v,requestRender:()=>b(),onCleanup:e=>{ee.push(e)}}),y=()=>{o=!1;let e=null;for(let n of t)if(n.renderHistoryView){try{e=n.renderHistoryView(ne(g.getModel()))}catch(t){c(`renderHistoryView`,t),e=null}if(e)break}let n=!e||e.contains(g.element);return o=n,g.setDomRenderEnabled(n),e??g.element};function b(){if(!(!a||r||i)){i=!0;try{f();let t=y();if(t===s)return;let n=s;s=t,e.onElementChanged(t,n)}finally{i=!1}}}return a=!0,b(),{view:g,get element(){return s??g.element},requestRender:b,dispose:()=>{r=!0,f()}}}const f=/* @__PURE__ */ new Map([[`not_found`,`not_found`],[`conversation_deleted`,`not_found`],[`rate_limited`,`rate_limited`],[`authentication_required`,`authentication_required`],[`invalid_identity_proof`,`authentication_required`],[`visitor_identity_mismatch`,`authentication_required`],[`visitor_required`,`authentication_required`],[`identity_provider_failed`,`identity_provider_failed`],[`proof_not_admitted`,`proof_not_admitted`],[`identity_contract_violation`,`proof_not_admitted`],[`unauthorized`,`authentication_failed`],[`visitor_token_missing`,`authentication_failed`],[`conversation_credential_missing`,`authentication_failed`]]),p=/* @__PURE__ */ new Map([[`not_found`,`That conversation is no longer available.`],[`rate_limited`,`Too many history requests.`],[`authentication_failed`,`History access was not authorized.`],[`authentication_required`,`Sign in again to view account history.`],[`identity_provider_failed`,`The identity provider did not respond.`],[`proof_not_admitted`,`Account history is not available for this configuration.`],[`unsupported_scope`,`This history scope is not supported.`],[`unavailable`,`Conversation history is unavailable right now.`]]),m=e=>p.get(e)??`Conversation history is unavailable right now.`;function h(e,{HistoryClientError:t,HistoryProviderError:n}){if(e instanceof n)return e;if(e instanceof t){let t=f.get(e.code)??`unavailable`;return new n(t,m(t),{...e.retryAfterSeconds===void 0?{}:{retryAfterSeconds:e.retryAfterSeconds}})}return new n(`unavailable`,m(`unavailable`))}function te(e){let{HistoryProviderError:t}=e.errors,n=()=>e.getClient?.()??e.client,r=e.getIdentityProofConfigured()?[`browser`,`verified-user`]:[`browser`],o={scopes:r},s=e=>{if(!r.includes(e))throw new t(`unsupported_scope`,m(`unsupported_scope`))},c=async(t,n)=>{s(t);try{return await n()}catch(t){throw h(t,e.errors)}},l=t=>{let n=!1;return{conversationId:t.session.conversationId??``,conversationRevision:t.session.conversationRevision??``,async commit(){n||(n=!0,t.commit(),await e.onActivationCommitted(t.session))},discard(){n||(n=!0,t.discard())}}};return{capabilities:o,getIdentityStatus(){return n().getHistoryIdentityStatus()},subscribeIdentityStatus(e){return n().subscribeHistoryIdentityStatus(e)},subscribeAvailability(e){return n().subscribeHistoryAvailability(e)},async list(e){return c(e.context.scope,async()=>{let t=await n().listConversations({...e.cursor?{cursor:e.cursor}:{},...e.limit===void 0?{}:{limit:e.limit},...e.targetId?{targetId:e.targetId}:{},scope:e.context.scope});return{items:t.data,nextCursor:t.nextCursor}})},async getPage(e,t){return c(t.context.scope,async()=>{let r=await n().getConversation(e,{...t.cursor?{messageCursor:t.cursor}:{},scope:t.context.scope}),o=i(r.messages,{...t.beforeCreatedAt?{beforeCreatedAt:t.beforeCreatedAt}:{}});return{summary:r.summary,messages:a([],o),conversationRevision:r.conversationRevision??``,nextCursor:r.nextMessageCursor}})},async prepareOpen(e,t){return c(t.context.scope,async()=>l(await n().prepareConversationSession(e)))},async prepareStartNew(e){return c(e.context.scope,async()=>l(await n().prepareNewConversationSession()))},async delete(e,t){await c(t.context.scope,()=>n().deleteConversation(e,{scope:t.context.scope}))},async deleteAll(e){return c(e.context.scope,()=>n().deleteAllConversations({...e.targetId===void 0?{}:{targetId:e.targetId},scope:e.context.scope}))},async resetDevice(){try{return await n().resetVisitor(),{remoteRevocationConfirmed:!0}}catch{return{remoteRevocationConfirmed:!1}}}}}const g=i=>{let a=s(i.config.features?.history?.copy),c=null,l=!1,u=null,d=null,f=`conversation`,p=null,m=null,h=null,g=null,_=0,v=null,ne=null,y=null,b=`persona-history-${Math.random().toString(36).slice(2,8)}`,x=()=>i.historyFeatureEnabled()&&!!c&&!l,re=()=>{let e=i.session.getStatus();return i.isStreaming||e===`paused`||e===`resuming`},ie=()=>{let e=i.config.features?.history?.scope;if(e)return e;let t=i.config.getIdentityProof?`verified-user`:`browser`,n=c?.capabilities.scopes;return!n||n.includes(t)?t:n[0]??t},S=()=>d?.scope??ie(),ae=()=>i.session.getClientSession()?.targetId??null,oe=e=>`${e.state}:${`reason`in e?e.reason:``}`,se=e=>{let t=oe(e);t!==g&&(g=t,i.eventBus.emit(`history:identityStatusChanged`,{status:e,timestamp:Date.now()}))},ce=null,le=null,ue=()=>{if(!i.historyFeatureEnabled())return null;let e=i.getHistoryProviderFactory();if(e)return e();let t=i.config.features?.history?.provider;return t?typeof t==`function`?(ce!==t&&(ce=t,le=t()),le):t:i.session.isClientTokenMode()?te({errors:i.historyErrors,client:i.session.getClient(),getIdentityProofConfigured:()=>typeof i.config.getIdentityProof==`function`,onActivationCommitted:e=>i.session.bindActivatedSession(e),getClient:()=>i.session.getClient()}):null},de=()=>{ne?.(),ne=null,y?.(),y=null,l=!1;let e=c;c=ue(),e&&e!==c&&i.discardConversationContinuity();let t={...i.historyInternals};c?t.historyProvider=c:delete t.historyProvider,i.historyInternals=t,i.session.setHistoryInternals(i.historyInternals),c&&(ne=c.subscribeAvailability?.(e=>{l=!e,e||q({restoreFocus:!1}),$()})??null,y=c.subscribeIdentityStatus(e=>se(e)),g=oe(c.getIdentityStatus()))},fe=()=>{let e=i.config.features?.history?.presentation??`panel`;if(e===`panel`||e===`auto`&&i.launcherEnabled&&!i.isDockedMountMode(i.config))return`panel`;let t=i.artifactSplitRoot??i.container;return(t.getBoundingClientRect().width||t.clientWidth)>=720?`rail`:`panel`},C=(e,t)=>{t?(e.setAttribute(`aria-hidden`,`true`),e.setAttribute(`inert`,``)):(e.removeAttribute(`aria-hidden`),e.removeAttribute(`inert`))},pe=`data-persona-history-suppressed`,w=null,T=null,E=null,D=null,me=null,he=``,ge=()=>i.header===me?he:o(i.config)?``:`none`,_e=()=>i.historyPresentation===`panel`&&!!E&&D===E.element&&o(i.config)&&ge()!==`none`,ve=()=>{for(let e of Array.from(i.header.children))e!==w&&e.setAttribute(pe,``)},ye=()=>{for(let e of Array.from(i.container.querySelectorAll(`[${pe}]`)))e.removeAttribute(pe)},be=()=>{let e=E;if(!e)return;if(Array.from(i.header.children).some(e=>e!==w&&!e.hasAttribute(pe))){T&&T!==i.header&&(T.style.removeProperty(`min-height`),T=null);let e=i.header.offsetHeight;e>0&&(i.header.style.minHeight=`${e}px`,T=i.header)}w||=n(`div`,`persona-history-header-host`),e.setHeaderPlacement(`external`);let t=e.getHeaderElement();t.parentNode!==w&&w.replaceChildren(t),w.parentNode!==i.header&&i.header.appendChild(w),ve()},xe=()=>{T&&=(T.style.removeProperty(`min-height`),null),w&&(E?.setHeaderPlacement(`inline`),w.remove(),w=null,ye())},Se=null,Ce=()=>{Se&&(i.body.style.display=`none`,C(i.body,!0),i.footer.hidden=!0,C(i.footer,!0),i.panelSuggestions.style.display=`none`,C(i.panelSuggestions,!0),i.panelSuggestionsFade.style.display=`none`,_e()?(be(),i.header.style.display=ge(),C(i.header,!1)):(xe(),i.header.style.display=`none`,C(i.header,!0)))};i.reapplyHistoryHostChrome=Ce;let we=e=>{let t=i.body.style.display,n=i.footer.hidden,r=i.panelSuggestions.style.display,a=i.panelSuggestionsFade.style.display,s=i.footer,c=i.header,l=i.header.style.display;me=c,he=l,Se=()=>{Se=null,xe(),me=null,i.body.style.display=t,C(i.body,!1),i.panelSuggestions.style.display=r,C(i.panelSuggestions,!1),i.panelSuggestionsFade.style.display=a,s.hidden=n,C(s,!1),i.footer!==s&&(i.footer.hidden=!1,C(i.footer,!1)),c.style.display=l,C(c,!1),i.header!==c&&(i.header.style.display=o(i.config)?``:`none`,C(i.header,!1))},i.container.insertBefore(e,i.footer.parentNode===i.container?i.footer:i.panelSuggestions),Ce()},O=null,k=null,Te=null,A=null,Ee=()=>[i.header,i.panelElements.closeButtonWrapper,i.panelElements.clearChatButtonWrapper,i.body,i.footer,i.scrollToBottomButton],De=()=>i.config.features?.history?.rail?.collapsible!==!1,j=()=>i.config.features?.history?.rail?.side===`right`?`right`:`left`,Oe=e=>Math.min(400,Math.max(200,Math.round(e))),ke=()=>i.config.features?.history?.rail?.resizable===!0,M,Ae=()=>{if(M===void 0&&(M=null,i.config.persistState!==!1))try{let e=Number(window.localStorage.getItem(`${i.currentKeyPrefix()}rail-width`));e&&(M=e)}catch{}return M},N=()=>Oe(Ae()??i.config.features?.history?.rail?.width??260),je=e=>{if(M=e,i.config.persistState!==!1)try{window.localStorage.setItem(`${i.currentKeyPrefix()}rail-width`,String(e))}catch{}},Me=()=>De()&&i.config.features?.history?.rail?.collapsedBehavior===`overlay`,P=!1,Ne=e=>{let t=n(`img`);return t.src=e,t.alt=``,t.setAttribute(`aria-hidden`,`true`),t},Pe=()=>{let e=i.config.features?.history?.rail?.brand;if(!e)return;let t=!1,n;return r=>{if(e.render)try{return e.render({collapsed:r})??null}catch(e){return t||(t=!0,console.warn(`[persona] history rail brand threw`,e)),null}return n===void 0&&(n=e.iconUrl?Ne(e.iconUrl):e.icon?i.renderLucideIcon(e.icon,20):null),n?n.cloneNode(!0):null}},Fe=()=>i.config.features?.history?.rail?.sections?.map(e=>{let t=!1,n=n=>{t||(t=!0,console.warn(`[persona] history rail section threw`,e.id,n))};return{id:e.id,title:e.title,placement:e.placement??`above-conversations`,items:e.items.map(e=>{let t;return{id:e.id,label:e.label,badge:e.badge,iconNode:()=>{if(t!==void 0)return t;try{t=e.renderIcon?e.renderIcon()??null:e.iconUrl?Ne(e.iconUrl):e.icon?i.renderLucideIcon(e.icon,20):null}catch(e){n(e),t=null}return t},onSelect:()=>{try{e.onSelect()}catch(e){n(e)}}}})}})??[],Ie=e=>{let t=Fe();for(let n of e)t.some(e=>e.id===n.id)?console.warn(`[persona] duplicate history rail section id`,n.id):t.push(n);return t.length?t:void 0},F=null,Le=()=>`${i.currentKeyPrefix()}rail-collapsed`,Re=()=>{if(F===null&&(F=i.config.features?.history?.rail?.defaultCollapsed===!0,i.config.persistState!==!1))try{let e=window.localStorage.getItem(Le());e&&(F=e===`1`)}catch{}return F},ze=e=>{if(F=e,i.config.persistState!==!1)try{window.localStorage.setItem(Le(),e?`1`:`0`)}catch{}},I=()=>i.historyPresentation===`rail`&&De()&&!Me()&&Re(),Be=()=>{},Ve=()=>{Me()?Be():(ze(!Re()),u?.view.setCollapsed(I()),i.applyRailChrome(),i.repinAnchoredMessage())},He=()=>{let e=i.config.features?.history?.rail?.collapseShortcut;return!e||!i.parseCombo(e)?null:{combo:e,hint:i.formatCombo(e),aria:i.ariaCombo(e)}},Ue=`var(--persona-history-overlay-margin,8px)`,L=null,R=null,We=0,z=null,B=null,V=!1,Ge=0,Ke=()=>window.matchMedia?.(`(pointer: coarse)`).matches===!0,H=()=>x()&&Me()&&(i.historyPresentation??fe())===`rail`,qe=()=>i.historyVisible&&!P,U=()=>{B!==null&&clearTimeout(B),B=null},Je=()=>{i.loadHistoryView().catch(()=>{})},Ye=()=>{U(),P&&(B=setTimeout(()=>{B=null,!V&&P&&(z?.contains(document.activeElement)||q({restoreFocus:!1}))},300))},Xe=(e,t)=>{let n=z?.getBoundingClientRect();if(!n)return!1;let r=L?.getBoundingClientRect(),i=r?Math.min(r.top,n.top):n.top;return e>=n.left&&e<=n.right&&t>=i&&t<=n.bottom||!!r&&e>=r.left&&e<=r.right&&t>=r.top&&t<=r.bottom},Ze=e=>{P&&(V=Xe(e.clientX,e.clientY),V?U():B===null&&Ye())},Qe=e=>{!i.historyVisible&&H()&&(P=!0,K({invoker:L,keyboard:e?.keyboard===!0}).then(()=>{i.historyVisible?!V&&document.activeElement!==L&&q():P=!1}))},$e=()=>{let e=D?.querySelector(`[data-persona-history-focus="collapse"]`);e&&(e.setAttribute(`aria-label`,P?a.expandLabel:a.collapseLabel),e.setAttribute(`aria-expanded`,P?`false`:`true`))},et=()=>{ze(!1);let e=u;if(!P||!e){K({invoker:L});return}let t=document.activeElement===L;P=!1,ft(),e.element.remove(),mt(e.element),$e(),t&&_t(),i.repinAnchoredMessage(),$()},tt=()=>{ze(!0),q()};Be=()=>{!i.historyVisible||P?et():tt()};let nt=()=>{let e=He(),t=i.createHeaderIconButton({ariaLabel:a.expandLabel,iconName:`panel-left`,wrapperClassName:`persona-relative persona-inline-flex persona-items-center persona-justify-center`,extraClassName:`persona-rail-trigger`,tooltip:!1,attrs:{"data-persona-rail-trigger":``,"aria-controls":b,...e?{"aria-keyshortcuts":e.aria}:{}}}),n=t.button;n.addEventListener(`mouseenter`,()=>{V=!0,U(),!(Ke()||Date.now()<Ge)&&Qe()}),n.addEventListener(`mouseleave`,()=>{V=!1,Ge=0,Ye()}),n.addEventListener(`focus`,()=>{i.historyVisible||Je()}),n.addEventListener(`click`,e=>{x()&&(e.detail!==0&&Ke()&&!i.historyVisible?Qe():et())}),L=n,R=t.wrapper},W=()=>{if(R&&!R.isConnected&&(R=null,L=null),!H()){R?.remove(),R=null,L=null;return}L||nt();let e=R,t=L;if(!e||!t)return;let n=j()===`right`?null:i.header.firstChild;(n??i.header.lastChild)!==e&&i.header.insertBefore(e,n),e.style.display=qe()||We>0?`none`:``,t.setAttribute(`aria-label`,a.expandLabel),t.setAttribute(`aria-expanded`,i.historyVisible?`true`:`false`),z&&i.applyRailChrome()},rt=e=>{if(!P)return;let t=e.target;t instanceof Node&&(z?.contains(t)||R?.contains(t)||t instanceof Element&&t.closest(`.persona-dropdown-menu,[role="alertdialog"]`)||q({restoreFocus:!1}))};document.addEventListener(`pointerdown`,rt,!0),i.destroyCallbacks.push(()=>{document.removeEventListener(`pointerdown`,rt,!0),document.removeEventListener(`pointermove`,Ze),G?.(),U()});let it=null,G=null,at=e=>{je(Oe(e)),i.applyRailChrome(),i.repinAnchoredMessage()},ot=()=>{let e=n(`div`,`persona-rail-resizer`);return e.tabIndex=0,e.setAttribute(`role`,`separator`),e.setAttribute(`aria-orientation`,`vertical`),e.setAttribute(`aria-valuemin`,`200`),e.setAttribute(`aria-valuemax`,`400`),e.addEventListener(`pointerdown`,t=>{let n=k;if(!n||t.button!==0)return;t.preventDefault(),G?.();let r=t.clientX,a=n.getBoundingClientRect().width||N(),o=j()===`right`?-1:1,s=a,c=i.mount.ownerDocument;n.style.transition=`none`;let l=t=>{s=Oe(a+o*(t.clientX-r)),n.style.flex=`0 0 ${s}px`,e.setAttribute(`aria-valuenow`,String(s))},u=()=>{G=null,c.removeEventListener(`pointermove`,l),c.removeEventListener(`pointerup`,u),c.removeEventListener(`pointercancel`,u),n.style.removeProperty(`transition`);try{e.releasePointerCapture(t.pointerId)}catch{}at(s)};G=u,c.addEventListener(`pointermove`,l),c.addEventListener(`pointerup`,u),c.addEventListener(`pointercancel`,u);try{e.setPointerCapture(t.pointerId)}catch{}}),e.addEventListener(`keydown`,e=>{let t=j()===`right`?-16:16,n=N(),r=e.key===`ArrowRight`?n+t:e.key===`ArrowLeft`?n-t:e.key===`Home`?200:e.key===`End`?400:null;r!==null&&(e.preventDefault(),at(r))}),e},st=(e,t)=>{if(!ke()||I()){G?.(),it?.remove();return}let n=it??ot();it=n,n.setAttribute(`aria-label`,a.resizeLabel),n.setAttribute(`aria-valuenow`,String(N())),n.nextElementSibling!==t&&e.insertBefore(n,t)};i.applyRailChrome=()=>{u?.view.setRailSide(j());let e=j()===`right`,t=z;if(t){let n=L?L.getBoundingClientRect().bottom-i.container.getBoundingClientRect().top:0;t.style.top=`calc(${Math.max(0,Math.round(n))}px + ${Ue})`,t.style.width=`${N()}px`,t.style.left=e?``:Ue,t.style.right=e?Ue:``}let n=k,r=O,a=Te;if(!n||!r||!a)return;n.style.flex=`0 0 ${I()?52:N()}px`;let o=`1px solid var(--persona-divider,#e5e7eb)`;n.style.borderRight=e?``:o,n.style.borderLeft=e?o:``;let s=e?a:n;r.firstElementChild!==s&&r.append(s,e?n:a),st(r,e?n:a)};let ct=e=>{if(A&&k){A.replaceWith(e),A=null,i.applyRailChrome();return}let t=n(`div`,`persona-history-rail-shell`);t.style.cssText=`display:flex;flex-direction:row;flex:1 1 auto;min-height:0`;let r=n(`div`,`persona-history-rail-conversation`);r.style.cssText=`display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;position:relative`;let a=n(`div`,`persona-history-rail-host`);a.style.cssText=`display:flex;min-height:0;overflow:hidden`,i.container.insertBefore(t,i.header.parentNode===i.container?i.header:i.body);for(let e of Ee())e?.parentNode===i.container&&r.appendChild(e);t.append(a,r),a.appendChild(e),O=t,k=a,Te=r,i.applyRailChrome()},lt=()=>{if(O)return;let e=n(`div`,`persona-history-rail-placeholder`);e.style.cssText=`flex:1 1 auto;min-height:0`,A=e,ct(e),i.repinAnchoredMessage()},ut=()=>{A&&(ft(),i.repinAnchoredMessage())},dt=e=>{let t=n(`div`,`persona-history-rail-overlay`);t.style.cssText=`position:absolute;bottom:${Ue};display:flex;overflow:hidden;z-index:${r-1};border-radius:var(--persona-history-overlay-radius,16px);background:var(--persona-history-overlay-bg,var(--persona-container,#f7f7f8));box-shadow:var(--persona-history-overlay-shadow,0 12px 40px rgba(0,0,0,0.25))`,i.container.style.position=`relative`,i.container.appendChild(t),t.appendChild(e),document.addEventListener(`pointermove`,Ze),z=t,i.applyRailChrome(),$e()},ft=()=>{Se?.(),z&&=(V&&(Ge=Date.now()+150),document.removeEventListener(`pointermove`,Ze),z.remove(),null);let e=O;if(e){G?.();for(let t of Ee())if(t&&e.contains(t)){let n=t===i.scrollToBottomButton?i.panelSuggestions:e;i.container.insertBefore(t,n)}e.remove(),O=null,k=null,Te=null,A=null}},pt=e=>{D=e,e.id=b,e.style.flex=`1 1 auto`,e.style.minHeight=`0`},mt=e=>{pt(e),(i.historyPresentation!==`rail`||P)&&ut(),i.historyPresentation===`rail`?P?dt(e):ct(e):we(e)},ht=()=>{if(W(),Ht(),!i.historyVisible||!u)return;let e=fe();if(e===i.historyPresentation)return;let t=document.activeElement,n=t instanceof HTMLElement&&(u.element.contains(t)||w?.contains(t)===!0)?t:null;ft(),u.element.remove(),u.view.setHeaderPlacement(`inline`),i.historyPresentation=e,u.view.setPresentation(e),u.view.setCollapsed(I()),u.requestRender(),u.element.isConnected||mt(u.element),n?.isConnected?n.focus():_t(),i.syncScrollToBottomButton(),i.repinAnchoredMessage(),$()},gt=(e,t)=>w?.querySelector(t)??e.querySelector(t),_t=()=>{let e=u?.element??D;if(!e)return;let t=gt(e,`[data-persona-history-focus="close"],[data-persona-history-focus="collapse"]`);if(t){t.focus();return}let n=gt(e,`.persona-history-title`)??e;n.tabIndex=-1,n.focus()},K=async e=>{if(!x()||i.historyVisible)return;let t=c;if(!t)return;if(!P&&H()&&Re()){W();return}vt();let n=++_;f=e?.returnSurface??`conversation`,p=e?.invoker??m;let r=H()&&!P;r&&(We+=1,W(),lt());let s;try{s=await i.loadHistoryView()}catch{i.announceHistory(a.openHistoryLabel),r&&(--We,n===_&&(ut(),W()));return}if(r&&--We,n!==_||i.historyVisible)return;d={scope:ie()},i.historyPresentation=fe(),i.historyVisible=!0;let l=i.historyPresentation===`panel`&&o(i.config)&&i.header.style.display!==`none`?`external`:`inline`,h=i.config.features?.history?.rowAvatar,te=He(),g=te?{hint:te.hint,aria:te.aria}:null,v={provider:t,context:d,targetId:ae(),presentation:i.historyPresentation,collapsible:De(),collapsed:I(),railSide:j(),renderRailHeader:i.config.features?.history?.rail?.renderHeader,railBrand:Pe(),onToggleCollapse:Ve,...g?{collapseShortcut:g}:{},headerPlacement:l,showScopeStatus:i.config.features?.history?.showScopeStatus!==!1,showDelete:i.config.features?.history?.showDelete!==!1,showDeleteAll:i.config.features?.history?.showDeleteAll!==!1,...i.config.features?.history?.listActions?.length?{listActions:i.config.features.history.listActions}:{},rowAvatar:h===!1?!1:typeof h==`string`?h:i.config.launcher?.iconUrl,activeConversationId:i.session.getActiveConversationId(),...i.config.features?.history?.grouping?{grouping:i.config.features.history.grouping}:{},...i.config.features?.history?.copy?{copy:i.config.features.history.copy}:{},...i.config.features?.history?.pageSize===void 0?{}:{pageSize:i.config.features.history.pageSize},onSelect:e=>At(e,{focusComposer:!0}).catch(()=>{}),onActiveConversationChange:e=>i.setActiveConversationSummary(e),attachTooltip:i.attachTooltip,onStartNew:()=>jt({focusComposer:!0}),onClose:()=>q(),onRequestDeleteConversation:e=>Rt(e),onRequestClearHistory:()=>zt(),...t.resetDevice?{onRequestResetIdentity:()=>Bt()}:{}};u=ee({plugins:i.plugins,config:i.config,getPresentation:()=>i.historyPresentation??`panel`,getReturnSurface:()=>f,close:()=>q(),createView:({slots:e,renderDom:t,onModelChange:n,railSections:r})=>(E=s.createHistoryView({...v,railSections:Ie(r),slots:e,renderDom:t,onModelChange:n,onAnnounce:i.announceHistory}),E),onElementChanged:(e,t)=>{if(!t?.isConnected)return mt(e);pt(e),t.replaceWith(e),Ce()}}),u.view.setNewConversationRequired(i.historySessionState.recovery===`new_conversation_required`),e?.focus!==!1&&(i.historyPresentation!==`rail`||e?.keyboard===!0)&&_t(),i.syncScrollToBottomButton(),i.repinAnchoredMessage(),$(),i.eventBus.emit(`history:opened`,{presentation:i.historyPresentation,returnSurface:f,timestamp:Date.now()})},vt=()=>{},q=e=>{if(!i.historyVisible)return;_+=1;let t=f,n=p,r=u,a=e?.restoreFocus!==!1;i.historyVisible=!1;let o=!1,s=null,c=()=>{if(!o){if(o=!0,vt=()=>{},s!==null&&clearTimeout(s),P=!1,U(),ft(),r?.dispose(),r?.view.destroy(),r?.element.remove(),u===r&&(u=null,E=null,D=null,i.historyPresentation=null,d=null,p=null),i.syncScrollToBottomButton(),i.repinAnchoredMessage(),$(),a){let e=n??m;e?.isConnected?e.focus():i.maybeFocusInput()}i.eventBus.emit(`history:closed`,{returnSurface:t,timestamp:Date.now()})}},l=r&&r.element===r.view.element?r.view.playExit():null;l?(vt=c,s=setTimeout(c,250),l.then(c)):c()},yt=e=>{if(e.key===`Escape`&&i.historyVisible&&u){if(i.historyPresentation===`rail`){let t=e.target;if(!(t instanceof Node)||!(u.element.contains(t)||P&&R?.contains(t)===!0))return}e.preventDefault(),e.stopPropagation(),q()}};i.container.addEventListener(`keydown`,yt),i.destroyCallbacks.push(()=>i.container.removeEventListener(`keydown`,yt));let J=0,Y=null,bt=null,xt=()=>{bt&&clearTimeout(bt),bt=null};i.destroyCallbacks.push(xt);let St=()=>{xt();let e=i.conversationOpenPendingEl;e&&(i.conversationOpenTakeover=!0,e.hidden=!1,i.messagesWrapper.style.display=`none`,i.updateWelcome())},X=()=>{J+=1,xt(),Y?.remove(),Y=null,i.conversationOpenPendingEl&&(i.conversationOpenPendingEl.remove(),i.conversationOpenPendingEl=null,i.conversationOpenTakeover=!1,i.messagesWrapper.style.removeProperty(`display`),C(i.footer,!1),i.updateWelcome())},Ct=()=>{try{if(window.matchMedia?.(`(prefers-reduced-motion: reduce)`)?.matches)return;i.messagesWrapper.animate([{opacity:0},{opacity:1}],{duration:150,easing:`ease-out`})}catch{}},wt=n=>{let r=i.config.layout?.messages?.layout??`bubble`,a=t(`div`,{className:`persona-flex`,attrs:{"aria-hidden":`true`}});i.applyMessageRowLayout(a,n);let o=t(`div`,{className:e(i.getBubbleClasses(n,r).join(` `),`persona-conversation-loading-bubble`),attrs:{"data-persona-theme-zone":`${n}-message`},style:{width:n===`user`?`64%`:`100%`,backgroundColor:r===`flat`?`transparent`:`var(--persona-message-${n}-bg, var(--persona-${n===`user`?`accent`:`container`}))`,color:`var(--persona-message-${n}-text, ${n===`user`&&r!==`flat`?`white`:`var(--persona-text)`})`}},...[`94%`,...n===`assistant`?[`86%`]:[],`62%`].map(e=>t(`div`,{className:`persona-conversation-loading-line`,style:{width:e}})));return i.applyBubbleGeometry(o,n,r,{...i.resolveThemeDefaults(i.config.future).components.message[n],...i.config.theme?.components?.message?.[n],...i.config.darkTheme?.components?.message?.[n]}),a.appendChild(o),a},Tt=()=>t(`div`,{className:`persona-conversation-loading-body`,style:{gap:i.messagesWrapper.style.gap}},wt(`user`),wt(`assistant`),wt(`user`),wt(`assistant`)),Et=()=>i.config.loadingIndicator?.conversationOpenVariant===`skeleton`?Tt():t(`div`,{className:`persona-conversation-loading-spinner`,attrs:{"aria-hidden":`true`}},t(`span`,{className:`persona-conversation-loading-ring`})),Dt=e=>{i.conversationOpenPendingEl?.remove(),i.conversationOpenPendingEl=e,e.hidden=!i.conversationOpenTakeover,i.body.insertBefore(e,i.messagesWrapper),xt(),i.conversationOpenTakeover||(bt=setTimeout(St,250)),C(i.footer,!0)},Ot=()=>{let n={config:i.config,streaming:!1,location:`conversation-open`,defaultRenderer:Et},r=null,o=i.plugins.find(e=>e.renderLoadingIndicator);o?.renderLoadingIndicator&&(r=o.renderLoadingIndicator(n)),r===null&&i.config.loadingIndicator?.render&&(r=i.config.loadingIndicator.render(n));let s=r??Et();Dt(t(`div`,{className:e(`persona-conversation-loading`,s.classList.contains(`persona-conversation-loading-spinner`)&&`persona-conversation-loading--centered`),attrs:{role:`status`,"aria-label":a.openConversationLoadingLabel},style:{maxWidth:i.messagesWrapper.style.maxWidth||`none`}},s))},kt=e=>{let n=()=>{At(e,{focusComposer:!0}).catch(()=>{})},r=x()?()=>{X(),K()}:void 0,o=(e,n)=>{let r=t(`button`,{className:`persona-conversation-loading-error-action`,attrs:{type:`button`},text:e});return r.addEventListener(`click`,n),r},s=()=>t(`div`,{className:`persona-conversation-loading-error-body`},t(`p`,{className:`persona-conversation-loading-error-title`,text:a.openConversationErrorTitle}),t(`div`,{className:`persona-conversation-loading-error-actions`},o(a.openConversationRetryLabel,n),r?o(a.openConversationBackLabel,r):null)),c=Object.freeze({conversationId:e,config:i.config,copy:Object.freeze({title:a.openConversationErrorTitle,retryLabel:a.openConversationRetryLabel,backLabel:a.openConversationBackLabel}),retry:n,...r?{back:r}:{},defaultRenderer:s}),l=null;for(let e of i.plugins)if(e.renderHistoryOpenError){try{l=e.renderHistoryOpenError(c)}catch(e){console.warn(`[persona] renderHistoryOpenError threw`,e),l=null}if(l)break}if(Y?.remove(),Y=t(`div`,{className:`persona-conversation-loading-error`,attrs:{role:`alert`}},l??s()),!i.session.getActiveConversationId()&&i.session.getMessages().length===0&&!i.composerStore.getState().text&&!i.attachmentManager?.hasAttachments()){let e=Y;Y=null,Dt(e),St()}else i.body.insertBefore(Y,i.messagesWrapper);i.announceHistory(a.openConversationErrorTitle)};i.eventBus.on(`history:closed`,()=>{i.conversationOpenPendingEl&&C(i.footer,!0)});let At=async(e,{focusComposer:t=!1,busy:n=`reject`}={})=>{let r=S();if(n===`background`&&(i.session.assertBackgroundSwitchable(),i.composerStore.getState().phase===`preparing`))throw new i.SessionHistoryError(`conversation_busy`,`Finish preparing this turn before switching conversations`);if(n===`reject`&&(i.session.isStreaming()||[`paused`,`resuming`].includes(i.session.getStatus())||i.composerStore.getState().phase===`preparing`))throw new i.SessionHistoryError(`conversation_busy`,`Finish or stop the current turn before switching conversations`);n===`stop`&&(++i.composerConversationGeneration,i.submissionAbort?.abort(),i.submissionAbort=null,i.composerStore.setPreparing(!1),i.session.cancel());let a=i.conversationStateKey();i.conversationOpenPendingEl&&i.pendingConversationReading?.key===a||(i.pendingConversationReading={key:a,reading:i.captureConversationReading()});let o=null,s=!!u;u?.view.setActiveConversationId(e),X();let c=J;Ot(),i.historyVisible&&(i.historyPresentation===`panel`||P)&&q({restoreFocus:!1}),i.suppressScrollSend=!0;try{await i.session.openConversation(e,{scope:r,busy:n,onBeforeCommit:()=>{i.saveConversationContinuity(),o=i.composerConversationGeneration,i.conversationPersistenceOwner=o},onCommitted:()=>{i.restoreConversationContinuity(),i.conversationPersistenceOwner===o&&(i.conversationPersistenceOwner=null),i.usesSessionVoiceForConfig(i.config)&&i.session.setupVoice(),i.persistState()}})}catch(t){if(i.conversationPersistenceOwner===o&&(i.conversationPersistenceOwner=null),o===i.composerConversationGeneration&&i.usesSessionVoiceForConfig(i.config)&&i.session.setupVoice(),c===J){let t=i.pendingConversationReading?.reading;X(),t&&i.restoreConversationReading(t),i.pendingConversationReading=null,u?.view.setActiveConversationId(i.session.getActiveConversationId()),kt(e),i.suppressScrollSend=!1}throw t}finally{c!==J&&i.conversationOpenPendingEl||(i.suppressScrollSend=!1)}c===J&&(X(),i.pendingConversationReading=null,i.messageCache.clear(),Ct(),Q(),s||i.setActiveConversationSummary(null),i.eventBus.emit(`history:conversationOpened`,{conversationId:e,title:i.activeConversationTitle,scope:r,timestamp:Date.now()}),t&&i.maybeFocusInput())},jt=async({focusComposer:e=!1}={})=>{X();let t=null;try{await i.session.startNewConversation({scope:S(),onBeforeCommit:()=>{i.saveConversationContinuity(),t=i.composerConversationGeneration,i.conversationPersistenceOwner=t},onCommitted:()=>{i.restoreConversationContinuity(!0),i.conversationPersistenceOwner===t&&(i.conversationPersistenceOwner=null),i.usesSessionVoiceForConfig(i.config)&&i.session.setupVoice(),i.persistState(),i.pendingConversationReading=null}})}catch(e){throw i.conversationPersistenceOwner===t&&(i.conversationPersistenceOwner=null),t===i.composerConversationGeneration&&i.usesSessionVoiceForConfig(i.config)&&i.session.setupVoice(),e}i.setActiveConversationSummary(null),i.messageCache.clear(),i.resetAnchorState(),i.resumeAutoScroll(),i.jumpToBottomInstant(),Q();let n=i.session.getActiveConversationId();u?.view.setActiveConversationId(n),i.eventBus.emit(`history:conversationStarted`,{conversationId:n,timestamp:Date.now()}),i.historyVisible&&(i.historyPresentation===`panel`||P)&&q({restoreFocus:!1}),e&&i.maybeFocusInput()},Mt=async(e,t)=>{let n=await i.session.updateConversation(e,{...t,...t.title===void 0?{}:{title:t.title.trim()}});return u?.view.applyConversationSummary(n),!u&&e===i.session.getActiveConversationId()&&i.setActiveConversationSummary(n),n},Nt=async e=>{let t=S(),n=i.session.getActiveConversationId()===e;await i.session.deleteConversation(e,{scope:t}),i.discardConversationContinuity(e),n&&(i.attachmentManager?.destroy({release:!0}),i.attachmentManager=null,i.restoreConversationContinuity(!0)),u?.view.removeConversationSummary(e),n&&(i.setActiveConversationSummary(null),i.messageCache.clear(),i.resetAnchorState(),i.resumeAutoScroll(),Q()),i.eventBus.emit(`history:conversationDeleted`,{conversationId:e,scope:t,wasActive:n,timestamp:Date.now()})},Pt=async e=>{let t=e?.scope??S(),n=e?.allTargets?null:e?.targetId??ae(),r=await i.session.clearConversationHistory({...n?{targetId:n}:{},scope:t});return i.discardConversationContinuity(),i.setActiveConversationSummary(null),i.messageCache.clear(),i.resetAnchorState(),i.resumeAutoScroll(),Q(),i.eventBus.emit(`history:cleared`,{deleted:r.deleted,scope:t,targetId:n,timestamp:Date.now()}),r},Ft=async()=>{if(!c?.resetDevice)throw Error(`[Persona] resetHistoryIdentity() requires a history provider that can reset this device`);let e=!1;try{e=(await i.session.resetHistoryDevice()).remoteRevocationConfirmed}finally{i.discardConversationContinuity(),X(),i.setActiveConversationSummary(null),i.session.clearArtifacts(),i.messageCache.clear(),i.lastAppliedMessages=null,i.config.clearStoredSessionId?.(),i.config.clearStoredConversationId?.(),i.persistentMetadata={},i.actionManager.syncFromMetadata(),i.clearPersistedDraft();let e=i.storageAdapter;e?.clear&&i.runStorageMutation(()=>e.clear(),`[AgentWidget] Failed to clear storage adapter:`),i.resetAnchorState(),i.resumeAutoScroll(),Q(),q({restoreFocus:!1}),i.maybeFocusInput(),i.open||i.launcherSurfaceInstance?.launcher.element.focus()}return i.announceHistory(e?a.identityResetNotice:a.identityResetUnconfirmedNotice),i.eventBus.emit(`history:identityReset`,{remoteRevocationConfirmed:e,timestamp:Date.now()}),{remoteRevocationConfirmed:e}},It=()=>i.artifactSplitRoot?i.panel:i.container,Lt=async e=>{let t=await i.loadHistoryView().catch(()=>null);return typeof t?.showHistoryConfirm==`function`?t.showHistoryConfirm(e):window.confirm(`${e.title}\n\n${e.description}`)},Rt=async e=>await Lt({host:It(),title:a.deleteConversationConfirmTitle,description:a.deleteConversationConfirm,confirmLabel:a.deleteConversationConfirmLabel,cancelLabel:a.confirmCancelLabel})?(await Nt(e),`deleted`):`cancelled`,zt=async()=>{let e=S()===`verified-user`;return await Lt({host:It(),title:a.clearHistoryConfirmTitle,description:e?a.clearHistoryVerifiedConfirm:a.clearHistoryConfirm,confirmLabel:a.clearHistoryConfirmLabel,cancelLabel:a.confirmCancelLabel})?(await Pt(),`cleared`):`cancelled`},Bt=async()=>{if(!await Lt({host:It(),title:a.resetIdentityConfirmTitle,description:a.resetIdentityConfirm,confirmLabel:a.resetIdentityConfirmLabel,cancelLabel:a.confirmCancelLabel}))return{outcome:`cancelled`};let{remoteRevocationConfirmed:e}=await Ft();return{outcome:`reset`,remoteRevocationConfirmed:e}},Z=n(`button`,`persona-history-earlier`);Z.type=`button`,Z.textContent=a.showEarlierMessagesLabel,Z.setAttribute(`data-persona-history-earlier`,``),Object.assign(Z.style,{alignSelf:`center`,minHeight:`44px`,padding:`0 16px`,borderRadius:`999px`,border:`1px solid var(--persona-border, rgba(0,0,0,0.12))`,background:`transparent`,color:`inherit`,font:`inherit`,cursor:`pointer`,flexShrink:`0`});let Q=()=>{x()&&i.historySessionState.nextMessageCursor&&i.session.getActiveConversationId()?(Z.textContent=a.showEarlierMessagesLabel,Z.parentNode!==i.body&&i.body.insertBefore(Z,i.body.firstChild)):Z.remove()};Z.addEventListener(`click`,()=>{let e=i.session.getActiveConversationId(),t=i.historySessionState.nextMessageCursor;if(!e||!t||Z.disabled)return;Z.disabled=!0;let n=i.body.scrollHeight,r=i.body.scrollTop;i.session.loadOlderMessages(e,t,{scope:S()}).then(()=>{i.body.scrollTop=r+(i.body.scrollHeight-n),i.repinAnchoredMessage()}).catch(()=>{}).finally(()=>{Z.disabled=!1,Q()})});let Vt=()=>{let e=i.createHeaderIconButton({ariaLabel:a.openHistoryLabel,iconName:`history`,wrapperClassName:`persona-relative persona-inline-flex persona-items-center persona-justify-center`,extraClassName:`persona-history-toggle`,attrs:{"data-persona-history-toggle":``}});return e.button.addEventListener(`click`,t=>{x()&&!re()&&(i.historyVisible?q():K({invoker:e.button,keyboard:t.detail===0}))}),e},Ht=()=>{if(!x()){h?.remove(),m=null,h=null;return}if(h&&!h.isConnected&&(m=null,h=null),!m&&i.header){let e=Vt();m=e.button,h=e.wrapper;let t=i.panelElements.clearChatButtonWrapper||i.panelElements.closeButtonWrapper;t?.parentNode&&i.header.contains(t)?t.parentNode.insertBefore(h,t):i.header.appendChild(h)}if(!m||!h)return;let e=H()||i.historyVisible&&i.historyPresentation===`rail`;if(h.style.display=e?`none`:``,e){document.activeElement===m&&_t();return}let t=re();m.disabled=t,m.setAttribute(`aria-disabled`,t?`true`:`false`);let n=t?a.openHistoryBusyLabel:a.openHistoryLabel;m.setAttribute(`aria-label`,n),(i.config.features?.history?.presentation??`panel`)===`panel`?(m.removeAttribute(`aria-expanded`),m.removeAttribute(`aria-controls`)):(m.setAttribute(`aria-expanded`,i.historyVisible?`true`:`false`),m.setAttribute(`aria-controls`,b))},Ut=!1,Wt=()=>{let e=i.panelElements.clearChatButton;e&&(x()?(Ut||=(v=e.getAttribute(`aria-label`)??``,!0),e.setAttribute(`aria-label`,a.newConversationLabel),e.removeAttribute(`title`)):Ut&&(Ut=!1,v&&e.setAttribute(`aria-label`,v)))},$=()=>{a=s(i.config.features?.history?.copy),Ht(),W(),Wt(),Q()};return i.historyChromeSync=$,de(),$(),i.destroyCallbacks.push(()=>{ne?.(),y?.(),_+=1,vt(),u?.dispose(),u?.view.destroy(),u=null}),{clearConversationOpenPending:X,cancelConversationOpenTakeover:xt,historyOperationScope:S,discardConversationContinuity:i.discardConversationContinuity,historyAvailable:x,historyScope:ie,installHistoryProvider:de,syncHistoryChromeImpl:$,syncHistoryPresentation:ht,syncEarlierMessagesPill:Q,openHistory:K,closeHistory:q,openHistoryConversation:At,startNewConversation:jt,updateHistoryConversation:Mt,deleteHistoryConversation:Nt,requestDeleteConversation:Rt,clearConversationHistory:Pt,resetHistoryIdentity:Ft,railCollapseShortcut:He,railCollapsible:De,railTriggerApplies:H,railOverlayMode:Me,toggleRailCollapsed:Ve,toggleRailPinned:()=>Be(),get historyProvider(){return c},get historySurface(){return u},get railShell(){return O},get railHost(){return k},get railColumn(){return Te}}};export{g as createHistoryShell};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./chunk-
|
|
1
|
+
import{t as e}from"./chunk-Dqa_GOcj.js";const t=32768,n=49152,r=e=>{let t=e??{},n=typeof t.targetId==`string`?t.targetId:null;return{id:typeof t.id==`string`?t.id:``,title:typeof t.title==`string`?t.title:``,targetId:n,preview:typeof t.preview==`string`?t.preview:null,messageCount:typeof t.messageCount==`number`?t.messageCount:0,createdAt:typeof t.createdAt==`string`?t.createdAt:``,updatedAt:typeof t.updatedAt==`string`?t.updatedAt:``}},i=`The identity proof was not admitted; account history is unavailable`,a=`The identity proof was rejected`,o=`The request carried no visitor credential`,s=`The stored visitor belongs to a different signed-in user`;function c(e,t,n){let r=new URLSearchParams;for(let[e,t]of Object.entries(n))t!==void 0&&t!==``&&r.set(e,String(t));let i=r.toString();return`${e.clientApiBase()}/v1/client/${t}${i?`?${i}`:``}`}function l(e,t){return t||e.config.features?.history?.scope||(e.config.getIdentityProof?`verified-user`:`browser`)}async function u(e,t,n){let r=e.config.getIdentityProof;if(!r)return n&&e.setHistoryIdentityStatus(e.browserOnlyStatus()),null;n&&e.setHistoryIdentityStatus({state:`verifying`});let i;try{i=await r()??null}catch{throw n&&e.setHistoryIdentityStatus({state:`identity_provider_failed`}),new e.HistoryClientError(`identity_provider_failed`,`The identity proof provider failed`)}if(i)return i;if(t.visitor?.endUserId!=null)throw n&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`proof_unavailable_after_binding`}),new e.HistoryClientError(`authentication_required`,`This browser is bound to a signed-in user and needs a fresh identity proof`);return n&&e.setHistoryIdentityStatus({state:`browser_only`,reason:`proof_unavailable_before_binding`}),null}async function d(e,t,n,r){if(t.visitor?.endUserId!=null)return t;let a=await e.reinitWithProof(n);if(a.visitor?.identityStatus!==`admitted`||a.visitor?.endUserId==null)throw r&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),new e.HistoryClientError(`proof_not_admitted`,i);return a}async function f(e,t){let n=await t.json().catch(()=>({}));return typeof n.error==`string`?n.error:typeof n.message==`string`?n.message:``}async function p(e,t,n,r){let i=t.toLowerCase();if(i.includes(`invalid_identity_proof`))throw r&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`invalid_identity_proof`}),new e.HistoryClientError(`invalid_identity_proof`,a);if(i.includes(`visitor token required`))throw new e.HistoryClientError(`visitor_token_missing`,o);if(i.includes(`visitor_identity_mismatch`)){if(!n)throw r&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`proof_unavailable_after_binding`}),new e.HistoryClientError(`visitor_identity_mismatch`,s);return e.reinitWithProof(n)}if(i.includes(`expired`)||i.includes(`not found`))return e.clearClientSession(),e.initSession();throw new e.HistoryClientError(`unauthorized`,t||`History request was not authorized`)}async function m(e,t,n){let r=await f(e,t);if(t.status===404)return new e.HistoryClientError(`not_found`,`Conversation not found`);if(t.status===429){let n=Number.parseInt(t.headers.get(`Retry-After`)??``,10);return new e.HistoryClientError(`rate_limited`,`Too many history requests`,{...Number.isFinite(n)?{retryAfterSeconds:n}:{}})}if(t.status===503&&r.includes(`identity_proof_not_admitted`))return n&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),new e.HistoryClientError(`proof_not_admitted`,i);if(t.status===401){let t=r.toLowerCase();return t.includes(`invalid_identity_proof`)?(n&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`invalid_identity_proof`}),new e.HistoryClientError(`invalid_identity_proof`,a)):t.includes(`visitor token required`)?new e.HistoryClientError(`visitor_token_missing`,o):t.includes(`visitor_identity_mismatch`)?new e.HistoryClientError(`visitor_identity_mismatch`,s):new e.HistoryClientError(`unauthorized`,r||`History request was not authorized`)}return new e.HistoryClientError(`request_failed`,r||`History request failed (${t.status})`)}function h(e,t,n,r){let i=t?.toLowerCase()??null;if(n){if(i===`admitted`){r&&e.setHistoryIdentityStatus({state:`verified`});return}throw r&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),i===`ignored`?new e.HistoryClientError(`identity_contract_violation`,`Server reported an ignored identity proof on a success response`):new e.HistoryClientError(`proof_not_admitted`,`The response did not acknowledge the identity proof this request sent`)}if(i===`admitted`)throw new e.HistoryClientError(`identity_contract_violation`,`Server admitted an identity proof that was never sent`);r&&e.setHistoryIdentityStatus(e.browserOnlyStatus())}async function g(t,n,r){_(t);let i=r.trackIdentity!==!1,a=await t.initSession(),o=null;l(t,r.scope)===`verified-user`&&(o=await u(t,a,i),o&&(a=await d(t,a,o,i)));let s=t.historyInternals.visitorStore,g=!1;for(;;){let l=s?.revision()??0,u=await t.readVisitorToken();if(!u&&!r.visitorTokenOptional)throw new t.HistoryClientError(`visitor_token_missing`,`No visitor credential is stored for this browser`);let d=await fetch(c(t,n,{...r.query,sessionId:a.sessionId}),{method:r.method,headers:{"X-Persona-Version":e,...u?{"X-Visitor-Token":u}:{},...o?{"X-Identity-Proof":o}:{},...r.body===void 0?{}:{"Content-Type":`application/json`}},...r.body===void 0?{}:{body:JSON.stringify(r.body)},...r.keepalive?{keepalive:!0}:{}});if(d.status===401&&!g){g=!0,a=await p(t,await f(t,d),o,i);continue}if(!d.ok)throw await m(t,d,i);let _=d.headers.get(`X-History-Identity-Status`),v=await d.json().catch(()=>void 0);if(s&&s.revision()!==l)throw new t.HistoryClientError(`credential_changed`,`The visitor credential changed while the request was in flight`);return h(t,_,o!==null,i),v}}function _(e){if(!e.isClientTokenMode())throw Error(`Conversation history is only available in client token mode`);if(!e.isHistoryCapable())throw new e.HistoryClientError(`history_disabled`,`Visitor history is disabled for this surface`)}async function v(e,t){let n=await g(e,`conversations`,{method:`GET`,query:{...t?.cursor?{cursor:t.cursor}:{},...t?.limit===void 0?{}:{limit:t.limit},...t?.targetId?{targetId:t.targetId}:{}},...t?.scope?{scope:t.scope}:{}});return{data:(Array.isArray(n?.data)?n.data:[]).map(r),nextCursor:typeof n?.nextCursor==`string`?n.nextCursor:null}}async function y(e,t,n){let i=await g(e,`conversations/${encodeURIComponent(t)}`,{method:`GET`,query:{...n?.messageCursor?{messageCursor:n.messageCursor}:{}},...n?.scope?{scope:n.scope}:{}});return{summary:r(i),messages:Array.isArray(i?.messages)?i.messages:[],nextMessageCursor:typeof i?.nextMessageCursor==`string`?i.nextMessageCursor:null,conversationRevision:typeof i?.conversationRevision==`string`?i.conversationRevision:null}}async function b(e,r,i){_(e);let a=0;for(let n of i){let r=n.displayContent.length;if(r>t)throw new e.HistoryClientError(`payload_too_large`,`displayContent exceeds the ${t} character limit`);a+=r}if(a>n)throw new e.HistoryClientError(`payload_too_large`,`Display projection batch exceeds the ${n} character limit`);await e.initSession();let o=e.historyInternals.visitorStore,s=o?.revision()??0,c=await g(e,`conversations/${encodeURIComponent(r)}/display-projections`,{method:`PATCH`,body:{messages:i},scope:`browser`,keepalive:a<=n,trackIdentity:!1}),l=typeof c?.conversationRevision==`string`?c.conversationRevision:null;return l&&e.clientSession?.conversationId===r&&(o?.revision()??0)===s&&e.historyInternals.setStoredConversationRevision?.(l),{conversationRevision:l}}async function x(e,t,n){let r=await g(e,`conversations/${encodeURIComponent(t)}`,{method:`DELETE`,...n?.scope?{scope:n.scope}:{}});return{deleted:typeof r?.deleted==`number`?r.deleted:0}}async function S(e,t){let n=await g(e,`conversations`,{method:`DELETE`,query:{...t?.targetId===void 0?{}:{targetId:t.targetId}},...t?.scope?{scope:t.scope}:{}});return{deleted:typeof n?.deleted==`number`?n.deleted:0}}async function C(e){_(e),e.setHistoryIdentityStatus({state:`resetting`});try{await g(e,`visitor/reset`,{method:`POST`,scope:`browser`,visitorTokenOptional:!0})}finally{await e.historyInternals.visitorStore?.clear(),e.setHistoryIdentityStatus(e.derivedBrowserOnly())}return{reset:!0}}export{S as deleteAllConversations,x as deleteConversation,b as finalizeDisplayProjections,y as getConversation,m as historyErrorFor,v as listConversations,f as readErrorCode,p as recoverFromUnauthorized,C as resetVisitor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
1
|
+
import{a as e}from"./chunk-CEPM3FOp.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};
|
|
@@ -1 +1 @@
|
|
|
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
|
+
import{r as e}from"./chunk-CEPM3FOp.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=`4.34.0`;export{e as t};
|