@liforma/client 0.4.5 → 0.4.6

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 (44) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/next/index.js +5 -2
  3. package/dist/next/index.js.map +1 -1
  4. package/dist/next/v2/embed/iframeHost.d.ts +2 -1
  5. package/dist/next/v2/embed/iframeHost.d.ts.map +1 -1
  6. package/dist/next/v2/embed/protocol.d.ts +4 -1
  7. package/dist/next/v2/embed/protocol.d.ts.map +1 -1
  8. package/dist/next/v2/experience.d.ts +7 -2
  9. package/dist/next/v2/experience.d.ts.map +1 -1
  10. package/dist/next/v2/types/sessionInteraction.d.ts +30 -0
  11. package/dist/next/v2/types/sessionInteraction.d.ts.map +1 -1
  12. package/dist/npm/index.js +5 -2
  13. package/dist/npm/index.js.map +1 -1
  14. package/dist/npm/v2/embed/iframeHost.d.ts +2 -1
  15. package/dist/npm/v2/embed/iframeHost.d.ts.map +1 -1
  16. package/dist/npm/v2/embed/protocol.d.ts +4 -1
  17. package/dist/npm/v2/embed/protocol.d.ts.map +1 -1
  18. package/dist/npm/v2/experience.d.ts +7 -2
  19. package/dist/npm/v2/experience.d.ts.map +1 -1
  20. package/dist/npm/v2/index.d.ts +1 -1
  21. package/dist/npm/v2/index.d.ts.map +1 -1
  22. package/dist/npm/v2/npm.d.ts +1 -1
  23. package/dist/npm/v2/npm.d.ts.map +1 -1
  24. package/dist/npm/v2/types/sessionInteraction.d.ts +30 -0
  25. package/dist/npm/v2/types/sessionInteraction.d.ts.map +1 -1
  26. package/dist/react/component/experienceComponentRuntime.d.ts +1 -0
  27. package/dist/react/component/experienceComponentRuntime.d.ts.map +1 -1
  28. package/dist/react/component/experienceComponentTypes.d.ts +5 -0
  29. package/dist/react/component/experienceComponentTypes.d.ts.map +1 -1
  30. package/dist/react/index.js +100 -94
  31. package/dist/react/index.js.map +1 -1
  32. package/dist/react/react/Experience.d.ts.map +1 -1
  33. package/dist/react/v2/embed/iframeHost.d.ts +2 -1
  34. package/dist/react/v2/embed/iframeHost.d.ts.map +1 -1
  35. package/dist/react/v2/embed/protocol.d.ts +4 -1
  36. package/dist/react/v2/embed/protocol.d.ts.map +1 -1
  37. package/dist/react/v2/experience.d.ts +7 -2
  38. package/dist/react/v2/experience.d.ts.map +1 -1
  39. package/dist/react/v2/types/sessionInteraction.d.ts +30 -0
  40. package/dist/react/v2/types/sessionInteraction.d.ts.map +1 -1
  41. package/dist/sdk/v2/client.js +2 -2
  42. package/dist/sdk/v2/client.js.map +1 -1
  43. package/dist/svelte/Experience.svelte +2 -0
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Experience.d.ts","sourceRoot":"","sources":["../../../src/react/Experience.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE/F,eAAO,MAAM,UAAU,8GA+MrB,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"Experience.d.ts","sourceRoot":"","sources":["../../../src/react/Experience.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE/F,eAAO,MAAM,UAAU,8GAkNrB,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC"}
@@ -2,7 +2,7 @@ import type { CloseEvent, EmbedState } from './protocol';
2
2
  import { type WidgetChromeMode, type WidgetDragMoveEvent, type WidgetDragStartEvent } from './protocol';
3
3
  import type { CharacterSpeechEvent, ConversationMessage, SpeakBehavior, SpeechResult as LegacySpeakResult, UserSpeechBoundaryEvent, UserTranscriptUpdate, UtteranceResult } from '../types/sessionInteraction';
4
4
  import type { PlayerStatus, Session, SessionActivity } from '../types/sessionLaunch';
5
- import type { StartButtonOptions } from '../types/sessionInteraction';
5
+ import type { StartButtonOptions, PlayerTheme } from '../types/sessionInteraction';
6
6
  import type { CompleteSpeechQueuePolicy, SpeechAudioFormat, SpeechInterruptOptions, SpeechPlayEmbedSource, SpeechResult, StreamingSpeechQueuePolicy } from '../speech/types';
7
7
  export type IframeHostEventMap = {
8
8
  close: CloseEvent;
@@ -84,6 +84,7 @@ export type IframeHost = {
84
84
  postParentHello(): void;
85
85
  postLaunch(launch: string, session?: Session | object, chrome?: {
86
86
  readonly startButton?: StartButtonOptions;
87
+ readonly theme?: PlayerTheme;
87
88
  readonly showFeedback?: boolean;
88
89
  }): void;
89
90
  /** @deprecated Prefer {@link IframeHost.postLaunch}. */
@@ -1 +1 @@
1
- {"version":3,"file":"iframeHost.d.ts","sourceRoot":"","sources":["../../../../src/v2/embed/iframeHost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iframeHost.d.ts","sourceRoot":"","sources":["../../../../src/v2/embed/iframeHost.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CharacterSpeechEvent, ConversationMessage, SpeakBehavior, SessionModeChange, UserSpeechBoundaryEvent, UserTranscriptUpdate } from '../types/sessionInteraction';
2
2
  import type { Session, SessionActivity } from '../types/sessionLaunch';
3
- import type { StartButtonOptions } from '../types/sessionInteraction';
3
+ import type { StartButtonOptions, PlayerTheme } from '../types/sessionInteraction';
4
4
  import type { CompleteSpeechQueuePolicy, SpeechAudioFormat, SpeechInterruptOptions, SpeechPlayEmbedSource, StreamingSpeechQueuePolicy } from '../speech/types';
5
5
  export declare const EMBED_MESSAGE_SCHEMA_VERSION: 2;
6
6
  /** Outbound postMessage versions accepted from the player embed. */
@@ -187,6 +187,8 @@ export type EmbedInboundMessage = {
187
187
  readonly session?: Session | object;
188
188
  /** Player chrome from attach — not part of the signed launch string. */
189
189
  readonly startButton?: StartButtonOptions;
190
+ /** Global player chrome theme from attach. */
191
+ readonly theme?: PlayerTheme;
190
192
  /**
191
193
  * When false, player skips Feedback step-through UI (host renders scores).
192
194
  * Default when omitted: true (player shows Feedback).
@@ -357,6 +359,7 @@ export declare function parseOutboundMessage(data: unknown): EmbedOutboundMessag
357
359
  export declare function parseInboundMessage(data: unknown): EmbedInboundMessage | null;
358
360
  export declare function createLaunchMessage(launch: string, session?: Session | object, chrome?: {
359
361
  readonly startButton?: StartButtonOptions;
362
+ readonly theme?: PlayerTheme;
360
363
  readonly showFeedback?: boolean;
361
364
  }): EmbedInboundMessage;
362
365
  /** @deprecated Prefer {@link createLaunchMessage}. */
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../src/v2/embed/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../src/v2/embed/protocol.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@ import type { CloseEvent, EmbedState } from './embed/protocol';
2
2
  import type { CloseButtonOptions, PlayerStatus, Session } from './types/sessionLaunch';
3
3
  import { type ExperienceEventName, type ExperienceEvents } from './experienceEvents';
4
4
  import { type SpeechController } from './speech/speechController';
5
- import { type ConversationMessage, type ConversationProcessorFn, type ExperienceFit, type ExperienceMode, type ListenOnceOptions, type SpeechInputMode, type StartButtonOptions, type StartedEvent, type UserTranscriptUpdate, type UtteranceResult } from './types/sessionInteraction';
5
+ import { type ConversationMessage, type ConversationProcessorFn, type ExperienceFit, type ExperienceMode, type ListenOnceOptions, type SpeechInputMode, type StartButtonOptions, type PlayerTheme, type StartedEvent, type UserTranscriptUpdate, type UtteranceResult } from './types/sessionInteraction';
6
6
  import type { SessionManifest } from './types/sessionManifest';
7
7
  export type { CloseEvent };
8
- export type { CharacterSpeechEvent, CharacterSpeechSource, CharacterSpeechTerminalReason, ConversationMessage, ConversationProcessorContext, ConversationProcessorErrorEvent, ConversationProcessorFn, ConversationProcessorResult, ExperienceFit, ListenOnceOptions, SpeakOptions, TextSpeakResult, SpeechResult as LegacySpeakResult, StartButtonAppearance, StartButtonOptions, StartButtonPlacement, StartButtonShadow, StartButtonSize, StartButtonVariant, StartButtonIconPosition, UserSpeechBoundaryEvent, UserTranscriptUpdate, UtteranceResult } from './types/sessionInteraction';
8
+ export type { CharacterSpeechEvent, CharacterSpeechSource, CharacterSpeechTerminalReason, ConversationMessage, ConversationProcessorContext, ConversationProcessorErrorEvent, ConversationProcessorFn, ConversationProcessorResult, ExperienceFit, ListenOnceOptions, SpeakOptions, TextSpeakResult, SpeechResult as LegacySpeakResult, StartButtonAppearance, StartButtonOptions, StartButtonPlacement, StartButtonShadow, StartButtonSize, StartButtonVariant, StartButtonIconPosition, PlayerTheme, PlayerThemeButton, PlayerThemeColors, PlayerThemeTypography, UserSpeechBoundaryEvent, UserTranscriptUpdate, UtteranceResult } from './types/sessionInteraction';
9
9
  export type { CloseButtonOptions, PlayerStatus, Session, SessionActivity, SessionCapabilities, SessionLaunchResponse, SessionMode } from './types/sessionLaunch';
10
10
  export type { SpeechAudioFormat, SpeechController, SpeechCreateUtteranceOptions, SpeechInterruptOptions, SpeechPlayAudio, SpeechPlayEncodedAudio, SpeechPlayOptions, SpeechPlayPcmAudio, SpeechPlayUrlAudio, SpeechResult, SpeechSpeakOptions, SpeechUtterance } from './speech';
11
11
  export { SPEECH_LIMITS, SpeechBufferTimeoutError, SpeechRuntimeError, SpeechUtteranceClosedError, UnsupportedSpeechOperationError } from './speech';
@@ -78,6 +78,11 @@ export type AttachOptions = {
78
78
  /** Initial scene framing. Change later with {@link Experience.setFit}. */
79
79
  readonly fit?: ExperienceFit;
80
80
  readonly startButton?: StartButtonOptions;
81
+ /**
82
+ * Global player chrome theme (introduction, feedback, shared buttons, panels).
83
+ * Distinct from {@link AttachOptions.startButton} CTA overrides. Presentation only — does not remint.
84
+ */
85
+ readonly theme?: PlayerTheme;
81
86
  /**
82
87
  * When true (default), the Liforma player shows end-of-session Feedback UI.
83
88
  * When false, hosts receive scores via `feedback` / `feedbackFailed` and render their own UX.
@@ -1 +1 @@
1
- {"version":3,"file":"experience.d.ts","sourceRoot":"","sources":["../../../src/v2/experience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"experience.d.ts","sourceRoot":"","sources":["../../../src/v2/experience.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,36 @@ export type StartButtonOptions = {
56
56
  readonly iconPosition?: StartButtonIconPosition;
57
57
  readonly appearance?: StartButtonAppearance;
58
58
  };
59
+ /**
60
+ * Global player chrome theme (modals, shared buttons, panels).
61
+ * Distinct from {@link StartButtonOptions} — start CTA keeps its own overrides.
62
+ */
63
+ export type PlayerThemeColors = {
64
+ readonly background?: string;
65
+ readonly surface?: string;
66
+ readonly surfaceMuted?: string;
67
+ readonly text?: string;
68
+ readonly textMuted?: string;
69
+ readonly primary?: string;
70
+ readonly primaryText?: string;
71
+ readonly border?: string;
72
+ };
73
+ export type PlayerThemeTypography = {
74
+ readonly fontFamily?: string;
75
+ readonly fontWeight?: number;
76
+ readonly fontSizePx?: number;
77
+ };
78
+ export type PlayerThemeButton = {
79
+ readonly borderRadiusPx?: number;
80
+ readonly borderWidthPx?: number;
81
+ readonly shadow?: StartButtonShadow;
82
+ };
83
+ export type PlayerTheme = {
84
+ readonly colors?: PlayerThemeColors;
85
+ readonly typography?: PlayerThemeTypography;
86
+ readonly radiusPx?: number;
87
+ readonly button?: PlayerThemeButton;
88
+ };
59
89
  export type SpeakBehavior = 'enqueue' | 'interrupt';
60
90
  export type SpeakOptions = {
61
91
  readonly text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sessionInteraction.d.ts","sourceRoot":"","sources":["../../../../src/v2/types/sessionInteraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionInteraction.d.ts","sourceRoot":"","sources":["../../../../src/v2/types/sessionInteraction.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var Liforma=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(){if(globalThis.__LIFORMA_STACK===`local`)return!0;if(typeof location>`u`)return!1;try{return new URLSearchParams(location.search).get(`stack`)===`local`}catch{return!1}}var n=`https://api.liforma.ai`,r=`http://localhost:3001`;function i(){let e=globalThis.__LIFORMA_API_BASE_URL;if(e?.trim())return e.trim().replace(/\/$/,``);if(typeof document>`u`)return null;let t=(document.querySelector(`script[data-liforma-sdk][src*="client.js"]`)??document.querySelector(`script[src*="/sdk/v2/client.js"]`))?.getAttribute(`data-api-base-url`)?.trim();return t?t.replace(/\/$/,``):null}function a(){return i()||(t()?r:n)}var o=class extends Error{code;requestId;status;details;constructor(e,t){super(e,t?.cause===void 0?void 0:{cause:t.cause}),this.name=`LiformaError`,this.code=t?.code?.trim()||`UNKNOWN`,this.requestId=t?.requestId?.trim()||void 0,this.status=t?.status,this.details=t?.details}};function s(e){if(!(!e||typeof e!=`object`||Array.isArray(e)))return e}function c(e,t,n){let r=n?.get(`Liforma-Request-Id`)?.trim()||void 0,i;try{i=JSON.parse(t)}catch{}let a=i?.error&&typeof i.error==`object`?i.error:void 0,c=a?.code??i?.code,l=a?.message??i?.message,u=a?.requestId??i?.requestId??r,d=typeof c==`string`&&c.trim()?c.trim():`HTTP_ERROR`,f=typeof l==`string`&&l.trim()?l.trim():t.trim().slice(0,500)||`Request failed (${e})`,p=typeof u==`string`&&u.trim()?u.trim():r,{code:m,message:h,requestId:g,..._}=s(a)??s(i)??{};return new o(f,{code:d,requestId:p,status:e,details:Object.keys(_).length>0?_:void 0})}var l=128,u=/[\u0000-\u001f\u007f]/g;function d(e){if(!e)return;let t=e.replace(u,``).trim();if(t)return t.slice(0,l)}function f(e){let t=new URLSearchParams((e??``).startsWith(`?`)?(e??``).slice(1):e??``);return{...d(t.get(`utm_source`))?{utmSource:d(t.get(`utm_source`))}:{},...d(t.get(`utm_medium`))?{utmMedium:d(t.get(`utm_medium`))}:{},...d(t.get(`utm_campaign`))?{utmCampaign:d(t.get(`utm_campaign`))}:{},...d(t.get(`utm_content`))?{utmContent:d(t.get(`utm_content`))}:{},...d(t.get(`utm_term`))?{utmTerm:d(t.get(`utm_term`))}:{}}}function p(e){if(e===!1)return;if(e&&typeof e==`object`){let t={...d(e.utmSource)?{utmSource:d(e.utmSource)}:{},...d(e.utmMedium)?{utmMedium:d(e.utmMedium)}:{},...d(e.utmCampaign)?{utmCampaign:d(e.utmCampaign)}:{},...d(e.utmContent)?{utmContent:d(e.utmContent)}:{},...d(e.utmTerm)?{utmTerm:d(e.utmTerm)}:{},...d(e.referrer)?{referrer:d(e.referrer)}:{}};return Object.keys(t).length?t:void 0}if(typeof window>`u`)return;let t=f(window.location?.search),n=d(document.referrer||void 0),r={...t,...n?{referrer:n}:{}};return Object.keys(r).length?r:void 0}function m(e){let t=e.locale?.trim();if(t)return t;let n=e.language?.trim();if(n)return n;if(typeof navigator<`u`&&navigator.language?.trim())return navigator.language.trim()}function h(e){let t=e.secondaryLocale?.trim(),n=e.learningLocale?.trim();if(t&&n&&t!==n)throw Error(`secondaryLocale and learningLocale disagree; pass only one or make them equal.`);return t||n||void 0}function g(e,t){let n=e.trim();if(!n)throw Error(`sessionEndpoint must not be empty.`);if(typeof location>`u`)throw Error(`sessionEndpoint is only available in a browser.`);let r=new URL(n,location.href);if(r.origin!==location.origin)throw Error(`sessionEndpoint must be same-origin.`);let i=t.experienceId.trim();if(!i)throw Error(`sessionEndpoint requires experienceId.`);let a=m(t),o=h(t),s=t.idempotencyKey?.trim();return{url:r.toString(),init:{method:`POST`,credentials:`same-origin`,headers:{Accept:`application/json`,"Content-Type":`application/json`,...s?{"Idempotency-Key":s}:{}},body:JSON.stringify({experienceId:i,...a?{locale:a}:{},...o?{secondaryLocale:o}:{},...t.mode?{mode:t.mode}:{},...t.speechInputMode?{speechInputMode:t.speechInputMode}:{},...t.speechOnly===void 0?{}:{speechOnly:t.speechOnly},...(()=>{let e=p(t.attribution);return e?{attribution:e}:{}})()})}}}function _(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function v(e){return typeof e==`boolean`}function y(e){if(!_(e))return null;let t=e.speech,n=e.conversation,r=e.avatar,i=e.tools;return!_(t)||!_(n)||!_(r)||!_(i)||!v(t.input)||!v(t.output)||!v(t.externalAudio)||!v(n.managed)||!v(r.enabled)||!v(i.enabled)?null:{speech:{input:t.input,output:t.output,externalAudio:t.externalAudio},conversation:{managed:n.managed},avatar:{enabled:r.enabled},tools:{enabled:i.enabled}}}function b(e){return!_(e)||!v(e.avatar)||!v(e.speechInput)||!v(e.speechOutput)||!v(e.tools)||!v(e.externalAudio)?null:{speech:{input:e.speechInput,output:e.speechOutput,externalAudio:e.externalAudio},conversation:{managed:!0},avatar:{enabled:e.avatar},tools:{enabled:e.tools}}}function x(e){return y(e)??b(e)}function S(e){if(!_(e))throw Error(`Session Launch response is missing session.`);let t=typeof e.id==`string`?e.id.trim():``,n=typeof e.experienceId==`string`?e.experienceId.trim():``,r=typeof e.experienceRevisionId==`string`?e.experienceRevisionId.trim():``,i=typeof e.expiresAt==`string`?e.expiresAt.trim():``,a=typeof e.locale==`string`?e.locale.trim():``,o=typeof e.secondaryLocale==`string`&&e.secondaryLocale.trim()?e.secondaryLocale.trim():void 0,s=e.mode===`conversation`||e.mode===`presenter`?e.mode:null,c=x(e.capabilities),l=C(e.localeVoiceFallbacks),u=e.status===`active`||e.status===`ended`?e.status:void 0,d=typeof e.createdAt==`string`&&e.createdAt.trim()?e.createdAt.trim():void 0;if(!t||!n||!r||!i||!a||!s||!c)throw Error(`Session Launch response has an invalid session object.`);return{id:t,experienceId:n,experienceRevisionId:r,expiresAt:i,locale:a,...o?{secondaryLocale:o}:{},mode:s,capabilities:c,...l?{localeVoiceFallbacks:l}:{},...u?{status:u}:{},...d?{createdAt:d}:{}}}function C(e){if(!Array.isArray(e)||e.length===0)return;let t=[];for(let n of e){if(!_(n))continue;let e=n.axis===`locale`||n.axis===`secondaryLocale`?n.axis:null,r=typeof n.requested==`string`?n.requested.trim():``,i=typeof n.resolved==`string`?n.resolved.trim():``;!e||!r||!i||n.reason!==`voice_unsupported`||t.push({axis:e,requested:r,resolved:i,reason:`voice_unsupported`})}return t.length>0?t:void 0}function w(e){let t=e.localeVoiceFallbacks;if(t?.length)for(let e of t){let t=e.axis===`secondaryLocale`?`secondaryLocale`:`locale`;console.warn(`[liforma] Session ${t} fell back to ${e.resolved} because the voice does not support ${e.requested}.`)}}function T(e){if(!_(e))throw Error(`Session Launch response must be a JSON object.`);let t=typeof e.launch==`string`?e.launch.trim():``;if(!t)throw Error(`Session Launch response is missing launch.`);let n=S(e.session);return w(n),{session:n,launch:t}}function E(){try{if(typeof globalThis.location?.origin==`string`&&globalThis.location.origin)return globalThis.location.origin}catch{}}function D(e){return e?e.trim().toUpperCase().replace(/-/g,`_`):``}function O(e,t){let n=E(),r=D(t.code),i=t.message.trim(),a=t.details??{};if(r===`ORIGIN_NOT_ALLOWED`||/^Origin not allowed/i.test(i)&&n){if(i.includes(e)&&i.includes(`allowed origin`))return t;let r=typeof a.origin==`string`&&a.origin||n||`(unknown origin)`;return new o(`Your origin ${r} is not an allowed origin for experience ${e}. If you own this experience, sign in to the Liforma developer portal (app.liforma.ai), open Workspace → Settings → Origins, add ${r} to the list of allowed origins, and ensure “Allow public client-only embeds” is enabled.`,{code:`ORIGIN_NOT_ALLOWED`,requestId:t.requestId,status:t.status,details:a})}return r===`BROWSER_EMBEDS_DISABLED`||/^Browser embeds are not enabled/i.test(i)?i.includes(`Allow public client-only embeds`)?t:new o(`Browser embeds are not enabled for experience ${e}. If you own this experience, sign in to the Liforma developer portal (app.liforma.ai), open Workspace → Settings → Origins, and enable “Allow public client-only embeds”.`,{code:`BROWSER_EMBEDS_DISABLED`,requestId:t.requestId,status:t.status,details:a}):r===`EXPERIENCE_UNAVAILABLE`||/^Experience is not available\.?$/i.test(i)||/^Unknown experience\.?$/i.test(i)?i.includes(`No playable experience found`)?t:new o(`No playable experience found for “${e}”. Check that the experience id is correct (it should look like exp_…), and that the experience exists and is published in the Liforma developer portal (app.liforma.ai). Deleted, archived, and unpublished experiences cannot be started from a browser embed.`,{code:`EXPERIENCE_UNAVAILABLE`,requestId:t.requestId,status:t.status,details:a}):t}function ee(e){let t=e?.locale?.trim();if(t)return t;let n=e?.language?.trim();if(n)return n;if(typeof navigator<`u`&&navigator.language?.trim())return navigator.language.trim()}function k(e){let t=e?.secondaryLocale?.trim(),n=e?.learningLocale?.trim();if(t&&n&&t!==n)throw new o(`secondaryLocale and learningLocale disagree; pass only one or make them equal.`,{code:`INVALID_BODY`});return t||n||void 0}function te(e,t){let n={experienceId:e},r=ee(t);r&&(n.locale=r);let i=k(t);i&&(n.secondaryLocale=i),t?.mode&&(n.mode=t.mode),t?.speechInputMode&&(n.speechInputMode=t.speechInputMode),t?.speechOnly!==void 0&&(n.speechOnly=t.speechOnly);let a=p(t?.attribution);return a&&(n.attribution=a),n}async function A(e,t){let n=a(),r=t?.idempotencyKey?.trim(),i=await fetch(`${n}/v1/browser-sessions`,{method:`POST`,headers:{"Content-Type":`application/json`,...r?{"Idempotency-Key":r}:{}},body:JSON.stringify(te(e,t))});if(!i.ok){let t=await i.text();throw O(e,c(i.status,t,i.headers))}let s;try{s=await i.json()}catch{throw new o(`Browser session mint returned invalid JSON.`,{code:`INVALID_RESPONSE`,status:i.status,requestId:i.headers.get(`Liforma-Request-Id`)??void 0})}return T(s)}async function j(e,t){let n=g(e,t),r=new AbortController,i=()=>r.abort(t.signal?.reason);t.signal?.aborted?i():t.signal?.addEventListener(`abort`,i,{once:!0});let a=globalThis.setTimeout(()=>r.abort(new DOMException(`Session endpoint timed out.`,`TimeoutError`)),t.timeoutMs??3e4),s;try{s=await fetch(n.url,{...n.init,signal:r.signal})}finally{globalThis.clearTimeout(a),t.signal?.removeEventListener(`abort`,i)}if(!s.ok){let e=await s.text();throw c(s.status,e,s.headers)}if(!s.headers.get(`content-type`)?.toLowerCase().includes(`application/json`))throw new o(`Session endpoint must return a JSON Session Launch response.`,{code:`INVALID_RESPONSE`,status:s.status,requestId:s.headers.get(`Liforma-Request-Id`)??void 0});let l;try{l=await s.json()}catch{throw new o(`Session endpoint returned invalid JSON.`,{code:`INVALID_RESPONSE`,status:s.status,requestId:s.headers.get(`Liforma-Request-Id`)??void 0})}return T(l)}function M(e){return typeof e!=`object`||!e?!1:typeof e[Symbol.asyncIterator]==`function`}function N(e){if(typeof e==`string`){let t=e.trim();if(!t)throw Error(`conversationProcessor returned empty text.`);return{text:t}}let t=e.text.trim();if(!t)throw Error(`conversationProcessor returned empty text.`);return{text:t,...e.characterId?{characterId:e.characterId}:{},...e.behavior?{behavior:e.behavior}:{}}}async function P(e,t){let n=await e(t);return M(n)?{kind:`stream`,stream:n}:{kind:`complete`,speech:N(n)}}var ne=`3002`;function F(e){let t=new URL(e);return t.hostname===`localhost`||t.hostname===`127.0.0.1`?`Cannot connect to the Liforma player at ${e} — nothing is listening on port ${t.port||ne}. Start the player dev server in player.liforma.ai (npm run dev).`:`Cannot connect to the Liforma player at ${e}. The embed did not load; check your network connection and player URL configuration.`}async function I(e,t){try{await fetch(e,{method:`GET`,mode:`no-cors`,signal:AbortSignal.timeout(8e3)})}catch{throw Error(F(t))}}function L(e,t,n,r){try{r&&r.length>0?e.postMessage(t,n,r):e.postMessage(t,n)}catch(e){throw e instanceof DOMException&&e.name===`SecurityError`?Error(F(n),{cause:e}):e}}var re=new Set([1,2]);function ie(e){return typeof e==`number`&&re.has(e)}var R=new Set(`close.stateUpdate.commandResult.userTranscript.characterSpeechStarted.characterSpeechEnded.characterFocusChanged.conversationUpdate.listeningState.userSpeechStarted.userSpeechEnded.modeChange.activityChange.feedback.feedbackFailed.message.started.embedReady.widgetReady.widgetExpand.widgetCollapse.widgetAudioSettings.widgetDragStart.widgetDragMove.widgetDragEnd.fullWindow`.split(`.`));function ae(e){if(!e||typeof e!=`object`)return null;let t=e;if(!ie(t.schemaVersion)||!t.type||!R.has(t.type))return null;if(t.type===`embedReady`||t.type===`widgetReady`||t.type===`widgetExpand`||t.type===`widgetCollapse`)return t;if(t.type===`fullWindow`){let e=t.payload;return!e||typeof e!=`object`||typeof e.active!=`boolean`?null:t}if(t.type===`widgetAudioSettings`){let e=t.payload;return!e||typeof e!=`object`||typeof e.open!=`boolean`?null:t}if(t.type===`widgetDragStart`||t.type===`widgetDragEnd`){let e=t.payload;return!e||typeof e!=`object`||typeof e.pointerId!=`number`||!Number.isFinite(e.pointerId)?null:t}if(t.type===`widgetDragMove`){let e=t.payload;if(!e||typeof e!=`object`)return null;let{pointerId:n,dx:r,dy:i}=e;return typeof n!=`number`||!Number.isFinite(n)||typeof r!=`number`||!Number.isFinite(r)||typeof i!=`number`||!Number.isFinite(i)?null:t}let n=t.payload;return!n||typeof n!=`object`?null:t}function oe(e,t,n){let r=e.trim();if(!r)throw Error(`createLaunchMessage requires a non-empty launch string.`);let i=n?.startButton,a=n?.showFeedback;return{type:`launch`,schemaVersion:2,payload:{launch:r,...t===void 0?{}:{session:t},...i?{startButton:i}:{},...a===void 0?{}:{showFeedback:a}}}}function se(){return{type:`parentHello`,schemaVersion:2}}function ce(e){return{type:`widgetSetChrome`,schemaVersion:2,payload:{mode:e}}}function le(){return{type:`widgetToggleAudioSettings`,schemaVersion:2,payload:{}}}var ue=`2147483000`;function de(e){let{style:t}=e;return{position:t.position,top:t.top,right:t.right,bottom:t.bottom,left:t.left,inset:t.inset,width:t.width,height:t.height,zIndex:t.zIndex,margin:t.margin,borderRadius:t.borderRadius,maxWidth:t.maxWidth,maxHeight:t.maxHeight}}function z(e){let{style:t}=e;t.position=`fixed`,t.top=`0`,t.right=`0`,t.bottom=`0`,t.left=`0`,t.inset=`0`,t.width=`100vw`,t.width=`100dvw`,t.height=`100vh`,t.height=`100dvh`,t.zIndex=ue,t.margin=`0`,t.borderRadius=`0`,t.maxWidth=`none`,t.maxHeight=`none`,e.dataset.liformaFullWindow=`1`}function fe(e,t){if(delete e.dataset.liformaFullWindow,!t){e.style.position=``,e.style.top=``,e.style.right=``,e.style.bottom=``,e.style.left=``,e.style.inset=``,e.style.width=``,e.style.height=``,e.style.zIndex=``,e.style.margin=``,e.style.borderRadius=``,e.style.maxWidth=``,e.style.maxHeight=``;return}let{style:n}=e;n.position=t.position,n.top=t.top,n.right=t.right,n.bottom=t.bottom,n.left=t.left,n.inset=t.inset,n.width=t.width,n.height=t.height,n.zIndex=t.zIndex,n.margin=t.margin,n.borderRadius=t.borderRadius,n.maxWidth=t.maxWidth,n.maxHeight=t.maxHeight}function pe(e){return e}function B(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`cmd_${crypto.randomUUID().replace(/-/g,``).slice(0,12)}`:`cmd_${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}var me=3e4;function V(e){let t=e.container;getComputedStyle(t).position===`static`&&(t.style.position=`relative`);let n=document.createElement(`iframe`);n.src=e.src,n.title=`Liforma experience`,n.setAttribute(`allow`,`microphone; autoplay; clipboard-read; clipboard-write`),n.style.cssText=e.transparent?`display:block;position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;`:`display:block;position:absolute;inset:0;width:100%;height:100%;border:0;background:#030508;`,e.transparent&&n.setAttribute(`allowtransparency`,`true`);let r=!1,i=!1,a=null,o=t.closest(`.liforma-experience-shell`)instanceof HTMLElement?t.closest(`.liforma-experience-shell`):t,s=t=>{i!==t&&(i=t,t?(a=de(o),z(o)):(fe(o,a),a=null),e.onFullWindowChange?.(t))},c=new Map,l=null,u=0,d=0,f=[],p=null,m=null,h=new Promise((e,t)=>{p=e,m=t}),g=()=>{for(let e of f)window.clearTimeout(e);f.length=0},_=t=>{if(r)return;let i=Date.now();if(d>0&&i-d<250)return;d=i,g();let a=oe(t.launch,t.session,t.chrome),o=()=>{if(r)return;let t=n.contentWindow;t&&L(t,a,e.playerOrigin)};o();for(let e=1;e<=12;e+=1)f.push(window.setTimeout(o,e*75))},v=()=>{r||!l||_(l)},y=()=>{if(u+=1,u===1){I(e.src,e.playerOrigin).then(()=>p?.(),e=>m?.(e instanceof Error?e:Error(String(e))));return}d=0,v()},b=()=>{u>0||m?.(Error(F(e.playerOrigin)))};n.addEventListener(`load`,y),n.addEventListener(`error`,b);let x=t=>{if(r||t.source!==n.contentWindow||t.origin!==e.playerOrigin)return;let i=ae(t.data);if(i)switch(i.type){case`close`:e.onClose?.(i.payload);break;case`stateUpdate`:e.onPlayerStatusChange?.(i.payload.state),e.onStateUpdate?.(i.payload.state);break;case`commandResult`:{let e=c.get(i.payload.correlationId);if(!e)return;c.delete(i.payload.correlationId),i.payload.ok?e.resolve(i.payload.result):e.reject(Error(i.payload.error??`Command failed.`));break}case`userTranscript`:e.onUserTranscript?.(i.payload);break;case`characterSpeechStarted`:e.onCharacterSpeechStarted?.(i.payload);break;case`characterSpeechEnded`:e.onCharacterSpeechEnded?.(i.payload);break;case`characterFocusChanged`:e.onCharacterFocusChanged?.(i.payload);break;case`conversationUpdate`:e.onConversationUpdate?.(i.payload.conversation);break;case`listeningState`:e.onListeningState?.(i.payload.listening);break;case`userSpeechStarted`:e.onUserSpeechStarted?.(i.payload);break;case`userSpeechEnded`:e.onUserSpeechEnded?.(i.payload);break;case`modeChange`:e.onActivityChange?.(pe(i.payload.mode));break;case`activityChange`:e.onActivityChange?.(i.payload.activity);break;case`feedback`:e.onFeedback?.(i.payload);break;case`feedbackFailed`:e.onFeedbackFailed?.(i.payload);break;case`message`:e.onMessage?.(i.payload);break;case`started`:e.onStarted?.(i.payload);break;case`embedReady`:v();break;case`widgetReady`:e.onWidgetReady?.();break;case`widgetExpand`:e.onWidgetExpand?.();break;case`widgetCollapse`:e.onWidgetCollapse?.();break;case`widgetAudioSettings`:e.onWidgetAudioSettings?.(i.payload.open);break;case`widgetDragStart`:e.onWidgetDragStart?.(i.payload);break;case`widgetDragMove`:e.onWidgetDragMove?.(i.payload);break;case`widgetDragEnd`:e.onWidgetDragEnd?.(i.payload);break;case`fullWindow`:s(i.payload.active);break}};if(window.addEventListener(`message`,x),t.replaceChildren(n),t.clientHeight<2&&!t.style.minHeight){let e=getComputedStyle(t).minHeight;(e===`0px`||e===`auto`)&&(t.style.minHeight=`480px`)}let S=(t,i)=>{if(r)return;let a=n.contentWindow;if(!a)throw Error(F(e.playerOrigin));L(a,t,e.playerOrigin,i)},C=(e,t=12e4,n)=>{let r=e.type!==`parentHello`&&e.payload&&`correlationId`in e.payload?e.payload.correlationId:B();return e.type!==`parentHello`&&e.payload&&`correlationId`in e.payload||e.type!==`parentHello`&&e.payload&&(e.payload.correlationId=r),new Promise((i,a)=>{c.set(r,{resolve:e=>i(e),reject:a}),S(e,n),setTimeout(()=>{c.has(r)&&(c.delete(r),a(Error(`Timed out waiting for player command result.`)))},t)})};return{waitForLoad(){return h},postParentHello(){S(se())},postLaunch(e,t,n){r||(l={launch:e,session:t,chrome:n},d=0,_(l))},postManifest(e){if(typeof e==`string`){this.postLaunch(e);return}if(e&&typeof e==`object`&&typeof e.launch==`string`){let t=String(e.launch),n=e.session;this.postLaunch(t,n);return}throw Error(`postManifest is deprecated; use postLaunch with an opaque launch string from SessionLaunchResponse.`)},postWidgetSetChrome(e){S(ce(e))},postWidgetToggleAudioSettings(){S(le())},speak(e){return C({type:`speak`,schemaVersion:2,payload:{correlationId:B(),text:e.text,...e.characterId?{characterId:e.characterId}:{},...e.behavior?{behavior:e.behavior}:{}}})},startListening(){return C({type:`startListening`,schemaVersion:2,payload:{correlationId:B()}})},stopListening(){return C({type:`stopListening`,schemaVersion:2,payload:{correlationId:B()}})},listenOnce(e){return C({type:`listenOnce`,schemaVersion:2,payload:{correlationId:B(),...e?.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}}})},async speakProcessorStream(e,t){let n=B(),r=B(),i=(await C({type:`speakStreamStart`,schemaVersion:2,payload:{correlationId:n,...t?.characterId?{characterId:t.characterId}:{},...t?.behavior?{behavior:t.behavior}:{}}})).streamId;try{for await(let n of e){if(t?.signal?.aborted)throw new DOMException(`Processor stream aborted.`,`AbortError`);n&&S({type:`speakStreamChunk`,schemaVersion:2,payload:{streamId:i,text:n}})}if(t?.signal?.aborted)throw new DOMException(`Processor stream aborted.`,`AbortError`);return await C({type:`speakStreamEnd`,schemaVersion:2,payload:{correlationId:r,streamId:i}})}catch(e){try{await C({type:`speakStreamEnd`,schemaVersion:2,payload:{correlationId:r,streamId:i}})}catch{}throw e}},speechPlay(e){let t=B(),n=[];return(e.source.kind===`pcm`||e.source.kind===`encoded`)&&n.push(e.source.data),C({type:`speechPlay`,schemaVersion:2,payload:{correlationId:t,source:e.source,...e.characterId?{characterId:e.characterId}:{},...e.transcript===void 0?{}:{transcript:e.transcript},...e.history?{history:e.history}:{},...e.queue?{queue:e.queue}:{}}},12e4,n)},speechUtteranceBegin(e){return C({type:`speechUtteranceBegin`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId,format:e.format,queue:e.queue,...e.characterId?{characterId:e.characterId}:{},...e.transcript===void 0?{}:{transcript:e.transcript}}})},speechUtteranceWrite(e){return C({type:`speechUtteranceWrite`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId,audio:e.audio,byteLength:e.byteLength}},me,[e.audio])},speechUtteranceSetTranscript(e){return C({type:`speechUtteranceSetTranscript`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId,transcript:e.transcript}})},speechUtteranceClose(e){return C({type:`speechUtteranceClose`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId,...e.transcript===void 0?{}:{transcript:e.transcript},...e.history?{history:e.history}:{}}})},speechUtteranceCancel(e){return C({type:`speechUtteranceCancel`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId}})},speechInterrupt(e){return C({type:`speechInterrupt`,schemaVersion:2,payload:{correlationId:B(),...e}})},getConversation(){return C({type:`getConversation`,schemaVersion:2,payload:{correlationId:B()}})},focusCharacter(e){return C({type:`focusCharacter`,schemaVersion:2,payload:{correlationId:B(),characterId:e}})},setFit(e){return C({type:`setFit`,schemaVersion:2,payload:{correlationId:B(),fit:e}})},conversion(e){return C({type:`conversion`,schemaVersion:2,payload:{correlationId:B(),key:e}})},destroy(){if(!r){r=!0,i&&s(!1);for(let e of c.values())e.reject(Error(`Iframe host destroyed.`));c.clear(),g(),l=null,n.removeEventListener(`load`,y),n.removeEventListener(`error`,b),window.removeEventListener(`message`,x),n.remove()}}}}function he(e){let t,n=!1,r=!1,i=()=>{r||!n||t===void 0||(r=!0,e(t))};return{setValue(e){t=e,i()},markReady(){n=!0,i()}}}var ge=`https://player.liforma.ai/embed`,_e=`http://localhost:3002/embed`;function ve(){let e=globalThis.__LIFORMA_PLAYER_EMBED_URL;if(e?.trim())return e.trim().replace(/\/$/,``);if(typeof document>`u`)return null;let t=(document.querySelector(`script[data-liforma-sdk][src*="client.js"]`)??document.querySelector(`script[src*="/sdk/v2/client.js"]`))?.getAttribute(`data-player-embed-url`)?.trim();return t?t.replace(/\/$/,``):null}function ye(){let e=ve();return e?e.endsWith(`/embed`)?e:`${e}/embed`:t()?_e:ge}function H(e,t){return e?.trim()||t?.trim()||void 0}function be(e,t,n,r,i,a,o,s){let c=(e??ye()).replace(/\/$/,``),l=c.endsWith(`/embed`)?c:`${c}/embed`,u=new URL(l),d=n?.trim();d&&(u.searchParams.set(`backdropId`,d),u.searchParams.set(`locationId`,d));let f=r?.trim();return f&&u.searchParams.set(`avatarId`,f),(i===`face`||i===`medium`)&&u.searchParams.set(`fit`,i),a===`widget`&&u.searchParams.set(`ui`,`widget`),o&&u.searchParams.set(`close`,`1`),t&&u.searchParams.set(`debug`,`true`),(s===2||s===3||s===4)&&u.searchParams.set(`cast`,String(s)),xe(u.toString())}function xe(e){if(typeof location>`u`)return e;let t=new URL(e);return t.searchParams.set(`parentOrigin`,location.origin),t.toString()}function Se(e){return new URL(e).origin}function Ce(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`evt_${crypto.randomUUID().replace(/-/g,``).slice(0,12)}`:`evt_${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}function we(e,t,n){return{id:Ce(),type:e,sessionId:t,timestamp:new Date().toISOString(),data:n}}function Te(){return{ready:new Set,started:new Set,userTranscript:new Set,userSpeechStarted:new Set,userSpeechEnded:new Set,characterSpeechStarted:new Set,characterSpeechEnded:new Set,characterFocusChanged:new Set,conversationUpdate:new Set,message:new Set,listeningState:new Set,activityChange:new Set,feedback:new Set,feedbackFailed:new Set,conversationProcessorError:new Set}}function Ee(e,t,n){return e[t].add(n),()=>e[t].delete(n)}function U(e,t,n){for(let r of e[t])r(n)}function De(e){for(let t of Object.keys(e))e[t].clear()}function Oe(e){return`data`in e&&`format`in e&&e.format!=null&&!(`track`in e)}function W(e){return`url`in e&&typeof e.url==`string`}function G(e){if(!(`track`in e))return!1;let t=e.track;return typeof t!=`object`||!t?!1:typeof MediaStreamTrack<`u`&&t instanceof MediaStreamTrack?!0:`kind`in t&&`readyState`in t}function K(e){return!Oe(e)&&!W(e)&&!G(e)&&`encoding`in e&&typeof e.encoding==`string`}var ke=[8e3,16e3,22050,24e3,44100,48e3],q={MAX_CHUNK_BYTES:64*1024,RECOMMENDED_CHUNK_MS_MIN:20,RECOMMENDED_CHUNK_MS_MAX:200,MAX_BUFFERED_AUDIO_MS:8e3,PLAYBACK_JITTER_BUFFER_MS:150,PLAYBACK_JITTER_BUFFER_MS_MIN:80,PLAYBACK_JITTER_BUFFER_MS_MAX:250,MAX_UTTERANCE_DURATION_MS:9e4,MAX_PENDING_WRITES:8,DEFAULT_WRITE_TIMEOUT_MS:5e3},Ae=class extends Error{operation;requiredCapability;name=`UnsupportedSpeechOperationError`;constructor(e,t){super(`Speech operation "${e}" requires capability "${t}".`),this.operation=e,this.requiredCapability=t}},J=class extends Error{name=`SpeechUtteranceClosedError`;constructor(e=`Cannot write to a closed or cancelled speech utterance.`){super(e)}},Y=class extends Error{name=`SpeechRuntimeError`;constructor(e,t){super(e,t)}},X=class extends Error{name=`SpeechBufferTimeoutError`;constructor(e=`Timed out waiting for speech buffer capacity.`){super(e)}};function je(e=`none`){return{mode:e,trackedDurationMs:0,fallbackDurationMs:0}}function Me(e){return ke.includes(e)}function Ne(e){if(e.encoding!==`pcm_s16le`)throw new Y(`Unsupported audio encoding: ${e.encoding}`);if(e.channels!==1)throw new Y(`Unsupported channel count: ${e.channels}`);if(!Me(e.sampleRate))throw new Y(`Unsupported sample rate: ${e.sampleRate}`)}function Pe(e){if(Oe(e)){Ne(e.format);return}if(W(e)){if(!e.url.trim())throw new Y(`Audio URL must be non-empty.`);if(e.sampleRate!==void 0&&!Me(e.sampleRate))throw new Y(`Unsupported sample rate: ${e.sampleRate}`);return}if(G(e)){if(e.track.kind!==`audio`)throw new Y(`speech.play track must be an audio MediaStreamTrack.`);if(e.sampleRate!==void 0&&!Me(e.sampleRate))throw new Y(`Unsupported sample rate: ${e.sampleRate}`);return}if(K(e)){let t=e.encoding.trim().toLowerCase();if(!t)throw new Y(`Encoded audio MIME type is required.`);if(t===`pcm_s16le`)throw new Y(`Use format: { encoding: "pcm_s16le", … } for raw PCM.`);if(e.sampleRate!==void 0&&!Me(e.sampleRate))throw new Y(`Unsupported sample rate: ${e.sampleRate}`);return}throw new Y(`Unsupported speech.play audio shape.`)}function Fe(e){if(e.format)return Ne(e.format),e.format;if(e.track){let t={encoding:`pcm_s16le`,sampleRate:e.sampleRate??24e3,channels:1};return Ne(t),t}throw new Y(`createUtterance requires format or track.`)}function Ie(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Le(e){return e===`replace-active`||e===`replace-all`?`interrupt`:`enqueue`}function Re(e){let t=new Uint8Array(e.length*2),n=new DataView(t.buffer);for(let t=0;t<e.length;t++){let r=Math.max(-1,Math.min(1,e[t]));n.setInt16(t*2,r<0?r*32768:r*32767,!0)}return t}function ze(e,t,n,r,i){let a=-.5*e+1.5*t-1.5*n+.5*r,o=e-2.5*t+2*n-.5*r,s=-.5*e+.5*n,c=t;return((a*i+o)*i+s)*i+c}function Be(e,t){if(!(e>0)||!(t>0))throw Error(`Resampler rates must be positive`);if(e===t)return{fromRate:e,toRate:t,push(e){return e},flush(){return new Float32Array}};let n=e/t,r=new Float32Array,i=0;return{fromRate:e,toRate:t,push(e){if(e.length===0)return new Float32Array;let t=new Float32Array(r.length+e.length);if(t.set(r),t.set(e,r.length),r=t,r.length<4)return new Float32Array;let a=[];for(;i+2<r.length-1;){let e=Math.floor(i),t=i-e,o=Math.max(0,e-1),s=Math.min(r.length-1,e+1),c=Math.min(r.length-1,e+2);a.push(ze(r[o],r[e],r[s],r[c],t)),i+=n}let o=Math.max(0,Math.floor(i)-1);return o>0&&(r=r.subarray(o),i-=o),a.length?Float32Array.from(a):new Float32Array},flush(){return r.length===0?new Float32Array:(r=new Float32Array,i=0,new Float32Array)}}}var Ve=`liforma-pcm-capture`,He=`
1
+ var Liforma=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(){if(globalThis.__LIFORMA_STACK===`local`)return!0;if(typeof location>`u`)return!1;try{return new URLSearchParams(location.search).get(`stack`)===`local`}catch{return!1}}var n=`https://api.liforma.ai`,r=`http://localhost:3001`;function i(){let e=globalThis.__LIFORMA_API_BASE_URL;if(e?.trim())return e.trim().replace(/\/$/,``);if(typeof document>`u`)return null;let t=(document.querySelector(`script[data-liforma-sdk][src*="client.js"]`)??document.querySelector(`script[src*="/sdk/v2/client.js"]`))?.getAttribute(`data-api-base-url`)?.trim();return t?t.replace(/\/$/,``):null}function a(){return i()||(t()?r:n)}var o=class extends Error{code;requestId;status;details;constructor(e,t){super(e,t?.cause===void 0?void 0:{cause:t.cause}),this.name=`LiformaError`,this.code=t?.code?.trim()||`UNKNOWN`,this.requestId=t?.requestId?.trim()||void 0,this.status=t?.status,this.details=t?.details}};function s(e){if(!(!e||typeof e!=`object`||Array.isArray(e)))return e}function c(e,t,n){let r=n?.get(`Liforma-Request-Id`)?.trim()||void 0,i;try{i=JSON.parse(t)}catch{}let a=i?.error&&typeof i.error==`object`?i.error:void 0,c=a?.code??i?.code,l=a?.message??i?.message,u=a?.requestId??i?.requestId??r,d=typeof c==`string`&&c.trim()?c.trim():`HTTP_ERROR`,f=typeof l==`string`&&l.trim()?l.trim():t.trim().slice(0,500)||`Request failed (${e})`,p=typeof u==`string`&&u.trim()?u.trim():r,{code:m,message:h,requestId:g,..._}=s(a)??s(i)??{};return new o(f,{code:d,requestId:p,status:e,details:Object.keys(_).length>0?_:void 0})}var l=128,u=/[\u0000-\u001f\u007f]/g;function d(e){if(!e)return;let t=e.replace(u,``).trim();if(t)return t.slice(0,l)}function f(e){let t=new URLSearchParams((e??``).startsWith(`?`)?(e??``).slice(1):e??``);return{...d(t.get(`utm_source`))?{utmSource:d(t.get(`utm_source`))}:{},...d(t.get(`utm_medium`))?{utmMedium:d(t.get(`utm_medium`))}:{},...d(t.get(`utm_campaign`))?{utmCampaign:d(t.get(`utm_campaign`))}:{},...d(t.get(`utm_content`))?{utmContent:d(t.get(`utm_content`))}:{},...d(t.get(`utm_term`))?{utmTerm:d(t.get(`utm_term`))}:{}}}function p(e){if(e===!1)return;if(e&&typeof e==`object`){let t={...d(e.utmSource)?{utmSource:d(e.utmSource)}:{},...d(e.utmMedium)?{utmMedium:d(e.utmMedium)}:{},...d(e.utmCampaign)?{utmCampaign:d(e.utmCampaign)}:{},...d(e.utmContent)?{utmContent:d(e.utmContent)}:{},...d(e.utmTerm)?{utmTerm:d(e.utmTerm)}:{},...d(e.referrer)?{referrer:d(e.referrer)}:{}};return Object.keys(t).length?t:void 0}if(typeof window>`u`)return;let t=f(window.location?.search),n=d(document.referrer||void 0),r={...t,...n?{referrer:n}:{}};return Object.keys(r).length?r:void 0}function m(e){let t=e.locale?.trim();if(t)return t;let n=e.language?.trim();if(n)return n;if(typeof navigator<`u`&&navigator.language?.trim())return navigator.language.trim()}function h(e){let t=e.secondaryLocale?.trim(),n=e.learningLocale?.trim();if(t&&n&&t!==n)throw Error(`secondaryLocale and learningLocale disagree; pass only one or make them equal.`);return t||n||void 0}function g(e,t){let n=e.trim();if(!n)throw Error(`sessionEndpoint must not be empty.`);if(typeof location>`u`)throw Error(`sessionEndpoint is only available in a browser.`);let r=new URL(n,location.href);if(r.origin!==location.origin)throw Error(`sessionEndpoint must be same-origin.`);let i=t.experienceId.trim();if(!i)throw Error(`sessionEndpoint requires experienceId.`);let a=m(t),o=h(t),s=t.idempotencyKey?.trim();return{url:r.toString(),init:{method:`POST`,credentials:`same-origin`,headers:{Accept:`application/json`,"Content-Type":`application/json`,...s?{"Idempotency-Key":s}:{}},body:JSON.stringify({experienceId:i,...a?{locale:a}:{},...o?{secondaryLocale:o}:{},...t.mode?{mode:t.mode}:{},...t.speechInputMode?{speechInputMode:t.speechInputMode}:{},...t.speechOnly===void 0?{}:{speechOnly:t.speechOnly},...(()=>{let e=p(t.attribution);return e?{attribution:e}:{}})()})}}}function _(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function v(e){return typeof e==`boolean`}function y(e){if(!_(e))return null;let t=e.speech,n=e.conversation,r=e.avatar,i=e.tools;return!_(t)||!_(n)||!_(r)||!_(i)||!v(t.input)||!v(t.output)||!v(t.externalAudio)||!v(n.managed)||!v(r.enabled)||!v(i.enabled)?null:{speech:{input:t.input,output:t.output,externalAudio:t.externalAudio},conversation:{managed:n.managed},avatar:{enabled:r.enabled},tools:{enabled:i.enabled}}}function b(e){return!_(e)||!v(e.avatar)||!v(e.speechInput)||!v(e.speechOutput)||!v(e.tools)||!v(e.externalAudio)?null:{speech:{input:e.speechInput,output:e.speechOutput,externalAudio:e.externalAudio},conversation:{managed:!0},avatar:{enabled:e.avatar},tools:{enabled:e.tools}}}function x(e){return y(e)??b(e)}function S(e){if(!_(e))throw Error(`Session Launch response is missing session.`);let t=typeof e.id==`string`?e.id.trim():``,n=typeof e.experienceId==`string`?e.experienceId.trim():``,r=typeof e.experienceRevisionId==`string`?e.experienceRevisionId.trim():``,i=typeof e.expiresAt==`string`?e.expiresAt.trim():``,a=typeof e.locale==`string`?e.locale.trim():``,o=typeof e.secondaryLocale==`string`&&e.secondaryLocale.trim()?e.secondaryLocale.trim():void 0,s=e.mode===`conversation`||e.mode===`presenter`?e.mode:null,c=x(e.capabilities),l=C(e.localeVoiceFallbacks),u=e.status===`active`||e.status===`ended`?e.status:void 0,d=typeof e.createdAt==`string`&&e.createdAt.trim()?e.createdAt.trim():void 0;if(!t||!n||!r||!i||!a||!s||!c)throw Error(`Session Launch response has an invalid session object.`);return{id:t,experienceId:n,experienceRevisionId:r,expiresAt:i,locale:a,...o?{secondaryLocale:o}:{},mode:s,capabilities:c,...l?{localeVoiceFallbacks:l}:{},...u?{status:u}:{},...d?{createdAt:d}:{}}}function C(e){if(!Array.isArray(e)||e.length===0)return;let t=[];for(let n of e){if(!_(n))continue;let e=n.axis===`locale`||n.axis===`secondaryLocale`?n.axis:null,r=typeof n.requested==`string`?n.requested.trim():``,i=typeof n.resolved==`string`?n.resolved.trim():``;!e||!r||!i||n.reason!==`voice_unsupported`||t.push({axis:e,requested:r,resolved:i,reason:`voice_unsupported`})}return t.length>0?t:void 0}function w(e){let t=e.localeVoiceFallbacks;if(t?.length)for(let e of t){let t=e.axis===`secondaryLocale`?`secondaryLocale`:`locale`;console.warn(`[liforma] Session ${t} fell back to ${e.resolved} because the voice does not support ${e.requested}.`)}}function T(e){if(!_(e))throw Error(`Session Launch response must be a JSON object.`);let t=typeof e.launch==`string`?e.launch.trim():``;if(!t)throw Error(`Session Launch response is missing launch.`);let n=S(e.session);return w(n),{session:n,launch:t}}function E(){try{if(typeof globalThis.location?.origin==`string`&&globalThis.location.origin)return globalThis.location.origin}catch{}}function D(e){return e?e.trim().toUpperCase().replace(/-/g,`_`):``}function O(e,t){let n=E(),r=D(t.code),i=t.message.trim(),a=t.details??{};if(r===`ORIGIN_NOT_ALLOWED`||/^Origin not allowed/i.test(i)&&n){if(i.includes(e)&&i.includes(`allowed origin`))return t;let r=typeof a.origin==`string`&&a.origin||n||`(unknown origin)`;return new o(`Your origin ${r} is not an allowed origin for experience ${e}. If you own this experience, sign in to the Liforma developer portal (app.liforma.ai), open Workspace → Settings → Origins, add ${r} to the list of allowed origins, and ensure “Allow public client-only embeds” is enabled.`,{code:`ORIGIN_NOT_ALLOWED`,requestId:t.requestId,status:t.status,details:a})}return r===`BROWSER_EMBEDS_DISABLED`||/^Browser embeds are not enabled/i.test(i)?i.includes(`Allow public client-only embeds`)?t:new o(`Browser embeds are not enabled for experience ${e}. If you own this experience, sign in to the Liforma developer portal (app.liforma.ai), open Workspace → Settings → Origins, and enable “Allow public client-only embeds”.`,{code:`BROWSER_EMBEDS_DISABLED`,requestId:t.requestId,status:t.status,details:a}):r===`EXPERIENCE_UNAVAILABLE`||/^Experience is not available\.?$/i.test(i)||/^Unknown experience\.?$/i.test(i)?i.includes(`No playable experience found`)?t:new o(`No playable experience found for “${e}”. Check that the experience id is correct (it should look like exp_…), and that the experience exists and is published in the Liforma developer portal (app.liforma.ai). Deleted, archived, and unpublished experiences cannot be started from a browser embed.`,{code:`EXPERIENCE_UNAVAILABLE`,requestId:t.requestId,status:t.status,details:a}):t}function ee(e){let t=e?.locale?.trim();if(t)return t;let n=e?.language?.trim();if(n)return n;if(typeof navigator<`u`&&navigator.language?.trim())return navigator.language.trim()}function k(e){let t=e?.secondaryLocale?.trim(),n=e?.learningLocale?.trim();if(t&&n&&t!==n)throw new o(`secondaryLocale and learningLocale disagree; pass only one or make them equal.`,{code:`INVALID_BODY`});return t||n||void 0}function te(e,t){let n={experienceId:e},r=ee(t);r&&(n.locale=r);let i=k(t);i&&(n.secondaryLocale=i),t?.mode&&(n.mode=t.mode),t?.speechInputMode&&(n.speechInputMode=t.speechInputMode),t?.speechOnly!==void 0&&(n.speechOnly=t.speechOnly);let a=p(t?.attribution);return a&&(n.attribution=a),n}async function A(e,t){let n=a(),r=t?.idempotencyKey?.trim(),i=await fetch(`${n}/v1/browser-sessions`,{method:`POST`,headers:{"Content-Type":`application/json`,...r?{"Idempotency-Key":r}:{}},body:JSON.stringify(te(e,t))});if(!i.ok){let t=await i.text();throw O(e,c(i.status,t,i.headers))}let s;try{s=await i.json()}catch{throw new o(`Browser session mint returned invalid JSON.`,{code:`INVALID_RESPONSE`,status:i.status,requestId:i.headers.get(`Liforma-Request-Id`)??void 0})}return T(s)}async function j(e,t){let n=g(e,t),r=new AbortController,i=()=>r.abort(t.signal?.reason);t.signal?.aborted?i():t.signal?.addEventListener(`abort`,i,{once:!0});let a=globalThis.setTimeout(()=>r.abort(new DOMException(`Session endpoint timed out.`,`TimeoutError`)),t.timeoutMs??3e4),s;try{s=await fetch(n.url,{...n.init,signal:r.signal})}finally{globalThis.clearTimeout(a),t.signal?.removeEventListener(`abort`,i)}if(!s.ok){let e=await s.text();throw c(s.status,e,s.headers)}if(!s.headers.get(`content-type`)?.toLowerCase().includes(`application/json`))throw new o(`Session endpoint must return a JSON Session Launch response.`,{code:`INVALID_RESPONSE`,status:s.status,requestId:s.headers.get(`Liforma-Request-Id`)??void 0});let l;try{l=await s.json()}catch{throw new o(`Session endpoint returned invalid JSON.`,{code:`INVALID_RESPONSE`,status:s.status,requestId:s.headers.get(`Liforma-Request-Id`)??void 0})}return T(l)}function M(e){return typeof e!=`object`||!e?!1:typeof e[Symbol.asyncIterator]==`function`}function N(e){if(typeof e==`string`){let t=e.trim();if(!t)throw Error(`conversationProcessor returned empty text.`);return{text:t}}let t=e.text.trim();if(!t)throw Error(`conversationProcessor returned empty text.`);return{text:t,...e.characterId?{characterId:e.characterId}:{},...e.behavior?{behavior:e.behavior}:{}}}async function P(e,t){let n=await e(t);return M(n)?{kind:`stream`,stream:n}:{kind:`complete`,speech:N(n)}}var ne=`3002`;function F(e){let t=new URL(e);return t.hostname===`localhost`||t.hostname===`127.0.0.1`?`Cannot connect to the Liforma player at ${e} — nothing is listening on port ${t.port||ne}. Start the player dev server in player.liforma.ai (npm run dev).`:`Cannot connect to the Liforma player at ${e}. The embed did not load; check your network connection and player URL configuration.`}async function I(e,t){try{await fetch(e,{method:`GET`,mode:`no-cors`,signal:AbortSignal.timeout(8e3)})}catch{throw Error(F(t))}}function L(e,t,n,r){try{r&&r.length>0?e.postMessage(t,n,r):e.postMessage(t,n)}catch(e){throw e instanceof DOMException&&e.name===`SecurityError`?Error(F(n),{cause:e}):e}}var re=new Set([1,2]);function ie(e){return typeof e==`number`&&re.has(e)}var R=new Set(`close.stateUpdate.commandResult.userTranscript.characterSpeechStarted.characterSpeechEnded.characterFocusChanged.conversationUpdate.listeningState.userSpeechStarted.userSpeechEnded.modeChange.activityChange.feedback.feedbackFailed.message.started.embedReady.widgetReady.widgetExpand.widgetCollapse.widgetAudioSettings.widgetDragStart.widgetDragMove.widgetDragEnd.fullWindow`.split(`.`));function ae(e){if(!e||typeof e!=`object`)return null;let t=e;if(!ie(t.schemaVersion)||!t.type||!R.has(t.type))return null;if(t.type===`embedReady`||t.type===`widgetReady`||t.type===`widgetExpand`||t.type===`widgetCollapse`)return t;if(t.type===`fullWindow`){let e=t.payload;return!e||typeof e!=`object`||typeof e.active!=`boolean`?null:t}if(t.type===`widgetAudioSettings`){let e=t.payload;return!e||typeof e!=`object`||typeof e.open!=`boolean`?null:t}if(t.type===`widgetDragStart`||t.type===`widgetDragEnd`){let e=t.payload;return!e||typeof e!=`object`||typeof e.pointerId!=`number`||!Number.isFinite(e.pointerId)?null:t}if(t.type===`widgetDragMove`){let e=t.payload;if(!e||typeof e!=`object`)return null;let{pointerId:n,dx:r,dy:i}=e;return typeof n!=`number`||!Number.isFinite(n)||typeof r!=`number`||!Number.isFinite(r)||typeof i!=`number`||!Number.isFinite(i)?null:t}let n=t.payload;return!n||typeof n!=`object`?null:t}function oe(e,t,n){let r=e.trim();if(!r)throw Error(`createLaunchMessage requires a non-empty launch string.`);let i=n?.startButton,a=n?.theme,o=n?.showFeedback;return{type:`launch`,schemaVersion:2,payload:{launch:r,...t===void 0?{}:{session:t},...i?{startButton:i}:{},...a?{theme:a}:{},...o===void 0?{}:{showFeedback:o}}}}function se(){return{type:`parentHello`,schemaVersion:2}}function ce(e){return{type:`widgetSetChrome`,schemaVersion:2,payload:{mode:e}}}function le(){return{type:`widgetToggleAudioSettings`,schemaVersion:2,payload:{}}}var ue=`2147483000`;function de(e){let{style:t}=e;return{position:t.position,top:t.top,right:t.right,bottom:t.bottom,left:t.left,inset:t.inset,width:t.width,height:t.height,zIndex:t.zIndex,margin:t.margin,borderRadius:t.borderRadius,maxWidth:t.maxWidth,maxHeight:t.maxHeight}}function z(e){let{style:t}=e;t.position=`fixed`,t.top=`0`,t.right=`0`,t.bottom=`0`,t.left=`0`,t.inset=`0`,t.width=`100vw`,t.width=`100dvw`,t.height=`100vh`,t.height=`100dvh`,t.zIndex=ue,t.margin=`0`,t.borderRadius=`0`,t.maxWidth=`none`,t.maxHeight=`none`,e.dataset.liformaFullWindow=`1`}function fe(e,t){if(delete e.dataset.liformaFullWindow,!t){e.style.position=``,e.style.top=``,e.style.right=``,e.style.bottom=``,e.style.left=``,e.style.inset=``,e.style.width=``,e.style.height=``,e.style.zIndex=``,e.style.margin=``,e.style.borderRadius=``,e.style.maxWidth=``,e.style.maxHeight=``;return}let{style:n}=e;n.position=t.position,n.top=t.top,n.right=t.right,n.bottom=t.bottom,n.left=t.left,n.inset=t.inset,n.width=t.width,n.height=t.height,n.zIndex=t.zIndex,n.margin=t.margin,n.borderRadius=t.borderRadius,n.maxWidth=t.maxWidth,n.maxHeight=t.maxHeight}function pe(e){return e}function B(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`cmd_${crypto.randomUUID().replace(/-/g,``).slice(0,12)}`:`cmd_${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}var me=3e4;function V(e){let t=e.container;getComputedStyle(t).position===`static`&&(t.style.position=`relative`);let n=document.createElement(`iframe`);n.src=e.src,n.title=`Liforma experience`,n.setAttribute(`allow`,`microphone; autoplay; clipboard-read; clipboard-write`),n.style.cssText=e.transparent?`display:block;position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;`:`display:block;position:absolute;inset:0;width:100%;height:100%;border:0;background:#030508;`,e.transparent&&n.setAttribute(`allowtransparency`,`true`);let r=!1,i=!1,a=null,o=t.closest(`.liforma-experience-shell`)instanceof HTMLElement?t.closest(`.liforma-experience-shell`):t,s=t=>{i!==t&&(i=t,t?(a=de(o),z(o)):(fe(o,a),a=null),e.onFullWindowChange?.(t))},c=new Map,l=null,u=0,d=0,f=[],p=null,m=null,h=new Promise((e,t)=>{p=e,m=t}),g=()=>{for(let e of f)window.clearTimeout(e);f.length=0},_=t=>{if(r)return;let i=Date.now();if(d>0&&i-d<250)return;d=i,g();let a=oe(t.launch,t.session,t.chrome),o=()=>{if(r)return;let t=n.contentWindow;t&&L(t,a,e.playerOrigin)};o();for(let e=1;e<=12;e+=1)f.push(window.setTimeout(o,e*75))},v=()=>{r||!l||_(l)},y=()=>{if(u+=1,u===1){I(e.src,e.playerOrigin).then(()=>p?.(),e=>m?.(e instanceof Error?e:Error(String(e))));return}d=0,v()},b=()=>{u>0||m?.(Error(F(e.playerOrigin)))};n.addEventListener(`load`,y),n.addEventListener(`error`,b);let x=t=>{if(r||t.source!==n.contentWindow||t.origin!==e.playerOrigin)return;let i=ae(t.data);if(i)switch(i.type){case`close`:e.onClose?.(i.payload);break;case`stateUpdate`:e.onPlayerStatusChange?.(i.payload.state),e.onStateUpdate?.(i.payload.state);break;case`commandResult`:{let e=c.get(i.payload.correlationId);if(!e)return;c.delete(i.payload.correlationId),i.payload.ok?e.resolve(i.payload.result):e.reject(Error(i.payload.error??`Command failed.`));break}case`userTranscript`:e.onUserTranscript?.(i.payload);break;case`characterSpeechStarted`:e.onCharacterSpeechStarted?.(i.payload);break;case`characterSpeechEnded`:e.onCharacterSpeechEnded?.(i.payload);break;case`characterFocusChanged`:e.onCharacterFocusChanged?.(i.payload);break;case`conversationUpdate`:e.onConversationUpdate?.(i.payload.conversation);break;case`listeningState`:e.onListeningState?.(i.payload.listening);break;case`userSpeechStarted`:e.onUserSpeechStarted?.(i.payload);break;case`userSpeechEnded`:e.onUserSpeechEnded?.(i.payload);break;case`modeChange`:e.onActivityChange?.(pe(i.payload.mode));break;case`activityChange`:e.onActivityChange?.(i.payload.activity);break;case`feedback`:e.onFeedback?.(i.payload);break;case`feedbackFailed`:e.onFeedbackFailed?.(i.payload);break;case`message`:e.onMessage?.(i.payload);break;case`started`:e.onStarted?.(i.payload);break;case`embedReady`:v();break;case`widgetReady`:e.onWidgetReady?.();break;case`widgetExpand`:e.onWidgetExpand?.();break;case`widgetCollapse`:e.onWidgetCollapse?.();break;case`widgetAudioSettings`:e.onWidgetAudioSettings?.(i.payload.open);break;case`widgetDragStart`:e.onWidgetDragStart?.(i.payload);break;case`widgetDragMove`:e.onWidgetDragMove?.(i.payload);break;case`widgetDragEnd`:e.onWidgetDragEnd?.(i.payload);break;case`fullWindow`:s(i.payload.active);break}};if(window.addEventListener(`message`,x),t.replaceChildren(n),t.clientHeight<2&&!t.style.minHeight){let e=getComputedStyle(t).minHeight;(e===`0px`||e===`auto`)&&(t.style.minHeight=`480px`)}let S=(t,i)=>{if(r)return;let a=n.contentWindow;if(!a)throw Error(F(e.playerOrigin));L(a,t,e.playerOrigin,i)},C=(e,t=12e4,n)=>{let r=e.type!==`parentHello`&&e.payload&&`correlationId`in e.payload?e.payload.correlationId:B();return e.type!==`parentHello`&&e.payload&&`correlationId`in e.payload||e.type!==`parentHello`&&e.payload&&(e.payload.correlationId=r),new Promise((i,a)=>{c.set(r,{resolve:e=>i(e),reject:a}),S(e,n),setTimeout(()=>{c.has(r)&&(c.delete(r),a(Error(`Timed out waiting for player command result.`)))},t)})};return{waitForLoad(){return h},postParentHello(){S(se())},postLaunch(e,t,n){r||(l={launch:e,session:t,chrome:n},d=0,_(l))},postManifest(e){if(typeof e==`string`){this.postLaunch(e);return}if(e&&typeof e==`object`&&typeof e.launch==`string`){let t=String(e.launch),n=e.session;this.postLaunch(t,n);return}throw Error(`postManifest is deprecated; use postLaunch with an opaque launch string from SessionLaunchResponse.`)},postWidgetSetChrome(e){S(ce(e))},postWidgetToggleAudioSettings(){S(le())},speak(e){return C({type:`speak`,schemaVersion:2,payload:{correlationId:B(),text:e.text,...e.characterId?{characterId:e.characterId}:{},...e.behavior?{behavior:e.behavior}:{}}})},startListening(){return C({type:`startListening`,schemaVersion:2,payload:{correlationId:B()}})},stopListening(){return C({type:`stopListening`,schemaVersion:2,payload:{correlationId:B()}})},listenOnce(e){return C({type:`listenOnce`,schemaVersion:2,payload:{correlationId:B(),...e?.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}}})},async speakProcessorStream(e,t){let n=B(),r=B(),i=(await C({type:`speakStreamStart`,schemaVersion:2,payload:{correlationId:n,...t?.characterId?{characterId:t.characterId}:{},...t?.behavior?{behavior:t.behavior}:{}}})).streamId;try{for await(let n of e){if(t?.signal?.aborted)throw new DOMException(`Processor stream aborted.`,`AbortError`);n&&S({type:`speakStreamChunk`,schemaVersion:2,payload:{streamId:i,text:n}})}if(t?.signal?.aborted)throw new DOMException(`Processor stream aborted.`,`AbortError`);return await C({type:`speakStreamEnd`,schemaVersion:2,payload:{correlationId:r,streamId:i}})}catch(e){try{await C({type:`speakStreamEnd`,schemaVersion:2,payload:{correlationId:r,streamId:i}})}catch{}throw e}},speechPlay(e){let t=B(),n=[];return(e.source.kind===`pcm`||e.source.kind===`encoded`)&&n.push(e.source.data),C({type:`speechPlay`,schemaVersion:2,payload:{correlationId:t,source:e.source,...e.characterId?{characterId:e.characterId}:{},...e.transcript===void 0?{}:{transcript:e.transcript},...e.history?{history:e.history}:{},...e.queue?{queue:e.queue}:{}}},12e4,n)},speechUtteranceBegin(e){return C({type:`speechUtteranceBegin`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId,format:e.format,queue:e.queue,...e.characterId?{characterId:e.characterId}:{},...e.transcript===void 0?{}:{transcript:e.transcript}}})},speechUtteranceWrite(e){return C({type:`speechUtteranceWrite`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId,audio:e.audio,byteLength:e.byteLength}},me,[e.audio])},speechUtteranceSetTranscript(e){return C({type:`speechUtteranceSetTranscript`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId,transcript:e.transcript}})},speechUtteranceClose(e){return C({type:`speechUtteranceClose`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId,...e.transcript===void 0?{}:{transcript:e.transcript},...e.history?{history:e.history}:{}}})},speechUtteranceCancel(e){return C({type:`speechUtteranceCancel`,schemaVersion:2,payload:{correlationId:B(),utteranceId:e.utteranceId}})},speechInterrupt(e){return C({type:`speechInterrupt`,schemaVersion:2,payload:{correlationId:B(),...e}})},getConversation(){return C({type:`getConversation`,schemaVersion:2,payload:{correlationId:B()}})},focusCharacter(e){return C({type:`focusCharacter`,schemaVersion:2,payload:{correlationId:B(),characterId:e}})},setFit(e){return C({type:`setFit`,schemaVersion:2,payload:{correlationId:B(),fit:e}})},conversion(e){return C({type:`conversion`,schemaVersion:2,payload:{correlationId:B(),key:e}})},destroy(){if(!r){r=!0,i&&s(!1);for(let e of c.values())e.reject(Error(`Iframe host destroyed.`));c.clear(),g(),l=null,n.removeEventListener(`load`,y),n.removeEventListener(`error`,b),window.removeEventListener(`message`,x),n.remove()}}}}function he(e){let t,n=!1,r=!1,i=()=>{r||!n||t===void 0||(r=!0,e(t))};return{setValue(e){t=e,i()},markReady(){n=!0,i()}}}var ge=`https://player.liforma.ai/embed`,_e=`http://localhost:3002/embed`;function ve(){let e=globalThis.__LIFORMA_PLAYER_EMBED_URL;if(e?.trim())return e.trim().replace(/\/$/,``);if(typeof document>`u`)return null;let t=(document.querySelector(`script[data-liforma-sdk][src*="client.js"]`)??document.querySelector(`script[src*="/sdk/v2/client.js"]`))?.getAttribute(`data-player-embed-url`)?.trim();return t?t.replace(/\/$/,``):null}function ye(){let e=ve();return e?e.endsWith(`/embed`)?e:`${e}/embed`:t()?_e:ge}function H(e,t){return e?.trim()||t?.trim()||void 0}function be(e,t,n,r,i,a,o,s){let c=(e??ye()).replace(/\/$/,``),l=c.endsWith(`/embed`)?c:`${c}/embed`,u=new URL(l),d=n?.trim();d&&(u.searchParams.set(`backdropId`,d),u.searchParams.set(`locationId`,d));let f=r?.trim();return f&&u.searchParams.set(`avatarId`,f),(i===`face`||i===`medium`)&&u.searchParams.set(`fit`,i),a===`widget`&&u.searchParams.set(`ui`,`widget`),o&&u.searchParams.set(`close`,`1`),t&&u.searchParams.set(`debug`,`true`),(s===2||s===3||s===4)&&u.searchParams.set(`cast`,String(s)),xe(u.toString())}function xe(e){if(typeof location>`u`)return e;let t=new URL(e);return t.searchParams.set(`parentOrigin`,location.origin),t.toString()}function Se(e){return new URL(e).origin}function Ce(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`evt_${crypto.randomUUID().replace(/-/g,``).slice(0,12)}`:`evt_${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}function we(e,t,n){return{id:Ce(),type:e,sessionId:t,timestamp:new Date().toISOString(),data:n}}function Te(){return{ready:new Set,started:new Set,userTranscript:new Set,userSpeechStarted:new Set,userSpeechEnded:new Set,characterSpeechStarted:new Set,characterSpeechEnded:new Set,characterFocusChanged:new Set,conversationUpdate:new Set,message:new Set,listeningState:new Set,activityChange:new Set,feedback:new Set,feedbackFailed:new Set,conversationProcessorError:new Set}}function Ee(e,t,n){return e[t].add(n),()=>e[t].delete(n)}function U(e,t,n){for(let r of e[t])r(n)}function De(e){for(let t of Object.keys(e))e[t].clear()}function Oe(e){return`data`in e&&`format`in e&&e.format!=null&&!(`track`in e)}function W(e){return`url`in e&&typeof e.url==`string`}function G(e){if(!(`track`in e))return!1;let t=e.track;return typeof t!=`object`||!t?!1:typeof MediaStreamTrack<`u`&&t instanceof MediaStreamTrack?!0:`kind`in t&&`readyState`in t}function K(e){return!Oe(e)&&!W(e)&&!G(e)&&`encoding`in e&&typeof e.encoding==`string`}var ke=[8e3,16e3,22050,24e3,44100,48e3],q={MAX_CHUNK_BYTES:64*1024,RECOMMENDED_CHUNK_MS_MIN:20,RECOMMENDED_CHUNK_MS_MAX:200,MAX_BUFFERED_AUDIO_MS:8e3,PLAYBACK_JITTER_BUFFER_MS:150,PLAYBACK_JITTER_BUFFER_MS_MIN:80,PLAYBACK_JITTER_BUFFER_MS_MAX:250,MAX_UTTERANCE_DURATION_MS:9e4,MAX_PENDING_WRITES:8,DEFAULT_WRITE_TIMEOUT_MS:5e3},Ae=class extends Error{operation;requiredCapability;name=`UnsupportedSpeechOperationError`;constructor(e,t){super(`Speech operation "${e}" requires capability "${t}".`),this.operation=e,this.requiredCapability=t}},J=class extends Error{name=`SpeechUtteranceClosedError`;constructor(e=`Cannot write to a closed or cancelled speech utterance.`){super(e)}},Y=class extends Error{name=`SpeechRuntimeError`;constructor(e,t){super(e,t)}},X=class extends Error{name=`SpeechBufferTimeoutError`;constructor(e=`Timed out waiting for speech buffer capacity.`){super(e)}};function je(e=`none`){return{mode:e,trackedDurationMs:0,fallbackDurationMs:0}}function Me(e){return ke.includes(e)}function Ne(e){if(e.encoding!==`pcm_s16le`)throw new Y(`Unsupported audio encoding: ${e.encoding}`);if(e.channels!==1)throw new Y(`Unsupported channel count: ${e.channels}`);if(!Me(e.sampleRate))throw new Y(`Unsupported sample rate: ${e.sampleRate}`)}function Pe(e){if(Oe(e)){Ne(e.format);return}if(W(e)){if(!e.url.trim())throw new Y(`Audio URL must be non-empty.`);if(e.sampleRate!==void 0&&!Me(e.sampleRate))throw new Y(`Unsupported sample rate: ${e.sampleRate}`);return}if(G(e)){if(e.track.kind!==`audio`)throw new Y(`speech.play track must be an audio MediaStreamTrack.`);if(e.sampleRate!==void 0&&!Me(e.sampleRate))throw new Y(`Unsupported sample rate: ${e.sampleRate}`);return}if(K(e)){let t=e.encoding.trim().toLowerCase();if(!t)throw new Y(`Encoded audio MIME type is required.`);if(t===`pcm_s16le`)throw new Y(`Use format: { encoding: "pcm_s16le", … } for raw PCM.`);if(e.sampleRate!==void 0&&!Me(e.sampleRate))throw new Y(`Unsupported sample rate: ${e.sampleRate}`);return}throw new Y(`Unsupported speech.play audio shape.`)}function Fe(e){if(e.format)return Ne(e.format),e.format;if(e.track){let t={encoding:`pcm_s16le`,sampleRate:e.sampleRate??24e3,channels:1};return Ne(t),t}throw new Y(`createUtterance requires format or track.`)}function Ie(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Le(e){return e===`replace-active`||e===`replace-all`?`interrupt`:`enqueue`}function Re(e){let t=new Uint8Array(e.length*2),n=new DataView(t.buffer);for(let t=0;t<e.length;t++){let r=Math.max(-1,Math.min(1,e[t]));n.setInt16(t*2,r<0?r*32768:r*32767,!0)}return t}function ze(e,t,n,r,i){let a=-.5*e+1.5*t-1.5*n+.5*r,o=e-2.5*t+2*n-.5*r,s=-.5*e+.5*n,c=t;return((a*i+o)*i+s)*i+c}function Be(e,t){if(!(e>0)||!(t>0))throw Error(`Resampler rates must be positive`);if(e===t)return{fromRate:e,toRate:t,push(e){return e},flush(){return new Float32Array}};let n=e/t,r=new Float32Array,i=0;return{fromRate:e,toRate:t,push(e){if(e.length===0)return new Float32Array;let t=new Float32Array(r.length+e.length);if(t.set(r),t.set(e,r.length),r=t,r.length<4)return new Float32Array;let a=[];for(;i+2<r.length-1;){let e=Math.floor(i),t=i-e,o=Math.max(0,e-1),s=Math.min(r.length-1,e+1),c=Math.min(r.length-1,e+2);a.push(ze(r[o],r[e],r[s],r[c],t)),i+=n}let o=Math.max(0,Math.floor(i)-1);return o>0&&(r=r.subarray(o),i-=o),a.length?Float32Array.from(a):new Float32Array},flush(){return r.length===0?new Float32Array:(r=new Float32Array,i=0,new Float32Array)}}}var Ve=`liforma-pcm-capture`,He=`
2
2
  class LiformaPcmCaptureProcessor extends AudioWorkletProcessor {
3
3
  process(inputs) {
4
4
  const ch = inputs[0] && inputs[0][0];
@@ -11,7 +11,7 @@ class LiformaPcmCaptureProcessor extends AudioWorkletProcessor {
11
11
  }
12
12
  }
13
13
  registerProcessor('${Ve}', LiformaPcmCaptureProcessor);
14
- `,Ue=null;function We(){return Ue||=URL.createObjectURL(new Blob([He],{type:`application/javascript`})),Ue}function Ge(){return window.AudioContext||window.webkitAudioContext||null}async function Ke(e){let{mediaStream:t,targetSampleRate:n,onPcm:r,shouldSend:i,onLog:a}=e,o=Ge();if(!o)throw Error(`Web Audio is required for audio capture`);let s=new o,c=s.createMediaStreamSource(t),l=s.createGain();l.gain.value=0;let u=s.sampleRate,d=Be(u,n),f=!1,p=!1,m=e=>{if(f||i&&!i())return;let t=d.push(e);t.length!==0&&r(Re(t))},h=()=>void 0;return await(async()=>{if(typeof s.audioWorklet?.addModule!=`function`)return!1;try{await s.audioWorklet.addModule(We());let e=new AudioWorkletNode(s,Ve,{numberOfInputs:1,numberOfOutputs:1,outputChannelCount:[1]});return e.port.onmessage=e=>{e.data instanceof Float32Array&&m(e.data)},c.connect(e),e.connect(l),l.connect(s.destination),h=()=>{e.port.onmessage=null;try{e.disconnect()}catch{}try{c.disconnect()}catch{}try{l.disconnect()}catch{}},p=!0,!0}catch{return!1}})()?a?.(`Mic/track capture via AudioWorklet at ${u} Hz → ${n} Hz`):((()=>{let e=s.createScriptProcessor?.bind(s);if(!e)throw Error(`Neither AudioWorklet nor ScriptProcessor is available`);let t=e(4096,1,1);t.onaudioprocess=e=>{m(e.inputBuffer.getChannelData(0))},c.connect(t),t.connect(l),l.connect(s.destination),h=()=>{t.onaudioprocess=null;try{t.disconnect()}catch{}try{c.disconnect()}catch{}try{l.disconnect()}catch{}},p=!1})(),a?.(`Mic/track capture via ScriptProcessor at ${u} Hz → ${n} Hz`,`warn`)),s.state===`suspended`&&await s.resume().catch(()=>void 0),{fromSampleRate:u,usingWorklet:p,stop(){f||(f=!0,d.flush(),h(),s.close().catch(()=>void 0))}}}async function qe(e){let{track:t,utterance:n,sampleRate:r,signal:i}=e;if(typeof MediaStreamTrack>`u`||!(t instanceof MediaStreamTrack))throw new Y(`MediaStreamTrack is not available in this environment.`);if(t.kind!==`audio`)throw new Y(`speech.play track must be an audio MediaStreamTrack.`);if(t.readyState===`ended`||i?.aborted)return;let a=new MediaStream([t]),o=Promise.resolve(),s=!1,c=null,l=()=>{s||(s=!0,c?.stop(),c=null)};try{c=await Ke({mediaStream:a,targetSampleRate:r,shouldSend:()=>!s&&!i?.aborted,onPcm:e=>{if(s||i?.aborted)return;let t=Ie(e);o=o.then(async()=>{if(s||i?.aborted)return;let e=0;for(;e<t.byteLength;){let r=Math.min(e+q.MAX_CHUNK_BYTES,t.byteLength);if((r-e)%2==1&&--r,r<=e)break;let i=t.subarray(e,r);e=r,i.byteLength!==0&&await n.write(i)}}).catch(()=>{l()})}})}catch(e){throw l(),new Y(`MediaStreamTrack capture failed: ${e instanceof Error?e.message:String(e)}`)}await new Promise(e=>{let r=()=>{l(),o.finally(e)};t.addEventListener(`ended`,r,{once:!0}),i?.addEventListener(`abort`,()=>{n.cancel().catch(()=>void 0),r()},{once:!0}),(t.readyState===`ended`||i?.aborted)&&r()})}async function Je(e,t){if(G(e))throw new Y(`MediaStreamTrack play is handled on the host before embed.`);if(Oe(e)){let t=Ie(e.data);if(t.byteLength&1)throw new Y(`PCM byte length must be even.`);return{kind:`pcm`,data:t.slice().buffer,format:e.format}}if(W(e))return{kind:`url`,url:e.url.trim(),...e.sampleRate===void 0?{}:{sampleRate:e.sampleRate}};if(!K(e))throw new Y(`Unsupported speech.play audio shape.`);let n;if(typeof Blob<`u`&&e.data instanceof Blob){if(t?.aborted)throw new DOMException(`Play aborted.`,`AbortError`);n=new Uint8Array(await e.data.arrayBuffer())}else n=Ie(e.data);return{kind:`encoded`,data:n.slice().buffer,encoding:e.encoding.trim(),...e.sampleRate===void 0?{}:{sampleRate:e.sampleRate}}}function Ye(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`utt_${crypto.randomUUID().replace(/-/g,``).slice(0,12)}`:`utt_${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}function Xe(e,t=`completed`){return{utteranceId:e.speechId,characterId:e.characterId,status:t,durationMs:e.durationMs,transcript:e.text,animation:{mode:`tracked`,trackedDurationMs:e.durationMs,fallbackDurationMs:0}}}function Ze(e){return e instanceof Error?e:new Y(String(e))}function Qe(e){return e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`}var $e=class{id;characterId;result;format;host;signal;settleResolve;settleReject;settled=!1;closed=!1;writeChain=Promise.resolve();pendingWriteCount=0;pendingWriteWaiters=[];bufferedMs=0;sampleRate;beginPromise;constructor(e){this.id=e.id,this.characterId=e.characterId,this.format=e.format,this.host=e.host,this.signal=e.signal,this.sampleRate=e.format.sampleRate,this.result=new Promise((e,t)=>{this.settleResolve=e,this.settleReject=t}),this.result.catch(()=>void 0);let t=this.requireHost();this.beginPromise=t.speechUtteranceBegin({utteranceId:this.id,format:this.format,characterId:this.characterId,queue:e.queue,...e.transcript===void 0?{}:{transcript:e.transcript}}).catch(e=>{throw this.fail(Ze(e)),Ze(e)}),this.signal?.addEventListener(`abort`,()=>{this.cancel()},{once:!0})}async write(e,t){if(this.closed||this.settled||(await this.beginPromise.catch(()=>void 0),this.closed||this.settled))throw new J;let n=Ie(e);if(n.byteLength&1)throw new Y(`PCM chunk byte length must be even (complete s16 samples).`);if(n.byteLength>q.MAX_CHUNK_BYTES)throw new Y(`PCM chunk exceeds MAX_CHUNK_BYTES (${q.MAX_CHUNK_BYTES}).`);if(n.byteLength===0)return;let r=t?.timeoutMs??q.DEFAULT_WRITE_TIMEOUT_MS;await this.acquireWriteSlot(r);let i=n.byteLength/2/this.sampleRate*1e3;if(this.bufferedMs+i>q.MAX_UTTERANCE_DURATION_MS)throw this.releaseWriteSlot(),new Y(`Utterance exceeds MAX_UTTERANCE_DURATION_MS.`);let a=async()=>{if(this.closed||this.settled)throw new J;let e=this.requireHost(),t=n.slice(),i=e.speechUtteranceWrite({utteranceId:this.id,audio:t.buffer,byteLength:t.byteLength}),a=await Promise.race([i,new Promise((e,t)=>{setTimeout(()=>t(new X),r)})]);this.bufferedMs=Math.max(0,a.bufferedMs)},o=this.writeChain.then(a,a);this.writeChain=o.then(()=>void 0,()=>void 0);try{await o}finally{this.releaseWriteSlot()}}async setTranscript(e){if(this.closed||this.settled||(await this.beginPromise.catch(()=>void 0),this.closed||this.settled))throw new J;await this.requireHost().speechUtteranceSetTranscript({utteranceId:this.id,transcript:e})}async close(e){if(this.settled)return this.result;this.closed=!0,await this.beginPromise.catch(()=>void 0),await this.writeChain.catch(()=>void 0);try{let t=await this.requireHost().speechUtteranceClose({utteranceId:this.id,transcript:e?.transcript,history:e?.history??`none`});return this.resolve(t),t}catch(e){let t=Ze(e);throw this.fail(t),t}}async cancel(){if(this.settled)return this.result;this.closed=!0;try{let e=this.host.getIframeHost();if(e){let t=await e.speechUtteranceCancel({utteranceId:this.id});return this.resolve(t),t}let t={utteranceId:this.id,characterId:this.characterId,status:`cancelled`,durationMs:0,animation:je(`none`)};return this.resolve(t),t}catch(e){let t=Ze(e);throw this.fail(t),t}}adoptExternalResult(e){this.resolve(e)}requireHost(){let e=this.host.getIframeHost();if(!e)throw new Y(`Speech session is not attached.`);return e}resolve(e){this.settled||(this.settled=!0,this.settleResolve(Object.freeze(e)),this.flushWriteWaiters(new J))}fail(e){this.settled||(this.settled=!0,this.settleReject(e),this.flushWriteWaiters(e))}async acquireWriteSlot(e){if(this.pendingWriteCount<q.MAX_PENDING_WRITES){this.pendingWriteCount+=1;return}await new Promise((t,n)=>{let r=setTimeout(()=>{n(new X)},e);this.pendingWriteWaiters.push({resolve:()=>{clearTimeout(r),this.pendingWriteCount+=1,t()},reject:e=>{clearTimeout(r),n(e)}})})}releaseWriteSlot(){this.pendingWriteCount=Math.max(0,this.pendingWriteCount-1),this.pendingWriteWaiters.shift()?.resolve()}flushWriteWaiters(e){for(;this.pendingWriteWaiters.length>0;)this.pendingWriteWaiters.shift()?.reject(e)}};function et(e){let t=null,n=(t,n)=>{if(!e.getCapabilities()[n])throw new Ae(t,n)},r={async speak(r){if(e.assertSessionStarted(),n(`speak`,`textSpeech`),r.signal?.aborted)throw new DOMException(`Speak aborted.`,`AbortError`);let i=Le(r.queue??`append`);i===`interrupt`&&(e.onProcessorInterrupt?.(),t&&=(t.cancel(),null));let a=e.getIframeHost();if(!a)throw new Y(`Speech session is not attached.`);let o=a.speak({text:r.text,characterId:r.characterId,behavior:i});if(r.signal){let t=r.signal;return await new Promise((n,i)=>{let s=()=>{a.speechInterrupt({scope:`active`}).catch(()=>void 0),i(new DOMException(`Speak aborted.`,`AbortError`))};if(t.aborted){s();return}t.addEventListener(`abort`,s,{once:!0}),o.then(e=>{t.removeEventListener(`abort`,s),n(Xe(e,`completed`))},a=>{if(t.removeEventListener(`abort`,s),Qe(a)){n({utteranceId:`utt_interrupted`,characterId:r.characterId??e.getActiveCharacterId(),status:`interrupted`,durationMs:0,transcript:r.text,animation:je(`none`)});return}i(Ze(a))})})}try{return Xe(await o,`completed`)}catch(t){if(Qe(t))return{utteranceId:`utt_interrupted`,characterId:r.characterId??e.getActiveCharacterId(),status:`interrupted`,durationMs:0,transcript:r.text,animation:je(`none`)};throw Ze(t)}},async play(i){if(e.assertSessionStarted(),n(`play`,`externalSpeechAudio`),Pe(i.audio),i.signal?.aborted)throw new DOMException(`Play aborted.`,`AbortError`);let a=i.queue??`append`;if((a===`replace-active`||a===`replace-all`)&&(e.onProcessorInterrupt?.(),t&&=(t.cancel(),null)),G(i.audio)){let e=i.audio.sampleRate??24e3;return r.createUtterance({format:{encoding:`pcm_s16le`,sampleRate:e,channels:1},track:i.audio.track,characterId:i.characterId,queue:a===`append`?`replace-active`:a,signal:i.signal}).result}let o=e.getIframeHost();if(!o)throw new Y(`Speech session is not attached.`);let s=await Je(i.audio,i.signal);return o.speechPlay({source:s,characterId:i.characterId,transcript:i.transcript,history:i.history??`none`,queue:a,signal:i.signal})},createUtterance(r){e.assertSessionStarted(),n(`createUtterance`,`externalSpeechAudio`);let i=Fe(r);if(r.track&&r.track.kind!==`audio`)throw new Y(`createUtterance track must be an audio MediaStreamTrack.`);let a=r.queue??`replace-active`;if(a!==`replace-active`&&a!==`replace-all`)throw new Y(`createUtterance queue must be replace-active or replace-all.`);e.onProcessorInterrupt?.(),t&&=(t.cancel(),null);let o=new $e({id:Ye(),characterId:r.characterId??e.getActiveCharacterId(),format:i,queue:a,host:e,...r.transcript===void 0?{}:{transcript:r.transcript},signal:r.signal});return t=o,o.result.finally(()=>{t===o&&(t=null)}),r.track&&(async()=>{try{if(await qe({track:r.track,utterance:o,sampleRate:i.sampleRate,signal:r.signal}),r.signal?.aborted)return;await o.close({history:`none`})}catch{await o.cancel().catch(()=>void 0)}})(),o},async interrupt(n){e.assertSessionStarted(),e.onProcessorInterrupt?.();let r=e.getIframeHost();if(!r)return[];let i=await r.speechInterrupt(n??{scope:`active`});if(t){let e=i.find(e=>e.utteranceId===t.id);e&&t.adoptExternalResult(e),t=null}return i}};return r}function tt(e){let t=e?.trim();return t===`full`||t===`face`||t===`medium`?t:void 0}function nt(e){return!!(e.showClose===!0||e.returnUrl?.trim()||e.closeButton===!0||e.closeButton&&typeof e.closeButton==`object`&&e.closeButton.visible!==!1)}var rt=class e{bootstrap;conversationProcessor;iframeHost=null;attachInFlight=null;endpointAbortController=null;processorAbortController=null;processorChain=Promise.resolve();resolvedSession;launchToken;attachReturnUrl=null;closed=!1;attached=!1;pendingFit=null;closeHandlers=[];eventRegistry=Te();readyEnvelope=null;startedEnvelope=null;conversationCache=[];speech;constructor(e){this.bootstrap=e,this.conversationProcessor=e.conversationProcessor??null,this.resolvedSession=e.kind===`launch`?e.session??null:null,this.launchToken=e.kind===`launch`?e.launch:null,this.speech=et({getIframeHost:()=>this.iframeHost,assertSessionStarted:()=>this.assertSessionStarted(),getCapabilities:()=>it(this.resolvedSession),getActiveCharacterId:()=>`character_unknown`,onProcessorInterrupt:()=>{this.processorAbortController?.abort(),this.processorAbortController=null}})}static async startSession(t){if(`launch`in t&&typeof t.launch==`string`){let n=t.launch.trim();if(!n)throw Error(`StartSessionOptions.launch must be a non-empty string.`);return new e({kind:`launch`,launch:n,session:t.session,backdropId:t.backdropId,locationId:t.locationId,avatarId:t.avatarId,embedBaseUrl:t.embedBaseUrl,debug:t.debug,speechOnly:t.speechOnly,ui:t.ui,onStart:t.onStart,onUserTranscript:t.onUserTranscript,conversationProcessor:t.conversationProcessor})}if(`sessionEndpoint`in t)return new e({kind:`sessionEndpoint`,experienceId:t.experienceId,sessionEndpoint:t.sessionEndpoint,locale:t.locale,secondaryLocale:t.secondaryLocale,learningLocale:t.learningLocale,language:t.language,backdropId:t.backdropId,locationId:t.locationId,avatarId:t.avatarId,castSize:t.castSize,embedBaseUrl:t.embedBaseUrl,debug:t.debug,mode:t.mode,speechInputMode:t.speechInputMode,speechOnly:t.speechOnly,attribution:t.attribution,ui:t.ui,onStart:t.onStart,onUserTranscript:t.onUserTranscript,conversationProcessor:t.conversationProcessor});if(`experienceId`in t)return new e({kind:`public`,experienceId:t.experienceId,locale:t.locale,secondaryLocale:t.secondaryLocale,learningLocale:t.learningLocale,language:t.language,backdropId:t.backdropId,locationId:t.locationId,avatarId:t.avatarId,castSize:t.castSize,embedBaseUrl:t.embedBaseUrl,debug:t.debug,mode:t.mode,speechInputMode:t.speechInputMode,speechOnly:t.speechOnly,attribution:t.attribution,ui:t.ui,onStart:t.onStart,onUserTranscript:t.onUserTranscript,conversationProcessor:t.conversationProcessor});throw Error(`Experience.startSession requires experienceId, sessionEndpoint, or launch.`)}getSession(){return this.resolvedSession}getManifest(){return null}on(e,t){let n=Ee(this.eventRegistry,e,t);return e===`ready`&&this.readyEnvelope&&queueMicrotask(()=>t(this.readyEnvelope)),e===`started`&&this.startedEnvelope&&queueMicrotask(()=>t(this.startedEnvelope)),n}async attach(e){if(this.closed)throw Error(`Session has ended.`);if(!e.container)throw Error(`Experience.attach requires a DOM container element.`);return this.attached&&this.iframeHost?this.createPlayerFacade():(this.attachInFlight||=this.attachInternal(e).finally(()=>{this.attachInFlight=null}),this.attachInFlight)}async attachInternal(e){if(this.closed)throw Error(`Session has ended.`);if(this.attached&&this.iframeHost)return this.createPlayerFacade();this.iframeHost&&=(this.iframeHost.destroy(),null),this.attachReturnUrl=e.returnUrl?.trim()||null;let t=this.bootstrap.embedBaseUrl??ye(),n=this.bootstrap.debug===!0,r=this.bootstrap.speechOnly===!0,i=be(t,n,r?void 0:H(this.bootstrap.backdropId,this.bootstrap.locationId),r?void 0:this.bootstrap.avatarId,e.fit,this.bootstrap.ui,nt(e),this.bootstrap.kind===`launch`?void 0:this.bootstrap.castSize),a=Se(i),o=null,s=new Promise(e=>{o=e}),c=null,l=new Promise(e=>{c=e}),u=he(e=>{this.readyEnvelope||=(this.resolvedSession=e,this.emitWrapped(`ready`,{session:e}))}),d=this.bootstrap.onUserTranscript,f=V({container:e.container,src:i,playerOrigin:a,transparent:this.bootstrap.ui===`widget`,onClose:e=>{let t=e.returnUrl||!this.attachReturnUrl?e:{...e,returnUrl:this.attachReturnUrl};for(let e of this.closeHandlers)e(t)},onPlayerStatusChange:t=>{e.onPlayerStatusChange?.(t),e.onStateUpdate?.(t),t===`loading`&&o&&(o(),o=null),t===`ready`&&c&&(c(),c=null),t===`ready`&&u.markReady()},onUserTranscript:e=>{this.emitWrapped(`userTranscript`,e),d?.(e),this.queueProcessorTurn(e)},onUserSpeechStarted:e=>{this.emitWrapped(`userSpeechStarted`,e)},onUserSpeechEnded:e=>{this.emitWrapped(`userSpeechEnded`,e)},onCharacterSpeechStarted:e=>{this.emitWrapped(`characterSpeechStarted`,e)},onCharacterSpeechEnded:e=>{this.emitWrapped(`characterSpeechEnded`,e)},onCharacterFocusChanged:e=>{this.emitWrapped(`characterFocusChanged`,e)},onListeningState:e=>{this.emitWrapped(`listeningState`,e)},onActivityChange:e=>{this.emitWrapped(`activityChange`,e)},onFeedback:e=>{this.emitWrapped(`feedback`,e)},onFeedbackFailed:e=>{this.emitWrapped(`feedbackFailed`,e)},onMessage:e=>{this.emitWrapped(`message`,e)},onStarted:e=>{this.startedEnvelope||(this.startedEnvelope=this.emitWrapped(`started`,e),this.bootstrap.onStart?.(e))},onConversationUpdate:e=>{this.conversationCache=e,this.emitWrapped(`conversationUpdate`,e)},onWidgetReady:()=>e.onWidgetReady?.(),onWidgetExpand:()=>e.onWidgetExpand?.(),onWidgetCollapse:()=>e.onWidgetCollapse?.(),onWidgetAudioSettings:t=>e.onWidgetAudioSettings?.(t),onWidgetDragStart:t=>e.onWidgetDragStart?.(t),onWidgetDragMove:t=>e.onWidgetDragMove?.(t),onWidgetDragEnd:t=>e.onWidgetDragEnd?.(t)});this.iframeHost=f;let p=this.resolveMintInteraction(),m=this.bootstrap.kind===`sessionEndpoint`?(this.endpointAbortController=new AbortController,j(this.bootstrap.sessionEndpoint,{experienceId:this.bootstrap.experienceId,locale:this.bootstrap.locale,secondaryLocale:this.bootstrap.secondaryLocale,learningLocale:this.bootstrap.learningLocale,language:this.bootstrap.language,mode:p.mode,speechInputMode:p.speechInputMode,speechOnly:this.bootstrap.speechOnly,attribution:this.bootstrap.attribution,signal:this.endpointAbortController.signal})):this.bootstrap.kind===`public`?A(this.bootstrap.experienceId,{locale:this.bootstrap.locale,secondaryLocale:this.bootstrap.secondaryLocale,learningLocale:this.bootstrap.learningLocale,language:this.bootstrap.language,mode:p.mode,speechInputMode:p.speechInputMode,speechOnly:this.bootstrap.speechOnly,attribution:this.bootstrap.attribution}):Promise.resolve(this.bootstrap.session?{session:this.bootstrap.session,launch:this.bootstrap.launch}:null),h;try{[,h]=await Promise.all([f.waitForLoad(),m])}catch(e){throw f.destroy(),this.iframeHost===f&&(this.iframeHost=null),e}finally{this.endpointAbortController=null}f.postParentHello();let g=h?.launch??(this.bootstrap.kind===`launch`?this.bootstrap.launch:null),_=h?.session??(this.bootstrap.kind===`launch`?this.bootstrap.session:void 0);if(!g)throw f.destroy(),this.iframeHost===f&&(this.iframeHost=null),Error(`Session Launch response did not include a launch token.`);return this.launchToken=g,_?(this.resolvedSession=_,this.bootstrap.kind===`launch`&&w(_),f.postLaunch(g,_,{startButton:e.startButton,showFeedback:e.showFeedback}),u.setValue(_)):f.postLaunch(g,void 0,{startButton:e.startButton,showFeedback:e.showFeedback}),await Promise.race([s,new Promise((e,t)=>{setTimeout(()=>t(Error(`Timed out waiting for player loading UI.`)),12e4)})]),await Promise.race([l,new Promise((e,t)=>{setTimeout(()=>t(Error(`Timed out waiting for player ready state.`)),12e4)})]),this.attached=!0,this.pendingFit&&await f.setFit(this.pendingFit),this.createPlayerFacade()}async startListening(){this.assertSessionStarted(),await this.iframeHost.startListening()}async stopListening(){return this.assertSessionStarted(),this.iframeHost.stopListening()}async listenOnce(e){return this.assertSessionStarted(),this.iframeHost.listenOnce({timeoutMs:e?.timeoutMs})}getConversation(){return this.conversationCache}setWidgetChrome(e){this.iframeHost?.postWidgetSetChrome(e)}toggleAudioSettings(){this.iframeHost?.postWidgetToggleAudioSettings()}async focusCharacter(e){this.assertSessionStarted(),await this.iframeHost.focusCharacter(e)}async setFit(e){let t=tt(e);if(!t)throw Error(`setFit requires "full", "medium", or "face".`);if(this.closed)throw Error(`Session has ended.`);this.pendingFit=t,!(!this.attached||!this.iframeHost)&&await this.iframeHost.setFit(t)}async conversion(e){if(this.closed)throw Error(`Session has ended.`);if(!this.iframeHost)throw Error(`conversion() requires attach() first.`);await this.iframeHost.conversion(e)}getLastTurn(){if(this.conversationCache.length===0)return[];let e=this.conversationCache[this.conversationCache.length-1].turnId;return this.conversationCache.filter(t=>t.turnId===e)}async end(){this.close()}destroy(){this.closed||(this.closed=!0,this.processorAbortController?.abort(),this.processorAbortController=null,this.endpointAbortController?.abort(),this.endpointAbortController=null,this.attachInFlight=null,this.iframeHost?.destroy(),this.iframeHost=null,De(this.eventRegistry),this.readyEnvelope=null,this.startedEnvelope=null,this.closeHandlers.length=0,this.attached=!1)}resolveMintInteraction(){return this.bootstrap.kind===`launch`?{}:{mode:this.bootstrap.mode,speechInputMode:this.bootstrap.speechInputMode}}getSessionId(){return this.resolvedSession?.id??``}emitWrapped(e,t){let n=we(e,this.getSessionId(),t);return U(this.eventRegistry,e,n),n}queueProcessorTurn(e){if(!e.isFinal||!e.text.trim()||!this.conversationProcessor)return;let t=this.conversationProcessor;this.processorAbortController?.abort(),this.processorAbortController=new AbortController;let n=this.processorAbortController.signal;this.processorChain=this.processorChain.then(async()=>{if(!n.aborted)try{let r=await P(t,{utteranceId:e.utteranceId,text:e.text,conversation:this.conversationCache,signal:n});if(n.aborted)return;if(r.kind===`complete`){let e=r.speech;await this.speech.speak({text:e.text,...e.characterId?{characterId:e.characterId}:{},queue:e.behavior===`interrupt`?`replace-active`:`append`});return}await this.iframeHost.speakProcessorStream(r.stream,{signal:n})}catch(t){if(n.aborted)return;let r=t instanceof Error?t.message:String(t);this.emitWrapped(`conversationProcessorError`,{utteranceId:e.utteranceId,message:r})}})}assertAttached(){if(!this.attached||!this.iframeHost)throw Error(`Call Experience.attach() before using speech APIs.`)}assertSessionStarted(){if(this.assertAttached(),!this.startedEnvelope)throw Error(`Session has not started. Wait for the player start button and the started event before using speak() or listening APIs.`)}close(){this.closed||(this.closed=!0,this.endpointAbortController?.abort(),this.endpointAbortController=null,this.attachInFlight=null,this.iframeHost?.destroy(),this.iframeHost=null,this.attached=!1)}createPlayerFacade(){return{close:()=>{this.close()},destroy:()=>{this.destroy()},on:(e,t)=>{e===`close`&&this.closeHandlers.push(t)}}}};function it(e){return e?{textSpeech:e.capabilities.speech.output,externalSpeechAudio:e.capabilities.speech.externalAudio}:{textSpeech:!0,externalSpeechAudio:!0}}function at(e,t){let n=e.trim();if(!n)return null;if(/^https?:\/\//i.test(n))try{return new URL(n)}catch{return null}let r=t.replace(/\/$/,``),i=n.startsWith(`/`)?n:`/${n}`;try{return new URL(i,`${r}/`)}catch{return null}}function ot(e){try{if(document.referrer){let e=new URL(document.referrer);if(e.origin===window.location.origin&&e.pathname!==window.location.pathname)return`${e.pathname}${e.search}${e.hash}`}}catch{}return e}function st(e,t=`/meet`){if(e.reason!==`user`)return;let n=at(e.returnUrl?.trim()||ot(t),window.location.origin);n?.protocol.startsWith(`http`)&&window.location.assign(n.toString())}var ct=/\b(exp_[A-Za-z0-9][A-Za-z0-9_-]{2,127})\b/,lt=/(?:Your origin|origin)\s+(\S+)\s+is not an allowed origin/i;function ut(e){return e instanceof Error?e.message:String(e)}function dt(){try{if(typeof globalThis.location?.origin==`string`&&globalThis.location.origin)return globalThis.location.origin}catch{}}function ft(e){return ct.exec(e)?.[1]}function pt(e){return lt.exec(e)?.[1]}function mt(e,t){let n=ut(e).trim()||`Unknown error`,r=t?.experienceId?.trim()||ft(n)||void 0,i=t?.origin?.trim()||pt(n)||dt()||void 0;return/No playable experience found/i.test(n)||/^Experience is not available\.?$/i.test(n)||/^Unknown experience\.?$/i.test(n)||/experience_unavailable/i.test(n)?{kind:`not_found`,title:`The application tried to load an avatar experience that doesn’t exist.`,detail:`Experience with id ${r??`the requested experience`} does not exist`,technicalMessage:n,experienceId:r,origin:i}:/origin_not_allowed/i.test(n)||/is not an allowed origin/i.test(n)||/^Origin not allowed/i.test(n)?{kind:`origin_not_allowed`,title:`The application tried to load an avatar experience from a website that isn’t allowed.`,detail:`Origin ${i??`this page`} is not allowed for experience ${r??`the requested experience`}`,technicalMessage:n,experienceId:r,origin:i}:/browser_embeds_disabled/i.test(n)||/^Browser embeds are not enabled/i.test(n)?{kind:`browser_embeds_disabled`,title:`The application tried to load an avatar experience that isn’t enabled for browser embeds.`,detail:`Browser embeds are not enabled for experience ${r??`the requested experience`}`,technicalMessage:n,experienceId:r,origin:i}:{kind:`generic`,title:`This avatar experience couldn’t be started.`,detail:n,technicalMessage:n,experienceId:r,origin:i}}var ht=`liforma-experience-load-error-styles`;function gt(){if(typeof document>`u`||document.getElementById(`liforma-experience-load-error-styles`))return;let e=document.createElement(`style`);e.id=ht,e.textContent=_t,document.head.append(e)}var _t=`
14
+ `,Ue=null;function We(){return Ue||=URL.createObjectURL(new Blob([He],{type:`application/javascript`})),Ue}function Ge(){return window.AudioContext||window.webkitAudioContext||null}async function Ke(e){let{mediaStream:t,targetSampleRate:n,onPcm:r,shouldSend:i,onLog:a}=e,o=Ge();if(!o)throw Error(`Web Audio is required for audio capture`);let s=new o,c=s.createMediaStreamSource(t),l=s.createGain();l.gain.value=0;let u=s.sampleRate,d=Be(u,n),f=!1,p=!1,m=e=>{if(f||i&&!i())return;let t=d.push(e);t.length!==0&&r(Re(t))},h=()=>void 0;return await(async()=>{if(typeof s.audioWorklet?.addModule!=`function`)return!1;try{await s.audioWorklet.addModule(We());let e=new AudioWorkletNode(s,Ve,{numberOfInputs:1,numberOfOutputs:1,outputChannelCount:[1]});return e.port.onmessage=e=>{e.data instanceof Float32Array&&m(e.data)},c.connect(e),e.connect(l),l.connect(s.destination),h=()=>{e.port.onmessage=null;try{e.disconnect()}catch{}try{c.disconnect()}catch{}try{l.disconnect()}catch{}},p=!0,!0}catch{return!1}})()?a?.(`Mic/track capture via AudioWorklet at ${u} Hz → ${n} Hz`):((()=>{let e=s.createScriptProcessor?.bind(s);if(!e)throw Error(`Neither AudioWorklet nor ScriptProcessor is available`);let t=e(4096,1,1);t.onaudioprocess=e=>{m(e.inputBuffer.getChannelData(0))},c.connect(t),t.connect(l),l.connect(s.destination),h=()=>{t.onaudioprocess=null;try{t.disconnect()}catch{}try{c.disconnect()}catch{}try{l.disconnect()}catch{}},p=!1})(),a?.(`Mic/track capture via ScriptProcessor at ${u} Hz → ${n} Hz`,`warn`)),s.state===`suspended`&&await s.resume().catch(()=>void 0),{fromSampleRate:u,usingWorklet:p,stop(){f||(f=!0,d.flush(),h(),s.close().catch(()=>void 0))}}}async function qe(e){let{track:t,utterance:n,sampleRate:r,signal:i}=e;if(typeof MediaStreamTrack>`u`||!(t instanceof MediaStreamTrack))throw new Y(`MediaStreamTrack is not available in this environment.`);if(t.kind!==`audio`)throw new Y(`speech.play track must be an audio MediaStreamTrack.`);if(t.readyState===`ended`||i?.aborted)return;let a=new MediaStream([t]),o=Promise.resolve(),s=!1,c=null,l=()=>{s||(s=!0,c?.stop(),c=null)};try{c=await Ke({mediaStream:a,targetSampleRate:r,shouldSend:()=>!s&&!i?.aborted,onPcm:e=>{if(s||i?.aborted)return;let t=Ie(e);o=o.then(async()=>{if(s||i?.aborted)return;let e=0;for(;e<t.byteLength;){let r=Math.min(e+q.MAX_CHUNK_BYTES,t.byteLength);if((r-e)%2==1&&--r,r<=e)break;let i=t.subarray(e,r);e=r,i.byteLength!==0&&await n.write(i)}}).catch(()=>{l()})}})}catch(e){throw l(),new Y(`MediaStreamTrack capture failed: ${e instanceof Error?e.message:String(e)}`)}await new Promise(e=>{let r=()=>{l(),o.finally(e)};t.addEventListener(`ended`,r,{once:!0}),i?.addEventListener(`abort`,()=>{n.cancel().catch(()=>void 0),r()},{once:!0}),(t.readyState===`ended`||i?.aborted)&&r()})}async function Je(e,t){if(G(e))throw new Y(`MediaStreamTrack play is handled on the host before embed.`);if(Oe(e)){let t=Ie(e.data);if(t.byteLength&1)throw new Y(`PCM byte length must be even.`);return{kind:`pcm`,data:t.slice().buffer,format:e.format}}if(W(e))return{kind:`url`,url:e.url.trim(),...e.sampleRate===void 0?{}:{sampleRate:e.sampleRate}};if(!K(e))throw new Y(`Unsupported speech.play audio shape.`);let n;if(typeof Blob<`u`&&e.data instanceof Blob){if(t?.aborted)throw new DOMException(`Play aborted.`,`AbortError`);n=new Uint8Array(await e.data.arrayBuffer())}else n=Ie(e.data);return{kind:`encoded`,data:n.slice().buffer,encoding:e.encoding.trim(),...e.sampleRate===void 0?{}:{sampleRate:e.sampleRate}}}function Ye(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`utt_${crypto.randomUUID().replace(/-/g,``).slice(0,12)}`:`utt_${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}function Xe(e,t=`completed`){return{utteranceId:e.speechId,characterId:e.characterId,status:t,durationMs:e.durationMs,transcript:e.text,animation:{mode:`tracked`,trackedDurationMs:e.durationMs,fallbackDurationMs:0}}}function Ze(e){return e instanceof Error?e:new Y(String(e))}function Qe(e){return e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`}var $e=class{id;characterId;result;format;host;signal;settleResolve;settleReject;settled=!1;closed=!1;writeChain=Promise.resolve();pendingWriteCount=0;pendingWriteWaiters=[];bufferedMs=0;sampleRate;beginPromise;constructor(e){this.id=e.id,this.characterId=e.characterId,this.format=e.format,this.host=e.host,this.signal=e.signal,this.sampleRate=e.format.sampleRate,this.result=new Promise((e,t)=>{this.settleResolve=e,this.settleReject=t}),this.result.catch(()=>void 0);let t=this.requireHost();this.beginPromise=t.speechUtteranceBegin({utteranceId:this.id,format:this.format,characterId:this.characterId,queue:e.queue,...e.transcript===void 0?{}:{transcript:e.transcript}}).catch(e=>{throw this.fail(Ze(e)),Ze(e)}),this.signal?.addEventListener(`abort`,()=>{this.cancel()},{once:!0})}async write(e,t){if(this.closed||this.settled||(await this.beginPromise.catch(()=>void 0),this.closed||this.settled))throw new J;let n=Ie(e);if(n.byteLength&1)throw new Y(`PCM chunk byte length must be even (complete s16 samples).`);if(n.byteLength>q.MAX_CHUNK_BYTES)throw new Y(`PCM chunk exceeds MAX_CHUNK_BYTES (${q.MAX_CHUNK_BYTES}).`);if(n.byteLength===0)return;let r=t?.timeoutMs??q.DEFAULT_WRITE_TIMEOUT_MS;await this.acquireWriteSlot(r);let i=n.byteLength/2/this.sampleRate*1e3;if(this.bufferedMs+i>q.MAX_UTTERANCE_DURATION_MS)throw this.releaseWriteSlot(),new Y(`Utterance exceeds MAX_UTTERANCE_DURATION_MS.`);let a=async()=>{if(this.closed||this.settled)throw new J;let e=this.requireHost(),t=n.slice(),i=e.speechUtteranceWrite({utteranceId:this.id,audio:t.buffer,byteLength:t.byteLength}),a=await Promise.race([i,new Promise((e,t)=>{setTimeout(()=>t(new X),r)})]);this.bufferedMs=Math.max(0,a.bufferedMs)},o=this.writeChain.then(a,a);this.writeChain=o.then(()=>void 0,()=>void 0);try{await o}finally{this.releaseWriteSlot()}}async setTranscript(e){if(this.closed||this.settled||(await this.beginPromise.catch(()=>void 0),this.closed||this.settled))throw new J;await this.requireHost().speechUtteranceSetTranscript({utteranceId:this.id,transcript:e})}async close(e){if(this.settled)return this.result;this.closed=!0,await this.beginPromise.catch(()=>void 0),await this.writeChain.catch(()=>void 0);try{let t=await this.requireHost().speechUtteranceClose({utteranceId:this.id,transcript:e?.transcript,history:e?.history??`none`});return this.resolve(t),t}catch(e){let t=Ze(e);throw this.fail(t),t}}async cancel(){if(this.settled)return this.result;this.closed=!0;try{let e=this.host.getIframeHost();if(e){let t=await e.speechUtteranceCancel({utteranceId:this.id});return this.resolve(t),t}let t={utteranceId:this.id,characterId:this.characterId,status:`cancelled`,durationMs:0,animation:je(`none`)};return this.resolve(t),t}catch(e){let t=Ze(e);throw this.fail(t),t}}adoptExternalResult(e){this.resolve(e)}requireHost(){let e=this.host.getIframeHost();if(!e)throw new Y(`Speech session is not attached.`);return e}resolve(e){this.settled||(this.settled=!0,this.settleResolve(Object.freeze(e)),this.flushWriteWaiters(new J))}fail(e){this.settled||(this.settled=!0,this.settleReject(e),this.flushWriteWaiters(e))}async acquireWriteSlot(e){if(this.pendingWriteCount<q.MAX_PENDING_WRITES){this.pendingWriteCount+=1;return}await new Promise((t,n)=>{let r=setTimeout(()=>{n(new X)},e);this.pendingWriteWaiters.push({resolve:()=>{clearTimeout(r),this.pendingWriteCount+=1,t()},reject:e=>{clearTimeout(r),n(e)}})})}releaseWriteSlot(){this.pendingWriteCount=Math.max(0,this.pendingWriteCount-1),this.pendingWriteWaiters.shift()?.resolve()}flushWriteWaiters(e){for(;this.pendingWriteWaiters.length>0;)this.pendingWriteWaiters.shift()?.reject(e)}};function et(e){let t=null,n=(t,n)=>{if(!e.getCapabilities()[n])throw new Ae(t,n)},r={async speak(r){if(e.assertSessionStarted(),n(`speak`,`textSpeech`),r.signal?.aborted)throw new DOMException(`Speak aborted.`,`AbortError`);let i=Le(r.queue??`append`);i===`interrupt`&&(e.onProcessorInterrupt?.(),t&&=(t.cancel(),null));let a=e.getIframeHost();if(!a)throw new Y(`Speech session is not attached.`);let o=a.speak({text:r.text,characterId:r.characterId,behavior:i});if(r.signal){let t=r.signal;return await new Promise((n,i)=>{let s=()=>{a.speechInterrupt({scope:`active`}).catch(()=>void 0),i(new DOMException(`Speak aborted.`,`AbortError`))};if(t.aborted){s();return}t.addEventListener(`abort`,s,{once:!0}),o.then(e=>{t.removeEventListener(`abort`,s),n(Xe(e,`completed`))},a=>{if(t.removeEventListener(`abort`,s),Qe(a)){n({utteranceId:`utt_interrupted`,characterId:r.characterId??e.getActiveCharacterId(),status:`interrupted`,durationMs:0,transcript:r.text,animation:je(`none`)});return}i(Ze(a))})})}try{return Xe(await o,`completed`)}catch(t){if(Qe(t))return{utteranceId:`utt_interrupted`,characterId:r.characterId??e.getActiveCharacterId(),status:`interrupted`,durationMs:0,transcript:r.text,animation:je(`none`)};throw Ze(t)}},async play(i){if(e.assertSessionStarted(),n(`play`,`externalSpeechAudio`),Pe(i.audio),i.signal?.aborted)throw new DOMException(`Play aborted.`,`AbortError`);let a=i.queue??`append`;if((a===`replace-active`||a===`replace-all`)&&(e.onProcessorInterrupt?.(),t&&=(t.cancel(),null)),G(i.audio)){let e=i.audio.sampleRate??24e3;return r.createUtterance({format:{encoding:`pcm_s16le`,sampleRate:e,channels:1},track:i.audio.track,characterId:i.characterId,queue:a===`append`?`replace-active`:a,signal:i.signal}).result}let o=e.getIframeHost();if(!o)throw new Y(`Speech session is not attached.`);let s=await Je(i.audio,i.signal);return o.speechPlay({source:s,characterId:i.characterId,transcript:i.transcript,history:i.history??`none`,queue:a,signal:i.signal})},createUtterance(r){e.assertSessionStarted(),n(`createUtterance`,`externalSpeechAudio`);let i=Fe(r);if(r.track&&r.track.kind!==`audio`)throw new Y(`createUtterance track must be an audio MediaStreamTrack.`);let a=r.queue??`replace-active`;if(a!==`replace-active`&&a!==`replace-all`)throw new Y(`createUtterance queue must be replace-active or replace-all.`);e.onProcessorInterrupt?.(),t&&=(t.cancel(),null);let o=new $e({id:Ye(),characterId:r.characterId??e.getActiveCharacterId(),format:i,queue:a,host:e,...r.transcript===void 0?{}:{transcript:r.transcript},signal:r.signal});return t=o,o.result.finally(()=>{t===o&&(t=null)}),r.track&&(async()=>{try{if(await qe({track:r.track,utterance:o,sampleRate:i.sampleRate,signal:r.signal}),r.signal?.aborted)return;await o.close({history:`none`})}catch{await o.cancel().catch(()=>void 0)}})(),o},async interrupt(n){e.assertSessionStarted(),e.onProcessorInterrupt?.();let r=e.getIframeHost();if(!r)return[];let i=await r.speechInterrupt(n??{scope:`active`});if(t){let e=i.find(e=>e.utteranceId===t.id);e&&t.adoptExternalResult(e),t=null}return i}};return r}function tt(e){let t=e?.trim();return t===`full`||t===`face`||t===`medium`?t:void 0}function nt(e){return!!(e.showClose===!0||e.returnUrl?.trim()||e.closeButton===!0||e.closeButton&&typeof e.closeButton==`object`&&e.closeButton.visible!==!1)}var rt=class e{bootstrap;conversationProcessor;iframeHost=null;attachInFlight=null;endpointAbortController=null;processorAbortController=null;processorChain=Promise.resolve();resolvedSession;launchToken;attachReturnUrl=null;closed=!1;attached=!1;pendingFit=null;closeHandlers=[];eventRegistry=Te();readyEnvelope=null;startedEnvelope=null;conversationCache=[];speech;constructor(e){this.bootstrap=e,this.conversationProcessor=e.conversationProcessor??null,this.resolvedSession=e.kind===`launch`?e.session??null:null,this.launchToken=e.kind===`launch`?e.launch:null,this.speech=et({getIframeHost:()=>this.iframeHost,assertSessionStarted:()=>this.assertSessionStarted(),getCapabilities:()=>it(this.resolvedSession),getActiveCharacterId:()=>`character_unknown`,onProcessorInterrupt:()=>{this.processorAbortController?.abort(),this.processorAbortController=null}})}static async startSession(t){if(`launch`in t&&typeof t.launch==`string`){let n=t.launch.trim();if(!n)throw Error(`StartSessionOptions.launch must be a non-empty string.`);return new e({kind:`launch`,launch:n,session:t.session,backdropId:t.backdropId,locationId:t.locationId,avatarId:t.avatarId,embedBaseUrl:t.embedBaseUrl,debug:t.debug,speechOnly:t.speechOnly,ui:t.ui,onStart:t.onStart,onUserTranscript:t.onUserTranscript,conversationProcessor:t.conversationProcessor})}if(`sessionEndpoint`in t)return new e({kind:`sessionEndpoint`,experienceId:t.experienceId,sessionEndpoint:t.sessionEndpoint,locale:t.locale,secondaryLocale:t.secondaryLocale,learningLocale:t.learningLocale,language:t.language,backdropId:t.backdropId,locationId:t.locationId,avatarId:t.avatarId,castSize:t.castSize,embedBaseUrl:t.embedBaseUrl,debug:t.debug,mode:t.mode,speechInputMode:t.speechInputMode,speechOnly:t.speechOnly,attribution:t.attribution,ui:t.ui,onStart:t.onStart,onUserTranscript:t.onUserTranscript,conversationProcessor:t.conversationProcessor});if(`experienceId`in t)return new e({kind:`public`,experienceId:t.experienceId,locale:t.locale,secondaryLocale:t.secondaryLocale,learningLocale:t.learningLocale,language:t.language,backdropId:t.backdropId,locationId:t.locationId,avatarId:t.avatarId,castSize:t.castSize,embedBaseUrl:t.embedBaseUrl,debug:t.debug,mode:t.mode,speechInputMode:t.speechInputMode,speechOnly:t.speechOnly,attribution:t.attribution,ui:t.ui,onStart:t.onStart,onUserTranscript:t.onUserTranscript,conversationProcessor:t.conversationProcessor});throw Error(`Experience.startSession requires experienceId, sessionEndpoint, or launch.`)}getSession(){return this.resolvedSession}getManifest(){return null}on(e,t){let n=Ee(this.eventRegistry,e,t);return e===`ready`&&this.readyEnvelope&&queueMicrotask(()=>t(this.readyEnvelope)),e===`started`&&this.startedEnvelope&&queueMicrotask(()=>t(this.startedEnvelope)),n}async attach(e){if(this.closed)throw Error(`Session has ended.`);if(!e.container)throw Error(`Experience.attach requires a DOM container element.`);return this.attached&&this.iframeHost?this.createPlayerFacade():(this.attachInFlight||=this.attachInternal(e).finally(()=>{this.attachInFlight=null}),this.attachInFlight)}async attachInternal(e){if(this.closed)throw Error(`Session has ended.`);if(this.attached&&this.iframeHost)return this.createPlayerFacade();this.iframeHost&&=(this.iframeHost.destroy(),null),this.attachReturnUrl=e.returnUrl?.trim()||null;let t=this.bootstrap.embedBaseUrl??ye(),n=this.bootstrap.debug===!0,r=this.bootstrap.speechOnly===!0,i=be(t,n,r?void 0:H(this.bootstrap.backdropId,this.bootstrap.locationId),r?void 0:this.bootstrap.avatarId,e.fit,this.bootstrap.ui,nt(e),this.bootstrap.kind===`launch`?void 0:this.bootstrap.castSize),a=Se(i),o=null,s=new Promise(e=>{o=e}),c=null,l=new Promise(e=>{c=e}),u=he(e=>{this.readyEnvelope||=(this.resolvedSession=e,this.emitWrapped(`ready`,{session:e}))}),d=this.bootstrap.onUserTranscript,f=V({container:e.container,src:i,playerOrigin:a,transparent:this.bootstrap.ui===`widget`,onClose:e=>{let t=e.returnUrl||!this.attachReturnUrl?e:{...e,returnUrl:this.attachReturnUrl};for(let e of this.closeHandlers)e(t)},onPlayerStatusChange:t=>{e.onPlayerStatusChange?.(t),e.onStateUpdate?.(t),t===`loading`&&o&&(o(),o=null),t===`ready`&&c&&(c(),c=null),t===`ready`&&u.markReady()},onUserTranscript:e=>{this.emitWrapped(`userTranscript`,e),d?.(e),this.queueProcessorTurn(e)},onUserSpeechStarted:e=>{this.emitWrapped(`userSpeechStarted`,e)},onUserSpeechEnded:e=>{this.emitWrapped(`userSpeechEnded`,e)},onCharacterSpeechStarted:e=>{this.emitWrapped(`characterSpeechStarted`,e)},onCharacterSpeechEnded:e=>{this.emitWrapped(`characterSpeechEnded`,e)},onCharacterFocusChanged:e=>{this.emitWrapped(`characterFocusChanged`,e)},onListeningState:e=>{this.emitWrapped(`listeningState`,e)},onActivityChange:e=>{this.emitWrapped(`activityChange`,e)},onFeedback:e=>{this.emitWrapped(`feedback`,e)},onFeedbackFailed:e=>{this.emitWrapped(`feedbackFailed`,e)},onMessage:e=>{this.emitWrapped(`message`,e)},onStarted:e=>{this.startedEnvelope||(this.startedEnvelope=this.emitWrapped(`started`,e),this.bootstrap.onStart?.(e))},onConversationUpdate:e=>{this.conversationCache=e,this.emitWrapped(`conversationUpdate`,e)},onWidgetReady:()=>e.onWidgetReady?.(),onWidgetExpand:()=>e.onWidgetExpand?.(),onWidgetCollapse:()=>e.onWidgetCollapse?.(),onWidgetAudioSettings:t=>e.onWidgetAudioSettings?.(t),onWidgetDragStart:t=>e.onWidgetDragStart?.(t),onWidgetDragMove:t=>e.onWidgetDragMove?.(t),onWidgetDragEnd:t=>e.onWidgetDragEnd?.(t)});this.iframeHost=f;let p=this.resolveMintInteraction(),m=this.bootstrap.kind===`sessionEndpoint`?(this.endpointAbortController=new AbortController,j(this.bootstrap.sessionEndpoint,{experienceId:this.bootstrap.experienceId,locale:this.bootstrap.locale,secondaryLocale:this.bootstrap.secondaryLocale,learningLocale:this.bootstrap.learningLocale,language:this.bootstrap.language,mode:p.mode,speechInputMode:p.speechInputMode,speechOnly:this.bootstrap.speechOnly,attribution:this.bootstrap.attribution,signal:this.endpointAbortController.signal})):this.bootstrap.kind===`public`?A(this.bootstrap.experienceId,{locale:this.bootstrap.locale,secondaryLocale:this.bootstrap.secondaryLocale,learningLocale:this.bootstrap.learningLocale,language:this.bootstrap.language,mode:p.mode,speechInputMode:p.speechInputMode,speechOnly:this.bootstrap.speechOnly,attribution:this.bootstrap.attribution}):Promise.resolve(this.bootstrap.session?{session:this.bootstrap.session,launch:this.bootstrap.launch}:null),h;try{[,h]=await Promise.all([f.waitForLoad(),m])}catch(e){throw f.destroy(),this.iframeHost===f&&(this.iframeHost=null),e}finally{this.endpointAbortController=null}f.postParentHello();let g=h?.launch??(this.bootstrap.kind===`launch`?this.bootstrap.launch:null),_=h?.session??(this.bootstrap.kind===`launch`?this.bootstrap.session:void 0);if(!g)throw f.destroy(),this.iframeHost===f&&(this.iframeHost=null),Error(`Session Launch response did not include a launch token.`);return this.launchToken=g,_?(this.resolvedSession=_,this.bootstrap.kind===`launch`&&w(_),f.postLaunch(g,_,{startButton:e.startButton,theme:e.theme,showFeedback:e.showFeedback}),u.setValue(_)):f.postLaunch(g,void 0,{startButton:e.startButton,theme:e.theme,showFeedback:e.showFeedback}),await Promise.race([s,new Promise((e,t)=>{setTimeout(()=>t(Error(`Timed out waiting for player loading UI.`)),12e4)})]),await Promise.race([l,new Promise((e,t)=>{setTimeout(()=>t(Error(`Timed out waiting for player ready state.`)),12e4)})]),this.attached=!0,this.pendingFit&&await f.setFit(this.pendingFit),this.createPlayerFacade()}async startListening(){this.assertSessionStarted(),await this.iframeHost.startListening()}async stopListening(){return this.assertSessionStarted(),this.iframeHost.stopListening()}async listenOnce(e){return this.assertSessionStarted(),this.iframeHost.listenOnce({timeoutMs:e?.timeoutMs})}getConversation(){return this.conversationCache}setWidgetChrome(e){this.iframeHost?.postWidgetSetChrome(e)}toggleAudioSettings(){this.iframeHost?.postWidgetToggleAudioSettings()}async focusCharacter(e){this.assertSessionStarted(),await this.iframeHost.focusCharacter(e)}async setFit(e){let t=tt(e);if(!t)throw Error(`setFit requires "full", "medium", or "face".`);if(this.closed)throw Error(`Session has ended.`);this.pendingFit=t,!(!this.attached||!this.iframeHost)&&await this.iframeHost.setFit(t)}async conversion(e){if(this.closed)throw Error(`Session has ended.`);if(!this.iframeHost)throw Error(`conversion() requires attach() first.`);await this.iframeHost.conversion(e)}getLastTurn(){if(this.conversationCache.length===0)return[];let e=this.conversationCache[this.conversationCache.length-1].turnId;return this.conversationCache.filter(t=>t.turnId===e)}async end(){this.close()}destroy(){this.closed||(this.closed=!0,this.processorAbortController?.abort(),this.processorAbortController=null,this.endpointAbortController?.abort(),this.endpointAbortController=null,this.attachInFlight=null,this.iframeHost?.destroy(),this.iframeHost=null,De(this.eventRegistry),this.readyEnvelope=null,this.startedEnvelope=null,this.closeHandlers.length=0,this.attached=!1)}resolveMintInteraction(){return this.bootstrap.kind===`launch`?{}:{mode:this.bootstrap.mode,speechInputMode:this.bootstrap.speechInputMode}}getSessionId(){return this.resolvedSession?.id??``}emitWrapped(e,t){let n=we(e,this.getSessionId(),t);return U(this.eventRegistry,e,n),n}queueProcessorTurn(e){if(!e.isFinal||!e.text.trim()||!this.conversationProcessor)return;let t=this.conversationProcessor;this.processorAbortController?.abort(),this.processorAbortController=new AbortController;let n=this.processorAbortController.signal;this.processorChain=this.processorChain.then(async()=>{if(!n.aborted)try{let r=await P(t,{utteranceId:e.utteranceId,text:e.text,conversation:this.conversationCache,signal:n});if(n.aborted)return;if(r.kind===`complete`){let e=r.speech;await this.speech.speak({text:e.text,...e.characterId?{characterId:e.characterId}:{},queue:e.behavior===`interrupt`?`replace-active`:`append`});return}await this.iframeHost.speakProcessorStream(r.stream,{signal:n})}catch(t){if(n.aborted)return;let r=t instanceof Error?t.message:String(t);this.emitWrapped(`conversationProcessorError`,{utteranceId:e.utteranceId,message:r})}})}assertAttached(){if(!this.attached||!this.iframeHost)throw Error(`Call Experience.attach() before using speech APIs.`)}assertSessionStarted(){if(this.assertAttached(),!this.startedEnvelope)throw Error(`Session has not started. Wait for the player start button and the started event before using speak() or listening APIs.`)}close(){this.closed||(this.closed=!0,this.endpointAbortController?.abort(),this.endpointAbortController=null,this.attachInFlight=null,this.iframeHost?.destroy(),this.iframeHost=null,this.attached=!1)}createPlayerFacade(){return{close:()=>{this.close()},destroy:()=>{this.destroy()},on:(e,t)=>{e===`close`&&this.closeHandlers.push(t)}}}};function it(e){return e?{textSpeech:e.capabilities.speech.output,externalSpeechAudio:e.capabilities.speech.externalAudio}:{textSpeech:!0,externalSpeechAudio:!0}}function at(e,t){let n=e.trim();if(!n)return null;if(/^https?:\/\//i.test(n))try{return new URL(n)}catch{return null}let r=t.replace(/\/$/,``),i=n.startsWith(`/`)?n:`/${n}`;try{return new URL(i,`${r}/`)}catch{return null}}function ot(e){try{if(document.referrer){let e=new URL(document.referrer);if(e.origin===window.location.origin&&e.pathname!==window.location.pathname)return`${e.pathname}${e.search}${e.hash}`}}catch{}return e}function st(e,t=`/meet`){if(e.reason!==`user`)return;let n=at(e.returnUrl?.trim()||ot(t),window.location.origin);n?.protocol.startsWith(`http`)&&window.location.assign(n.toString())}var ct=/\b(exp_[A-Za-z0-9][A-Za-z0-9_-]{2,127})\b/,lt=/(?:Your origin|origin)\s+(\S+)\s+is not an allowed origin/i;function ut(e){return e instanceof Error?e.message:String(e)}function dt(){try{if(typeof globalThis.location?.origin==`string`&&globalThis.location.origin)return globalThis.location.origin}catch{}}function ft(e){return ct.exec(e)?.[1]}function pt(e){return lt.exec(e)?.[1]}function mt(e,t){let n=ut(e).trim()||`Unknown error`,r=t?.experienceId?.trim()||ft(n)||void 0,i=t?.origin?.trim()||pt(n)||dt()||void 0;return/No playable experience found/i.test(n)||/^Experience is not available\.?$/i.test(n)||/^Unknown experience\.?$/i.test(n)||/experience_unavailable/i.test(n)?{kind:`not_found`,title:`The application tried to load an avatar experience that doesn’t exist.`,detail:`Experience with id ${r??`the requested experience`} does not exist`,technicalMessage:n,experienceId:r,origin:i}:/origin_not_allowed/i.test(n)||/is not an allowed origin/i.test(n)||/^Origin not allowed/i.test(n)?{kind:`origin_not_allowed`,title:`The application tried to load an avatar experience from a website that isn’t allowed.`,detail:`Origin ${i??`this page`} is not allowed for experience ${r??`the requested experience`}`,technicalMessage:n,experienceId:r,origin:i}:/browser_embeds_disabled/i.test(n)||/^Browser embeds are not enabled/i.test(n)?{kind:`browser_embeds_disabled`,title:`The application tried to load an avatar experience that isn’t enabled for browser embeds.`,detail:`Browser embeds are not enabled for experience ${r??`the requested experience`}`,technicalMessage:n,experienceId:r,origin:i}:{kind:`generic`,title:`This avatar experience couldn’t be started.`,detail:n,technicalMessage:n,experienceId:r,origin:i}}var ht=`liforma-experience-load-error-styles`;function gt(){if(typeof document>`u`||document.getElementById(`liforma-experience-load-error-styles`))return;let e=document.createElement(`style`);e.id=ht,e.textContent=_t,document.head.append(e)}var _t=`
15
15
  .liforma-loading-screen {
16
16
  inset: 0;
17
17
  z-index: 20;