@runtypelabs/persona 4.23.2 → 4.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/animations/glyph-cycle.d.cts +1 -1
  2. package/dist/animations/glyph-cycle.d.ts +1 -1
  3. package/dist/animations/{types-CI7OckWI.d.cts → types-Db61aI9J.d.cts} +2 -0
  4. package/dist/animations/{types-CI7OckWI.d.ts → types-Db61aI9J.d.ts} +2 -0
  5. package/dist/animations/wipe.d.cts +1 -1
  6. package/dist/animations/wipe.d.ts +1 -1
  7. package/dist/animations-extra.d.cts +2 -0
  8. package/dist/animations-extra.d.ts +2 -0
  9. package/dist/approval-ui-3NMYNXBD.js +1 -0
  10. package/dist/approval-ui.cjs +2 -2
  11. package/dist/approval-ui.d.cts +278 -37
  12. package/dist/approval-ui.d.ts +278 -37
  13. package/dist/approval-ui.js +2 -2
  14. package/dist/{artifacts-ui-F4N6VMKF.js → artifacts-ui-IGB5YKLO.js} +4 -4
  15. package/dist/artifacts-ui.d.cts +273 -25
  16. package/dist/artifacts-ui.d.ts +273 -25
  17. package/dist/{chunk-NIKYKSNZ.js → chunk-7CO4T5KB.js} +1 -1
  18. package/dist/codegen.cjs +11 -11
  19. package/dist/codegen.js +13 -13
  20. package/dist/context-mentions.d.cts +273 -25
  21. package/dist/context-mentions.d.ts +273 -25
  22. package/dist/event-stream-view.d.cts +273 -25
  23. package/dist/event-stream-view.d.ts +273 -25
  24. package/dist/forms-ui.d.cts +319 -27
  25. package/dist/forms-ui.d.ts +319 -27
  26. package/dist/history-view.d.cts +2 -0
  27. package/dist/history-view.d.ts +2 -0
  28. package/dist/index.cjs +70 -69
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.cts +344 -39
  31. package/dist/index.d.ts +344 -39
  32. package/dist/index.global.js +57 -54
  33. package/dist/index.global.js.map +1 -1
  34. package/dist/index.js +70 -69
  35. package/dist/index.js.map +1 -1
  36. package/dist/install.global.js +1 -1
  37. package/dist/install.global.js.map +1 -1
  38. package/dist/launcher.global.js +2 -2
  39. package/dist/launcher.global.js.map +1 -1
  40. package/dist/session-reconnect.d.cts +273 -25
  41. package/dist/session-reconnect.d.ts +273 -25
  42. package/dist/smart-dom-reader.d.cts +273 -25
  43. package/dist/smart-dom-reader.d.ts +273 -25
  44. package/dist/theme-editor-preview.cjs +74 -73
  45. package/dist/theme-editor-preview.d.cts +280 -25
  46. package/dist/theme-editor-preview.d.ts +280 -25
  47. package/dist/theme-editor-preview.js +51 -50
  48. package/dist/theme-editor.cjs +10 -10
  49. package/dist/theme-editor.d.cts +293 -27
  50. package/dist/theme-editor.d.ts +293 -27
  51. package/dist/theme-editor.js +10 -10
  52. package/dist/theme-reference.cjs +1 -1
  53. package/dist/theme-reference.d.cts +1522 -11
  54. package/dist/theme-reference.d.ts +1522 -11
  55. package/dist/theme-reference.js +1 -1
  56. package/dist/voice-runtime-7DA7MJH4.js +1 -0
  57. package/dist/voice-runtime.cjs +1 -1
  58. package/dist/voice-runtime.d.cts +33 -0
  59. package/dist/voice-runtime.d.ts +33 -0
  60. package/dist/voice-runtime.js +1 -1
  61. package/dist/widget.css +1 -1
  62. package/package.json +3 -2
  63. package/src/__fixtures__/defaults-parity.v4.json +776 -0
  64. package/src/approval-ui-entry.ts +0 -1
  65. package/src/approval-ui-loader.ts +5 -4
  66. package/src/approval-ui.ts +0 -1
  67. package/src/client-identity-proof.test.ts +193 -0
  68. package/src/client-session-warm.test.ts +216 -0
  69. package/src/client-visitor-history.test.ts +6 -0
  70. package/src/client.ts +122 -30
  71. package/src/codegen.test.ts +24 -0
  72. package/src/components/activity-row.test.ts +100 -0
  73. package/src/components/activity-row.ts +136 -0
  74. package/src/components/approval-actions.test.ts +8 -5
  75. package/src/components/approval-actions.ts +19 -6
  76. package/src/components/approval-bubble.test.ts +56 -9
  77. package/src/components/approval-bubble.ts +36 -41
  78. package/src/components/composer-builder.ts +5 -2
  79. package/src/components/composer-parts.ts +10 -2
  80. package/src/components/header-builder.test.ts +32 -0
  81. package/src/components/header-builder.ts +7 -4
  82. package/src/components/header-layouts.test.ts +12 -0
  83. package/src/components/header-layouts.ts +3 -2
  84. package/src/components/launcher.ts +11 -2
  85. package/src/components/message-bubble.test.ts +22 -0
  86. package/src/components/message-bubble.ts +7 -3
  87. package/src/components/panel.test.ts +52 -1
  88. package/src/components/panel.ts +47 -8
  89. package/src/components/pill-composer-builder.test.ts +2 -0
  90. package/src/components/pill-composer-builder.ts +0 -1
  91. package/src/components/reasoning-bubble.ts +29 -17
  92. package/src/components/suggestions.test.ts +1 -0
  93. package/src/components/suggestions.ts +0 -16
  94. package/src/components/tool-bubble.ts +131 -114
  95. package/src/components/tool-details.test.ts +87 -0
  96. package/src/components/tool-details.ts +102 -0
  97. package/src/components/welcome.test.ts +8 -0
  98. package/src/components/welcome.ts +4 -2
  99. package/src/defaults-parity.test.ts +158 -0
  100. package/src/defaults.test.ts +69 -0
  101. package/src/defaults.ts +128 -49
  102. package/src/generated/runtype-openapi-contract.ts +2 -2
  103. package/src/index-core.ts +4 -0
  104. package/src/install.test.ts +24 -0
  105. package/src/install.ts +3 -1
  106. package/src/launcher-global.ts +2 -1
  107. package/src/launcher-variants.test.ts +52 -0
  108. package/src/runtime/init-update-reset.test.ts +21 -0
  109. package/src/session.ts +59 -7
  110. package/src/session.voice.test.ts +72 -1
  111. package/src/styles/widget-styles.test.ts +19 -0
  112. package/src/styles/widget.css +295 -23
  113. package/src/theme-editor/index.ts +2 -0
  114. package/src/theme-editor/preview-utils.test.ts +8 -0
  115. package/src/theme-editor/preview-utils.ts +7 -3
  116. package/src/theme-editor/sections.test.ts +31 -0
  117. package/src/theme-editor/sections.ts +55 -1
  118. package/src/theme-editor/state-preferences.test.ts +49 -0
  119. package/src/theme-editor/state.ts +73 -15
  120. package/src/theme-reference.test.ts +20 -0
  121. package/src/theme-reference.ts +11 -5
  122. package/src/tool-call-display-defaults.test.ts +33 -1
  123. package/src/types/theme.ts +80 -3
  124. package/src/types.ts +207 -22
  125. package/src/ui.activity-row.test.ts +91 -0
  126. package/src/ui.approval-plugin.test.ts +63 -0
  127. package/src/ui.composer-compact.test.ts +24 -2
  128. package/src/ui.composer-placement.test.ts +23 -0
  129. package/src/ui.detached-panel.test.ts +33 -6
  130. package/src/ui.docked.test.ts +19 -0
  131. package/src/ui.header-update-stability.test.ts +25 -0
  132. package/src/ui.identity-proof.test.ts +58 -0
  133. package/src/ui.launcher-teaser.test.ts +25 -0
  134. package/src/ui.message-width.test.ts +17 -2
  135. package/src/ui.reasoning-display.test.ts +92 -0
  136. package/src/ui.rebuild-composer.test.ts +20 -3
  137. package/src/ui.scroll.test.ts +32 -0
  138. package/src/ui.session-init.test.ts +312 -0
  139. package/src/ui.status-indicator.test.ts +82 -0
  140. package/src/ui.suggest-replies.test.ts +11 -0
  141. package/src/ui.ts +422 -74
  142. package/src/ui.v5-defaults.test.ts +144 -0
  143. package/src/ui.voice-prewarm.test.ts +222 -0
  144. package/src/ui.welcome.test.ts +92 -3
  145. package/src/utils/__snapshots__/tokens-parity.test.ts.snap +811 -140
  146. package/src/utils/code-generators.ts +14 -0
  147. package/src/utils/composer-compact.test.ts +0 -2
  148. package/src/utils/composer-compact.ts +2 -4
  149. package/src/utils/composer-placement.ts +2 -3
  150. package/src/utils/config-merge.test.ts +81 -5
  151. package/src/utils/config-merge.ts +13 -3
  152. package/src/utils/defaults-provenance.ts +67 -0
  153. package/src/utils/dock.ts +7 -1
  154. package/src/utils/launcher-variant.ts +16 -0
  155. package/src/utils/panel-config.ts +97 -0
  156. package/src/utils/status-indicator.ts +39 -0
  157. package/src/utils/theme.test.ts +182 -0
  158. package/src/utils/theme.ts +131 -18
  159. package/src/utils/tokens.test.ts +122 -1
  160. package/src/utils/tokens.ts +177 -17
  161. package/src/voice/runtype-voice-provider.ts +238 -27
  162. package/src/voice/voice.test.ts +272 -2
  163. package/src/welcome.test.ts +23 -0
  164. package/src/welcome.ts +16 -9
  165. package/dist/approval-ui-K7R5Q5OC.js +0 -1
  166. package/dist/voice-runtime-EFR3R5ES.js +0 -1
package/dist/index.d.cts CHANGED
@@ -24,6 +24,7 @@ interface ResolvedWelcomeConfig {
24
24
  * Optional on the interface, always populated by `resolveWelcomeConfig`:
25
25
  * a plugin literal built against an older minor must still type-check.
26
26
  */
27
+ layout?: "top" | "centered";
27
28
  anchor?: AgentWidgetWelcomeAnchor;
28
29
  /** Percentage string; validated, falls back to "44%". */
29
30
  anchorComposerTop?: string;
@@ -33,7 +34,7 @@ interface ResolvedWelcomeConfig {
33
34
  * Per-field, presence-based precedence: `welcome.*` wins, else the legacy
34
35
  * `copy` alias, else the default above.
35
36
  */
36
- declare const resolveWelcomeConfig: (config?: AgentWidgetConfig) => ResolvedWelcomeConfig;
37
+ declare const resolveWelcomeConfig: (config?: AgentWidgetConfig, fullscreen?: boolean) => ResolvedWelcomeConfig;
37
38
  /**
38
39
  * Derived visibility, never stored. "User activity" is the same predicate the
39
40
  * starters use: the session contains at least one `role: "user"` message.
@@ -805,6 +806,8 @@ interface InputTokens extends ComponentTokenSet {
805
806
  backdropFilter?: string;
806
807
  }
807
808
  interface LauncherTokens extends ComponentTokenSet {
809
+ /** Distance from the viewport edges. Circle default: 20px; pill: 24px. */
810
+ offset?: string;
808
811
  size: string;
809
812
  iconSize: string;
810
813
  shadow: TokenReference<'shadow'>;
@@ -827,6 +830,15 @@ interface PanelTokens extends ComponentTokenSet {
827
830
  inset?: string;
828
831
  /** Background of the region revealed behind a detached panel. */
829
832
  canvasBackground?: string;
833
+ /** Chrome defaults by rendered panel mode. */
834
+ modes?: Partial<Record<'floating' | 'inline' | 'sidebar' | 'docked' | 'mobile', {
835
+ /** Full border shorthand (for example, `"1px solid var(--persona-border)"`). */
836
+ border?: string;
837
+ /** Box-shadow token reference or raw CSS shadow. */
838
+ shadow?: string;
839
+ /** Corner radius token reference or raw CSS radius. */
840
+ borderRadius?: TokenReference<'radius'>;
841
+ }>>;
830
842
  }
831
843
  /** Per-element text styling shared by themable text surfaces. */
832
844
  interface TextStyleTokens {
@@ -853,10 +865,16 @@ interface HeaderTokens extends ComponentTokenSet {
853
865
  */
854
866
  border?: TokenReference<'color'>;
855
867
  borderRadius: TokenReference<'radius'>;
868
+ /** Standard-header padding. @default "20px 24px" */
869
+ padding?: string;
870
+ /** Minimal-header padding. Explicitly wins over `padding`. @default "16px 24px" */
871
+ minimalPadding?: string;
856
872
  /** Background of the rounded avatar tile next to the title (Lucide / emoji / image). */
857
873
  iconBackground: TokenReference<'color'>;
858
874
  /** Foreground (glyph stroke or emoji text) on the header avatar tile. */
859
875
  iconForeground: TokenReference<'color'>;
876
+ /** Header identity glyph size as a fraction of its icon box. @default "0.6" */
877
+ iconScale?: string;
860
878
  /**
861
879
  * Legacy alias of `title.color`; `title.color` wins when both are set.
862
880
  * Unset, the title takes `foreground`, then the primary color.
@@ -895,6 +913,14 @@ interface HeaderTokens extends ComponentTokenSet {
895
913
  * sibling. @default "1.5"
896
914
  */
897
915
  controlStrokeWidth?: string;
916
+ /** Header control corner radius. Per-control radius overrides win. */
917
+ controlBorderRadius?: string;
918
+ /** Default control hover/focus fill. Explicit button backgrounds win. */
919
+ controlHoverBackground?: TokenReference<'color'>;
920
+ /** Default control hover/focus icon color. Explicit button colors win. */
921
+ controlHoverForeground?: TokenReference<'color'>;
922
+ /** Keyboard focus outline; unset preserves the browser default. */
923
+ controlFocusOutline?: string;
898
924
  /** Box-shadow on the header (e.g., a fade shadow to replace the default border). */
899
925
  shadow?: string;
900
926
  /** Override the header bottom border (e.g., `none`). */
@@ -1069,6 +1095,12 @@ interface MessageGeometryTokens {
1069
1095
  lineHeight?: string;
1070
1096
  }
1071
1097
  interface MessageTokens {
1098
+ /** Height of the optional transcript top fade. Default 18px. */
1099
+ topFadeHeight?: string;
1100
+ /** Vertical gap between transcript turns. @default "12px" */
1101
+ gap?: string;
1102
+ /** Gap between turns in fullscreen mode; falls back to `gap`. */
1103
+ fullscreenGap?: string;
1072
1104
  user: MessageGeometryTokens & {
1073
1105
  background: TokenReference<'color'>;
1074
1106
  text: TokenReference<'color'>;
@@ -1082,6 +1114,8 @@ interface MessageTokens {
1082
1114
  borderRadius: TokenReference<'radius'>;
1083
1115
  /** Assistant bubble border color (CSS color). */
1084
1116
  border?: TokenReference<'color'>;
1117
+ /** Border width; set to 0px for a flat assistant response. @default "1px" */
1118
+ borderWidth?: string;
1085
1119
  /** Assistant bubble box-shadow (token ref or raw CSS, e.g. `none`). */
1086
1120
  shadow?: string;
1087
1121
  };
@@ -1200,12 +1234,40 @@ interface AttachmentTokens {
1200
1234
  };
1201
1235
  }
1202
1236
  /** Tool-call row chrome (collapsible tool bubbles). */
1203
- interface ToolBubbleTokens {
1237
+ interface ActivityTokens {
1238
+ /** Minimum activity row height. */
1239
+ rowHeight?: string;
1240
+ /** Group child indentation; falls back to indent when unset. V5: 0px. */
1241
+ groupIndent?: string;
1242
+ /** Extra vertical gap between grouped rows. V5: 0px. */
1243
+ groupGap?: string;
1244
+ /** Padding around expanded group children. V5: 0px. */
1245
+ groupPadding?: string;
1246
+ /** Gap between consecutive activity entries. V5: 0px. */
1247
+ transcriptGap?: string;
1248
+ /** Gap from activity to an assistant response. V5: 12px. */
1249
+ responseGap?: string;
1250
+ /** Expanded body padding. V5: 4px 0. */
1251
+ bodyPadding?: string;
1252
+ /** Expanded reasoning text size. V5: 13px. */
1253
+ bodySize?: string;
1254
+ /** Expanded reasoning line height. V5: 1.5. */
1255
+ bodyLineHeight?: string;
1256
+ /** Expanded reasoning font weight. V5: 400. */
1257
+ bodyFontWeight?: string;
1258
+ /** Gap between expanded detail sections. V5: 8px. */
1259
+ sectionGap?: string;
1260
+ labelSize?: string;
1261
+ iconSize?: string;
1262
+ indent?: string;
1263
+ bodySurface?: TokenReference<'color'>;
1264
+ }
1265
+ interface ToolBubbleTokens extends ActivityTokens {
1204
1266
  /** Box-shadow for tool bubbles (token ref or raw CSS, e.g. `none`). */
1205
1267
  shadow: string;
1206
1268
  }
1207
1269
  /** Reasoning / “thinking” row chrome. */
1208
- interface ReasoningBubbleTokens {
1270
+ interface ReasoningBubbleTokens extends ActivityTokens {
1209
1271
  shadow: string;
1210
1272
  }
1211
1273
  /** One event-stream badge chip: fill + text pair. The chip border derives
@@ -1339,6 +1401,10 @@ interface ComposerChromeTokens {
1339
1401
  shadow: string;
1340
1402
  /** Border color of the composer form. @default semantic.colors.border */
1341
1403
  borderColor?: TokenReference<'color'>;
1404
+ /** Focused form border color; falls back to borderColor. V5: a stronger neutral border. */
1405
+ focusBorderColor?: TokenReference<'color'>;
1406
+ /** Outer focus ring (CSS outline shorthand). V4: none; V5: a thin neutral ring. */
1407
+ focusRing?: string;
1342
1408
  /** Inner padding of the composer form (raw CSS shorthand). @default "0.75rem 1rem" */
1343
1409
  padding?: string;
1344
1410
  /** Gap between the textarea row and the actions row. @default "0.5rem" */
@@ -1357,12 +1423,18 @@ interface ComposerChromeTokens {
1357
1423
  controlSize?: string;
1358
1424
  /** Glyph box inside those controls. @default "24px" */
1359
1425
  controlIconSize?: string;
1426
+ /** Send/stop glyph size. Explicit sendButton.iconSize wins. V5: 18px. */
1427
+ sendIconSize?: string;
1428
+ /** Icon-mode submit button radius. V4 inherits the primary button; V5: 9999px. */
1429
+ sendButtonRadius?: string;
1430
+ /** Footer top border (CSS shorthand). V4: 1px solid divider; V5: none. */
1431
+ footerBorder?: string;
1360
1432
  /**
1361
1433
  * Background painted behind an overlaid composer footer
1362
1434
  * (`composer.placement: "overlay"`). Any CSS `background` value, gradients
1363
1435
  * included — same convention as the shadow tokens. Inert under
1364
1436
  * `placement: "block"`.
1365
- * @default "transparent"
1437
+ * @default "transparent" (V4); a theme-aware 24px fade (V5)
1366
1438
  */
1367
1439
  overlayBand?: string;
1368
1440
  /** Segmented mode-group track. */
@@ -1538,6 +1610,8 @@ interface ScrollToBottomTokens extends ComponentTokenSet {
1538
1610
  }
1539
1611
  /** Visual tokens shared by one suggestion presentation variant. */
1540
1612
  interface SuggestionVariantTokens extends ComponentTokenSet {
1613
+ /** Label weight. V4: 500; V5: 400. */
1614
+ fontWeight?: string;
1541
1615
  /** Space inside one item, between its icon and its copy. */
1542
1616
  gap?: string;
1543
1617
  /** Space between suggestion items in the container. */
@@ -1586,6 +1660,7 @@ interface ComponentTokens {
1586
1660
  voice: VoiceTokens;
1587
1661
  approval: ApprovalTokens;
1588
1662
  attachment: AttachmentTokens;
1663
+ activity?: ActivityTokens;
1589
1664
  toolBubble: ToolBubbleTokens;
1590
1665
  reasoningBubble: ReasoningBubbleTokens;
1591
1666
  /** Event-stream inspector badge chips. */
@@ -1669,6 +1744,10 @@ interface CreateThemeOptions {
1669
1744
  plugins?: PersonaThemePlugin[];
1670
1745
  validate?: boolean;
1671
1746
  extend?: PersonaTheme;
1747
+ /** Selects the defaults overlay; explicit theme tokens always take precedence. */
1748
+ future?: {
1749
+ v5Defaults?: boolean;
1750
+ };
1672
1751
  }
1673
1752
 
1674
1753
  type RuntypeExecutionStreamEvent = ({
@@ -2271,7 +2350,7 @@ type RuntypeClientInitResponse = {
2271
2350
  conversationRevision: string;
2272
2351
  durableRecovery?: {
2273
2352
  enabled: boolean;
2274
- join?: boolean;
2353
+ steer?: boolean;
2275
2354
  };
2276
2355
  expiresAt: string;
2277
2356
  flow?: {
@@ -2332,7 +2411,7 @@ type RuntypeClientChatRequest = {
2332
2411
  }>;
2333
2412
  metadata?: Record<string, unknown>;
2334
2413
  sessionId: string;
2335
- submitMode?: "normal" | "interrupt" | "join";
2414
+ submitMode?: "normal" | "interrupt" | "steer";
2336
2415
  turnId?: string;
2337
2416
  };
2338
2417
  type RuntypeClientChatStreamEvent = RuntypeExecutionStreamEvent;
@@ -4706,6 +4785,14 @@ type AgentWidgetToolCallCollapsedMode = "tool-call" | "tool-name" | "tool-previe
4706
4785
  */
4707
4786
  type AgentWidgetToolCallLoadingAnimation = "none" | "pulse" | "shimmer" | "shimmer-color" | "rainbow";
4708
4787
  type AgentWidgetToolCallDisplayFeature = {
4788
+ /** Activity chrome. Defaults to card in V4 and row with future.v5Defaults. */
4789
+ variant?: "card" | "row";
4790
+ /** Row status icons: always, active/attention-needed only, or never. V5 defaults to active; V4 to always. */
4791
+ iconVisibility?: "always" | "active" | "never";
4792
+ /** Row variant: open when the first content chunk arrives. Default false in V5; true in V4. */
4793
+ autoExpand?: boolean;
4794
+ /** Row variant: collapse once after completion, in ms; false disables. Default 1000. */
4795
+ autoCollapseDelay?: number | false;
4709
4796
  /**
4710
4797
  * Controls what collapsed tool call rows show in their header/summary area.
4711
4798
  * @default "tool-call"
@@ -4736,9 +4823,10 @@ type AgentWidgetToolCallDisplayFeature = {
4736
4823
  * Controls how a grouped tool sequence is rendered.
4737
4824
  * - `"stack"`: show the group summary and each child tool row.
4738
4825
  * - `"summary"`: show one consolidated summary row only.
4826
+ * - `"collapsible"`: expandable activity group (V5 default).
4739
4827
  * @default "stack"
4740
4828
  */
4741
- groupedMode?: "stack" | "summary";
4829
+ groupedMode?: "stack" | "summary" | "collapsible";
4742
4830
  /**
4743
4831
  * What happens to a tool call row once it completes.
4744
4832
  *
@@ -4769,6 +4857,14 @@ type AgentWidgetToolCallDisplayFeature = {
4769
4857
  /** See `features.toolCallDisplay.completedVisibility`. */
4770
4858
  type AgentWidgetToolCallCompletedVisibility = "kept" | "removed";
4771
4859
  type AgentWidgetReasoningDisplayFeature = {
4860
+ /** Activity chrome. Defaults to card in V4 and row with future.v5Defaults. */
4861
+ variant?: "card" | "row";
4862
+ /** Row status icons: always, active/attention-needed only, or never. V5 defaults to active; V4 to always. */
4863
+ iconVisibility?: "always" | "active" | "never";
4864
+ /** Row variant: open when the first content chunk arrives. Default false in V5; true in V4. */
4865
+ autoExpand?: boolean;
4866
+ /** Row variant: collapse once after completion, in ms; false disables. Default 1000. */
4867
+ autoCollapseDelay?: number | false;
4772
4868
  /**
4773
4869
  * When true, active collapsed reasoning rows can render a lightweight preview block.
4774
4870
  * @default false
@@ -5469,8 +5565,8 @@ interface AgentWidgetHistoryFeature {
5469
5565
  * otherwise `"browser"`) and narrows it to what the provider advertises, so a
5470
5566
  * browser-only provider is never asked for a scope it cannot serve. An
5471
5567
  * explicit `features.history.scope` is a hard request and still fails closed
5472
- * with `unsupported_scope`. `getIdentityProof` is never called for a supplied
5473
- * provider, and `HistoryOperationContext` carries only the resolved scope;
5568
+ * with `unsupported_scope`. History operations on a supplied provider never
5569
+ * call `getIdentityProof`, and `HistoryOperationContext` carries only the resolved scope;
5474
5570
  * report your own identity through `getIdentityStatus()` /
5475
5571
  * `subscribeIdentityStatus()`, which is what the scope banner and its retry
5476
5572
  * affordance read.
@@ -5854,7 +5950,7 @@ type EventStreamConfig = {
5854
5950
  /**
5855
5951
  * Fields to extract from event payloads for description text.
5856
5952
  * The first matching field value is displayed after the badge.
5857
- * @default ["flowName", "stepName", "name", "tool", "toolName"]
5953
+ * @default ["flowName", "stepName", "reasoningText", "text", "name", "tool", "toolName"]
5858
5954
  */
5859
5955
  descriptionFields?: string[];
5860
5956
  /**
@@ -6065,6 +6161,8 @@ type AgentWidgetComposerBarPeekConfig = {
6065
6161
  streamAnimation?: AgentWidgetStreamAnimationFeature;
6066
6162
  };
6067
6163
  type AgentWidgetLauncherConfig = {
6164
+ /** Collapsed launcher shape. V4 defaults to pill; V5 defaults to circle. */
6165
+ variant?: "pill" | "circle";
6068
6166
  enabled?: boolean;
6069
6167
  title?: string;
6070
6168
  subtitle?: string;
@@ -6820,9 +6918,9 @@ type AgentWidgetComposerConfig = {
6820
6918
  /**
6821
6919
  * Where the composer footer sits relative to the transcript.
6822
6920
  *
6823
- * - `"block"` (default): the footer is a flex sibling below the scroll body.
6921
+ * - `"block"` (V4 default): the footer is a flex sibling below the scroll body.
6824
6922
  * Nothing scrolls behind it.
6825
- * - `"overlay"`: the footer is absolutely overlaid on the scroll body, so the
6923
+ * - `"overlay"` (V5 default): the footer is absolutely overlaid on the scroll body, so the
6826
6924
  * transcript scrolls behind it (the chatgpt.com / claude.ai model, where the
6827
6925
  * composer is sticky inside the scroller). The widget reserves the footer's
6828
6926
  * live height as bottom padding on the scroll body and on a plugin welcome
@@ -6834,7 +6932,7 @@ type AgentWidgetComposerConfig = {
6834
6932
  * included) and `theme.components.input.backdropFilter`.
6835
6933
  *
6836
6934
  * Ignored in composer-bar mount mode, which owns its own geometry.
6837
- * @default "block"
6935
+ * @default "block" (V4), "overlay" (V5)
6838
6936
  */
6839
6937
  placement?: ComposerPlacement;
6840
6938
  /**
@@ -6848,8 +6946,9 @@ type AgentWidgetComposerConfig = {
6848
6946
  *
6849
6947
  * `"single-row"` describes the IDLE composer only. It composes with the
6850
6948
  * compact state, so a wrapped draft, chips, attachment previews, a quote, a
6851
- * pending card, or live dictation all fall back to the stacked card, exactly
6852
- * as `data-persona-composer-compact` does today.
6949
+ * pending card all fall back to the stacked card, exactly
6950
+ * as `data-persona-composer-compact` does today. Recording alone does not
6951
+ * expand the composer; dictated text expands it when it wraps.
6853
6952
  *
6854
6953
  * Ignored in composer-bar mount mode, whose pill is already one row.
6855
6954
  * @default "stacked"
@@ -6891,7 +6990,14 @@ type AgentWidgetClearChatConfig = {
6891
6990
  showTooltip?: boolean;
6892
6991
  };
6893
6992
  type AgentWidgetStatusIndicatorConfig = {
6993
+ /** Show the indicator. Explicit false also hides transient connection states. */
6894
6994
  visible?: boolean;
6995
+ /**
6996
+ * "always" shows status beneath the composer; "transient" shows connecting,
6997
+ * reconnecting, and error status above it, hiding normal idle/streaming status.
6998
+ * Available in both defaults states. Default: "always" in v4, "transient" in v5.
6999
+ */
7000
+ mode?: "always" | "transient";
6895
7001
  /** Text alignment. Default: 'right'. */
6896
7002
  align?: 'left' | 'center' | 'right';
6897
7003
  idleText?: string;
@@ -6905,6 +7011,22 @@ type AgentWidgetStatusIndicatorConfig = {
6905
7011
  /** Status text while a reconnect attempt is in flight. */
6906
7012
  resumingText?: string;
6907
7013
  };
7014
+ /** Built-in `voiceRecognition.prewarm` triggers. See {@link AgentWidgetVoiceRecognitionConfig.prewarm}. */
7015
+ type AgentWidgetVoicePrewarmTrigger = 'hover';
7016
+ /**
7017
+ * Custom `voiceRecognition.prewarm` trigger. Runs while the composer has a mic
7018
+ * button, and again when the button is rebuilt or `update()` swaps in a
7019
+ * different function. Call `warm()` whenever the visitor shows intent to talk
7020
+ * (it is safe to call repeatedly). Return a cleanup to run on replacement.
7021
+ */
7022
+ type AgentWidgetVoicePrewarmHook = (context: {
7023
+ /** Fire-and-forget voice warm-up; latched and error-swallowing. */
7024
+ warm: () => void;
7025
+ /** The composer's current mic button. */
7026
+ micButton: HTMLButtonElement;
7027
+ /** The widget's mount element. */
7028
+ mount: HTMLElement;
7029
+ }) => void | (() => void);
6908
7030
  type AgentWidgetVoiceRecognitionConfig = {
6909
7031
  /**
6910
7032
  * Enable the mic button and voice input. The mic still only renders when the
@@ -6970,6 +7092,29 @@ type AgentWidgetVoiceRecognitionConfig = {
6970
7092
  * Fires once per turn after the reply completes.
6971
7093
  */
6972
7094
  onMetrics?: (metrics: VoiceMetrics) => void;
7095
+ /**
7096
+ * Warm the voice path when the visitor shows intent to talk, before the mic
7097
+ * click, so the call starts faster.
7098
+ *
7099
+ * - `'hover'`: when the pointer enters the mic button, it receives focus, or
7100
+ * (on touch) the first pointer-down on it.
7101
+ * - `false`: never.
7102
+ * - A function: custom trigger. Called with `{ warm, micButton, mount }`
7103
+ * while the mic button exists (and again when the button is rebuilt or
7104
+ * `update()` swaps in a different function); call `warm()` whenever you
7105
+ * decide, e.g. when the panel opens. May return a cleanup that runs on
7106
+ * destroy, rebuild, or replacement. Replaces the built-in trigger.
7107
+ *
7108
+ * What `warm()` does depends on the provider: `runtype` fires its prewarm
7109
+ * (see `provider.runtype.prewarmMode`), a `custom` provider's optional
7110
+ * {@link VoiceProvider.prewarm} runs, and the browser (Web Speech) path
7111
+ * starts the client-token session init (as `sessionInit` does), since speech
7112
+ * recognition itself cannot start before the click. Warming is
7113
+ * fire-and-forget, latched, and never surfaces an error or UI state.
7114
+ *
7115
+ * @default 'hover' in client token mode, otherwise `false`
7116
+ */
7117
+ prewarm?: AgentWidgetVoicePrewarmTrigger | AgentWidgetVoicePrewarmHook | false;
6973
7118
  provider?: {
6974
7119
  type: 'browser' | 'runtype' | 'custom';
6975
7120
  browser?: {
@@ -6991,6 +7136,23 @@ type AgentWidgetVoiceRecognitionConfig = {
6991
7136
  * `@runtypelabs/persona/voice-worklet-player` for a jitter-buffered engine.
6992
7137
  */
6993
7138
  createPlaybackEngine?: () => VoicePlaybackEngine | Promise<VoicePlaybackEngine>;
7139
+ /**
7140
+ * How `prewarm()` warms the voice path (see `voiceRecognition.prewarm`).
7141
+ *
7142
+ * - `'request'` (default): a fire-and-forget
7143
+ * `POST {host}/v1/client/agents/{agentId}/voice/prewarm`.
7144
+ * - `'attach'`: open the voice WebSocket ahead of the click without
7145
+ * starting a call; the click then starts the call on that socket. It can
7146
+ * create server work before the visitor clicks, so it is opt-in.
7147
+ * @default 'request'
7148
+ */
7149
+ prewarmMode?: 'request' | 'attach';
7150
+ /**
7151
+ * `'attach'` mode: how long (ms) an attached socket waits for the click
7152
+ * before it closes. The server clamps it to 30000..600000.
7153
+ * @default 30000
7154
+ */
7155
+ attachIdleMs?: number;
6994
7156
  /** @deprecated No-op on the realtime path: the server's STT owns turn-taking. */
6995
7157
  pauseDuration?: number;
6996
7158
  /** @deprecated No-op on the realtime path: the server's STT owns turn-taking. */
@@ -7276,6 +7438,10 @@ type VoiceConfig = {
7276
7438
  * `@runtypelabs/persona/voice-worklet-player` for a jitter-buffered engine.
7277
7439
  */
7278
7440
  createPlaybackEngine?: () => VoicePlaybackEngine | Promise<VoicePlaybackEngine>;
7441
+ /** See `voiceRecognition.provider.runtype.prewarmMode`. @default 'request' */
7442
+ prewarmMode?: 'request' | 'attach';
7443
+ /** See `voiceRecognition.provider.runtype.attachIdleMs`. @default 30000 */
7444
+ attachIdleMs?: number;
7279
7445
  /** @deprecated No-op on the realtime path: the server's STT owns turn-taking. */
7280
7446
  pauseDuration?: number;
7281
7447
  /** @deprecated No-op on the realtime path: the server's STT owns turn-taking. */
@@ -7336,6 +7502,13 @@ interface VoiceProvider {
7336
7502
  deactivateBargeIn?(): Promise<void>;
7337
7503
  /** Stop playback / cancel in-flight request without starting recording */
7338
7504
  stopPlayback?(): void;
7505
+ /**
7506
+ * Warm the provider ahead of `startListening()` (the widget calls it on mic
7507
+ * intent, see `voiceRecognition.prewarm`). Must be fire-and-forget: never
7508
+ * throw, emit errors or status, or acquire the microphone. May be called
7509
+ * repeatedly; throttle as needed.
7510
+ */
7511
+ prewarm?(): void;
7339
7512
  }
7340
7513
  /**
7341
7514
  * Extra context for an approval decision, surfaced to `onDecision` and to the
@@ -7711,7 +7884,8 @@ type AgentWidgetResolvedSuggestion = {
7711
7884
  };
7712
7885
  /** Presentation keys shared by every suggestion surface. */
7713
7886
  type AgentWidgetSuggestionSurfaceConfig = {
7714
- /** Item density. Defaults to `card` for starters and `chip` for follow-ups. */
7887
+ /** Item density. V4 starters: card. V5 starters: chip, or card in fullscreen.
7888
+ * Follow-ups default to chip. */
7715
7889
  variant?: AgentWidgetSuggestionVariant;
7716
7890
  /** Default click behavior, overridable per item. Defaults to `send`. */
7717
7891
  behavior?: AgentWidgetSuggestionBehavior;
@@ -7722,7 +7896,7 @@ type AgentWidgetSuggestionSurfaceConfig = {
7722
7896
  * own stacking.
7723
7897
  */
7724
7898
  overflow?: "scroll" | "wrap";
7725
- /** Maximum visible items. Defaults to 4. */
7899
+ /** Maximum visible items. Defaults to 4, or 3 for V5 non-fullscreen starters. */
7726
7900
  maxItems?: number;
7727
7901
  };
7728
7902
  type AgentWidgetStarterSuggestionsConfig = AgentWidgetSuggestionSurfaceConfig & {
@@ -7776,8 +7950,8 @@ type AgentWidgetSuggestionsConfig = {
7776
7950
  type AgentWidgetWelcomeVariant = "card" | "hero" | "none";
7777
7951
  /**
7778
7952
  * When the welcome surface goes away. `"never"` is the default for `"card"`;
7779
- * `"on-first-message"` is the default for `"hero"` and cannot be overridden
7780
- * there.
7953
+ * `"on-first-message"` is forced for legacy V4 `"hero"`. V5 defaults every
7954
+ * variant to `"on-first-message"`. Explicit layout opts into overridable dismissal.
7781
7955
  */
7782
7956
  type AgentWidgetWelcomeDismiss = "never" | "on-first-message";
7783
7957
  /**
@@ -7831,7 +8005,10 @@ type AgentWidgetWelcomeAlign = "start" | "center";
7831
8005
  * host-set value from a filled-in default.
7832
8006
  */
7833
8007
  interface AgentWidgetWelcomeConfig {
7834
- /** Card or hero title. Defaults to "Hello 👋". */
8008
+ /** Vertical placement: V4 defaults to top; V5 to centered. Fullscreen centered
8009
+ * welcomes also raise the empty composer unless `anchor` is explicitly set. */
8010
+ layout?: "top" | "centered";
8011
+ /** Card or hero title. V4: "Hello 👋". V5: "What can I help with?". */
7835
8012
  title?: string;
7836
8013
  /**
7837
8014
  * Small muted line above the title, e.g. a section name. Omitted when unset
@@ -7844,19 +8021,22 @@ interface AgentWidgetWelcomeConfig {
7844
8021
  icon?: AgentWidgetWelcomeIcon;
7845
8022
  /**
7846
8023
  * Horizontal alignment of the kicker, title, subtitle, and starter
7847
- * suggestions. Unset follows the variant: `card` starts, `hero` centers.
8024
+ * suggestions. Centered layouts default to center. Otherwise unset follows
8025
+ * the variant: `card` starts, `hero` centers.
7848
8026
  */
7849
8027
  align?: AgentWidgetWelcomeAlign;
7850
8028
  /** @default "card" */
7851
8029
  variant?: AgentWidgetWelcomeVariant;
7852
- /** @default "never" for `card`, always `"on-first-message"` for `hero`. */
8030
+ /** V4: never for card, forced on-first-message for hero. V5: on-first-message
8031
+ * for all variants; explicit values win. Explicit layout also allows overriding
8032
+ * the legacy hero dismissal in V4. */
7853
8033
  dismiss?: AgentWidgetWelcomeDismiss;
7854
8034
  /**
7855
8035
  * Vertical anchoring of the greeting-plus-composer pair in the EMPTY
7856
8036
  * conversation only. On the first message the pair drops to the bottom
7857
8037
  * (animated; see `data-persona-conversation-state`).
7858
8038
  *
7859
- * - `"bottom"` (default): the composer stays pinned at the bottom.
8039
+ * - `"bottom"`: the composer stays pinned at the bottom.
7860
8040
  * - `"center"`: greeting and composer float together so the composer's top
7861
8041
  * edge lands at `anchorComposerTop` of the panel column, and the welcome
7862
8042
  * surface is end-anchored `composerGap` above it.
@@ -7864,7 +8044,8 @@ interface AgentWidgetWelcomeConfig {
7864
8044
  * Composes with either `composer.placement`. Ignored in composer-bar mount
7865
8045
  * mode. `renderWelcome` plugin content inherits the anchor: the widget
7866
8046
  * positions the overlay host and reserves the composer zone.
7867
- * @default "bottom"
8047
+ * Defaults to bottom, except centered fullscreen layouts, which center the
8048
+ * measured greeting/composer group when no anchor override is supplied.
7868
8049
  */
7869
8050
  anchor?: AgentWidgetWelcomeAnchor;
7870
8051
  /**
@@ -8168,6 +8349,8 @@ interface WidgetHistoryInternals {
8168
8349
  */
8169
8350
  type ClientChatRequest = {
8170
8351
  sessionId: string;
8352
+ /** Fresh identity proof for this execution, independent of visitor history. */
8353
+ identityProof?: RuntypeClientChatRequest['identityProof'];
8171
8354
  messages: Array<{
8172
8355
  id?: string;
8173
8356
  role: 'user' | 'assistant' | 'system';
@@ -8516,6 +8699,9 @@ type AgentWidgetLayoutConfig = {
8516
8699
  * `launcher.composerBar.contentMaxWidth`)
8517
8700
  */
8518
8701
  contentMaxWidth?: string;
8702
+ /** Fade the transcript's top edge when content is scrolled above it.
8703
+ * Defaults to false in V4 and true with future.v5Defaults. */
8704
+ topFade?: boolean;
8519
8705
  };
8520
8706
  /**
8521
8707
  * Token types for marked renderer methods
@@ -9129,7 +9315,30 @@ type AgentWidgetLoadingIndicatorConfig = {
9129
9315
  */
9130
9316
  renderIdle?: (context: IdleIndicatorRenderContext) => HTMLElement | null;
9131
9317
  };
9318
+ /** Built-in `sessionInit` triggers. See {@link AgentWidgetConfig.sessionInit}. */
9319
+ type AgentWidgetSessionInitTrigger = 'input' | 'focus' | 'mount' | 'send';
9320
+ /**
9321
+ * Custom `sessionInit` trigger. Runs when the widget mounts in client token mode,
9322
+ * and again if `update()` swaps in a different function. Call `warm()` whenever
9323
+ * the visitor shows intent (it is safe to call repeatedly). Return a cleanup to
9324
+ * run when the widget is destroyed or the hook is replaced.
9325
+ */
9326
+ type AgentWidgetSessionInitHook = (context: {
9327
+ /** Fire-and-forget early session init; latched and error-swallowing. */
9328
+ warm: () => void;
9329
+ /** The widget's mount element. */
9330
+ mount: HTMLElement;
9331
+ }) => void | (() => void);
9132
9332
  type AgentWidgetConfig = {
9333
+ /** Opt in to upcoming major-version defaults without changing explicit settings. */
9334
+ future?: {
9335
+ /**
9336
+ * Use the v5 default styling as it rolls out in 4.x. Every affected setting
9337
+ * remains independently configurable. Explicit options and theme tokens win.
9338
+ * @default false
9339
+ */
9340
+ v5Defaults?: boolean;
9341
+ };
9133
9342
  apiUrl?: string;
9134
9343
  flowId?: string;
9135
9344
  /**
@@ -9284,6 +9493,46 @@ type AgentWidgetConfig = {
9284
9493
  * ```
9285
9494
  */
9286
9495
  onSessionExpired?: () => void;
9496
+ /**
9497
+ * When the widget calls `/v1/client/init` in client token mode, ahead of the
9498
+ * first send. Ignored outside client token mode.
9499
+ *
9500
+ * - `'input'` (default): on the composer's first user keystroke that leaves
9501
+ * non-empty text. Programmatic value changes (restored drafts,
9502
+ * `setMessage()`, history recall) do not count.
9503
+ * - `'focus'`: when the visitor focuses the composer by pointer or Tab (and
9504
+ * on first input, as a fallback). Programmatic focus, such as
9505
+ * `autoFocusInput` on open or mount, does not count.
9506
+ * - `'mount'`: as soon as the widget mounts (the behavior before this option
9507
+ * existed). Use it when a server-configured welcome message, which arrives
9508
+ * with the init response, must show before the visitor types.
9509
+ * - `'send'`: no early init; the first send initializes the session.
9510
+ * - A function: custom trigger. Called on mount (and when `update()` swaps
9511
+ * in a different function) with a `warm` callback to call whenever you
9512
+ * decide (e.g. on hover); may return a cleanup that runs on destroy or
9513
+ * replacement. Replaces the built-in triggers.
9514
+ *
9515
+ * The early init is fire-and-forget: it runs at most once per session
9516
+ * lifetime (re-armed after expiry or a new conversation), sends exactly the
9517
+ * same request the send would, and swallows errors. A failure resurfaces
9518
+ * when the send retries init. A send during an in-flight early init reuses
9519
+ * it, so only one `/v1/client/init` is issued. When visitor history is
9520
+ * enabled the widget still initializes on mount to restore the conversation.
9521
+ * Hosts can also trigger it imperatively with `controller.warmSession()`.
9522
+ *
9523
+ * @default 'input'
9524
+ *
9525
+ * @example
9526
+ * ```typescript
9527
+ * config: {
9528
+ * clientToken: 'ct_live_...',
9529
+ * sessionInit: ({ warm, mount }) => {
9530
+ * mount.addEventListener('pointerenter', warm, { once: true });
9531
+ * }
9532
+ * }
9533
+ * ```
9534
+ */
9535
+ sessionInit?: AgentWidgetSessionInitTrigger | AgentWidgetSessionInitHook;
9287
9536
  /**
9288
9537
  * Get stored session ID for session resumption (client token mode only).
9289
9538
  * Called when initializing a new session to check if there's a previous session_id
@@ -9316,13 +9565,20 @@ type AgentWidgetConfig = {
9316
9565
  */
9317
9566
  setStoredSessionId?: (sessionId: string) => void;
9318
9567
  /**
9319
- * Called immediately before any cross-device history request and before a
9568
+ * With identityProvider, called before every client-token chat POST, including retries, independently of history.
9569
+ * Also called immediately before any cross-device history request and before a
9320
9570
  * conversationId resume of a conversation discovered on another device.
9321
- * Return a fresh end-user access token (rt_eu_… / JWT). Null uses exact-browser
9322
- * scope only for a never-bound visitor; a previously bound visitor fails closed
9323
- * until resetHistoryIdentity() runs. Never cached by the widget.
9571
+ * Return a fresh end-user access token (rt_eu_… / JWT). Null stops identity-enabled chat.
9572
+ * For history only, null uses exact-browser scope for a never-bound visitor;
9573
+ * a bound visitor fails closed until resetHistoryIdentity(). Never cached.
9324
9574
  */
9325
9575
  getIdentityProof?: () => string | null | Promise<string | null>;
9576
+ /**
9577
+ * Provider name registered with Runtype, for example "clerk". Enables per-request
9578
+ * chat identity through getIdentityProof without enabling history. A missing or
9579
+ * failed proof stops the turn; omitting this preserves history-only callbacks.
9580
+ */
9581
+ identityProvider?: string;
9326
9582
  /**
9327
9583
  * Read the persisted active conversation id (client token mode only).
9328
9584
  * Called only after the internal stored-state bootstrap gate resolves.
@@ -10007,6 +10263,8 @@ type AgentWidgetReasoning = {
10007
10263
  durationMs?: number;
10008
10264
  };
10009
10265
  type AgentWidgetToolCall = {
10266
+ /** Optional approval state for activity-row status chrome. */
10267
+ approvalStatus?: "pending" | "approved" | "denied" | "timeout";
10010
10268
  id: string;
10011
10269
  name?: string;
10012
10270
  status: "pending" | "running" | "complete";
@@ -10594,6 +10852,14 @@ declare class AgentWidgetClient {
10594
10852
  private currentClientTurnId;
10595
10853
  private clientSession;
10596
10854
  private sessionInitPromise;
10855
+ /**
10856
+ * Early-init latch for `warmSession()`. `false` = armed. Otherwise it holds
10857
+ * the session value (`null` or an expired session) the one early attempt was
10858
+ * made against, so a failed attempt is not retried on every keystroke. It is
10859
+ * re-armed when a session is installed or cleared, so each session lifetime
10860
+ * gets one early init.
10861
+ */
10862
+ private sessionWarmLatch;
10597
10863
  private lastSentClientToolsFingerprint;
10598
10864
  private clientToolsFingerprintSessionId;
10599
10865
  private sentNonEmptyClientToolsSessionId;
@@ -10702,9 +10968,27 @@ declare class AgentWidgetClient {
10702
10968
  after: string;
10703
10969
  signal: AbortSignal;
10704
10970
  }): Promise<Response>;
10971
+ /**
10972
+ * Fire-and-forget early `initSession()` for client-token mode, driven by the
10973
+ * widget's `sessionInit` trigger (or a host calling it directly, e.g. on
10974
+ * hover). It fires at most once per session lifetime and is a no-op while a
10975
+ * session is live or an init is already in flight. Errors are swallowed, with
10976
+ * no `onSessionExpired` and no UI: a send calls `initSession()` again and
10977
+ * reuses the in-flight promise, so any failure resurfaces there exactly as it
10978
+ * would without the early init. Sends nothing new on the wire. Outside
10979
+ * client-token mode this does nothing.
10980
+ *
10981
+ * Resolves with the session this call initialized, or `null` when it was
10982
+ * skipped or failed. It never rejects.
10983
+ */
10984
+ warmSession(): Promise<ClientSession | null>;
10705
10985
  /**
10706
10986
  * Initialize session for client token mode.
10707
- * Called automatically on first message if not already initialized.
10987
+ * Called by the send if no live session exists. The widget normally calls
10988
+ * it earlier, when the visitor shows intent to send (see the `sessionInit`
10989
+ * config option and `warmSession()`), and concurrent calls share one
10990
+ * in-flight request, so a send racing an early init issues a single
10991
+ * `/v1/client/init`.
10708
10992
  */
10709
10993
  initSession(): Promise<ClientSession>;
10710
10994
  /** Visitor history rides on client-token init only, and latches off after a 403 degrade. */
@@ -10849,6 +11133,7 @@ declare class AgentWidgetClient {
10849
11133
  private historyUrl;
10850
11134
  /** Explicit per-operation scope wins; otherwise config, then evidence. */
10851
11135
  private resolveHistoryScope;
11136
+ private resolveChatIdentityProof;
10852
11137
  /**
10853
11138
  * Resolve the proof for one logical request. `null` is an intentional
10854
11139
  * browser-scope fallback only while the visitor has never been bound.
@@ -11318,6 +11603,13 @@ declare class AgentWidgetSession {
11318
11603
  * Toggle voice recognition on/off
11319
11604
  */
11320
11605
  toggleVoice(): Promise<void>;
11606
+ /**
11607
+ * Warm the voice path ahead of the mic click (`voiceRecognition.prewarm`).
11608
+ * Session-owned providers (`runtype`, `custom`) get `provider.prewarm()` once
11609
+ * the lazy voice runtime has installed them; the browser (Web Speech) path
11610
+ * warms the client-token session instead. Fire-and-forget and silent.
11611
+ */
11612
+ prewarmVoice(): void;
11321
11613
  /**
11322
11614
  * Cleanup voice resources
11323
11615
  */
@@ -11334,10 +11626,16 @@ declare class AgentWidgetSession {
11334
11626
  * explicitly to pre-initialize the session and get config from server.
11335
11627
  */
11336
11628
  initClientSession(): Promise<ClientSession | null>;
11629
+ /**
11630
+ * Early, fire-and-forget client-token init (`sessionInit` trigger or
11631
+ * `controller.initSession()`). Failures stay silent here: no `onError`, no
11632
+ * UI. The send re-runs `initSession()` and reports them as it always has.
11633
+ */
11634
+ warmClientSession(): void;
11337
11635
  /**
11338
11636
  * Set the client session after initialization
11339
11637
  */
11340
- setClientSession(session: ClientSession): void;
11638
+ setClientSession(session: ClientSession, pristine?: boolean): void;
11341
11639
  /**
11342
11640
  * Welcome injection is skipped while `suppressWelcomeInjection` is latched:
11343
11641
  * reopening a stored conversation is not a new thread, and the hydrated
@@ -12405,6 +12703,13 @@ type Controller = {
12405
12703
  startNewConversation: (opts?: {
12406
12704
  focus?: boolean;
12407
12705
  }) => Promise<void>;
12706
+ /**
12707
+ * Client token mode: start `/v1/client/init` now, ahead of the first send
12708
+ * (e.g. when the visitor hovers your own "Chat with us" button).
12709
+ * Fire-and-forget, at most once per session lifetime, errors swallowed; the
12710
+ * send reuses the in-flight init. No-op in other modes. See `sessionInit`.
12711
+ */
12712
+ warmSession: () => void;
12408
12713
  /** Permanently delete one server record; the active one is replaced. */
12409
12714
  deleteConversation: (conversationId: string) => Promise<void>;
12410
12715
  /**
@@ -13817,7 +14122,7 @@ declare function createComboButton(options: CreateComboButtonOptions): ComboButt
13817
14122
 
13818
14123
  declare const DEFAULT_PALETTE: {
13819
14124
  colors: {
13820
- primary: {
14125
+ gray: {
13821
14126
  50: string;
13822
14127
  100: string;
13823
14128
  200: string;
@@ -13830,7 +14135,7 @@ declare const DEFAULT_PALETTE: {
13830
14135
  900: string;
13831
14136
  950: string;
13832
14137
  };
13833
- secondary: {
14138
+ primary: {
13834
14139
  50: string;
13835
14140
  100: string;
13836
14141
  200: string;
@@ -13843,7 +14148,7 @@ declare const DEFAULT_PALETTE: {
13843
14148
  900: string;
13844
14149
  950: string;
13845
14150
  };
13846
- accent: {
14151
+ secondary: {
13847
14152
  50: string;
13848
14153
  100: string;
13849
14154
  200: string;
@@ -13856,7 +14161,7 @@ declare const DEFAULT_PALETTE: {
13856
14161
  900: string;
13857
14162
  950: string;
13858
14163
  };
13859
- gray: {
14164
+ accent: {
13860
14165
  50: string;
13861
14166
  100: string;
13862
14167
  200: string;
@@ -14028,6 +14333,9 @@ interface PersonaWidgetConfig {
14028
14333
  theme?: DeepPartial<PersonaTheme>;
14029
14334
  darkTheme?: DeepPartial<PersonaTheme>;
14030
14335
  colorScheme?: ColorScheme;
14336
+ future?: {
14337
+ v5Defaults?: boolean;
14338
+ };
14031
14339
  }
14032
14340
  type WidgetConfig = PersonaWidgetConfig | AgentWidgetConfig;
14033
14341
  declare const detectColorScheme: () => "light" | "dark";
@@ -14202,10 +14510,7 @@ declare function extractComponentDirectiveFromMessage(message: AgentWidgetMessag
14202
14510
  declare const DEFAULT_FLOATING_LAUNCHER_WIDTH = "min(440px, calc(100vw - 24px))";
14203
14511
  /** Max width cap paired with {@link DEFAULT_FLOATING_LAUNCHER_WIDTH} for theme defaults. */
14204
14512
  declare const DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH = "440px";
14205
- /**
14206
- * Default widget configuration
14207
- * Single source of truth for all default values
14208
- */
14513
+ /** Backward-compatible export of the legacy widget defaults. */
14209
14514
  declare const DEFAULT_WIDGET_CONFIG: Partial<AgentWidgetConfig>;
14210
14515
  /**
14211
14516
  * Helper to deep merge user config with defaults
@@ -14761,4 +15066,4 @@ interface RovingTablistController {
14761
15066
  }
14762
15067
  declare function createRovingTablist(container: HTMLElement, options: RovingTablistOptions): RovingTablistController;
14763
15068
 
14764
- export { ASK_USER_QUESTION_CLIENT_TOOL, ASK_USER_QUESTION_PARAMETERS_SCHEMA, ASK_USER_QUESTION_TOOL_NAME, type AgentConfig, type AgentExecutionState, type AgentLoopConfig, type AgentMessageMetadata, type AgentRequestOptions, type AgentToolsConfig, type AgentWidgetActionContext, type AgentWidgetActionEventPayload, type AgentWidgetActionHandler, type AgentWidgetActionHandlerResult, type AgentWidgetActionParser, type AgentWidgetAgentRequestPayload, type AgentWidgetApproval, type AgentWidgetApprovalConfig, type AgentWidgetApprovalDecisionOptions, type AgentWidgetArtifactsFeature, type AgentWidgetArtifactsLayoutConfig, type AgentWidgetAskUserQuestionFeature, type AgentWidgetAskUserQuestionStyles, type AgentWidgetAttachmentAdapter, type AgentWidgetAttachmentsConfig, type AgentWidgetAvatarConfig, AgentWidgetClient, type AgentWidgetComponentRenderer, type AgentWidgetComposerConfig, type AgentWidgetConfig, type AgentWidgetConfigPatch, type AgentWidgetContextMentionChipRenderContext, type AgentWidgetContextMentionCommandContext, type AgentWidgetContextMentionComposerCapability, type AgentWidgetContextMentionConfig, type AgentWidgetContextMentionItem, type AgentWidgetContextMentionItemRenderContext, type AgentWidgetContextMentionMenuRenderContext, type AgentWidgetContextMentionPayload, type AgentWidgetContextMentionRef, type AgentWidgetContextMentionResolveContext, type AgentWidgetContextMentionSearchContext, type AgentWidgetContextMentionSource, type AgentWidgetContextMentionTokenRenderContext, type AgentWidgetContextProvider, type AgentWidgetContextProviderContext, type AgentWidgetController, type AgentWidgetControllerEventMap, type AgentWidgetCustomFetch, type AgentWidgetCustomMessageAction, type AgentWidgetCustomMessageActionRole, type AgentWidgetDockConfig, type AgentWidgetEvent, type AgentWidgetFeatureFlags, type AgentWidgetFollowUpSuggestionsConfig, type AgentWidgetHeaderLayoutConfig, type AgentWidgetHeadersFunction, type AgentWidgetHistoryCopy, type AgentWidgetHistoryFeature, type AgentWidgetHistoryListAction, type AgentWidgetHistoryRenderActions, type AgentWidgetInitHandle, type AgentWidgetInitOptions, type AgentWidgetLauncherConfig, type AgentWidgetLauncherTeaserConfig, type AgentWidgetLayoutConfig, type AgentWidgetLoadingIndicatorConfig, type AgentWidgetMarkdownConfig, type AgentWidgetMarkdownOptions, type AgentWidgetMarkdownRendererOverrides, type AgentWidgetMentionLlmEntry, type AgentWidgetMentionTriggerChannel, type AgentWidgetMentionTriggerPosition, type AgentWidgetMessage, type AgentWidgetMessageActionsConfig, type AgentWidgetMessageFeedback, type AgentWidgetMessageLayoutConfig, type AgentWidgetMessageRoleLayout, type AgentWidgetParsedAction, type AgentWidgetPlugin, type AgentWidgetPluginStorage, type AgentWidgetRailSection, type AgentWidgetRailSectionContext, type AgentWidgetReadAloudEvent, type AgentWidgetRenderHistoryConversationContext, type AgentWidgetRenderHistoryHeaderContext, type AgentWidgetRenderHistoryOpenErrorContext, type AgentWidgetRenderHistoryStateContext, type AgentWidgetRenderHistoryViewContext, type AgentWidgetRenderSuggestionContext, type AgentWidgetRenderWelcomeContext, type AgentWidgetRequestPayload, type AgentWidgetResolvedSuggestion, type AgentWidgetSSEEventParser, type AgentWidgetSSEEventResult, type AgentWidgetScrollBehaviorFeature, type AgentWidgetScrollMode, type AgentWidgetScrollRestorePosition, type AgentWidgetScrollToBottomFeature, AgentWidgetSession, type AgentWidgetSessionStatus, type AgentWidgetStarterSuggestionsConfig, type AgentWidgetStorageAdapter, type AgentWidgetStoredDraft, type AgentWidgetStoredState, type AgentWidgetStreamAnimationBuffer, type AgentWidgetStreamAnimationBuiltinType, type AgentWidgetStreamAnimationFeature, type AgentWidgetStreamAnimationPlaceholder, type AgentWidgetStreamAnimationType, type AgentWidgetStreamParser, type AgentWidgetStreamParserResult, type AgentWidgetSuggestion, type AgentWidgetSuggestionBehavior, type AgentWidgetSuggestionChipsConfig, type AgentWidgetSuggestionSelectContext, type AgentWidgetSuggestionSource, type AgentWidgetSuggestionSurface, type AgentWidgetSuggestionSurfaceConfig, type AgentWidgetSuggestionVariant, type AgentWidgetSuggestionsConfig, type AgentWidgetTimestampConfig, type AgentWidgetTooltipConfig, type AgentWidgetTransformSuggestionsContext, type AgentWidgetVoiceStatusEvent, type AgentWidgetWebMcpConfig, type AgentWidgetWelcomeAlign, type AgentWidgetWelcomeConfig, type AgentWidgetWelcomeDismiss, type AgentWidgetWelcomeIcon, type AgentWidgetWelcomeIconBase, type AgentWidgetWelcomeIconPlacement, type AgentWidgetWelcomeVariant, type ArtifactConfigPayload, type ArtifactPaneTokens, type ArtifactTabTokens, type ArtifactToolbarTokens, type AskUserQuestionOption, type AskUserQuestionPayload, type AskUserQuestionPrompt, AttachmentManager, type AttachmentManagerConfig, type AttachmentUploadContext, type BorderScale, BrowserSpeechEngine, type BrowserSpeechEngineOptions, type CSATFeedbackOptions, type ClientChatRequest, type ClientFeedbackRequest, type ClientFeedbackType, type ClientInitResponse, type ClientSession, type ClientToolDefinition, type ClientVisitorGrant, type CodeFormat, type CodeGeneratorHooks, type CodeGeneratorOptions, type ColorPalette, type ColorShade, type ComboButtonHandle, type ComponentContext, type ComponentDirective, type ComponentRegistrationOptions, type ComponentRenderer, type ComponentTokens, type ComposerAction, type ComposerActionBase, type ComposerActionContext, type ComposerActionContributionContext, type ComposerActionOverflowConfig, type ComposerActionPlacement, type ComposerActionPresentation, type ComposerActionRenderContext, type ComposerActionVisibility, type ComposerAttachmentState, type ComposerBeforeSendResult, type ComposerBuildContext, type ComposerButtonAction, type ComposerCustomAction, type ComposerDisabledOption, type ComposerElements, type ComposerInputAttributes, type ComposerLayout, type ComposerMode, type ComposerModeChipVisibility, type ComposerModeGroup, type ComposerModeGroupPresentation, type ComposerModel, type ComposerModelPickerConfig, type ComposerModelPickerPresentation, type ComposerPhase, type ComposerQuote, type ComposerResubmitOptions, type ComposerState, type ComposerStreamingSubmitBehavior, type ComposerSubmissionOptions, type ComposerSubmissionSnapshot, type ComposerSubmitKey, type ContentPart, type CreateComboButtonOptions, type CreateDropdownOptions, type CreateIconButtonOptions, type CreateLabelButtonOptions, type CreateStandardBubbleOptions, type CreateThemeOptions, type CreateToggleGroupOptions, DEFAULT_COMPONENTS, DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH, DEFAULT_FLOATING_LAUNCHER_WIDTH, DEFAULT_PALETTE, DEFAULT_SEMANTIC, DEFAULT_WIDGET_CONFIG, type DeepPartial, type DemoCarouselHandle, type DemoCarouselItem, type DemoCarouselOptions, type DomContextMode, type DomContextOptions, type DropdownMenuHandle, type DropdownMenuItem, type EnrichedPageElement, type EventStreamBadgeColor, type EventStreamConfig, type EventStreamPayloadRenderContext, type EventStreamRowRenderContext, type EventStreamToolbarRenderContext, type EventStreamViewRenderContext, type FallbackSpeechEngineOptions, type FormatEnrichedContextOptions, type HeaderBuildContext, type HeaderElements, type HeaderLayoutContext, type HeaderLayoutRenderer, type HeaderRenderContext, type HistoryConversationDetail, type HistoryConversationPage, type HistoryConversationPatch, type HistoryConversationSummary, type HistoryDeleteAllOptions, type HistoryDisplayProjection, type HistoryIdentityStatus, type HistoryListOptions, type HistoryListResult, type HistoryOperationContext, type HistoryPageOptions, type HistoryPageResult, type HistoryPendingAction, type HistoryProvider, HistoryProviderError, type HistoryProviderErrorCode, type HistoryReturnSurface, type HistoryScope, type HistoryViewState, type IconButtonTokens, type IconName, type IdleIndicatorRenderContext, type ImageContentPart, type InjectAssistantMessageOptions, type InjectComponentDirectiveOptions, type InjectMessageOptions, type InjectSystemMessageOptions, type InjectUserMessageOptions, type LabelButtonTokens, type LoadingIndicatorRenderContext, type LoadingIndicatorRenderer, type MarkdownParsersModule, type MarkdownProcessorOptions, type MessageActionCallbacks, type MessageContent, type MessageRenderContext, type MessageTransform, type NPSFeedbackOptions, PRESETS, PRESET_FULLSCREEN, PRESET_MINIMAL, PRESET_SHOP, type ParseOptionsConfig, type ParseRule, type PcmStreamPlayer, type PendingAttachment, type PersonaArtifactActionContext, type PersonaArtifactCustomAction, type PersonaArtifactDisplayDescriptor, type PersonaArtifactDisplayMatch, type PersonaArtifactDisplayMode, type PersonaArtifactDisplayModeInput, type PersonaArtifactDisplayResolution, type PersonaArtifactDisplayRules, type PersonaArtifactFilesDisplayRules, type PersonaArtifactKind, type PersonaArtifactManualUpsert, type PersonaArtifactPresentation, type PersonaArtifactRecord, type PersonaArtifactStatusLabelContext, type PersonaTheme, type PersonaThemePlugin, type PreparedClientSession, type PreparedHistoryActivation, type RadiusScale, ReadAloudController, type ReadAloudListener, type ReadAloudState, type ResolvedHistoryCopy, type ResolvedHistoryPresentation, type ResolvedTarget, type ResolvedWelcomeConfig, type RovingTablistController, type RovingTablistOptions, type RuleScoringContext, type RuntypeClientChatRequest, type RuntypeClientChatStreamEvent, type RuntypeClientFeedbackRequest, type RuntypeClientFeedbackResponse, type RuntypeClientFeedbackType, type RuntypeClientInitRequest, type RuntypeClientInitResponse, type RuntypeClientResumeRequest, type RuntypeClientResumeStreamEvent, type RuntypeExecutionStreamEvent, type RuntypeFlowSSEEvent, type RuntypeStepCompleteEvent, type RuntypeStopReasonKind, type RuntypeStreamEventOf, type RuntypeTurnCompleteEvent, type SSEEventCallback, type SSEEventRecord, SUGGEST_REPLIES_CLIENT_TOOL, SUGGEST_REPLIES_PARAMETERS_SCHEMA, SUGGEST_REPLIES_TOOL_NAME, type SanitizeFunction, type SemanticColors, type SemanticSpacing, type SemanticTypography, type ShadowScale, type SlashCommandDefinition, type SlotRenderContext, type SlotRenderer, type SpacingScale, type SpeechCallbacks, type SpeechEngine, type SpeechRequest, type StreamAnimationContext, type StreamAnimationPlugin, THEME_ZONES, type TargetResolver, type TextContentPart, type TextStyleTokens, type ThemeValidationError, type ThemeValidationResult, type ThemeZone, type ToggleGroupHandle, type ToggleGroupItem, type ToggleGroupTokens, type TokenReference, type TypographyScale, VERSION, type VoiceConfig, type VoiceMetrics, type VoicePlaybackEngine, type VoiceProvider, type VoiceResult, type VoiceStatus, WEBMCP_TOOL_PREFIX, WebMcpBridge, type WebMcpConfirmHandler, type WebMcpConfirmInfo, type WebMcpToolResult, type WidgetArtifactLayoutPreference, type WidgetHostLayout, type WidgetHostLayoutMode, type WidgetLayoutSlot, type WidgetPreferenceCapabilities, type WidgetPreferenceParseIssue, type WidgetPreferenceParseIssueCode, type WidgetPreferenceParseResult, type WidgetPreferenceSlice, type WidgetPreset, accessibilityPlugin, animationsPlugin, applyFeaturePreferences, applyThemeVariables, attachHeaderToContainer, brandPlugin, buildComposer, buildDefaultHeader, buildHeader, buildHeaderWithLayout, buildMinimalHeader, builtInClientToolsForDispatch, canonicalArtifactDisplayMode, collectEnrichedPageContext, componentRegistry, createActionManager, createAgentExperience, createAskUserQuestionBubble, createBestAvailableVoiceProvider, createBubbleWithLayout, createCSATFeedback, createComboButton, createComponentMiddleware, createComponentStreamParser, createDefaultSanitizer, createDemoCarousel, createDirectivePostprocessor, createDropdownMenu, createFlexibleJsonStreamParser, createIconButton, createImagePart, createJsonStreamParser, createLabelButton, createLocalStorageAdapter, createMarkdownProcessor, createMarkdownProcessorFromConfig, createMessageActions, createNPSFeedback, createPlainTextParser, createPlugin, createRegexJsonParser, createRovingTablist, createSlashCommandsSource, createSplitButton, createStandardBubble, createStaticMentionSource, createTextPart, createTheme, createThemeObserver, createToggleGroup, createTypingIndicator, createVoiceProvider, createWidgetHostLayout, createXmlParser, initAgentWidget as default, defaultActionHandlers, defaultJsonActionParser, defaultMentionFilter, defaultParseRules, detectColorScheme, directivePostprocessor, ensureAskUserQuestionSheet, escapeHtml, extractComponentDirectiveFromMessage, fileToImagePart, formatEnrichedContext, generateAssistantMessageId, generateCodeSnippet, generateMessageId, generateStableSelector, generateUserMessageId, getActiveTheme, getAgentWidgetHandles, getColorScheme, getDisplayText, getHeaderLayout, getImageParts, getPreset, hasComponentDirective, hasImages, headerLayouts, highContrastPlugin, initAgentWidget, isAskUserQuestionMessage, isComponentDirectiveType, isDockedMountMode, isHistoryProviderError, isSuggestRepliesMessage, isVoiceSupported, isWebMcpToolName, isWelcomeVisible, latestAgentSuggestions, listRegisteredStreamAnimations, loadMarkdownParsers, markdownPostprocessor, mergeWithDefaults, normalizeContent, normalizeMediaType, onMarkdownParsersReady, parseAskUserQuestionPayload, parseSuggestRepliesPayload, parseWidgetPreferenceSlice, pickBestVoice, pluginRegistry, reducedMotionPlugin, registerIcons, registerStreamAnimationPlugin, removeAskUserQuestionSheet, renderComponentDirective, renderLoadingIndicatorWithFallback, renderLucideIcon, resolveArtifactDisplay, resolveArtifactDisplayMode, resolveConfigPreferences, resolveDockConfig, resolveSanitizer, resolveTokens, resolveWelcomeConfig, stripWebMcpPrefix, themeToCssVariables, unregisterStreamAnimationPlugin, validateImageFile, validateTheme };
15069
+ export { ASK_USER_QUESTION_CLIENT_TOOL, ASK_USER_QUESTION_PARAMETERS_SCHEMA, ASK_USER_QUESTION_TOOL_NAME, type AgentConfig, type AgentExecutionState, type AgentLoopConfig, type AgentMessageMetadata, type AgentRequestOptions, type AgentToolsConfig, type AgentWidgetActionContext, type AgentWidgetActionEventPayload, type AgentWidgetActionHandler, type AgentWidgetActionHandlerResult, type AgentWidgetActionParser, type AgentWidgetAgentRequestPayload, type AgentWidgetApproval, type AgentWidgetApprovalConfig, type AgentWidgetApprovalDecisionOptions, type AgentWidgetArtifactsFeature, type AgentWidgetArtifactsLayoutConfig, type AgentWidgetAskUserQuestionFeature, type AgentWidgetAskUserQuestionStyles, type AgentWidgetAttachmentAdapter, type AgentWidgetAttachmentsConfig, type AgentWidgetAvatarConfig, AgentWidgetClient, type AgentWidgetComponentRenderer, type AgentWidgetComposerConfig, type AgentWidgetConfig, type AgentWidgetConfigPatch, type AgentWidgetContextMentionChipRenderContext, type AgentWidgetContextMentionCommandContext, type AgentWidgetContextMentionComposerCapability, type AgentWidgetContextMentionConfig, type AgentWidgetContextMentionItem, type AgentWidgetContextMentionItemRenderContext, type AgentWidgetContextMentionMenuRenderContext, type AgentWidgetContextMentionPayload, type AgentWidgetContextMentionRef, type AgentWidgetContextMentionResolveContext, type AgentWidgetContextMentionSearchContext, type AgentWidgetContextMentionSource, type AgentWidgetContextMentionTokenRenderContext, type AgentWidgetContextProvider, type AgentWidgetContextProviderContext, type AgentWidgetController, type AgentWidgetControllerEventMap, type AgentWidgetCustomFetch, type AgentWidgetCustomMessageAction, type AgentWidgetCustomMessageActionRole, type AgentWidgetDockConfig, type AgentWidgetEvent, type AgentWidgetFeatureFlags, type AgentWidgetFollowUpSuggestionsConfig, type AgentWidgetHeaderLayoutConfig, type AgentWidgetHeadersFunction, type AgentWidgetHistoryCopy, type AgentWidgetHistoryFeature, type AgentWidgetHistoryListAction, type AgentWidgetHistoryRenderActions, type AgentWidgetInitHandle, type AgentWidgetInitOptions, type AgentWidgetLauncherConfig, type AgentWidgetLauncherTeaserConfig, type AgentWidgetLayoutConfig, type AgentWidgetLoadingIndicatorConfig, type AgentWidgetMarkdownConfig, type AgentWidgetMarkdownOptions, type AgentWidgetMarkdownRendererOverrides, type AgentWidgetMentionLlmEntry, type AgentWidgetMentionTriggerChannel, type AgentWidgetMentionTriggerPosition, type AgentWidgetMessage, type AgentWidgetMessageActionsConfig, type AgentWidgetMessageFeedback, type AgentWidgetMessageLayoutConfig, type AgentWidgetMessageRoleLayout, type AgentWidgetParsedAction, type AgentWidgetPlugin, type AgentWidgetPluginStorage, type AgentWidgetRailSection, type AgentWidgetRailSectionContext, type AgentWidgetReadAloudEvent, type AgentWidgetRenderHistoryConversationContext, type AgentWidgetRenderHistoryHeaderContext, type AgentWidgetRenderHistoryOpenErrorContext, type AgentWidgetRenderHistoryStateContext, type AgentWidgetRenderHistoryViewContext, type AgentWidgetRenderSuggestionContext, type AgentWidgetRenderWelcomeContext, type AgentWidgetRequestPayload, type AgentWidgetResolvedSuggestion, type AgentWidgetSSEEventParser, type AgentWidgetSSEEventResult, type AgentWidgetScrollBehaviorFeature, type AgentWidgetScrollMode, type AgentWidgetScrollRestorePosition, type AgentWidgetScrollToBottomFeature, AgentWidgetSession, type AgentWidgetSessionInitHook, type AgentWidgetSessionInitTrigger, type AgentWidgetSessionStatus, type AgentWidgetStarterSuggestionsConfig, type AgentWidgetStorageAdapter, type AgentWidgetStoredDraft, type AgentWidgetStoredState, type AgentWidgetStreamAnimationBuffer, type AgentWidgetStreamAnimationBuiltinType, type AgentWidgetStreamAnimationFeature, type AgentWidgetStreamAnimationPlaceholder, type AgentWidgetStreamAnimationType, type AgentWidgetStreamParser, type AgentWidgetStreamParserResult, type AgentWidgetSuggestion, type AgentWidgetSuggestionBehavior, type AgentWidgetSuggestionChipsConfig, type AgentWidgetSuggestionSelectContext, type AgentWidgetSuggestionSource, type AgentWidgetSuggestionSurface, type AgentWidgetSuggestionSurfaceConfig, type AgentWidgetSuggestionVariant, type AgentWidgetSuggestionsConfig, type AgentWidgetTimestampConfig, type AgentWidgetTooltipConfig, type AgentWidgetTransformSuggestionsContext, type AgentWidgetVoicePrewarmHook, type AgentWidgetVoicePrewarmTrigger, type AgentWidgetVoiceStatusEvent, type AgentWidgetWebMcpConfig, type AgentWidgetWelcomeAlign, type AgentWidgetWelcomeConfig, type AgentWidgetWelcomeDismiss, type AgentWidgetWelcomeIcon, type AgentWidgetWelcomeIconBase, type AgentWidgetWelcomeIconPlacement, type AgentWidgetWelcomeVariant, type ArtifactConfigPayload, type ArtifactPaneTokens, type ArtifactTabTokens, type ArtifactToolbarTokens, type AskUserQuestionOption, type AskUserQuestionPayload, type AskUserQuestionPrompt, AttachmentManager, type AttachmentManagerConfig, type AttachmentUploadContext, type BorderScale, BrowserSpeechEngine, type BrowserSpeechEngineOptions, type CSATFeedbackOptions, type ClientChatRequest, type ClientFeedbackRequest, type ClientFeedbackType, type ClientInitResponse, type ClientSession, type ClientToolDefinition, type ClientVisitorGrant, type CodeFormat, type CodeGeneratorHooks, type CodeGeneratorOptions, type ColorPalette, type ColorShade, type ComboButtonHandle, type ComponentContext, type ComponentDirective, type ComponentRegistrationOptions, type ComponentRenderer, type ComponentTokens, type ComposerAction, type ComposerActionBase, type ComposerActionContext, type ComposerActionContributionContext, type ComposerActionOverflowConfig, type ComposerActionPlacement, type ComposerActionPresentation, type ComposerActionRenderContext, type ComposerActionVisibility, type ComposerAttachmentState, type ComposerBeforeSendResult, type ComposerBuildContext, type ComposerButtonAction, type ComposerCustomAction, type ComposerDisabledOption, type ComposerElements, type ComposerInputAttributes, type ComposerLayout, type ComposerMode, type ComposerModeChipVisibility, type ComposerModeGroup, type ComposerModeGroupPresentation, type ComposerModel, type ComposerModelPickerConfig, type ComposerModelPickerPresentation, type ComposerPhase, type ComposerQuote, type ComposerResubmitOptions, type ComposerState, type ComposerStreamingSubmitBehavior, type ComposerSubmissionOptions, type ComposerSubmissionSnapshot, type ComposerSubmitKey, type ContentPart, type CreateComboButtonOptions, type CreateDropdownOptions, type CreateIconButtonOptions, type CreateLabelButtonOptions, type CreateStandardBubbleOptions, type CreateThemeOptions, type CreateToggleGroupOptions, DEFAULT_COMPONENTS, DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH, DEFAULT_FLOATING_LAUNCHER_WIDTH, DEFAULT_PALETTE, DEFAULT_SEMANTIC, DEFAULT_WIDGET_CONFIG, type DeepPartial, type DemoCarouselHandle, type DemoCarouselItem, type DemoCarouselOptions, type DomContextMode, type DomContextOptions, type DropdownMenuHandle, type DropdownMenuItem, type EnrichedPageElement, type EventStreamBadgeColor, type EventStreamConfig, type EventStreamPayloadRenderContext, type EventStreamRowRenderContext, type EventStreamToolbarRenderContext, type EventStreamViewRenderContext, type FallbackSpeechEngineOptions, type FormatEnrichedContextOptions, type HeaderBuildContext, type HeaderElements, type HeaderLayoutContext, type HeaderLayoutRenderer, type HeaderRenderContext, type HistoryConversationDetail, type HistoryConversationPage, type HistoryConversationPatch, type HistoryConversationSummary, type HistoryDeleteAllOptions, type HistoryDisplayProjection, type HistoryIdentityStatus, type HistoryListOptions, type HistoryListResult, type HistoryOperationContext, type HistoryPageOptions, type HistoryPageResult, type HistoryPendingAction, type HistoryProvider, HistoryProviderError, type HistoryProviderErrorCode, type HistoryReturnSurface, type HistoryScope, type HistoryViewState, type IconButtonTokens, type IconName, type IdleIndicatorRenderContext, type ImageContentPart, type InjectAssistantMessageOptions, type InjectComponentDirectiveOptions, type InjectMessageOptions, type InjectSystemMessageOptions, type InjectUserMessageOptions, type LabelButtonTokens, type LoadingIndicatorRenderContext, type LoadingIndicatorRenderer, type MarkdownParsersModule, type MarkdownProcessorOptions, type MessageActionCallbacks, type MessageContent, type MessageRenderContext, type MessageTransform, type NPSFeedbackOptions, PRESETS, PRESET_FULLSCREEN, PRESET_MINIMAL, PRESET_SHOP, type ParseOptionsConfig, type ParseRule, type PcmStreamPlayer, type PendingAttachment, type PersonaArtifactActionContext, type PersonaArtifactCustomAction, type PersonaArtifactDisplayDescriptor, type PersonaArtifactDisplayMatch, type PersonaArtifactDisplayMode, type PersonaArtifactDisplayModeInput, type PersonaArtifactDisplayResolution, type PersonaArtifactDisplayRules, type PersonaArtifactFilesDisplayRules, type PersonaArtifactKind, type PersonaArtifactManualUpsert, type PersonaArtifactPresentation, type PersonaArtifactRecord, type PersonaArtifactStatusLabelContext, type PersonaTheme, type PersonaThemePlugin, type PreparedClientSession, type PreparedHistoryActivation, type RadiusScale, ReadAloudController, type ReadAloudListener, type ReadAloudState, type ResolvedHistoryCopy, type ResolvedHistoryPresentation, type ResolvedTarget, type ResolvedWelcomeConfig, type RovingTablistController, type RovingTablistOptions, type RuleScoringContext, type RuntypeClientChatRequest, type RuntypeClientChatStreamEvent, type RuntypeClientFeedbackRequest, type RuntypeClientFeedbackResponse, type RuntypeClientFeedbackType, type RuntypeClientInitRequest, type RuntypeClientInitResponse, type RuntypeClientResumeRequest, type RuntypeClientResumeStreamEvent, type RuntypeExecutionStreamEvent, type RuntypeFlowSSEEvent, type RuntypeStepCompleteEvent, type RuntypeStopReasonKind, type RuntypeStreamEventOf, type RuntypeTurnCompleteEvent, type SSEEventCallback, type SSEEventRecord, SUGGEST_REPLIES_CLIENT_TOOL, SUGGEST_REPLIES_PARAMETERS_SCHEMA, SUGGEST_REPLIES_TOOL_NAME, type SanitizeFunction, type SemanticColors, type SemanticSpacing, type SemanticTypography, type ShadowScale, type SlashCommandDefinition, type SlotRenderContext, type SlotRenderer, type SpacingScale, type SpeechCallbacks, type SpeechEngine, type SpeechRequest, type StreamAnimationContext, type StreamAnimationPlugin, THEME_ZONES, type TargetResolver, type TextContentPart, type TextStyleTokens, type ThemeValidationError, type ThemeValidationResult, type ThemeZone, type ToggleGroupHandle, type ToggleGroupItem, type ToggleGroupTokens, type TokenReference, type TypographyScale, VERSION, type VoiceConfig, type VoiceMetrics, type VoicePlaybackEngine, type VoiceProvider, type VoiceResult, type VoiceStatus, WEBMCP_TOOL_PREFIX, WebMcpBridge, type WebMcpConfirmHandler, type WebMcpConfirmInfo, type WebMcpToolResult, type WidgetArtifactLayoutPreference, type WidgetHostLayout, type WidgetHostLayoutMode, type WidgetLayoutSlot, type WidgetPreferenceCapabilities, type WidgetPreferenceParseIssue, type WidgetPreferenceParseIssueCode, type WidgetPreferenceParseResult, type WidgetPreferenceSlice, type WidgetPreset, accessibilityPlugin, animationsPlugin, applyFeaturePreferences, applyThemeVariables, attachHeaderToContainer, brandPlugin, buildComposer, buildDefaultHeader, buildHeader, buildHeaderWithLayout, buildMinimalHeader, builtInClientToolsForDispatch, canonicalArtifactDisplayMode, collectEnrichedPageContext, componentRegistry, createActionManager, createAgentExperience, createAskUserQuestionBubble, createBestAvailableVoiceProvider, createBubbleWithLayout, createCSATFeedback, createComboButton, createComponentMiddleware, createComponentStreamParser, createDefaultSanitizer, createDemoCarousel, createDirectivePostprocessor, createDropdownMenu, createFlexibleJsonStreamParser, createIconButton, createImagePart, createJsonStreamParser, createLabelButton, createLocalStorageAdapter, createMarkdownProcessor, createMarkdownProcessorFromConfig, createMessageActions, createNPSFeedback, createPlainTextParser, createPlugin, createRegexJsonParser, createRovingTablist, createSlashCommandsSource, createSplitButton, createStandardBubble, createStaticMentionSource, createTextPart, createTheme, createThemeObserver, createToggleGroup, createTypingIndicator, createVoiceProvider, createWidgetHostLayout, createXmlParser, initAgentWidget as default, defaultActionHandlers, defaultJsonActionParser, defaultMentionFilter, defaultParseRules, detectColorScheme, directivePostprocessor, ensureAskUserQuestionSheet, escapeHtml, extractComponentDirectiveFromMessage, fileToImagePart, formatEnrichedContext, generateAssistantMessageId, generateCodeSnippet, generateMessageId, generateStableSelector, generateUserMessageId, getActiveTheme, getAgentWidgetHandles, getColorScheme, getDisplayText, getHeaderLayout, getImageParts, getPreset, hasComponentDirective, hasImages, headerLayouts, highContrastPlugin, initAgentWidget, isAskUserQuestionMessage, isComponentDirectiveType, isDockedMountMode, isHistoryProviderError, isSuggestRepliesMessage, isVoiceSupported, isWebMcpToolName, isWelcomeVisible, latestAgentSuggestions, listRegisteredStreamAnimations, loadMarkdownParsers, markdownPostprocessor, mergeWithDefaults, normalizeContent, normalizeMediaType, onMarkdownParsersReady, parseAskUserQuestionPayload, parseSuggestRepliesPayload, parseWidgetPreferenceSlice, pickBestVoice, pluginRegistry, reducedMotionPlugin, registerIcons, registerStreamAnimationPlugin, removeAskUserQuestionSheet, renderComponentDirective, renderLoadingIndicatorWithFallback, renderLucideIcon, resolveArtifactDisplay, resolveArtifactDisplayMode, resolveConfigPreferences, resolveDockConfig, resolveSanitizer, resolveTokens, resolveWelcomeConfig, stripWebMcpPrefix, themeToCssVariables, unregisterStreamAnimationPlugin, validateImageFile, validateTheme };