@runtypelabs/persona 4.33.0 → 4.35.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/dist/activity-ui.d.cts +3 -15
  2. package/dist/activity-ui.d.ts +3 -15
  3. package/dist/animations/glyph-cycle.d.cts +1 -3
  4. package/dist/animations/glyph-cycle.d.ts +1 -3
  5. package/dist/animations/wipe.d.cts +1 -3
  6. package/dist/animations/wipe.d.ts +1 -3
  7. package/dist/approval-ui.cjs +2 -2
  8. package/dist/approval-ui.d.cts +3 -15
  9. package/dist/approval-ui.d.ts +3 -15
  10. package/dist/approval-ui.js +1 -1
  11. package/dist/artifacts-ui.cjs +1 -1
  12. package/dist/artifacts-ui.d.cts +3 -21
  13. package/dist/artifacts-ui.d.ts +3 -21
  14. package/dist/background-runtime.d.cts +2 -3
  15. package/dist/background-runtime.d.ts +2 -3
  16. package/dist/{chunk-DW7Vg_l2.js → chunk-B1P8w9_X.js} +1 -1
  17. package/dist/{chunk-D6U0E82p.js → chunk-B30Jdgg6.js} +1 -1
  18. package/dist/{chunk-gu34lr-P.js → chunk-Brdx4NCz.js} +1 -1
  19. package/dist/{chunk-6CUrH_jm.js → chunk-Bzo9GaAi.js} +1 -1
  20. package/dist/{chunk-Ds_twaZn.js → chunk-C4v-HNhS.js} +1 -1
  21. package/dist/{chunk-Bkma5hIU.js → chunk-CE4seJxF.js} +1 -1
  22. package/dist/chunk-CNBMBx-Y.js +2 -0
  23. package/dist/{chunk-ql5N2I_t.js → chunk-CWzHNuVK.js} +1 -1
  24. package/dist/{chunk-DbGLjU2P.js → chunk-CYpt7PsO.js} +1 -1
  25. package/dist/chunk-Cd8mp8Sv.js +1 -0
  26. package/dist/chunk-CsfE8WRG.js +1 -0
  27. package/dist/{chunk-DOZmcve8.js → chunk-Csr59G5V.js} +1 -1
  28. package/dist/{chunk-Co3VVwGe.js → chunk-D2pHRNEq.js} +0 -0
  29. package/dist/chunk-D3kZO8u-.js +1 -0
  30. package/dist/chunk-DAthf5H3.js +1 -0
  31. package/dist/{chunk-CXQJG7pb.js → chunk-DZ_aillY.js} +2 -2
  32. package/dist/{chunk-6C23QQdP.js → chunk-DgJV9zbK.js} +1 -1
  33. package/dist/chunk-Dv6KtIT1.js +1 -0
  34. package/dist/chunk-Dws8IrdR.js +1 -0
  35. package/dist/chunk-ThxxD8oK.js +1 -0
  36. package/dist/{chunk-C-EHtpbB.js → chunk-h5aOI_Pa.js} +1 -1
  37. package/dist/chunk-kizhspe5.js +1 -0
  38. package/dist/client-dispatch.js +1 -1
  39. package/dist/client-history.js +1 -1
  40. package/dist/client-stream.js +1 -1
  41. package/dist/{code-generators-DqauYyfX.d.cts → code-generators-DPAqTcAz.d.cts} +0 -2
  42. package/dist/{code-generators-DqauYyfX.d.ts → code-generators-DPAqTcAz.d.ts} +0 -2
  43. package/dist/codegen.cjs +1 -1
  44. package/dist/codegen.d.cts +1 -1
  45. package/dist/codegen.d.ts +1 -1
  46. package/dist/codegen.js +1 -1
  47. package/dist/composer-actions-runtime.cjs +1 -1
  48. package/dist/composer-actions-runtime.d.cts +4 -20
  49. package/dist/composer-actions-runtime.d.ts +4 -20
  50. package/dist/composer-actions-runtime.js +1 -1
  51. package/dist/{composer-input-DnqGCXZz.d.ts → composer-input-BSDNPOqV.d.cts} +1 -7
  52. package/dist/{composer-input-DnqGCXZz.d.cts → composer-input-BSDNPOqV.d.ts} +1 -7
  53. package/dist/{composer-store-6Iwy6WLI.d.ts → composer-store-DC-gAjtN.d.cts} +1 -3
  54. package/dist/{composer-store-6Iwy6WLI.d.cts → composer-store-DC-gAjtN.d.ts} +1 -3
  55. package/dist/config-diagnostics.d.cts +0 -2
  56. package/dist/config-diagnostics.d.ts +0 -2
  57. package/dist/{context-mention-manager-B-rHF98n.d.ts → context-mention-manager-CCpeoGL2.d.cts} +2 -6
  58. package/dist/{context-mention-manager-B-rHF98n.d.cts → context-mention-manager-CCpeoGL2.d.ts} +2 -6
  59. package/dist/context-mentions-inline.cjs +1 -1
  60. package/dist/context-mentions-inline.d.cts +2 -4
  61. package/dist/context-mentions-inline.d.ts +2 -4
  62. package/dist/context-mentions-inline.js +1 -1
  63. package/dist/context-mentions.cjs +2 -2
  64. package/dist/context-mentions.d.cts +3 -9
  65. package/dist/context-mentions.d.ts +3 -9
  66. package/dist/context-mentions.js +1 -1
  67. package/dist/{defaults-BuOjqUAG.d.ts → defaults-tj5RcN8r.d.cts} +1 -5
  68. package/dist/{defaults-BuOjqUAG.d.cts → defaults-tj5RcN8r.d.ts} +1 -5
  69. package/dist/dictation-runtime.cjs +1 -1
  70. package/dist/dictation-runtime.d.cts +4 -13
  71. package/dist/dictation-runtime.d.ts +4 -13
  72. package/dist/dictation-runtime.js +1 -1
  73. package/dist/{dom-context-DHTabIn7.d.cts → dom-context-Bw-_9Evh.d.cts} +0 -2
  74. package/dist/{dom-context-DHTabIn7.d.ts → dom-context-Bw-_9Evh.d.ts} +0 -2
  75. package/dist/event-stream-view.cjs +1 -1
  76. package/dist/event-stream-view.d.cts +3 -16
  77. package/dist/event-stream-view.d.ts +3 -16
  78. package/dist/{fallback-speech-engine-SqEfkGda.d.ts → fallback-speech-engine-gkhbjLiZ.d.cts} +1 -3
  79. package/dist/{fallback-speech-engine-SqEfkGda.d.cts → fallback-speech-engine-gkhbjLiZ.d.ts} +1 -3
  80. package/dist/{feature-preferences-DqAmje-2.d.ts → feature-preferences-CerDWGZ7.d.cts} +1 -5
  81. package/dist/{feature-preferences-DqAmje-2.d.cts → feature-preferences-CerDWGZ7.d.ts} +1 -5
  82. package/dist/forms-ui.d.cts +2 -4
  83. package/dist/forms-ui.d.ts +2 -4
  84. package/dist/{history-confirm-dialog-B3L7QNcO.d.cts → history-confirm-dialog-CrkSB3Ra.d.cts} +2 -14
  85. package/dist/{history-confirm-dialog-B3L7QNcO.d.ts → history-confirm-dialog-CrkSB3Ra.d.ts} +2 -14
  86. package/dist/history-shell.cjs +1 -1
  87. package/dist/history-shell.d.cts +8 -27
  88. package/dist/history-shell.d.ts +8 -27
  89. package/dist/history-shell.js +1 -1
  90. package/dist/history-view.d.cts +1 -1
  91. package/dist/history-view.d.ts +1 -1
  92. package/dist/icons-extra.cjs +1 -1
  93. package/dist/icons-extra.d.cts +0 -2
  94. package/dist/icons-extra.d.ts +0 -2
  95. package/dist/index.cjs +44 -44
  96. package/dist/index.cjs.map +1 -1
  97. package/dist/index.d.cts +10 -10
  98. package/dist/index.d.ts +10 -10
  99. package/dist/index.global.js +1 -1
  100. package/dist/index.global.js.map +1 -1
  101. package/dist/index.js +50 -50
  102. package/dist/index.js.map +1 -1
  103. package/dist/install.global.js +1 -1
  104. package/dist/install.global.js.map +1 -1
  105. package/dist/launcher.global.js +2 -2
  106. package/dist/launcher.global.js.map +1 -1
  107. package/dist/{loading-label-runtime-loader-JecjOfJS.d.ts → loading-label-runtime-loader-fWIRrhUF.d.cts} +1 -3
  108. package/dist/{loading-label-runtime-loader-JecjOfJS.d.cts → loading-label-runtime-loader-fWIRrhUF.d.ts} +1 -3
  109. package/dist/loading-label-runtime.cjs +1 -1
  110. package/dist/loading-label-runtime.d.cts +1 -1
  111. package/dist/loading-label-runtime.d.ts +1 -1
  112. package/dist/loading-label-runtime.js +1 -1
  113. package/dist/markdown-parsers.js +1 -1
  114. package/dist/{message-bubble-CBYtpDsT.d.ts → message-bubble-Czc0lOHr.d.cts} +20 -3
  115. package/dist/{message-bubble-CBYtpDsT.d.cts → message-bubble-Czc0lOHr.d.ts} +20 -3
  116. package/dist/{plugin-kit-C1mRjLgW.d.cts → plugin-kit-C30jE-cw.d.cts} +3 -3
  117. package/dist/{plugin-kit-C1mRjLgW.d.ts → plugin-kit-C30jE-cw.d.ts} +3 -3
  118. package/dist/plugin-kit.cjs +1 -1
  119. package/dist/plugin-kit.d.cts +1 -1
  120. package/dist/plugin-kit.d.ts +1 -1
  121. package/dist/plugin-kit.js +1 -1
  122. package/dist/preferences-runtime.cjs +1 -1
  123. package/dist/preferences-runtime.d.cts +1 -1
  124. package/dist/preferences-runtime.d.ts +1 -1
  125. package/dist/preferences-runtime.js +1 -1
  126. package/dist/{preview-_UJwwt2L.d.cts → preview-D-osV3FU.d.cts} +2 -6
  127. package/dist/{preview-_UJwwt2L.d.ts → preview-D-osV3FU.d.ts} +2 -6
  128. package/dist/{registry-B5ZV3K-h.d.ts → registry-B6w91tx0.d.cts} +1 -8
  129. package/dist/{registry-B5ZV3K-h.d.cts → registry-B6w91tx0.d.ts} +1 -8
  130. package/dist/{session-Bys8_XuB.d.cts → session-BUQrs3Of.d.cts} +10 -93
  131. package/dist/{session-Bys8_XuB.d.ts → session-BUQrs3Of.d.ts} +10 -93
  132. package/dist/session-reconnect.d.cts +2 -4
  133. package/dist/session-reconnect.d.ts +2 -4
  134. package/dist/smart-dom-reader.d.cts +2 -8
  135. package/dist/smart-dom-reader.d.ts +2 -8
  136. package/dist/testing.d.cts +0 -2
  137. package/dist/testing.d.ts +0 -2
  138. package/dist/theme-editor-preview.cjs +50 -50
  139. package/dist/theme-editor-preview.d.cts +1 -1
  140. package/dist/theme-editor-preview.d.ts +1 -1
  141. package/dist/theme-editor-preview.js +25 -25
  142. package/dist/theme-editor.cjs +25 -5
  143. package/dist/theme-editor.d.cts +2 -22
  144. package/dist/theme-editor.d.ts +2 -22
  145. package/dist/theme-editor.js +1 -1
  146. package/dist/theme-reference.cjs +1 -1
  147. package/dist/theme-reference.d.cts +2 -4
  148. package/dist/theme-reference.d.ts +2 -4
  149. package/dist/theme-reference.js +1 -1
  150. package/dist/{tool-loading-animation-d5qAQcwv.d.ts → tool-loading-animation-B7XUf8TN.d.cts} +1 -7
  151. package/dist/{tool-loading-animation-d5qAQcwv.d.cts → tool-loading-animation-B7XUf8TN.d.ts} +1 -7
  152. package/dist/{tooltip-BkW-8MnD.d.cts → tooltip-DbXkAuJL.d.cts} +0 -2
  153. package/dist/{tooltip-BkW-8MnD.d.ts → tooltip-DbXkAuJL.d.ts} +0 -2
  154. package/dist/{turn-activity-ui-q6fHVnx-.d.cts → turn-activity-ui-CohuNMHT.d.cts} +2 -12
  155. package/dist/{turn-activity-ui-q6fHVnx-.d.ts → turn-activity-ui-CohuNMHT.d.ts} +2 -12
  156. package/dist/turn-activity-ui.d.cts +1 -1
  157. package/dist/turn-activity-ui.d.ts +1 -1
  158. package/dist/{types-B_mj21jg.d.cts → types-9i0xcAMT.d.cts} +128 -29
  159. package/dist/{types-B_mj21jg.d.ts → types-9i0xcAMT.d.ts} +128 -29
  160. package/dist/ui-extras.js +3 -3
  161. package/dist/voice-client-tools.d.cts +1 -3
  162. package/dist/voice-client-tools.d.ts +1 -3
  163. package/dist/voice-runtime.cjs +1 -1
  164. package/dist/voice-runtime.d.cts +2 -12
  165. package/dist/voice-runtime.d.ts +2 -12
  166. package/dist/voice-runtime.js +2 -2
  167. package/dist/voice-worklet-player.d.cts +2 -6
  168. package/dist/voice-worklet-player.d.ts +2 -6
  169. package/dist/{webmcp-runtime-entry-ClEO3qdI.d.ts → webmcp-runtime-entry-XNaXa-9h.d.cts} +9 -5
  170. package/dist/{webmcp-runtime-entry-ClEO3qdI.d.cts → webmcp-runtime-entry-XNaXa-9h.d.ts} +9 -5
  171. package/dist/webmcp-runtime.cjs +1 -1
  172. package/dist/webmcp-runtime.d.cts +1 -1
  173. package/dist/webmcp-runtime.d.ts +1 -1
  174. package/dist/webmcp-runtime.js +1 -1
  175. package/dist/widget.css +1 -1
  176. package/package.json +5 -5
  177. package/src/client-dispatch.ts +13 -0
  178. package/src/client.ts +37 -2
  179. package/src/client.webmcp-require-confirm.test.ts +212 -0
  180. package/src/components/composer-model-picker.ts +0 -14
  181. package/src/components/composer-overflow-menu.ts +0 -15
  182. package/src/components/composer-tokens.ts +0 -20
  183. package/src/components/event-stream-view.test.ts +5 -0
  184. package/src/components/message-bubble.ts +26 -6
  185. package/src/components/scroll-to-bottom.test.ts +135 -0
  186. package/src/components/scroll-to-bottom.ts +50 -13
  187. package/src/components/user-message-collapse.ts +117 -0
  188. package/src/defaults.ts +6 -0
  189. package/src/generated/runtype-openapi-contract.ts +13 -0
  190. package/src/plugin-kit.test.ts +101 -0
  191. package/src/plugin-kit.ts +29 -1
  192. package/src/session.ts +6 -2
  193. package/src/session.webmcp.test.ts +32 -0
  194. package/src/styles/widget.css +56 -0
  195. package/src/theme-reference.ts +2 -2
  196. package/src/types/theme.ts +29 -0
  197. package/src/types.ts +84 -5
  198. package/src/ui.composer-models.test.ts +5 -7
  199. package/src/ui.composer-overflow.test.ts +14 -21
  200. package/src/ui.scroll-additive.test.ts +219 -117
  201. package/src/ui.scroll.test.ts +176 -13
  202. package/src/ui.ts +230 -107
  203. package/src/ui.turn-activity.test.ts +7 -7
  204. package/src/ui.user-message-collapse.test.ts +540 -0
  205. package/src/utils/auto-follow.test.ts +0 -38
  206. package/src/utils/auto-follow.ts +0 -35
  207. package/src/utils/context-mention-controller.test.ts +56 -0
  208. package/src/utils/theme.test.ts +23 -0
  209. package/src/utils/tokens.ts +16 -0
  210. package/src/webmcp-bridge.test.ts +102 -0
  211. package/src/webmcp-runtime-entry.ts +29 -1
  212. package/dist/chunk-BAkaTZpd.js +0 -1
  213. package/dist/chunk-BEDTp-dm.js +0 -1
  214. package/dist/chunk-C7-m0EmI.js +0 -1
  215. package/dist/chunk-CNhThrLX.js +0 -1
  216. package/dist/chunk-CVMIncEY.js +0 -1
  217. package/dist/chunk-CzLEhoB_.js +0 -2
  218. package/dist/chunk-DVgzoVCB.js +0 -1
  219. package/dist/chunk-d54BJdKd.js +0 -1
  220. package/dist/chunk-dLJWKfOb.js +0 -1
@@ -1,8 +1,7 @@
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";
1
+ import { T as provideMarkdownParsers, f as buttons_d_exports, r as ComponentRenderer, t as ComponentContext } from "./registry-B6w91tx0.cjs";
2
+ import { Li as PersonaArtifactRecord, Mi as PersonaArtifactFileMeta, Oi as PersonaArtifactCustomAction, k as AgentWidgetConfig } from "./types-9i0xcAMT.cjs";
3
+ import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-fWIRrhUF.cjs";
4
4
  import { IconNode } from "lucide";
5
- //#region src/components/artifact-pane.d.ts
6
5
  type ArtifactPaneApi = {
7
6
  element: HTMLElement;
8
7
  /** Backdrop for mobile drawer (optional separate layer) */
@@ -56,8 +55,6 @@ export declare function createArtifactPane(config: AgentWidgetConfig, options: {
56
55
  /** User clicked the expand/collapse toggle: parent owns the state and calls back via setExpanded. */
57
56
  onToggleExpand?: () => void;
58
57
  }): ArtifactPaneApi;
59
- //#endregion
60
- //#region src/components/artifact-preview.d.ts
61
58
  /**
62
59
  * Clipboard payload for an artifact, shared by the pane copy control and the
63
60
  * inline chrome copy button so both derive the same text:
@@ -66,8 +63,6 @@ export declare function createArtifactPane(config: AgentWidgetConfig, options: {
66
63
  * - component artifacts → pretty-printed `{ component, props }` JSON
67
64
  */
68
65
  export declare function artifactCopyText(record: PersonaArtifactRecord | undefined): string;
69
- //#endregion
70
- //#region src/components/artifact-inline.d.ts
71
66
  /**
72
67
  * Built-in inline artifact block component (display: "inline").
73
68
  *
@@ -144,8 +139,6 @@ export declare function updateInlineArtifactBlocks(root: HTMLElement, artifacts:
144
139
  */
145
140
  export declare function hasLiveInlineArtifactBlock(el: HTMLElement): boolean;
146
141
  export declare const PersonaArtifactInline: (props: Record<string, unknown>, context: ComponentContext) => HTMLElement;
147
- //#endregion
148
- //#region src/components/artifact-card.d.ts
149
142
  /**
150
143
  * Built-in artifact reference card component.
151
144
  * Renders a compact clickable card in the chat thread that links to an artifact.
@@ -155,8 +148,6 @@ export declare const PersonaArtifactInline: (props: Record<string, unknown>, con
155
148
  * that can override the default card rendering.
156
149
  */
157
150
  export declare const PersonaArtifactCard: (props: Record<string, unknown>, context: ComponentContext) => HTMLElement;
158
- //#endregion
159
- //#region src/utils/artifact-file.d.ts
160
151
  /** Minimal record shape needed to compute download info. */
161
152
  interface ArtifactDownloadSource {
162
153
  title?: string;
@@ -181,8 +172,6 @@ export declare function triggerArtifactDownload(info: {
181
172
  mime: string;
182
173
  content: string;
183
174
  }): void;
184
- //#endregion
185
- //#region src/components/artifacts-deps.d.ts
186
175
  /**
187
176
  * Injected core dependencies for the lazy artifacts-ui chunk.
188
177
  *
@@ -205,8 +194,6 @@ interface ArtifactsUiDeps {
205
194
  };
206
195
  }
207
196
  export declare const initArtifactsUi: (deps: ArtifactsUiDeps) => void;
208
- //#endregion
209
- //#region src/icons-extra-loader.d.ts
210
197
  /**
211
198
  * Loader indirection for the lazy icons-extra chunk (the config-only tail of
212
199
  * the icon registry). Stays in the core bundle AND the critical launcher
@@ -225,8 +212,6 @@ type IconsExtraModule = {
225
212
  };
226
213
  /** Override how the chunk is fetched (each IIFE registers a sibling-URL loader). */
227
214
  declare const setIconsExtraLoader: (l: () => Promise<IconsExtraModule>) => void;
228
- //#endregion
229
- //#region src/artifact-resizer.d.ts
230
215
  /** Resizing is owned by the optional artifact pane and dies with that pane. */
231
216
  export declare function createArtifactResizer(options: {
232
217
  mount: HTMLElement;
@@ -241,10 +226,7 @@ export declare function createArtifactResizer(options: {
241
226
  update: () => void;
242
227
  destroy(): void;
243
228
  };
244
- //#endregion
245
- //#region src/components/artifact-styles.d.ts
246
229
  /** Artifact styles travel with the renderer, including into shadow roots. */
247
230
  export declare const ensureArtifactStyles: (target: Node) => void;
248
- //#endregion
249
231
  export { type ArtifactPaneApi, type ArtifactsUiDeps, provideMarkdownParsers as __provideMarkdownParsers, setIconsExtraLoader as __setIconsExtraLoader };
250
232
  export {}
@@ -1,8 +1,7 @@
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";
1
+ import { T as provideMarkdownParsers, f as buttons_d_exports, r as ComponentRenderer, t as ComponentContext } from "./registry-B6w91tx0.js";
2
+ import { Li as PersonaArtifactRecord, Mi as PersonaArtifactFileMeta, Oi as PersonaArtifactCustomAction, k as AgentWidgetConfig } from "./types-9i0xcAMT.js";
3
+ import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-fWIRrhUF.js";
4
4
  import { IconNode } from "lucide";
5
- //#region src/components/artifact-pane.d.ts
6
5
  type ArtifactPaneApi = {
7
6
  element: HTMLElement;
8
7
  /** Backdrop for mobile drawer (optional separate layer) */
@@ -56,8 +55,6 @@ export declare function createArtifactPane(config: AgentWidgetConfig, options: {
56
55
  /** User clicked the expand/collapse toggle: parent owns the state and calls back via setExpanded. */
57
56
  onToggleExpand?: () => void;
58
57
  }): ArtifactPaneApi;
59
- //#endregion
60
- //#region src/components/artifact-preview.d.ts
61
58
  /**
62
59
  * Clipboard payload for an artifact, shared by the pane copy control and the
63
60
  * inline chrome copy button so both derive the same text:
@@ -66,8 +63,6 @@ export declare function createArtifactPane(config: AgentWidgetConfig, options: {
66
63
  * - component artifacts → pretty-printed `{ component, props }` JSON
67
64
  */
68
65
  export declare function artifactCopyText(record: PersonaArtifactRecord | undefined): string;
69
- //#endregion
70
- //#region src/components/artifact-inline.d.ts
71
66
  /**
72
67
  * Built-in inline artifact block component (display: "inline").
73
68
  *
@@ -144,8 +139,6 @@ export declare function updateInlineArtifactBlocks(root: HTMLElement, artifacts:
144
139
  */
145
140
  export declare function hasLiveInlineArtifactBlock(el: HTMLElement): boolean;
146
141
  export declare const PersonaArtifactInline: (props: Record<string, unknown>, context: ComponentContext) => HTMLElement;
147
- //#endregion
148
- //#region src/components/artifact-card.d.ts
149
142
  /**
150
143
  * Built-in artifact reference card component.
151
144
  * Renders a compact clickable card in the chat thread that links to an artifact.
@@ -155,8 +148,6 @@ export declare const PersonaArtifactInline: (props: Record<string, unknown>, con
155
148
  * that can override the default card rendering.
156
149
  */
157
150
  export declare const PersonaArtifactCard: (props: Record<string, unknown>, context: ComponentContext) => HTMLElement;
158
- //#endregion
159
- //#region src/utils/artifact-file.d.ts
160
151
  /** Minimal record shape needed to compute download info. */
161
152
  interface ArtifactDownloadSource {
162
153
  title?: string;
@@ -181,8 +172,6 @@ export declare function triggerArtifactDownload(info: {
181
172
  mime: string;
182
173
  content: string;
183
174
  }): void;
184
- //#endregion
185
- //#region src/components/artifacts-deps.d.ts
186
175
  /**
187
176
  * Injected core dependencies for the lazy artifacts-ui chunk.
188
177
  *
@@ -205,8 +194,6 @@ interface ArtifactsUiDeps {
205
194
  };
206
195
  }
207
196
  export declare const initArtifactsUi: (deps: ArtifactsUiDeps) => void;
208
- //#endregion
209
- //#region src/icons-extra-loader.d.ts
210
197
  /**
211
198
  * Loader indirection for the lazy icons-extra chunk (the config-only tail of
212
199
  * the icon registry). Stays in the core bundle AND the critical launcher
@@ -225,8 +212,6 @@ type IconsExtraModule = {
225
212
  };
226
213
  /** Override how the chunk is fetched (each IIFE registers a sibling-URL loader). */
227
214
  declare const setIconsExtraLoader: (l: () => Promise<IconsExtraModule>) => void;
228
- //#endregion
229
- //#region src/artifact-resizer.d.ts
230
215
  /** Resizing is owned by the optional artifact pane and dies with that pane. */
231
216
  export declare function createArtifactResizer(options: {
232
217
  mount: HTMLElement;
@@ -241,10 +226,7 @@ export declare function createArtifactResizer(options: {
241
226
  update: () => void;
242
227
  destroy(): void;
243
228
  };
244
- //#endregion
245
- //#region src/components/artifact-styles.d.ts
246
229
  /** Artifact styles travel with the renderer, including into shadow roots. */
247
230
  export declare const ensureArtifactStyles: (target: Node) => void;
248
- //#endregion
249
231
  export { type ArtifactPaneApi, type ArtifactsUiDeps, provideMarkdownParsers as __provideMarkdownParsers, setIconsExtraLoader as __setIconsExtraLoader };
250
232
  export {}
@@ -1,5 +1,4 @@
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
- //#region src/session-background.d.ts
1
+ import { Ct as AgentWidgetMessage, Li as PersonaArtifactRecord, Ui as ResumableHandle, Wr as ConversationExecutionState, Xn as BackgroundConversationAdapter, mn as AgentWidgetStreamCheckpoint } from "./types-9i0xcAMT.cjs";
3
2
  type BackgroundCheckpoint = {
4
3
  conversationId: string;
5
4
  handle: ResumableHandle;
@@ -21,5 +20,5 @@ export declare class BackgroundConversationController {
21
20
  take(conversationId: string): BackgroundCheckpoint | undefined;
22
21
  clear(conversationId?: string): void;
23
22
  }
24
- //#endregion
23
+ export {};
25
24
  export {}
@@ -1,5 +1,4 @@
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
- //#region src/session-background.d.ts
1
+ import { Ct as AgentWidgetMessage, Li as PersonaArtifactRecord, Ui as ResumableHandle, Wr as ConversationExecutionState, Xn as BackgroundConversationAdapter, mn as AgentWidgetStreamCheckpoint } from "./types-9i0xcAMT.js";
3
2
  type BackgroundCheckpoint = {
4
3
  conversationId: string;
5
4
  handle: ResumableHandle;
@@ -21,5 +20,5 @@ export declare class BackgroundConversationController {
21
20
  take(conversationId: string): BackgroundCheckpoint | undefined;
22
21
  clear(conversationId?: string): void;
23
22
  }
24
- //#endregion
23
+ export {};
25
24
  export {}
@@ -1 +1 @@
1
- import{t as e}from"./chunk-DVgzoVCB.js";const t=32768,n=49152,r=e=>{let t=e??{},n=typeof t.targetId==`string`?t.targetId:null;return{id:typeof t.id==`string`?t.id:``,title:typeof t.title==`string`?t.title:``,targetId:n,preview:typeof t.preview==`string`?t.preview:null,messageCount:typeof t.messageCount==`number`?t.messageCount:0,createdAt:typeof t.createdAt==`string`?t.createdAt:``,updatedAt:typeof t.updatedAt==`string`?t.updatedAt:``}},i=`The identity proof was not admitted; account history is unavailable`,a=`The identity proof was rejected`,o=`The request carried no visitor credential`,s=`The stored visitor belongs to a different signed-in user`;function c(e,t,n){let r=new URLSearchParams;for(let[e,t]of Object.entries(n))t!==void 0&&t!==``&&r.set(e,String(t));let i=r.toString();return`${e.clientApiBase()}/v1/client/${t}${i?`?${i}`:``}`}function l(e,t){return t||e.config.features?.history?.scope||(e.config.getIdentityProof?`verified-user`:`browser`)}async function u(e,t,n){let r=e.config.getIdentityProof;if(!r)return n&&e.setHistoryIdentityStatus(e.browserOnlyStatus()),null;n&&e.setHistoryIdentityStatus({state:`verifying`});let i;try{i=await r()??null}catch{throw n&&e.setHistoryIdentityStatus({state:`identity_provider_failed`}),new e.HistoryClientError(`identity_provider_failed`,`The identity proof provider failed`)}if(i)return i;if(t.visitor?.endUserId!=null)throw n&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`proof_unavailable_after_binding`}),new e.HistoryClientError(`authentication_required`,`This browser is bound to a signed-in user and needs a fresh identity proof`);return n&&e.setHistoryIdentityStatus({state:`browser_only`,reason:`proof_unavailable_before_binding`}),null}async function d(e,t,n,r){if(t.visitor?.endUserId!=null)return t;let a=await e.reinitWithProof(n);if(a.visitor?.identityStatus!==`admitted`||a.visitor?.endUserId==null)throw r&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),new e.HistoryClientError(`proof_not_admitted`,i);return a}async function f(e,t){let n=await t.json().catch(()=>({}));return typeof n.error==`string`?n.error:typeof n.message==`string`?n.message:``}async function p(e,t,n,r){let i=t.toLowerCase();if(i.includes(`invalid_identity_proof`))throw r&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`invalid_identity_proof`}),new e.HistoryClientError(`invalid_identity_proof`,a);if(i.includes(`visitor token required`))throw new e.HistoryClientError(`visitor_token_missing`,o);if(i.includes(`visitor_identity_mismatch`)){if(!n)throw r&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`proof_unavailable_after_binding`}),new e.HistoryClientError(`visitor_identity_mismatch`,s);return e.reinitWithProof(n)}if(i.includes(`expired`)||i.includes(`not found`))return e.clearClientSession(),e.initSession();throw new e.HistoryClientError(`unauthorized`,t||`History request was not authorized`)}async function m(e,t,n){let r=await f(e,t);if(t.status===404)return new e.HistoryClientError(`not_found`,`Conversation not found`);if(t.status===429){let n=Number.parseInt(t.headers.get(`Retry-After`)??``,10);return new e.HistoryClientError(`rate_limited`,`Too many history requests`,{...Number.isFinite(n)?{retryAfterSeconds:n}:{}})}if(t.status===503&&r.includes(`identity_proof_not_admitted`))return n&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),new e.HistoryClientError(`proof_not_admitted`,i);if(t.status===401){let t=r.toLowerCase();return t.includes(`invalid_identity_proof`)?(n&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`invalid_identity_proof`}),new e.HistoryClientError(`invalid_identity_proof`,a)):t.includes(`visitor token required`)?new e.HistoryClientError(`visitor_token_missing`,o):t.includes(`visitor_identity_mismatch`)?new e.HistoryClientError(`visitor_identity_mismatch`,s):new e.HistoryClientError(`unauthorized`,r||`History request was not authorized`)}return new e.HistoryClientError(`request_failed`,r||`History request failed (${t.status})`)}function h(e,t,n,r){let i=t?.toLowerCase()??null;if(n){if(i===`admitted`){r&&e.setHistoryIdentityStatus({state:`verified`});return}throw r&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),i===`ignored`?new e.HistoryClientError(`identity_contract_violation`,`Server reported an ignored identity proof on a success response`):new e.HistoryClientError(`proof_not_admitted`,`The response did not acknowledge the identity proof this request sent`)}if(i===`admitted`)throw new e.HistoryClientError(`identity_contract_violation`,`Server admitted an identity proof that was never sent`);r&&e.setHistoryIdentityStatus(e.browserOnlyStatus())}async function g(t,n,r){_(t);let i=r.trackIdentity!==!1,a=await t.initSession(),o=null;l(t,r.scope)===`verified-user`&&(o=await u(t,a,i),o&&(a=await d(t,a,o,i)));let s=t.historyInternals.visitorStore,g=!1;for(;;){let l=s?.revision()??0,u=await t.readVisitorToken();if(!u&&!r.visitorTokenOptional)throw new t.HistoryClientError(`visitor_token_missing`,`No visitor credential is stored for this browser`);let d=await fetch(c(t,n,{...r.query,sessionId:a.sessionId}),{method:r.method,headers:{"X-Persona-Version":e,...u?{"X-Visitor-Token":u}:{},...o?{"X-Identity-Proof":o}:{},...r.body===void 0?{}:{"Content-Type":`application/json`}},...r.body===void 0?{}:{body:JSON.stringify(r.body)},...r.keepalive?{keepalive:!0}:{}});if(d.status===401&&!g){g=!0,a=await p(t,await f(t,d),o,i);continue}if(!d.ok)throw await m(t,d,i);let _=d.headers.get(`X-History-Identity-Status`),v=await d.json().catch(()=>void 0);if(s&&s.revision()!==l)throw new t.HistoryClientError(`credential_changed`,`The visitor credential changed while the request was in flight`);return h(t,_,o!==null,i),v}}function _(e){if(!e.isClientTokenMode())throw Error(`Conversation history is only available in client token mode`);if(!e.isHistoryCapable())throw new e.HistoryClientError(`history_disabled`,`Visitor history is disabled for this surface`)}async function v(e,t){let n=await g(e,`conversations`,{method:`GET`,query:{...t?.cursor?{cursor:t.cursor}:{},...t?.limit===void 0?{}:{limit:t.limit},...t?.targetId?{targetId:t.targetId}:{}},...t?.scope?{scope:t.scope}:{}});return{data:(Array.isArray(n?.data)?n.data:[]).map(r),nextCursor:typeof n?.nextCursor==`string`?n.nextCursor:null}}async function y(e,t,n){let i=await g(e,`conversations/${encodeURIComponent(t)}`,{method:`GET`,query:{...n?.messageCursor?{messageCursor:n.messageCursor}:{}},...n?.scope?{scope:n.scope}:{}});return{summary:r(i),messages:Array.isArray(i?.messages)?i.messages:[],nextMessageCursor:typeof i?.nextMessageCursor==`string`?i.nextMessageCursor:null,conversationRevision:typeof i?.conversationRevision==`string`?i.conversationRevision:null}}async function b(e,r,i){_(e);let a=0;for(let n of i){let r=n.displayContent.length;if(r>t)throw new e.HistoryClientError(`payload_too_large`,`displayContent exceeds the ${t} character limit`);a+=r}if(a>n)throw new e.HistoryClientError(`payload_too_large`,`Display projection batch exceeds the ${n} character limit`);await e.initSession();let o=e.historyInternals.visitorStore,s=o?.revision()??0,c=await g(e,`conversations/${encodeURIComponent(r)}/display-projections`,{method:`PATCH`,body:{messages:i},scope:`browser`,keepalive:a<=n,trackIdentity:!1}),l=typeof c?.conversationRevision==`string`?c.conversationRevision:null;return l&&e.clientSession?.conversationId===r&&(o?.revision()??0)===s&&e.historyInternals.setStoredConversationRevision?.(l),{conversationRevision:l}}async function x(e,t,n){let r=await g(e,`conversations/${encodeURIComponent(t)}`,{method:`DELETE`,...n?.scope?{scope:n.scope}:{}});return{deleted:typeof r?.deleted==`number`?r.deleted:0}}async function S(e,t){let n=await g(e,`conversations`,{method:`DELETE`,query:{...t?.targetId===void 0?{}:{targetId:t.targetId}},...t?.scope?{scope:t.scope}:{}});return{deleted:typeof n?.deleted==`number`?n.deleted:0}}async function C(e){_(e),e.setHistoryIdentityStatus({state:`resetting`});try{await g(e,`visitor/reset`,{method:`POST`,scope:`browser`,visitorTokenOptional:!0})}finally{await e.historyInternals.visitorStore?.clear(),e.setHistoryIdentityStatus(e.derivedBrowserOnly())}return{reset:!0}}export{S as deleteAllConversations,x as deleteConversation,b as finalizeDisplayProjections,y as getConversation,m as historyErrorFor,v as listConversations,f as readErrorCode,p as recoverFromUnauthorized,C as resetVisitor};
1
+ import{t as e}from"./chunk-DAthf5H3.js";const t=32768,n=49152,r=e=>{let t=e??{},n=typeof t.targetId==`string`?t.targetId:null;return{id:typeof t.id==`string`?t.id:``,title:typeof t.title==`string`?t.title:``,targetId:n,preview:typeof t.preview==`string`?t.preview:null,messageCount:typeof t.messageCount==`number`?t.messageCount:0,createdAt:typeof t.createdAt==`string`?t.createdAt:``,updatedAt:typeof t.updatedAt==`string`?t.updatedAt:``}},i=`The identity proof was not admitted; account history is unavailable`,a=`The identity proof was rejected`,o=`The request carried no visitor credential`,s=`The stored visitor belongs to a different signed-in user`;function c(e,t,n){let r=new URLSearchParams;for(let[e,t]of Object.entries(n))t!==void 0&&t!==``&&r.set(e,String(t));let i=r.toString();return`${e.clientApiBase()}/v1/client/${t}${i?`?${i}`:``}`}function l(e,t){return t||e.config.features?.history?.scope||(e.config.getIdentityProof?`verified-user`:`browser`)}async function u(e,t,n){let r=e.config.getIdentityProof;if(!r)return n&&e.setHistoryIdentityStatus(e.browserOnlyStatus()),null;n&&e.setHistoryIdentityStatus({state:`verifying`});let i;try{i=await r()??null}catch{throw n&&e.setHistoryIdentityStatus({state:`identity_provider_failed`}),new e.HistoryClientError(`identity_provider_failed`,`The identity proof provider failed`)}if(i)return i;if(t.visitor?.endUserId!=null)throw n&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`proof_unavailable_after_binding`}),new e.HistoryClientError(`authentication_required`,`This browser is bound to a signed-in user and needs a fresh identity proof`);return n&&e.setHistoryIdentityStatus({state:`browser_only`,reason:`proof_unavailable_before_binding`}),null}async function d(e,t,n,r){if(t.visitor?.endUserId!=null)return t;let a=await e.reinitWithProof(n);if(a.visitor?.identityStatus!==`admitted`||a.visitor?.endUserId==null)throw r&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),new e.HistoryClientError(`proof_not_admitted`,i);return a}async function f(e,t){let n=await t.json().catch(()=>({}));return typeof n.error==`string`?n.error:typeof n.message==`string`?n.message:``}async function p(e,t,n,r){let i=t.toLowerCase();if(i.includes(`invalid_identity_proof`))throw r&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`invalid_identity_proof`}),new e.HistoryClientError(`invalid_identity_proof`,a);if(i.includes(`visitor token required`))throw new e.HistoryClientError(`visitor_token_missing`,o);if(i.includes(`visitor_identity_mismatch`)){if(!n)throw r&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`proof_unavailable_after_binding`}),new e.HistoryClientError(`visitor_identity_mismatch`,s);return e.reinitWithProof(n)}if(i.includes(`expired`)||i.includes(`not found`))return e.clearClientSession(),e.initSession();throw new e.HistoryClientError(`unauthorized`,t||`History request was not authorized`)}async function m(e,t,n){let r=await f(e,t);if(t.status===404)return new e.HistoryClientError(`not_found`,`Conversation not found`);if(t.status===429){let n=Number.parseInt(t.headers.get(`Retry-After`)??``,10);return new e.HistoryClientError(`rate_limited`,`Too many history requests`,{...Number.isFinite(n)?{retryAfterSeconds:n}:{}})}if(t.status===503&&r.includes(`identity_proof_not_admitted`))return n&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),new e.HistoryClientError(`proof_not_admitted`,i);if(t.status===401){let t=r.toLowerCase();return t.includes(`invalid_identity_proof`)?(n&&e.setHistoryIdentityStatus({state:`authentication_required`,reason:`invalid_identity_proof`}),new e.HistoryClientError(`invalid_identity_proof`,a)):t.includes(`visitor token required`)?new e.HistoryClientError(`visitor_token_missing`,o):t.includes(`visitor_identity_mismatch`)?new e.HistoryClientError(`visitor_identity_mismatch`,s):new e.HistoryClientError(`unauthorized`,r||`History request was not authorized`)}return new e.HistoryClientError(`request_failed`,r||`History request failed (${t.status})`)}function h(e,t,n,r){let i=t?.toLowerCase()??null;if(n){if(i===`admitted`){r&&e.setHistoryIdentityStatus({state:`verified`});return}throw r&&e.setHistoryIdentityStatus({state:`configuration_error`,reason:`proof_not_admitted`}),i===`ignored`?new e.HistoryClientError(`identity_contract_violation`,`Server reported an ignored identity proof on a success response`):new e.HistoryClientError(`proof_not_admitted`,`The response did not acknowledge the identity proof this request sent`)}if(i===`admitted`)throw new e.HistoryClientError(`identity_contract_violation`,`Server admitted an identity proof that was never sent`);r&&e.setHistoryIdentityStatus(e.browserOnlyStatus())}async function g(t,n,r){_(t);let i=r.trackIdentity!==!1,a=await t.initSession(),o=null;l(t,r.scope)===`verified-user`&&(o=await u(t,a,i),o&&(a=await d(t,a,o,i)));let s=t.historyInternals.visitorStore,g=!1;for(;;){let l=s?.revision()??0,u=await t.readVisitorToken();if(!u&&!r.visitorTokenOptional)throw new t.HistoryClientError(`visitor_token_missing`,`No visitor credential is stored for this browser`);let d=await fetch(c(t,n,{...r.query,sessionId:a.sessionId}),{method:r.method,headers:{"X-Persona-Version":e,...u?{"X-Visitor-Token":u}:{},...o?{"X-Identity-Proof":o}:{},...r.body===void 0?{}:{"Content-Type":`application/json`}},...r.body===void 0?{}:{body:JSON.stringify(r.body)},...r.keepalive?{keepalive:!0}:{}});if(d.status===401&&!g){g=!0,a=await p(t,await f(t,d),o,i);continue}if(!d.ok)throw await m(t,d,i);let _=d.headers.get(`X-History-Identity-Status`),v=await d.json().catch(()=>void 0);if(s&&s.revision()!==l)throw new t.HistoryClientError(`credential_changed`,`The visitor credential changed while the request was in flight`);return h(t,_,o!==null,i),v}}function _(e){if(!e.isClientTokenMode())throw Error(`Conversation history is only available in client token mode`);if(!e.isHistoryCapable())throw new e.HistoryClientError(`history_disabled`,`Visitor history is disabled for this surface`)}async function v(e,t){let n=await g(e,`conversations`,{method:`GET`,query:{...t?.cursor?{cursor:t.cursor}:{},...t?.limit===void 0?{}:{limit:t.limit},...t?.targetId?{targetId:t.targetId}:{}},...t?.scope?{scope:t.scope}:{}});return{data:(Array.isArray(n?.data)?n.data:[]).map(r),nextCursor:typeof n?.nextCursor==`string`?n.nextCursor:null}}async function y(e,t,n){let i=await g(e,`conversations/${encodeURIComponent(t)}`,{method:`GET`,query:{...n?.messageCursor?{messageCursor:n.messageCursor}:{}},...n?.scope?{scope:n.scope}:{}});return{summary:r(i),messages:Array.isArray(i?.messages)?i.messages:[],nextMessageCursor:typeof i?.nextMessageCursor==`string`?i.nextMessageCursor:null,conversationRevision:typeof i?.conversationRevision==`string`?i.conversationRevision:null}}async function b(e,r,i){_(e);let a=0;for(let n of i){let r=n.displayContent.length;if(r>t)throw new e.HistoryClientError(`payload_too_large`,`displayContent exceeds the ${t} character limit`);a+=r}if(a>n)throw new e.HistoryClientError(`payload_too_large`,`Display projection batch exceeds the ${n} character limit`);await e.initSession();let o=e.historyInternals.visitorStore,s=o?.revision()??0,c=await g(e,`conversations/${encodeURIComponent(r)}/display-projections`,{method:`PATCH`,body:{messages:i},scope:`browser`,keepalive:a<=n,trackIdentity:!1}),l=typeof c?.conversationRevision==`string`?c.conversationRevision:null;return l&&e.clientSession?.conversationId===r&&(o?.revision()??0)===s&&e.historyInternals.setStoredConversationRevision?.(l),{conversationRevision:l}}async function x(e,t,n){let r=await g(e,`conversations/${encodeURIComponent(t)}`,{method:`DELETE`,...n?.scope?{scope:n.scope}:{}});return{deleted:typeof r?.deleted==`number`?r.deleted:0}}async function S(e,t){let n=await g(e,`conversations`,{method:`DELETE`,query:{...t?.targetId===void 0?{}:{targetId:t.targetId}},...t?.scope?{scope:t.scope}:{}});return{deleted:typeof n?.deleted==`number`?n.deleted:0}}async function C(e){_(e),e.setHistoryIdentityStatus({state:`resetting`});try{await g(e,`visitor/reset`,{method:`POST`,scope:`browser`,visitorTokenOptional:!0})}finally{await e.historyInternals.visitorStore?.clear(),e.setHistoryIdentityStatus(e.derivedBrowserOnly())}return{reset:!0}}export{S as deleteAllConversations,x as deleteConversation,b as finalizeDisplayProjections,y as getConversation,m as historyErrorFor,v as listConversations,f as readErrorCode,p as recoverFromUnauthorized,C as resetVisitor};
@@ -1,3 +1,3 @@
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(`
1
+ import{I as e,T as t,n,t as r,w as i}from"./chunk-ThxxD8oK.js";import{r as a}from"./chunk-D5BxWOFB.js";import{a as o,c as s,d as c,f as l,i as u,l as d,n as f,o as p,p as m}from"./chunk-Dj2a9f9w.js";import{n as h,t as g}from"./chunk-Di5V0tA0.js";import{t as _}from"./chunk-D3NN94Ru.js";const v=e=>{let{mount:t,overlay:n,sessionRef:r}=e,i=(i,a,o)=>{let s=a.trim();if(!s||!r.current)return;let c=i.getAttribute(`data-tool-call-id`)??``,u=o.source===`free-text`;t.dispatchEvent(new CustomEvent(`persona:askUserQuestion:answered`,{detail:{instanceId:e.instanceId,toolUseId:c,answer:s,answers:o.structured,values:o.values??(o.source===`multi`?s.split(`, `):[s]),isFreeText:u,source:o.source},bubbles:!0,composed:!0})),l(n,c);let d=r.current.getMessages().find(e=>e.toolCall?.id===c);d?.agentMetadata?.awaitingLocalTool?r.current.resolveAskUserQuestion(d,o.structured??s):r.current.sendMessage(s)},a=e=>{let t=r.current;if(!t)return;let n=e.getAttribute(`data-tool-call-id`)??``,i=t.getMessages().find(e=>e.toolCall?.id===n);i&&t.persistAskUserQuestionProgress(i,{answers:f(e,i),currentIndex:u(e)})},h=e=>Object.entries(e).map(([e,t])=>`${e}: ${Array.isArray(t)?t.join(`, `):t}`).join(` | `),g=t=>{if(e.config().features?.askUserQuestion?.groupedAutoAdvance===!1)return;let n=u(t);if(n>=o(t)-1)return;let i=r.current?.getMessages().find(e=>e.toolCall?.id===t.getAttribute(`data-tool-call-id`));i&&(d(t,i,e.config(),n+1),a(t))};return{click:_=>{let v=_.target.closest(`[data-ask-user-action]`);if(!v)return;let y=v.closest(`[data-persona-ask-sheet-for]`);if(!y)return;let b=v.getAttribute(`data-ask-user-action`);if(_.preventDefault(),_.stopPropagation(),b===`dismiss`){let i=y.getAttribute(`data-tool-call-id`)??``;t.dispatchEvent(new CustomEvent(`persona:askUserQuestion:dismissed`,{detail:{instanceId:e.instanceId,toolUseId:i},bubbles:!0,composed:!0})),l(n,i);let a=r.current?.getMessages().find(e=>e.toolCall?.id===i);a?.agentMetadata?.awaitingLocalTool&&(r.current?.markAskUserQuestionResolved(a),r.current?.resolveAskUserQuestion(a,`(dismissed)`))}else if(b===`pick`){let e=v.getAttribute(`data-option-label`);if(!e)return;let t=y.getAttribute(`data-multi-select`)===`true`,n=s(y);if(n&&t){let t=c(y)[u(y)],n=new Set(Array.isArray(t)?t:[]);n.has(e)?n.delete(e):n.add(e),m(y,Array.from(n)),a(y);return}if(n){m(y,e),a(y),g(y);return}if(t){let e=v.getAttribute(`aria-pressed`)===`true`;v.setAttribute(`aria-pressed`,e?`false`:`true`),v.classList.toggle(`persona-ask-pill-selected`,!e);let t=y.querySelector(`[data-ask-user-action="submit-multi"]`);t&&(t.disabled=p(y).length===0);return}i(y,e,{source:`pick`,values:[e]})}else if(b===`submit-multi`){let e=p(y);if(e.length===0)return;i(y,e.join(`, `),{source:`multi`,values:e})}else if(b===`open-free-text`){let e=y.querySelector(`[data-ask-free-text-row="true"]`);e&&(e.classList.remove(`persona-hidden`),e.querySelector(`[data-ask-free-text-input="true"]`)?.focus())}else if(b===`focus-free-text`)y.querySelector(`[data-ask-free-text-input="true"]`)?.focus();else if(b===`submit-free-text`){let e=y.querySelector(`[data-ask-free-text-input="true"]`)?.value??``;if(!e.trim())return;if(s(y)){m(y,e.trim()),a(y),g(y);return}i(y,e,{source:`free-text`})}else if(b===`next`||b===`back`){if(!r.current)return;let t=y.getAttribute(`data-tool-call-id`)??``,n=r.current.getMessages().find(e=>e.toolCall?.id===t);if(!n)return;let i=y.querySelector(`[data-ask-free-text-input="true"]`)?.value?.trim()??``;if(i){let e=c(y)[u(y)];(typeof e!=`string`||e!==i)&&m(y,i)}let o=b===`next`?1:-1,s=u(y)+o;d(y,n,e.config(),s),a(y)}else if(b===`submit-all`){if(!r.current)return;let e=y.getAttribute(`data-tool-call-id`)??``,t=r.current.getMessages().find(t=>t.toolCall?.id===e);if(!t)return;let n=y.querySelector(`[data-ask-free-text-input="true"]`)?.value?.trim()??``;n&&m(y,n);let a=f(y,t);r.current.persistAskUserQuestionProgress(t,{answers:a,currentIndex:u(y)});let o=h(a);i(y,o||`(submitted)`,{source:`submit-all`,structured:a})}else if(b===`skip`){if(!r.current)return;let c=y.getAttribute(`data-tool-call-id`)??``,p=r.current.getMessages().find(e=>e.toolCall?.id===c);if(!p)return;let g=s(y),_=u(y),v=_>=o(y)-1;if(!g){t.dispatchEvent(new CustomEvent(`persona:askUserQuestion:dismissed`,{detail:{instanceId:e.instanceId,toolUseId:c},bubbles:!0,composed:!0})),l(n,c),p.agentMetadata?.awaitingLocalTool&&(r.current.markAskUserQuestionResolved(p),r.current.resolveAskUserQuestion(p,`(dismissed)`));return}m(y,``);let b=y.querySelector(`[data-ask-free-text-input="true"]`);if(b&&(b.value=``),v){let e=f(y,p),t=h(e);i(y,t||`(skipped)`,{source:`submit-all`,structured:e});return}d(y,p,e.config(),_+1),a(y)}},keydown:e=>{if(e.key!==`Enter`)return;let t=e.target;if(!t.matches?.(`[data-ask-free-text-input="true"]`))return;let n=t.closest(`[data-persona-ask-sheet-for]`);if(!n)return;e.preventDefault();let r=t.value;r.trim()&&(s(n)?(m(n,r.trim()),a(n),g(n)):i(n,r,{source:`free-text`}))}}},y={loadContextMentions:()=>t(),loadContextMentionsInline:()=>i(),renderLucideIcon:(...t)=>e(...t),createMentionButton:(...e)=>n(...e)};function b(e){let{loadContextMentions:t,loadContextMentionsInline:n,renderLucideIcon:i,createMentionButton:o}=e.deps??y,s=e.config.contextMentions;if(!s?.enabled)return null;let c=_(s).filter(e=>e.sources.length>0);if(c.length===0)return typeof console<`u`&&console.warn(`[Persona] contextMentions.enabled is true but no sources were provided; mentions are disabled.`),null;let l=c.filter(e=>e.sources.some(e=>typeof e.matchCommand==`function`)),u=e=>l.some(t=>t.trigger?t.position===`line-start`?e.split(`
2
2
  `).some(e=>e.startsWith(t.trigger)):(t.position===`anywhere`?e:e.split(`
3
3
  `)[0]).startsWith(t.trigger):!1),d=(t,n)=>{if(typeof window<`u`)try{window.dispatchEvent(new CustomEvent(`persona:mention:${t}`,{detail:{...n,instanceId:e.textarea.closest(`[data-persona-instance]`)?.dataset.personaInstance}}))}catch{}},f=!e.chipRow,p=e.chipRow??a(`div`,{className:`persona-mention-context-row`,attrs:{"data-persona-mention-context-row":``}}),m=null,v=null,b=e.textarea,x=null,S=null,C=null,w=null,T=()=>{if(m)return Promise.resolve(m);if(v)return v;let n=t().then(t=>(t.setMentionIconRenderer(i),m=t.mountContextMentions({mentionConfig:s,textarea:e.textarea,composerInput:x??void 0,anchor:e.anchor,contextRow:p,getMessages:e.getMessages,getConfig:()=>e.config,liveRegionHost:e.liveRegionHost,popoverContainer:e.popoverContainer,onPickerOpenChange:O,emit:d}),m)).catch(e=>(typeof console<`u`&&console.warn(`[Persona] Failed to load context mentions runtime`,e),v===n&&(v=null),null));return v=n,n};s.display===`inline`&&n().then(t=>{let n=t.mountInlineComposer({textarea:e.textarea,renderToken:e=>r(e,{render:s.renderMentionToken}),onMentionRemoved:e=>m?.untrackMention(e)});x=n.input,S=n.destroy;let i=b;i.replaceWith(n.element),b=n.element,w={next:n.element,prev:i},C?.(n.element,i),m?m.rebindComposer(n.input):v&&v.then(e=>e?.rebindComposer(n.input))}).catch(e=>{typeof console<`u`&&console.warn(`[Persona] Failed to load inline mention composer`,e)});let E=[],D=/* @__PURE__ */ new Map;for(let e of c){if(!e.showButton)continue;let t=o({config:{...s,buttonIconName:e.buttonIconName,buttonTooltipText:e.buttonTooltipText},onOpen:()=>{T().then(t=>t?.openMenu(e.trigger))}});E.push(t),D.set(e.trigger,t.button)}let O=(e,t,n)=>{let r=D.get(t);r&&(r.setAttribute(`aria-expanded`,e?`true`:`false`),e?r.setAttribute(`aria-controls`,n):r.removeAttribute(`aria-controls`))};return{affordanceButtons:E.map(e=>e.wrapper),contextRow:p,handleInput:e=>{if(m){m.handleInput();return}if(!g(e))return;let t=b,n=t.selectionStart??0;h(t.value,n,c)&&T().then(e=>e?.handleInput())},handleKeydown:e=>{if(m?.isMenuOpen())return m.handleKeydown(e);if(e.key===`Backspace`&&m?.hasMentions()&&!w){let t=b,n=t.selectionStart===0&&t.selectionEnd===0;if((t.value.length===0||n)&&m.removeLastChip())return e.preventDefault(),!0}return!1},isMenuOpen:()=>m?.isMenuOpen()??!1,hasMentions:()=>m?.hasMentions()??!1,getMentionRefs:()=>m?.getMentionRefs()??[],captureDraft:()=>m?.captureDraft()??[],restoreDraft:e=>m?.restoreDraft(e),getInlineInput:()=>x,collectForSubmit:()=>m?.collectForSubmit()??null,takeInlineCommand:async e=>u(e)?(m??await T())?.dispatchInlineCommand(e)??null:null,clear:()=>m?.clear(),prefetch:()=>{t().catch(()=>{})},onComposerSwap:e=>{C=e,w&&e(w.next,w.prev)},destroy:()=>{m?.destroy(),S?.();for(let e of E)e.wrapper.remove();f&&p.remove()}}}export{v as createAskUserSheetHandlers,b as createContextMentionOrchestrator};
@@ -1,4 +1,4 @@
1
- import"./chunk-Bb41bKyp.js";import{i as e}from"./chunk-BAdIgC5d.js";import{i as t,l as n,t as r,u as i}from"./chunk-BRM3bHcJ.js";async function a(e,t,n,r){let i={"Content-Type":`application/json`,...e.headers};e.getHeaders&&Object.assign(i,await e.getHeaders());let a={executionId:t.executionId,approvalId:t.approvalId,decision:n,streamResponse:!0},o=(t,n)=>fetch(`${e.clientApiBase()}${t}`,{method:`POST`,headers:i,body:JSON.stringify({...n,...a})}),s=`/v1/agents/${t.agentId}/approve`;if(!e.isClientTokenMode())return o(s);let{sessionId:c}=await e.initSession(),l=await o(`/v1/client/approve`,{sessionId:c,...r?.assistantMessageId?{assistantMessageId:r.assistantMessageId}:{}});if(l.status===404){let e=await l.clone().json().catch(()=>null);if(!e||e.error===`Not Found`)return o(s)}return l}async function o(e,t,n,r){let a=e.isClientTokenMode(),o=a?e.getClientApiUrl(`resume`):`${e.config.apiUrl?.replace(/\/+$/,``)||`https://api.runtype.com`}/resume`,s,c=null;if(a){let t=await e.initSession();s=t.sessionId,t.durableRecovery?.enabled===!0&&(c=await e.readVisitorToken())}let l={"Content-Type":`application/json`,...c?{"X-Visitor-Token":c}:{},...e.headers};e.getHeaders&&Object.assign(l,await e.getHeaders());let u={executionId:t,toolOutputs:n,streamResponse:r?.streamResponse??!0,...r?.after?{after:r.after}:{}};if(s&&(u.sessionId=s,r?.assistantMessageId&&(u.assistantMessageId=r.assistantMessageId)),a&&s){let t=[...i(e.config),...await(await e.getWebMcpBridge())?.snapshotForDispatch()??[]],{response:n,commit:a}=await e.sendWithClientToolsDiff(s,t,t=>{let n={...u,...t};return e.debug&&console.debug(`[AgentWidgetClient] client token resume`,n),fetch(o,{method:`POST`,headers:l,body:JSON.stringify(n),signal:r?.signal})},{emptyMeansReplace:!0});return n.ok&&a(),n}return fetch(o,{method:`POST`,headers:l,body:JSON.stringify(u),signal:r?.signal})}const s=e=>e===`commentary`||e===`partial_answer`||e===`final_answer`?e:void 0;function c(e){let t=e.toLowerCase(),n=t===`text/plain`?`txt`:t===`text/markdown`?`md`:void 0;if(n)return`attachment.${n}`;let r=t.indexOf(`/`);if(r>0){let e=t.slice(r+1).split(`;`)[0]?.trim()??``;if(e&&e!==`octet-stream`&&/^[a-z0-9.+-]+$/i.test(e))return`attachment.${e}`}return`attachment`}const l=e=>/^[{[<]/.test(e);function u(e,t){if(!e)return t;let r=e.trim(),i=t.trim();if(!r)return t;if(!i)return e;let a=l(r);if(!l(i))return e;if(!a||i.startsWith(r))return t;let o=n(e);return n(t)!==null&&o===null?t:e}async function d(e,t,n,r,i,a,o){if(!e.parseSSEEvent)return!1;try{let s=await e.parseSSEEvent(t);if(s===null)return!1;let c=e=>{let t={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`assistant`,sequence:a(),...e!==void 0&&{partId:e}};return r.current=t,i(t),t},l=e=>r.current?r.current:c(e);if(s.text!==void 0){s.partId!==void 0&&o.current!==null&&s.partId!==o.current&&(r.current&&(r.current.streaming=!1,i(r.current)),c(s.partId)),s.partId!==void 0&&(o.current=s.partId);let e=l(s.partId);s.partId!==void 0&&!e.partId&&(e.partId=s.partId),e.content+=s.text,i(e)}return s.done&&(r.current&&(r.current.streaming=!1,i(r.current)),o.current=null,n({type:`status`,status:`idle`})),s.error&&(o.current=null,n({type:`error`,error:Error(s.error)})),!0}catch(e){return typeof console<`u`&&console.error(`[AgentWidget] parseSSEEvent error:`,e),!1}}async function ee(i,a,o,l,ee,f,p,m){let h=i.streamGeneration(),g=a.getReader();i.streamReaders.add(g);let te=!!i.config().backgroundConversations,ne=()=>{te&&g.cancel().catch(()=>{})};f?.addEventListener(`abort`,ne,{once:!0});let re=new TextDecoder,_=``,ie=Date.now(),ae=0,v=()=>ie+ae++,oe=e=>({...e,chunks:e.chunks?[...e.chunks]:void 0}),y=e=>({...e,reasoning:e.reasoning?{...e.reasoning,chunks:[...e.reasoning.chunks]}:void 0,toolCall:e.toolCall?oe(e.toolCall):void 0,tools:e.tools?.map(oe)}),se=e=>{if(e.role!==`assistant`||e.variant)return!0;let t=Array.isArray(e.contentParts)&&e.contentParts.length>0,n=typeof e.rawContent==`string`&&e.rawContent.trim()!==``;return typeof e.content==`string`&&e.content.trim()!==``||t||n||!!e.stopReason},b=e=>{!f?.aborted&&h===i.streamGeneration()&&se(e)&&o({type:`message`,message:y(e)})},x=null,S=null,C={current:null},ce={current:null},w=null,T=``,E=new Map(m?.textPhases),D=/* @__PURE__ */ new Map,O=/* @__PURE__ */ new Map,k=/* @__PURE__ */ new Map,A=/* @__PURE__ */ new Map,j=/* @__PURE__ */ new Map,M=l,N=!1,P=p?.find(e=>e.id===l);P&&(x=y(P),x.streaming=m?.openAssistant??!0,N=!0,w=P.agentMetadata?.textBlockId??null,T=P.rawContent??P.content,S=x,m&&!m.openAssistant&&(x=null)),m&&(w=m.textBlockId,T=m.rawText,m.nestedParents.forEach(([e,t])=>D.set(e,t)),m.nestedRaw.forEach(([e,t])=>k.set(e,t)));for(let e of p??[]){e.variant===`tool`&&e.toolCall?.id&&j.set(e.toolCall.id,y(e)),e.variant===`reasoning`&&e.reasoning?.id&&A.set(e.reasoning.id,y(e));let t=e.agentMetadata?.textBlockId;t&&(O.set(t,e.id===x?.id?x:y(e)),e.agentMetadata?.phase&&E.set(t,e.agentMetadata.phase));let n=e.agentMetadata?.parentToolId;t&&n&&(D.set(t,n),k.set(t,e.rawContent??e.content))}let le=()=>{if(x)return x;let e,t=``,n=w;return!N&&M?(e=M,N=!0,t=ee??``):e=M&&n?`${M}_${n}`:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,x={id:e,role:`assistant`,content:t,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v()},b(x),x},F=(e,t)=>{let n=A.get(e);if(n)return n;let r={id:`reason-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`reasoning`,agentMetadata:{executionId:t},sequence:v(),reasoning:{id:e,status:`streaming`,chunks:[]}};return A.set(e,r),b(r),r},I=/* @__PURE__ */ new Set,L=/* @__PURE__ */ new Map,R=/* @__PURE__ */ new Set;for(let e of p??[])if(e.id.startsWith(`artifact-ref-`)){let t=e.id.slice(13);R.add(t),L.set(t,y(e))}m?.artifactTools.forEach(e=>I.add(e));let z=/* @__PURE__ */ new Map;m?.artifactContent.forEach(([e,t])=>z.set(e,{...t}));let ue=e=>{if(!e)return!1;let t=e.replace(/_+/g,`_`).replace(/^_|_$/g,``);return t===`emit_artifact_markdown`||t===`emit_artifact_component`},B=(e,t,n)=>{let r=j.get(e),i={...r?.agentMetadata,executionId:t??r?.agentMetadata?.executionId,iteration:n??r?.agentMetadata?.iteration??(Y||void 0)};if(r)return r.agentMetadata=i,r;let a={id:`tool-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`tool`,agentMetadata:i,sequence:v(),toolCall:{id:e,status:`pending`}};return j.set(e,a),b(a),a},de=e=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t=Number(e);if(Number.isFinite(t))return t;let n=Date.parse(e);if(!Number.isNaN(n))return n}return Date.now()},V=e=>{if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e)}catch{return String(e)}},H=/* @__PURE__ */ new Map,U=/* @__PURE__ */ new Map,fe=(e,t)=>{let r=V(t),i=u(U.get(e.id),r);e.rawContent=i;let a=H.get(e.id),o=t=>{let n=e.content??``;t.trim()!==``&&(!n.trim()||t.startsWith(n)||t.trimStart().startsWith(n.trim()))&&(e.content=t)},s=()=>{let t=a?.close?.();t instanceof Promise&&t.catch(()=>{}),H.delete(e.id),U.delete(e.id),e.streaming=!1,b(e)};if(!a){o(r),s();return}let c=n(i);if(c!==null&&c.trim()!==``){o(c),s();return}let l=e=>{let t=typeof e==`string`?e:e?.text??null;if(t!==null&&t.trim()!==``)return t;let n=a.getExtractedText();return n!==null&&n.trim()!==``?n:r},d;try{d=a.processChunk(i)}catch{o(r),s();return}d instanceof Promise?d.then(e=>{o(l(e)),s()}).catch(()=>{o(r),s()}):(o(l(d)),s())},W=null,pe=p?.find(e=>e.id===m?.sealedFlowMessageId);pe&&(W=y(pe));let me=(e,t,n)=>{e.rawContent=t,H.has(e.id)||H.set(e.id,i.createStreamParser());let r=H.get(e.id),a=/^[{[]/.test(t.trim());a&&U.set(e.id,t);let o=()=>{e.content+=n,U.delete(e.id),H.delete(e.id),e.rawContent=void 0,b(e)};if(r.__isPlainTextParser===!0){o();return}let s=n=>{let r=typeof n==`string`?n:n?.text??null;r!==null&&r.trim()!==``?(e.content=r,b(e)):!a&&!t.trim().startsWith(`<`)&&o()},c=r.processChunk(t);c instanceof Promise?c.then(s).catch(o):s(c)},G=(e,t)=>{let r=t??e.content;if(r==null||r===``){e.streaming=!1,b(e);return}let i=U.get(e.id)??V(r);e.rawContent=i;let a=H.get(e.id),o=null,s=!1;if(a&&(o=a.getExtractedText(),o===null&&(o=n(i)),o===null)){let t=a.processChunk(i);t instanceof Promise?(s=!0,t.then(t=>{let n=typeof t==`string`?t:t?.text??null;n!==null&&(e.content=n,e.streaming=!1,H.delete(e.id),U.delete(e.id),b(e))}).catch(()=>{})):o=typeof t==`string`?t:t?.text??null}if(!s){o!==null&&o.trim()!==``?e.content=o:U.has(e.id)||(e.content=V(r));let t=H.get(e.id);if(t){let n=t.close?.();n instanceof Promise&&n.catch(()=>{}),H.delete(e.id)}U.delete(e.id),e.streaming=!1,b(e)}},he=(e,t,n,r)=>{let i=O.get(e);if(i)return i;let a={id:`nested-${t}-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v(),...n?{variant:n}:{},...n===`reasoning`?{reasoning:{id:e,status:`streaming`,chunks:[]}}:{},agentMetadata:{parentToolId:t,textBlockId:e,executionId:r,phase:E.get(e)}};return O.set(e,a),b(a),a},K=[],q,J=/* @__PURE__ */ new Map;m?.media.forEach(([e,t])=>J.set(e,{...t,parts:[...t.parts]}));let Y=m?.iteration??0,X=m?.executionKind??`agent`,Z=m?.executionKindResolved??!1,Q=m?.turnId??null,$=null,ge=i.config().iterationDisplay??`separate`;q=()=>{for(let n=0;n<K.length;n++){let a=K[n];if(!Z&&X!==`flow`&&typeof a.stepType==`string`&&(X=`flow`),a.type===`reasoning_start`){let e=typeof a.id==`string`?a.id:null,t=typeof a.parentToolCallId==`string`&&a.parentToolCallId?a.parentToolCallId:null;if(e&&t){D.set(e,t),he(e,t,`reasoning`,a.executionId);continue}let n=a.id,r=F(n,a.executionId);r.reasoning=r.reasoning??{id:n,status:`streaming`,chunks:[]},r.reasoning.startedAt=r.reasoning.startedAt??Date.now(),r.reasoning.completedAt=void 0,r.reasoning.durationMs=void 0,(a.scope===`loop`||a.scope===`turn`)&&(r.reasoning.scope=a.scope),r.streaming=!0,r.reasoning.status=`streaming`,b(r)}else if(a.type===`reasoning_delta`){let e=typeof a.id==`string`?a.id:null;if(e&&D.has(e)&&O.has(e)){let t=O.get(e),n=a.delta;n&&t.reasoning&&(t.reasoning.chunks.push(String(n)),b(t));continue}let t=a.id,n=F(t,a.executionId);n.reasoning=n.reasoning??{id:t,status:`streaming`,chunks:[]},n.reasoning.startedAt=n.reasoning.startedAt??Date.now(),a.delta&&n.reasoning.chunks.push(a.delta),n.reasoning.status=`streaming`,n.streaming=!0,b(n)}else if(a.type===`reasoning_complete`){let e=typeof a.id==`string`?a.id:null;if(e&&D.has(e)&&O.has(e)){let t=O.get(e);if(t.reasoning){let e=typeof a.text==`string`?a.text:``;e&&t.reasoning.chunks.length===0&&t.reasoning.chunks.push(e),t.reasoning.status=`complete`,t.streaming=!1,b(t)}D.delete(e),O.delete(e);continue}let t=a.id,n=typeof a.text==`string`?a.text:``;!A.get(t)&&(n||a.scope===`loop`)&&F(t,a.executionId);let r=A.get(t);if(r?.reasoning){(a.scope===`loop`||a.scope===`turn`)&&(r.reasoning.scope=a.scope),n&&r.reasoning.chunks.length===0&&r.reasoning.chunks.push(n),r.reasoning.status=`complete`,r.reasoning.completedAt=Date.now();let e=r.reasoning.startedAt??Date.now();r.reasoning.durationMs=Math.max(0,(r.reasoning.completedAt??Date.now())-e),r.streaming=!1,b(r)}}else if(a.type===`tool_start`){x&&=(x.streaming=!1,b(x),null),typeof a.iteration==`number`&&(Y=a.iteration);let e=a.toolCallId,t=a.toolName;if(ue(t)){I.add(e);continue}let n=B(e,a.executionId,a.iteration),r=n.toolCall??{id:e,status:`pending`};r.name=t??r.name,r.status=`running`,r.success=void 0,r.error=void 0,r.duration=void 0,a.parameters!==void 0&&(r.args=a.parameters),r.startedAt=r.startedAt??de(a.startedAt),r.completedAt=void 0,r.durationMs=void 0,n.toolCall=r,n.streaming=!0,b(n)}else if(a.type===`tool_output_delta`){let e=a.toolCallId;if(I.has(e))continue;let t=B(e,a.executionId),n=t.toolCall??{id:e,status:`running`};n.startedAt=n.startedAt??Date.now();let r=a.delta;r&&(n.chunks=n.chunks??[],n.chunks.push(String(r))),n.status=`running`,t.toolCall=n,t.streaming=!0,b(t)}else if(a.type===`tool_complete`){let e=a.toolCallId;if(I.has(e)){I.delete(e);continue}let t=B(e,a.executionId,a.iteration),n=t.toolCall??{id:e,status:`running`};n.status=`complete`,a.result!==void 0&&(n.result=a.result),n.name=a.toolName??n.name,n.success=a.success,n.error=a.error,n.completedAt=Date.now();let r=a.executionTime;if(typeof r==`number`)n.durationMs=r,n.duration=r;else{let e=n.startedAt??Date.now();n.durationMs=Math.max(0,(n.completedAt??Date.now())-e)}t.toolCall=n,t.streaming=!1,b(t)}else if(a.type===`await`&&a.toolName){let t=typeof a.toolCallId==`string`&&a.toolCallId.length>0?a.toolCallId:void 0,n=t??a.toolId??`local-${v()}`,r=B(n,a.executionId),i=a.toolName,o=a.origin===`webmcp`&&!e(i)?`webmcp:${i}`:i,s=e(o),c=r.toolCall??{id:n,status:`pending`};c.name=o,c.args=a.parameters,c.status=s?`running`:`complete`,c.chunks=c.chunks??[],c.startedAt=c.startedAt??de(a.awaitedAt),s?(c.completedAt=void 0,c.duration=void 0,c.durationMs=void 0):c.completedAt=c.completedAt??c.startedAt,r.toolCall=c,r.streaming=!1,r.agentMetadata={...r.agentMetadata,executionId:a.executionId??r.agentMetadata?.executionId,awaitingLocalTool:!0,...t?{webMcpToolCallId:t}:{}},b(r)}else if(a.type===`text_start`){let e=typeof a.id==`string`?a.id:null;if(e){let t=s(a.phase);t?E.set(e,t):E.delete(e)}let t=typeof a.parentToolCallId==`string`&&a.parentToolCallId?a.parentToolCallId:null;if(e&&t){D.set(e,t);continue}let n=x;n&&(X===`flow`?(G(n),W=n):(n.streaming=!1,b(n)),x=null),w=e??w,T=``}else if(a.type===`text_delta`){let e=typeof a.id==`string`?a.id:null,t=e?D.get(e):void 0;if(e&&t){let n=typeof a.delta==`string`?a.delta:``,r=(k.get(e)??``)+n;if(k.set(e,r),r.trim()===``)continue;let i=he(e,t,void 0,a.executionId);me(i,r,n);continue}w=e??w;let n=typeof a.delta==`string`?a.delta:``;if(T+=n,X===`flow`&&T.trim()===``)continue;let r=le();r.agentMetadata={textBlockId:w??void 0,phase:E.get(w??``),executionId:a.executionId,iteration:Y,...X===`flow`?{}:{turnId:Q??void 0,agentName:$?.agentName}},w&&O.set(w,r),me(r,T,n),S=r}else if(a.type===`text_complete`){let e=typeof a.id==`string`?a.id:null;e&&E.delete(e);let t=e?O.get(e):x,n=s(a.phase);if(t&&n&&(t.agentMetadata={...t.agentMetadata,providerPhase:n}),e&&D.has(e)){let t=O.get(e);t&&G(t),D.delete(e),k.delete(e),O.delete(e);continue}if(e&&t!==x){t&&(t.streaming=!1,b(t));continue}let r=x;r&&(X===`flow`?(G(r),W=r):((r.content??``)===``&&typeof a.text==`string`&&(r.content=a.text),r.streaming=!1,b(r)),x=null),w=null,T=``}else if(a.type===`step_complete`){if(a.stepType===`tool`)continue;if(a.success===!1){let e=a.error||`Step failed`;o({type:`error`,error:Error(e)});let t=x;t&&t.streaming&&(t.streaming=!1,b(t)),o({type:`status`,status:`idle`});continue}{let e=W;W=null;let t=a.stopReason,n=(a.result&&typeof a.result==`object`?a.result:null)?.response;if(e)t&&(e.stopReason=t),n==null?e.streaming!==!1&&(H.delete(e.id),U.delete(e.id),e.streaming=!1,b(e)):fe(e,n);else{let e=n!=null&&n!==``;if(e||t&&t!==`end_turn`&&t!==`unknown`){let r=le();t&&(r.stopReason=t),e?G(r,n):(r.streaming=!1,b(r))}}continue}}else if(a.type===`execution_start`)X=a.kind===`flow`?`flow`:`agent`,Z=!0,i.config().backgroundConversations&&o({type:`status`,status:`connected`,executionId:a.executionId}),X===`agent`&&($={executionId:a.executionId,agentId:a.agentId??`virtual`,agentName:a.agentName??``});else if(a.type===`turn_start`){let e=typeof a.iteration==`number`?a.iteration:Y;if(e!==Y){if(ge===`separate`&&e>1){let e=x;e&&(e.streaming=!1,b(e),x=null)}Y=e}Q=typeof a.id==`string`?a.id:null,S=null}else if(a.type===`tool_input_delta`){let e=a.toolCallId;if(e){let t=j.get(e);t?.toolCall&&(t.toolCall.chunks=t.toolCall.chunks??[],t.toolCall.chunks.push(a.delta??``),b(t))}}else if(a.type===`tool_input_complete`){if(I.has(a.toolCallId))continue;let e=B(a.toolCallId,a.executionId),t=e.toolCall;t.args=a.parameters,t.name=a.toolName??t.name,b(e)}else if(a.type===`turn_complete`){let e=a.stopReason,t=x??S;if(e&&t!==null){let n=a.id;(!n||t.agentMetadata?.turnId===n)&&(t.stopReason=e,b(t))}Q===a.id&&(Q=null)}else if(a.type===`media_start`){let e=String(a.id);J.set(e,{mediaType:typeof a.mediaType==`string`?a.mediaType:void 0,toolCallId:a.toolCallId,parts:[]})}else if(a.type===`media_delta`){let e=J.get(String(a.id));e&&typeof a.delta==`string`&&e.parts.push(a.delta)}else if(a.type===`media_complete`){let e=String(a.id),t=J.get(e);J.delete(e);let n=(typeof a.mediaType==`string`?a.mediaType:void 0)??t?.mediaType??`application/octet-stream`,r=typeof a.data==`string`?a.data:void 0,i=typeof a.url==`string`?a.url:t&&t.parts.length>0?t.parts.join(``):void 0,o=null;if(r)o={type:`media`,data:r,mediaType:n};else if(i){let e=n.toLowerCase();o={type:e===`image`||e.startsWith(`image/`)?`image-url`:`file-url`,url:i,mediaType:n}}let s=a.toolCallId??t?.toolCallId,l=o?[o]:[],u=[];for(let e of l){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.type==`string`?t.type:void 0,r=typeof t.mediaType==`string`?t.mediaType.toLowerCase():``,i=null,a=``;if(n===`media`){let e=typeof t.data==`string`?t.data:void 0;if(!e)continue;a=r.length>0?r:`application/octet-stream`,i=`data:${a};base64,${e}`}else if(n===`image-url`){let e=typeof t.url==`string`?t.url:void 0;if(!e)continue;a=r,i=e}else if(n===`file-url`){let e=typeof t.url==`string`?t.url:void 0;if(!e)continue;a=r,i=e}else continue;if(i){if(n===`image-url`||a.startsWith(`image/`))u.push({type:`image`,image:i,...a.includes(`/`)?{mimeType:a}:{}});else if(a.startsWith(`audio/`))u.push({type:`audio`,audio:i,mimeType:a});else if(a.startsWith(`video/`))u.push({type:`video`,video:i,mimeType:a});else{let e=a||`application/octet-stream`;u.push({type:`file`,data:i,mimeType:e,filename:c(e)})}}}if(u.length>0){let e=v(),t=s,n={id:`agent-media-${typeof t==`string`&&t.length>0?`${t}-${e}`:String(e)}`,role:`assistant`,content:``,contentParts:u,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,sequence:e,agentMetadata:{executionId:a.executionId,iteration:Y}};b(n);let r=x;r&&(r.streaming=!1,b(r)),x=null,C.current=null}}else if(a.type===`execution_complete`){let e=x;e&&(a.kind===`flow`&&e.streaming!==!1?G(e):(e.streaming=!1,b(e)),x=null),w=null,T=``,W=null,o({type:`status`,status:a.success===!1?`error`:`idle`,terminal:!0})}else if(a.type===`execution_error`){let e=typeof a.error==`string`?a.error:a.error?.message??`Execution error`;o({type:`error`,error:Error(e)})}else if(a.type!==`ping`){if(a.type===`approval_start`){let e=a.approvalId??`approval-${v()}`,t={id:`approval-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,variant:`approval`,sequence:v(),approval:{id:e,status:`pending`,agentId:$?.agentId??`virtual`,executionId:a.executionId??$?.executionId??``,toolName:a.toolName??``,toolType:a.toolType,description:a.description??`Execute ${a.toolName??`tool`}`,...typeof a.reason==`string`&&a.reason?{reason:a.reason}:{},parameters:a.parameters,...typeof a.toolCallId==`string`&&a.toolCallId?{toolCallId:a.toolCallId}:{}}};b(t)}else if(a.type===`approval_complete`){let e=a.approvalId;if(e){let t={id:`approval-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,variant:`approval`,sequence:v(),approval:{id:e,status:a.decision??`approved`,agentId:$?.agentId??`virtual`,executionId:a.executionId??$?.executionId??``,toolName:``,description:``,resolvedAt:Date.now()}};b(t)}}else if(a.type===`artifact_start`||a.type===`artifact_delta`||a.type===`artifact_update`||a.type===`artifact_complete`){if(a.type===`artifact_start`){let e=a.artifactType,n=String(a.id),s=typeof a.title==`string`?a.title:void 0,c=a.file,l;if(c&&typeof c==`object`&&!Array.isArray(c)&&typeof c.path==`string`&&typeof c.mimeType==`string`&&(l={path:c.path,mimeType:c.mimeType,...typeof c.language==`string`?{language:c.language}:{}}),o({type:`artifact_start`,id:n,artifactType:e,title:s,component:typeof a.component==`string`?a.component:void 0,...l?{file:l}:{}}),z.set(n,{markdown:``,title:s,file:l}),!R.has(n)){R.add(n);let o=t(i.config().features?.artifacts,{artifactType:e,...l?{file:l}:{}}),c=typeof a.component==`string`?a.component:void 0,u={id:`artifact-ref-${n}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v(),rawContent:r(o,{artifactId:n,title:s,artifactType:e,status:`streaming`,...l?{file:l}:{},...c?{component:c}:{}})};L.set(n,u),b(u)}}else if(a.type===`artifact_delta`){let e=String(a.id),t=typeof a.delta==`string`?a.delta:String(a.delta??``);o({type:`artifact_delta`,id:e,artDelta:t});let n=z.get(e);n&&(n.markdown+=t)}else if(a.type===`artifact_update`){let e=a.props&&typeof a.props==`object`&&!Array.isArray(a.props)?a.props:{};o({type:`artifact_update`,id:String(a.id),props:e,component:typeof a.component==`string`?a.component:void 0});let t=z.get(String(a.id));t&&(t.props={...t.props??{},...e})}else if(a.type===`artifact_complete`){let e=String(a.id);o({type:`artifact_complete`,id:e});let t=L.get(e);if(t){t.streaming=!1;try{let n=JSON.parse(t.rawContent??`{}`);if(n.props){n.props.status=`complete`;let t=z.get(e);t?.markdown&&(n.props.markdown=t.markdown),t?.file&&(n.props.file=t.file),n.component===`PersonaArtifactInline`&&t?.props&&Object.keys(t.props).length>0&&(n.props.componentProps=t.props)}t.rawContent=JSON.stringify(n)}catch{}z.delete(e),b(t),L.delete(e)}}}else if(a.type===`error`&&a.recoverable===!1&&a.error!=null&&a.error!==``){let e=typeof a.error==`string`?a.error:a.error?.message==null?`Execution error`:String(a.error.message);o({type:`error`,error:Error(e)});let t=x;t&&t.streaming&&(t.streaming=!1,b(t)),o({type:`status`,status:`idle`})}}}K.length=0};try{for(;;){if(h!==i.streamGeneration())return;f?.throwIfAborted();let{done:e,value:t}=await g.read();if(h!==i.streamGeneration())return;if(f?.throwIfAborted(),e)break;_+=re.decode(t,{stream:!0});let n=_.split(`
1
+ import"./chunk-Bb41bKyp.js";import{i as e}from"./chunk-BAdIgC5d.js";import{i as t,l as n,t as r,u as i}from"./chunk-BRM3bHcJ.js";async function a(e,t,n,r){let i={"Content-Type":`application/json`,...e.headers};e.getHeaders&&Object.assign(i,await e.getHeaders());let a={executionId:t.executionId,approvalId:t.approvalId,decision:n,streamResponse:!0},o=(t,n)=>fetch(`${e.clientApiBase()}${t}`,{method:`POST`,headers:i,body:JSON.stringify({...n,...a})}),s=`/v1/agents/${t.agentId}/approve`;if(!e.isClientTokenMode())return o(s);let{sessionId:c}=await e.initSession(),l=await o(`/v1/client/approve`,{sessionId:c,...r?.assistantMessageId?{assistantMessageId:r.assistantMessageId}:{}});if(l.status===404){let e=await l.clone().json().catch(()=>null);if(!e||e.error===`Not Found`)return o(s)}return l}async function o(e,t,n,r){let a=e.isClientTokenMode(),o=a?e.getClientApiUrl(`resume`):`${e.config.apiUrl?.replace(/\/+$/,``)||`https://api.runtype.com`}/resume`,s,c=null;if(a){let t=await e.initSession();s=t.sessionId,t.durableRecovery?.enabled===!0&&(c=await e.readVisitorToken())}let l={"Content-Type":`application/json`,...c?{"X-Visitor-Token":c}:{},...e.headers};e.getHeaders&&Object.assign(l,await e.getHeaders());let u={executionId:t,toolOutputs:n,streamResponse:r?.streamResponse??!0,...r?.after?{after:r.after}:{}};if(s&&(u.sessionId=s,r?.assistantMessageId&&(u.assistantMessageId=r.assistantMessageId)),a&&s){let t=[...i(e.config),...await(await e.getWebMcpBridge())?.snapshotForDispatch()??[]],{response:n,commit:a}=await e.sendWithClientToolsDiff(s,t,t=>{let n={...u,...t};return e.debug&&console.debug(`[AgentWidgetClient] client token resume`,n),fetch(o,{method:`POST`,headers:l,body:JSON.stringify(n),signal:r?.signal})},{emptyMeansReplace:!0});return n.ok&&a(),n}return fetch(o,{method:`POST`,headers:l,body:JSON.stringify(u),signal:r?.signal})}const s=e=>e===`commentary`||e===`partial_answer`||e===`final_answer`?e:void 0;function c(e){let t=e.toLowerCase(),n=t===`text/plain`?`txt`:t===`text/markdown`?`md`:void 0;if(n)return`attachment.${n}`;let r=t.indexOf(`/`);if(r>0){let e=t.slice(r+1).split(`;`)[0]?.trim()??``;if(e&&e!==`octet-stream`&&/^[a-z0-9.+-]+$/i.test(e))return`attachment.${e}`}return`attachment`}const l=e=>/^[{[<]/.test(e);function u(e,t){if(!e)return t;let r=e.trim(),i=t.trim();if(!r)return t;if(!i)return e;let a=l(r);if(!l(i))return e;if(!a||i.startsWith(r))return t;let o=n(e);return n(t)!==null&&o===null?t:e}async function d(e,t,n,r,i,a,o){if(!e.parseSSEEvent)return!1;try{let s=await e.parseSSEEvent(t);if(s===null)return!1;let c=e=>{let t={id:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`assistant`,sequence:a(),...e!==void 0&&{partId:e}};return r.current=t,i(t),t},l=e=>r.current?r.current:c(e);if(s.text!==void 0){s.partId!==void 0&&o.current!==null&&s.partId!==o.current&&(r.current&&(r.current.streaming=!1,i(r.current)),c(s.partId)),s.partId!==void 0&&(o.current=s.partId);let e=l(s.partId);s.partId!==void 0&&!e.partId&&(e.partId=s.partId),e.content+=s.text,i(e)}return s.done&&(r.current&&(r.current.streaming=!1,i(r.current)),o.current=null,n({type:`status`,status:`idle`})),s.error&&(o.current=null,n({type:`error`,error:Error(s.error)})),!0}catch(e){return typeof console<`u`&&console.error(`[AgentWidget] parseSSEEvent error:`,e),!1}}async function ee(i,a,o,l,ee,f,p,m){let h=i.streamGeneration(),g=a.getReader();i.streamReaders.add(g);let te=!!i.config().backgroundConversations,ne=()=>{te&&g.cancel().catch(()=>{})};f?.addEventListener(`abort`,ne,{once:!0});let re=new TextDecoder,_=``,ie=Date.now(),ae=0,v=()=>ie+ae++,oe=e=>({...e,chunks:e.chunks?[...e.chunks]:void 0}),y=e=>({...e,reasoning:e.reasoning?{...e.reasoning,chunks:[...e.reasoning.chunks]}:void 0,toolCall:e.toolCall?oe(e.toolCall):void 0,tools:e.tools?.map(oe)}),se=e=>{if(e.role!==`assistant`||e.variant)return!0;let t=Array.isArray(e.contentParts)&&e.contentParts.length>0,n=typeof e.rawContent==`string`&&e.rawContent.trim()!==``;return typeof e.content==`string`&&e.content.trim()!==``||t||n||!!e.stopReason},b=e=>{!f?.aborted&&h===i.streamGeneration()&&se(e)&&o({type:`message`,message:y(e)})},x=null,S=null,C={current:null},ce={current:null},w=null,T=``,E=new Map(m?.textPhases),D=/* @__PURE__ */ new Map,O=/* @__PURE__ */ new Map,k=/* @__PURE__ */ new Map,A=/* @__PURE__ */ new Map,j=/* @__PURE__ */ new Map,M=l,N=!1,P=p?.find(e=>e.id===l);P&&(x=y(P),x.streaming=m?.openAssistant??!0,N=!0,w=P.agentMetadata?.textBlockId??null,T=P.rawContent??P.content,S=x,m&&!m.openAssistant&&(x=null)),m&&(w=m.textBlockId,T=m.rawText,m.nestedParents.forEach(([e,t])=>D.set(e,t)),m.nestedRaw.forEach(([e,t])=>k.set(e,t)));for(let e of p??[]){e.variant===`tool`&&e.toolCall?.id&&j.set(e.toolCall.id,y(e)),e.variant===`reasoning`&&e.reasoning?.id&&A.set(e.reasoning.id,y(e));let t=e.agentMetadata?.textBlockId;t&&(O.set(t,e.id===x?.id?x:y(e)),e.agentMetadata?.phase&&E.set(t,e.agentMetadata.phase));let n=e.agentMetadata?.parentToolId;t&&n&&(D.set(t,n),k.set(t,e.rawContent??e.content))}let le=()=>{if(x)return x;let e,t=``,n=w;return!N&&M?(e=M,N=!0,t=ee??``):e=M&&n?`${M}_${n}`:`assistant-${Date.now()}-${Math.random().toString(16).slice(2)}`,x={id:e,role:`assistant`,content:t,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v()},b(x),x},F=(e,t)=>{let n=A.get(e);if(n)return n;let r={id:`reason-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`reasoning`,agentMetadata:{executionId:t},sequence:v(),reasoning:{id:e,status:`streaming`,chunks:[]}};return A.set(e,r),b(r),r},I=/* @__PURE__ */ new Set,L=/* @__PURE__ */ new Map,R=/* @__PURE__ */ new Set;for(let e of p??[])if(e.id.startsWith(`artifact-ref-`)){let t=e.id.slice(13);R.add(t),L.set(t,y(e))}m?.artifactTools.forEach(e=>I.add(e));let z=/* @__PURE__ */ new Map;m?.artifactContent.forEach(([e,t])=>z.set(e,{...t}));let ue=e=>{if(!e)return!1;let t=e.replace(/_+/g,`_`).replace(/^_|_$/g,``);return t===`emit_artifact_markdown`||t===`emit_artifact_component`},B=(e,t,n)=>{let r=j.get(e),i={...r?.agentMetadata,executionId:t??r?.agentMetadata?.executionId,iteration:n??r?.agentMetadata?.iteration??(Y||void 0)};if(r)return r.agentMetadata=i,r;let a={id:`tool-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,variant:`tool`,agentMetadata:i,sequence:v(),toolCall:{id:e,status:`pending`}};return j.set(e,a),b(a),a},de=e=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t=Number(e);if(Number.isFinite(t))return t;let n=Date.parse(e);if(!Number.isNaN(n))return n}return Date.now()},V=e=>{if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e)}catch{return String(e)}},H=/* @__PURE__ */ new Map,U=/* @__PURE__ */ new Map,fe=(e,t)=>{let r=V(t),i=u(U.get(e.id),r);e.rawContent=i;let a=H.get(e.id),o=t=>{let n=e.content??``;t.trim()!==``&&(!n.trim()||t.startsWith(n)||t.trimStart().startsWith(n.trim()))&&(e.content=t)},s=()=>{let t=a?.close?.();t instanceof Promise&&t.catch(()=>{}),H.delete(e.id),U.delete(e.id),e.streaming=!1,b(e)};if(!a){o(r),s();return}let c=n(i);if(c!==null&&c.trim()!==``){o(c),s();return}let l=e=>{let t=typeof e==`string`?e:e?.text??null;if(t!==null&&t.trim()!==``)return t;let n=a.getExtractedText();return n!==null&&n.trim()!==``?n:r},d;try{d=a.processChunk(i)}catch{o(r),s();return}d instanceof Promise?d.then(e=>{o(l(e)),s()}).catch(()=>{o(r),s()}):(o(l(d)),s())},W=null,pe=p?.find(e=>e.id===m?.sealedFlowMessageId);pe&&(W=y(pe));let me=(e,t,n)=>{e.rawContent=t,H.has(e.id)||H.set(e.id,i.createStreamParser());let r=H.get(e.id),a=/^[{[]/.test(t.trim());a&&U.set(e.id,t);let o=()=>{e.content+=n,U.delete(e.id),H.delete(e.id),e.rawContent=void 0,b(e)};if(r.__isPlainTextParser===!0){o();return}let s=n=>{let r=typeof n==`string`?n:n?.text??null;r!==null&&r.trim()!==``?(e.content=r,b(e)):!a&&!t.trim().startsWith(`<`)&&o()},c=r.processChunk(t);c instanceof Promise?c.then(s).catch(o):s(c)},G=(e,t)=>{let r=t??e.content;if(r==null||r===``){e.streaming=!1,b(e);return}let i=U.get(e.id)??V(r);e.rawContent=i;let a=H.get(e.id),o=null,s=!1;if(a&&(o=a.getExtractedText(),o===null&&(o=n(i)),o===null)){let t=a.processChunk(i);t instanceof Promise?(s=!0,t.then(t=>{let n=typeof t==`string`?t:t?.text??null;n!==null&&(e.content=n,e.streaming=!1,H.delete(e.id),U.delete(e.id),b(e))}).catch(()=>{})):o=typeof t==`string`?t:t?.text??null}if(!s){o!==null&&o.trim()!==``?e.content=o:U.has(e.id)||(e.content=V(r));let t=H.get(e.id);if(t){let n=t.close?.();n instanceof Promise&&n.catch(()=>{}),H.delete(e.id)}U.delete(e.id),e.streaming=!1,b(e)}},he=(e,t,n,r)=>{let i=O.get(e);if(i)return i;let a={id:`nested-${t}-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v(),...n?{variant:n}:{},...n===`reasoning`?{reasoning:{id:e,status:`streaming`,chunks:[]}}:{},agentMetadata:{parentToolId:t,textBlockId:e,executionId:r,phase:E.get(e)}};return O.set(e,a),b(a),a},K=[],q,J=/* @__PURE__ */ new Map;m?.media.forEach(([e,t])=>J.set(e,{...t,parts:[...t.parts]}));let Y=m?.iteration??0,X=m?.executionKind??`agent`,Z=m?.executionKindResolved??!1,Q=m?.turnId??null,$=null,ge=i.config().iterationDisplay??`separate`;q=()=>{for(let n=0;n<K.length;n++){let a=K[n];if(!Z&&X!==`flow`&&typeof a.stepType==`string`&&(X=`flow`),a.type===`reasoning_start`){let e=typeof a.id==`string`?a.id:null,t=typeof a.parentToolCallId==`string`&&a.parentToolCallId?a.parentToolCallId:null;if(e&&t){D.set(e,t),he(e,t,`reasoning`,a.executionId);continue}let n=a.id,r=F(n,a.executionId);r.reasoning=r.reasoning??{id:n,status:`streaming`,chunks:[]},r.reasoning.startedAt=r.reasoning.startedAt??Date.now(),r.reasoning.completedAt=void 0,r.reasoning.durationMs=void 0,(a.scope===`loop`||a.scope===`turn`)&&(r.reasoning.scope=a.scope),r.streaming=!0,r.reasoning.status=`streaming`,b(r)}else if(a.type===`reasoning_delta`){let e=typeof a.id==`string`?a.id:null;if(e&&D.has(e)&&O.has(e)){let t=O.get(e),n=a.delta;n&&t.reasoning&&(t.reasoning.chunks.push(String(n)),b(t));continue}let t=a.id,n=F(t,a.executionId);n.reasoning=n.reasoning??{id:t,status:`streaming`,chunks:[]},n.reasoning.startedAt=n.reasoning.startedAt??Date.now(),a.delta&&n.reasoning.chunks.push(a.delta),n.reasoning.status=`streaming`,n.streaming=!0,b(n)}else if(a.type===`reasoning_complete`){let e=typeof a.id==`string`?a.id:null;if(e&&D.has(e)&&O.has(e)){let t=O.get(e);if(t.reasoning){let e=typeof a.text==`string`?a.text:``;e&&t.reasoning.chunks.length===0&&t.reasoning.chunks.push(e),t.reasoning.status=`complete`,t.streaming=!1,b(t)}D.delete(e),O.delete(e);continue}let t=a.id,n=typeof a.text==`string`?a.text:``;!A.get(t)&&(n||a.scope===`loop`)&&F(t,a.executionId);let r=A.get(t);if(r?.reasoning){(a.scope===`loop`||a.scope===`turn`)&&(r.reasoning.scope=a.scope),n&&r.reasoning.chunks.length===0&&r.reasoning.chunks.push(n),r.reasoning.status=`complete`,r.reasoning.completedAt=Date.now();let e=r.reasoning.startedAt??Date.now();r.reasoning.durationMs=Math.max(0,(r.reasoning.completedAt??Date.now())-e),r.streaming=!1,b(r)}}else if(a.type===`tool_start`){x&&=(x.streaming=!1,b(x),null),typeof a.iteration==`number`&&(Y=a.iteration);let e=a.toolCallId,t=a.toolName;if(ue(t)){I.add(e);continue}let n=B(e,a.executionId,a.iteration),r=n.toolCall??{id:e,status:`pending`};r.name=t??r.name,r.status=`running`,r.success=void 0,r.error=void 0,r.duration=void 0,a.parameters!==void 0&&(r.args=a.parameters),r.startedAt=r.startedAt??de(a.startedAt),r.completedAt=void 0,r.durationMs=void 0,n.toolCall=r,n.streaming=!0,b(n)}else if(a.type===`tool_output_delta`){let e=a.toolCallId;if(I.has(e))continue;let t=B(e,a.executionId),n=t.toolCall??{id:e,status:`running`};n.startedAt=n.startedAt??Date.now();let r=a.delta;r&&(n.chunks=n.chunks??[],n.chunks.push(String(r))),n.status=`running`,t.toolCall=n,t.streaming=!0,b(t)}else if(a.type===`tool_complete`){let e=a.toolCallId;if(I.has(e)){I.delete(e);continue}let t=B(e,a.executionId,a.iteration),n=t.toolCall??{id:e,status:`running`};n.status=`complete`,a.result!==void 0&&(n.result=a.result),n.name=a.toolName??n.name,n.success=a.success,n.error=a.error,n.completedAt=Date.now();let r=a.executionTime;if(typeof r==`number`)n.durationMs=r,n.duration=r;else{let e=n.startedAt??Date.now();n.durationMs=Math.max(0,(n.completedAt??Date.now())-e)}t.toolCall=n,t.streaming=!1,b(t)}else if(a.type===`await`&&a.toolName){let t=typeof a.toolCallId==`string`&&a.toolCallId.length>0?a.toolCallId:void 0,n=t??a.toolId??`local-${v()}`,r=B(n,a.executionId),i=a.toolName,o=a.origin===`webmcp`&&!e(i)?`webmcp:${i}`:i,s=e(o),c=r.toolCall??{id:n,status:`pending`};c.name=o,c.args=a.parameters,c.status=s?`running`:`complete`,c.chunks=c.chunks??[],c.startedAt=c.startedAt??de(a.awaitedAt),s?(c.completedAt=void 0,c.duration=void 0,c.durationMs=void 0):c.completedAt=c.completedAt??c.startedAt,r.toolCall=c,r.streaming=!1,r.agentMetadata={...r.agentMetadata,executionId:a.executionId??r.agentMetadata?.executionId,awaitingLocalTool:!0,...t?{webMcpToolCallId:t}:{}},b(r)}else if(a.type===`text_start`){let e=typeof a.id==`string`?a.id:null;if(e){let t=s(a.phase);t?E.set(e,t):E.delete(e)}let t=typeof a.parentToolCallId==`string`&&a.parentToolCallId?a.parentToolCallId:null;if(e&&t){D.set(e,t);continue}let n=x;n&&(X===`flow`?(G(n),W=n):(n.streaming=!1,b(n)),x=null),w=e??w,T=``}else if(a.type===`text_delta`){let e=typeof a.id==`string`?a.id:null,t=e?D.get(e):void 0;if(e&&t){let n=typeof a.delta==`string`?a.delta:``,r=(k.get(e)??``)+n;if(k.set(e,r),r.trim()===``)continue;let i=he(e,t,void 0,a.executionId);me(i,r,n);continue}w=e??w;let n=typeof a.delta==`string`?a.delta:``;if(T+=n,X===`flow`&&T.trim()===``)continue;let r=le();r.agentMetadata={textBlockId:w??void 0,phase:E.get(w??``),executionId:a.executionId,iteration:Y,...X===`flow`?{}:{turnId:Q??void 0,agentName:$?.agentName}},w&&O.set(w,r),me(r,T,n),S=r}else if(a.type===`text_complete`){let e=typeof a.id==`string`?a.id:null;e&&E.delete(e);let t=e?O.get(e):x,n=s(a.phase);if(t&&n&&(t.agentMetadata={...t.agentMetadata,providerPhase:n}),e&&D.has(e)){let t=O.get(e);t&&G(t),D.delete(e),k.delete(e),O.delete(e);continue}if(e&&t!==x){t&&(t.streaming=!1,b(t));continue}let r=x;r&&(X===`flow`?(G(r),W=r):((r.content??``)===``&&typeof a.text==`string`&&(r.content=a.text),r.streaming=!1,b(r)),x=null),w=null,T=``}else if(a.type===`step_complete`){if(a.stepType===`tool`)continue;if(a.success===!1){let e=a.error||`Step failed`;o({type:`error`,error:Error(e)});let t=x;t&&t.streaming&&(t.streaming=!1,b(t)),o({type:`status`,status:`idle`});continue}{let e=W;W=null;let t=a.stopReason,n=(a.result&&typeof a.result==`object`?a.result:null)?.response;if(e)t&&(e.stopReason=t),n==null?e.streaming!==!1&&(H.delete(e.id),U.delete(e.id),e.streaming=!1,b(e)):fe(e,n);else{let e=n!=null&&n!==``;if(e||t&&t!==`end_turn`&&t!==`unknown`){let r=le();t&&(r.stopReason=t),e?G(r,n):(r.streaming=!1,b(r))}}continue}}else if(a.type===`execution_start`)X=a.kind===`flow`?`flow`:`agent`,Z=!0,i.config().backgroundConversations&&o({type:`status`,status:`connected`,executionId:a.executionId}),X===`agent`&&($={executionId:a.executionId,agentId:a.agentId??`virtual`,agentName:a.agentName??``});else if(a.type===`turn_start`){let e=typeof a.iteration==`number`?a.iteration:Y;if(e!==Y){if(ge===`separate`&&e>1){let e=x;e&&(e.streaming=!1,b(e),x=null)}Y=e}Q=typeof a.id==`string`?a.id:null,S=null}else if(a.type===`tool_input_delta`){let e=a.toolCallId;if(e){let t=j.get(e);t?.toolCall&&(t.toolCall.chunks=t.toolCall.chunks??[],t.toolCall.chunks.push(a.delta??``),b(t))}}else if(a.type===`tool_input_complete`){if(I.has(a.toolCallId))continue;let e=B(a.toolCallId,a.executionId),t=e.toolCall;t.args=a.parameters,t.name=a.toolName??t.name,b(e)}else if(a.type===`turn_complete`){let e=a.stopReason,t=x??S;if(e&&t!==null){let n=a.id;n&&t.agentMetadata?.turnId!==n||(t.stopReason=e,b(t))}Q===a.id&&(Q=null)}else if(a.type===`media_start`){let e=String(a.id);J.set(e,{mediaType:typeof a.mediaType==`string`?a.mediaType:void 0,toolCallId:a.toolCallId,parts:[]})}else if(a.type===`media_delta`){let e=J.get(String(a.id));e&&typeof a.delta==`string`&&e.parts.push(a.delta)}else if(a.type===`media_complete`){let e=String(a.id),t=J.get(e);J.delete(e);let n=(typeof a.mediaType==`string`?a.mediaType:void 0)??t?.mediaType??`application/octet-stream`,r=typeof a.data==`string`?a.data:void 0,i=typeof a.url==`string`?a.url:t&&t.parts.length>0?t.parts.join(``):void 0,o=null;if(r)o={type:`media`,data:r,mediaType:n};else if(i){let e=n.toLowerCase();o={type:e===`image`||e.startsWith(`image/`)?`image-url`:`file-url`,url:i,mediaType:n}}let s=a.toolCallId??t?.toolCallId,l=o?[o]:[],u=[];for(let e of l){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.type==`string`?t.type:void 0,r=typeof t.mediaType==`string`?t.mediaType.toLowerCase():``,i=null,a=``;if(n===`media`){let e=typeof t.data==`string`?t.data:void 0;if(!e)continue;a=r.length>0?r:`application/octet-stream`,i=`data:${a};base64,${e}`}else if(n===`image-url`){let e=typeof t.url==`string`?t.url:void 0;if(!e)continue;a=r,i=e}else if(n===`file-url`){let e=typeof t.url==`string`?t.url:void 0;if(!e)continue;a=r,i=e}else continue;if(i){if(n===`image-url`||a.startsWith(`image/`))u.push({type:`image`,image:i,...a.includes(`/`)?{mimeType:a}:{}});else if(a.startsWith(`audio/`))u.push({type:`audio`,audio:i,mimeType:a});else if(a.startsWith(`video/`))u.push({type:`video`,video:i,mimeType:a});else{let e=a||`application/octet-stream`;u.push({type:`file`,data:i,mimeType:e,filename:c(e)})}}}if(u.length>0){let e=v(),t=s,n={id:`agent-media-${typeof t==`string`&&t.length>0?`${t}-${e}`:String(e)}`,role:`assistant`,content:``,contentParts:u,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,sequence:e,agentMetadata:{executionId:a.executionId,iteration:Y}};b(n);let r=x;r&&(r.streaming=!1,b(r)),x=null,C.current=null}}else if(a.type===`execution_complete`){let e=x;e&&(a.kind===`flow`&&e.streaming!==!1?G(e):(e.streaming=!1,b(e)),x=null),w=null,T=``,W=null,o({type:`status`,status:a.success===!1?`error`:`idle`,terminal:!0})}else if(a.type===`execution_error`){let e=typeof a.error==`string`?a.error:a.error?.message??`Execution error`;o({type:`error`,error:Error(e)})}else if(a.type!==`ping`){if(a.type===`approval_start`){let e=a.approvalId??`approval-${v()}`,t={id:`approval-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,variant:`approval`,sequence:v(),approval:{id:e,status:`pending`,agentId:$?.agentId??`virtual`,executionId:a.executionId??$?.executionId??``,toolName:a.toolName??``,toolType:a.toolType,description:a.description??`Execute ${a.toolName??`tool`}`,...typeof a.reason==`string`&&a.reason?{reason:a.reason}:{},parameters:a.parameters,...typeof a.toolCallId==`string`&&a.toolCallId?{toolCallId:a.toolCallId}:{}}};b(t)}else if(a.type===`approval_complete`){let e=a.approvalId;if(e){let t={id:`approval-${e}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!1,variant:`approval`,sequence:v(),approval:{id:e,status:a.decision??`approved`,agentId:$?.agentId??`virtual`,executionId:a.executionId??$?.executionId??``,toolName:``,description:``,resolvedAt:Date.now()}};b(t)}}else if(a.type===`artifact_start`||a.type===`artifact_delta`||a.type===`artifact_update`||a.type===`artifact_complete`){if(a.type===`artifact_start`){let e=a.artifactType,n=String(a.id),s=typeof a.title==`string`?a.title:void 0,c=a.file,l;if(c&&typeof c==`object`&&!Array.isArray(c)&&typeof c.path==`string`&&typeof c.mimeType==`string`&&(l={path:c.path,mimeType:c.mimeType,...typeof c.language==`string`?{language:c.language}:{}}),o({type:`artifact_start`,id:n,artifactType:e,title:s,component:typeof a.component==`string`?a.component:void 0,...l?{file:l}:{}}),z.set(n,{markdown:``,title:s,file:l}),!R.has(n)){R.add(n);let o=t(i.config().features?.artifacts,{artifactType:e,...l?{file:l}:{}}),c=typeof a.component==`string`?a.component:void 0,u={id:`artifact-ref-${n}`,role:`assistant`,content:``,createdAt:(/* @__PURE__ */ new Date()).toISOString(),streaming:!0,sequence:v(),rawContent:r(o,{artifactId:n,title:s,artifactType:e,status:`streaming`,...l?{file:l}:{},...c?{component:c}:{}})};L.set(n,u),b(u)}}else if(a.type===`artifact_delta`){let e=String(a.id),t=typeof a.delta==`string`?a.delta:String(a.delta??``);o({type:`artifact_delta`,id:e,artDelta:t});let n=z.get(e);n&&(n.markdown+=t)}else if(a.type===`artifact_update`){let e=a.props&&typeof a.props==`object`&&!Array.isArray(a.props)?a.props:{};o({type:`artifact_update`,id:String(a.id),props:e,component:typeof a.component==`string`?a.component:void 0});let t=z.get(String(a.id));t&&(t.props={...t.props??{},...e})}else if(a.type===`artifact_complete`){let e=String(a.id);o({type:`artifact_complete`,id:e});let t=L.get(e);if(t){t.streaming=!1;try{let n=JSON.parse(t.rawContent??`{}`);if(n.props){n.props.status=`complete`;let t=z.get(e);t?.markdown&&(n.props.markdown=t.markdown),t?.file&&(n.props.file=t.file),n.component===`PersonaArtifactInline`&&t?.props&&Object.keys(t.props).length>0&&(n.props.componentProps=t.props)}t.rawContent=JSON.stringify(n)}catch{}z.delete(e),b(t),L.delete(e)}}}else if(a.type===`error`&&a.recoverable===!1&&a.error!=null&&a.error!==``){let e=typeof a.error==`string`?a.error:a.error?.message==null?`Execution error`:String(a.error.message);o({type:`error`,error:Error(e)});let t=x;t&&t.streaming&&(t.streaming=!1,b(t)),o({type:`status`,status:`idle`})}}}K.length=0};try{for(;;){if(h!==i.streamGeneration())return;f?.throwIfAborted();let{done:e,value:t}=await g.read();if(h!==i.streamGeneration())return;if(f?.throwIfAborted(),e)break;_+=re.decode(t,{stream:!0});let n=_.split(`
2
2
 
3
3
  `);_=n.pop()??``;for(let e of n){if(h!==i.streamGeneration())return;f?.throwIfAborted();let t=e.split(`
4
4
  `),n=`message`,r=``,a=null;for(let e of t)e.startsWith(`event:`)?n=e.replace(`event:`,``).trim():e.startsWith(`data:`)?r+=e.replace(`data:`,``).trim():e.startsWith(`id:`)&&(a=e.slice(3).trim());let s=()=>{a!==null&&a!==``&&o({type:`cursor`,id:a,...i.config().backgroundConversations?{checkpoint:{textBlockId:w,openAssistant:x!==null,sealedFlowMessageId:W?.id??null,rawText:T,executionKind:X,executionKindResolved:Z,turnId:Q,iteration:Y,textPhases:[...E],nestedParents:[...D],nestedRaw:[...k],media:[...J].map(([e,t])=>[e,{...t,parts:[...t.parts]}]),artifactContent:[...z].map(([e,t])=>[e,{...t,props:t.props?{...t.props}:void 0}]),artifactTools:[...I]}}:{}})};if(!r){s();continue}let c;try{c=JSON.parse(r)}catch(e){o({type:`error`,error:e instanceof Error?e:/* @__PURE__ */ Error(`Failed to parse chat stream payload`)});continue}let l=typeof c==`object`&&c&&!Array.isArray(c)?c:null,u=n===`message`?typeof l?.type==`string`?l.type:`message`:n;if(i.onSSEEvent?.(u,c),i.parseSSEEvent){C.current=x;let e=await d(i,c,o,C,b,v,ce);if(h!==i.streamGeneration())return;if(f?.throwIfAborted(),C.current&&C.current!==x&&(x=C.current),e){s();continue}}l&&(K.push({...l,type:u}),q()),s()}}q()}finally{i.streamReaders.delete(g),f?.removeEventListener(`abort`,ne),g.releaseLock()}}export{u as preferFinalStructuredContent,a as resolveApproval,o as resumeFlow,ee as streamResponse};
@@ -1,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-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(`
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-Cd8mp8Sv.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 +1 @@
1
- import{r as e}from"./chunk-D5BxWOFB.js";var t=class{constructor(e){this.callbacks=e,this.state=Object.freeze({phase:`idle`,recordingId:0,transcript:``,interimTranscript:``,error:null,audioLevel:null}),this.provider=null,this.generation=0,this.destroyed=!1,this.sendOnCompletion=!1,this.sent=!1,this.ready=!1,this.finishRequested=!1,this.disconnecting=Promise.resolve()}getState(){return this.state}refresh(){this.destroyed||this.callbacks.onState(this.state,!1)}publish(e,t=!1){this.state=Object.freeze({...this.state,...e}),this.callbacks.onState(this.state,t)}start(e,t){if(this.destroyed||this.state.phase===`recording`||this.state.phase===`processing`)return!1;this.release();let r=++this.generation;this.sendOnCompletion=t.autoSend,this.sent=!1,this.ready=!1,this.finishRequested=!1,this.publish({phase:`recording`,recordingId:r,transcript:``,interimTranscript:``,error:null,audioLevel:null});let i=()=>!this.destroyed&&r===this.generation&&[`recording`,`processing`].includes(this.state.phase);try{let r=e.custom,a=e.type===`custom`?typeof r==`function`?r():r:n(e.browser,t.pauseDuration);if(!a||a.type===`runtype`)throw Error(`Dictation requires a speech-to-text provider.`);this.provider=a;let o=(e,t)=>{i()&&(t?(this.publish({transcript:e,interimTranscript:``}),this.complete()):this.publish({interimTranscript:e}))};a.onResult(e=>o(e.text,e.isFinal!==!1)),a.onTranscript?.((e,t,n)=>{e===`user`&&o(t,n)}),a.onLevel?.(e=>{i()&&this.state.phase===`recording`&&Number.isFinite(e)&&this.publish({audioLevel:Math.max(0,Math.min(1,e))},!0)}),a.onError(e=>{i()&&this.fail(e)}),a.onProcessingStart?.(()=>{i()&&this.publish({phase:`processing`,audioLevel:null})}),a.onStatusChange(e=>{i()&&(e===`processing`&&this.publish({phase:`processing`,audioLevel:null}),e===`idle`&&this.complete(),e===`error`&&this.fail(/* @__PURE__ */ Error(`Speech recognition failed.`)))}),this.disconnecting.then(async()=>{i()&&(await a.connect(),i()?(await a.startListening(),i()?(this.ready=!0,this.finishRequested&&await a.stopListening()):await a.disconnect()):await a.disconnect())}).catch(e=>{i()&&this.fail(e)})}catch(e){this.fail(e)}return!0}finish(e=!1){if(this.state.phase===`review`)return e?this.send():!1;if(this.state.phase!==`recording`)return!1;this.sendOnCompletion||=e;let t=this.generation;return this.publish({phase:`processing`,audioLevel:null}),this.finishRequested=!0,this.ready&&this.provider?.stopListening().catch(e=>{t===this.generation&&this.state.phase===`processing`&&this.fail(e)}),!0}cancel(){return this.destroyed||this.state.phase===`idle`?!1:(++this.generation,this.release(),this.publish({phase:`idle`,transcript:``,interimTranscript:``,error:null,audioLevel:null}),!0)}send(){return this.destroyed||this.state.phase!==`review`||this.sent?!1:(this.sent=!0,this.publish({phase:`idle`,audioLevel:null}),this.callbacks.onSend(),!0)}complete(){if(![`recording`,`processing`].includes(this.state.phase))return;let e=(this.state.transcript||this.state.interimTranscript).trim();e?(this.state.phase===`recording`&&this.publish({phase:`processing`,audioLevel:null}),this.release(),this.callbacks.onReview(e),this.publish({phase:`review`,transcript:e,interimTranscript:``,audioLevel:null}),this.sendOnCompletion&&this.send()):this.fail(/* @__PURE__ */ Error(`No speech was recognized.`))}fail(e){this.release(),this.publish({phase:`error`,error:e instanceof Error?e.message:String(e),audioLevel:null})}release(){let e=this.provider;this.provider=null,e&&(this.disconnecting=this.disconnecting.then(()=>e.disconnect()).catch(()=>{}))}destroy(){this.destroyed=!0,++this.generation,this.release()}};function n(e,t=2e3){let n=window,r=n.SpeechRecognition??n.webkitSpeechRecognition;if(!r)throw Error(`Browser speech recognition is unavailable.`);let i=new r;i.lang=e?.language??`en-US`,i.continuous=e?.continuous??!0,i.interimResults=!0;let a=``,o,s=!1,c=()=>{},l=()=>{},u=()=>{},d=()=>{clearTimeout(o),o=void 0};return i.onresult=e=>{s||(a=Array.from(e.results).map(e=>e[0].transcript).join(` `),c({text:a,provider:`browser`,isFinal:!1}),d(),a.trim()&&(o=setTimeout(()=>{u(`processing`),i.stop()},t)))},i.onend=()=>{s||(d(),c({text:a,provider:`browser`}),u(`idle`))},i.onerror=({error:e})=>{!s&&e!==`no-speech`&&l(Error(e))},{type:`browser`,connect:async()=>{},startListening:async()=>{i.start()},stopListening:async()=>{d(),i.stop()},disconnect:async()=>{s=!0,d(),i.abort(),i.onresult=null,i.onend=null,i.onerror=null},onResult:e=>{c=e},onError:e=>{l=e},onStatusChange:e=>{u=e}}}function r(t,{renderLucideIcon:n,attachTooltip:r}){let i=t,a=e(`section`,{className:`persona-dictation`,attrs:{"data-persona-dictation":``,"aria-label":`Voice dictation`},style:{display:`flex`,flexWrap:`wrap`,alignItems:`center`,gap:`12px`,width:`100%`,minWidth:`0`,gridColumn:`1 / -1`,color:`var(--persona-text, #18181b)`,fontFamily:`inherit`,fontSize:`var(--persona-composer-font-size, 16px)`,lineHeight:`1.5`}}),o=e(`div`,{attrs:{"data-persona-dictation-transcript":``,dir:`auto`},style:{flex:`1 1 auto`,width:`max-content`,maxWidth:`100%`,boxSizing:`border-box`,whiteSpace:`pre-wrap`,overflowWrap:`anywhere`,maxHeight:`120px`,overflowY:`auto`,padding:`2px 4px`}}),s=e(`span`),c=e(`span`,{attrs:{"data-persona-dictation-interim":``}});o.append(s,c);let l=e(`div`,{style:{display:`flex`,flex:`0 1 auto`,alignItems:`center`,gap:`10px`,width:`100%`,maxWidth:`100%`,minWidth:`0`,marginInlineStart:`auto`}}),u=e(`div`,{attrs:{role:`status`,"aria-live":`polite`,"aria-atomic":`true`},style:{flex:`1 1 0`,minWidth:`0`,color:`var(--persona-input-placeholder, var(--persona-text-muted, #71717a))`}}),d=e(`div`,{attrs:{"data-persona-dictation-waveform":``,"aria-hidden":`true`},style:{alignItems:`center`,justifyContent:`center`,gap:`4px`,height:`36px`,minWidth:`0`,color:`var(--persona-input-placeholder, var(--persona-text-muted, #71717a))`}}),f=Array.from({length:19},()=>e(`span`,{style:{width:`3px`,flexShrink:`0`,borderRadius:`3px`,background:`currentColor`}}));d.append(...f);let p=[],m=(t,a,o)=>{let s=e(`button`,{className:`persona-composer-control`,attrs:{type:`button`,"aria-label":a,"data-persona-dictation-action":t},style:{flexShrink:`0`,borderRadius:`50%`,alignItems:`center`,justifyContent:`center`,border:`1px solid var(--persona-border, #d4d4d8)`,color:`inherit`,background:`transparent`,cursor:`pointer`,padding:`0`}}),c=n(o,18,`currentColor`,2);return c?s.append(c):s.textContent=a,s.addEventListener(`click`,()=>i.actions[t]?.()),p.push(r({anchor:s,text:()=>s.getAttribute(`aria-label`)??a})),s},h=m(`cancel`,`Cancel dictation`,`x`),g=m(`finish`,`Finish dictation`,`check`),_=m(`send`,`Finish and send`,`arrow-up`);l.append(u,d,h,g,_),a.append(o,l);let v=(e,t,n=`block`)=>{e.hidden=!t,e.style.display=t?n:`none`},y=e=>{let t=i.state;i=e;let{state:n}=e,r=e.config.voiceRecognition?.dictation??{},p=r.display===`waveform`,m=!!(n.transcript||n.interimTranscript);v(a,n.phase!==`idle`&&n.phase!==`review`,`flex`),a.dataset.phase=n.phase,a.dataset.display=r.display??`transcript`,(n.phase!==t.phase||n.error!==t.error||!u.textContent)&&(u.textContent=n.phase===`recording`?`Listening…`:n.phase===`processing`?`Transcribing…`:n.error??``),s.textContent=n.transcript,c.textContent=n.interimTranscript,c.style.fontStyle=r.interimText?.fontStyle??`italic`,c.style.color=r.interimText?.color??`var(--persona-input-placeholder, var(--persona-text-muted, #71717a))`,u.style.fontStyle=n.phase===`recording`&&!p?r.interimText?.fontStyle??`italic`:`normal`,v(o,m&&r.display!==`inline`&&!p&&n.phase!==`error`),l.style.width=o.hidden?`100%`:`auto`;let y=(r.waveform??p)&&n.audioLevel!==null&&n.phase===`recording`;v(d,y,`flex`);let b=n.phase===`recording`&&(p?y:m);u.className=b?`persona-sr-only`:``,u.style.flex=b?`0 0 auto`:`1 1 0`,d.style.flex=p?`1 1 0`:`0 1 140px`,d.style.width=p?``:`140px`,d.style.marginInlineStart=`auto`,h.style.order=p?`-1`:`0`;let x=a.ownerDocument.defaultView?.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;f.forEach((e,t)=>{let r=x?6:3+(n.audioLevel??0)*Math.max(2,31-Math.abs(9-t)*3);e.style.height=`${r}px`,e.style.transition=x?`none`:`height 80ms linear`}),v(h,r.showCancel!==!1,`inline-flex`),v(g,r.showFinish!==!1&&n.phase!==`error`,`inline-flex`),g.disabled=n.phase!==`recording`,g.style.opacity=g.disabled?`0.45`:`1`,v(_,!!e.actions.send&&n.phase!==`error`,`inline-flex`),_.disabled=n.phase!==`recording`,_.style.opacity=_.disabled?`0.45`:`1`};return y(t),{element:a,update:y,destroy:()=>{p.forEach(e=>e.destroy()),a.remove()}}}function i(e){let n=null,i=``,a=null,o=!1,s=null,c=`idle`,l=/* @__PURE__ */ new Map,u=()=>{for(let[e,t]of l)e.style.display=t;l.clear()},d=(t=``)=>{let n=(i&&t&&!/\s$/.test(i)?` `:``)+t,r=e.getInlineInput();r?.replaceLogicalRange&&a!==null?(r.replaceLogicalRange(a,r.getLogicalText().length,n),r.dispatchInput()):e.getTextarea().value=i+n,e.syncText()},f=new t({onReview:d,onSend:()=>{e.isSendBlocked()||e.onSend()},onState:(t,i)=>{let a=e.getConfig(),p=e.getTextarea(),m=e.getFooter(),h=c;c=t.phase;let g=t.phase===`recording`||t.phase===`processing`;if(p.readOnly=g||o,p instanceof HTMLTextAreaElement||p.setAttribute(`contenteditable`,g||e.isInputDisabled()?`false`:s??`true`),t.phase===`idle`&&[`recording`,`processing`,`error`].includes(h))d();else if(g&&a.voiceRecognition?.dictation?.display===`inline`){let e=t.transcript||t.interimTranscript;d(e)}t.phase===`error`&&d();let _={instanceId:e.instanceId,state:t,config:a,actions:{cancel:()=>{f.cancel()},finish:()=>{f.finish()},...a.voiceRecognition?.dictation?.showSend&&!e.isSendBlocked()?{send:()=>{e.isSendBlocked()||f.finish(!0)||f.send()}}:{}},defaultRenderer:()=>r(_,e.rendererDeps)},v=[`recording`,`processing`,`error`].includes(t.phase);if(!n&&v){for(let t of e.plugins){let e=t.renderDictation?.(_);if(e){n=e instanceof HTMLElement?{element:e}:e;break}}n??=_.defaultRenderer(),n.element.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),f.cancel())})}if(n&&v){let e=m.querySelector(`[data-persona-composer-form]`)??m;n.element.parentElement!==e&&e.append(n.element),u();let r=a.voiceRecognition?.dictation?.display===`inline`?Array.from(e.querySelectorAll(`[data-persona-composer-actions-start], [data-persona-composer-actions-end]`)):Array.from(e.children).filter(e=>e instanceof HTMLElement&&e!==n?.element);for(let e of r)l.set(e,e.style.display),e.style.display=`none`;n.update?.(_),(t.phase===`recording`&&h!==`recording`&&h!==`processing`||t.phase===`error`&&h!==`error`)&&n.element.querySelector(`button:not(:disabled), [tabindex]`)?.focus()}else u(),n?.destroy?.(),n?.element.remove(),n=null,(t.phase===`review`||t.phase===`idle`)&&t.phase!==h&&p.focus();i||e.onState(t,g)}});return{start(e,t,n){return i=n.text,a=n.logicalEnd,o=n.readOnly,s=n.contentEditable,f.start(e,t)},getState:()=>f.getState(),refresh:()=>f.refresh(),cancel:()=>f.cancel(),finish:(e=!1)=>f.finish(e),send:()=>f.send(),destroy(){f.destroy(),u(),n?.destroy?.(),n?.element.remove()}}}function a(e){let t=`--persona-voice-level`,n=.5,r=null,i=-1,a=0,o=n=>{let r=Math.round(Math.max(0,Math.min(1,n))*100)/100;if(r!==i){i=r;for(let n of e.targets())n.style.setProperty(t,String(r))}},s=()=>{i=-1,a=0;for(let n of e.targets())n.style.removeProperty(t)};function c(){if(r!==null)return;if(typeof requestAnimationFrame!=`function`){o(e.sample().level??n);return}let t=()=>{r=requestAnimationFrame(t);let{level:i,fallback:c}=e.sample();i===null&&!c?s():i===null?o(n):(a+=(i-a)*.3,o(a))};r=requestAnimationFrame(t)}function l(){r!==null&&(cancelAnimationFrame(r),r=null),s()}return{start:c,stop:l}}function o(e){let t=null;return{result:n=>{if(!e.isActive())return;let r=``,i=``;for(let e=0;e<n.results.length;e++){let t=n.results[e],a=t[0].transcript;t.isFinal?r+=a+` `:i=a}let a=e.initialText+r+i;e.textarea.value=a,e.syncText(),t&&clearTimeout(t),(r||i)&&(t=window.setTimeout(()=>{if(e.textarea.value.trim()&&e.isActive()){if(e.stop(),e.review())return;e.submit()}},e.pauseDuration))},error:t=>{e.isActive()&&t.error!==`no-speech`&&e.stop()},end:()=>{if(e.isActive()&&e.isActive()){let t=e.textarea.value.trim();!e.review()&&t&&t!==e.initialText.trim()&&e.submit(),e.stop()}},dispose:()=>{t!==null&&clearTimeout(t),t=null}}}export{t as DictationController,o as createBrowserRecognitionHandlers,r as createDictationRenderer,i as createDictationSession,a as createVoiceLevelIndicator};
1
+ import{r as e}from"./chunk-D5BxWOFB.js";var t=class{constructor(e){this.callbacks=e,this.state=Object.freeze({phase:`idle`,recordingId:0,transcript:``,interimTranscript:``,error:null,audioLevel:null}),this.provider=null,this.generation=0,this.destroyed=!1,this.sendOnCompletion=!1,this.sent=!1,this.ready=!1,this.finishRequested=!1,this.disconnecting=Promise.resolve()}getState(){return this.state}refresh(){this.destroyed||this.callbacks.onState(this.state,!1)}publish(e,t=!1){this.state=Object.freeze({...this.state,...e}),this.callbacks.onState(this.state,t)}start(e,t){if(this.destroyed||this.state.phase===`recording`||this.state.phase===`processing`)return!1;this.release();let r=++this.generation;this.sendOnCompletion=t.autoSend,this.sent=!1,this.ready=!1,this.finishRequested=!1,this.publish({phase:`recording`,recordingId:r,transcript:``,interimTranscript:``,error:null,audioLevel:null});let i=()=>!this.destroyed&&r===this.generation&&[`recording`,`processing`].includes(this.state.phase);try{let r=e.custom,a=e.type===`custom`?typeof r==`function`?r():r:n(e.browser,t.pauseDuration);if(!a||a.type===`runtype`)throw Error(`Dictation requires a speech-to-text provider.`);this.provider=a;let o=(e,t)=>{i()&&(t?(this.publish({transcript:e,interimTranscript:``}),this.complete()):this.publish({interimTranscript:e}))};a.onResult(e=>o(e.text,e.isFinal!==!1)),a.onTranscript?.((e,t,n)=>{e===`user`&&o(t,n)}),a.onLevel?.(e=>{i()&&this.state.phase===`recording`&&Number.isFinite(e)&&this.publish({audioLevel:Math.max(0,Math.min(1,e))},!0)}),a.onError(e=>{i()&&this.fail(e)}),a.onProcessingStart?.(()=>{i()&&this.publish({phase:`processing`,audioLevel:null})}),a.onStatusChange(e=>{i()&&(e===`processing`&&this.publish({phase:`processing`,audioLevel:null}),e===`idle`&&this.complete(),e===`error`&&this.fail(/* @__PURE__ */ Error(`Speech recognition failed.`)))}),this.disconnecting.then(async()=>{i()&&(await a.connect(),i()?(await a.startListening(),i()?(this.ready=!0,this.finishRequested&&await a.stopListening()):await a.disconnect()):await a.disconnect())}).catch(e=>{i()&&this.fail(e)})}catch(e){this.fail(e)}return!0}finish(e=!1){if(this.state.phase===`review`)return e?this.send():!1;if(this.state.phase!==`recording`)return!1;this.sendOnCompletion||=e;let t=this.generation;return this.publish({phase:`processing`,audioLevel:null}),this.finishRequested=!0,this.ready&&this.provider?.stopListening().catch(e=>{t===this.generation&&this.state.phase===`processing`&&this.fail(e)}),!0}cancel(){return this.destroyed||this.state.phase===`idle`?!1:(++this.generation,this.release(),this.publish({phase:`idle`,transcript:``,interimTranscript:``,error:null,audioLevel:null}),!0)}send(){return this.destroyed||this.state.phase!==`review`||this.sent?!1:(this.sent=!0,this.publish({phase:`idle`,audioLevel:null}),this.callbacks.onSend(),!0)}complete(){if(![`recording`,`processing`].includes(this.state.phase))return;let e=(this.state.transcript||this.state.interimTranscript).trim();e?(this.state.phase===`recording`&&this.publish({phase:`processing`,audioLevel:null}),this.release(),this.callbacks.onReview(e),this.publish({phase:`review`,transcript:e,interimTranscript:``,audioLevel:null}),this.sendOnCompletion&&this.send()):this.fail(/* @__PURE__ */ Error(`No speech was recognized.`))}fail(e){this.release(),this.publish({phase:`error`,error:e instanceof Error?e.message:String(e),audioLevel:null})}release(){let e=this.provider;this.provider=null,e&&(this.disconnecting=this.disconnecting.then(()=>e.disconnect()).catch(()=>{}))}destroy(){this.destroyed=!0,++this.generation,this.release()}};function n(e,t=2e3){let n=window,r=n.SpeechRecognition??n.webkitSpeechRecognition;if(!r)throw Error(`Browser speech recognition is unavailable.`);let i=new r;i.lang=e?.language??`en-US`,i.continuous=e?.continuous??!0,i.interimResults=!0;let a=``,o,s=!1,c=()=>{},l=()=>{},u=()=>{},d=()=>{clearTimeout(o),o=void 0};return i.onresult=e=>{s||(a=Array.from(e.results).map(e=>e[0].transcript).join(` `),c({text:a,provider:`browser`,isFinal:!1}),d(),a.trim()&&(o=setTimeout(()=>{u(`processing`),i.stop()},t)))},i.onend=()=>{s||(d(),c({text:a,provider:`browser`}),u(`idle`))},i.onerror=({error:e})=>{!s&&e!==`no-speech`&&l(Error(e))},{type:`browser`,connect:async()=>{},startListening:async()=>{i.start()},stopListening:async()=>{d(),i.stop()},disconnect:async()=>{s=!0,d(),i.abort(),i.onresult=null,i.onend=null,i.onerror=null},onResult:e=>{c=e},onError:e=>{l=e},onStatusChange:e=>{u=e}}}function r(t,{renderLucideIcon:n,attachTooltip:r}){let i=t,a=e(`section`,{className:`persona-dictation`,attrs:{"data-persona-dictation":``,"aria-label":`Voice dictation`},style:{display:`flex`,flexWrap:`wrap`,alignItems:`center`,gap:`12px`,width:`100%`,minWidth:`0`,gridColumn:`1 / -1`,color:`var(--persona-text, #18181b)`,fontFamily:`inherit`,fontSize:`var(--persona-composer-font-size, 16px)`,lineHeight:`1.5`}}),o=e(`div`,{attrs:{"data-persona-dictation-transcript":``,dir:`auto`},style:{flex:`1 1 auto`,width:`max-content`,maxWidth:`100%`,boxSizing:`border-box`,whiteSpace:`pre-wrap`,overflowWrap:`anywhere`,maxHeight:`120px`,overflowY:`auto`,padding:`2px 4px`}}),s=e(`span`),c=e(`span`,{attrs:{"data-persona-dictation-interim":``}});o.append(s,c);let l=e(`div`,{style:{display:`flex`,flex:`0 1 auto`,alignItems:`center`,gap:`10px`,width:`100%`,maxWidth:`100%`,minWidth:`0`,marginInlineStart:`auto`}}),u=e(`div`,{attrs:{role:`status`,"aria-live":`polite`,"aria-atomic":`true`},style:{flex:`1 1 0`,minWidth:`0`,color:`var(--persona-input-placeholder, var(--persona-text-muted, #71717a))`}}),d=e(`div`,{attrs:{"data-persona-dictation-waveform":``,"aria-hidden":`true`},style:{alignItems:`center`,justifyContent:`center`,gap:`4px`,height:`36px`,minWidth:`0`,color:`var(--persona-input-placeholder, var(--persona-text-muted, #71717a))`}}),f=Array.from({length:19},()=>e(`span`,{style:{width:`3px`,flexShrink:`0`,borderRadius:`3px`,background:`currentColor`}}));d.append(...f);let p=[],m=(t,a,o)=>{let s=e(`button`,{className:`persona-composer-control`,attrs:{type:`button`,"aria-label":a,"data-persona-dictation-action":t},style:{flexShrink:`0`,borderRadius:`50%`,alignItems:`center`,justifyContent:`center`,border:`1px solid var(--persona-border, #d4d4d8)`,color:`inherit`,background:`transparent`,cursor:`pointer`,padding:`0`}}),c=n(o,18,`currentColor`,2);return c?s.append(c):s.textContent=a,s.addEventListener(`click`,()=>i.actions[t]?.()),p.push(r({anchor:s,text:()=>s.getAttribute(`aria-label`)??a})),s},h=m(`cancel`,`Cancel dictation`,`x`),g=m(`finish`,`Finish dictation`,`check`),_=m(`send`,`Finish and send`,`arrow-up`);l.append(u,d,h,g,_),a.append(o,l);let v=(e,t,n=`block`)=>{e.hidden=!t,e.style.display=t?n:`none`},y=e=>{let t=i.state;i=e;let{state:n}=e,r=e.config.voiceRecognition?.dictation??{},p=r.display===`waveform`,m=!!(n.transcript||n.interimTranscript);v(a,n.phase!==`idle`&&n.phase!==`review`,`flex`),a.dataset.phase=n.phase,a.dataset.display=r.display??`transcript`,n.phase===t.phase&&n.error===t.error&&u.textContent||(u.textContent=n.phase===`recording`?`Listening…`:n.phase===`processing`?`Transcribing…`:n.error??``),s.textContent=n.transcript,c.textContent=n.interimTranscript,c.style.fontStyle=r.interimText?.fontStyle??`italic`,c.style.color=r.interimText?.color??`var(--persona-input-placeholder, var(--persona-text-muted, #71717a))`,u.style.fontStyle=n.phase===`recording`&&!p?r.interimText?.fontStyle??`italic`:`normal`,v(o,m&&r.display!==`inline`&&!p&&n.phase!==`error`),l.style.width=o.hidden?`100%`:`auto`;let y=(r.waveform??p)&&n.audioLevel!==null&&n.phase===`recording`;v(d,y,`flex`);let b=n.phase===`recording`&&(p?y:m);u.className=b?`persona-sr-only`:``,u.style.flex=b?`0 0 auto`:`1 1 0`,d.style.flex=p?`1 1 0`:`0 1 140px`,d.style.width=p?``:`140px`,d.style.marginInlineStart=`auto`,h.style.order=p?`-1`:`0`;let x=a.ownerDocument.defaultView?.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;f.forEach((e,t)=>{let r=x?6:3+(n.audioLevel??0)*Math.max(2,31-Math.abs(9-t)*3);e.style.height=`${r}px`,e.style.transition=x?`none`:`height 80ms linear`}),v(h,r.showCancel!==!1,`inline-flex`),v(g,r.showFinish!==!1&&n.phase!==`error`,`inline-flex`),g.disabled=n.phase!==`recording`,g.style.opacity=g.disabled?`0.45`:`1`,v(_,!!e.actions.send&&n.phase!==`error`,`inline-flex`),_.disabled=n.phase!==`recording`,_.style.opacity=_.disabled?`0.45`:`1`};return y(t),{element:a,update:y,destroy:()=>{p.forEach(e=>e.destroy()),a.remove()}}}function i(e){let n=null,i=``,a=null,o=!1,s=null,c=`idle`,l=/* @__PURE__ */ new Map,u=()=>{for(let[e,t]of l)e.style.display=t;l.clear()},d=(t=``)=>{let n=(i&&t&&!/\s$/.test(i)?` `:``)+t,r=e.getInlineInput();r?.replaceLogicalRange&&a!==null?(r.replaceLogicalRange(a,r.getLogicalText().length,n),r.dispatchInput()):e.getTextarea().value=i+n,e.syncText()},f=new t({onReview:d,onSend:()=>{e.isSendBlocked()||e.onSend()},onState:(t,i)=>{let a=e.getConfig(),p=e.getTextarea(),m=e.getFooter(),h=c;c=t.phase;let g=t.phase===`recording`||t.phase===`processing`;if(p.readOnly=g||o,p instanceof HTMLTextAreaElement||p.setAttribute(`contenteditable`,g||e.isInputDisabled()?`false`:s??`true`),t.phase===`idle`&&[`recording`,`processing`,`error`].includes(h))d();else if(g&&a.voiceRecognition?.dictation?.display===`inline`){let e=t.transcript||t.interimTranscript;d(e)}t.phase===`error`&&d();let _={instanceId:e.instanceId,state:t,config:a,actions:{cancel:()=>{f.cancel()},finish:()=>{f.finish()},...a.voiceRecognition?.dictation?.showSend&&!e.isSendBlocked()?{send:()=>{e.isSendBlocked()||f.finish(!0)||f.send()}}:{}},defaultRenderer:()=>r(_,e.rendererDeps)},v=[`recording`,`processing`,`error`].includes(t.phase);if(!n&&v){for(let t of e.plugins){let e=t.renderDictation?.(_);if(e){n=e instanceof HTMLElement?{element:e}:e;break}}n??=_.defaultRenderer(),n.element.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),f.cancel())})}if(n&&v){let e=m.querySelector(`[data-persona-composer-form]`)??m;n.element.parentElement!==e&&e.append(n.element),u();let r=a.voiceRecognition?.dictation?.display===`inline`?Array.from(e.querySelectorAll(`[data-persona-composer-actions-start], [data-persona-composer-actions-end]`)):Array.from(e.children).filter(e=>e instanceof HTMLElement&&e!==n?.element);for(let e of r)l.set(e,e.style.display),e.style.display=`none`;n.update?.(_),(t.phase===`recording`&&h!==`recording`&&h!==`processing`||t.phase===`error`&&h!==`error`)&&n.element.querySelector(`button:not(:disabled), [tabindex]`)?.focus()}else u(),n?.destroy?.(),n?.element.remove(),n=null,(t.phase===`review`||t.phase===`idle`)&&t.phase!==h&&p.focus();i||e.onState(t,g)}});return{start(e,t,n){return i=n.text,a=n.logicalEnd,o=n.readOnly,s=n.contentEditable,f.start(e,t)},getState:()=>f.getState(),refresh:()=>f.refresh(),cancel:()=>f.cancel(),finish:(e=!1)=>f.finish(e),send:()=>f.send(),destroy(){f.destroy(),u(),n?.destroy?.(),n?.element.remove()}}}function a(e){let t=`--persona-voice-level`,n=.5,r=null,i=-1,a=0,o=n=>{let r=Math.round(Math.max(0,Math.min(1,n))*100)/100;if(r!==i){i=r;for(let n of e.targets())n.style.setProperty(t,String(r))}},s=()=>{i=-1,a=0;for(let n of e.targets())n.style.removeProperty(t)};function c(){if(r!==null)return;if(typeof requestAnimationFrame!=`function`){o(e.sample().level??n);return}let t=()=>{r=requestAnimationFrame(t);let{level:i,fallback:c}=e.sample();i===null&&!c?s():i===null?o(n):(a+=(i-a)*.3,o(a))};r=requestAnimationFrame(t)}function l(){r!==null&&(cancelAnimationFrame(r),r=null),s()}return{start:c,stop:l}}function o(e){let t=null;return{result:n=>{if(!e.isActive())return;let r=``,i=``;for(let e=0;e<n.results.length;e++){let t=n.results[e],a=t[0].transcript;t.isFinal?r+=a+` `:i=a}let a=e.initialText+r+i;e.textarea.value=a,e.syncText(),t&&clearTimeout(t),(r||i)&&(t=window.setTimeout(()=>{if(e.textarea.value.trim()&&e.isActive()){if(e.stop(),e.review())return;e.submit()}},e.pauseDuration))},error:t=>{e.isActive()&&t.error!==`no-speech`&&e.stop()},end:()=>{if(e.isActive()&&e.isActive()){let t=e.textarea.value.trim();!e.review()&&t&&t!==e.initialText.trim()&&e.submit(),e.stop()}},dispose:()=>{t!==null&&clearTimeout(t),t=null}}}export{t as DictationController,o as createBrowserRecognitionHandlers,r as createDictationRenderer,i as createDictationSession,a as createVoiceLevelIndicator};