@runtypelabs/persona 4.20.0 → 4.21.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 (52) 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-CG-bLFmk.d.cts → types-B_JdVK9o.d.cts} +2 -0
  4. package/dist/animations/{types-CG-bLFmk.d.ts → types-B_JdVK9o.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.d.cts +22 -0
  10. package/dist/approval-ui.d.ts +22 -0
  11. package/dist/artifacts-ui.d.cts +22 -0
  12. package/dist/artifacts-ui.d.ts +22 -0
  13. package/dist/codegen.cjs +1 -1
  14. package/dist/codegen.js +1 -1
  15. package/dist/context-mentions.d.cts +22 -0
  16. package/dist/context-mentions.d.ts +22 -0
  17. package/dist/event-stream-view.d.cts +22 -0
  18. package/dist/event-stream-view.d.ts +22 -0
  19. package/dist/forms-ui.d.cts +46 -4
  20. package/dist/forms-ui.d.ts +46 -4
  21. package/dist/history-view.d.cts +2 -0
  22. package/dist/history-view.d.ts +2 -0
  23. package/dist/index.cjs +63 -63
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +50 -4
  26. package/dist/index.d.ts +50 -4
  27. package/dist/index.global.js +48 -48
  28. package/dist/index.global.js.map +1 -1
  29. package/dist/index.js +63 -63
  30. package/dist/index.js.map +1 -1
  31. package/dist/session-reconnect.d.cts +22 -0
  32. package/dist/session-reconnect.d.ts +22 -0
  33. package/dist/smart-dom-reader.d.cts +22 -0
  34. package/dist/smart-dom-reader.d.ts +22 -0
  35. package/dist/theme-editor-preview.cjs +65 -65
  36. package/dist/theme-editor-preview.d.cts +22 -0
  37. package/dist/theme-editor-preview.d.ts +22 -0
  38. package/dist/theme-editor-preview.js +43 -43
  39. package/dist/theme-editor.d.cts +22 -0
  40. package/dist/theme-editor.d.ts +22 -0
  41. package/dist/webmcp-runtime.d.cts +16 -0
  42. package/dist/webmcp-runtime.d.ts +16 -0
  43. package/package.json +1 -1
  44. package/src/client-visitor-history.test.ts +473 -3
  45. package/src/client.test.ts +141 -3
  46. package/src/client.ts +157 -39
  47. package/src/generated/runtype-openapi-contract.ts +2 -0
  48. package/src/session.ts +139 -103
  49. package/src/session.webmcp.test.ts +48 -1
  50. package/src/types.ts +30 -0
  51. package/src/ui.history-lifecycle.test.ts +2 -2
  52. package/src/ui.ts +95 -7
@@ -1644,8 +1644,10 @@ type RuntypeExecutionStreamEvent = ({
1644
1644
  message: string;
1645
1645
  };
1646
1646
  executionId: string;
1647
+ finalOutput?: string;
1647
1648
  kind: "agent" | "flow";
1648
1649
  seq: number;
1650
+ stopReason?: string;
1649
1651
  type: "execution_error";
1650
1652
  upgradeUrl?: string;
1651
1653
  }) | ({
@@ -2979,6 +2981,22 @@ type AgentWidgetWebMcpConfig = {
2979
2981
  * `window.confirm` fallback only applies when no widget UI is attached.
2980
2982
  */
2981
2983
  onConfirm?: WebMcpConfirmHandler;
2984
+ /**
2985
+ * How the widget runs the `webmcp:*` calls of ONE turn when the model emits
2986
+ * several at once.
2987
+ *
2988
+ * - `'parallel'` (default): every call executes concurrently and a gated
2989
+ * sibling's approval never blocks another's execution. Right for
2990
+ * independent, order-insensitive tools (catalog lookups, add-to-cart).
2991
+ * - `'sequential'`: calls execute one at a time, in the order the model
2992
+ * emitted them; the next starts only after the previous one settles
2993
+ * (including its approval bubble). Use this when the page tools share
2994
+ * mutable state that concurrent execution would interleave, e.g. a
2995
+ * canvas where every stroke selects a color/tool before drawing.
2996
+ *
2997
+ * Either way, all outputs still return to the server in a single `/resume`.
2998
+ */
2999
+ execution?: 'parallel' | 'sequential';
2982
3000
  };
2983
3001
  /**
2984
3002
  * The coordinates needed to resume a durable agent turn after the SSE
@@ -7273,6 +7291,10 @@ type ClientSession = {
7273
7291
  targetId?: string;
7274
7292
  /** Opaque change token; differs whenever the conversation transcript mutated. */
7275
7293
  conversationRevision?: string;
7294
+ /** Server-negotiated durable reconnect support for this client-token session. */
7295
+ durableRecovery?: {
7296
+ enabled: boolean;
7297
+ };
7276
7298
  /** Visitor grant backing history. `token` appears only at mint. */
7277
7299
  visitor?: ClientVisitorGrant;
7278
7300
  /** Configuration from the server */
@@ -1644,8 +1644,10 @@ type RuntypeExecutionStreamEvent = ({
1644
1644
  message: string;
1645
1645
  };
1646
1646
  executionId: string;
1647
+ finalOutput?: string;
1647
1648
  kind: "agent" | "flow";
1648
1649
  seq: number;
1650
+ stopReason?: string;
1649
1651
  type: "execution_error";
1650
1652
  upgradeUrl?: string;
1651
1653
  }) | ({
@@ -2979,6 +2981,22 @@ type AgentWidgetWebMcpConfig = {
2979
2981
  * `window.confirm` fallback only applies when no widget UI is attached.
2980
2982
  */
2981
2983
  onConfirm?: WebMcpConfirmHandler;
2984
+ /**
2985
+ * How the widget runs the `webmcp:*` calls of ONE turn when the model emits
2986
+ * several at once.
2987
+ *
2988
+ * - `'parallel'` (default): every call executes concurrently and a gated
2989
+ * sibling's approval never blocks another's execution. Right for
2990
+ * independent, order-insensitive tools (catalog lookups, add-to-cart).
2991
+ * - `'sequential'`: calls execute one at a time, in the order the model
2992
+ * emitted them; the next starts only after the previous one settles
2993
+ * (including its approval bubble). Use this when the page tools share
2994
+ * mutable state that concurrent execution would interleave, e.g. a
2995
+ * canvas where every stroke selects a color/tool before drawing.
2996
+ *
2997
+ * Either way, all outputs still return to the server in a single `/resume`.
2998
+ */
2999
+ execution?: 'parallel' | 'sequential';
2982
3000
  };
2983
3001
  /**
2984
3002
  * The coordinates needed to resume a durable agent turn after the SSE
@@ -7273,6 +7291,10 @@ type ClientSession = {
7273
7291
  targetId?: string;
7274
7292
  /** Opaque change token; differs whenever the conversation transcript mutated. */
7275
7293
  conversationRevision?: string;
7294
+ /** Server-negotiated durable reconnect support for this client-token session. */
7295
+ durableRecovery?: {
7296
+ enabled: boolean;
7297
+ };
7276
7298
  /** Visitor grant backing history. `token` appears only at mint. */
7277
7299
  visitor?: ClientVisitorGrant;
7278
7300
  /** Configuration from the server */
@@ -111,6 +111,22 @@ type AgentWidgetWebMcpConfig = {
111
111
  * `window.confirm` fallback only applies when no widget UI is attached.
112
112
  */
113
113
  onConfirm?: WebMcpConfirmHandler;
114
+ /**
115
+ * How the widget runs the `webmcp:*` calls of ONE turn when the model emits
116
+ * several at once.
117
+ *
118
+ * - `'parallel'` (default): every call executes concurrently and a gated
119
+ * sibling's approval never blocks another's execution. Right for
120
+ * independent, order-insensitive tools (catalog lookups, add-to-cart).
121
+ * - `'sequential'`: calls execute one at a time, in the order the model
122
+ * emitted them; the next starts only after the previous one settles
123
+ * (including its approval bubble). Use this when the page tools share
124
+ * mutable state that concurrent execution would interleave, e.g. a
125
+ * canvas where every stroke selects a color/tool before drawing.
126
+ *
127
+ * Either way, all outputs still return to the server in a single `/resume`.
128
+ */
129
+ execution?: 'parallel' | 'sequential';
114
130
  };
115
131
 
116
132
  /**
@@ -111,6 +111,22 @@ type AgentWidgetWebMcpConfig = {
111
111
  * `window.confirm` fallback only applies when no widget UI is attached.
112
112
  */
113
113
  onConfirm?: WebMcpConfirmHandler;
114
+ /**
115
+ * How the widget runs the `webmcp:*` calls of ONE turn when the model emits
116
+ * several at once.
117
+ *
118
+ * - `'parallel'` (default): every call executes concurrently and a gated
119
+ * sibling's approval never blocks another's execution. Right for
120
+ * independent, order-insensitive tools (catalog lookups, add-to-cart).
121
+ * - `'sequential'`: calls execute one at a time, in the order the model
122
+ * emitted them; the next starts only after the previous one settles
123
+ * (including its approval bubble). Use this when the page tools share
124
+ * mutable state that concurrent execution would interleave, e.g. a
125
+ * canvas where every stroke selects a color/tool before drawing.
126
+ *
127
+ * Either way, all outputs still return to the server in a single `/resume`.
128
+ */
129
+ execution?: 'parallel' | 'sequential';
114
130
  };
115
131
 
116
132
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runtypelabs/persona",
3
- "version": "4.20.0",
3
+ "version": "4.21.1",
4
4
  "description": "Themeable, pluggable streaming agent widget for websites, in plain JS with support for voice input and reasoning / tool output.",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",