@runtypelabs/persona 4.32.2 → 4.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/activity-ui.d.cts +3 -3
- package/dist/activity-ui.d.ts +3 -3
- 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-BbXc58OA.js → chunk-6CUrH_jm.js} +1 -1
- package/dist/{chunk-B_H0l3u2.js → chunk-BRM3bHcJ.js} +1 -1
- package/dist/chunk-CEPM3FOp.js +1 -0
- package/dist/{chunk-D0tcIZJM.js → chunk-CXQJG7pb.js} +1 -1
- package/dist/{chunk-UWMfWW2a.js → chunk-D1G8tgYc.js} +1 -1
- package/dist/{chunk-BpjtKnGI.js → chunk-D6U0E82p.js} +1 -1
- package/dist/{chunk-2FnmZ9AA.js → chunk-DOZmcve8.js} +1 -1
- package/dist/chunk-DVgzoVCB.js +1 -0
- package/dist/{chunk-B9Zu-wrk.js → chunk-DW7Vg_l2.js} +1 -1
- package/dist/{chunk-B3l7TOOv.js → chunk-DbGLjU2P.js} +1 -1
- package/dist/{chunk-DTGvDx8o.js → chunk-Dj2a9f9w.js} +1 -1
- package/dist/{chunk-DgZZqy14.js → chunk-d54BJdKd.js} +1 -1
- package/dist/chunk-dLJWKfOb.js +1 -0
- package/dist/{chunk-DNdeIFJ6.js → chunk-gu34lr-P.js} +1 -1
- package/dist/chunk-i4qGOJAL.js +1 -0
- package/dist/{chunk-DVZ8ri1z.js → chunk-ql5N2I_t.js} +1 -1
- package/dist/client-dispatch.js +1 -1
- package/dist/client-history.js +1 -1
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.js +1 -1
- package/dist/composer-actions-runtime.d.cts +2 -2
- package/dist/composer-actions-runtime.d.ts +2 -2
- package/dist/{composer-input-dwg_o9Z-.d.cts → composer-input-DnqGCXZz.d.cts} +1 -1
- package/dist/{composer-input-dwg_o9Z-.d.ts → composer-input-DnqGCXZz.d.ts} +1 -1
- package/dist/{composer-store-Dw7Zbqxr.d.cts → composer-store-6Iwy6WLI.d.cts} +1 -1
- package/dist/{composer-store-Dw7Zbqxr.d.ts → composer-store-6Iwy6WLI.d.ts} +1 -1
- package/dist/{context-mention-manager-D2p0-JH-.d.cts → context-mention-manager-B-rHF98n.d.cts} +2 -2
- package/dist/{context-mention-manager-D2p0-JH-.d.ts → context-mention-manager-B-rHF98n.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-CjX0kKzb.d.ts → defaults-BuOjqUAG.d.cts} +2 -1
- package/dist/{defaults-CjX0kKzb.d.cts → defaults-BuOjqUAG.d.ts} +2 -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-DmF7MczI.d.cts → fallback-speech-engine-SqEfkGda.d.cts} +1 -1
- package/dist/{fallback-speech-engine-DmF7MczI.d.ts → fallback-speech-engine-SqEfkGda.d.ts} +1 -1
- package/dist/{feature-preferences-CVFDt9Xf.d.cts → feature-preferences-DqAmje-2.d.cts} +1 -1
- package/dist/{feature-preferences-CVFDt9Xf.d.ts → feature-preferences-DqAmje-2.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-DJEXsTyE.d.cts → history-confirm-dialog-B3L7QNcO.d.cts} +1 -1
- package/dist/{history-confirm-dialog-DJEXsTyE.d.ts → history-confirm-dialog-B3L7QNcO.d.ts} +1 -1
- package/dist/history-shell.cjs +1 -1
- package/dist/history-shell.d.cts +6 -6
- package/dist/history-shell.d.ts +6 -6
- package/dist/history-shell.js +1 -1
- package/dist/history-view.d.cts +1 -1
- package/dist/history-view.d.ts +1 -1
- package/dist/index.cjs +38 -38
- 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 +52 -52
- package/dist/index.js.map +1 -1
- package/dist/install.global.js +1 -1
- package/dist/launcher.global.js +2 -2
- package/dist/launcher.global.js.map +1 -1
- package/dist/{loading-label-runtime-loader-CPxnoaoi.d.cts → loading-label-runtime-loader-JecjOfJS.d.cts} +1 -1
- package/dist/{loading-label-runtime-loader-CPxnoaoi.d.ts → loading-label-runtime-loader-JecjOfJS.d.ts} +1 -1
- package/dist/loading-label-runtime.d.cts +1 -1
- package/dist/loading-label-runtime.d.ts +1 -1
- package/dist/{message-bubble-CkZGlCLC.d.ts → message-bubble-CBYtpDsT.d.cts} +2 -2
- package/dist/{message-bubble-CkZGlCLC.d.cts → message-bubble-CBYtpDsT.d.ts} +2 -2
- package/dist/preferences-runtime.d.cts +1 -1
- package/dist/preferences-runtime.d.ts +1 -1
- package/dist/{preview-DdUvoLb4.d.cts → preview-_UJwwt2L.d.cts} +2 -2
- package/dist/{preview-DdUvoLb4.d.ts → preview-_UJwwt2L.d.ts} +2 -2
- package/dist/{registry-Dz4iHNST.d.cts → registry-B5ZV3K-h.d.cts} +1 -1
- package/dist/{registry-Dz4iHNST.d.ts → registry-B5ZV3K-h.d.ts} +1 -1
- package/dist/{session-Baxp9iRK.d.cts → session-Bys8_XuB.d.cts} +10 -9
- package/dist/{session-Baxp9iRK.d.ts → session-Bys8_XuB.d.ts} +10 -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 +31 -31
- package/dist/theme-editor-preview.d.cts +1 -1
- package/dist/theme-editor-preview.d.ts +1 -1
- package/dist/theme-editor-preview.js +19 -19
- package/dist/theme-editor.cjs +1 -1
- package/dist/theme-editor.d.cts +2 -2
- package/dist/theme-editor.d.ts +2 -2
- package/dist/theme-editor.js +1 -1
- package/dist/theme-reference.cjs +1 -1
- package/dist/theme-reference.d.cts +4 -2
- package/dist/theme-reference.d.ts +4 -2
- package/dist/theme-reference.js +1 -1
- package/dist/{tool-loading-animation-un3kA5Ur.d.cts → tool-loading-animation-d5qAQcwv.d.cts} +1 -1
- package/dist/{tool-loading-animation-un3kA5Ur.d.ts → tool-loading-animation-d5qAQcwv.d.ts} +1 -1
- package/dist/{turn-activity-ui-BGNhtMcH.d.cts → turn-activity-ui-q6fHVnx-.d.cts} +2 -2
- package/dist/{turn-activity-ui-BGNhtMcH.d.ts → turn-activity-ui-q6fHVnx-.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-BOZHQIk0.d.cts → types-B_mj21jg.d.cts} +91 -7
- package/dist/{types-BOZHQIk0.d.ts → types-B_mj21jg.d.ts} +91 -7
- 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-DuAG1_yF.d.cts → webmcp-runtime-entry-ClEO3qdI.d.cts} +1 -1
- package/dist/{webmcp-runtime-entry-DuAG1_yF.d.ts → webmcp-runtime-entry-ClEO3qdI.d.ts} +1 -1
- package/dist/webmcp-runtime.d.cts +1 -1
- package/dist/webmcp-runtime.d.ts +1 -1
- package/dist/widget.css +1 -1
- package/package.json +1 -1
- package/src/client-dispatch.ts +69 -16
- package/src/client.operator-role.test.ts +217 -0
- package/src/components/message-bubble.test.ts +169 -0
- package/src/components/message-bubble.ts +97 -28
- package/src/defaults-parity.test.ts +14 -0
- package/src/index-core.ts +7 -0
- package/src/session.resubmit-from.test.ts +27 -0
- package/src/session.test.ts +10 -0
- package/src/session.ts +8 -5
- package/src/styles/widget.css +23 -1
- package/src/theme-reference.ts +3 -1
- package/src/types/theme.ts +21 -0
- package/src/types.ts +71 -6
- package/src/ui.ask-user-question-plugin.test.ts +154 -0
- package/src/ui.operator-role.test.ts +336 -0
- package/src/ui.ts +37 -12
- package/src/utils/__snapshots__/tokens-parity.test.ts.snap +236 -0
- package/src/utils/brand.test.ts +14 -0
- package/src/utils/brand.ts +8 -4
- package/src/utils/history-messages.test.ts +30 -0
- package/src/utils/history-messages.ts +26 -8
- package/src/utils/message-fingerprint.ts +4 -0
- package/src/utils/resubmit-turn.test.ts +13 -0
- package/src/utils/resubmit-turn.ts +12 -1
- package/src/utils/tokens.ts +31 -0
- package/src/welcome.test.ts +16 -0
- package/src/welcome.ts +10 -2
- package/dist/chunk-BNE40cEG.js +0 -1
- package/dist/chunk-Bz9jAgba.js +0 -1
- package/dist/chunk-CdpVP6LZ.js +0 -1
- package/dist/chunk-CjkechxR.js +0 -1
package/dist/activity-ui.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Ct as AgentWidgetMessage,
|
|
2
|
-
import { a as hasExplicitThemeStyle$1, c as updateActivityElapsed, i as getExplicitLegacyStyle$1, n as TurnActivityRuntime, o as groupToolRows, s as ActivityKind } from "./turn-activity-ui-
|
|
3
|
-
import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-
|
|
1
|
+
import { Ct as AgentWidgetMessage, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-B_mj21jg.cjs";
|
|
2
|
+
import { a as hasExplicitThemeStyle$1, c as updateActivityElapsed, i as getExplicitLegacyStyle$1, n as TurnActivityRuntime, o as groupToolRows, s as ActivityKind } from "./turn-activity-ui-q6fHVnx-.cjs";
|
|
3
|
+
import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-JecjOfJS.cjs";
|
|
4
4
|
//#region src/components/tool-bubble.d.ts
|
|
5
5
|
export declare const updateToolBubbleUI: (messageId: string, bubble: HTMLElement, expansionState: Set<string>, config?: AgentWidgetConfig) => void;
|
|
6
6
|
export declare const createToolBubble: (message: AgentWidgetMessage, config?: AgentWidgetConfig, expansionState?: Set<string>) => HTMLElement;
|
package/dist/activity-ui.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Ct as AgentWidgetMessage,
|
|
2
|
-
import { a as hasExplicitThemeStyle$1, c as updateActivityElapsed, i as getExplicitLegacyStyle$1, n as TurnActivityRuntime, o as groupToolRows, s as ActivityKind } from "./turn-activity-ui-
|
|
3
|
-
import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-
|
|
1
|
+
import { Ct as AgentWidgetMessage, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-B_mj21jg.js";
|
|
2
|
+
import { a as hasExplicitThemeStyle$1, c as updateActivityElapsed, i as getExplicitLegacyStyle$1, n as TurnActivityRuntime, o as groupToolRows, s as ActivityKind } from "./turn-activity-ui-q6fHVnx-.js";
|
|
3
|
+
import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-JecjOfJS.js";
|
|
4
4
|
//#region src/components/tool-bubble.d.ts
|
|
5
5
|
export declare const updateToolBubbleUI: (messageId: string, bubble: HTMLElement, expansionState: Set<string>, config?: AgentWidgetConfig) => void;
|
|
6
6
|
export declare const createToolBubble: (message: AgentWidgetMessage, config?: AgentWidgetConfig, expansionState?: Set<string>) => HTMLElement;
|
package/dist/approval-ui.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ct as AgentWidgetMessage,
|
|
2
|
-
import { i as MessageTransform } from "./message-bubble-
|
|
1
|
+
import { Ct as AgentWidgetMessage, Ro as AgentWidgetPlugin, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-B_mj21jg.cjs";
|
|
2
|
+
import { i as MessageTransform } from "./message-bubble-CBYtpDsT.cjs";
|
|
3
3
|
import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-C1mRjLgW.cjs";
|
|
4
4
|
import { IconNode } from "lucide";
|
|
5
5
|
//#region src/utils/humanize-tool-name.d.ts
|
package/dist/approval-ui.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ct as AgentWidgetMessage,
|
|
2
|
-
import { i as MessageTransform } from "./message-bubble-
|
|
1
|
+
import { Ct as AgentWidgetMessage, Ro as AgentWidgetPlugin, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-B_mj21jg.js";
|
|
2
|
+
import { i as MessageTransform } from "./message-bubble-CBYtpDsT.js";
|
|
3
3
|
import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-C1mRjLgW.js";
|
|
4
4
|
import { IconNode } from "lucide";
|
|
5
5
|
//#region src/utils/humanize-tool-name.d.ts
|
package/dist/artifacts-ui.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as provideMarkdownParsers, f as buttons_d_exports, r as ComponentRenderer, t as ComponentContext } from "./registry-
|
|
2
|
-
import {
|
|
3
|
-
import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-
|
|
1
|
+
import { T as provideMarkdownParsers, f as buttons_d_exports, r as ComponentRenderer, t as ComponentContext } from "./registry-B5ZV3K-h.cjs";
|
|
2
|
+
import { Li as PersonaArtifactRecord, Mi as PersonaArtifactFileMeta, Oi as PersonaArtifactCustomAction, k as AgentWidgetConfig } from "./types-B_mj21jg.cjs";
|
|
3
|
+
import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-JecjOfJS.cjs";
|
|
4
4
|
import { IconNode } from "lucide";
|
|
5
5
|
//#region src/components/artifact-pane.d.ts
|
|
6
6
|
type ArtifactPaneApi = {
|
package/dist/artifacts-ui.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as provideMarkdownParsers, f as buttons_d_exports, r as ComponentRenderer, t as ComponentContext } from "./registry-
|
|
2
|
-
import {
|
|
3
|
-
import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-
|
|
1
|
+
import { T as provideMarkdownParsers, f as buttons_d_exports, r as ComponentRenderer, t as ComponentContext } from "./registry-B5ZV3K-h.js";
|
|
2
|
+
import { Li as PersonaArtifactRecord, Mi as PersonaArtifactFileMeta, Oi as PersonaArtifactCustomAction, k as AgentWidgetConfig } from "./types-B_mj21jg.js";
|
|
3
|
+
import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-JecjOfJS.js";
|
|
4
4
|
import { IconNode } from "lucide";
|
|
5
5
|
//#region src/components/artifact-pane.d.ts
|
|
6
6
|
type ArtifactPaneApi = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as AgentWidgetMessage,
|
|
1
|
+
import { Ct as AgentWidgetMessage, Li as PersonaArtifactRecord, Ui as ResumableHandle, Wr as ConversationExecutionState, Xn as BackgroundConversationAdapter, mn as AgentWidgetStreamCheckpoint } from "./types-B_mj21jg.cjs";
|
|
2
2
|
//#region src/session-background.d.ts
|
|
3
3
|
type BackgroundCheckpoint = {
|
|
4
4
|
conversationId: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as AgentWidgetMessage,
|
|
1
|
+
import { Ct as AgentWidgetMessage, Li as PersonaArtifactRecord, Ui as ResumableHandle, Wr as ConversationExecutionState, Xn as BackgroundConversationAdapter, mn as AgentWidgetStreamCheckpoint } from "./types-B_mj21jg.js";
|
|
2
2
|
//#region src/session-background.d.ts
|
|
3
3
|
type BackgroundCheckpoint = {
|
|
4
4
|
conversationId: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
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-UWMfWW2a.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-D1G8tgYc.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(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./chunk-
|
|
1
|
+
import{t as e}from"./chunk-Dj2a9f9w.js";import{a as t,n}from"./chunk-xzeTUTrE.js";import{OBJ as r,STR as i,parse as a}from"partial-json";const o={name:e,description:`Ask the user multiple-choice questions and wait for their answers. Use only when blocked on a decision that is the user's to make: a preference, a choice between valid approaches, or information you cannot infer. Each question offers 2-4 options plus an automatic free-text input. The result maps each question to its answer (an array when multiSelect); a question absent from the result was skipped.`,parametersSchema:{type:`object`,properties:{questions:{type:`array`,minItems:1,maxItems:8,description:`Questions to ask the user. Prefer a single question.`,items:{type:`object`,properties:{question:{type:`string`,description:`The complete question, ending with a question mark.`},header:{type:`string`,maxLength:12,description:`Short topic label, e.g. "Auth method".`},options:{type:`array`,minItems:2,maxItems:4,description:`2-4 distinct choices. Do NOT add an "Other" option: free text is automatic.`,items:{type:`object`,properties:{label:{type:`string`,description:`Concise choice text (1-5 words).`},description:{type:`string`,description:`What the option means or implies.`}},required:[`label`],additionalProperties:!1}},multiSelect:{type:`boolean`,description:`Allow selecting multiple options. Default false.`},allowFreeText:{type:`boolean`,description:`Show a free-text input. Default true.`}},required:[`question`,`options`],additionalProperties:!1}}},required:[`questions`],additionalProperties:!1},origin:`sdk`,annotations:{readOnlyHint:!0}},s=e=>{let r=[],i=e?.features?.askUserQuestion;return i?.expose===!0&&i.enabled!==!1&&r.push(o),t(e).expose&&r.push(n(e)),r},c=e=>e.replace(/\\n/g,`
|
|
2
2
|
`).replace(/\\r/g,`\r`).replace(/\\t/g,` `).replace(/\\"/g,`"`).replace(/\\\\/g,`\\`),l=()=>{let e=null,t=0,n=e=>{let t=e.match(/"text"\s*:\s*"((?:[^"\\]|\\.|")*?)"/)?.[1]||e.match(/"text"\s*:\s*"((?:[^"\\]|\\.)*)/)?.[1];if(!t)return null;try{return c(t)}catch{return t}};return{getExtractedText:()=>e,processChunk:async r=>{let i=r.trim();if(!i.startsWith(`{`)&&!i.startsWith(`[`))return null;if(r.length<=t)return e===null?null:{text:e,raw:r};let a=n(r);return a!==null&&(e=a),t=r.length,e===null?null:{text:e,raw:r}},close:async()=>{}}},u=e=>{try{let t=JSON.parse(e);if(t&&typeof t==`object`&&typeof t.text==`string`)return t.text}catch{return null}return null},d=()=>{let e={processChunk:e=>null,getExtractedText:()=>null};return e.__isPlainTextParser=!0,e},f=()=>l(),p=()=>{let e=null,t=0;return{getExtractedText:()=>e,processChunk:n=>{let o=n.trim();if(!o.startsWith(`{`)&&!o.startsWith(`[`))return null;if(n.length<=t)return e!==null||e===``?{text:e||``,raw:n}:null;try{let t=a(n,i|r);t&&typeof t==`object`&&(t.component&&typeof t.component==`string`?e=typeof t.text==`string`?c(t.text):``:t.type===`init`&&t.form?e=``:typeof t.text==`string`&&(e=c(t.text)))}catch{}return t=n.length,e===null?null:{text:e,raw:n}},close:()=>{}}},m=()=>{let e=null;return{processChunk:t=>{if(!t.trim().startsWith(`<`))return null;let n=t.match(/<text[^>]*>([\s\S]*?)<\/text>/);return n&&n[1]?(e=n[1],{text:e,raw:t}):null},getExtractedText:()=>e}};function h(e){return e===`card`?`collapsed`:e}function g(e){return e.split(`;`,1)[0].trim().toLowerCase()}function _(e,t){if(!e)return;let n=Object.entries(e);for(let[e,r]of n)if(g(e)===t)return{mode:h(r),selector:g(e)};let r=`${t.split(`/`,1)[0]}/*`;for(let[e,t]of n)if(g(e)===r)return{mode:h(t),selector:r}}function v(e,t){let n=e?.display,r=typeof n==`string`?{default:n}:n??{};if(t.file&&r.files){if(typeof r.files==`string`)return{mode:h(r.files),matchedBy:{type:`files`}};let e=t.file.mimeType?g(t.file.mimeType):void 0,n=e?_(r.files.byMediaType,e):void 0;if(e&&n)return{mode:n.mode,matchedBy:{type:`mediaType`,mediaType:e,selector:n.selector}};if(r.files.default)return{mode:h(r.files.default),matchedBy:{type:`files`}}}let i=r.byKind?.[t.artifactType];if(i)return{mode:h(i),matchedBy:{type:`kind`,kind:t.artifactType,configuredBy:`byKind`}};let a=r.byType?.[t.artifactType];if(a)return{mode:h(a),matchedBy:{type:`kind`,kind:t.artifactType,configuredBy:`byType`}};let o=t.presentation?.preferredMode;return o?{mode:h(o),matchedBy:{type:`preferredMode`}}:r.default?{mode:h(r.default),matchedBy:{type:`default`}}:{mode:`panel`,matchedBy:{type:`personaDefault`}}}function y(e,t){return v(e,t).mode}function b(e,t){return JSON.stringify({component:e===`inline`?`PersonaArtifactInline`:`PersonaArtifactCard`,props:{artifactId:t.artifactId,title:t.title,artifactType:t.artifactType,status:t.status,...t.file?{file:t.file}:{},...t.presentation?{presentation:t.presentation}:{},...e===`inline`&&t.component?{component:t.component}:{},...e===`inline`&&t.componentProps?{componentProps:t.componentProps}:{},...t.markdown===void 0?{}:{markdown:t.markdown}}})}export{p as a,m as c,y as i,u as l,h as n,d as o,g as r,f as s,b as t,s as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=Symbol.for(`persona.defaultsProvenance`),t=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function n(e,r=``){return Object.entries(e).flatMap(([e,i])=>{let a=r?`${r}.${e}`:e;return t(i)?n(i,a):[a]})}function r(e,n){let r=n.split(`.`);for(let n=0;n<r.length;n++){let i=r[n];if(!t(e)||!Object.prototype.hasOwnProperty.call(e,i))return`absent`;if(e=e[i],e===void 0||n<r.length-1&&!t(e))return`clear`}return`explicit`}function i(t,n){return t?.[e]??n.filter(e=>r(t,e)===`explicit`)}function a(t,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0}),t}function o(e,t,r){return a(e,i(t,n(r)))}function s(t,n,a){let o=n[e];if(o)return o;let s=new Set(i(t,a));for(let e of a){let t=r(n,e);t===`clear`&&s.delete(e),t===`explicit`&&s.add(e)}return[...s]}function c(e,n,r){let i={...e};for(let e of n){if(r.includes(e))continue;let n=e.split(`.`),a=i;for(let e of n.slice(0,-1)){let n=a[e];if(!t(n)){a=void 0;break}a[e]={...n},a=a[e]}a&&delete a[n[n.length-1]]}return i}const l=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function u(e,t){if(!e)return t;if(!t)return e;let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=l(t)&&l(r)?u(t,r):r}return n}const d=e=>{if(typeof e!=`string`)return;let t=e.trim(),n=/^#([\da-f]{3}|[\da-f]{6})$/i.exec(t)?.[1];if(n){let e=n.length===3?[...n].map(e=>e+e).join(``):n;return[0,2,4].map(t=>parseInt(e.slice(t,t+2),16))}let r=/^rgba?\(\s*([^)]*)\)$/i.exec(t);if(!r)return;let i=r[1].trim().split(/\s*[,/]\s*|\s+/);if(i.length===4&&/^(?:1(?:\.0+)?|100%)$/.test(i[3])&&i.pop(),i.length!==3)return;let a=i.map(e=>/^\d+(?:\.\d+)?%?$/.test(e)?Number.parseFloat(e)*(e.endsWith(`%`)?2.55:1):NaN);if(!a.some(e=>!Number.isFinite(e)||e<0||e>255))return a},f=e=>e.reduce((e,t,n)=>{let r=t/255;return e+(r<=.04045?r/12.92:((r+.055)/1.055)**2.4)*[.2126,.7152,.0722][n]},0),p=e=>`#`+e.map(e=>Math.round(e).toString(16).padStart(2,`0`)).join(``),m=(e,t,n)=>p(e.map(e=>e+(t-e)*n)),h=e=>f(e)>.179?`#000000`:`#ffffff`,g=e=>{let t=d(e?.neutral);return t?f(t)<.18?`dark`:`light`:void 0},_=(e,t=`light`,n,r=!1)=>{let i={};if(!e)return i;let a=d(e.accent);if(a){let e={};for(let[t,n]of[[50,.96],[100,.9],[200,.75],[300,.55],[400,.25]])e[t]=m(a,255,n);e[500]=p(a);for(let[t,n]of[[600,.15],[700,.3],[800,.45],[900,.6],[950,.75]])e[t]=m(a,0,n);let t=h(a);i.palette={colors:{primary:e,accent:e}},i.semantic={colors:{primary:e[500],accent:e[500],interactive:{default:e[500],hover:e[600],focus:e[500],active:e[700]}}},i.components={button:{primary:{background:e[500],foreground:t}},launcher:{background:e[500],foreground:t},header:r?{background:`semantic.colors.container`,foreground:`semantic.colors.text`,iconBackground:`transparent`,iconForeground:`semantic.colors.text`}:{background:e[500],foreground:t,iconBackground:e[500],iconForeground:t},approval:{approve:{foreground:t}},message:r?{user:{background:`color-mix(in srgb, var(--persona-primary) 12%, var(--persona-container))`,text:`semantic.colors.text`},operator:{border:`color-mix(in srgb, var(--persona-primary) 35%, var(--persona-border))`}}:{user:{background:e[500],text:t}}}}let o=d(e.neutral);if(o){let e=t===`dark`,n=e===f(o)<.18?o:d(m(o,e?0:255,.9)),r=p(n),a=m(n,e?255:0,e?.06:.025),s=m(n,e?255:0,e?.2:.16),c=h(n),l={};for(let[e,t]of[[50,0],[100,.06],[200,.16],[300,.28],[400,.45],[500,.65],[600,.72],[700,.8],[800,.9],[900,.97],[950,1]])l[e]=m(n,c===`#ffffff`?255:0,t);i.palette={...i.palette,colors:{...i.palette?.colors,gray:l}},i.semantic={...i.semantic,colors:{...i.semantic?.colors,surface:r,background:r,container:a,border:s,divider:s,text:c,textMuted:m(n,c===`#ffffff`?255:0,.65)}},i.components={...i.components,panel:{background:r},header:{...i.components?.header,background:r,foreground:c},composer:{footerBackground:r}}}if(a){let e=d(i.semantic?.colors?.surface)??(t===`dark`?[15,15,16]:[255,255,255]),n=p(a),r=h(e)===`#ffffff`?255:0;for(let t=0;t<=1;t+=.1){n=m(a,r,t);let i=f(d(n)),o=f(e);if((Math.max(i,o)+.05)/(Math.min(i,o)+.05)>=4.5)break}i.components={...i.components,markdown:{link:{foreground:n}},input:{focus:{border:n,ring:n}}}}e.font?.trim()&&(i.semantic={...i.semantic,typography:{fontFamily:e.font}});let s={none:`0px`,sm:`4px`,md:`8px`,lg:`16px`}[e.radius??`none`];e.radius&&s&&(i.palette={...i.palette,radius:{none:`0px`,sm:s,md:s,lg:s,xl:s,"2xl":s}},i.components={...i.components,input:{...i.components?.input,borderRadius:s},header:{...i.components?.header,controlBorderRadius:s}});let c={compact:[13,44,8],comfortable:[14,48,12],spacious:[15,52,16]}[e.density??`comfortable`];if(e.density&&c){let[e,t,n]=c;i.semantic={...i.semantic,typography:{...i.semantic?.typography,fontSize:`${e}px`}},i.components={...i.components,header:{...i.components?.header,minHeight:`${t}px`,padding:`${n}px 16px`,minimalPadding:`${n}px 16px`},history:{railHeader:{minHeight:`${t}px`}},composer:{...i.components?.composer,fontSize:`${e}px`,padding:`${n}px`,gap:`${n/2}px`},message:{...i.components?.message,gap:`${n}px`,user:{...i.components?.message?.user,fontSize:`${e}px`},assistant:{fontSize:`${e}px`},operator:{...i.components?.message?.operator,fontSize:`${e}px`}}}}if(e.elevation&&[`flat`,`subtle`,`raised`].includes(e.elevation)){let t=e.elevation===`flat`,a=t?`none`:e.elevation===`subtle`?`0 2px 8px rgba(0, 0, 0, 0.08)`:`0 12px 32px rgba(0, 0, 0, 0.18)`,o=t?`1px solid var(--persona-border)`:`1px solid color-mix(in srgb, var(--persona-border) 65%, transparent)`;i.palette={...i.palette,shadows:{sm:a,md:a,lg:a,xl:a,"2xl":a}};let s=(e,n=``)=>{let i={};if(r&&n===`message.assistant`)return i;for(let[r,c]of Object.entries(e))if(r.toLowerCase().endsWith(`shadow`)){i[r]=a;let n=r===`shadow`?`border`:r.replace(/Shadow$/,`Border`);n in e&&(i[n]=typeof e[n]==`string`&&e[n].includes(`solid`)?o:t?`semantic.colors.border`:`color-mix(in srgb, var(--persona-border) 65%, transparent)`)}else if(c&&typeof c==`object`){let e=s(c,n?`${n}.${r}`:r);Object.keys(e).length&&(i[r]=e)}return i},c=n?s(n):{};i.components=u(i.components,c),i.components={...i.components,panel:{...i.components?.panel,shadow:a,modes:{floating:{shadow:a,border:o},inline:{shadow:a,border:o},docked:{shadow:a,border:o},sidebar:{shadow:a,border:o},mobile:{shadow:a,border:o}}},launcher:{...i.components?.launcher,shadow:a,border:`semantic.colors.border`},composer:{...i.components?.composer,shadow:a,borderColor:`semantic.colors.border`},toolBubble:{shadow:a},reasoningBubble:{shadow:a}}}return i},v=(e,t)=>t.split(` `).map(t=>`${e}.${t}`),y=[...v(`launcher`,`closeButtonSize closeButtonColor closeButtonBackgroundColor closeButtonBorderWidth closeButtonBorderColor closeButtonBorderRadius closeButtonPaddingX closeButtonPaddingY`),...v(`launcher.clearChat`,`size iconColor backgroundColor borderWidth borderColor borderRadius paddingX paddingY`),...v(`sendButton`,`size iconSize iconStrokeWidth backgroundColor textColor borderWidth borderColor paddingX paddingY`),...v(`voiceRecognition`,`iconSize iconColor backgroundColor borderColor borderWidth paddingX paddingY recordingIconColor recordingBackgroundColor recordingBorderColor processingIconColor processingBackgroundColor processingBorderColor speakingIconColor speakingBackgroundColor speakingBorderColor`),...v(`toolCall`,`shadow backgroundColor borderColor borderWidth borderRadius headerBackgroundColor headerTextColor headerPaddingX headerPaddingY contentBackgroundColor contentTextColor contentPaddingX contentPaddingY codeBlockBackgroundColor codeBlockBorderColor codeBlockTextColor toggleTextColor labelTextColor loadingAnimationColor loadingAnimationSecondaryColor loadingAnimationDuration`),...v(`approval`,`backgroundColor borderColor shadow titleColor descriptionColor reasonColor approveButtonColor approveButtonTextColor denyButtonColor denyButtonTextColor parameterBackgroundColor parameterTextColor`),...v(`features.askUserQuestion.styles`,`sheetBackground sheetBorder sheetShadow pillBackground pillBackgroundSelected pillTextColor pillTextColorSelected pillBorderRadius customInputBackground`),...v(`features.artifacts.layout`,`paneBackground panePadding paneBorderRadius paneShadow chatShadow paneBorder paneBorderLeft unifiedSplitOuterRadius documentToolbarIconColor documentToolbarToggleActiveBackground documentToolbarToggleActiveBorderColor documentToolbarToggleActiveColor tabFadeSize`),...v(`suggestionChipsConfig`,`fontWeight paddingX paddingY`)],b=[`voice.recording.border`,`voice.processing.icon`,`voice.processing.background`,`voice.speaking.icon`,`approval.requested.text`,`approval.approve.foreground`,`approval.deny.foreground`,`approval.deny.background`,`reasoningBubble.shadow`,`toolBubble.shadow`],x=[...y,`suggestionChips`,`copy.welcomeTitle`,`copy.welcomeSubtitle`,`copy.showWelcomeCard`,`features.suggestReplies.enabled`,`features.suggestReplies.expose`,...[`theme`,`darkTheme`].flatMap(e=>b.map(t=>`${e}.components.${t}`))],S=Symbol.for(`persona.styleProvenance`),C=e=>e[S]!==void 0,w=(e,t)=>{for(let n of t.split(`.`)){if(typeof e!=`object`||!e)return;e=e[n]}return e},T=e=>{let t=e?.[S];if(!t)return x.filter(t=>r(e,t)===`explicit`);let n=new Set(t.explicit);return x.forEach(i=>{w(e,i)!==t.values[i]&&(r(e,i)===`explicit`?n.add(i):n.delete(i))}),[...n]},E=(e,t)=>(Object.defineProperty(e,S,{value:{explicit:t,values:Object.fromEntries(x.map(t=>[t,w(e,t)]))},enumerable:!0,configurable:!0}),e),D=(e,t)=>E(e,T(t)),O=(e,t)=>{if(t[S])return T(t);let n=new Set(T(e));for(let e of x){let i=r(t,e);i===`clear`&&n.delete(e),i===`explicit`&&n.add(e)}return[...n]},k=(e,t)=>{let n=e?.[S];return!n||!Object.prototype.hasOwnProperty.call(n.values,t)||w(e,t)!==n.values[t]?r(e,t)===`explicit`:n.explicit.includes(t)},A=(e,t)=>k(e,t)?w(e,t):void 0,j=(e,t,n)=>{let r=e,i=n??r?.colorScheme??g(r?.brand)??`light`,a=i===`dark`||i===`auto`&&(typeof document<`u`&&document.documentElement.classList.contains(`dark`)||typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches);return k(e,`theme.components.${t}`)||a&&k(e,`darkTheme.components.${t}`)};export{r as _,j as a,E as c,g as d,u as f,a as g,c as h,k as i,O as l,o as m,b as n,C as o,i as p,A as r,D as s,y as t,_ as u,s as v,n as y};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./chunk-
|
|
1
|
+
import{t as e}from"./chunk-DVgzoVCB.js";import{t}from"./chunk-DqbzUVEI.js";const n=16e3,r=/* @__PURE__ */ new Map([[`idle_timeout`,`Voice call ended after a quiet period.`],[`max_duration`,`This voice call reached its time limit.`],[`provider_ended`,`The voice session ended.`],[`quota`,`Voice is unavailable right now.`],[`auth_expired`,`Voice session expired. Tap the mic to reconnect.`]]),i=[`provider_error`,`server_restart`],a=`Voice connection lost.`;function o(e,t){let n=t.slice(0,4e3).trim(),r=8e3-(n?n.length+2:0)-20,i=[];for(let t of e.slice(-12).reverse()){let e=t.content.replace(/\s+/g,` `).trim();if(!e)continue;e.length>2e3&&(e=`${e.slice(0,1999)}…`);let n=`${t.role===`user`?`User`:`Assistant`}: ${e}`;if(n.length+1>r)break;r-=n.length+1,i.unshift(n)}let a=i.length>0?[`Conversation so far:\n${i.join(`
|
|
2
2
|
`)}`]:[];return n&&a.push(n),a.join(`
|
|
3
3
|
|
|
4
4
|
`)}function s(e){return e.byteLength>=44&&new DataView(e).getUint32(0,!1)===1380533830?new Uint8Array(e,44):new Uint8Array(e)}function c(e){let t=e.replace(/\/+$/,``);return/^wss?:\/\//i.test(t)?t:/^https?:\/\//i.test(t)?t.replace(/^http/i,`ws`):`${typeof window<`u`&&window.location?.protocol===`https:`?`wss:`:`ws:`}//${t}`}function l(e){return c(e).replace(/^ws/i,`http`)}function u(e){return typeof e!=`number`||!Number.isFinite(e)?3e4:Math.min(6e5,Math.max(3e4,Math.round(e)))}var d=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h;#g;#_;#v;#y;#b;#x;#S;#C;#w;#T;#E;#D;#O;#k;#A;#j;#M;#N;#P;#F;#I;#L;#R;#z;#B;#V;#H;#U;#W;#G;#K;#q;#J;#Y;constructor(e){this.config=e,this.type=`runtype`,this.#e=null,this.#t=null,this.#n=[],this.#r=null,this.#i=null,this.#a=null,this.#o=[],this.#s=0,this.#c=null,this.#l=!1,this.#u=!1,this.#d=0,this.#f=!1,this.#p=-1/0,this.#m=null,this.#h=!1,this.#g=!1,this.#_=0,this.#v=0,this.#b=!1,this.bridge=null,this.#x=!1,this.#S=/* @__PURE__ */ new Set,this.#C=/* @__PURE__ */ new Map,this.#w=/* @__PURE__ */ new Set,this.#E=null,this.#D=null,this.#k=!1,this.#A=!1,this.#j=!1,this.#M=null,this.#N=null,this.#P=Promise.resolve(),this.#F=/* @__PURE__ */ new Set,this.#I=/* @__PURE__ */ new Set,this.#L=null,this.#R=!1,this.#z=/* @__PURE__ */ new Set,this.#B=/* @__PURE__ */ new Set,this.#V=null,this.#H=/* @__PURE__ */ new Set,this.#U=null,this.#W=/* @__PURE__ */ new Map,this.#G=[],this.#K=[],this.#q=[],this.#J=[],this.#Y=[]}async connect(){}setSessionBridge(e){this.bridge=e}prewarm(){if(this.#l||this.#m)return;let e=this.config?.agentId,t=this.config?.clientToken,n=this.config?.host;if(!e||!t||!n)return;let r=Date.now();if(!(r-this.#p<3e4)){this.#p=r;try{this.config?.prewarmMode===`attach`?this.#Z(n,e,t):this.#X(n,e,t)}catch{}}}#X(e,t,n){if(typeof fetch!=`function`)return;let r=`${l(e)}/v1/client/agents/${encodeURIComponent(t)}/voice/prewarm`;fetch(r,{method:`POST`,headers:{Authorization:`Bearer ${n}`},keepalive:!0}).catch(()=>{})}#Z(e,t,n){let r=new URLSearchParams,i=this.config?.attachIdleMs,a=u(i);i!==void 0&&r.set(`attachIdleMs`,String(a));let o=new WebSocket(this.#te(e,t,r),[`runtype.bearer`,`runtype.attach`,n]);o.binaryType=`arraybuffer`;let s=()=>{},c={ws:o,state:`connecting`,ready:new Promise(e=>{s=e}),settle:s,openedAt:0,idleTimer:void 0};this.#m=c,o.onopen=()=>{this.#m===c&&(c.state=o.protocol===`runtype.attach`?`attached`:`live`,c.openedAt=Date.now(),this.#Q(c,a),c.state===`attached`&&o.send(`{"type":"ping"}`),c.settle())},o.onmessage=e=>{if(this.#m!==c||typeof e.data!=`string`)return;let t;try{t=JSON.parse(e.data)}catch{return}t.type===`attached`&&typeof t.idleMs==`number`&&this.#Q(c,t.idleMs-(Date.now()-c.openedAt))},o.onerror=()=>{},o.onclose=()=>{this.#m===c&&this.#$()}}#Q(e,t){clearTimeout(e.idleTimer),e.idleTimer=setTimeout(()=>{this.#m===e&&this.#$()},Math.max(0,t))}#$(){let e=this.#m;if(!e)return;this.#m=null,clearTimeout(e.idleTimer);let{ws:t}=e;if(t.onopen=null,t.onmessage=null,t.onerror=null,t.onclose=null,e.settle(),t.readyState===WebSocket.CONNECTING||t.readyState===WebSocket.OPEN)try{t.close(1e3,`prewarm released`)}catch{}}async#ee(){let e=this.#m;if(!e)return null;if(e.state===`connecting`){let t;await Promise.race([e.ready,new Promise(e=>{t=setTimeout(e,5e3)})]),clearTimeout(t)}return this.#m===e?e.state===`connecting`||e.ws.readyState!==WebSocket.OPEN?(this.#$(),null):(this.#m=null,clearTimeout(e.idleTimer),{ws:e.ws,live:e.state===`live`}):null}#te(t,n,r){let i=`partial_transcript,context`;this.bridge&&this.config?.clientDelegation!==!1&&(i+=`,client_delegation,delegation_update,delegation_read_back,delegation_stream`,this.bridge.clientTools?.()&&(i+=`,client_tools,prior_tool_results`)),r&&(i=`attach,${i}`);let a=new URLSearchParams({voiceProtocol:`runtype-browser-v1`,clientVersion:`persona/${e}`,voiceCapabilities:`full-duplex-v1`,clientCapabilities:i});return r?.forEach((e,t)=>a.set(t,e)),`${c(t)}/ws/agents/${encodeURIComponent(n)}/voice?${a}`}async startListening(){if(this.#l)return;let e=this.#A;e||(this.#k=!1,this.#D=null),this.#A=!1;let r=this.config?.agentId,i=this.config?.clientToken,o=this.config?.host;if(!r)throw Error(`Runtype voice requires an agentId`);if(!i)throw Error(`Runtype voice requires a clientToken`);if(!o)throw Error(`Runtype voice requires a host (or widget apiUrl)`);let s=++this.#d;this.#f=!1,this.#l=!0;try{let c=await navigator.mediaDevices.getUserMedia({audio:{sampleRate:n,channelCount:1,echoCancellation:!0}});if(s!==this.#d){c.getTracks().forEach(e=>e.stop());return}this.#r=c;let l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n});if(this.#t=l,l.state===`suspended`){if(await Promise.race([l.resume().catch(()=>{}),new Promise(t=>setTimeout(t,e?500:1e3))]),s!==this.#d)return;if(l.state!==`running`)throw Error(e?this.#D=`${a} Tap the mic to reconnect.`:`Audio blocked until a tap`)}let u=this.config?.createPlaybackEngine?await this.config.createPlaybackEngine():new t(24e3);if(s!==this.#d){u.destroy(),c.getTracks().forEach(e=>e.stop()),l.close().catch(()=>{});return}this.#c=u,this.#he(),this.#ie(l,c,s);let d=await this.#ee();if(s!==this.#d){d?.ws.close(1e3,`client ended call`);return}if(d){let{ws:e}=d;this.#e=e,this.#ne(e,s),d.live||e.send(`{"type":"start"}`),this.#ae(e),this.#be(`listening`);return}let f=new WebSocket(this.#te(o,r),[`runtype.bearer`,i]);f.binaryType=`arraybuffer`,this.#e=f,f.onopen=()=>{s===this.#d&&(this.#ae(f),this.#be(`listening`))},this.#ne(f,s)}catch(e){throw this.#ye(),this.#xe(e),this.#be(`error`),e}}#ne(e,t){e.onmessage=e=>this.#oe(e,t),e.onerror=()=>{t!==this.#d||this.#E||(this.#xe(/* @__PURE__ */ Error(`Voice connection failed`)),this.#be(`error`),this.#ye())},e.onclose=e=>{if(this.#f){this.#f=!1;return}if(t!==this.#d)return;let n=this.#E??(e.code===4408?{reason:`idle_timeout`}:null);if(n)this.#re(n.reason,n.message);else{if(e.code!==1e3){let t=e.code?` (code ${e.code})`:``;this.#xe(/* @__PURE__ */ Error(`Voice connection closed${t}`)),this.#be(`error`)}else this.#be(`idle`);this.#ye()}}}#re(e,t){let n=i.includes(e)&&!this.#k;if(this.#ye(),n)this.#k=!0,this.#l=!0,this.#D=e===`provider_error`?`${a} Reconnecting…`:`Reconnecting…`,this.#O=setTimeout(()=>{this.#l=!1,this.#A=!0,this.startListening().catch(()=>{})},1e3+Math.random()*1e3),this.#be(`idle`);else{if(i.includes(e))return this.#D=a,this.#xe(/* @__PURE__ */ Error(a)),this.#be(`error`);if(e===`error`)return this.#be(`error`);this.#D=e===`quota`&&t||r.get(e)||null,this.#be(`idle`)}}takeNotice(){let e=this.#D;return this.#D=null,e}getDisclosure(){let e=this.config?.disclosureText;return this.#l&&this.#h&&e!==!1?e||`You're talking to an AI assistant. Voice is processed by OpenAI.`:null}async stopListening(){this.#ye(),this.#be(`idle`)}async disconnect(){this.#ye(),this.#be(`disconnected`),this.#G=[],this.#K=[],this.#q=[],this.#J=[],this.#Y=[]}stopPlayback(){this.#ve();let e=this.#e;e&&e.readyState===WebSocket.OPEN&&(this.#h&&(this.#_=Date.now()+2e3,e.send(`{"type":"cancel"}`)),this.#be(`listening`))}getInterruptionMode(){return`barge-in`}isBargeInActive(){return this.#l}onLevel(e){this.#n.push(e)}async deactivateBargeIn(){this.#ye(),this.#be(`idle`)}#ie(e,t,n){let r=e.createMediaStreamSource(t);this.#i=r;let i=e.createScriptProcessor(4096,1,1);this.#a=i,i.onaudioprocess=e=>{if(n!==this.#d)return;let t=this.#e,r=t?.readyState===WebSocket.OPEN;if(t&&!r&&t.readyState!==WebSocket.CONNECTING)return;let i=e.inputBuffer.getChannelData(0),a=new Int16Array(i.length),o=0;for(let e=0;e<i.length;e++){let t=Math.max(-1,Math.min(1,i[e]));o+=t*t,a[e]=t<0?t*32768:t*32767}if(t&&r)this.#ae(t),t.send(a.buffer);else for(this.#o.push(a.buffer),this.#s+=a.byteLength;this.#s>256e3;)this.#s-=this.#o.shift().byteLength;if(this.#n.length>0){let e=Math.sqrt(o/i.length),t=Math.max(0,Math.min(1,e*4));for(let e of this.#n)e(t)}},r.connect(i),i.connect(e.destination)}#ae(e){for(let t of this.#o)e.send(t);this.#o=[],this.#s=0}#oe(e,t){if(t!==this.#d)return;if(e.data instanceof ArrayBuffer){this.#pe(e.data,t);return}let n;try{n=JSON.parse(e.data)}catch{return}switch(n.type){case`session_config`:n.speechMode&&(this.#h=n.speechMode===`speech_to_speech`,this.#c?.setContinuousMode?.(this.#h)),Array.isArray(n.capabilities)&&(this.#S=new Set(n.capabilities)),typeof n.callId==`string`&&(this.#T=n.callId),this.#x=this.#h&&this.#S.has(`client_delegation`)&&!!this.bridge,this.#h&&!this.#u&&this.#be(`listening`),this.#S.has(`context`)&&!this.#j&&(this.#j=!0,this.#M=this.#se()),this.#x&&this.#S.has(`client_tools`)&&!this.#V&&(this.#V=this.bridge.clientTools?.()?.open({send:e=>{let n=this.#e;return t!==this.#d||n?.readyState!==WebSocket.OPEN?!1:(n.send(JSON.stringify(e)),!0)},cancelled:e=>this.#w.has(e)}).catch(()=>null)??null);break;case`client_tool_call`:{let e=String(n.delegationId);this.#V&&!this.#W.has(e)&&(this.#W.set(e,this.#U),this.#F.add(e)),this.#V?.then(e=>e?.call(n));break}case`transcript_update`:{let e=n.role===`assistant`?`assistant`:`user`,r=n.utteranceId??n.turnId;if(!r||e===`assistant`&&this.#me())break;let i=String(r);if(e===`user`)n.final===!0&&(this.#ce(t),this.#U={id:i,text:String(n.text??``)}),this.#R=!1;else{if(this.#S.has(`delegation_read_back`)){let e=n.delegationId;(typeof e==`string`&&this.#F.has(e)&&!this.#z.has(i)||this.#R&&!this.#z.has(i))&&(this.#B.add(i),this.#R=!1)}else this.#R&&!this.#z.has(i)&&(this.#B.add(i),this.#R=!1);if(this.#z.add(i),this.#B.has(i))break}this.#Se(e,n.text??``,n.final===!0,{turnId:i,...typeof n.startMs==`number`&&{startMs:n.startMs},...typeof n.endMs==`number`&&{endMs:n.endMs},...this.#x&&{caption:!0}});break}case`delegation_started`:case`delegation_completed`:{let e=String(n.delegationId??n.turnId);if(n.type===`delegation_started`){this.#ce(t),this.#H.add(e),this.#F.delete(e),this.#W.delete(e)&&this.#V?.then(t=>t?.abort(e));let r=n.input;this.#x&&r&&this.#fe(e,{delegationId:e,userText:String(r.text??``),userUtteranceIds:Array.isArray(r.userUtteranceIds)?r.userUtteranceIds.filter(e=>typeof e==`string`):[],messages:Array.isArray(r.messages)?r.messages:[],priorToolResults:r.priorToolResults},t)}else if(n.route===`direct`&&this.#V&&!this.#H.has(e)){let t=this.#W.get(e)??this.#U;this.#W.delete(e),this.#H.add(e),this.#F.add(e),this.bridge?.recordDirectTurn?.({delegationId:e,userText:t?.text??``,userUtteranceIds:t?[t.id]:[],assistantText:typeof n.text==`string`?n.text:``})}n.type===`delegation_completed`&&n.speak!==!1&&this.#F.has(e)&&!this.#I.delete(e)&&!this.#S.has(`delegation_read_back`)&&this.#ue(e),this.#g=n.type===`delegation_started`,!this.#u&&!this.#me()&&this.#be(this.#g?`processing`:`listening`);break}case`delegation_progress`:{let e=String(n.delegationId);this.#F.has(e)&&!this.#I.has(e)&&!this.#w.has(e)&&(this.#I.add(e),this.#ue(e));break}case`delegation_cancelled`:this.#de(String(n.delegationId),n.reason!==`session_ending`&&n.reason!==`provider_cancelled`);break;case`warning`:console.warn(`[Persona voice] ${n.code}: ${n.message??``}`,this.#T??``),n.delegationId&&(n.code===`UNKNOWN_DELEGATION`||n.code===`LATE_RESULT_LIMIT`)&&this.#de(String(n.delegationId));break;case`audio_clear`:this.#ve(),this.#_=0,this.#be(`listening`);break;case`transcript_interim`:this.#be(`listening`),this.#Se(`user`,n.text??``,!1);break;case`transcript_final`:{let e=n.role===`assistant`?`assistant`:`user`;this.#be(e===`user`?`processing`:`speaking`),this.#Se(e,n.text??``,!0);break}case`audio_end`:this.#c?this.#c.markStreamEnd():(this.#u=!1,this.#be(`listening`));break;case`metrics`:this.#Ce({llmMs:n.llm_ms,ttsMs:n.tts_ms,firstAudioMs:n.first_audio_ms,totalMs:n.total_ms});break;case`error`:this.#xe(Error(n.error||`Voice error`)),this.#be(`error`);break;case`session_end`:this.#E={reason:String(n.reason),...typeof n.message==`string`&&{message:n.message}}}}async#se(){let e=this.bridge?.getHistory()??[],t=``;try{let e=this.config?.callContext;t=String((typeof e==`function`?await e():e)??``)}catch{}return o(e,t)}#ce(e){let t=this.#M;if(!t)return;this.#M=null;let n=!1,r=t.then(t=>{let r=this.#e;!n&&t&&e===this.#d&&r?.readyState===WebSocket.OPEN&&r.send(JSON.stringify({type:`context`,text:t}))});this.#N={done:r,drop:()=>n=!0}}async#le(){let e=this.#N;if(!e)return;let t,n=await Promise.race([e.done.then(()=>!1),new Promise(e=>{t=setTimeout(()=>e(!0),2e3)})]);clearTimeout(t),n&&e.drop()}#ue(e){this.#R=!0,this.#L=e}#de(e,t=!1){this.#w.add(e),this.#L===e&&(this.#R=!1),this.#I.delete(e),this.#H.has(e)||this.#F.delete(e),this.#V?.then(t=>t?.abort(e)),this.bridge?.dropDelegation?.(e,t),this.#C.get(e)?.abort()}#fe(e,t,n){let r=this.bridge,i=({type:t,...r})=>{let i=this.#e;return n!==this.#d||i?.readyState!==WebSocket.OPEN||this.#w.has(e)?!1:(i.send(JSON.stringify({type:t,delegationId:e,...r})),!0)},a=(e,t,n,r=0)=>i({type:e,status:t,text:n,...r>0&&{streamedChars:r}});this.#P=this.#P.then(async()=>{if(n!==this.#d||this.#w.has(e))return;let o=null,s=this.#S.has(`delegation_stream`)&&this.#S.has(`delegation_read_back`),c=t=>{o=(o??this.#le()).then(()=>{i({type:`delegation_delta`,text:t})&&this.#F.add(e)})},l=await r.runDelegatedTurn(s?{...t,stream:c}:t).catch(()=>({status:`failed`,text:``}));await this.#le(),await o;let u=s?l.streamedChars??0:0,d=!!l.followUp,f=d&&this.#S.has(`delegation_update`);if(!a(f?`delegation_update`:`delegation_result`,d&&!f?`completed`:l.status,l.text,u)||(l.status!==`failed`&&l.inChat!==!1&&this.#F.add(e),!l.followUp))return;let p=new AbortController;this.#C.set(e,p),l.followUp({signal:p.signal,approvalTimeoutMs:this.config?.approvalTimeoutMs&&Math.min(this.config.approvalTimeoutMs,54e4),readBack:f,onUpdate:e=>a(`delegation_update`,`pending_approval`,e)}).then(t=>{this.#C.delete(e),f&&t&&!p.signal.aborted&&a(`delegation_result`,t.status,t.text)})})}#pe(e,t){if(t!==this.#d||!this.#c||this.#me())return;let n=s(e);n.length!==0&&(this.#u||(this.#u=!0,this.#be(`speaking`)),this.#he(),this.#c.enqueue(n),this.#h&&this.#ge(n.length))}#me(){return Date.now()<this.#_}#he(){if(this.#b||!this.#c)return;this.#b=!0;let e=this.#d;this.#c.onFinished(()=>{e===this.#d&&(this.#b=!1,this.#_e())})}#ge(e){let t=Date.now();this.#v=Math.max(t,this.#v)+e/48,clearTimeout(this.#y),this.#y=setTimeout(()=>this.#_e(),this.#v-t+300)}#_e(){this.#u=!1,this.#v=0,this.#e&&this.#e.readyState===WebSocket.OPEN&&this.#be(this.#g?`processing`:`listening`)}#ve(){this.#c?.flush(),this.#b=!1,this.#he(),this.#u=!1,this.#v=0,clearTimeout(this.#y)}#ye(){this.#d+=1,this.#l=!1,this.#u=!1,this.#$(),this.#h=!1,this.#g=!1,this.#x=!1,this.#S=/* @__PURE__ */ new Set;for(let e of this.#C.values())e.abort();if(this.#C.clear(),this.#w.clear(),this.#T=void 0,this.#E=null,clearTimeout(this.#O),this.#j=!1,this.#M=null,this.#N=null,this.#P=Promise.resolve(),this.#F.clear(),this.#I.clear(),this.#L=null,this.#R=!1,this.#z.clear(),this.#B.clear(),this.#V?.then(e=>e?.close()),this.#V=null,this.#H.clear(),this.#W.clear(),this.#U=null,this.#b=!1,this.#_=0,this.#v=0,clearTimeout(this.#y),this.#o=[],this.#s=0,this.#a&&=(this.#a.onaudioprocess=null,this.#a.disconnect(),null),this.#i&&=(this.#i.disconnect(),null),this.#r&&=(this.#r.getTracks().forEach(e=>e.stop()),null),this.#t&&=(this.#t.close().catch(()=>{}),null),this.#c&&=(this.#c.destroy(),null),this.#e){this.#f=!0;try{this.#e.close(1e3,`client ended call`)}catch{}this.#e=null}}onResult(e){this.#G.push(e)}onError(e){this.#K.push(e)}onStatusChange(e){this.#q.push(e)}onTranscript(e){this.#J.push(e)}onMetrics(e){this.#Y.push(e)}#be(e){this.#q.forEach(t=>t(e))}#xe(e){this.#K.forEach(t=>t(e))}#Se(e,t,n,r){this.#J.forEach(i=>i(e,t,n,r))}#Ce(e){this.#Y.forEach(t=>t(e))}},f=class{#e;#t;#n;#r;#i;#a;constructor(e={}){this.config=e,this.type=`browser`,this.#e=null,this.#t=[],this.#n=[],this.#r=[],this.#i=!1,this.#a=typeof window<`u`?window:void 0}async connect(){this.#r.forEach(e=>e(`connected`))}async startListening(){try{if(this.#i)throw Error(`Already listening`);if(!this.#a)throw Error(`Window object not available`);let e=this.#a.SpeechRecognition||this.#a.webkitSpeechRecognition;if(!e)throw Error(`Browser speech recognition not supported`);this.#e=new e,this.#e.lang=this.config?.language||`en-US`,this.#e.continuous=this.config?.continuous||!1,this.#e.interimResults=!0,this.#e.onresult=e=>{let t=Array.from(e.results).map(e=>e[0]).map(e=>e.transcript).join(``),n=e.results[e.results.length-1].isFinal;this.#t.forEach(e=>e({text:t,confidence:n?.8:.5,provider:`browser`})),n&&!this.config?.continuous&&this.stopListening()},this.#e.onerror=e=>{this.#n.forEach(t=>t(Error(e.error))),this.#r.forEach(e=>e(`error`))},this.#e.onstart=()=>{this.#i=!0,this.#r.forEach(e=>e(`listening`))},this.#e.onend=()=>{this.#i=!1,this.#r.forEach(e=>e(`idle`))},this.#e.start()}catch(e){throw this.#n.forEach(t=>t(e)),this.#r.forEach(e=>e(`error`)),e}}async stopListening(){this.#e&&=(this.#e.stop(),null),this.#i=!1,this.#r.forEach(e=>e(`idle`))}onResult(e){this.#t.push(e)}onError(e){this.#n.push(e)}onStatusChange(e){this.#r.push(e)}async disconnect(){await this.stopListening(),this.#r.forEach(e=>e(`disconnected`))}static isSupported(){return`SpeechRecognition`in window||`webkitSpeechRecognition`in window}};function p(e){switch(e.type){case`runtype`:if(!e.runtype)throw Error(`Runtype voice provider requires configuration`);return new d(e.runtype);case`browser`:if(!f.isSupported())throw Error(`Browser speech recognition not supported`);return new f(e.browser||{});case`custom`:{let t=e.custom;if(!t)throw Error("Custom voice provider requires a `custom` provider instance or factory");let n=typeof t==`function`?t():t;if(!n||typeof n.startListening!=`function`)throw Error("Custom voice provider `custom` must be a VoiceProvider (or a factory returning one)");return n}default:throw Error(`Unknown voice provider type: ${e.type}`)}}function m(e){if(e?.type===`custom`&&e.custom)return p({type:`custom`,custom:e.custom});if(e?.type===`runtype`&&e.runtype)return p({type:`runtype`,runtype:e.runtype});if(f.isSupported())return p({type:`browser`,browser:e?.browser||{language:`en-US`}});throw Error(`No supported voice providers available`)}function h(e){try{return m(e),!0}catch{return!1}}const g=e=>e.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,``);var _=class{constructor(e){this.host=e,this.turns=/* @__PURE__ */ new Map,this.latestId=null,this.cancelled=/* @__PURE__ */ new Set}apply(e,t,n,r,i,a){let o=this.host;t=t.trim();let s=this.turns.get(r);if(s||(s={},this.turns.set(r,s),this.latestId=r),e===`user`){s.userFinal=n;let e=s.userId?o.find(s.userId):void 0;if(e){let r=s.userStartMs===void 0&&i!==void 0;r&&(s.userStartMs=i),o.upsert({...e,content:t,voiceProcessing:!n,...r&&this.placeBefore(this.startedAfter(i))})}else{s.userStartMs=i;let e=s.assistantId?o.find(s.assistantId):void 0;s.userId=o.inject({role:`user`,content:t,streaming:!1,voiceProcessing:!n,voiceCaption:a,...this.placeBefore(this.startedAfter(i)??e)}).id}}else if(!this.cancelled.has(r)){s.assistantFinal=n;let e=s.assistantId?o.find(s.assistantId):void 0;if(e){let r=s.assistantStartMs===void 0&&i!==void 0;r&&(s.assistantStartMs=i),o.upsert({...e,content:t,streaming:!n,voiceProcessing:!n,...r&&this.placeBefore(this.startedAfter(i))})}else t&&(s.assistantStartMs=i,s.assistantId=o.inject({role:`assistant`,content:t,streaming:!n,voiceProcessing:!n,voiceCaption:a,...this.placeBefore(this.startedAfter(i))}).id);n&&s.assistantId&&o.markSpoken(s.assistantId)}this.sync()}claimUserTurn(e,t=[]){let n=t[t.length-1];for(let e of t)e!==n&&(this.turns.has(e)||this.turns.set(e,{}),this.turns.get(e).claimed=!0);let r;if(n){if(r=this.turns.get(n),r||(r={},this.turns.set(n,r)),r.claimed)return null;(!r.userId||!this.host.find(r.userId))&&(r.userFinal=!0,r.userId=this.host.inject({role:`user`,content:e.trim()}).id)}else{let t=g(e),n=[...this.turns.values()].reverse().flatMap(e=>{let t=e.userId&&!e.claimed?this.host.find(e.userId):void 0;return t?[{turn:e,text:g(t.content)}]:[]}).filter(({text:e})=>e&&t);r=(n.find(({text:e})=>e===t)??n.find(({text:e})=>e.startsWith(t)||t.startsWith(e)))?.turn}return r?(r.claimed=!0,r.userId):null}cancel(){let e=this.inFlight();if(e.length===0){let t=this.awaiting();if(!t)return;e=[t]}for(let t of e)this.cancelled.add(t);this.closeReplies(e),this.sync()}fail(e){let t=this.awaiting(),n=this.inFlight();if(!t&&n.length===0)return;for(let e of n)this.turns.get(e).assistantFinal=!0;this.closeReplies(n);let r=this.host.inject({role:`assistant`,content:e,streaming:!1,voiceProcessing:!1}),i=t?this.turns.get(t):void 0;i&&(i.assistantId=r.id,i.assistantFinal=!0),this.sync()}settle(){if(this.turns.size===0)return;let e=this.pending(),t=/* @__PURE__ */ new Set;for(let e of this.turns.values())e.userId&&t.add(e.userId),e.assistantId&&(t.add(e.assistantId),this.host.markSpoken(e.assistantId));this.turns.clear(),this.latestId=null,this.host.settle(t),e&&this.host.setStreaming(!1)}startedAfter(e){if(e===void 0)return;let t;for(let n of this.turns.values())for(let[r,i]of[[n.userId,n.userStartMs],[n.assistantId,n.assistantStartMs]])r&&i!==void 0&&i>e&&(!t||i<t.start)&&(t={start:i,id:r});return t&&this.host.find(t.id)}placeBefore(e){if(!e)return;let t=e.sequence??0,n=t-1;for(let r of this.turns.values())for(let i of[r.userId,r.assistantId]){let r=i?this.host.find(i):void 0,a=r?.sequence;r?.createdAt===e.createdAt&&a!==void 0&&a>n&&a<t&&(n=a)}return{createdAt:e.createdAt,sequence:(n+t)/2}}closeReplies(e){let t=/* @__PURE__ */ new Set;for(let n of e){let e=this.turns.get(n)?.assistantId;e&&(t.add(e),this.host.markSpoken(e))}t.size>0&&this.host.settle(t)}inFlight(){let e=[];for(let[t,n]of this.turns)n.assistantId&&!n.assistantFinal&&!this.cancelled.has(t)&&e.push(t);return e}awaiting(){let e=this.latestId;if(!e)return null;let t=this.turns.get(e);return t?.userFinal&&!t.assistantId&&!t.claimed&&!this.cancelled.has(e)?e:null}pending(){return this.awaiting()!==null||this.inFlight().length>0}sync(){this.host.setStreaming(this.pending())}};const v=/* @__PURE__ */ new Set(/* @__PURE__ */ `mr,mrs,ms,dr,prof,sr,jr,st,mt,vs,etc,approx,inc,ltd,co,corp,no,nos,fig,ft,dept,est,min,max,e.g,i.e,a.m,p.m,u.s,u.k`.split(`,`)),y=/([.!?]+|[,;:])(["'”’)\]*_]*)(\s+)|\n\s*/g;function b(e){let t=/(\S+)$/.exec(e)?.[1];if(!t)return!1;let n=t.replace(/^[("'“‘[*_]+/,``).toLowerCase();if(v.has(n)||/^[a-z](?:\.[a-z])*$/.test(n))return!0;if(/^\d+$/.test(t)){let n=e.length-t.length;return n===0||/\n\s*$/.test(e.slice(0,n))}return!1}function*x(e,t){let n=new RegExp(y.source,`g`);for(let r=n.exec(e);r;r=n.exec(e)){let n=r[1];if(!e.slice(0,r.index+(n?.length??0)).trim()||n!==void 0&&(/^[,;:]$/.test(n)&&!t||n===`.`&&b(e.slice(0,r.index))))continue;let i=r.index+r[0].length;i<e.length&&(yield i)}}function S(e,t){let n=e.slice(0,t),r=0;for(let e of n.matchAll(/\s+/g))n.slice(0,e.index).trim()&&(r=e.index+e[0].length);return r}function C(e){let t=0;for(let n of x(e.slice(0,220),!0))t=n;if(t)return t;let n=S(e,220);if(n)return n;let r=e.charCodeAt(219);return r>=55296&&r<=56319?219:220}var w=class{#e=``;#t=!0;push(e){return this.#e+=e,this.#n()}flush(){let e=this.#n(),t=this.#e;if(this.#e=``,t.trim()){for(let n=0;n<t.length;){let r=t.slice(n),i=r.length>220?C(r):r.length;e.push(r.slice(0,i)),n+=i}this.#t=!1}return e}idle(){let e=this.#e;if(!e.trim()||!/(?:[.!?…]["'”’)\]*_]*|\n)\s*$/.test(e))return[];this.#e=``,this.#t=!1;let t=[];for(let n=0;n<e.length;){let r=e.slice(n),i=r.length>220?C(r):r.length;t.push(r.slice(0,i)),n+=i}return t}#n(){let e=[];for(let t=this.#r();t>0;t=this.#r())e.push(this.#e.slice(0,t)),this.#e=this.#e.slice(t),this.#t=!1;return e}#r(){let e=this.#e;if(!e.trim())return 0;let t=x(e,this.#t).next().value??0;if(t&&t<=220)return t;let n=/[.!?]["'”’)\]*_]*$/.test(e);if(this.#t&&!n){let t=e.match(/\S+\s+/g)?.length??0;if(e.trim().length>=30||t>=6){let t=S(e,220);if(t)return t}}return e.length>220?C(e):0}};const T=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n+=1;return n},E=`no|nope|never ?mind|decline(?: it| that)?|cancel(?: it| that| this)?(?: (?:the|my|that|this) (?:[a-z]+ )?(?:order|request))?|don'?t (?:do|place) (?:it|that|the (?:[a-z]+ )?order)`,D=RegExp(`^(?:${E})(?: (?:${E}))?(?: thanks| thank you)?$`),O=e=>D.test(e.toLowerCase().replace(/[^a-z' ]+/g,` `).replace(/\s+/g,` `).trim()),k=()=>new Promise(e=>setTimeout(e,50)),A=(e,t)=>e.length>t?`${e.slice(0,t-1).trimEnd()}…`:e,j=e=>e.replace(/^webmcp:/,``).replace(/([a-z\d])([A-Z])/g,`$1 $2`).replace(/[_\-.]+/g,` `).trim().toLowerCase();function M(e,t=0){if(e==null||e===``)return``;if(typeof e!=`object`)return String(e);if(t>2)return``;if(Array.isArray(e))return e.map(e=>M(e,t+1)).filter(Boolean).join(`, `);let n=e,r=n.quantity??n.qty??n.count,i=n.name??n.item??n.product??n.title;return r!=null&&i!=null&&typeof i!=`object`?`${r} ${i}`:Object.entries(n).filter(([e])=>!e.startsWith(`_`)).map(([e,n])=>{let r=M(n,t+1);return r&&(t?`${j(e)} ${r}`:`${j(e)}: ${r}`)}).filter(Boolean).join(t?`, `:`; `)}function N(e){let t=e.length>1?`These actions need the user's approval in the chat before they happen:`:`This action needs the user's approval in the chat before it happens:`,n=1e3-t.length-119-2;return`${t}\n${e.map(t=>{let r=[j(t.toolName)];t.description&&r.push(`(${A(t.description.trim(),160)})`);let i=M(t.parameters);return i&&r.push(`with ${i}`),t.reason&&r.push(`because: ${A(t.reason.trim(),160)}`),A(`- ${r.join(` `)}`,Math.floor(n/e.length)-1)}).join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
1
|
+
import{a as e}from"./chunk-CEPM3FOp.js";import{r as t}from"./chunk-BnfM7-qg.js";import{t as n}from"./chunk-DbD5qyBw.js";const{setLoader:r,load:i,provide:a,getSync:o}=t({fallbackImport:()=>import(`./chunk-DABqu7C3.js`)}),s=/* @__PURE__ */ new Set,c=()=>{let e=[...s];s.clear();for(let t of e)try{t()}catch{}},l=()=>{let e=o();return e?Promise.resolve(e):i().then(e=>(c(),e))},u=e=>o()?()=>{}:(s.add(e),()=>{s.delete(e)}),d=e=>{a(e),c()},f=o,p=new class{#e=/* @__PURE__ */ new Map;#t=/* @__PURE__ */ new Map;register(e,t,n){this.#e.has(e)&&console.warn(`[ComponentRegistry] Component "${e}" is already registered. Overwriting.`),this.#e.set(e,t),n?this.#t.set(e,n):this.#t.delete(e)}unregister(e){this.#e.delete(e),this.#t.delete(e)}get(e){return this.#e.get(e)}has(e){return this.#e.has(e)}getOptions(e){return this.#t.get(e)}getAllNames(){return Array.from(this.#e.keys())}clear(){this.#e.clear(),this.#t.clear()}registerAll(e){Object.entries(e).forEach(([e,t])=>{this.register(e,t)})}};function m(e,t){return e.components&&Object.prototype.hasOwnProperty.call(e.components,t)?e.components[t]:p.get(t)}function h(e,t){return e.components&&Object.prototype.hasOwnProperty.call(e.components,t)?void 0:p.getOptions(t)}const g=(e,t)=>t?(f()?.stabilizeStreamingMarkdown??n)(e):e,_=e=>{if(!e)return;let t={},n=e;if(n.heading){let e=n.heading;t.heading=(t,n,r)=>e({type:`heading`,raw:r,depth:n,text:t,tokens:[]})}if(n.code){let e=n.code;t.code=(t,n,r)=>e({type:`code`,raw:``,text:t,lang:n,escaped:r})}if(n.blockquote){let e=n.blockquote;t.blockquote=t=>e({type:`blockquote`,raw:``,text:t,tokens:[]})}if(n.table){let e=n.table;t.table=(t,n)=>e({type:`table`,raw:``,header:[],rows:[],align:[],headerHtml:t,bodyHtml:n})}if(n.link){let e=n.link;t.link=(t,n,r)=>e({type:`link`,raw:``,href:t,title:n??null,text:r,tokens:[]})}if(n.image){let e=n.image;t.image=(t,n,r)=>e({type:`image`,raw:``,href:t,title:n??null,text:r})}if(n.list){let e=n.list;t.list=(t,n,r)=>e({type:`list`,raw:``,ordered:n,start:r,loose:!1,items:[],itemsHtml:t})}if(n.listitem){let e=n.listitem;t.listitem=(t,n,r)=>e({type:`list_item`,raw:``,task:n,checked:r,loose:!1,text:t,tokens:[]})}if(n.paragraph){let e=n.paragraph;t.paragraph=t=>e({type:`paragraph`,raw:``,text:t,tokens:[]})}if(n.codespan){let e=n.codespan;t.codespan=t=>e({type:`codespan`,raw:``,text:t})}if(n.strong){let e=n.strong;t.strong=t=>e({type:`strong`,raw:``,text:t,tokens:[]})}if(n.em){let e=n.em;t.em=t=>e({type:`em`,raw:``,text:t,tokens:[]})}if(n.del){let e=n.del;t.del=t=>e({type:`del`,raw:``,text:t,tokens:[]})}if(n.html){let e=n.html;t.html=t=>e({type:`html`,raw:t,text:t})}if(n.text){let e=n.text;t.text=t=>e({type:`text`,raw:t,text:t})}if(n.checkbox){let e=n.checkbox;t.checkbox=t=>e({checked:t})}return n.hr&&(t.hr=n.hr),n.br&&(t.br=n.br),t},v=e=>{let t=null;return n=>{let r=f();if(!r)return b(n);if(!t){let{Marked:n}=r,i=e?.markedOptions;t=new n({gfm:i?.gfm??!0,breaks:i?.breaks??!0,pedantic:i?.pedantic,silent:i?.silent});let a=_(e?.renderer);a&&t.use({renderer:a})}return t.parse(n)}},y=e=>e?v({markedOptions:e.options,renderer:e.renderer}):v(),b=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),x={ALLOWED_TAGS:/* @__PURE__ */ `h1.h2.h3.h4.h5.h6.p.br.hr.div.span.ul.ol.li.dl.dt.dd.strong.em.b.i.u.s.del.ins.mark.small.sub.sup.abbr.kbd.var.samp.code.a.img.blockquote.pre.details.summary.table.thead.tbody.tfoot.tr.th.td.caption.colgroup.col.input.label.select.option.textarea.button`.split(`.`),ALLOWED_ATTR:/* @__PURE__ */ `href.src.alt.title.target.rel.loading.width.height.colspan.rowspan.scope.class.id.type.name.value.placeholder.disabled.checked.for.aria-label.aria-hidden.aria-expanded.role.tabindex.data-tv-form.data-message-id.data-persona-component-directive.data-preserve-animation.data-persona-instance`.split(`.`)},S=/^data:image\/(?:png|jpe?g|gif|webp|bmp|x-icon|avif)/i,C=()=>{let e=null;return t=>{let n=f();if(!n)return b(t);if(!e){let{DOMPurify:t}=n;e=t(typeof window<`u`?window:void 0),e.addHook(`uponSanitizeAttribute`,(e,t)=>{if(t.attrName===`src`||t.attrName===`href`){let e=t.attrValue;e.toLowerCase().startsWith(`data:`)&&!S.test(e)&&(t.attrValue=``,t.keepAttr=!1)}})}return e.sanitize(t,x)}},w=e=>e===!1?null:typeof e==`function`?e:C();function T(t,n,r){return n?.trim()||(e(t,`artifact.${r}`)?`var(--persona-components-artifact-${r.split(`.`).join(`-`)})`:void 0)}function E(e){return e?.features?.artifacts?.enabled===!0}function D(e,t){if(e.classList.remove(`persona-artifact-border-full`,`persona-artifact-border-left`),e.style.removeProperty(`--persona-artifact-pane-border`),e.style.removeProperty(`--persona-artifact-pane-border-left`),!E(t))return;let n=t.features?.artifacts?.layout,r=T(t,n?.paneBorder,`pane.border`),i=T(t,n?.paneBorderLeft,`pane.borderLeft`);r?(e.classList.add(`persona-artifact-border-full`),e.style.setProperty(`--persona-artifact-pane-border`,r)):i&&(e.classList.add(`persona-artifact-border-left`),e.style.setProperty(`--persona-artifact-pane-border-left`,i))}function O(e){e.style.removeProperty(`--persona-artifact-doc-toolbar-icon-color`),e.style.removeProperty(`--persona-artifact-doc-toggle-active-bg`),e.style.removeProperty(`--persona-artifact-doc-toggle-active-border`),e.style.removeProperty(`--persona-artifact-doc-toggle-active-color`)}const k=[`panel`,`seamless`,`detached`];function A(e){let t=e.features?.artifacts?.layout?.paneAppearance;return t&&k.includes(t)?t:t?`panel`:e.launcher?.detachedPanel?`detached`:`panel`}function j(e){return!e||!E(e)?!1:A(e)===`detached`}function M(e,t){if(!E(t)){e.style.removeProperty(`--persona-artifact-split-gap`),e.style.removeProperty(`--persona-artifact-pane-width`),e.style.removeProperty(`--persona-artifact-pane-max-width`),e.style.removeProperty(`--persona-artifact-pane-min-width`),e.style.removeProperty(`--persona-artifact-drawer-width`),e.style.removeProperty(`--persona-artifact-pane-bg`),e.style.removeProperty(`--persona-artifact-pane-padding`),O(e),D(e,t);return}let n=t.features?.artifacts?.layout,r=A(t)===`detached`?`var(--persona-panel-inset)`:`0`;e.style.setProperty(`--persona-artifact-split-gap`,n?.splitGap??r),e.style.setProperty(`--persona-artifact-pane-width`,n?.paneWidth??`40%`),e.style.setProperty(`--persona-artifact-pane-max-width`,n?.paneMaxWidth??`28rem`),n?.drawerWidth?e.style.setProperty(`--persona-artifact-drawer-width`,n.drawerWidth):e.style.removeProperty(`--persona-artifact-drawer-width`),n?.paneMinWidth?e.style.setProperty(`--persona-artifact-pane-min-width`,n.paneMinWidth):e.style.removeProperty(`--persona-artifact-pane-min-width`);let i=T(t,n?.paneBackground,`pane.background`);i?e.style.setProperty(`--persona-artifact-pane-bg`,i):e.style.removeProperty(`--persona-artifact-pane-bg`);let a=T(t,n?.panePadding,`pane.padding`);a?e.style.setProperty(`--persona-artifact-pane-padding`,a):e.style.removeProperty(`--persona-artifact-pane-padding`);let o=[[T(t,n?.documentToolbarIconColor,`toolbar.iconColor`),`--persona-artifact-doc-toolbar-icon-color`],[T(t,n?.documentToolbarToggleActiveBackground,`toolbar.toggleActiveBackground`),`--persona-artifact-doc-toggle-active-bg`],[T(t,n?.documentToolbarToggleActiveBorderColor,`toolbar.toggleActiveBorderColor`),`--persona-artifact-doc-toggle-active-border`],[T(t,n?.documentToolbarToggleActiveColor,`toolbar.toggleActiveColor`),`--persona-artifact-doc-toggle-active-color`]];for(let[t,n]of o){let r=t?.trim();r?e.style.setProperty(n,r):e.style.removeProperty(n)}D(e,t)}function N(e,t){for(let t of k)e.classList.remove(`persona-artifact-appearance-${t}`);if(e.style.removeProperty(`--persona-artifact-pane-radius`),e.style.removeProperty(`--persona-artifact-pane-shadow`),e.style.removeProperty(`--persona-artifact-chat-shadow`),!E(t))return;let n=t.features?.artifacts?.layout,r=A(t);e.classList.add(`persona-artifact-appearance-${r}`);let i=T(t,n?.paneBorderRadius,`pane.borderRadius`);i&&e.style.setProperty(`--persona-artifact-pane-radius`,i);let a=T(t,n?.paneShadow,`pane.shadow`);a&&e.style.setProperty(`--persona-artifact-pane-shadow`,a);let o=T(t,n?.chatShadow,`chat.shadow`);o&&e.style.setProperty(`--persona-artifact-chat-shadow`,o)}function P(e,t){return!t||!E(e)?!1:e.features?.artifacts?.layout?.expandLauncherPanelWhenOpen!==!1}function F(e,t){if(!e?.trim())return t;let n=/^(\d+(?:\.\d+)?)px\s*$/i.exec(e.trim());return n?Math.max(0,Number(n[1])):t}function I(e){if(!e?.trim())return null;let t=/^(\d+(?:\.\d+)?)px\s*$/i.exec(e.trim());return t?Math.max(0,Number(t[1])):null}function L(e,t,n){return n<t?t:Math.min(n,Math.max(t,e))}function R(e,t,n,r){let i=e-r-2*t-n;return Math.max(0,i)}function z(e,t){let n=(t.getComputedStyle(e).gap||`0px`).trim().split(/\s+/)[0]??`0px`,r=/^([\d.]+)px$/i.exec(n);if(r)return Number(r[1]);let i=/^([\d.]+)/.exec(n);return i?Number(i[1]):8}function B(e,t,n,r,i,a,o=200){let s=F(i,200),c=R(t,n,r,o);c=Math.max(s,c);let l=I(a);return l!==null&&(c=Math.min(c,l)),L(e,s,c)}export{l as _,T as a,P as c,b as d,g as f,f as g,m as h,N as i,w as l,h as m,B as n,E as o,p,M as r,j as s,z as t,y as u,u as v,d as y};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{I as e,T as t,n,t as r,w as i}from"./chunk-
|
|
1
|
+
import{I as e,T as t,n,t as r,w as i}from"./chunk-d54BJdKd.js";import{r as a}from"./chunk-D5BxWOFB.js";import{a as o,c as s,d as c,f as l,i as u,l as d,n as f,o as p,p as m}from"./chunk-Dj2a9f9w.js";import{n as h,t as g}from"./chunk-Di5V0tA0.js";import{t as _}from"./chunk-D3NN94Ru.js";const v=e=>{let{mount:t,overlay:n,sessionRef:r}=e,i=(i,a,o)=>{let s=a.trim();if(!s||!r.current)return;let c=i.getAttribute(`data-tool-call-id`)??``,u=o.source===`free-text`;t.dispatchEvent(new CustomEvent(`persona:askUserQuestion:answered`,{detail:{instanceId:e.instanceId,toolUseId:c,answer:s,answers:o.structured,values:o.values??(o.source===`multi`?s.split(`, `):[s]),isFreeText:u,source:o.source},bubbles:!0,composed:!0})),l(n,c);let d=r.current.getMessages().find(e=>e.toolCall?.id===c);d?.agentMetadata?.awaitingLocalTool?r.current.resolveAskUserQuestion(d,o.structured??s):r.current.sendMessage(s)},a=e=>{let t=r.current;if(!t)return;let n=e.getAttribute(`data-tool-call-id`)??``,i=t.getMessages().find(e=>e.toolCall?.id===n);i&&t.persistAskUserQuestionProgress(i,{answers:f(e,i),currentIndex:u(e)})},h=e=>Object.entries(e).map(([e,t])=>`${e}: ${Array.isArray(t)?t.join(`, `):t}`).join(` | `),g=t=>{if(e.config().features?.askUserQuestion?.groupedAutoAdvance===!1)return;let n=u(t);if(n>=o(t)-1)return;let i=r.current?.getMessages().find(e=>e.toolCall?.id===t.getAttribute(`data-tool-call-id`));i&&(d(t,i,e.config(),n+1),a(t))};return{click:_=>{let v=_.target.closest(`[data-ask-user-action]`);if(!v)return;let y=v.closest(`[data-persona-ask-sheet-for]`);if(!y)return;let b=v.getAttribute(`data-ask-user-action`);if(_.preventDefault(),_.stopPropagation(),b===`dismiss`){let i=y.getAttribute(`data-tool-call-id`)??``;t.dispatchEvent(new CustomEvent(`persona:askUserQuestion:dismissed`,{detail:{instanceId:e.instanceId,toolUseId:i},bubbles:!0,composed:!0})),l(n,i);let a=r.current?.getMessages().find(e=>e.toolCall?.id===i);a?.agentMetadata?.awaitingLocalTool&&(r.current?.markAskUserQuestionResolved(a),r.current?.resolveAskUserQuestion(a,`(dismissed)`))}else if(b===`pick`){let e=v.getAttribute(`data-option-label`);if(!e)return;let t=y.getAttribute(`data-multi-select`)===`true`,n=s(y);if(n&&t){let t=c(y)[u(y)],n=new Set(Array.isArray(t)?t:[]);n.has(e)?n.delete(e):n.add(e),m(y,Array.from(n)),a(y);return}if(n){m(y,e),a(y),g(y);return}if(t){let e=v.getAttribute(`aria-pressed`)===`true`;v.setAttribute(`aria-pressed`,e?`false`:`true`),v.classList.toggle(`persona-ask-pill-selected`,!e);let t=y.querySelector(`[data-ask-user-action="submit-multi"]`);t&&(t.disabled=p(y).length===0);return}i(y,e,{source:`pick`,values:[e]})}else if(b===`submit-multi`){let e=p(y);if(e.length===0)return;i(y,e.join(`, `),{source:`multi`,values:e})}else if(b===`open-free-text`){let e=y.querySelector(`[data-ask-free-text-row="true"]`);e&&(e.classList.remove(`persona-hidden`),e.querySelector(`[data-ask-free-text-input="true"]`)?.focus())}else if(b===`focus-free-text`)y.querySelector(`[data-ask-free-text-input="true"]`)?.focus();else if(b===`submit-free-text`){let e=y.querySelector(`[data-ask-free-text-input="true"]`)?.value??``;if(!e.trim())return;if(s(y)){m(y,e.trim()),a(y),g(y);return}i(y,e,{source:`free-text`})}else if(b===`next`||b===`back`){if(!r.current)return;let t=y.getAttribute(`data-tool-call-id`)??``,n=r.current.getMessages().find(e=>e.toolCall?.id===t);if(!n)return;let i=y.querySelector(`[data-ask-free-text-input="true"]`)?.value?.trim()??``;if(i){let e=c(y)[u(y)];(typeof e!=`string`||e!==i)&&m(y,i)}let o=b===`next`?1:-1,s=u(y)+o;d(y,n,e.config(),s),a(y)}else if(b===`submit-all`){if(!r.current)return;let e=y.getAttribute(`data-tool-call-id`)??``,t=r.current.getMessages().find(t=>t.toolCall?.id===e);if(!t)return;let n=y.querySelector(`[data-ask-free-text-input="true"]`)?.value?.trim()??``;n&&m(y,n);let a=f(y,t);r.current.persistAskUserQuestionProgress(t,{answers:a,currentIndex:u(y)});let o=h(a);i(y,o||`(submitted)`,{source:`submit-all`,structured:a})}else if(b===`skip`){if(!r.current)return;let c=y.getAttribute(`data-tool-call-id`)??``,p=r.current.getMessages().find(e=>e.toolCall?.id===c);if(!p)return;let g=s(y),_=u(y),v=_>=o(y)-1;if(!g){t.dispatchEvent(new CustomEvent(`persona:askUserQuestion:dismissed`,{detail:{instanceId:e.instanceId,toolUseId:c},bubbles:!0,composed:!0})),l(n,c),p.agentMetadata?.awaitingLocalTool&&(r.current.markAskUserQuestionResolved(p),r.current.resolveAskUserQuestion(p,`(dismissed)`));return}m(y,``);let b=y.querySelector(`[data-ask-free-text-input="true"]`);if(b&&(b.value=``),v){let e=f(y,p),t=h(e);i(y,t||`(skipped)`,{source:`submit-all`,structured:e});return}d(y,p,e.config(),_+1),a(y)}},keydown:e=>{if(e.key!==`Enter`)return;let t=e.target;if(!t.matches?.(`[data-ask-free-text-input="true"]`))return;let n=t.closest(`[data-persona-ask-sheet-for]`);if(!n)return;e.preventDefault();let r=t.value;r.trim()&&(s(n)?(m(n,r.trim()),a(n),g(n)):i(n,r,{source:`free-text`}))}}},y={loadContextMentions:()=>t(),loadContextMentionsInline:()=>i(),renderLucideIcon:(...t)=>e(...t),createMentionButton:(...e)=>n(...e)};function b(e){let{loadContextMentions:t,loadContextMentionsInline:n,renderLucideIcon:i,createMentionButton:o}=e.deps??y,s=e.config.contextMentions;if(!s?.enabled)return null;let c=_(s).filter(e=>e.sources.length>0);if(c.length===0)return typeof console<`u`&&console.warn(`[Persona] contextMentions.enabled is true but no sources were provided; mentions are disabled.`),null;let l=c.filter(e=>e.sources.some(e=>typeof e.matchCommand==`function`)),u=e=>l.some(t=>t.trigger?t.position===`line-start`?e.split(`
|
|
2
2
|
`).some(e=>e.startsWith(t.trigger)):(t.position===`anywhere`?e:e.split(`
|
|
3
3
|
`)[0]).startsWith(t.trigger):!1),d=(t,n)=>{if(typeof window<`u`)try{window.dispatchEvent(new CustomEvent(`persona:mention:${t}`,{detail:{...n,instanceId:e.textarea.closest(`[data-persona-instance]`)?.dataset.personaInstance}}))}catch{}},f=!e.chipRow,p=e.chipRow??a(`div`,{className:`persona-mention-context-row`,attrs:{"data-persona-mention-context-row":``}}),m=null,v=null,b=e.textarea,x=null,S=null,C=null,w=null,T=()=>{if(m)return Promise.resolve(m);if(v)return v;let n=t().then(t=>(t.setMentionIconRenderer(i),m=t.mountContextMentions({mentionConfig:s,textarea:e.textarea,composerInput:x??void 0,anchor:e.anchor,contextRow:p,getMessages:e.getMessages,getConfig:()=>e.config,liveRegionHost:e.liveRegionHost,popoverContainer:e.popoverContainer,onPickerOpenChange:O,emit:d}),m)).catch(e=>(typeof console<`u`&&console.warn(`[Persona] Failed to load context mentions runtime`,e),v===n&&(v=null),null));return v=n,n};s.display===`inline`&&n().then(t=>{let n=t.mountInlineComposer({textarea:e.textarea,renderToken:e=>r(e,{render:s.renderMentionToken}),onMentionRemoved:e=>m?.untrackMention(e)});x=n.input,S=n.destroy;let i=b;i.replaceWith(n.element),b=n.element,w={next:n.element,prev:i},C?.(n.element,i),m?m.rebindComposer(n.input):v&&v.then(e=>e?.rebindComposer(n.input))}).catch(e=>{typeof console<`u`&&console.warn(`[Persona] Failed to load inline mention composer`,e)});let E=[],D=/* @__PURE__ */ new Map;for(let e of c){if(!e.showButton)continue;let t=o({config:{...s,buttonIconName:e.buttonIconName,buttonTooltipText:e.buttonTooltipText},onOpen:()=>{T().then(t=>t?.openMenu(e.trigger))}});E.push(t),D.set(e.trigger,t.button)}let O=(e,t,n)=>{let r=D.get(t);r&&(r.setAttribute(`aria-expanded`,e?`true`:`false`),e?r.setAttribute(`aria-controls`,n):r.removeAttribute(`aria-controls`))};return{affordanceButtons:E.map(e=>e.wrapper),contextRow:p,handleInput:e=>{if(m){m.handleInput();return}if(!g(e))return;let t=b,n=t.selectionStart??0;h(t.value,n,c)&&T().then(e=>e?.handleInput())},handleKeydown:e=>{if(m?.isMenuOpen())return m.handleKeydown(e);if(e.key===`Backspace`&&m?.hasMentions()&&!w){let t=b,n=t.selectionStart===0&&t.selectionEnd===0;if((t.value.length===0||n)&&m.removeLastChip())return e.preventDefault(),!0}return!1},isMenuOpen:()=>m?.isMenuOpen()??!1,hasMentions:()=>m?.hasMentions()??!1,getMentionRefs:()=>m?.getMentionRefs()??[],captureDraft:()=>m?.captureDraft()??[],restoreDraft:e=>m?.restoreDraft(e),getInlineInput:()=>x,collectForSubmit:()=>m?.collectForSubmit()??null,takeInlineCommand:async e=>u(e)?(m??await T())?.dispatchInlineCommand(e)??null:null,clear:()=>m?.clear(),prefetch:()=>{t().catch(()=>{})},onComposerSwap:e=>{C=e,w&&e(w.next,w.prev)},destroy:()=>{m?.destroy(),S?.();for(let e of E)e.wrapper.remove();f&&p.remove()}}}export{v as createAskUserSheetHandlers,b as createContextMentionOrchestrator};
|