@runtypelabs/persona 4.26.1 → 4.28.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 (61) hide show
  1. package/dist/approval-ui.d.cts +18 -0
  2. package/dist/approval-ui.d.ts +18 -0
  3. package/dist/artifacts-ui.d.cts +18 -0
  4. package/dist/artifacts-ui.d.ts +18 -0
  5. package/dist/chunk-AALCT54S.js +1 -0
  6. package/dist/{client-history-GOZWBDA5.js → client-history-LV3KHEFA.js} +1 -1
  7. package/dist/client-history.js +1 -1
  8. package/dist/client-stream-N22JHTLE.js +4 -0
  9. package/dist/client-stream.js +3 -3
  10. package/dist/codegen.cjs +1 -1
  11. package/dist/codegen.js +1 -1
  12. package/dist/context-mentions.d.cts +18 -0
  13. package/dist/context-mentions.d.ts +18 -0
  14. package/dist/event-stream-view.d.cts +18 -0
  15. package/dist/event-stream-view.d.ts +18 -0
  16. package/dist/forms-ui.d.cts +26 -0
  17. package/dist/forms-ui.d.ts +26 -0
  18. package/dist/index.cjs +57 -57
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +34 -0
  21. package/dist/index.d.ts +34 -0
  22. package/dist/index.global.js +1 -1
  23. package/dist/index.global.js.map +1 -1
  24. package/dist/index.js +58 -58
  25. package/dist/index.js.map +1 -1
  26. package/dist/session-reconnect.d.cts +18 -0
  27. package/dist/session-reconnect.d.ts +18 -0
  28. package/dist/smart-dom-reader.d.cts +18 -0
  29. package/dist/smart-dom-reader.d.ts +18 -0
  30. package/dist/theme-editor-preview.cjs +66 -66
  31. package/dist/theme-editor-preview.d.cts +18 -0
  32. package/dist/theme-editor-preview.d.ts +18 -0
  33. package/dist/theme-editor-preview.js +31 -31
  34. package/dist/theme-editor.d.cts +18 -0
  35. package/dist/theme-editor.d.ts +18 -0
  36. package/dist/voice-runtime-LVUMPUDS.js +17 -0
  37. package/dist/voice-runtime.cjs +7 -7
  38. package/dist/voice-runtime.d.cts +33 -0
  39. package/dist/voice-runtime.d.ts +33 -0
  40. package/dist/voice-runtime.js +7 -7
  41. package/package.json +1 -1
  42. package/src/client-stream.ts +10 -3
  43. package/src/client.interrupt.test.ts +18 -0
  44. package/src/client.test.ts +20 -0
  45. package/src/client.ts +7 -0
  46. package/src/session.ts +16 -3
  47. package/src/session.voice.test.ts +199 -3
  48. package/src/types.ts +24 -0
  49. package/src/ui.composer-defer-one.test.ts +17 -0
  50. package/src/ui.ts +49 -12
  51. package/src/voice/__fixtures__/voice-wire/server/session_end-provider-error.json +6 -0
  52. package/src/voice/__fixtures__/voice-wire/server/session_end-unknown-reason.json +4 -0
  53. package/src/voice/__fixtures__/voice-wire/server/session_end.json +5 -0
  54. package/src/voice/runtype-voice-provider.ts +205 -21
  55. package/src/voice/voice-clause-buffer.test.ts +143 -0
  56. package/src/voice/voice-clause-buffer.ts +187 -0
  57. package/src/voice/voice-delegation.ts +111 -13
  58. package/src/voice/voice.test.ts +433 -2
  59. package/dist/chunk-GKPCIQPB.js +0 -1
  60. package/dist/client-stream-42FOI3EC.js +0 -4
  61. package/dist/voice-runtime-XLU6YK2N.js +0 -17
package/dist/index.d.cts CHANGED
@@ -7580,6 +7580,11 @@ interface VoiceProvider {
7580
7580
  setSessionBridge?(bridge: VoiceSessionBridge): void;
7581
7581
  /** The AI-disclosure notice for the live call, if one should show (speech-to-speech). */
7582
7582
  getDisclosure?(): string | null;
7583
+ /**
7584
+ * Status-line text for the call, returned once: why the server ended it
7585
+ * (`session_end`) or that it is reconnecting. `null` when there is none.
7586
+ */
7587
+ takeNotice?(): string | null;
7583
7588
  }
7584
7589
  /** Metadata on a {@link VoiceProvider.onTranscript} update. */
7585
7590
  type VoiceTranscriptMetadata = {
@@ -7611,6 +7616,13 @@ type VoiceDelegationRequest = {
7611
7616
  role: string;
7612
7617
  content: unknown;
7613
7618
  }>;
7619
+ /**
7620
+ * Set when the server streams delegated answers (`delegation_stream`): called
7621
+ * with each speakable piece of the turn's answer, in order, while it renders.
7622
+ * The pieces, concatenated, are a prefix of the result's `text`; the result
7623
+ * says how much of it with `streamedChars`.
7624
+ */
7625
+ stream?: (text: string) => void;
7614
7626
  };
7615
7627
  /**
7616
7628
  * How a delegated turn ended, or that it waits on an approval (contract
@@ -7641,6 +7653,12 @@ type VoiceDelegationResult = {
7641
7653
  * @default true
7642
7654
  */
7643
7655
  inChat?: boolean;
7656
+ /**
7657
+ * How many leading characters of `text` already went out through
7658
+ * `request.stream` (the rest, such as an approval script, is unstreamed).
7659
+ * Omitted or 0: nothing was streamed.
7660
+ */
7661
+ streamedChars?: number;
7644
7662
  /**
7645
7663
  * Set when the turn parked on approvals (`text` then asks for the decision).
7646
7664
  * Resolves with the terminal result once the visitor decides (or the
@@ -8553,6 +8571,14 @@ type ClientChatRequest = {
8553
8571
  turnId?: RuntypeClientChatRequest['turnId'];
8554
8572
  /** Whether this turn should interrupt a prior in-flight response (from Core public OpenAPI). */
8555
8573
  submitMode?: RuntypeClientChatRequest['submitMode'];
8574
+ /**
8575
+ * Spoken-reply hint, set on a delegated voice turn whose reply a voice model
8576
+ * reads aloud: the server asks the agent for a speakable answer (the direct
8577
+ * answer first, in plain sentences). Not persisted into history.
8578
+ */
8579
+ voice?: {
8580
+ spoken: true;
8581
+ };
8556
8582
  };
8557
8583
  /**
8558
8584
  * Feedback types supported by the API
@@ -11017,6 +11043,12 @@ type DispatchOptions = {
11017
11043
  * `submitMode: "interrupt"` so the server cancels the prior run.
11018
11044
  */
11019
11045
  interrupt?: boolean;
11046
+ /**
11047
+ * Client-token only: a voice model reads the reply aloud (a delegated voice
11048
+ * turn). Sends `voice: { spoken: true }` so the server asks for a speakable
11049
+ * answer.
11050
+ */
11051
+ voiceSpoken?: boolean;
11020
11052
  };
11021
11053
  type SSEHandler = (event: AgentWidgetEvent) => void;
11022
11054
  type SSEEventCallback = (eventType: string, payload: unknown) => void;
@@ -11442,6 +11474,8 @@ declare class AgentWidgetSession {
11442
11474
  * Get current voice status
11443
11475
  */
11444
11476
  getVoiceStatus(): VoiceStatus;
11477
+ /** The voice call's pending status-line notice (why it ended, or reconnecting), once. */
11478
+ getVoiceNotice(): string | null;
11445
11479
  /** The live call's AI-disclosure notice, if it shows one. */
11446
11480
  getVoiceDisclosure(): string | null;
11447
11481
  /**
package/dist/index.d.ts CHANGED
@@ -7580,6 +7580,11 @@ interface VoiceProvider {
7580
7580
  setSessionBridge?(bridge: VoiceSessionBridge): void;
7581
7581
  /** The AI-disclosure notice for the live call, if one should show (speech-to-speech). */
7582
7582
  getDisclosure?(): string | null;
7583
+ /**
7584
+ * Status-line text for the call, returned once: why the server ended it
7585
+ * (`session_end`) or that it is reconnecting. `null` when there is none.
7586
+ */
7587
+ takeNotice?(): string | null;
7583
7588
  }
7584
7589
  /** Metadata on a {@link VoiceProvider.onTranscript} update. */
7585
7590
  type VoiceTranscriptMetadata = {
@@ -7611,6 +7616,13 @@ type VoiceDelegationRequest = {
7611
7616
  role: string;
7612
7617
  content: unknown;
7613
7618
  }>;
7619
+ /**
7620
+ * Set when the server streams delegated answers (`delegation_stream`): called
7621
+ * with each speakable piece of the turn's answer, in order, while it renders.
7622
+ * The pieces, concatenated, are a prefix of the result's `text`; the result
7623
+ * says how much of it with `streamedChars`.
7624
+ */
7625
+ stream?: (text: string) => void;
7614
7626
  };
7615
7627
  /**
7616
7628
  * How a delegated turn ended, or that it waits on an approval (contract
@@ -7641,6 +7653,12 @@ type VoiceDelegationResult = {
7641
7653
  * @default true
7642
7654
  */
7643
7655
  inChat?: boolean;
7656
+ /**
7657
+ * How many leading characters of `text` already went out through
7658
+ * `request.stream` (the rest, such as an approval script, is unstreamed).
7659
+ * Omitted or 0: nothing was streamed.
7660
+ */
7661
+ streamedChars?: number;
7644
7662
  /**
7645
7663
  * Set when the turn parked on approvals (`text` then asks for the decision).
7646
7664
  * Resolves with the terminal result once the visitor decides (or the
@@ -8553,6 +8571,14 @@ type ClientChatRequest = {
8553
8571
  turnId?: RuntypeClientChatRequest['turnId'];
8554
8572
  /** Whether this turn should interrupt a prior in-flight response (from Core public OpenAPI). */
8555
8573
  submitMode?: RuntypeClientChatRequest['submitMode'];
8574
+ /**
8575
+ * Spoken-reply hint, set on a delegated voice turn whose reply a voice model
8576
+ * reads aloud: the server asks the agent for a speakable answer (the direct
8577
+ * answer first, in plain sentences). Not persisted into history.
8578
+ */
8579
+ voice?: {
8580
+ spoken: true;
8581
+ };
8556
8582
  };
8557
8583
  /**
8558
8584
  * Feedback types supported by the API
@@ -11017,6 +11043,12 @@ type DispatchOptions = {
11017
11043
  * `submitMode: "interrupt"` so the server cancels the prior run.
11018
11044
  */
11019
11045
  interrupt?: boolean;
11046
+ /**
11047
+ * Client-token only: a voice model reads the reply aloud (a delegated voice
11048
+ * turn). Sends `voice: { spoken: true }` so the server asks for a speakable
11049
+ * answer.
11050
+ */
11051
+ voiceSpoken?: boolean;
11020
11052
  };
11021
11053
  type SSEHandler = (event: AgentWidgetEvent) => void;
11022
11054
  type SSEEventCallback = (eventType: string, payload: unknown) => void;
@@ -11442,6 +11474,8 @@ declare class AgentWidgetSession {
11442
11474
  * Get current voice status
11443
11475
  */
11444
11476
  getVoiceStatus(): VoiceStatus;
11477
+ /** The voice call's pending status-line notice (why it ended, or reconnecting), once. */
11478
+ getVoiceNotice(): string | null;
11445
11479
  /** The live call's AI-disclosure notice, if it shows one. */
11446
11480
  getVoiceDisclosure(): string | null;
11447
11481
  /**