@runtypelabs/persona 4.30.0 → 4.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -1
- package/dist/activity-ui.cjs +2 -2
- package/dist/activity-ui.d.cts +11 -3
- package/dist/activity-ui.d.ts +11 -3
- package/dist/activity-ui.js +1 -1
- package/dist/animations/glyph-cycle.d.cts +1 -1
- package/dist/animations/glyph-cycle.d.ts +1 -1
- package/dist/animations/wipe.d.cts +1 -1
- package/dist/animations/wipe.d.ts +1 -1
- package/dist/approval-ui.d.cts +2 -2
- package/dist/approval-ui.d.ts +2 -2
- package/dist/artifacts-ui.d.cts +3 -3
- package/dist/artifacts-ui.d.ts +3 -3
- package/dist/background-runtime.d.cts +1 -1
- package/dist/background-runtime.d.ts +1 -1
- package/dist/chunk-C2IbR39s.js +1 -0
- package/dist/chunk-CkE90FtA.js +2 -0
- package/dist/{chunk-n96BB0YH.js → chunk-CzZBmTLd.js} +1 -1
- package/dist/chunk-DABqu7C3.js +2 -0
- package/dist/chunk-DDAwu89-.js +1 -0
- package/dist/{chunk-CqEWCkJt.js → chunk-DZg9bFK6.js} +1 -1
- package/dist/chunk-DbD5qyBw.js +3 -0
- package/dist/{chunk-gayfbmEU.js → chunk-FEzOcZof.js} +1 -1
- package/dist/{chunk-UyZbbbz3.js → chunk-MdlQetfC.js} +2 -2
- package/dist/client-dispatch.js +1 -1
- package/dist/client-history.js +1 -1
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.js +1 -1
- package/dist/composer-actions-runtime.d.cts +2 -2
- package/dist/composer-actions-runtime.d.ts +2 -2
- package/dist/{composer-input-C76gfIoK.d.cts → composer-input-dwg_o9Z-.d.cts} +1 -1
- package/dist/{composer-input-C76gfIoK.d.ts → composer-input-dwg_o9Z-.d.ts} +1 -1
- package/dist/{composer-store-C7tvaz90.d.cts → composer-store-Dw7Zbqxr.d.cts} +1 -1
- package/dist/{composer-store-C7tvaz90.d.ts → composer-store-Dw7Zbqxr.d.ts} +1 -1
- package/dist/{context-mention-manager-IfT4JHma.d.cts → context-mention-manager-D2p0-JH-.d.cts} +2 -2
- package/dist/{context-mention-manager-IfT4JHma.d.ts → context-mention-manager-D2p0-JH-.d.ts} +2 -2
- package/dist/context-mentions-inline.d.cts +2 -2
- package/dist/context-mentions-inline.d.ts +2 -2
- package/dist/context-mentions.d.cts +3 -3
- package/dist/context-mentions.d.ts +3 -3
- package/dist/{defaults-Cc_p0PGM.d.cts → defaults-CjX0kKzb.d.cts} +1 -1
- package/dist/{defaults-Cc_p0PGM.d.ts → defaults-CjX0kKzb.d.ts} +1 -1
- package/dist/dictation-runtime.d.cts +2 -2
- package/dist/dictation-runtime.d.ts +2 -2
- package/dist/event-stream-view.d.cts +1 -1
- package/dist/event-stream-view.d.ts +1 -1
- package/dist/{fallback-speech-engine-CSxWpG0A.d.cts → fallback-speech-engine-DmF7MczI.d.cts} +1 -1
- package/dist/{fallback-speech-engine-CSxWpG0A.d.ts → fallback-speech-engine-DmF7MczI.d.ts} +1 -1
- package/dist/{feature-preferences-eeSOmDxg.d.cts → feature-preferences-CVFDt9Xf.d.cts} +1 -1
- package/dist/{feature-preferences-eeSOmDxg.d.ts → feature-preferences-CVFDt9Xf.d.ts} +1 -1
- package/dist/forms-ui.d.cts +2 -2
- package/dist/forms-ui.d.ts +2 -2
- package/dist/{history-confirm-dialog-DXkuAgh-.d.cts → history-confirm-dialog-DJEXsTyE.d.cts} +1 -1
- package/dist/{history-confirm-dialog-DXkuAgh-.d.ts → history-confirm-dialog-DJEXsTyE.d.ts} +1 -1
- package/dist/history-shell.d.cts +6 -6
- package/dist/history-shell.d.ts +6 -6
- package/dist/history-view.d.cts +1 -1
- package/dist/history-view.d.ts +1 -1
- package/dist/index.cjs +49 -47
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.global.js +1 -1
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +43 -41
- package/dist/index.js.map +1 -1
- package/dist/{loading-label-runtime-loader-C53YyPJ-.d.cts → loading-label-runtime-loader-CPxnoaoi.d.cts} +1 -1
- package/dist/{loading-label-runtime-loader-C53YyPJ-.d.ts → loading-label-runtime-loader-CPxnoaoi.d.ts} +1 -1
- package/dist/loading-label-runtime.d.cts +1 -1
- package/dist/loading-label-runtime.d.ts +1 -1
- package/dist/markdown-parsers.js +18 -15
- package/dist/{message-bubble-Cg_sTXUN.d.cts → message-bubble-CkZGlCLC.d.cts} +1 -1
- package/dist/{message-bubble-Cg_sTXUN.d.ts → message-bubble-CkZGlCLC.d.ts} +1 -1
- package/dist/preferences-runtime.d.cts +1 -1
- package/dist/preferences-runtime.d.ts +1 -1
- package/dist/{preview-BeMKALry.d.cts → preview-DdUvoLb4.d.cts} +2 -2
- package/dist/{preview-BeMKALry.d.ts → preview-DdUvoLb4.d.ts} +2 -2
- package/dist/{registry-BBe-Lesw.d.ts → registry-Dz4iHNST.d.cts} +3 -1
- package/dist/{registry-BBe-Lesw.d.cts → registry-Dz4iHNST.d.ts} +3 -1
- package/dist/{session-C0fSteA4.d.cts → session-Baxp9iRK.d.cts} +24 -9
- package/dist/{session-C0fSteA4.d.ts → session-Baxp9iRK.d.ts} +24 -9
- package/dist/session-reconnect.d.cts +2 -2
- package/dist/session-reconnect.d.ts +2 -2
- package/dist/smart-dom-reader.d.cts +1 -1
- package/dist/smart-dom-reader.d.ts +1 -1
- package/dist/theme-editor-preview.cjs +47 -45
- package/dist/theme-editor-preview.d.cts +1 -1
- package/dist/theme-editor-preview.d.ts +1 -1
- package/dist/theme-editor-preview.js +23 -24
- package/dist/theme-editor.d.cts +2 -2
- package/dist/theme-editor.d.ts +2 -2
- package/dist/theme-reference.d.cts +2 -2
- package/dist/theme-reference.d.ts +2 -2
- package/dist/{tool-loading-animation-BvdaZfwh.d.cts → tool-loading-animation-un3kA5Ur.d.cts} +1 -1
- package/dist/{tool-loading-animation-BvdaZfwh.d.ts → tool-loading-animation-un3kA5Ur.d.ts} +1 -1
- package/dist/{turn-activity-ui-BYBlInZQ.d.cts → turn-activity-ui-BGNhtMcH.d.cts} +2 -2
- package/dist/{turn-activity-ui-BYBlInZQ.d.ts → turn-activity-ui-BGNhtMcH.d.ts} +2 -2
- package/dist/turn-activity-ui.d.cts +1 -1
- package/dist/turn-activity-ui.d.ts +1 -1
- package/dist/{types-CiXi4ICM.d.cts → types-BOZHQIk0.d.cts} +13 -1
- package/dist/{types-CiXi4ICM.d.ts → types-BOZHQIk0.d.ts} +13 -1
- package/dist/voice-client-tools.d.cts +1 -1
- package/dist/voice-client-tools.d.ts +1 -1
- package/dist/voice-runtime.cjs +1 -1
- package/dist/voice-runtime.d.cts +2 -2
- package/dist/voice-runtime.d.ts +2 -2
- package/dist/voice-runtime.js +1 -1
- package/dist/voice-worklet-player.d.cts +2 -2
- package/dist/voice-worklet-player.d.ts +2 -2
- package/dist/{webmcp-runtime-entry-BTbOg3Au.d.cts → webmcp-runtime-entry-DuAG1_yF.d.cts} +1 -1
- package/dist/{webmcp-runtime-entry-BTbOg3Au.d.ts → webmcp-runtime-entry-DuAG1_yF.d.ts} +1 -1
- package/dist/webmcp-runtime.d.cts +1 -1
- package/dist/webmcp-runtime.d.ts +1 -1
- package/dist/widget.css +1 -1
- package/package.json +2 -2
- package/src/activity-ui.ts +23 -0
- package/src/components/disclosure-animation.ts +5 -0
- package/src/components/tool-bubble.ts +1 -0
- package/src/index-core.ts +2 -0
- package/src/markdown-parsers-eager.ts +2 -1
- package/src/markdown-parsers-entry.ts +1 -0
- package/src/markdown-parsers-loader.ts +2 -0
- package/src/postprocessors.ts +14 -0
- package/src/session.ts +3 -0
- package/src/styles/widget.css +6 -0
- package/src/types.ts +13 -0
- package/src/ui.background-conversations.test.ts +6 -0
- package/src/ui.footer-visibility.test.ts +54 -0
- package/src/ui.page-cache.test.ts +268 -0
- package/src/ui.postprocess.test.ts +80 -1
- package/src/ui.reveal-tool-call.test.ts +258 -0
- package/src/ui.ts +222 -32
- package/src/utils/actions.ts +3 -0
- package/src/utils/streaming-markdown.test.ts +103 -0
- package/src/utils/streaming-markdown.ts +186 -0
- package/dist/chunk-18tPmsiJ.js +0 -1
- package/dist/chunk-B3OrH9Ng.js +0 -2
- package/dist/chunk-Dp2vWE9V.js +0 -1
- package/dist/chunk-VloQ2dnh.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{n as e}from"./chunk-BnfM7-qg.js";import{t}from"./chunk-CnxIZOzx.js";import{_ as n,a as r,d as i,f as a,h as o,l as s,n as c,t as l,u,v as d}from"./chunk-Dp2vWE9V.js";import{i as f,n as p,t as m}from"./chunk-D5BxWOFB.js";import{n as h}from"./chunk-CNhThrLX.js";import{r as g,t as _}from"./chunk-Cve3IfG4.js";import{Check as v,ChevronDown as y,FileText as ee,Maximize as b,Minimize as x}from"lucide";var S=`[data-persona-root] .persona-artifact-split-root{gap:var(--persona-artifact-split-gap,.5rem)}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn{padding:var(--persona-artifact-toolbar-icon-padding,.25rem);border-radius:var(--persona-artifact-toolbar-icon-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-icon-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-icon-bg,var(--persona-surface,#fff));color:var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827));cursor:pointer;justify-content:center;align-items:center;line-height:1;display:inline-flex}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn:hover{color:var(--persona-artifact-toolbar-icon-hover-color,inherit);background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn[aria-pressed=true],[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));border-color:var(--persona-artifact-doc-toggle-active-border,var(--persona-icon-btn-active-border,var(--persona-border,#e5e7eb)));color:var(--persona-artifact-doc-toggle-active-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn{padding:var(--persona-artifact-toolbar-copy-padding,.25rem .5rem);border-radius:var(--persona-artifact-toolbar-copy-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-copy-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-copy-bg,var(--persona-surface,#fff));color:var(--persona-artifact-toolbar-copy-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)));cursor:pointer;align-items:center;gap:.35rem;font-size:.75rem;line-height:1.25;display:inline-flex}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-split-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-split-btn{--persona-split-radius:var(--persona-artifact-toolbar-copy-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-copy-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-copy-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-artifact-tab{background:var(--persona-artifact-tab-bg,transparent);border-radius:var(--persona-artifact-tab-radius,.5rem);color:var(--persona-artifact-tab-color,inherit);white-space:nowrap;max-width:var(--persona-artifact-tab-max-width,12rem);text-overflow:ellipsis;overflow:hidden}[data-persona-root] .persona-artifact-tab.persona-bg-persona-container{background:var(--persona-artifact-tab-active-bg,var(--persona-container,#f3f4f6));border-color:var(--persona-artifact-tab-active-border,var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-toolbar{background:var(--persona-artifact-toolbar-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-artifact-tab:hover{background:var(--persona-artifact-tab-hover-bg,var(--persona-container,#f3f4f6))}[data-persona-root] .persona-artifact-tab:focus-visible{outline:2px solid var(--persona-accent,#171717);outline-offset:2px}[data-persona-root] .persona-artifact-list{background:var(--persona-artifact-tab-list-bg,transparent);border-bottom-color:var(--persona-artifact-tab-list-border-color,var(--persona-border,#e5e7eb));padding:var(--persona-artifact-tab-list-padding,.5rem);scrollbar-width:thin;scroll-behavior:smooth}[data-persona-root] .persona-artifact-list::-webkit-scrollbar{height:6px}[data-persona-root] .persona-artifact-list::-webkit-scrollbar-thumb{background:var(--persona-artifact-tab-list-scrollbar,var(--persona-scrollbar-thumb,var(--persona-border,#e5e7eb)));border-radius:9999px}[data-persona-root] .persona-artifact-toolbar-document{border-bottom:var(--persona-artifact-toolbar-border,1px solid var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-card{background:var(--persona-artifact-card-bg,var(--persona-surface,#fff));border:var(--persona-artifact-card-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-card-radius,var(--persona-message-assistant-radius,var(--persona-radius-lg,.5rem)));cursor:pointer;transition:background-color .15s,border-color .15s}[data-persona-root] .persona-artifact-card:hover{background:var(--persona-artifact-card-hover-bg,#f3f4f6);border-color:var(--persona-artifact-card-hover-border,var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-card:focus-visible{outline:2px solid var(--persona-accent,#171717);outline-offset:2px}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{gap:var(--persona-artifact-toolbar-toggle-group-gap,2px);padding:var(--persona-artifact-toolbar-toggle-group-padding,2px);border:var(--persona-artifact-toolbar-toggle-group-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-toolbar-toggle-group-radius,var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))));background:var(--persona-artifact-toolbar-toggle-group-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{padding:calc(var(--persona-artifact-toolbar-icon-padding,var(--persona-icon-btn-padding,.25rem)) - var(--persona-artifact-toolbar-toggle-group-padding,2px));border-radius:var(--persona-artifact-toolbar-toggle-radius,calc(var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))) - 2px));background:0 0;border:none}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border,transparent);color:var(--persona-artifact-doc-toggle-active-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)))}@supports selector(:has(*)){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{content:"";top:var(--persona-artifact-toolbar-toggle-group-padding,2px);bottom:var(--persona-artifact-toolbar-toggle-group-padding,2px);left:var(--persona-artifact-toolbar-toggle-group-padding,2px);width:calc(50% - var(--persona-artifact-toolbar-toggle-group-padding,2px) - (var(--persona-artifact-toolbar-toggle-group-gap,2px) / 2));border-radius:var(--persona-artifact-toolbar-toggle-radius,calc(var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))) - 2px));background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border,transparent);pointer-events:none;transition:transform .18s;position:absolute}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:has(>.persona-icon-btn:last-child[aria-pressed=true]):before{transform:translateX(calc(100% + var(--persona-artifact-toolbar-toggle-group-gap,2px)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{box-shadow:none;background:0 0}@media (prefers-reduced-motion:reduce){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{transition:none}}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-split-handle{display:none!important}@media (max-width:640px){[data-persona-root] .persona-artifact-split-handle{display:none!important}}@media (min-width:641px){[data-persona-root] .persona-artifact-pane{width:var(--persona-artifact-pane-width,40%);max-width:var(--persona-artifact-pane-max-width,28rem);min-width:var(--persona-artifact-pane-min-width,0);box-shadow:var(--persona-artifact-pane-shadow,none);flex-shrink:0}[data-persona-root].persona-artifact-expanded .persona-artifact-split-root>:first-child{display:none}[data-persona-root].persona-artifact-expanded .persona-artifact-pane{width:100%;max-width:none}[data-persona-root].persona-artifact-expanded .persona-artifact-split-handle{display:none!important}}@media (max-width:640px){[data-persona-root] .persona-artifact-expand-btn{display:none!important}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-expand-btn{display:none!important}[data-persona-root] .persona-artifact-frame{background:var(--persona-artifact-frame-bg,#fff);width:100%;height:100%;position:relative}[data-persona-root] .persona-artifact-iframe{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--persona-artifact-frame-bg,#fff);border:0;width:100%;height:100%;display:block}[data-persona-root] .persona-artifact-frame-loading{background:var(--persona-artifact-frame-bg,#fff);opacity:1;transition:opacity var(--persona-artifact-frame-loading-fade,.2s) ease;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}[data-persona-root] .persona-artifact-frame-loading--out{opacity:0}[data-persona-root] .persona-artifact-frame-loading-indicator{flex-direction:column;align-items:center;gap:.625rem;display:flex}[data-persona-root] .persona-artifact-frame-loading-text{color:var(--persona-artifact-frame-loading-color,var(--persona-text-muted,#6b7280));opacity:0;font-size:.8125rem;font-weight:500;transition:opacity .24s}[data-persona-root] .persona-artifact-frame-loading-text--visible{opacity:1}@media (prefers-reduced-motion:reduce){[data-persona-root] .persona-artifact-frame-loading-text{transition:none}}[data-persona-root] .persona-artifact-content{width:100%;min-width:0;max-width:100%}[data-persona-root] .persona-artifact-content>.persona-artifact-preview-body>*{min-width:0;max-width:100%}[data-persona-root] .persona-artifact-preview-body{display:contents}[data-persona-root] .persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-content-flush .persona-code-pre{border-radius:0;min-height:100%;padding:.5rem .75rem .5rem 0}[data-persona-root] .persona-artifact-inline{border:var(--persona-artifact-inline-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-inline-radius,var(--persona-message-assistant-radius,var(--persona-radius-lg,.5rem)));background:var(--persona-artifact-inline-bg,var(--persona-surface,#fff));overflow:hidden}[data-persona-root] .persona-artifact-inline.persona-artifact-inline--card{background:0 0;border:none;border-radius:0;overflow:visible}[data-persona-root] .persona-artifact-inline-chrome{background:var(--persona-artifact-inline-chrome-bg,var(--persona-surface,#fff));border-bottom:1px solid var(--persona-artifact-inline-chrome-border,var(--persona-border,#e5e7eb));align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}[data-persona-root] .persona-artifact-inline-chrome-lead{min-width:0;color:var(--persona-artifact-inline-title-color,var(--persona-text,#111827));flex:auto;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;display:flex}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-type,[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{color:var(--persona-artifact-inline-muted-color,var(--persona-text-muted,#6b7280));font-weight:400}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}[data-persona-root] .persona-artifact-status-detail{color:var(--persona-artifact-inline-muted-color,var(--persona-text-muted,#6b7280));font-variant-numeric:tabular-nums;margin-left:.375rem}[data-persona-root] .persona-artifact-inline-chrome-actions{flex:none;align-items:center;gap:.25rem;display:flex}[data-persona-root] .persona-artifact-inline-body{padding:.75rem}[data-persona-root] .persona-artifact-inline .persona-artifact-frame{height:var(--persona-artifact-inline-body-height,var(--persona-artifact-inline-frame-height,320px))}[data-persona-root] .persona-artifact-inline-body.persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-inline-body--sized{height:var(--persona-artifact-inline-body-height,auto)}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-source-window--fixed,[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-frame{height:100%}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-status-view{min-height:100%}[data-persona-root] .persona-artifact-source-window{min-width:0}[data-persona-root] .persona-artifact-source-window--fixed{overflow-y:auto}[data-persona-root] .persona-artifact-source-window--clip{overflow:hidden}[data-persona-root] .persona-artifact-fade-top:not(.persona-artifact-fade-bottom){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px));-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px));mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px))}[data-persona-root] .persona-artifact-fade-bottom:not(.persona-artifact-fade-top){-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px));-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px));mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px))}[data-persona-root] .persona-artifact-fade-top.persona-artifact-fade-bottom{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%)}[data-persona-root] .persona-artifact-tab-fade-start:not(.persona-artifact-tab-fade-end){-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px))}[data-persona-root] .persona-artifact-tab-fade-end:not(.persona-artifact-tab-fade-start){-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px))}[data-persona-root] .persona-artifact-tab-fade-start.persona-artifact-tab-fade-end{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%)}[data-persona-root] .persona-artifact-status-view{min-height:var(--persona-artifact-inline-body-height,160px);justify-content:center;align-items:center;display:flex}[data-persona-root] .persona-artifact-inline-body--cap{max-height:var(--persona-artifact-inline-body-height,none);overflow-y:auto}[data-persona-root] .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius,0);background-color:var(--persona-artifact-pane-bg,var(--persona-components-artifact-pane-background,var(--persona-surface,#fff)));overflow:hidden}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-split-root{position:relative;gap:0!important}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-pane{background-color:var(--persona-artifact-pane-bg,var(--persona-components-artifact-pane-background,var(--persona-container,#f8fafc)));box-shadow:none!important;border-left-width:0!important;border-left-color:#0000!important}[data-persona-root].persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-border-left .persona-artifact-pane{border-top:none!important;border-bottom:none!important;border-right:none!important;border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-left .persona-artifact-pane{border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-appearance-detached .persona-artifact-split-root{background:var(--persona-panel-canvas-bg)}@media (min-width:641px){[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-appearance-detached .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)));border:var(--persona-panel-border,1px solid var(--persona-border,#e5e7eb));box-shadow:var(--persona-artifact-pane-shadow,var(--persona-panel-shadow,var(--persona-palette-shadows-xl,0 25px 50px -12px #00000040)))}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-chat-flush .persona-artifact-pane{margin-top:var(--persona-panel-inset);margin-right:var(--persona-panel-inset);margin-bottom:var(--persona-panel-inset)}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-split-root{position:relative}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-widget-container{overflow:hidden;border-top-right-radius:0!important;border-bottom-right-radius:0!important}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-pane{overflow:hidden;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--persona-artifact-welded-outer-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)))!important;border-bottom-right-radius:var(--persona-artifact-welded-outer-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)))!important}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split.persona-artifact-appearance-panel .persona-artifact-pane{border-left:1px solid var(--persona-border,#e5e7eb)}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-backdrop{z-index:55!important;position:absolute!important;inset:0!important}@media (min-width:641px){[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane{z-index:60;transition:transform .2s;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0000001f;width:min(100%, var(--persona-artifact-drawer-width,min(calc(100% - 1rem), 22rem)))!important;max-width:var(--persona-artifact-drawer-width,22rem)!important}[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}@media (max-width:640px){[data-persona-root] .persona-artifact-pane{width:min(100vw, var(--persona-artifact-drawer-width,min(100vw - 1.5rem, 22rem)));z-index:60;transition:transform .2s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}[data-persona-root] .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}`;const C=e=>h(e,`artifacts`,S);function w(e){let t=String(e).split(/[\\/]/);return t[t.length-1]??``}function T(e){let t=w(e),n=t.lastIndexOf(`.`);return n<=0?``:t.slice(n+1).toLowerCase()}function E(e){if(typeof e!=`string`)return``;let t=e.indexOf(`
|
|
1
|
+
import{n as e}from"./chunk-BnfM7-qg.js";import{t}from"./chunk-CnxIZOzx.js";import{a as n,d as r,g as i,l as a,n as o,p as s,t as c,u as l,v as u,y as d}from"./chunk-C2IbR39s.js";import{i as f,n as p,t as m}from"./chunk-D5BxWOFB.js";import{n as h}from"./chunk-CNhThrLX.js";import{r as g,t as _}from"./chunk-Cve3IfG4.js";import{Check as v,ChevronDown as y,FileText as ee,Maximize as b,Minimize as x}from"lucide";var S=`[data-persona-root] .persona-artifact-split-root{gap:var(--persona-artifact-split-gap,.5rem)}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn{padding:var(--persona-artifact-toolbar-icon-padding,.25rem);border-radius:var(--persona-artifact-toolbar-icon-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-icon-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-icon-bg,var(--persona-surface,#fff));color:var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827));cursor:pointer;justify-content:center;align-items:center;line-height:1;display:inline-flex}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn:hover{color:var(--persona-artifact-toolbar-icon-hover-color,inherit);background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn[aria-pressed=true],[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));border-color:var(--persona-artifact-doc-toggle-active-border,var(--persona-icon-btn-active-border,var(--persona-border,#e5e7eb)));color:var(--persona-artifact-doc-toggle-active-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn{padding:var(--persona-artifact-toolbar-copy-padding,.25rem .5rem);border-radius:var(--persona-artifact-toolbar-copy-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-copy-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-copy-bg,var(--persona-surface,#fff));color:var(--persona-artifact-toolbar-copy-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)));cursor:pointer;align-items:center;gap:.35rem;font-size:.75rem;line-height:1.25;display:inline-flex}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-split-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-split-btn{--persona-split-radius:var(--persona-artifact-toolbar-copy-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-copy-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-copy-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-artifact-tab{background:var(--persona-artifact-tab-bg,transparent);border-radius:var(--persona-artifact-tab-radius,.5rem);color:var(--persona-artifact-tab-color,inherit);white-space:nowrap;max-width:var(--persona-artifact-tab-max-width,12rem);text-overflow:ellipsis;overflow:hidden}[data-persona-root] .persona-artifact-tab.persona-bg-persona-container{background:var(--persona-artifact-tab-active-bg,var(--persona-container,#f3f4f6));border-color:var(--persona-artifact-tab-active-border,var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-toolbar{background:var(--persona-artifact-toolbar-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-artifact-tab:hover{background:var(--persona-artifact-tab-hover-bg,var(--persona-container,#f3f4f6))}[data-persona-root] .persona-artifact-tab:focus-visible{outline:2px solid var(--persona-accent,#171717);outline-offset:2px}[data-persona-root] .persona-artifact-list{background:var(--persona-artifact-tab-list-bg,transparent);border-bottom-color:var(--persona-artifact-tab-list-border-color,var(--persona-border,#e5e7eb));padding:var(--persona-artifact-tab-list-padding,.5rem);scrollbar-width:thin;scroll-behavior:smooth}[data-persona-root] .persona-artifact-list::-webkit-scrollbar{height:6px}[data-persona-root] .persona-artifact-list::-webkit-scrollbar-thumb{background:var(--persona-artifact-tab-list-scrollbar,var(--persona-scrollbar-thumb,var(--persona-border,#e5e7eb)));border-radius:9999px}[data-persona-root] .persona-artifact-toolbar-document{border-bottom:var(--persona-artifact-toolbar-border,1px solid var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-card{background:var(--persona-artifact-card-bg,var(--persona-surface,#fff));border:var(--persona-artifact-card-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-card-radius,var(--persona-message-assistant-radius,var(--persona-radius-lg,.5rem)));cursor:pointer;transition:background-color .15s,border-color .15s}[data-persona-root] .persona-artifact-card:hover{background:var(--persona-artifact-card-hover-bg,#f3f4f6);border-color:var(--persona-artifact-card-hover-border,var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-card:focus-visible{outline:2px solid var(--persona-accent,#171717);outline-offset:2px}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{gap:var(--persona-artifact-toolbar-toggle-group-gap,2px);padding:var(--persona-artifact-toolbar-toggle-group-padding,2px);border:var(--persona-artifact-toolbar-toggle-group-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-toolbar-toggle-group-radius,var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))));background:var(--persona-artifact-toolbar-toggle-group-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{padding:calc(var(--persona-artifact-toolbar-icon-padding,var(--persona-icon-btn-padding,.25rem)) - var(--persona-artifact-toolbar-toggle-group-padding,2px));border-radius:var(--persona-artifact-toolbar-toggle-radius,calc(var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))) - 2px));background:0 0;border:none}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border,transparent);color:var(--persona-artifact-doc-toggle-active-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)))}@supports selector(:has(*)){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{content:"";top:var(--persona-artifact-toolbar-toggle-group-padding,2px);bottom:var(--persona-artifact-toolbar-toggle-group-padding,2px);left:var(--persona-artifact-toolbar-toggle-group-padding,2px);width:calc(50% - var(--persona-artifact-toolbar-toggle-group-padding,2px) - (var(--persona-artifact-toolbar-toggle-group-gap,2px) / 2));border-radius:var(--persona-artifact-toolbar-toggle-radius,calc(var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))) - 2px));background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border,transparent);pointer-events:none;transition:transform .18s;position:absolute}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:has(>.persona-icon-btn:last-child[aria-pressed=true]):before{transform:translateX(calc(100% + var(--persona-artifact-toolbar-toggle-group-gap,2px)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{box-shadow:none;background:0 0}@media (prefers-reduced-motion:reduce){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{transition:none}}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-split-handle{display:none!important}@media (max-width:640px){[data-persona-root] .persona-artifact-split-handle{display:none!important}}@media (min-width:641px){[data-persona-root] .persona-artifact-pane{width:var(--persona-artifact-pane-width,40%);max-width:var(--persona-artifact-pane-max-width,28rem);min-width:var(--persona-artifact-pane-min-width,0);box-shadow:var(--persona-artifact-pane-shadow,none);flex-shrink:0}[data-persona-root].persona-artifact-expanded .persona-artifact-split-root>:first-child{display:none}[data-persona-root].persona-artifact-expanded .persona-artifact-pane{width:100%;max-width:none}[data-persona-root].persona-artifact-expanded .persona-artifact-split-handle{display:none!important}}@media (max-width:640px){[data-persona-root] .persona-artifact-expand-btn{display:none!important}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-expand-btn{display:none!important}[data-persona-root] .persona-artifact-frame{background:var(--persona-artifact-frame-bg,#fff);width:100%;height:100%;position:relative}[data-persona-root] .persona-artifact-iframe{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--persona-artifact-frame-bg,#fff);border:0;width:100%;height:100%;display:block}[data-persona-root] .persona-artifact-frame-loading{background:var(--persona-artifact-frame-bg,#fff);opacity:1;transition:opacity var(--persona-artifact-frame-loading-fade,.2s) ease;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}[data-persona-root] .persona-artifact-frame-loading--out{opacity:0}[data-persona-root] .persona-artifact-frame-loading-indicator{flex-direction:column;align-items:center;gap:.625rem;display:flex}[data-persona-root] .persona-artifact-frame-loading-text{color:var(--persona-artifact-frame-loading-color,var(--persona-text-muted,#6b7280));opacity:0;font-size:.8125rem;font-weight:500;transition:opacity .24s}[data-persona-root] .persona-artifact-frame-loading-text--visible{opacity:1}@media (prefers-reduced-motion:reduce){[data-persona-root] .persona-artifact-frame-loading-text{transition:none}}[data-persona-root] .persona-artifact-content{width:100%;min-width:0;max-width:100%}[data-persona-root] .persona-artifact-content>.persona-artifact-preview-body>*{min-width:0;max-width:100%}[data-persona-root] .persona-artifact-preview-body{display:contents}[data-persona-root] .persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-content-flush .persona-code-pre{border-radius:0;min-height:100%;padding:.5rem .75rem .5rem 0}[data-persona-root] .persona-artifact-inline{border:var(--persona-artifact-inline-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-inline-radius,var(--persona-message-assistant-radius,var(--persona-radius-lg,.5rem)));background:var(--persona-artifact-inline-bg,var(--persona-surface,#fff));overflow:hidden}[data-persona-root] .persona-artifact-inline.persona-artifact-inline--card{background:0 0;border:none;border-radius:0;overflow:visible}[data-persona-root] .persona-artifact-inline-chrome{background:var(--persona-artifact-inline-chrome-bg,var(--persona-surface,#fff));border-bottom:1px solid var(--persona-artifact-inline-chrome-border,var(--persona-border,#e5e7eb));align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}[data-persona-root] .persona-artifact-inline-chrome-lead{min-width:0;color:var(--persona-artifact-inline-title-color,var(--persona-text,#111827));flex:auto;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;display:flex}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-type,[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{color:var(--persona-artifact-inline-muted-color,var(--persona-text-muted,#6b7280));font-weight:400}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}[data-persona-root] .persona-artifact-status-detail{color:var(--persona-artifact-inline-muted-color,var(--persona-text-muted,#6b7280));font-variant-numeric:tabular-nums;margin-left:.375rem}[data-persona-root] .persona-artifact-inline-chrome-actions{flex:none;align-items:center;gap:.25rem;display:flex}[data-persona-root] .persona-artifact-inline-body{padding:.75rem}[data-persona-root] .persona-artifact-inline .persona-artifact-frame{height:var(--persona-artifact-inline-body-height,var(--persona-artifact-inline-frame-height,320px))}[data-persona-root] .persona-artifact-inline-body.persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-inline-body--sized{height:var(--persona-artifact-inline-body-height,auto)}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-source-window--fixed,[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-frame{height:100%}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-status-view{min-height:100%}[data-persona-root] .persona-artifact-source-window{min-width:0}[data-persona-root] .persona-artifact-source-window--fixed{overflow-y:auto}[data-persona-root] .persona-artifact-source-window--clip{overflow:hidden}[data-persona-root] .persona-artifact-fade-top:not(.persona-artifact-fade-bottom){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px));-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px));mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px))}[data-persona-root] .persona-artifact-fade-bottom:not(.persona-artifact-fade-top){-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px));-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px));mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px))}[data-persona-root] .persona-artifact-fade-top.persona-artifact-fade-bottom{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%)}[data-persona-root] .persona-artifact-tab-fade-start:not(.persona-artifact-tab-fade-end){-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px))}[data-persona-root] .persona-artifact-tab-fade-end:not(.persona-artifact-tab-fade-start){-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px))}[data-persona-root] .persona-artifact-tab-fade-start.persona-artifact-tab-fade-end{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%)}[data-persona-root] .persona-artifact-status-view{min-height:var(--persona-artifact-inline-body-height,160px);justify-content:center;align-items:center;display:flex}[data-persona-root] .persona-artifact-inline-body--cap{max-height:var(--persona-artifact-inline-body-height,none);overflow-y:auto}[data-persona-root] .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius,0);background-color:var(--persona-artifact-pane-bg,var(--persona-components-artifact-pane-background,var(--persona-surface,#fff)));overflow:hidden}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-split-root{position:relative;gap:0!important}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-pane{background-color:var(--persona-artifact-pane-bg,var(--persona-components-artifact-pane-background,var(--persona-container,#f8fafc)));box-shadow:none!important;border-left-width:0!important;border-left-color:#0000!important}[data-persona-root].persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-border-left .persona-artifact-pane{border-top:none!important;border-bottom:none!important;border-right:none!important;border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-left .persona-artifact-pane{border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-appearance-detached .persona-artifact-split-root{background:var(--persona-panel-canvas-bg)}@media (min-width:641px){[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-appearance-detached .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)));border:var(--persona-panel-border,1px solid var(--persona-border,#e5e7eb));box-shadow:var(--persona-artifact-pane-shadow,var(--persona-panel-shadow,var(--persona-palette-shadows-xl,0 25px 50px -12px #00000040)))}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-chat-flush .persona-artifact-pane{margin-top:var(--persona-panel-inset);margin-right:var(--persona-panel-inset);margin-bottom:var(--persona-panel-inset)}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-split-root{position:relative}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-widget-container{overflow:hidden;border-top-right-radius:0!important;border-bottom-right-radius:0!important}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-pane{overflow:hidden;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--persona-artifact-welded-outer-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)))!important;border-bottom-right-radius:var(--persona-artifact-welded-outer-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)))!important}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split.persona-artifact-appearance-panel .persona-artifact-pane{border-left:1px solid var(--persona-border,#e5e7eb)}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-backdrop{z-index:55!important;position:absolute!important;inset:0!important}@media (min-width:641px){[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane{z-index:60;transition:transform .2s;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0000001f;width:min(100%, var(--persona-artifact-drawer-width,min(calc(100% - 1rem), 22rem)))!important;max-width:var(--persona-artifact-drawer-width,22rem)!important}[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}@media (max-width:640px){[data-persona-root] .persona-artifact-pane{width:min(100vw, var(--persona-artifact-drawer-width,min(100vw - 1.5rem, 22rem)));z-index:60;transition:transform .2s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}[data-persona-root] .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}`;const C=e=>h(e,`artifacts`,S);function w(e){let t=String(e).split(/[\\/]/);return t[t.length-1]??``}function T(e){let t=w(e),n=t.lastIndexOf(`.`);return n<=0?``:t.slice(n+1).toLowerCase()}function E(e){if(typeof e!=`string`)return``;let t=e.indexOf(`
|
|
2
2
|
`);if(t===-1||!e.slice(0,t).startsWith("```"))return e;let n=e.slice(t+1),r=n.lastIndexOf(`
|
|
3
3
|
`);return(r===-1?n:n.slice(0,r)).split("```").join("```")}function te(e){let t=T(e.path);if(t)return t===`html`||t===`htm`?`html`:t===`svg`?`svg`:t===`md`||t===`mdx`?`markdown`:`other`;let n=(e.mimeType||``).toLowerCase();return n.includes(`html`)?`html`:n.includes(`svg`)?`svg`:n.includes(`markdown`)?`markdown`:`other`}function D(e){switch(te(e)){case`html`:return`HTML`;case`svg`:return`SVG`;case`markdown`:return`Markdown`;default:{let t=T(e.path);return t?t.toUpperCase():`File`}}}function O(e){let t=e.markdown??``;return e.file?{filename:w(e.file.path)||`artifact`,mime:e.file.mimeType||`application/octet-stream`,content:E(t)}:{filename:`${e.title||`artifact`}.md`,mime:`text/markdown`,content:t}}function k(e){let t=new Blob([e.content],{type:e.mime}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e.filename,r.click(),URL.revokeObjectURL(n)}let A=null;const j=e=>{A=e.componentRegistry,g(e.loadingLabels),e.buttons&&(N=e.buttons)},M=()=>A;let N;const P=()=>{if(!N)throw Error(`Artifact UI must be initialized with core button factories before rendering.`);return N},F=(...e)=>P().createIconButton(...e),I=(...e)=>P().createLabelButton(...e),L=(...e)=>P().createSplitButton(...e),ne=(...e)=>P().createToggleGroup(...e),R=`persona-artifact-custom-action-btn`;function re(e,t){let n=t?.documentChrome??!1,r;if(typeof e.icon==`function`){r=e.showLabel?m(`button`,`persona-label-btn persona-label-btn--sm `+R+(n?` persona-artifact-doc-copy-btn`:``)):m(`button`,`persona-icon-btn `+R+(n?` persona-artifact-doc-icon-btn`:``)),r.type=`button`,r.setAttribute(`aria-label`,e.label),r.title=e.label;try{let t=e.icon();t&&r.appendChild(t)}catch{}if(e.showLabel){let t=m(`span`);t.textContent=e.label,r.appendChild(t)}}else r=e.showLabel||!e.icon?I({icon:e.icon,label:e.label,className:R+(n?` persona-artifact-doc-copy-btn`:``)}):F({icon:e.icon,label:e.label,className:R+(n?` persona-artifact-doc-icon-btn`:``)});return t?.onClick&&r.addEventListener(`click`,t.onClick),r}function z(e){if(!e)return null;let t={artifactId:e.id,title:e.title??``,artifactType:e.artifactType};return e.artifactType===`markdown`?(t.markdown=e.markdown??``,e.file&&(t.file=e.file)):t.jsonPayload=JSON.stringify({component:e.component,props:e.props},null,2),t}const B=`http://www.w3.org/2000/svg`;function V(e){let t=document.createElementNS(B,`svg`);t.setAttribute(`class`,f(`persona-spinner`,e)),t.setAttribute(`viewBox`,`0 0 24 24`),t.setAttribute(`aria-hidden`,`true`),t.setAttribute(`focusable`,`false`);let n=document.createElementNS(B,`circle`);n.setAttribute(`class`,`persona-spinner-track`),n.setAttribute(`cx`,`12`),n.setAttribute(`cy`,`12`),n.setAttribute(`r`,`9`);let r=document.createElementNS(B,`circle`);return r.setAttribute(`class`,`persona-spinner-arc`),r.setAttribute(`cx`,`12`),r.setAttribute(`cy`,`12`),r.setAttribute(`r`,`9`),t.appendChild(n),t.appendChild(r),t}function H(e,t,n){e.textContent=t,_(e,{animation:n?.loadingAnimation??`shimmer`,duration:`${n?.loadingAnimationDuration??2e3}ms`,color:n?.loadingAnimationColor,secondaryColor:n?.loadingAnimationSecondaryColor})}const U=`persona-artifact-status-label`,ie=`persona-artifact-status-detail`,ae=`data-artifact-status-label`,oe=/* @__PURE__ */ new Map,se=()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now();function ce(e){e&&oe.delete(e)}function le(e){let t=e.artifactType===`markdown`?e.file:void 0;return t?D(t):e.artifactType===`component`?`Component`:`Document`}function W(e,t,n){let r=le(e),i=`Generating ${r.toLowerCase()}...`,a=t?.statusLabel;if(typeof a==`string`)return{label:a};if(typeof a!=`function`)return{label:i};let o=e.id,s=oe.get(o);e.status!==`complete`&&s===void 0&&(s=se(),oe.set(o,s));let c=s===void 0?0:Math.max(0,se()-s),l=e.artifactType===`component`,u=!l&&typeof e.markdown==`string`?e.markdown:``,d=l?0:u.length,f=l||u===``?0:u.split(`
|
|
4
4
|
`).length,p=e.artifactType===`markdown`?e.file:void 0,m={artifactId:o,artifactType:e.artifactType,title:e.title,typeLabel:r,file:p,chars:d,lines:f,elapsedMs:c,content:()=>l?``:u,surface:n};try{let e=a(m);return typeof e==`string`?{label:e}:e&&typeof e==`object`&&typeof e.label==`string`?{label:e.label,detail:typeof e.detail==`string`?e.detail:void 0}:{label:i}}catch{return{label:i}}}function ue(e){e.className=U,e.removeAttribute(`data-preserve-animation`),e.style.removeProperty(`--persona-tool-anim-duration`),e.style.removeProperty(`--persona-tool-anim-color`),e.style.removeProperty(`--persona-tool-anim-secondary-color`),e.replaceChildren()}function G(e,t,n){let r=e.querySelector(`:scope > .${U}`);r||(r=m(`span`,U),e.appendChild(r)),r.getAttribute(ae)!==t.label&&(ue(r),H(r,t.label,n),r.setAttribute(ae,t.label));let i=e.querySelector(`:scope > .${ie}`),a=t.detail;a?(i||(i=m(`span`,ie),e.appendChild(i)),i.textContent!==a&&(i.textContent=a)):i&&i.remove()}const K={keyword:`persona-code-token-keyword`,string:`persona-code-token-string`,comment:`persona-code-token-comment`,number:`persona-code-token-number`,tag:`persona-code-token-tag`,attr:`persona-code-token-attr`,property:`persona-code-token-property`},q={html:`html`,htm:`html`,xhtml:`html`,xml:`html`,svg:`html`,css:`css`,js:`js`,jsx:`js`,mjs:`js`,cjs:`js`,ts:`js`,tsx:`js`,mts:`js`,cts:`js`,javascript:`js`,typescript:`js`,ecmascript:`js`,json:`json`,jsonc:`json`,json5:`json`};function J(e,t){let n=(e||``).trim().toLowerCase();if(n&&q[n])return q[n];if(t){let e=t.lastIndexOf(`.`);if(e>=0){let n=t.slice(e+1).toLowerCase();if(q[n])return q[n]}}return null}function de(e,t){let n=[],r=0,i=0,a=t=>{t>i&&n.push({type:`plain`,value:e.slice(i,t)})};for(;r<e.length;){let o=!1;for(let s of t){s.re.lastIndex=r;let t=s.re.exec(e);if(t&&t.index===r&&t[0].length>0){a(r);let e=s.map?s.map(t[0]):s.type;n.push({type:e,value:t[0]}),r+=t[0].length,i=r,o=!0;break}}o||(r+=1)}return a(e.length),n}const fe=/* @__PURE__ */ new Set(/* @__PURE__ */ `abstract.any.as.async.await.boolean.break.case.catch.class.const.continue.debugger.declare.default.delete.do.else.enum.export.extends.false.finally.for.from.function.get.if.implements.import.in.instanceof.interface.keyof.let.namespace.never.new.null.number.object.of.private.protected.public.readonly.return.satisfies.set.static.string.super.switch.symbol.this.throw.true.try.type.typeof.undefined.unknown.var.void.while.yield`.split(`.`)),pe=[{type:`comment`,re:/\/\/[^\n]*/y},{type:`comment`,re:/\/\*[\s\S]*?\*\//y},{type:`string`,re:/`(?:\\[\s\S]|[^\\`])*`/y},{type:`string`,re:/"(?:\\.|[^"\\\n])*"/y},{type:`string`,re:/'(?:\\.|[^'\\\n])*'/y},{type:`number`,re:/0[xX][0-9a-fA-F]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:`plain`,re:/[A-Za-z_$][\w$]*/y,map:e=>fe.has(e)?`keyword`:`plain`}];function me(e){return de(e,pe)}const Y=[{type:`string`,re:/"(?:\\.|[^"\\])*"/y},{type:`number`,re:/-?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:`plain`,re:/[A-Za-z_]\w*/y,map:e=>e===`true`||e===`false`||e===`null`?`keyword`:`plain`}];function he(e){let t=de(e,Y);for(let e=0;e<t.length;e+=1){if(t[e].type!==`string`)continue;let n=e+1;for(;n<t.length&&t[n].value.trim()===``;)n+=1;let r=t[n];r&&r.value.replace(/^\s*/,``).startsWith(`:`)&&(t[e].type=`property`)}return t}const ge=[{type:`comment`,re:/\/\*[\s\S]*?\*\//y},{type:`string`,re:/"(?:\\.|[^"\\\n])*"/y},{type:`string`,re:/'(?:\\.|[^'\\\n])*'/y},{type:`keyword`,re:/@[A-Za-z-]+/y},{type:`number`,re:/#[0-9a-fA-F]{3,8}\b/y},{type:`number`,re:/-?(?:\d+\.?\d*|\.\d+)(?:[a-z%]+)?/y},{type:`plain`,re:/[A-Za-z_-][\w-]*/y}];function _e(e){let t=de(e,ge),n=``;for(let e=0;e<t.length;e+=1){let r=t[e];if(r.type===`plain`&&/^[A-Za-z_-][\w-]*$/.test(r.value)){let i=e+1;for(;i<t.length&&t[i].value.trim()===``;)i+=1;let a=t[i];a&&a.value.replace(/^\s*/,``).startsWith(`:`)&&(n===``||n===`{`||n===`}`||n===`;`||n===`,`)&&(r.type=`property`)}let i=r.value.replace(/\s+$/,``);i&&(n=i[i.length-1])}return t}const X=[{type:`tag`,re:/<\/?\s*[A-Za-z][\w:-]*/y},{type:`string`,re:/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/y},{type:`attr`,re:/[A-Za-z_:@][\w:.-]*(?=\s*=)/y},{type:`attr`,re:/[A-Za-z_:@][\w:.-]*/y},{type:`tag`,re:/\/?>/y}];function Z(e){let t=[],n=(e,n)=>{n&&t.push({type:e,value:n})},r=e.length,i=0;for(;i<r;){if(e.startsWith(`<!--`,i)){let t=e.indexOf(`-->`,i+4),a=t===-1?r:t+3;n(`comment`,e.slice(i,a)),i=a;continue}if(e[i]===`<`&&e[i+1]===`!`){let t=e.indexOf(`>`,i),a=t===-1?r:t+1;n(`tag`,e.slice(i,a)),i=a;continue}if(e[i]===`<`&&/[A-Za-z/]/.test(e[i+1]||``)){let n=e.indexOf(`>`,i),a=n===-1?r:n+1,o=e.slice(i,a);for(let e of de(o,X))t.push(e);i=a;let s=/^<\s*(script|style)\b/i.exec(o);if(s&&!/\/>\s*$/.test(o)){let n=s[1].toLowerCase(),a=RegExp(`</\\s*`+n+`\\s*>`,`i`).exec(e.slice(i)),o=a?i+a.index:r,c=e.slice(i,o),l=n===`script`?me(c):_e(c);for(let e of l)t.push(e);i=o}continue}let a=e.indexOf(`<`,i);if(a===i)n(`plain`,e[i]),i+=1;else{let t=a===-1?r:a;n(`plain`,e.slice(i,t)),i=t}}return t}function ve(e,t){switch(t){case`html`:return Z(e);case`css`:return _e(e);case`js`:return me(e);case`json`:return he(e)}}function ye(e){let t=p(),n=m(`span`,`persona-code-line`),r=(e,t)=>{if(!t)return;let r=K[e];if(r){let e=m(`span`,r);e.textContent=t,n.appendChild(e)}else n.appendChild(document.createTextNode(t))};for(let i of e){let e=i.value.split(`
|
|
5
5
|
`);for(let a=0;a<e.length;a+=1)a>0&&(t.appendChild(n),t.appendChild(document.createTextNode(`
|
|
6
6
|
`)),n=m(`span`,`persona-code-line`)),r(i.type,e[a])}return n.childNodes.length>0?t.appendChild(n):t.lastChild||t.appendChild(n),t}function be(e,t,n){let r=e.length<=15e4?J(t,n):null;return ye(r?ve(e,r):[{type:`plain`,value:e}])}function xe(e){if(!e)return``;if(e.artifactType===`markdown`){let t=e.markdown??``;return e.file?E(t):t}return JSON.stringify({component:e.component,props:e.props},null,2)}let Se=!1;function Ce(e){return`persona-artifact-vt-`+((e||`artifact`).replace(/[^A-Za-z0-9_-]/g,`-`).replace(/^-+/,``)||`artifact`)}function we(e,t,n,r){let i=typeof document<`u`?document.startViewTransition:void 0,a=!1;try{a=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}catch{a=!1}if(t!==`auto`||!e||typeof i!=`function`||Se||a){r();return}Se=!0;let o=Ce(n);e.style.setProperty(`view-transition-name`,o);let s=()=>{Se=!1,e.style.removeProperty(`view-transition-name`)};try{i.call(document,()=>{r()}).finished.then(s,s)}catch{s(),r()}}function Q(e){let t=m(`div`,`persona-rounded-lg persona-border persona-border-persona-border persona-p-3 persona-text-persona-primary`),n=m(`div`,`persona-font-semibold persona-text-sm persona-mb-2`);n.textContent=e.component?`Component: ${e.component}`:`Component`;let r=m(`pre`,`persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-overflow-x-auto`);return r.textContent=JSON.stringify(e.props??{},null,2),t.appendChild(n),t.appendChild(r),t}function Te(e){if(e===!1)return{enabled:!1,delayMs:0,minVisibleMs:0,timeoutMs:0,injectReadySignal:!1,label:`Starting preview...`,labelDelayMs:2e3};let t=e&&typeof e==`object`?e:void 0;return{enabled:!0,delayMs:t?.delayMs??200,minVisibleMs:t?.minVisibleMs??300,timeoutMs:t?.timeoutMs??8e3,injectReadySignal:t?.injectReadySignal!==!1,label:t?.label===!1?!1:t?.label??`Starting preview...`,labelDelayMs:t?.labelDelayMs??2e3,renderIndicator:t?.renderIndicator}}function Ee(){try{if(typeof crypto<`u`&&crypto.getRandomValues){let e=/* @__PURE__ */ new Uint32Array(2);return crypto.getRandomValues(e),e[0].toString(36)+e[1].toString(36)}}catch{}return Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2)}function De(e){return`
|
|
7
|
-
<script>(function(){var d=false;var t=`+JSON.stringify(e)+`;function r(){if(d)return;d=true;try{parent.postMessage({persona:'artifact-preview-ready',token:t},'*');}catch(e){}}function s(){if(typeof requestAnimationFrame==='function'){requestAnimationFrame(function(){requestAnimationFrame(r);});}setTimeout(r,150);}if(document.readyState==='complete'){s();}else{window.addEventListener('load',s);}})();<\/script>`}function Oe(e,t,n){let r=m(`div`,`persona-artifact-frame-loading`);if(n.renderIndicator)try{let i=n.renderIndicator({artifactId:e,config:t});if(i)return r.appendChild(i),{el:r,revealLabel:()=>{}}}catch{}let i=m(`div`,`persona-artifact-frame-loading-indicator`);i.appendChild(V());let a=null;return n.label!==!1&&(a=m(`div`,`persona-artifact-frame-loading-text`),a.textContent=n.label,i.appendChild(a)),r.appendChild(i),{el:r,revealLabel:()=>{a&&a.classList.add(`persona-artifact-frame-loading-text--visible`)}}}function ke(e,t,n,r,i,a){let o=null,s=0,c=!1,l=/* @__PURE__ */ new Set,u=()=>{l.forEach(e=>clearTimeout(e)),l.clear()},d=(e,t)=>{let n=setTimeout(()=>{l.delete(n),typeof document<`u`&&e()},t);l.add(n)},f=()=>{o&&o.parentElement&&o.remove(),o=null},p=()=>{if(o||c)return;let t=Oe(i,a,r);o=t.el,e.appendChild(o),s=Date.now(),r.label!==!1&&d(t.revealLabel,r.labelDelayMs)},m=()=>{o&&(o.classList.add(`persona-artifact-frame-loading--out`),d(f,220))},h=()=>{n===null?t.removeEventListener(`load`,v):typeof window<`u`&&window.removeEventListener(`message`,_)},g=()=>{if(c||(c=!0,h(),u(),!o))return;let e=Math.max(0,r.minVisibleMs-(Date.now()-s));e>0?d(m,e):m()};function _(e){if(n===null)return;let r=e.data;r&&r.persona===`artifact-preview-ready`&&r.token===n&&e.source===t.contentWindow&&g()}function v(){let e=e=>{typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>e()):setTimeout(e,0)};e(()=>e(()=>g()))}return d(p,r.delayMs),d(g,r.timeoutMs),n===null?t.addEventListener(`load`,v):typeof window<`u`&&window.addEventListener(`message`,_),()=>{c=!0,u(),h(),f()}}function Ae(e,t){let{config:r}=t,c=t.registry??M()??a,l=t.bodyLayout,d=r.markdown?u(r.markdown):null,f=s(r.sanitize),p=e,h=!1,g=e=>{let t=o()!==null;d&&!t&&!h&&(h=!0,n(()=>z(p)));let r=d?d(e):i(e);return d&&t&&f?f(r):r},_=m(`div`,`persona-artifact-preview-body`),v=null,y=null,ee=null,b=()=>{ee&&=(ee(),null),v=null,y=null},x=null,S=null,C=null,w=!1,T=()=>{x=null,S=null,C=null,w=!1},D=null,O=null,k=()=>{D=null,O=null},A=0,j=e=>typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>e()):setTimeout(e,0),N=e=>e.scrollHeight-e.clientHeight-e.scrollTop<=40,P=e=>{if(!l)return;let t=e.scrollHeight-e.clientHeight>1,n=e.scrollHeight-e.clientHeight-e.scrollTop;e.classList.toggle(`persona-artifact-fade-top`,l.fadeTop&&t&&e.scrollTop>1),e.classList.toggle(`persona-artifact-fade-bottom`,l.fadeBottom&&t&&n>1)},F=e=>{A||=j(()=>{A=0,e.scrollTop=e.scrollHeight,P(e)})},I=(e,t,n,r)=>{let i=!!l,a=n.id+`|`+(i?`w`:`p`);if(!x||C!==a||x.parentElement!==_){b(),k(),_.replaceChildren();let e=m(`pre`,`persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-break-words persona-text-persona-primary persona-code-pre`),t=m(`code`,`persona-code`);if(e.appendChild(t),i){let t=m(`div`,`persona-artifact-source-window`);if(t.appendChild(e),_.appendChild(t),l?.overflow!==`clip`&&typeof t.addEventListener==`function`){let e=()=>t.scrollHeight-t.clientHeight>1;t.addEventListener(`scroll`,()=>{N(t)&&(w=!1),P(t)},{passive:!0}),t.addEventListener(`wheel`,t=>{e()&&t.deltaY<0&&(w=!0)},{passive:!0}),t.addEventListener(`touchmove`,()=>{e()&&(w=!0)},{passive:!0})}x=t}else _.appendChild(e),x=e;S=t,C=a}let o=i?x:null;o&&(o.classList.toggle(`persona-artifact-source-window--fixed`,r),o.classList.toggle(`persona-artifact-source-window--clip`,r&&l?.overflow===`clip`));let s=!o||N(o);if(S.replaceChildren(be(e,t?.language,t?.path)),o){let e=n.status!==`complete`;r&&e&&l?.followOutput&&!w&&s?F(o):e||(w=!1),P(o)}},L=e=>{b(),T(),k(),_.replaceChildren();let t=m(`div`,`persona-text-sm persona-leading-relaxed persona-markdown-bubble`);t.innerHTML=g(e),_.appendChild(t)},ne=e=>{let t=e.id,n=r.features?.artifacts,i=W(e,n,`status-body`);if(D&&O===t&&D.parentElement===_){let e=D.querySelector(`.persona-artifact-status-view-text`);e&&G(e,i,n);return}b(),T(),_.replaceChildren();let a=m(`div`,`persona-artifact-status-view`),o=m(`div`,`persona-artifact-status-view-text`);G(o,i,n),a.appendChild(o),_.appendChild(a),D=a,O=t},R,re=()=>{let e=R;R=void 0,e?.controller.abort();try{e?.handle.destroy?.()}catch(e){console.error(`[AgentWidget] Artifact component cleanup failed:`,e)}},z=e=>{re(),p=e;let n=t.resolveViewMode?.(e)??l?.viewMode??`rendered`,i=e.artifactType===`markdown`?e.file:void 0,a=e.status!==`complete`;a||ce(e.id);let o=a?l?.streamingHeight:l?.completeHeight,s=!!l&&typeof o==`number`;if(l?.streamingView===`status`&&a){ne(e);return}if(i){let t=E(e.markdown??``),o=te(i),c=r.features?.artifacts?.filePreview?.enabled!==!1;if(!a&&n===`rendered`&&c&&(o===`html`||o===`svg`)){let n=e.id+`\0`+t;if(v&&y===n&&v.parentElement===_)return;T(),k(),b(),_.replaceChildren();let i=r.features?.artifacts?.filePreview,a=i?.iframeSandbox??`allow-scripts`;!i?.dangerouslyAllowSameOrigin&&a.includes(`allow-same-origin`)&&(console.warn(`[AgentWidget] Stripped allow-same-origin from filePreview.iframeSandbox: it lets artifact content run with the page origin. Set filePreview.dangerouslyAllowSameOrigin to keep it.`),a=a.split(/\s+/).filter(e=>e&&e!==`allow-same-origin`).join(` `));let o=Te(i?.loading),s=m(`div`,`persona-artifact-frame`),c=m(`iframe`,`persona-artifact-iframe`);c.setAttribute(`sandbox`,a),c.setAttribute(`data-artifact-id`,e.id);let l=null;o.enabled&&o.injectReadySignal?(l=Ee(),c.srcdoc=t+De(l)):c.srcdoc=t,s.appendChild(c),_.appendChild(s),o.enabled&&(ee=ke(s,c,l,o,e.id,r)),v=s,y=n;return}if(b(),!a&&o===`markdown`&&n===`rendered`){L(t);return}I(t,{language:i.language,path:i.path},e,s);return}if(e.artifactType===`markdown`){if(n===`source`){b(),I(e.markdown??``,void 0,e,s);return}L(e.markdown??``);return}b(),T(),k(),_.replaceChildren();let u=e.component?r.components&&Object.prototype.hasOwnProperty.call(r.components,e.component)?r.components[e.component]:c.get(e.component):void 0;if(u){let t={id:e.id,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString()},n=new AbortController,i={message:t,config:r,updateProps:()=>{},signal:n.signal};try{let t=u(e.props??{},i);if(t){let e=`element`in t?t:{element:t};R={controller:n,handle:e},_.appendChild(e.element);return}}catch{}n.abort()}_.appendChild(Q(e))};return z(e),{el:_,update(e){z(e)},destroy(){re(),b()}}}function je(e,t){let n=t.orientation??`horizontal`,r=n===`vertical`?`ArrowUp`:`ArrowLeft`,i=n===`vertical`?`ArrowDown`:`ArrowRight`;e.setAttribute(`role`,`tablist`);let a=[],o=!1,s=e=>{typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`,inline:`nearest`})},c=e=>{let t=e;return a.findIndex(e=>e===t||e.contains(t))},l=e=>{let n=c(e.target);if(n<0)return;let o=n;if(e.key===i)o=Math.min(n+1,a.length-1);else if(e.key===r)o=Math.max(n-1,0);else if(e.key===`Home`)o=0;else if(e.key===`End`)o=a.length-1;else return;e.preventDefault(),o!==n&&t.onSelect(o)},u=e=>{let t=c(e.target);t>=0&&s(a[t])};return e.addEventListener(`keydown`,l),e.addEventListener(`focusin`,u),{beforeRender(){o=typeof document<`u`&&e.contains(document.activeElement)},render(e,t){if(a=e,e.forEach((e,n)=>{e.setAttribute(`role`,`tab`);let r=n===t;e.setAttribute(`aria-selected`,r?`true`:`false`),e.tabIndex=r||t<0&&n===0?0:-1}),o){let n=(t>=0?e[t]:void 0)??e[0];n&&typeof n.focus==`function`&&(s(n),n.focus())}},destroy(){e.removeEventListener(`keydown`,l),e.removeEventListener(`focusin`,u)}}}function Me(e,n){let i=e.features?.artifacts?.layout,a=(i?.toolbarPreset??`default`)===`document`,o=i?.toolbarTitle??`Artifacts`,s=i?.closeButtonLabel??`Close`,c=e=>({start:e===!1?!1:typeof e==`object`&&e?e.start!==!1:!0,end:e===!1?!1:typeof e==`object`&&e?e.end!==!1:!0}),{start:l,end:u}=c(i?.tabFade),d=typeof document<`u`?m(`div`,`persona-artifact-backdrop persona-fixed persona-inset-0 persona-z-[55] persona-bg-black/30 persona-hidden md:persona-hidden`):null,f=()=>{d?.classList.add(`persona-hidden`),p.classList.remove(`persona-artifact-drawer-open`),R?.closeMenu()};d&&d.addEventListener(`click`,()=>{f(),n.onDismiss?.()});let p=m(`aside`,`persona-artifact-pane persona-flex persona-flex-col persona-min-h-0 persona-min-w-0 persona-bg-persona-surface persona-text-persona-primary persona-border-l persona-border-persona-border`);C(p),p.setAttribute(`data-persona-theme-zone`,`artifact-pane`),a&&p.classList.add(`persona-artifact-pane-document`);let h=m(`div`,`persona-artifact-toolbar persona-flex persona-items-center persona-justify-between persona-gap-2 persona-px-2 persona-py-2 persona-border-b persona-border-persona-border persona-shrink-0`);h.setAttribute(`data-persona-theme-zone`,`artifact-toolbar`),a&&h.classList.add(`persona-artifact-toolbar-document`);let g=m(`span`,`persona-text-xs persona-font-medium persona-truncate`);g.textContent=o;let _=F({icon:`x`,label:s});_.addEventListener(`click`,()=>{f(),n.onDismiss?.()});let ee=`rendered`,S=ne({items:[{id:`rendered`,icon:`eye`,label:`Rendered view`,className:a?`persona-artifact-doc-icon-btn persona-artifact-view-btn`:void 0},{id:`source`,icon:`code-xml`,label:`Source`,className:a?`persona-artifact-doc-icon-btn persona-artifact-code-btn`:void 0}],selectedId:`rendered`,className:`persona-artifact-toggle-group persona-shrink-0`,onSelect:e=>{ee=e===`source`?`source`:`rendered`,Me()}}),T=m(`div`,`persona-flex persona-items-center persona-gap-1 persona-shrink-0`),E=i?.documentToolbarShowCopyLabel===!0,A=i?.documentToolbarShowCopyChevron===!0,j=i?.documentToolbarCopyMenuItems,M=!!(A&&j&&j.length>0),N=null,P,R=null;if(a&&(E||A)&&!M){if(P=E?I({icon:`copy`,label:`Copy`,iconSize:14,className:`persona-artifact-doc-copy-btn`}):F({icon:`copy`,label:`Copy`,className:`persona-artifact-doc-copy-btn`}),A){let e=t(y,14,`currentColor`,2);e&&P.appendChild(e)}}else a&&M?(R=L({label:`Copy`,icon:`copy`,iconSize:14,iconOnly:!E,primaryClassName:`persona-artifact-doc-copy-btn`,chevronLabel:`More copy options`,chevronClassName:`persona-artifact-doc-copy-menu-chevron persona-artifact-doc-icon-btn`,menuItems:(j??[]).map(e=>({id:e.id,label:e.label})),position:`bottom-right`,portal:()=>p.closest(`[data-persona-root]`)??document.body,onSelect:e=>void ue(e)}),N=R.element,P=R.primaryButton):a?P=F({icon:`copy`,label:`Copy`,className:`persona-artifact-doc-icon-btn`}):(P=F({icon:`copy`,label:`Copy`}),i?.showCopyButton!==!0&&P.classList.add(`persona-hidden`));let B=F(a?{icon:`refresh-cw`,label:`Refresh`,className:`persona-artifact-doc-icon-btn`}:{icon:`refresh-cw`,label:`Refresh`});i?.onDocumentToolbarRefresh||B.classList.add(`persona-hidden`);let V=F(a?{icon:`x`,label:s,className:`persona-artifact-doc-icon-btn`}:{icon:`x`,label:s}),H=F({icon:`maximize`,label:`Expand artifacts panel`,className:`persona-artifact-expand-btn`+(a?` persona-artifact-doc-icon-btn`:``),onClick:()=>n.onToggleExpand?.()});i?.showExpandToggle!==!0&&H.classList.add(`persona-hidden`);let U=m(`div`,`persona-flex persona-items-center persona-gap-1 persona-shrink-0 persona-artifact-toolbar-custom-actions`),ie=e.features?.artifacts?.toolbarActions??[],ae=()=>{let e=X.find(e=>e.id===Z)??X[X.length-1],t=e?.id??null,n=e?.artifactType===`markdown`?e.markdown??``:``,r=e?JSON.stringify({component:e.component,props:e.props},null,2):``,{filename:i,mime:a,content:o}=O({title:e?.title,markdown:e?.markdown??``,file:e?.file});return{markdown:n,jsonPayload:r,id:t,file:e?.file,suggestedFilename:i,mime:a,content:o}},oe=()=>{let{suggestedFilename:e,mime:t,content:n}=ae();n&&k({filename:e,mime:t,content:n})},se=e=>{let{id:t,...n}=ae();return{actionId:e,artifactId:t,...n}},ce=async()=>{let e=X.find(e=>e.id===Z)??X[X.length-1];try{return await navigator.clipboard.writeText(xe(e)),!0}catch{return!1}},le=null,W=()=>{le?.();let e=P.querySelector(`svg`),n=Number(e?.getAttribute(`width`))||16,r=t(v,n,`currentColor`,2);if(!e||!r)return;e.replaceWith(r);let i=P.querySelector(`span`);i&&(i.textContent=`Copied`);let a=setTimeout(()=>le?.(),2e3);le=()=>{clearTimeout(a),r.replaceWith(e),i&&(i.textContent=`Copy`),le=null}};P.addEventListener(`click`,async()=>{let e=i?.onDocumentToolbarCopyMenuSelect;if(e&&M)try{if(await e(se(`primary`))===!1){await ce()&&W();return}W()}catch{}else await ce()&&W()});async function ue(e){let t=i?.onDocumentToolbarCopyMenuSelect;try{if(t&&await t(se(e))!==!1)return;if(e===`download`){oe();return}let{markdown:n,jsonPayload:r}=ae();e===`markdown`||e===`md`?await navigator.clipboard.writeText(n):e===`json`||e===`source`?await navigator.clipboard.writeText(r):await navigator.clipboard.writeText(n||r),W()}catch{}}B.addEventListener(`click`,async()=>{try{await i?.onDocumentToolbarRefresh?.()}catch{}Me()}),V.addEventListener(`click`,()=>{f(),n.onDismiss?.()});let G=m(`span`,`persona-min-w-0 persona-flex-1 persona-text-xs persona-font-medium persona-text-persona-primary persona-truncate persona-text-center md:persona-text-left`);if(a)h.replaceChildren(),N?T.append(N,B,V):T.append(P,B,V),T.insertBefore(U,V),T.insertBefore(H,V),h.append(S.element,G,T);else{let e=m(`div`,`persona-flex persona-items-center persona-gap-1 persona-shrink-0`);e.append(P,U,H,_),h.appendChild(g),h.appendChild(e)}let K=m(`div`,`persona-artifact-list persona-shrink-0 persona-flex persona-gap-1 persona-overflow-x-auto persona-p-2 persona-border-b persona-border-persona-border`),q=e.features?.artifacts?.renderTabBar,J=m(`div`,`persona-artifact-tab-custom persona-shrink-0 persona-border-b persona-border-persona-border persona-hidden`),de=je(K,{onSelect:e=>n.onSelect(X[e].id)}),fe=e=>{let t=e.scrollWidth-e.clientWidth,n=t>1,r=Math.abs(e.scrollLeft);e.classList.toggle(`persona-artifact-tab-fade-start`,l&&n&&r>1),e.classList.toggle(`persona-artifact-tab-fade-end`,u&&n&&r<t-1)},pe=0,me=()=>{if(pe)return;let e=()=>{pe=0,fe(K)};pe=typeof requestAnimationFrame==`function`?requestAnimationFrame(e):setTimeout(e,0)};K.addEventListener(`scroll`,()=>me(),{passive:!0}),typeof ResizeObserver<`u`&&new ResizeObserver(()=>fe(K)).observe(K);let Y=m(`div`,`persona-artifact-content persona-flex-1 persona-min-h-0 persona-overflow-y-auto persona-p-3`),he=()=>{Y.scrollLeft=0},ge=()=>{typeof requestAnimationFrame==`function`?requestAnimationFrame(he):setTimeout(he,0)},_e=e=>{let t=e.features?.artifacts?.layout,n=r(e,t?.panePadding,`pane.padding`)??``;for(let e of[h,K,J])e.style.paddingLeft=n,e.style.paddingRight=n;Y.style.padding=n;let i=r(e,t?.tabFadeSize,`tab.fadeSize`);i?K.style.setProperty(`--persona-artifact-tab-fade-size`,i):K.style.removeProperty(`--persona-artifact-tab-fade-size`)};_e(e),p.appendChild(h),p.appendChild(K),p.appendChild(J),p.appendChild(Y);let X=[],Z=null,ve=!1,ye=!1,be=!0,Se=!1,Ce=null,we=``,Q=null,Te=!1,Ee=e=>e.artifactType===`markdown`&&e.file||a?ee:`rendered`,De=e=>{a||(e&&!Te?(h.insertBefore(S.element,g),Te=!0):!e&&Te&&(S.element.remove(),Te=!1))},Oe=()=>Z&&X.find(e=>e.id===Z)||X[X.length-1],ke=()=>{let e=z(Oe());if(!e){U.replaceChildren();return}let t=ie.filter(t=>t.visible===void 0||t.visible(e)).map(e=>re(e,{documentChrome:a,onClick:()=>{let t=z(Oe());if(t)try{Promise.resolve(e.onClick(t)).catch(()=>{})}catch{}}}));U.replaceChildren(...t)},Me=()=>{ke();let t=a&&X.length<=1,r=!!q;if(K.classList.toggle(`persona-hidden`,t||r),J.classList.toggle(`persona-hidden`,t||!r),r&&q){let e=X.map(e=>e.id).join(`|`)+` `+(Z??``);if(e!==we){we=e;let t=q({records:X,selectedId:Z,onSelect:n.onSelect});J.firstElementChild!==t&&J.replaceChildren(t)}}else{de.beforeRender(),K.replaceChildren();let e=[],t=-1;for(let[r,i]of X.entries()){let a=m(`button`,`persona-artifact-tab persona-shrink-0 persona-rounded-lg persona-px-2 persona-py-1 persona-text-xs persona-border persona-border-transparent persona-text-persona-primary`);a.type=`button`;let o=i.artifactType===`markdown`?i.file:void 0,s=o?w(o.path):i.title||i.id.slice(0,8),c=o?.path||i.title||s;a.textContent=s,a.title=c,a.setAttribute(`aria-label`,c),i.id===Z&&(a.classList.add(`persona-bg-persona-container`,`persona-border-persona-border`),t=r),a.addEventListener(`click`,()=>n.onSelect(i.id)),K.appendChild(a),e.push(a)}if(de.render(e,t),t>=0&&Z!==Ce){Ce=Z;let n=e[t];typeof n.scrollIntoView==`function`&&n.scrollIntoView({block:`nearest`,inline:`nearest`})}fe(K)}let i=Z&&X.find(e=>e.id===Z)||X[X.length-1];if(!i){Y.replaceChildren(),Q?.destroy(),Q=null,De(!1);return}let s=i.artifactType===`markdown`?i.file:void 0;if(De(!!s&&te(s)!==`other`),a){let e=s?D(s):i.artifactType===`markdown`?`MD`:i.component??`Component`,t=(i.title||`Document`).trim(),n=s?w(s.path):t.replace(/\s*·\s*MD\s*$/i,``).trim()||`Document`;G.textContent=`${n} · ${e}`}else g.textContent=s?w(s.path):o;Q?(Q.el.parentElement!==Y&&Y.replaceChildren(Q.el),Q.update(i)):(Q=Ae(i,{config:e,resolveViewMode:Ee}),Y.replaceChildren(Q.el)),Y.classList.toggle(`persona-artifact-content-flush`,!!Y.querySelector(`.persona-code-pre`))},Ne=()=>{let e=X.length>0;if(p.classList.toggle(`persona-hidden`,!e),d){let t=((typeof p.closest==`function`?p.closest(`[data-persona-root]`):null)?.classList.contains(`persona-artifact-narrow-host`)??!1)||typeof window<`u`&&window.matchMedia(`(max-width: 640px)`).matches;e&&t&&ve?(d.classList.remove(`persona-hidden`),p.classList.add(`persona-artifact-drawer-open`)):(d.classList.add(`persona-hidden`),p.classList.remove(`persona-artifact-drawer-open`))}},Pe=()=>{Se=!1,Me(),Ne()};return{setStyleConfig:_e,element:p,backdrop:d,update(e){let t=e.selectedId??e.artifacts[e.artifacts.length-1]?.id??null,n=t!==Z;X=e.artifacts,Z=t,X.length>0&&(ve=!0),Se=!0,be&&Pe(),n&&he()},setMobileOpen(e){ve=e,!e&&d?(d.classList.add(`persona-hidden`),p.classList.remove(`persona-artifact-drawer-open`)):Ne()},setExpanded(e){e!==ye&&(ye=e,ge());let n=t(e?x:b,16,`currentColor`,2);n&&H.replaceChildren(n);let r=e?`Collapse artifacts panel`:`Expand artifacts panel`;H.setAttribute(`aria-label`,r),H.title=r},setExpandToggleVisible(e){H.classList.toggle(`persona-hidden`,!e)},setCopyButtonVisible(e){a||P.classList.toggle(`persona-hidden`,!e)},setRefreshButtonVisible(e){B.classList.toggle(`persona-hidden`,!e)},setCustomActions(e){ie=e,ke()},setTabFade(e){let t=c(e);(t.start!==l||t.end!==u)&&(l=t.start,u=t.end,fe(K))},setRenderTabBar(e){e!==q&&(q=e,we=``,Me())},setVisible(e){e!==be&&(be=e,e&&Se&&Pe())},destroy(){Q?.destroy(),Q=null}}}function Ne(e,t){let n=e.file&&typeof e.file==`object`&&!Array.isArray(e.file)?e.file:void 0,r=typeof e.title==`string`&&e.title?e.title:`Untitled artifact`,i=n?w(n.path):r,a=typeof e.artifactId==`string`?e.artifactId:``,o=e.status===`streaming`?`streaming`:`complete`,s=typeof e.artifactType==`string`?e.artifactType:`markdown`,c=e.presentation&&typeof e.presentation==`object`&&!Array.isArray(e.presentation)?e.presentation:void 0,l=n?D(n):s===`component`?`Component`:`Document`,u=document.createElement(`div`);C(u),u.className=`persona-artifact-card persona-flex persona-w-full persona-max-w-full persona-items-center persona-gap-3 persona-px-4 persona-py-3`,u.tabIndex=0,u.setAttribute(`role`,`button`),u.setAttribute(`aria-label`,`Open ${i} in artifact panel`),a&&u.setAttribute(`data-open-artifact`,a);let d=document.createElement(`div`);d.className=`persona-flex persona-h-10 persona-w-10 persona-flex-shrink-0 persona-items-center persona-justify-center persona-rounded-lg`,d.style.border=`1px solid var(--persona-border, #e5e7eb)`,d.style.color=`var(--persona-muted, #9ca3af)`,d.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>`;let f=document.createElement(`div`);f.className=`persona-min-w-0 persona-flex-1 persona-flex persona-flex-col persona-gap-0.5`;let p=document.createElement(`div`);p.className=`persona-truncate persona-text-sm persona-font-medium`,p.style.color=`var(--persona-text, #1f2937)`,p.textContent=i;let m=document.createElement(`div`);if(m.className=`persona-text-xs persona-flex persona-items-center persona-gap-1.5`,m.style.color=`var(--persona-muted, #9ca3af)`,o===`streaming`){let i=t?.config?.features?.artifacts;G(m,W({id:a,artifactType:s===`component`?`component`:`markdown`,title:r,status:`streaming`,...typeof e.markdown==`string`?{markdown:e.markdown}:{},...n?{file:n}:{},...c?{presentation:c}:{}},i,`card`),i)}else a&&ce(a),m.textContent=l;if(f.append(p,m),u.append(d,f),o===`complete`){let r=t?.config?.features?.artifacts?.cardActions;if(r&&r.length>0){let t={artifactId:a||null,title:i,artifactType:s,markdown:typeof e.markdown==`string`?e.markdown:void 0,file:n};for(let e of r)try{if(e.visible===void 0||e.visible(t)){let t=re(e);t.setAttribute(`data-artifact-custom-action`,e.id),t.className=`${t.className} persona-flex-shrink-0`,u.append(t)}}catch{}}let o=I({label:`Download`,className:`persona-flex-shrink-0`});o.title=`Download ${i}`,o.setAttribute(`data-download-artifact`,a),u.append(o)}return u}const Pe=(e,t)=>{if(t?.config?.future?.v5Defaults===!0&&t.config.features?.artifacts?.enabled!==!0){let e=document.createElement(`div`);return e.hidden=!0,e}let n=t?.config?.features?.artifacts?.renderCard;if(n){let r=typeof e.title==`string`&&e.title?e.title:`Untitled artifact`,i=typeof e.artifactId==`string`?e.artifactId:``,a=e.status===`streaming`?`streaming`:`complete`,o=n({artifact:{artifactId:i,title:r,artifactType:typeof e.artifactType==`string`?e.artifactType:`markdown`,status:a},config:t.config,defaultRenderer:()=>Ne(e,t)});if(o)return o}return Ne(e,t)},$=/* @__PURE__ */ new WeakMap;function Fe(e,t,n){if(t.length===0)return;let r=new Map(t.map(e=>[e.id,e]));e.querySelectorAll(`[data-artifact-inline]`).forEach(e=>{let t=$.get(e);if(!t)return;let i=r.get(e.getAttribute(`data-artifact-inline`)??``);i&&t(i,n)})}function Ie(e){return $.has(e)}function Le(e){let t=typeof e.artifactId==`string`?e.artifactId:``,n=typeof e.title==`string`&&e.title?e.title:void 0,r=e.status===`streaming`?`streaming`:`complete`,i=e.presentation&&typeof e.presentation==`object`&&!Array.isArray(e.presentation)?e.presentation:void 0;if(e.artifactType===`component`){let a=e.componentProps,o=a&&typeof a==`object`&&!Array.isArray(a)?a:{};return{id:t,artifactType:`component`,title:n,status:r,component:typeof e.component==`string`?e.component:``,props:o,...i?{presentation:i}:{}}}let a=e.file&&typeof e.file==`object`&&!Array.isArray(e.file)?e.file:void 0;return{id:t,artifactType:`markdown`,title:n,status:r,markdown:typeof e.markdown==`string`?e.markdown:``,...a?{file:a}:{},...i?{presentation:i}:{}}}function Re(e){let t=e.artifactType===`markdown`?e.file:void 0;return{title:t?w(t.path):e.title&&e.title.trim()?e.title:`Untitled artifact`,typeLabel:t?D(t):e.artifactType===`component`?`Component`:`Document`}}function ze(e){let t={artifactId:e.id,title:e.title??``,status:e.status,artifactType:e.artifactType};return e.artifactType===`markdown`&&(typeof e.markdown==`string`&&(t.markdown=e.markdown),e.file&&(t.file=e.file)),t}function Be(e,t,n){let{swap:r,onSettled:i}=n,a=!1;try{a=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}catch{a=!1}if(!t||!e.isConnected||a||typeof e.animate!=`function`){r(),i();return}e.style.height=`${t}px`,e.style.overflow=`hidden`;let o=[];for(let t of Array.from(e.children))t instanceof HTMLElement&&o.push(t.animate([{opacity:1},{opacity:0}],{duration:180,easing:`ease-out`,fill:`forwards`}));window.setTimeout(()=>{for(let e of o)e.cancel();r();let n=()=>{e.style.removeProperty(`height`),e.style.removeProperty(`overflow`)};if(!e.isConnected){n(),i();return}e.style.height=`auto`;let a=e.getBoundingClientRect().height;if(e.style.height=`${t}px`,!a||Math.abs(a-t)<1){n(),i();return}let s=Math.abs(t-a),c=Math.round(Math.min(500,Math.max(300,240+s*.8))),l=Math.round(c*.35),u=e.firstElementChild instanceof HTMLElement?e.firstElementChild:null,d=u?u.animate([{opacity:0},{opacity:1}],{duration:240,delay:l,easing:`ease-out`,fill:`backwards`}):null,f=e.animate([{height:`${t}px`},{height:`${a}px`}],{duration:c,easing:`cubic-bezier(0.2, 0, 0, 1)`});e.style.height=`${a}px`;let p=!1,m=()=>{p||(p=!0,n(),i())};Promise.allSettled([f.finished,d?.finished].filter(Boolean)).then(m),window.setTimeout(m,Math.max(c,l+240)+120)},180)}function Ve(e){let t=e?.inlineChrome;if(t===!1)return{chromeEnabled:!1,showCopy:!1,showExpand:!1,showViewToggle:!1};let n=typeof t==`object`?t:void 0;return{chromeEnabled:!0,showCopy:n?.showCopy!==!1,showExpand:n?.showExpand!==!1,showViewToggle:n?.showViewToggle!==!1}}const He=`--persona-artifact-inline-body-height`;function Ue(e){let t=e?.inlineBody,n=t?.streamingView===`status`?`status`:`source`,r=t?.viewMode===`source`?`source`:`rendered`,i=320,a=320,o=t?.height;typeof o==`number`||o===`auto`?(i=o,a=o):o&&typeof o==`object`&&(i=o.streaming??320,a=o.complete??320);let s=t?.overflow===`clip`?`clip`:`scroll`,c=s!==`clip`&&t?.followOutput!==!1,l,u,d=t?.fadeMask;d===!0?(l=!0,u=!0):d===!1?(l=!1,u=!1):d&&typeof d==`object`?(l=d.top===!0,u=d.bottom===!0):s===`clip`?(l=!1,u=!0):(l=!0,u=!0);let f=t?.transition===`none`?`none`:`auto`,p=t?.completeDisplay===`card`?`card`:`inline`;return{streamingView:n,viewMode:r,streamingHeight:i,completeHeight:a,followOutput:c,overflow:s,fadeTop:l,fadeBottom:u,transition:f,completeDisplay:p}}function We(e,n){let r=Le(e),i=n.config?.features?.artifacts,{chromeEnabled:a,showCopy:o,showExpand:s,showViewToggle:c}=Ve(i),l=i?.inlineActions??[],u=Ue(i),d=u.completeDisplay===`card`,f=null,p=r,h=m(`div`,`persona-artifact-inline persona-w-full persona-max-w-full`);C(h),h.setAttribute(`data-persona-theme-zone`,`artifact-inline`),r.id&&h.setAttribute(`data-artifact-inline`,r.id);let g=e=>Pe(ze(e),n),_=null,v=e=>{_?.destroy(),_=null,h.classList.add(`persona-artifact-inline--card`),h.style.removeProperty(He),h.replaceChildren(g(e)),$.set(h,e=>{h.replaceChildren(g(e))})};if(d&&r.status===`complete`)return v(r),h;let y=Ae(r,{config:n.config,bodyLayout:u,resolveViewMode:()=>f??u.viewMode});_=y;let b=m(`div`,`persona-artifact-inline-body`);b.appendChild(y.el);let x=e=>{let t=e.status!==`complete`,n=t?u.streamingHeight:u.completeHeight,r=typeof n==`number`;r?h.style.setProperty(He,`${n}px`):h.style.removeProperty(He);let i=!!y.el.querySelector(`.persona-code-pre`),a=!!y.el.querySelector(`iframe, .persona-artifact-source-window--fixed, .persona-artifact-status-view`);b.classList.toggle(`persona-artifact-content-flush`,i),b.classList.toggle(`persona-artifact-inline-body--sized`,r&&a),b.classList.toggle(`persona-artifact-inline-body--cap`,!t&&!a&&typeof u.completeHeight==`number`)},S=r.status,w=(e,t)=>{S!==`complete`&&e.status===`complete`?(typeof u.completeHeight==`number`?h.style.setProperty(He,`${u.completeHeight}px`):h.style.removeProperty(He),we(b,t?.suppressTransition?`none`:u.transition,e.id,()=>{y.update(e),x(e)})):y.update(e),x(e),S=e.status};x(r);let T=u.overflow===`clip`&&s&&!!r.id;if(T&&(b.setAttribute(`data-expand-artifact-inline`,r.id),b.setAttribute(`role`,`button`),b.setAttribute(`tabindex`,`0`),b.classList.add(`persona-cursor-pointer`),b.setAttribute(`aria-label`,`Open ${Re(r).title} in panel`)),!a)return h.appendChild(b),$.set(h,w),h;let E=m(`div`,`persona-artifact-inline-chrome`);E.setAttribute(`data-persona-theme-zone`,`artifact-inline-chrome`);let D=m(`div`,`persona-artifact-inline-chrome-lead`),O=m(`span`,`persona-flex persona-items-center persona-flex-shrink-0`),k=t(ee,16,`currentColor`,2);k&&O.appendChild(k);let A=m(`span`,`persona-artifact-inline-title persona-truncate persona-min-w-0`),j=m(`span`,`persona-artifact-inline-type`);D.append(O,A,j);let M=m(`div`,`persona-artifact-inline-chrome-actions`),N=m(`span`,`persona-flex persona-items-center persona-gap-1`),P=()=>f??u.viewMode,I=c?ne({items:[{id:`rendered`,icon:`eye`,label:`Rendered view`,className:`persona-artifact-doc-icon-btn persona-artifact-view-btn`},{id:`source`,icon:`code-xml`,label:`Source`,className:`persona-artifact-doc-icon-btn persona-artifact-code-btn`}],selectedId:P(),className:`persona-artifact-toggle-group persona-flex-shrink-0`,onSelect:e=>{let t=e===`source`?`source`:`rendered`;t!==P()&&(f=t,y.update(p),x(p))}}):null,L=o?F({icon:`copy`,label:`Copy`,className:`persona-artifact-doc-icon-btn persona-flex-shrink-0`}):null;L&&r.id&&L.setAttribute(`data-copy-artifact`,r.id);let R=s?F({icon:`maximize`,label:`Open in panel`,className:`persona-artifact-doc-icon-btn persona-flex-shrink-0`}):null;R&&r.id&&R.setAttribute(`data-expand-artifact-inline`,r.id),M.appendChild(N),I&&M.appendChild(I.element),L&&M.appendChild(L),R&&M.appendChild(R),E.append(D,M),h.append(E,b);let B=e=>{let{title:t,typeLabel:n}=Re(e);A.textContent=t,A.title=t,T&&b.setAttribute(`aria-label`,`Open ${t} in panel`);let r=e.status!==`complete`;if(r){j.classList.contains(`persona-artifact-inline-status`)||(j.className=`persona-artifact-inline-status`,j.removeAttribute(`data-preserve-animation`),j.replaceChildren());let t=W(e,i,`inline-chrome`);G(j,t,i)}else ce(e.id),j.className=`persona-artifact-inline-type`,j.removeAttribute(`data-preserve-animation`),j.replaceChildren(),j.textContent=n;if(L&&L.classList.toggle(`persona-hidden`,r),I){let t=e.artifactType===`markdown`?e.file:void 0,n=!1;if(!r&&t&&u.viewMode!==`source`){let e=te(t);e===`markdown`?n=!0:(e===`html`||e===`svg`)&&(n=i?.filePreview?.enabled!==!1)}I.element.classList.toggle(`persona-hidden`,!n),I.setSelected(P())}if(N.replaceChildren(),!r&&l.length>0){let t=z(e);if(t)for(let e of l)try{if(e.visible===void 0||e.visible(t)){let t=re(e,{documentChrome:!0});t.setAttribute(`data-artifact-custom-action`,e.id),t.classList.add(`persona-flex-shrink-0`),N.appendChild(t)}}catch{}}};return B(r),$.set(h,(e,t)=>{if(d&&S!==`complete`&&e.status===`complete`){let t=h.isConnected?h.getBoundingClientRect().height:0;S=`complete`;let n=e,r=!1,i=e=>{n=e,r=!0};$.set(h,i),Be(h,t,{swap:()=>{v(n),r=!1,$.set(h,i)},onSettled:()=>{r?v(n):$.set(h,e=>{h.replaceChildren(g(e))})}})}else(e.status!==`complete`||e.id!==p.id)&&(f=null),p=e,w(e,t),B(e)}),h}const Ge=(e,t)=>{if(t?.config?.future?.v5Defaults===!0&&t.config.features?.artifacts?.enabled!==!0){let e=document.createElement(`div`);return e.hidden=!0,e}let n=t?.config?.features?.artifacts?.renderInline;if(n){let r=typeof e.title==`string`&&e.title?e.title:`Untitled artifact`,i=typeof e.artifactId==`string`?e.artifactId:``,a=e.status===`streaming`?`streaming`:`complete`,o=n({artifact:{artifactId:i,title:r,artifactType:typeof e.artifactType==`string`?e.artifactType:`markdown`,status:a},config:t.config,defaultRenderer:()=>We(e,t)});if(o)return o}return We(e,t)};function Ke(e){let{mount:t,splitRoot:n,pane:r}=e,i=null,a=null,o=null;function s(){o?.(),o=null}let u=()=>{if(!n||!i)return;let e=t.classList.contains(`persona-artifact-welded-split`),r=t.ownerDocument.defaultView??window,a=r.innerWidth<=640;if(!e||t.classList.contains(`persona-artifact-narrow-host`)||a){i.style.removeProperty(`position`),i.style.removeProperty(`left`),i.style.removeProperty(`top`),i.style.removeProperty(`bottom`),i.style.removeProperty(`width`),i.style.removeProperty(`z-index`);return}let o=n.firstElementChild;if(!o||o===i)return;i.style.position=`absolute`,i.style.top=`0`,i.style.bottom=`0`,i.style.width=`10px`,i.style.zIndex=`5`;let s=l(n,r),c=o.offsetWidth+s/2-5;i.style.left=`${Math.max(0,c)}px`};return{update:()=>{let d=e.getConfig();if(n&&r){if(d.features?.artifacts?.layout?.resizable!==!0)a?.(),a=null,s(),i&&=(i.remove(),null),r.element.style.removeProperty(`width`),r.element.style.removeProperty(`maxWidth`);else{if(!i){let d=m(`div`,`persona-artifact-split-handle persona-shrink-0 persona-h-full`);d.setAttribute(`role`,`separator`),d.setAttribute(`aria-orientation`,`vertical`),d.setAttribute(`aria-label`,`Resize artifacts panel`),d.tabIndex=0;let f=t.ownerDocument,p=f.defaultView??window,h=i=>{if(!r||i.button!==0||t.classList.contains(`persona-artifact-narrow-host`)||t.classList.contains(`persona-artifact-expanded`)||p.innerWidth<=640)return;i.preventDefault(),s();let a=i.clientX,m=r.element.getBoundingClientRect().width,h=e.getConfig().features?.artifacts?.layout,g=i=>{let o=n.getBoundingClientRect().width,s=t.classList.contains(`persona-artifact-welded-split`),f=l(n,p),g=s?0:d.getBoundingClientRect().width||6,_=m-(i.clientX-a),v=c(_,o,f,g,h?.resizableMinWidth,h?.resizableMaxWidth,e.chatMinWidth());r.element.style.width=`${v}px`,r.element.style.maxWidth=`none`,u()},_=()=>{f.removeEventListener(`pointermove`,g),f.removeEventListener(`pointerup`,_),f.removeEventListener(`pointercancel`,_),o=null;try{d.releasePointerCapture(i.pointerId)}catch{}};o=_,f.addEventListener(`pointermove`,g),f.addEventListener(`pointerup`,_),f.addEventListener(`pointercancel`,_);try{d.setPointerCapture(i.pointerId)}catch{}};d.addEventListener(`pointerdown`,h),i=d,n.insertBefore(d,r.element),a=()=>{d.removeEventListener(`pointerdown`,h)}}if(i){let t=e.isVisible();i.classList.toggle(`persona-hidden`,!t),u()}}}},destroy(){a?.(),a=null,s(),i&&=(i.remove(),null)}}}export{Pe as PersonaArtifactCard,Ge as PersonaArtifactInline,d as __provideMarkdownParsers,e as __setIconsExtraLoader,xe as artifactCopyText,Me as createArtifactPane,Ke as createArtifactResizer,O as downloadInfoFor,C as ensureArtifactStyles,Ie as hasLiveInlineArtifactBlock,j as initArtifactsUi,k as triggerArtifactDownload,Fe as updateInlineArtifactBlocks};
|
|
7
|
+
<script>(function(){var d=false;var t=`+JSON.stringify(e)+`;function r(){if(d)return;d=true;try{parent.postMessage({persona:'artifact-preview-ready',token:t},'*');}catch(e){}}function s(){if(typeof requestAnimationFrame==='function'){requestAnimationFrame(function(){requestAnimationFrame(r);});}setTimeout(r,150);}if(document.readyState==='complete'){s();}else{window.addEventListener('load',s);}})();<\/script>`}function Oe(e,t,n){let r=m(`div`,`persona-artifact-frame-loading`);if(n.renderIndicator)try{let i=n.renderIndicator({artifactId:e,config:t});if(i)return r.appendChild(i),{el:r,revealLabel:()=>{}}}catch{}let i=m(`div`,`persona-artifact-frame-loading-indicator`);i.appendChild(V());let a=null;return n.label!==!1&&(a=m(`div`,`persona-artifact-frame-loading-text`),a.textContent=n.label,i.appendChild(a)),r.appendChild(i),{el:r,revealLabel:()=>{a&&a.classList.add(`persona-artifact-frame-loading-text--visible`)}}}function ke(e,t,n,r,i,a){let o=null,s=0,c=!1,l=/* @__PURE__ */ new Set,u=()=>{l.forEach(e=>clearTimeout(e)),l.clear()},d=(e,t)=>{let n=setTimeout(()=>{l.delete(n),typeof document<`u`&&e()},t);l.add(n)},f=()=>{o&&o.parentElement&&o.remove(),o=null},p=()=>{if(o||c)return;let t=Oe(i,a,r);o=t.el,e.appendChild(o),s=Date.now(),r.label!==!1&&d(t.revealLabel,r.labelDelayMs)},m=()=>{o&&(o.classList.add(`persona-artifact-frame-loading--out`),d(f,220))},h=()=>{n===null?t.removeEventListener(`load`,v):typeof window<`u`&&window.removeEventListener(`message`,_)},g=()=>{if(c||(c=!0,h(),u(),!o))return;let e=Math.max(0,r.minVisibleMs-(Date.now()-s));e>0?d(m,e):m()};function _(e){if(n===null)return;let r=e.data;r&&r.persona===`artifact-preview-ready`&&r.token===n&&e.source===t.contentWindow&&g()}function v(){let e=e=>{typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>e()):setTimeout(e,0)};e(()=>e(()=>g()))}return d(p,r.delayMs),d(g,r.timeoutMs),n===null?t.addEventListener(`load`,v):typeof window<`u`&&window.addEventListener(`message`,_),()=>{c=!0,u(),h(),f()}}function Ae(e,t){let{config:n}=t,o=t.registry??M()??s,c=t.bodyLayout,d=n.markdown?l(n.markdown):null,f=a(n.sanitize),p=e,h=!1,g=e=>{let t=i()!==null;d&&!t&&!h&&(h=!0,u(()=>z(p)));let n=d?d(e):r(e);return d&&t&&f?f(n):n},_=m(`div`,`persona-artifact-preview-body`),v=null,y=null,ee=null,b=()=>{ee&&=(ee(),null),v=null,y=null},x=null,S=null,C=null,w=!1,T=()=>{x=null,S=null,C=null,w=!1},D=null,O=null,k=()=>{D=null,O=null},A=0,j=e=>typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>e()):setTimeout(e,0),N=e=>e.scrollHeight-e.clientHeight-e.scrollTop<=40,P=e=>{if(!c)return;let t=e.scrollHeight-e.clientHeight>1,n=e.scrollHeight-e.clientHeight-e.scrollTop;e.classList.toggle(`persona-artifact-fade-top`,c.fadeTop&&t&&e.scrollTop>1),e.classList.toggle(`persona-artifact-fade-bottom`,c.fadeBottom&&t&&n>1)},F=e=>{A||=j(()=>{A=0,e.scrollTop=e.scrollHeight,P(e)})},I=(e,t,n,r)=>{let i=!!c,a=n.id+`|`+(i?`w`:`p`);if(!x||C!==a||x.parentElement!==_){b(),k(),_.replaceChildren();let e=m(`pre`,`persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-break-words persona-text-persona-primary persona-code-pre`),t=m(`code`,`persona-code`);if(e.appendChild(t),i){let t=m(`div`,`persona-artifact-source-window`);if(t.appendChild(e),_.appendChild(t),c?.overflow!==`clip`&&typeof t.addEventListener==`function`){let e=()=>t.scrollHeight-t.clientHeight>1;t.addEventListener(`scroll`,()=>{N(t)&&(w=!1),P(t)},{passive:!0}),t.addEventListener(`wheel`,t=>{e()&&t.deltaY<0&&(w=!0)},{passive:!0}),t.addEventListener(`touchmove`,()=>{e()&&(w=!0)},{passive:!0})}x=t}else _.appendChild(e),x=e;S=t,C=a}let o=i?x:null;o&&(o.classList.toggle(`persona-artifact-source-window--fixed`,r),o.classList.toggle(`persona-artifact-source-window--clip`,r&&c?.overflow===`clip`));let s=!o||N(o);if(S.replaceChildren(be(e,t?.language,t?.path)),o){let e=n.status!==`complete`;r&&e&&c?.followOutput&&!w&&s?F(o):e||(w=!1),P(o)}},L=e=>{b(),T(),k(),_.replaceChildren();let t=m(`div`,`persona-text-sm persona-leading-relaxed persona-markdown-bubble`);t.innerHTML=g(e),_.appendChild(t)},ne=e=>{let t=e.id,r=n.features?.artifacts,i=W(e,r,`status-body`);if(D&&O===t&&D.parentElement===_){let e=D.querySelector(`.persona-artifact-status-view-text`);e&&G(e,i,r);return}b(),T(),_.replaceChildren();let a=m(`div`,`persona-artifact-status-view`),o=m(`div`,`persona-artifact-status-view-text`);G(o,i,r),a.appendChild(o),_.appendChild(a),D=a,O=t},R,re=()=>{let e=R;R=void 0,e?.controller.abort();try{e?.handle.destroy?.()}catch(e){console.error(`[AgentWidget] Artifact component cleanup failed:`,e)}},z=e=>{re(),p=e;let r=t.resolveViewMode?.(e)??c?.viewMode??`rendered`,i=e.artifactType===`markdown`?e.file:void 0,a=e.status!==`complete`;a||ce(e.id);let s=a?c?.streamingHeight:c?.completeHeight,l=!!c&&typeof s==`number`;if(c?.streamingView===`status`&&a){ne(e);return}if(i){let t=E(e.markdown??``),o=te(i),s=n.features?.artifacts?.filePreview?.enabled!==!1;if(!a&&r===`rendered`&&s&&(o===`html`||o===`svg`)){let r=e.id+`\0`+t;if(v&&y===r&&v.parentElement===_)return;T(),k(),b(),_.replaceChildren();let i=n.features?.artifacts?.filePreview,a=i?.iframeSandbox??`allow-scripts`;!i?.dangerouslyAllowSameOrigin&&a.includes(`allow-same-origin`)&&(console.warn(`[AgentWidget] Stripped allow-same-origin from filePreview.iframeSandbox: it lets artifact content run with the page origin. Set filePreview.dangerouslyAllowSameOrigin to keep it.`),a=a.split(/\s+/).filter(e=>e&&e!==`allow-same-origin`).join(` `));let o=Te(i?.loading),s=m(`div`,`persona-artifact-frame`),c=m(`iframe`,`persona-artifact-iframe`);c.setAttribute(`sandbox`,a),c.setAttribute(`data-artifact-id`,e.id);let l=null;o.enabled&&o.injectReadySignal?(l=Ee(),c.srcdoc=t+De(l)):c.srcdoc=t,s.appendChild(c),_.appendChild(s),o.enabled&&(ee=ke(s,c,l,o,e.id,n)),v=s,y=r;return}if(b(),!a&&o===`markdown`&&r===`rendered`){L(t);return}I(t,{language:i.language,path:i.path},e,l);return}if(e.artifactType===`markdown`){if(r===`source`){b(),I(e.markdown??``,void 0,e,l);return}L(e.markdown??``);return}b(),T(),k(),_.replaceChildren();let u=e.component?n.components&&Object.prototype.hasOwnProperty.call(n.components,e.component)?n.components[e.component]:o.get(e.component):void 0;if(u){let t={id:e.id,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString()},r=new AbortController,i={message:t,config:n,updateProps:()=>{},signal:r.signal};try{let t=u(e.props??{},i);if(t){let e=`element`in t?t:{element:t};R={controller:r,handle:e},_.appendChild(e.element);return}}catch{}r.abort()}_.appendChild(Q(e))};return z(e),{el:_,update(e){z(e)},destroy(){re(),b()}}}function je(e,t){let n=t.orientation??`horizontal`,r=n===`vertical`?`ArrowUp`:`ArrowLeft`,i=n===`vertical`?`ArrowDown`:`ArrowRight`;e.setAttribute(`role`,`tablist`);let a=[],o=!1,s=e=>{typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`,inline:`nearest`})},c=e=>{let t=e;return a.findIndex(e=>e===t||e.contains(t))},l=e=>{let n=c(e.target);if(n<0)return;let o=n;if(e.key===i)o=Math.min(n+1,a.length-1);else if(e.key===r)o=Math.max(n-1,0);else if(e.key===`Home`)o=0;else if(e.key===`End`)o=a.length-1;else return;e.preventDefault(),o!==n&&t.onSelect(o)},u=e=>{let t=c(e.target);t>=0&&s(a[t])};return e.addEventListener(`keydown`,l),e.addEventListener(`focusin`,u),{beforeRender(){o=typeof document<`u`&&e.contains(document.activeElement)},render(e,t){if(a=e,e.forEach((e,n)=>{e.setAttribute(`role`,`tab`);let r=n===t;e.setAttribute(`aria-selected`,r?`true`:`false`),e.tabIndex=r||t<0&&n===0?0:-1}),o){let n=(t>=0?e[t]:void 0)??e[0];n&&typeof n.focus==`function`&&(s(n),n.focus())}},destroy(){e.removeEventListener(`keydown`,l),e.removeEventListener(`focusin`,u)}}}function Me(e,r){let i=e.features?.artifacts?.layout,a=(i?.toolbarPreset??`default`)===`document`,o=i?.toolbarTitle??`Artifacts`,s=i?.closeButtonLabel??`Close`,c=e=>({start:e===!1?!1:typeof e==`object`&&e?e.start!==!1:!0,end:e===!1?!1:typeof e==`object`&&e?e.end!==!1:!0}),{start:l,end:u}=c(i?.tabFade),d=typeof document<`u`?m(`div`,`persona-artifact-backdrop persona-fixed persona-inset-0 persona-z-[55] persona-bg-black/30 persona-hidden md:persona-hidden`):null,f=()=>{d?.classList.add(`persona-hidden`),p.classList.remove(`persona-artifact-drawer-open`),R?.closeMenu()};d&&d.addEventListener(`click`,()=>{f(),r.onDismiss?.()});let p=m(`aside`,`persona-artifact-pane persona-flex persona-flex-col persona-min-h-0 persona-min-w-0 persona-bg-persona-surface persona-text-persona-primary persona-border-l persona-border-persona-border`);C(p),p.setAttribute(`data-persona-theme-zone`,`artifact-pane`),a&&p.classList.add(`persona-artifact-pane-document`);let h=m(`div`,`persona-artifact-toolbar persona-flex persona-items-center persona-justify-between persona-gap-2 persona-px-2 persona-py-2 persona-border-b persona-border-persona-border persona-shrink-0`);h.setAttribute(`data-persona-theme-zone`,`artifact-toolbar`),a&&h.classList.add(`persona-artifact-toolbar-document`);let g=m(`span`,`persona-text-xs persona-font-medium persona-truncate`);g.textContent=o;let _=F({icon:`x`,label:s});_.addEventListener(`click`,()=>{f(),r.onDismiss?.()});let ee=`rendered`,S=ne({items:[{id:`rendered`,icon:`eye`,label:`Rendered view`,className:a?`persona-artifact-doc-icon-btn persona-artifact-view-btn`:void 0},{id:`source`,icon:`code-xml`,label:`Source`,className:a?`persona-artifact-doc-icon-btn persona-artifact-code-btn`:void 0}],selectedId:`rendered`,className:`persona-artifact-toggle-group persona-shrink-0`,onSelect:e=>{ee=e===`source`?`source`:`rendered`,Me()}}),T=m(`div`,`persona-flex persona-items-center persona-gap-1 persona-shrink-0`),E=i?.documentToolbarShowCopyLabel===!0,A=i?.documentToolbarShowCopyChevron===!0,j=i?.documentToolbarCopyMenuItems,M=!!(A&&j&&j.length>0),N=null,P,R=null;if(a&&(E||A)&&!M){if(P=E?I({icon:`copy`,label:`Copy`,iconSize:14,className:`persona-artifact-doc-copy-btn`}):F({icon:`copy`,label:`Copy`,className:`persona-artifact-doc-copy-btn`}),A){let e=t(y,14,`currentColor`,2);e&&P.appendChild(e)}}else a&&M?(R=L({label:`Copy`,icon:`copy`,iconSize:14,iconOnly:!E,primaryClassName:`persona-artifact-doc-copy-btn`,chevronLabel:`More copy options`,chevronClassName:`persona-artifact-doc-copy-menu-chevron persona-artifact-doc-icon-btn`,menuItems:(j??[]).map(e=>({id:e.id,label:e.label})),position:`bottom-right`,portal:()=>p.closest(`[data-persona-root]`)??document.body,onSelect:e=>void ue(e)}),N=R.element,P=R.primaryButton):a?P=F({icon:`copy`,label:`Copy`,className:`persona-artifact-doc-icon-btn`}):(P=F({icon:`copy`,label:`Copy`}),i?.showCopyButton!==!0&&P.classList.add(`persona-hidden`));let B=F(a?{icon:`refresh-cw`,label:`Refresh`,className:`persona-artifact-doc-icon-btn`}:{icon:`refresh-cw`,label:`Refresh`});i?.onDocumentToolbarRefresh||B.classList.add(`persona-hidden`);let V=F(a?{icon:`x`,label:s,className:`persona-artifact-doc-icon-btn`}:{icon:`x`,label:s}),H=F({icon:`maximize`,label:`Expand artifacts panel`,className:`persona-artifact-expand-btn`+(a?` persona-artifact-doc-icon-btn`:``),onClick:()=>r.onToggleExpand?.()});i?.showExpandToggle!==!0&&H.classList.add(`persona-hidden`);let U=m(`div`,`persona-flex persona-items-center persona-gap-1 persona-shrink-0 persona-artifact-toolbar-custom-actions`),ie=e.features?.artifacts?.toolbarActions??[],ae=()=>{let e=X.find(e=>e.id===Z)??X[X.length-1],t=e?.id??null,n=e?.artifactType===`markdown`?e.markdown??``:``,r=e?JSON.stringify({component:e.component,props:e.props},null,2):``,{filename:i,mime:a,content:o}=O({title:e?.title,markdown:e?.markdown??``,file:e?.file});return{markdown:n,jsonPayload:r,id:t,file:e?.file,suggestedFilename:i,mime:a,content:o}},oe=()=>{let{suggestedFilename:e,mime:t,content:n}=ae();n&&k({filename:e,mime:t,content:n})},se=e=>{let{id:t,...n}=ae();return{actionId:e,artifactId:t,...n}},ce=async()=>{let e=X.find(e=>e.id===Z)??X[X.length-1];try{return await navigator.clipboard.writeText(xe(e)),!0}catch{return!1}},le=null,W=()=>{le?.();let e=P.querySelector(`svg`),n=Number(e?.getAttribute(`width`))||16,r=t(v,n,`currentColor`,2);if(!e||!r)return;e.replaceWith(r);let i=P.querySelector(`span`);i&&(i.textContent=`Copied`);let a=setTimeout(()=>le?.(),2e3);le=()=>{clearTimeout(a),r.replaceWith(e),i&&(i.textContent=`Copy`),le=null}};P.addEventListener(`click`,async()=>{let e=i?.onDocumentToolbarCopyMenuSelect;if(e&&M)try{if(await e(se(`primary`))===!1){await ce()&&W();return}W()}catch{}else await ce()&&W()});async function ue(e){let t=i?.onDocumentToolbarCopyMenuSelect;try{if(t&&await t(se(e))!==!1)return;if(e===`download`){oe();return}let{markdown:n,jsonPayload:r}=ae();e===`markdown`||e===`md`?await navigator.clipboard.writeText(n):e===`json`||e===`source`?await navigator.clipboard.writeText(r):await navigator.clipboard.writeText(n||r),W()}catch{}}B.addEventListener(`click`,async()=>{try{await i?.onDocumentToolbarRefresh?.()}catch{}Me()}),V.addEventListener(`click`,()=>{f(),r.onDismiss?.()});let G=m(`span`,`persona-min-w-0 persona-flex-1 persona-text-xs persona-font-medium persona-text-persona-primary persona-truncate persona-text-center md:persona-text-left`);if(a)h.replaceChildren(),N?T.append(N,B,V):T.append(P,B,V),T.insertBefore(U,V),T.insertBefore(H,V),h.append(S.element,G,T);else{let e=m(`div`,`persona-flex persona-items-center persona-gap-1 persona-shrink-0`);e.append(P,U,H,_),h.appendChild(g),h.appendChild(e)}let K=m(`div`,`persona-artifact-list persona-shrink-0 persona-flex persona-gap-1 persona-overflow-x-auto persona-p-2 persona-border-b persona-border-persona-border`),q=e.features?.artifacts?.renderTabBar,J=m(`div`,`persona-artifact-tab-custom persona-shrink-0 persona-border-b persona-border-persona-border persona-hidden`),de=je(K,{onSelect:e=>r.onSelect(X[e].id)}),fe=e=>{let t=e.scrollWidth-e.clientWidth,n=t>1,r=Math.abs(e.scrollLeft);e.classList.toggle(`persona-artifact-tab-fade-start`,l&&n&&r>1),e.classList.toggle(`persona-artifact-tab-fade-end`,u&&n&&r<t-1)},pe=0,me=()=>{if(pe)return;let e=()=>{pe=0,fe(K)};pe=typeof requestAnimationFrame==`function`?requestAnimationFrame(e):setTimeout(e,0)};K.addEventListener(`scroll`,()=>me(),{passive:!0}),typeof ResizeObserver<`u`&&new ResizeObserver(()=>fe(K)).observe(K);let Y=m(`div`,`persona-artifact-content persona-flex-1 persona-min-h-0 persona-overflow-y-auto persona-p-3`),he=()=>{Y.scrollLeft=0},ge=()=>{typeof requestAnimationFrame==`function`?requestAnimationFrame(he):setTimeout(he,0)},_e=e=>{let t=e.features?.artifacts?.layout,r=n(e,t?.panePadding,`pane.padding`)??``;for(let e of[h,K,J])e.style.paddingLeft=r,e.style.paddingRight=r;Y.style.padding=r;let i=n(e,t?.tabFadeSize,`tab.fadeSize`);i?K.style.setProperty(`--persona-artifact-tab-fade-size`,i):K.style.removeProperty(`--persona-artifact-tab-fade-size`)};_e(e),p.appendChild(h),p.appendChild(K),p.appendChild(J),p.appendChild(Y);let X=[],Z=null,ve=!1,ye=!1,be=!0,Se=!1,Ce=null,we=``,Q=null,Te=!1,Ee=e=>e.artifactType===`markdown`&&e.file||a?ee:`rendered`,De=e=>{a||(e&&!Te?(h.insertBefore(S.element,g),Te=!0):!e&&Te&&(S.element.remove(),Te=!1))},Oe=()=>Z&&X.find(e=>e.id===Z)||X[X.length-1],ke=()=>{let e=z(Oe());if(!e){U.replaceChildren();return}let t=ie.filter(t=>t.visible===void 0||t.visible(e)).map(e=>re(e,{documentChrome:a,onClick:()=>{let t=z(Oe());if(t)try{Promise.resolve(e.onClick(t)).catch(()=>{})}catch{}}}));U.replaceChildren(...t)},Me=()=>{ke();let t=a&&X.length<=1,n=!!q;if(K.classList.toggle(`persona-hidden`,t||n),J.classList.toggle(`persona-hidden`,t||!n),n&&q){let e=X.map(e=>e.id).join(`|`)+` `+(Z??``);if(e!==we){we=e;let t=q({records:X,selectedId:Z,onSelect:r.onSelect});J.firstElementChild!==t&&J.replaceChildren(t)}}else{de.beforeRender(),K.replaceChildren();let e=[],t=-1;for(let[n,i]of X.entries()){let a=m(`button`,`persona-artifact-tab persona-shrink-0 persona-rounded-lg persona-px-2 persona-py-1 persona-text-xs persona-border persona-border-transparent persona-text-persona-primary`);a.type=`button`;let o=i.artifactType===`markdown`?i.file:void 0,s=o?w(o.path):i.title||i.id.slice(0,8),c=o?.path||i.title||s;a.textContent=s,a.title=c,a.setAttribute(`aria-label`,c),i.id===Z&&(a.classList.add(`persona-bg-persona-container`,`persona-border-persona-border`),t=n),a.addEventListener(`click`,()=>r.onSelect(i.id)),K.appendChild(a),e.push(a)}if(de.render(e,t),t>=0&&Z!==Ce){Ce=Z;let n=e[t];typeof n.scrollIntoView==`function`&&n.scrollIntoView({block:`nearest`,inline:`nearest`})}fe(K)}let i=Z&&X.find(e=>e.id===Z)||X[X.length-1];if(!i){Y.replaceChildren(),Q?.destroy(),Q=null,De(!1);return}let s=i.artifactType===`markdown`?i.file:void 0;if(De(!!s&&te(s)!==`other`),a){let e=s?D(s):i.artifactType===`markdown`?`MD`:i.component??`Component`,t=(i.title||`Document`).trim(),n=s?w(s.path):t.replace(/\s*·\s*MD\s*$/i,``).trim()||`Document`;G.textContent=`${n} · ${e}`}else g.textContent=s?w(s.path):o;Q?(Q.el.parentElement!==Y&&Y.replaceChildren(Q.el),Q.update(i)):(Q=Ae(i,{config:e,resolveViewMode:Ee}),Y.replaceChildren(Q.el)),Y.classList.toggle(`persona-artifact-content-flush`,!!Y.querySelector(`.persona-code-pre`))},Ne=()=>{let e=X.length>0;if(p.classList.toggle(`persona-hidden`,!e),d){let t=((typeof p.closest==`function`?p.closest(`[data-persona-root]`):null)?.classList.contains(`persona-artifact-narrow-host`)??!1)||typeof window<`u`&&window.matchMedia(`(max-width: 640px)`).matches;e&&t&&ve?(d.classList.remove(`persona-hidden`),p.classList.add(`persona-artifact-drawer-open`)):(d.classList.add(`persona-hidden`),p.classList.remove(`persona-artifact-drawer-open`))}},Pe=()=>{Se=!1,Me(),Ne()};return{setStyleConfig:_e,element:p,backdrop:d,update(e){let t=e.selectedId??e.artifacts[e.artifacts.length-1]?.id??null,n=t!==Z;X=e.artifacts,Z=t,X.length>0&&(ve=!0),Se=!0,be&&Pe(),n&&he()},setMobileOpen(e){ve=e,!e&&d?(d.classList.add(`persona-hidden`),p.classList.remove(`persona-artifact-drawer-open`)):Ne()},setExpanded(e){e!==ye&&(ye=e,ge());let n=t(e?x:b,16,`currentColor`,2);n&&H.replaceChildren(n);let r=e?`Collapse artifacts panel`:`Expand artifacts panel`;H.setAttribute(`aria-label`,r),H.title=r},setExpandToggleVisible(e){H.classList.toggle(`persona-hidden`,!e)},setCopyButtonVisible(e){a||P.classList.toggle(`persona-hidden`,!e)},setRefreshButtonVisible(e){B.classList.toggle(`persona-hidden`,!e)},setCustomActions(e){ie=e,ke()},setTabFade(e){let t=c(e);(t.start!==l||t.end!==u)&&(l=t.start,u=t.end,fe(K))},setRenderTabBar(e){e!==q&&(q=e,we=``,Me())},setVisible(e){e!==be&&(be=e,e&&Se&&Pe())},destroy(){Q?.destroy(),Q=null}}}function Ne(e,t){let n=e.file&&typeof e.file==`object`&&!Array.isArray(e.file)?e.file:void 0,r=typeof e.title==`string`&&e.title?e.title:`Untitled artifact`,i=n?w(n.path):r,a=typeof e.artifactId==`string`?e.artifactId:``,o=e.status===`streaming`?`streaming`:`complete`,s=typeof e.artifactType==`string`?e.artifactType:`markdown`,c=e.presentation&&typeof e.presentation==`object`&&!Array.isArray(e.presentation)?e.presentation:void 0,l=n?D(n):s===`component`?`Component`:`Document`,u=document.createElement(`div`);C(u),u.className=`persona-artifact-card persona-flex persona-w-full persona-max-w-full persona-items-center persona-gap-3 persona-px-4 persona-py-3`,u.tabIndex=0,u.setAttribute(`role`,`button`),u.setAttribute(`aria-label`,`Open ${i} in artifact panel`),a&&u.setAttribute(`data-open-artifact`,a);let d=document.createElement(`div`);d.className=`persona-flex persona-h-10 persona-w-10 persona-flex-shrink-0 persona-items-center persona-justify-center persona-rounded-lg`,d.style.border=`1px solid var(--persona-border, #e5e7eb)`,d.style.color=`var(--persona-muted, #9ca3af)`,d.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>`;let f=document.createElement(`div`);f.className=`persona-min-w-0 persona-flex-1 persona-flex persona-flex-col persona-gap-0.5`;let p=document.createElement(`div`);p.className=`persona-truncate persona-text-sm persona-font-medium`,p.style.color=`var(--persona-text, #1f2937)`,p.textContent=i;let m=document.createElement(`div`);if(m.className=`persona-text-xs persona-flex persona-items-center persona-gap-1.5`,m.style.color=`var(--persona-muted, #9ca3af)`,o===`streaming`){let i=t?.config?.features?.artifacts;G(m,W({id:a,artifactType:s===`component`?`component`:`markdown`,title:r,status:`streaming`,...typeof e.markdown==`string`?{markdown:e.markdown}:{},...n?{file:n}:{},...c?{presentation:c}:{}},i,`card`),i)}else a&&ce(a),m.textContent=l;if(f.append(p,m),u.append(d,f),o===`complete`){let r=t?.config?.features?.artifacts?.cardActions;if(r&&r.length>0){let t={artifactId:a||null,title:i,artifactType:s,markdown:typeof e.markdown==`string`?e.markdown:void 0,file:n};for(let e of r)try{if(e.visible===void 0||e.visible(t)){let t=re(e);t.setAttribute(`data-artifact-custom-action`,e.id),t.className=`${t.className} persona-flex-shrink-0`,u.append(t)}}catch{}}let o=I({label:`Download`,className:`persona-flex-shrink-0`});o.title=`Download ${i}`,o.setAttribute(`data-download-artifact`,a),u.append(o)}return u}const Pe=(e,t)=>{if(t?.config?.future?.v5Defaults===!0&&t.config.features?.artifacts?.enabled!==!0){let e=document.createElement(`div`);return e.hidden=!0,e}let n=t?.config?.features?.artifacts?.renderCard;if(n){let r=typeof e.title==`string`&&e.title?e.title:`Untitled artifact`,i=typeof e.artifactId==`string`?e.artifactId:``,a=e.status===`streaming`?`streaming`:`complete`,o=n({artifact:{artifactId:i,title:r,artifactType:typeof e.artifactType==`string`?e.artifactType:`markdown`,status:a},config:t.config,defaultRenderer:()=>Ne(e,t)});if(o)return o}return Ne(e,t)},$=/* @__PURE__ */ new WeakMap;function Fe(e,t,n){if(t.length===0)return;let r=new Map(t.map(e=>[e.id,e]));e.querySelectorAll(`[data-artifact-inline]`).forEach(e=>{let t=$.get(e);if(!t)return;let i=r.get(e.getAttribute(`data-artifact-inline`)??``);i&&t(i,n)})}function Ie(e){return $.has(e)}function Le(e){let t=typeof e.artifactId==`string`?e.artifactId:``,n=typeof e.title==`string`&&e.title?e.title:void 0,r=e.status===`streaming`?`streaming`:`complete`,i=e.presentation&&typeof e.presentation==`object`&&!Array.isArray(e.presentation)?e.presentation:void 0;if(e.artifactType===`component`){let a=e.componentProps,o=a&&typeof a==`object`&&!Array.isArray(a)?a:{};return{id:t,artifactType:`component`,title:n,status:r,component:typeof e.component==`string`?e.component:``,props:o,...i?{presentation:i}:{}}}let a=e.file&&typeof e.file==`object`&&!Array.isArray(e.file)?e.file:void 0;return{id:t,artifactType:`markdown`,title:n,status:r,markdown:typeof e.markdown==`string`?e.markdown:``,...a?{file:a}:{},...i?{presentation:i}:{}}}function Re(e){let t=e.artifactType===`markdown`?e.file:void 0;return{title:t?w(t.path):e.title&&e.title.trim()?e.title:`Untitled artifact`,typeLabel:t?D(t):e.artifactType===`component`?`Component`:`Document`}}function ze(e){let t={artifactId:e.id,title:e.title??``,status:e.status,artifactType:e.artifactType};return e.artifactType===`markdown`&&(typeof e.markdown==`string`&&(t.markdown=e.markdown),e.file&&(t.file=e.file)),t}function Be(e,t,n){let{swap:r,onSettled:i}=n,a=!1;try{a=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}catch{a=!1}if(!t||!e.isConnected||a||typeof e.animate!=`function`){r(),i();return}e.style.height=`${t}px`,e.style.overflow=`hidden`;let o=[];for(let t of Array.from(e.children))t instanceof HTMLElement&&o.push(t.animate([{opacity:1},{opacity:0}],{duration:180,easing:`ease-out`,fill:`forwards`}));window.setTimeout(()=>{for(let e of o)e.cancel();r();let n=()=>{e.style.removeProperty(`height`),e.style.removeProperty(`overflow`)};if(!e.isConnected){n(),i();return}e.style.height=`auto`;let a=e.getBoundingClientRect().height;if(e.style.height=`${t}px`,!a||Math.abs(a-t)<1){n(),i();return}let s=Math.abs(t-a),c=Math.round(Math.min(500,Math.max(300,240+s*.8))),l=Math.round(c*.35),u=e.firstElementChild instanceof HTMLElement?e.firstElementChild:null,d=u?u.animate([{opacity:0},{opacity:1}],{duration:240,delay:l,easing:`ease-out`,fill:`backwards`}):null,f=e.animate([{height:`${t}px`},{height:`${a}px`}],{duration:c,easing:`cubic-bezier(0.2, 0, 0, 1)`});e.style.height=`${a}px`;let p=!1,m=()=>{p||(p=!0,n(),i())};Promise.allSettled([f.finished,d?.finished].filter(Boolean)).then(m),window.setTimeout(m,Math.max(c,l+240)+120)},180)}function Ve(e){let t=e?.inlineChrome;if(t===!1)return{chromeEnabled:!1,showCopy:!1,showExpand:!1,showViewToggle:!1};let n=typeof t==`object`?t:void 0;return{chromeEnabled:!0,showCopy:n?.showCopy!==!1,showExpand:n?.showExpand!==!1,showViewToggle:n?.showViewToggle!==!1}}const He=`--persona-artifact-inline-body-height`;function Ue(e){let t=e?.inlineBody,n=t?.streamingView===`status`?`status`:`source`,r=t?.viewMode===`source`?`source`:`rendered`,i=320,a=320,o=t?.height;typeof o==`number`||o===`auto`?(i=o,a=o):o&&typeof o==`object`&&(i=o.streaming??320,a=o.complete??320);let s=t?.overflow===`clip`?`clip`:`scroll`,c=s!==`clip`&&t?.followOutput!==!1,l,u,d=t?.fadeMask;d===!0?(l=!0,u=!0):d===!1?(l=!1,u=!1):d&&typeof d==`object`?(l=d.top===!0,u=d.bottom===!0):s===`clip`?(l=!1,u=!0):(l=!0,u=!0);let f=t?.transition===`none`?`none`:`auto`,p=t?.completeDisplay===`card`?`card`:`inline`;return{streamingView:n,viewMode:r,streamingHeight:i,completeHeight:a,followOutput:c,overflow:s,fadeTop:l,fadeBottom:u,transition:f,completeDisplay:p}}function We(e,n){let r=Le(e),i=n.config?.features?.artifacts,{chromeEnabled:a,showCopy:o,showExpand:s,showViewToggle:c}=Ve(i),l=i?.inlineActions??[],u=Ue(i),d=u.completeDisplay===`card`,f=null,p=r,h=m(`div`,`persona-artifact-inline persona-w-full persona-max-w-full`);C(h),h.setAttribute(`data-persona-theme-zone`,`artifact-inline`),r.id&&h.setAttribute(`data-artifact-inline`,r.id);let g=e=>Pe(ze(e),n),_=null,v=e=>{_?.destroy(),_=null,h.classList.add(`persona-artifact-inline--card`),h.style.removeProperty(He),h.replaceChildren(g(e)),$.set(h,e=>{h.replaceChildren(g(e))})};if(d&&r.status===`complete`)return v(r),h;let y=Ae(r,{config:n.config,bodyLayout:u,resolveViewMode:()=>f??u.viewMode});_=y;let b=m(`div`,`persona-artifact-inline-body`);b.appendChild(y.el);let x=e=>{let t=e.status!==`complete`,n=t?u.streamingHeight:u.completeHeight,r=typeof n==`number`;r?h.style.setProperty(He,`${n}px`):h.style.removeProperty(He);let i=!!y.el.querySelector(`.persona-code-pre`),a=!!y.el.querySelector(`iframe, .persona-artifact-source-window--fixed, .persona-artifact-status-view`);b.classList.toggle(`persona-artifact-content-flush`,i),b.classList.toggle(`persona-artifact-inline-body--sized`,r&&a),b.classList.toggle(`persona-artifact-inline-body--cap`,!t&&!a&&typeof u.completeHeight==`number`)},S=r.status,w=(e,t)=>{S!==`complete`&&e.status===`complete`?(typeof u.completeHeight==`number`?h.style.setProperty(He,`${u.completeHeight}px`):h.style.removeProperty(He),we(b,t?.suppressTransition?`none`:u.transition,e.id,()=>{y.update(e),x(e)})):y.update(e),x(e),S=e.status};x(r);let T=u.overflow===`clip`&&s&&!!r.id;if(T&&(b.setAttribute(`data-expand-artifact-inline`,r.id),b.setAttribute(`role`,`button`),b.setAttribute(`tabindex`,`0`),b.classList.add(`persona-cursor-pointer`),b.setAttribute(`aria-label`,`Open ${Re(r).title} in panel`)),!a)return h.appendChild(b),$.set(h,w),h;let E=m(`div`,`persona-artifact-inline-chrome`);E.setAttribute(`data-persona-theme-zone`,`artifact-inline-chrome`);let D=m(`div`,`persona-artifact-inline-chrome-lead`),O=m(`span`,`persona-flex persona-items-center persona-flex-shrink-0`),k=t(ee,16,`currentColor`,2);k&&O.appendChild(k);let A=m(`span`,`persona-artifact-inline-title persona-truncate persona-min-w-0`),j=m(`span`,`persona-artifact-inline-type`);D.append(O,A,j);let M=m(`div`,`persona-artifact-inline-chrome-actions`),N=m(`span`,`persona-flex persona-items-center persona-gap-1`),P=()=>f??u.viewMode,I=c?ne({items:[{id:`rendered`,icon:`eye`,label:`Rendered view`,className:`persona-artifact-doc-icon-btn persona-artifact-view-btn`},{id:`source`,icon:`code-xml`,label:`Source`,className:`persona-artifact-doc-icon-btn persona-artifact-code-btn`}],selectedId:P(),className:`persona-artifact-toggle-group persona-flex-shrink-0`,onSelect:e=>{let t=e===`source`?`source`:`rendered`;t!==P()&&(f=t,y.update(p),x(p))}}):null,L=o?F({icon:`copy`,label:`Copy`,className:`persona-artifact-doc-icon-btn persona-flex-shrink-0`}):null;L&&r.id&&L.setAttribute(`data-copy-artifact`,r.id);let R=s?F({icon:`maximize`,label:`Open in panel`,className:`persona-artifact-doc-icon-btn persona-flex-shrink-0`}):null;R&&r.id&&R.setAttribute(`data-expand-artifact-inline`,r.id),M.appendChild(N),I&&M.appendChild(I.element),L&&M.appendChild(L),R&&M.appendChild(R),E.append(D,M),h.append(E,b);let B=e=>{let{title:t,typeLabel:n}=Re(e);A.textContent=t,A.title=t,T&&b.setAttribute(`aria-label`,`Open ${t} in panel`);let r=e.status!==`complete`;if(r){j.classList.contains(`persona-artifact-inline-status`)||(j.className=`persona-artifact-inline-status`,j.removeAttribute(`data-preserve-animation`),j.replaceChildren());let t=W(e,i,`inline-chrome`);G(j,t,i)}else ce(e.id),j.className=`persona-artifact-inline-type`,j.removeAttribute(`data-preserve-animation`),j.replaceChildren(),j.textContent=n;if(L&&L.classList.toggle(`persona-hidden`,r),I){let t=e.artifactType===`markdown`?e.file:void 0,n=!1;if(!r&&t&&u.viewMode!==`source`){let e=te(t);e===`markdown`?n=!0:(e===`html`||e===`svg`)&&(n=i?.filePreview?.enabled!==!1)}I.element.classList.toggle(`persona-hidden`,!n),I.setSelected(P())}if(N.replaceChildren(),!r&&l.length>0){let t=z(e);if(t)for(let e of l)try{if(e.visible===void 0||e.visible(t)){let t=re(e,{documentChrome:!0});t.setAttribute(`data-artifact-custom-action`,e.id),t.classList.add(`persona-flex-shrink-0`),N.appendChild(t)}}catch{}}};return B(r),$.set(h,(e,t)=>{if(d&&S!==`complete`&&e.status===`complete`){let t=h.isConnected?h.getBoundingClientRect().height:0;S=`complete`;let n=e,r=!1,i=e=>{n=e,r=!0};$.set(h,i),Be(h,t,{swap:()=>{v(n),r=!1,$.set(h,i)},onSettled:()=>{r?v(n):$.set(h,e=>{h.replaceChildren(g(e))})}})}else(e.status!==`complete`||e.id!==p.id)&&(f=null),p=e,w(e,t),B(e)}),h}const Ge=(e,t)=>{if(t?.config?.future?.v5Defaults===!0&&t.config.features?.artifacts?.enabled!==!0){let e=document.createElement(`div`);return e.hidden=!0,e}let n=t?.config?.features?.artifacts?.renderInline;if(n){let r=typeof e.title==`string`&&e.title?e.title:`Untitled artifact`,i=typeof e.artifactId==`string`?e.artifactId:``,a=e.status===`streaming`?`streaming`:`complete`,o=n({artifact:{artifactId:i,title:r,artifactType:typeof e.artifactType==`string`?e.artifactType:`markdown`,status:a},config:t.config,defaultRenderer:()=>We(e,t)});if(o)return o}return We(e,t)};function Ke(e){let{mount:t,splitRoot:n,pane:r}=e,i=null,a=null,s=null;function l(){s?.(),s=null}let u=()=>{if(!n||!i)return;let e=t.classList.contains(`persona-artifact-welded-split`),r=t.ownerDocument.defaultView??window,a=r.innerWidth<=640;if(!e||t.classList.contains(`persona-artifact-narrow-host`)||a){i.style.removeProperty(`position`),i.style.removeProperty(`left`),i.style.removeProperty(`top`),i.style.removeProperty(`bottom`),i.style.removeProperty(`width`),i.style.removeProperty(`z-index`);return}let o=n.firstElementChild;if(!o||o===i)return;i.style.position=`absolute`,i.style.top=`0`,i.style.bottom=`0`,i.style.width=`10px`,i.style.zIndex=`5`;let s=c(n,r),l=o.offsetWidth+s/2-5;i.style.left=`${Math.max(0,l)}px`};return{update:()=>{let d=e.getConfig();if(n&&r){if(d.features?.artifacts?.layout?.resizable!==!0)a?.(),a=null,l(),i&&=(i.remove(),null),r.element.style.removeProperty(`width`),r.element.style.removeProperty(`maxWidth`);else{if(!i){let d=m(`div`,`persona-artifact-split-handle persona-shrink-0 persona-h-full`);d.setAttribute(`role`,`separator`),d.setAttribute(`aria-orientation`,`vertical`),d.setAttribute(`aria-label`,`Resize artifacts panel`),d.tabIndex=0;let f=t.ownerDocument,p=f.defaultView??window,h=i=>{if(!r||i.button!==0||t.classList.contains(`persona-artifact-narrow-host`)||t.classList.contains(`persona-artifact-expanded`)||p.innerWidth<=640)return;i.preventDefault(),l();let a=i.clientX,m=r.element.getBoundingClientRect().width,h=e.getConfig().features?.artifacts?.layout,g=i=>{let s=n.getBoundingClientRect().width,l=t.classList.contains(`persona-artifact-welded-split`),f=c(n,p),g=l?0:d.getBoundingClientRect().width||6,_=m-(i.clientX-a),v=o(_,s,f,g,h?.resizableMinWidth,h?.resizableMaxWidth,e.chatMinWidth());r.element.style.width=`${v}px`,r.element.style.maxWidth=`none`,u()},_=()=>{f.removeEventListener(`pointermove`,g),f.removeEventListener(`pointerup`,_),f.removeEventListener(`pointercancel`,_),s=null;try{d.releasePointerCapture(i.pointerId)}catch{}};s=_,f.addEventListener(`pointermove`,g),f.addEventListener(`pointerup`,_),f.addEventListener(`pointercancel`,_);try{d.setPointerCapture(i.pointerId)}catch{}};d.addEventListener(`pointerdown`,h),i=d,n.insertBefore(d,r.element),a=()=>{d.removeEventListener(`pointerdown`,h)}}if(i){let t=e.isVisible();i.classList.toggle(`persona-hidden`,!t),u()}}}},destroy(){a?.(),a=null,l(),i&&=(i.remove(),null)}}}export{Pe as PersonaArtifactCard,Ge as PersonaArtifactInline,d as __provideMarkdownParsers,e as __setIconsExtraLoader,xe as artifactCopyText,Me as createArtifactPane,Ke as createArtifactResizer,O as downloadInfoFor,C as ensureArtifactStyles,Ie as hasLiveInlineArtifactBlock,j as initArtifactsUi,k as triggerArtifactDownload,Fe as updateInlineArtifactBlocks};
|
package/dist/client-dispatch.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}};function t(e){if(e.length===0)return`0:empty`;let t=e.map(e=>[e.name,e.description??``,e.parametersSchema?JSON.stringify(e.parametersSchema):``,e.origin??``,e.annotations?JSON.stringify(e.annotations):``].join(``)).sort();return`${e.length}:${r(t.join(``))}`}function n(e,t){let n=3735928559^t,r=1103547991^t;for(let t=0;t<e.length;t++){let i=e.charCodeAt(t);n=Math.imul(n^i,2654435761),r=Math.imul(r^i,1597334677)}return n=Math.imul(n^n>>>16,2246822507),n^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}function r(e){return`${n(e,0).toString(36)}.${n(e,2654435761).toString(36)}`}var i=e((()=>{})),a,o,s,c,l=e((()=>{a=e=>e.replace(/[^a-zA-Z0-9_]/g,`_`).toLowerCase().replace(/_+/g,`_`).replace(/^_|_$/g,``),o=e=>typeof e==`object`&&!!e&&!Array.isArray(e),s=e=>{if(e.variant!==`tool`)return null;let t=e.agentMetadata?.clientToolAnswer;if(!t||!t.toolCallId||t.result===void 0)return null;let n=a(t.toolName);return n?{call:{toolCallId:t.toolCallId,toolName:n,args:o(t.args)?t.args:{}},result:{toolCallId:t.toolCallId,toolName:n,result:t.result}}:null},c=(e,t)=>{let n=[],r=[],i=[],a=``,o,c=()=>{r.length!==0&&(n.push({role:`assistant`,content:``,createdAt:a,toolCalls:r},{role:`tool`,content:``,createdAt:a,toolResults:i}),r=[],i=[])};for(let l of e){let e=s(l);if(e){let t=l.agentMetadata?.clientToolAnswer?.batch;r.length>0&&(t===void 0||t!==o)&&c(),r.length===0&&(a=l.createdAt,o=t),r.some(t=>t.toolCallId===e.call.toolCallId)||(r.push(e.call),i.push(e.result));continue}let u=t(l);u&&(c(),n.push(u))}return c(),n}})),u,d,f=e((()=>{u=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`image/svg+xml`,`image/bmp`],d=[`application/pdf`,`text/plain`,`text/markdown`,`text/csv`,`application/msword`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,`application/vnd.ms-excel`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,`application/json`],[...u,...d]}));function p(e){let t=e.content;if(typeof t!=`string`||t===``)return;let n=e.contentParts??e.llmContent??e.rawContent??t;if(typeof n!=`string`||n!==t)return t}var m=e((()=>{f()})),h,g=e((()=>{h=e=>e.localOnly===!0||e.role===`assistant`&&typeof e.id==`string`&&e.id.startsWith(`reconnect-failed-`)})),_=`4.30.0`,v,y=e((()=>{v=_})),b,x,S,C,w;e((()=>{i(),l(),m(),g(),y(),b=e=>e.voiceCaption||h(e)?!1:!!(e.contentParts&&e.contentParts.length>0||e.llmContent&&e.llmContent.trim().length>0||e.rawContent&&e.rawContent.trim().length>0||e.content&&e.content.trim().length>0),x=e=>e.slice().sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()),S=e=>{let t=e.agentMetadata?.providerPhase??e.agentMetadata?.phase;return e.role===`assistant`&&(t===`commentary`||t===`partial_answer`||t===`final_answer`)?{phase:t}:{}},C=e=>({role:e.role,content:e.contentParts??e.llmContent??e.rawContent??e.content,createdAt:e.createdAt,...S(e)}),w=class{constructor(e){this.host=e}async initializeSession(){await this.host.historyInternals.historyBootstrapReady;let e=this.host.config.getStoredConversationId?.()||null,t=this.host.historyInternals.shouldResumeDurableConversation?.()===!0;if(!this.host.isHistoryCapable()&&!t)return this.#e(e,!1);let n=await this.host.readVisitorToken();if(e&&n)try{let n=await this.createClientSession({conversationId:e,durableResume:t});return t&&n.durableRecovery?.enabled!==!0&&this.host.historyInternals.setStoredResumableHandle?.(null),this.host.finishInit(n,e,!1)}catch(n){if(!(n instanceof this.host.HistoryClientError&&n.code===`not_found`)&&!(n instanceof this.host.HistoryClientError&&n.code===`visitor_required`)&&!(n instanceof this.host.HistoryClientError&&n.code===`history_disabled`))throw n;return t&&this.host.historyInternals.setStoredResumableHandle?.(null),this.#e(e,!0)}return this.#e(e,!1)}async#e(e,t){let n=this.host.historyInternals.visitorStore;return n&&!await this.host.readVisitorToken()?n.withFirstInitLock(()=>this.#t(e,t)):this.#t(e,t)}async#t(e,t){let n=this.host.config.getStoredSessionId?.()||null,r=await this.createClientSession({storedSessionId:n}),i=await this.#n(r);return this.host.finishInit(i,e,t)}async#n(e){if(!e.visitor?.token||this.host.claimInFlight||!this.host.isHistoryCapable()&&e.durableRecovery?.enabled!==!0)return e;this.host.claimInFlight=!0;try{return await this.createClientSession({storedSessionId:e.sessionId})}catch{return e}finally{this.host.claimInFlight=!1}}async sendWithClientToolsDiff(e,n,r,i){let a=!!(n&&n.length>0),o=a?t(n):void 0,s=this.host.clientToolsFingerprintSessionId===e,c=a&&s&&this.host.lastSentClientToolsFingerprint===o,l=!a&&i?.emptyMeansReplace===!0&&this.host.sentNonEmptyClientToolsSessionId===e,u=!1,d;for(let e=0;d=await r({...a&&(u||!c)&&n?{clientTools:n}:{},...l?{clientTools:[]}:{},...o?{clientToolsFingerprint:o}:{}}),d.status===409&&e===0&&a&&(await d.clone().json().catch(()=>null))?.error===`client_tools_resend_required`;e++)u=!0,this.host.lastSentClientToolsFingerprint=null;return{response:d,commit:()=>{this.host.lastSentClientToolsFingerprint=o??null,this.host.clientToolsFingerprintSessionId=e,a?this.host.sentNonEmptyClientToolsSessionId=e:l&&(this.host.sentNonEmptyClientToolsSessionId=null)}}}async createClientSession(e){let t=this.host.isHistoryCapable()&&!e.omitVisitorFields,n=!e.omitVisitorFields,r=null;(t||n)&&(await this.host.historyInternals.historyBootstrapReady,r=await this.host.readVisitorToken());let i=this.host.routing(),a=i.agentId??i.flowId,o=t||e.durableResume?e.conversationId:void 0,s={token:this.host.config.clientToken,...a&&{flowId:a},...t&&{visitorHistory:!0},...n&&{durableRecovery:!0},...(t||n)&&r?{visitorToken:r}:{},...t&&e.identityProof?{identityProof:e.identityProof}:{},...o?{conversationId:o}:e.storedSessionId?{sessionId:e.storedSessionId}:{}};e.signal?.throwIfAborted();let c=await fetch(this.host.getClientApiUrl(`init`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v},body:JSON.stringify(s),signal:e.signal});if(!c.ok){let n=await c.json().catch(()=>({error:`Session initialization failed`}));if(t&&c.status===403&&n.error===`visitor_history_disabled`){if(this.host.markHistoryUnavailable(),o)throw new this.host.HistoryClientError(`history_disabled`,`Visitor history is disabled for this surface`);return this.createClientSession({...e,omitVisitorFields:!0})}throw c.status===403&&n.error===`durable_recovery_disabled`?new this.host.HistoryClientError(`history_disabled`,`Durable recovery is disabled for this surface`):(t||e.durableResume)&&c.status===401&&n.error===`visitor_required`?new this.host.HistoryClientError(`visitor_required`,`Visitor credential no longer resolves`):o&&c.status===404?new this.host.HistoryClientError(`not_found`,`Conversation not found`):c.status===401?Error(`Invalid client token: ${n.hint||n.error}`):c.status===403?Error(`Origin not allowed: ${n.hint||n.error}`):Error(n.error||`Failed to initialize session`)}let l=await c.json();return l.visitor?.token&&await this.host.historyInternals.visitorStore?.set(l.visitor.token),{sessionId:l.sessionId,expiresAt:new Date(l.expiresAt),flow:l.flow,...l.conversationId?{conversationId:l.conversationId}:{},...l.targetId?{targetId:l.targetId}:{},...l.conversationRevision?{conversationRevision:l.conversationRevision}:{},...l.durableRecovery?{durableRecovery:l.durableRecovery}:{},...l.visitor?{visitor:l.visitor}:{},config:{welcomeMessage:l.config.welcomeMessage,placeholder:l.config.placeholder,theme:l.config.theme}}}async sendFeedback(e){if([`upvote`,`downvote`,`copy`].includes(e.type)&&!e.messageId)throw Error(`messageId is required for ${e.type} feedback type`);if(e.type===`csat`&&(e.rating===void 0||e.rating<1||e.rating>5))throw Error(`CSAT rating must be between 1 and 5`);if(e.type===`nps`&&(e.rating===void 0||e.rating<0||e.rating>10))throw Error(`NPS rating must be between 0 and 10`);this.host.debug&&console.debug(`[AgentWidgetClient] sending feedback`,e);let t={...e,...this.host.config.clientToken&&{token:this.host.config.clientToken}},n=await fetch(`${this.host.clientApiBase()}/v1/client/feedback`,{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:`Feedback submission failed`}));throw n.status===401?(this.host.clientSession=null,this.host.resetSessionWarmLatch(),this.host.config.onSessionExpired?.(),Error(`Session expired. Please refresh to continue.`)):Error(e.error||`Failed to submit feedback`)}}async dispatchClientToken(e,t,n){let{HistoryClientError:r}=this.host,i=()=>this.host.isCurrentTurn(n),a=e=>{i()&&t(e)};try{let t=()=>{if(e.signal?.throwIfAborted(),!i())throw new DOMException(`Turn superseded`,`AbortError`)},o=this.host.clientSession??await this.host.initSession();t();let s=async()=>{t();let n=o,r=n.durableRecovery?.enabled===!0;if(r&&(!n.conversationId||!await this.host.readVisitorToken()))throw Error(`Renewing this conversation requires its visitor credential.`);t();let i=await this.host.createClientSession({...r||this.host.isHistoryCapable()?{conversationId:n.conversationId,durableResume:r}:{storedSessionId:n.sessionId},signal:e.signal});if(t(),n.conversationId&&i.conversationId!==n.conversationId||r&&i.durableRecovery?.enabled!==!0)throw Error(`Session renewal did not preserve this conversation.`);o=this.host.finishInit(i,n.conversationId??null,!1),this.host.clientSession=o,this.host.resetSessionWarmLatch(),this.host.resetClientToolsFingerprint(),this.host.config.onSessionInit?.(o)};Date.now()>=o.expiresAt.getTime()-6e4&&await s();let c=await this.#c(e.messages),l=c.metadata?Object.fromEntries(Object.entries(c.metadata).filter(([e])=>e!==`sessionId`&&e!==`session_id`)):void 0,u=this.host.isHistoryCapable(),d={sessionId:o.sessionId,messages:e.messages.filter(b).map(e=>{let t=u?p(e):void 0;return{id:e.id,role:e.role,content:e.contentParts??e.llmContent??e.rawContent??e.content,...t!==void 0&&{displayContent:t}}}),...e.assistantMessageId&&{assistantMessageId:e.assistantMessageId},...l&&Object.keys(l).length>0&&{metadata:l},...c.inputs&&Object.keys(c.inputs).length>0&&{inputs:c.inputs},...c.context&&{context:c.context},turnId:n,...e.interrupt&&{submitMode:`interrupt`},...e.voiceSpoken&&{voice:{spoken:!0,...e.voicePriorToolResults?.length&&{priorToolResults:e.voicePriorToolResults}}}},f=async()=>{t();let n=o.durableRecovery?.enabled===!0?await this.host.readVisitorToken():null;return t(),this.host.sendWithClientToolsDiff(o.sessionId,c.clientTools,async r=>{t();let i=await this.host.resolveChatIdentityProof(e.signal);t();let a={...d,sessionId:o.sessionId,...r,...i&&{identityProof:i}};return this.host.debug&&console.debug(`[AgentWidgetClient] client token dispatch`,{...a,...i&&{identityProof:{provider:i.provider,token:`[REDACTED]`}}}),fetch(this.host.getClientApiUrl(`chat`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v,...n?{"X-Visitor-Token":n}:{}},body:JSON.stringify(a),signal:e.signal})})},m=await f();if(t(),m.response.status===401){let e=await m.response.clone().json().catch(()=>null);t(),e?.error===`Session not found or expired`&&(await s(),m=await f(),t())}let{response:h,commit:g}=m;if(!h.ok){let e=await h.json().catch(()=>({error:`Chat request failed`}));if(h.status===401&&e.error===`invalid_identity_proof`){let e=new r(`invalid_identity_proof`,`The identity proof was rejected`);throw a({type:`error`,error:e}),e}if(h.status===401){this.host.clearClientSession(),this.host.config.onSessionExpired?.();let e=/* @__PURE__ */ Error(`Session expired. Please refresh to continue.`);throw a({type:`error`,error:e}),e}if(h.status===429){let t=Error(e.hint||`Message limit reached for this session.`);throw a({type:`error`,error:t}),t}if(h.status===410&&e.error===`conversation_deleted`){let e=new r(`conversation_deleted`,`This conversation was deleted`);throw a({type:`error`,error:e}),e}let t=Error(e.error||`Failed to send message`);throw a({type:`error`,error:t}),t}if(!h.body){let e=/* @__PURE__ */ Error(`No response body received`);throw a({type:`error`,error:e}),e}g(),a({type:`status`,status:`connected`});try{await this.host.streamResponse(h.body,a,e.assistantMessageId,void 0,e.signal)}finally{a({type:`status`,status:`idle`})}}catch(e){let t=e instanceof Error?e:Error(String(e));throw!(t instanceof r)&&!t.message.includes(`Session expired`)&&!t.message.includes(`Message limit`)&&a({type:`error`,error:t}),t}}async dispatchProxy(e,t){let n=await this.#c(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Chat backend request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,void 0,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}async dispatchAgent(e,t){let n=await this.#s(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] agent dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Agent execution request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,e.assistantMessageId,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}#r(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`user`)return n.mentionContext&&Object.keys(n.mentionContext).length>0?{mentions:n.mentionContext}:null}return null}async#i(e){let t={};this.host.contextProviders.length&&await Promise.all(this.host.contextProviders.map(async n=>{try{let r=await n({messages:e,config:this.host.config});r&&typeof r==`object`&&Object.assign(t,r)}catch(e){typeof console<`u`&&console.warn(`[AgentWidget] Context provider failed:`,e)}}));let n=this.#r(e);return n&&Object.assign(t,n),Object.keys(t).length?t:null}#a(e){if(!e)return;let t={};return e.selectedModelId&&(t.selectedModelId=e.selectedModelId),e.activeModeIds?.length&&(t.activeModeIds=[...e.activeModeIds]),Object.keys(t).length>0?t:void 0}#o(e,t){let n=t?.selectedModelId;return!n||!(`model`in e)?e:this.host.config.composer?.models?.some(e=>e.id===n)?{...e,model:n}:e}async#s(e,t){let n=this.host.routing().agentId;if(!this.host.config.agent&&!n)throw Error(`Agent configuration required for agent mode`);let r=c(x(e),e=>b(e)&&(e.role===`user`||e.role===`assistant`||e.role===`system`)&&(!e.variant||e.variant===`assistant`)?C(e):null),i=this.#a(t),a={agent:this.#o(this.host.config.agent??{agentId:n},i),messages:r,options:{streamResponse:!0,recordMode:`virtual`,...this.host.config.agentOptions}};i&&(a.composerOptions=i);let o=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];o.length>0&&(a.clientTools=o);let s=await this.#i(e);return s&&(a.context=s),a}async#c(e,t){let n=c(x(e),e=>b(e)?C(e):null),r=this.host.routing(),i={messages:n,...r.agentId?{agent:{agentId:r.agentId}}:r.flowId?{flowId:r.flowId}:{}};if(r.targetPayload)for(let[e,t]of Object.entries(r.targetPayload))e!==`messages`&&(i[e]=t);let a=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];a.length>0&&(i.clientTools=a);let o=await this.#i(e);o&&(i.context=o);let s=this.#a(t);if(s&&(i.composerOptions=s),this.host.requestMiddleware)try{let e=await this.host.requestMiddleware({payload:{...i},config:this.host.config});if(e&&typeof e==`object`){let t=e;return i.clientTools!==void 0&&!(`clientTools`in t)&&(t.clientTools=i.clientTools),t}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] Request middleware error:`,e)}return i}}}))();export{w as ClientDispatch};
|
|
1
|
+
var e=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}};function t(e){if(e.length===0)return`0:empty`;let t=e.map(e=>[e.name,e.description??``,e.parametersSchema?JSON.stringify(e.parametersSchema):``,e.origin??``,e.annotations?JSON.stringify(e.annotations):``].join(``)).sort();return`${e.length}:${r(t.join(``))}`}function n(e,t){let n=3735928559^t,r=1103547991^t;for(let t=0;t<e.length;t++){let i=e.charCodeAt(t);n=Math.imul(n^i,2654435761),r=Math.imul(r^i,1597334677)}return n=Math.imul(n^n>>>16,2246822507),n^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}function r(e){return`${n(e,0).toString(36)}.${n(e,2654435761).toString(36)}`}var i=e((()=>{})),a,o,s,c,l=e((()=>{a=e=>e.replace(/[^a-zA-Z0-9_]/g,`_`).toLowerCase().replace(/_+/g,`_`).replace(/^_|_$/g,``),o=e=>typeof e==`object`&&!!e&&!Array.isArray(e),s=e=>{if(e.variant!==`tool`)return null;let t=e.agentMetadata?.clientToolAnswer;if(!t||!t.toolCallId||t.result===void 0)return null;let n=a(t.toolName);return n?{call:{toolCallId:t.toolCallId,toolName:n,args:o(t.args)?t.args:{}},result:{toolCallId:t.toolCallId,toolName:n,result:t.result}}:null},c=(e,t)=>{let n=[],r=[],i=[],a=``,o,c=()=>{r.length!==0&&(n.push({role:`assistant`,content:``,createdAt:a,toolCalls:r},{role:`tool`,content:``,createdAt:a,toolResults:i}),r=[],i=[])};for(let l of e){let e=s(l);if(e){let t=l.agentMetadata?.clientToolAnswer?.batch;r.length>0&&(t===void 0||t!==o)&&c(),r.length===0&&(a=l.createdAt,o=t),r.some(t=>t.toolCallId===e.call.toolCallId)||(r.push(e.call),i.push(e.result));continue}let u=t(l);u&&(c(),n.push(u))}return c(),n}})),u,d,f=e((()=>{u=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`image/svg+xml`,`image/bmp`],d=[`application/pdf`,`text/plain`,`text/markdown`,`text/csv`,`application/msword`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,`application/vnd.ms-excel`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,`application/json`],[...u,...d]}));function p(e){let t=e.content;if(typeof t!=`string`||t===``)return;let n=e.contentParts??e.llmContent??e.rawContent??t;if(typeof n!=`string`||n!==t)return t}var m=e((()=>{f()})),h,g=e((()=>{h=e=>e.localOnly===!0||e.role===`assistant`&&typeof e.id==`string`&&e.id.startsWith(`reconnect-failed-`)})),_=`4.32.0`,v,y=e((()=>{v=_})),b,x,S,C,w;e((()=>{i(),l(),m(),g(),y(),b=e=>e.voiceCaption||h(e)?!1:!!(e.contentParts&&e.contentParts.length>0||e.llmContent&&e.llmContent.trim().length>0||e.rawContent&&e.rawContent.trim().length>0||e.content&&e.content.trim().length>0),x=e=>e.slice().sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()),S=e=>{let t=e.agentMetadata?.providerPhase??e.agentMetadata?.phase;return e.role===`assistant`&&(t===`commentary`||t===`partial_answer`||t===`final_answer`)?{phase:t}:{}},C=e=>({role:e.role,content:e.contentParts??e.llmContent??e.rawContent??e.content,createdAt:e.createdAt,...S(e)}),w=class{constructor(e){this.host=e}async initializeSession(){await this.host.historyInternals.historyBootstrapReady;let e=this.host.config.getStoredConversationId?.()||null,t=this.host.historyInternals.shouldResumeDurableConversation?.()===!0;if(!this.host.isHistoryCapable()&&!t)return this.#e(e,!1);let n=await this.host.readVisitorToken();if(e&&n)try{let n=await this.createClientSession({conversationId:e,durableResume:t});return t&&n.durableRecovery?.enabled!==!0&&this.host.historyInternals.setStoredResumableHandle?.(null),this.host.finishInit(n,e,!1)}catch(n){if(!(n instanceof this.host.HistoryClientError&&n.code===`not_found`)&&!(n instanceof this.host.HistoryClientError&&n.code===`visitor_required`)&&!(n instanceof this.host.HistoryClientError&&n.code===`history_disabled`))throw n;return t&&this.host.historyInternals.setStoredResumableHandle?.(null),this.#e(e,!0)}return this.#e(e,!1)}async#e(e,t){let n=this.host.historyInternals.visitorStore;return n&&!await this.host.readVisitorToken()?n.withFirstInitLock(()=>this.#t(e,t)):this.#t(e,t)}async#t(e,t){let n=this.host.config.getStoredSessionId?.()||null,r=await this.createClientSession({storedSessionId:n}),i=await this.#n(r);return this.host.finishInit(i,e,t)}async#n(e){if(!e.visitor?.token||this.host.claimInFlight||!this.host.isHistoryCapable()&&e.durableRecovery?.enabled!==!0)return e;this.host.claimInFlight=!0;try{return await this.createClientSession({storedSessionId:e.sessionId})}catch{return e}finally{this.host.claimInFlight=!1}}async sendWithClientToolsDiff(e,n,r,i){let a=!!(n&&n.length>0),o=a?t(n):void 0,s=this.host.clientToolsFingerprintSessionId===e,c=a&&s&&this.host.lastSentClientToolsFingerprint===o,l=!a&&i?.emptyMeansReplace===!0&&this.host.sentNonEmptyClientToolsSessionId===e,u=!1,d;for(let e=0;d=await r({...a&&(u||!c)&&n?{clientTools:n}:{},...l?{clientTools:[]}:{},...o?{clientToolsFingerprint:o}:{}}),d.status===409&&e===0&&a&&(await d.clone().json().catch(()=>null))?.error===`client_tools_resend_required`;e++)u=!0,this.host.lastSentClientToolsFingerprint=null;return{response:d,commit:()=>{this.host.lastSentClientToolsFingerprint=o??null,this.host.clientToolsFingerprintSessionId=e,a?this.host.sentNonEmptyClientToolsSessionId=e:l&&(this.host.sentNonEmptyClientToolsSessionId=null)}}}async createClientSession(e){let t=this.host.isHistoryCapable()&&!e.omitVisitorFields,n=!e.omitVisitorFields,r=null;(t||n)&&(await this.host.historyInternals.historyBootstrapReady,r=await this.host.readVisitorToken());let i=this.host.routing(),a=i.agentId??i.flowId,o=t||e.durableResume?e.conversationId:void 0,s={token:this.host.config.clientToken,...a&&{flowId:a},...t&&{visitorHistory:!0},...n&&{durableRecovery:!0},...(t||n)&&r?{visitorToken:r}:{},...t&&e.identityProof?{identityProof:e.identityProof}:{},...o?{conversationId:o}:e.storedSessionId?{sessionId:e.storedSessionId}:{}};e.signal?.throwIfAborted();let c=await fetch(this.host.getClientApiUrl(`init`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v},body:JSON.stringify(s),signal:e.signal});if(!c.ok){let n=await c.json().catch(()=>({error:`Session initialization failed`}));if(t&&c.status===403&&n.error===`visitor_history_disabled`){if(this.host.markHistoryUnavailable(),o)throw new this.host.HistoryClientError(`history_disabled`,`Visitor history is disabled for this surface`);return this.createClientSession({...e,omitVisitorFields:!0})}throw c.status===403&&n.error===`durable_recovery_disabled`?new this.host.HistoryClientError(`history_disabled`,`Durable recovery is disabled for this surface`):(t||e.durableResume)&&c.status===401&&n.error===`visitor_required`?new this.host.HistoryClientError(`visitor_required`,`Visitor credential no longer resolves`):o&&c.status===404?new this.host.HistoryClientError(`not_found`,`Conversation not found`):c.status===401?Error(`Invalid client token: ${n.hint||n.error}`):c.status===403?Error(`Origin not allowed: ${n.hint||n.error}`):Error(n.error||`Failed to initialize session`)}let l=await c.json();return l.visitor?.token&&await this.host.historyInternals.visitorStore?.set(l.visitor.token),{sessionId:l.sessionId,expiresAt:new Date(l.expiresAt),flow:l.flow,...l.conversationId?{conversationId:l.conversationId}:{},...l.targetId?{targetId:l.targetId}:{},...l.conversationRevision?{conversationRevision:l.conversationRevision}:{},...l.durableRecovery?{durableRecovery:l.durableRecovery}:{},...l.visitor?{visitor:l.visitor}:{},config:{welcomeMessage:l.config.welcomeMessage,placeholder:l.config.placeholder,theme:l.config.theme}}}async sendFeedback(e){if([`upvote`,`downvote`,`copy`].includes(e.type)&&!e.messageId)throw Error(`messageId is required for ${e.type} feedback type`);if(e.type===`csat`&&(e.rating===void 0||e.rating<1||e.rating>5))throw Error(`CSAT rating must be between 1 and 5`);if(e.type===`nps`&&(e.rating===void 0||e.rating<0||e.rating>10))throw Error(`NPS rating must be between 0 and 10`);this.host.debug&&console.debug(`[AgentWidgetClient] sending feedback`,e);let t={...e,...this.host.config.clientToken&&{token:this.host.config.clientToken}},n=await fetch(`${this.host.clientApiBase()}/v1/client/feedback`,{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:`Feedback submission failed`}));throw n.status===401?(this.host.clientSession=null,this.host.resetSessionWarmLatch(),this.host.config.onSessionExpired?.(),Error(`Session expired. Please refresh to continue.`)):Error(e.error||`Failed to submit feedback`)}}async dispatchClientToken(e,t,n){let{HistoryClientError:r}=this.host,i=()=>this.host.isCurrentTurn(n),a=e=>{i()&&t(e)};try{let t=()=>{if(e.signal?.throwIfAborted(),!i())throw new DOMException(`Turn superseded`,`AbortError`)},o=this.host.clientSession??await this.host.initSession();t();let s=async()=>{t();let n=o,r=n.durableRecovery?.enabled===!0;if(r&&(!n.conversationId||!await this.host.readVisitorToken()))throw Error(`Renewing this conversation requires its visitor credential.`);t();let i=await this.host.createClientSession({...r||this.host.isHistoryCapable()?{conversationId:n.conversationId,durableResume:r}:{storedSessionId:n.sessionId},signal:e.signal});if(t(),n.conversationId&&i.conversationId!==n.conversationId||r&&i.durableRecovery?.enabled!==!0)throw Error(`Session renewal did not preserve this conversation.`);o=this.host.finishInit(i,n.conversationId??null,!1),this.host.clientSession=o,this.host.resetSessionWarmLatch(),this.host.resetClientToolsFingerprint(),this.host.config.onSessionInit?.(o)};Date.now()>=o.expiresAt.getTime()-6e4&&await s();let c=await this.#c(e.messages),l=c.metadata?Object.fromEntries(Object.entries(c.metadata).filter(([e])=>e!==`sessionId`&&e!==`session_id`)):void 0,u=this.host.isHistoryCapable(),d={sessionId:o.sessionId,messages:e.messages.filter(b).map(e=>{let t=u?p(e):void 0;return{id:e.id,role:e.role,content:e.contentParts??e.llmContent??e.rawContent??e.content,...t!==void 0&&{displayContent:t}}}),...e.assistantMessageId&&{assistantMessageId:e.assistantMessageId},...l&&Object.keys(l).length>0&&{metadata:l},...c.inputs&&Object.keys(c.inputs).length>0&&{inputs:c.inputs},...c.context&&{context:c.context},turnId:n,...e.interrupt&&{submitMode:`interrupt`},...e.voiceSpoken&&{voice:{spoken:!0,...e.voicePriorToolResults?.length&&{priorToolResults:e.voicePriorToolResults}}}},f=async()=>{t();let n=o.durableRecovery?.enabled===!0?await this.host.readVisitorToken():null;return t(),this.host.sendWithClientToolsDiff(o.sessionId,c.clientTools,async r=>{t();let i=await this.host.resolveChatIdentityProof(e.signal);t();let a={...d,sessionId:o.sessionId,...r,...i&&{identityProof:i}};return this.host.debug&&console.debug(`[AgentWidgetClient] client token dispatch`,{...a,...i&&{identityProof:{provider:i.provider,token:`[REDACTED]`}}}),fetch(this.host.getClientApiUrl(`chat`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":v,...n?{"X-Visitor-Token":n}:{}},body:JSON.stringify(a),signal:e.signal})})},m=await f();if(t(),m.response.status===401){let e=await m.response.clone().json().catch(()=>null);t(),e?.error===`Session not found or expired`&&(await s(),m=await f(),t())}let{response:h,commit:g}=m;if(!h.ok){let e=await h.json().catch(()=>({error:`Chat request failed`}));if(h.status===401&&e.error===`invalid_identity_proof`){let e=new r(`invalid_identity_proof`,`The identity proof was rejected`);throw a({type:`error`,error:e}),e}if(h.status===401){this.host.clearClientSession(),this.host.config.onSessionExpired?.();let e=/* @__PURE__ */ Error(`Session expired. Please refresh to continue.`);throw a({type:`error`,error:e}),e}if(h.status===429){let t=Error(e.hint||`Message limit reached for this session.`);throw a({type:`error`,error:t}),t}if(h.status===410&&e.error===`conversation_deleted`){let e=new r(`conversation_deleted`,`This conversation was deleted`);throw a({type:`error`,error:e}),e}let t=Error(e.error||`Failed to send message`);throw a({type:`error`,error:t}),t}if(!h.body){let e=/* @__PURE__ */ Error(`No response body received`);throw a({type:`error`,error:e}),e}g(),a({type:`status`,status:`connected`});try{await this.host.streamResponse(h.body,a,e.assistantMessageId,void 0,e.signal)}finally{a({type:`status`,status:`idle`})}}catch(e){let t=e instanceof Error?e:Error(String(e));throw!(t instanceof r)&&!t.message.includes(`Session expired`)&&!t.message.includes(`Message limit`)&&a({type:`error`,error:t}),t}}async dispatchProxy(e,t){let n=await this.#c(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Chat backend request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,void 0,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}async dispatchAgent(e,t){let n=await this.#s(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] agent dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Agent execution request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,e.assistantMessageId,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}#r(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`user`)return n.mentionContext&&Object.keys(n.mentionContext).length>0?{mentions:n.mentionContext}:null}return null}async#i(e){let t={};this.host.contextProviders.length&&await Promise.all(this.host.contextProviders.map(async n=>{try{let r=await n({messages:e,config:this.host.config});r&&typeof r==`object`&&Object.assign(t,r)}catch(e){typeof console<`u`&&console.warn(`[AgentWidget] Context provider failed:`,e)}}));let n=this.#r(e);return n&&Object.assign(t,n),Object.keys(t).length?t:null}#a(e){if(!e)return;let t={};return e.selectedModelId&&(t.selectedModelId=e.selectedModelId),e.activeModeIds?.length&&(t.activeModeIds=[...e.activeModeIds]),Object.keys(t).length>0?t:void 0}#o(e,t){let n=t?.selectedModelId;return!n||!(`model`in e)?e:this.host.config.composer?.models?.some(e=>e.id===n)?{...e,model:n}:e}async#s(e,t){let n=this.host.routing().agentId;if(!this.host.config.agent&&!n)throw Error(`Agent configuration required for agent mode`);let r=c(x(e),e=>b(e)&&(e.role===`user`||e.role===`assistant`||e.role===`system`)&&(!e.variant||e.variant===`assistant`)?C(e):null),i=this.#a(t),a={agent:this.#o(this.host.config.agent??{agentId:n},i),messages:r,options:{streamResponse:!0,recordMode:`virtual`,...this.host.config.agentOptions}};i&&(a.composerOptions=i);let o=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];o.length>0&&(a.clientTools=o);let s=await this.#i(e);return s&&(a.context=s),a}async#c(e,t){let n=c(x(e),e=>b(e)?C(e):null),r=this.host.routing(),i={messages:n,...r.agentId?{agent:{agentId:r.agentId}}:r.flowId?{flowId:r.flowId}:{}};if(r.targetPayload)for(let[e,t]of Object.entries(r.targetPayload))e!==`messages`&&(i[e]=t);let a=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];a.length>0&&(i.clientTools=a);let o=await this.#i(e);o&&(i.context=o);let s=this.#a(t);if(s&&(i.composerOptions=s),this.host.requestMiddleware)try{let e=await this.host.requestMiddleware({payload:{...i},config:this.host.config});if(e&&typeof e==`object`){let t=e;return i.clientTools!==void 0&&!(`clientTools`in t)&&(t.clientTools=i.clientTools),t}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] Request middleware error:`,e)}return i}}}))();export{w as ClientDispatch};
|
package/dist/client-history.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},t=`4.
|
|
1
|
+
var e=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},t=`4.32.0`,n,r=e((()=>{n=t}));function i(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 a(e,t){return t||e.config.features?.history?.scope||(e.config.getIdentityProof?`verified-user`:`browser`)}async function o(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 s(e,t,n,r){if(t.visitor?.endUserId!=null)return t;let i=await e.reinitWithProof(n);if(i.visitor?.identityStatus!==`admitted`||i.visitor?.endUserId==null)throw r&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),new e.HistoryClientError(`proof_not_admitted`,C);return i}async function c(e,t){let n=await t.json().catch(()=>({}));return typeof n.error==`string`?n.error:typeof n.message==`string`?n.message:``}async function l(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`,w);if(i.includes(`visitor token required`))throw new e.HistoryClientError(`visitor_token_missing`,T);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`,E);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 u(e,t,n){let r=await c(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`,C);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`,w)):t.includes(`visitor token required`)?new e.HistoryClientError(`visitor_token_missing`,T):t.includes(`visitor_identity_mismatch`)?new e.HistoryClientError(`visitor_identity_mismatch`,E):new e.HistoryClientError(`unauthorized`,r||`History request was not authorized`)}return new e.HistoryClientError(`request_failed`,r||`History request failed (${t.status})`)}function d(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 f(e,t,r){p(e);let f=r.trackIdentity!==!1,m=await e.initSession(),h=null;a(e,r.scope)===`verified-user`&&(h=await o(e,m,f),h&&(m=await s(e,m,h,f)));let g=e.historyInternals.visitorStore,_=!1;for(;;){let a=g?.revision()??0,o=await e.readVisitorToken();if(!o&&!r.visitorTokenOptional)throw new e.HistoryClientError(`visitor_token_missing`,`No visitor credential is stored for this browser`);let s=await fetch(i(e,t,{...r.query,sessionId:m.sessionId}),{method:r.method,headers:{"X-Persona-Version":n,...o?{"X-Visitor-Token":o}:{},...h?{"X-Identity-Proof":h}:{},...r.body===void 0?{}:{"Content-Type":`application/json`}},...r.body===void 0?{}:{body:JSON.stringify(r.body)},...r.keepalive?{keepalive:!0}:{}});if(s.status===401&&!_){_=!0,m=await l(e,await c(e,s),h,f);continue}if(!s.ok)throw await u(e,s,f);let p=s.headers.get(`X-History-Identity-Status`),v=await s.json().catch(()=>void 0);if(g&&g.revision()!==a)throw new e.HistoryClientError(`credential_changed`,`The visitor credential changed while the request was in flight`);return d(e,p,h!==null,f),v}}function p(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 m(e,t){let n=await f(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(S),nextCursor:typeof n?.nextCursor==`string`?n.nextCursor:null}}async function h(e,t,n){let r=await f(e,`conversations/${encodeURIComponent(t)}`,{method:`GET`,query:{...n?.messageCursor?{messageCursor:n.messageCursor}:{}},...n?.scope?{scope:n.scope}:{}});return{summary:S(r),messages:Array.isArray(r?.messages)?r.messages:[],nextMessageCursor:typeof r?.nextMessageCursor==`string`?r.nextMessageCursor:null,conversationRevision:typeof r?.conversationRevision==`string`?r.conversationRevision:null}}async function g(e,t,n){p(e);let r=0;for(let t of n){let n=t.displayContent.length;if(n>b)throw new e.HistoryClientError(`payload_too_large`,`displayContent exceeds the ${b} character limit`);r+=n}if(r>x)throw new e.HistoryClientError(`payload_too_large`,`Display projection batch exceeds the ${x} character limit`);await e.initSession();let i=e.historyInternals.visitorStore,a=i?.revision()??0,o=await f(e,`conversations/${encodeURIComponent(t)}/display-projections`,{method:`PATCH`,body:{messages:n},scope:`browser`,keepalive:r<=x,trackIdentity:!1}),s=typeof o?.conversationRevision==`string`?o.conversationRevision:null;return s&&e.clientSession?.conversationId===t&&(i?.revision()??0)===a&&e.historyInternals.setStoredConversationRevision?.(s),{conversationRevision:s}}async function _(e,t,n){let r=await f(e,`conversations/${encodeURIComponent(t)}`,{method:`DELETE`,...n?.scope?{scope:n.scope}:{}});return{deleted:typeof r?.deleted==`number`?r.deleted:0}}async function v(e,t){let n=await f(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 y(e){p(e),e.setHistoryIdentityStatus({state:`resetting`});try{await f(e,`visitor/reset`,{method:`POST`,scope:`browser`,visitorTokenOptional:!0})}finally{await e.historyInternals.visitorStore?.clear(),e.setHistoryIdentityStatus(e.derivedBrowserOnly())}return{reset:!0}}var b,x,S,C,w,T,E;e((()=>{r(),b=32768,x=49152,S=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:``}},C=`The identity proof was not admitted; account history is unavailable`,w=`The identity proof was rejected`,T=`The request carried no visitor credential`,E=`The stored visitor belongs to a different signed-in user`}))();export{v as deleteAllConversations,_ as deleteConversation,g as finalizeDisplayProjections,h as getConversation,u as historyErrorFor,m as listConversations,c as readErrorCode,l as recoverFromUnauthorized,y as resetVisitor};
|
package/dist/codegen.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e){return e?.cdnBase?.trim().replace(/\/+$/,``).replace(/[\\'"<>`]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase().padStart(2,`0`)}`)||`https://cdn.jsdelivr.net/npm/@runtypelabs/persona@4.
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e){return e?.cdnBase?.trim().replace(/\/+$/,``).replace(/[\\'"<>`]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase().padStart(2,`0`)}`)||`https://cdn.jsdelivr.net/npm/@runtypelabs/persona@4.32.0/dist`}function t(e){if(e!==void 0)return typeof e==`string`?e:Array.isArray(e)?`[${e.map(e=>e.toString()).join(`, `)}]`:e.toString()}function n(e){if(e)return{getHeaders:t(e.getHeaders),onFeedback:t(e.onFeedback),onCopy:t(e.onCopy),requestMiddleware:t(e.requestMiddleware),actionHandlers:t(e.actionHandlers),actionParsers:t(e.actionParsers),postprocessMessage:t(e.postprocessMessage),contextProviders:t(e.contextProviders),streamParser:t(e.streamParser)}}const r=`({ text, message }: any) => {
|
|
2
2
|
const jsonSource = (message as any).rawContent || text || message.content;
|
|
3
3
|
if (!jsonSource || typeof jsonSource !== 'string') return null;
|
|
4
4
|
let cleanJson = jsonSource
|
package/dist/codegen.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function e(e){return e?.cdnBase?.trim().replace(/\/+$/,``).replace(/[\\'"<>`]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase().padStart(2,`0`)}`)||`https://cdn.jsdelivr.net/npm/@runtypelabs/persona@4.
|
|
1
|
+
function e(e){return e?.cdnBase?.trim().replace(/\/+$/,``).replace(/[\\'"<>`]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase().padStart(2,`0`)}`)||`https://cdn.jsdelivr.net/npm/@runtypelabs/persona@4.32.0/dist`}function t(e){if(e!==void 0)return typeof e==`string`?e:Array.isArray(e)?`[${e.map(e=>e.toString()).join(`, `)}]`:e.toString()}function n(e){if(e)return{getHeaders:t(e.getHeaders),onFeedback:t(e.onFeedback),onCopy:t(e.onCopy),requestMiddleware:t(e.requestMiddleware),actionHandlers:t(e.actionHandlers),actionParsers:t(e.actionParsers),postprocessMessage:t(e.postprocessMessage),contextProviders:t(e.contextProviders),streamParser:t(e.streamParser)}}const r=`({ text, message }: any) => {
|
|
2
2
|
const jsonSource = (message as any).rawContent || text || message.content;
|
|
3
3
|
if (!jsonSource || typeof jsonSource !== 'string') return null;
|
|
4
4
|
let cleanJson = jsonSource
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Cr as ComposerModeGroup, Ea as renderLucideIcon, Mo as AgentWidgetPlugin, Nr as ComposerState, Tr as ComposerModel, ar as ComposerActionContributionContext, cr as ComposerActionPresentation, ir as ComposerActionContext, k as AgentWidgetConfig, mr as ComposerCustomAction, nr as ComposerAction, or as ComposerActionOverflowConfig, sr as ComposerActionPlacement, xr as ComposerMode } from "./types-BOZHQIk0.cjs";
|
|
2
2
|
import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-C1mRjLgW.cjs";
|
|
3
3
|
import { i as hideTooltipFor, r as attachTooltip } from "./tooltip-BkW-8MnD.cjs";
|
|
4
|
-
import { t as createComposerStore } from "./composer-store-
|
|
4
|
+
import { t as createComposerStore } from "./composer-store-Dw7Zbqxr.cjs";
|
|
5
5
|
//#region src/components/composer-bindings.d.ts
|
|
6
6
|
/**
|
|
7
7
|
* Atomic composer surface bindings.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Cr as ComposerModeGroup, Ea as renderLucideIcon, Mo as AgentWidgetPlugin, Nr as ComposerState, Tr as ComposerModel, ar as ComposerActionContributionContext, cr as ComposerActionPresentation, ir as ComposerActionContext, k as AgentWidgetConfig, mr as ComposerCustomAction, nr as ComposerAction, or as ComposerActionOverflowConfig, sr as ComposerActionPlacement, xr as ComposerMode } from "./types-BOZHQIk0.js";
|
|
2
2
|
import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-C1mRjLgW.js";
|
|
3
3
|
import { i as hideTooltipFor, r as attachTooltip } from "./tooltip-BkW-8MnD.js";
|
|
4
|
-
import { t as createComposerStore } from "./composer-store-
|
|
4
|
+
import { t as createComposerStore } from "./composer-store-Dw7Zbqxr.js";
|
|
5
5
|
//#region src/components/composer-bindings.d.ts
|
|
6
6
|
/**
|
|
7
7
|
* Atomic composer surface bindings.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, P as AgentWidgetContextMentionComposerCapability } from "./types-
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, P as AgentWidgetContextMentionComposerCapability } from "./types-BOZHQIk0.cjs";
|
|
2
2
|
//#region src/utils/mention-trigger.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Pure `@`-trigger detection for the composer mention menu.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, P as AgentWidgetContextMentionComposerCapability } from "./types-
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, P as AgentWidgetContextMentionComposerCapability } from "./types-BOZHQIk0.js";
|
|
2
2
|
//#region src/utils/mention-trigger.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Pure `@`-trigger detection for the composer mention menu.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, Ir as ComposerSubmissionSnapshot, Nr as ComposerState, dr as ComposerAttachmentState, jr as ComposerQuote } from "./types-BOZHQIk0.cjs";
|
|
2
2
|
//#region src/utils/composer-store.d.ts
|
|
3
3
|
type ComposerStateListener = (state: Readonly<ComposerState>) => void;
|
|
4
4
|
interface ComposerStore {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, Ir as ComposerSubmissionSnapshot, Nr as ComposerState, dr as ComposerAttachmentState, jr as ComposerQuote } from "./types-BOZHQIk0.js";
|
|
2
2
|
//#region src/utils/composer-store.d.ts
|
|
3
3
|
type ComposerStateListener = (state: Readonly<ComposerState>) => void;
|
|
4
4
|
interface ComposerStore {
|
package/dist/{context-mention-manager-IfT4JHma.d.cts → context-mention-manager-D2p0-JH-.d.cts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, I as AgentWidgetContextMentionItem,
|
|
2
|
-
import "./composer-input-
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, I as AgentWidgetContextMentionItem, Rr as ContentPart, U as AgentWidgetContextMentionSource, z as AgentWidgetContextMentionPayload } from "./types-BOZHQIk0.cjs";
|
|
2
|
+
import "./composer-input-dwg_o9Z-.cjs";
|
|
3
3
|
//#region src/components/context-mention-chip.d.ts
|
|
4
4
|
type MentionChipStatus = "resolving" | "ready" | "error";
|
|
5
5
|
interface MentionChipParts {
|
package/dist/{context-mention-manager-IfT4JHma.d.ts → context-mention-manager-D2p0-JH-.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, I as AgentWidgetContextMentionItem,
|
|
2
|
-
import "./composer-input-
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, I as AgentWidgetContextMentionItem, Rr as ContentPart, U as AgentWidgetContextMentionSource, z as AgentWidgetContextMentionPayload } from "./types-BOZHQIk0.js";
|
|
2
|
+
import "./composer-input-dwg_o9Z-.js";
|
|
3
3
|
//#region src/components/context-mention-chip.d.ts
|
|
4
4
|
type MentionChipStatus = "resolving" | "ready" | "error";
|
|
5
5
|
interface MentionChipParts {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef } from "./types-
|
|
2
|
-
import { t as ComposerInputCapability } from "./composer-input-
|
|
1
|
+
import { B as AgentWidgetContextMentionRef } from "./types-BOZHQIk0.cjs";
|
|
2
|
+
import { t as ComposerInputCapability } from "./composer-input-dwg_o9Z-.cjs";
|
|
3
3
|
//#region src/context-mentions-inline-entry.d.ts
|
|
4
4
|
interface InlineComposerMountContext {
|
|
5
5
|
/** The live composer textarea to migrate from (value + caret + look). */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef } from "./types-
|
|
2
|
-
import { t as ComposerInputCapability } from "./composer-input-
|
|
1
|
+
import { B as AgentWidgetContextMentionRef } from "./types-BOZHQIk0.js";
|
|
2
|
+
import { t as ComposerInputCapability } from "./composer-input-dwg_o9Z-.js";
|
|
3
3
|
//#region src/context-mentions-inline-entry.d.ts
|
|
4
4
|
interface InlineComposerMountContext {
|
|
5
5
|
/** The live composer textarea to migrate from (value + caret + look). */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, Ct as AgentWidgetMessage, F as AgentWidgetContextMentionConfig, k as AgentWidgetConfig } from "./types-
|
|
2
|
-
import { t as ComposerInputCapability } from "./composer-input-
|
|
3
|
-
import { n as MentionSubmitBundle, t as ContextMentionDraft } from "./context-mention-manager-
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, Ct as AgentWidgetMessage, F as AgentWidgetContextMentionConfig, k as AgentWidgetConfig } from "./types-BOZHQIk0.cjs";
|
|
2
|
+
import { t as ComposerInputCapability } from "./composer-input-dwg_o9Z-.cjs";
|
|
3
|
+
import { n as MentionSubmitBundle, t as ContextMentionDraft } from "./context-mention-manager-D2p0-JH-.cjs";
|
|
4
4
|
//#region src/utils/context-mention-controller.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Outcome of dispatching an inline slash command at submit (Slack-style). The UI
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, Ct as AgentWidgetMessage, F as AgentWidgetContextMentionConfig, k as AgentWidgetConfig } from "./types-
|
|
2
|
-
import { t as ComposerInputCapability } from "./composer-input-
|
|
3
|
-
import { n as MentionSubmitBundle, t as ContextMentionDraft } from "./context-mention-manager-
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, Ct as AgentWidgetMessage, F as AgentWidgetContextMentionConfig, k as AgentWidgetConfig } from "./types-BOZHQIk0.js";
|
|
2
|
+
import { t as ComposerInputCapability } from "./composer-input-dwg_o9Z-.js";
|
|
3
|
+
import { n as MentionSubmitBundle, t as ContextMentionDraft } from "./context-mention-manager-D2p0-JH-.js";
|
|
4
4
|
//#region src/utils/context-mention-controller.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Outcome of dispatching an inline slash command at submit (Slack-style). The UI
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Oo as ThemeValidationResult, So as SemanticTokens, do as CreateThemeOptions, fo as DeepPartial, go as PersonaTheme, k as AgentWidgetConfig, lo as ComponentTokens, yo as ResolvedToken } from "./types-BOZHQIk0.cjs";
|
|
2
2
|
//#region src/utils/tokens.d.ts
|
|
3
3
|
declare const DEFAULT_PALETTE: {
|
|
4
4
|
spacing: Record<0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 20 | 24 | 32 | 40 | 48 | 56 | 64, string>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Oo as ThemeValidationResult, So as SemanticTokens, do as CreateThemeOptions, fo as DeepPartial, go as PersonaTheme, k as AgentWidgetConfig, lo as ComponentTokens, yo as ResolvedToken } from "./types-BOZHQIk0.js";
|
|
2
2
|
//#region src/utils/tokens.d.ts
|
|
3
3
|
declare const DEFAULT_PALETTE: {
|
|
4
4
|
spacing: Record<0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 20 | 24 | 32 | 40 | 48 | 56 | 64, string>;
|