@hypercli.com/sdk 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/README.md +629 -0
  2. package/dist/acp-driver.d.ts +72 -0
  3. package/dist/acp-driver.d.ts.map +1 -0
  4. package/dist/acp-driver.js +147 -0
  5. package/dist/acp-driver.js.map +1 -0
  6. package/dist/acp-pool.d.ts +70 -0
  7. package/dist/acp-pool.d.ts.map +1 -0
  8. package/dist/acp-pool.js +181 -0
  9. package/dist/acp-pool.js.map +1 -0
  10. package/dist/acp.d.ts +179 -0
  11. package/dist/acp.d.ts.map +1 -0
  12. package/dist/acp.js +487 -0
  13. package/dist/acp.js.map +1 -0
  14. package/dist/agent-persona.d.ts +68 -0
  15. package/dist/agent-persona.d.ts.map +1 -0
  16. package/dist/agent-persona.js +78 -0
  17. package/dist/agent-persona.js.map +1 -0
  18. package/dist/agent-slots.d.ts +18 -0
  19. package/dist/agent-slots.d.ts.map +1 -0
  20. package/dist/agent-slots.js +24 -0
  21. package/dist/agent-slots.js.map +1 -0
  22. package/dist/agent-urls.d.ts +47 -0
  23. package/dist/agent-urls.d.ts.map +1 -0
  24. package/dist/agent-urls.js +178 -0
  25. package/dist/agent-urls.js.map +1 -0
  26. package/dist/agent.d.ts +482 -0
  27. package/dist/agent.d.ts.map +1 -0
  28. package/dist/agent.js +926 -0
  29. package/dist/agent.js.map +1 -0
  30. package/dist/agents.d.ts +1452 -0
  31. package/dist/agents.d.ts.map +1 -0
  32. package/dist/agents.js +4022 -0
  33. package/dist/agents.js.map +1 -0
  34. package/dist/billing.d.ts +72 -0
  35. package/dist/billing.d.ts.map +1 -0
  36. package/dist/billing.js +93 -0
  37. package/dist/billing.js.map +1 -0
  38. package/dist/browser-jobs.d.ts +24 -0
  39. package/dist/browser-jobs.d.ts.map +1 -0
  40. package/dist/browser-jobs.js +209 -0
  41. package/dist/browser-jobs.js.map +1 -0
  42. package/dist/browser.d.ts +41 -0
  43. package/dist/browser.d.ts.map +1 -0
  44. package/dist/browser.js +57 -0
  45. package/dist/browser.js.map +1 -0
  46. package/dist/buzz-activity.d.ts +169 -0
  47. package/dist/buzz-activity.d.ts.map +1 -0
  48. package/dist/buzz-activity.js +844 -0
  49. package/dist/buzz-activity.js.map +1 -0
  50. package/dist/channels.d.ts +99 -0
  51. package/dist/channels.d.ts.map +1 -0
  52. package/dist/channels.js +27 -0
  53. package/dist/channels.js.map +1 -0
  54. package/dist/chat-integrations.d.ts +44 -0
  55. package/dist/chat-integrations.d.ts.map +1 -0
  56. package/dist/chat-integrations.js +138 -0
  57. package/dist/chat-integrations.js.map +1 -0
  58. package/dist/client.d.ts +88 -0
  59. package/dist/client.d.ts.map +1 -0
  60. package/dist/client.js +144 -0
  61. package/dist/client.js.map +1 -0
  62. package/dist/config.d.ts +44 -0
  63. package/dist/config.d.ts.map +1 -0
  64. package/dist/config.js +192 -0
  65. package/dist/config.js.map +1 -0
  66. package/dist/connectors.d.ts +80 -0
  67. package/dist/connectors.d.ts.map +1 -0
  68. package/dist/connectors.js +2 -0
  69. package/dist/connectors.js.map +1 -0
  70. package/dist/errors.d.ts +16 -0
  71. package/dist/errors.d.ts.map +1 -0
  72. package/dist/errors.js +26 -0
  73. package/dist/errors.js.map +1 -0
  74. package/dist/files.d.ts +60 -0
  75. package/dist/files.d.ts.map +1 -0
  76. package/dist/files.js +128 -0
  77. package/dist/files.js.map +1 -0
  78. package/dist/http.d.ts +56 -0
  79. package/dist/http.d.ts.map +1 -0
  80. package/dist/http.js +362 -0
  81. package/dist/http.js.map +1 -0
  82. package/dist/index.d.ts +49 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +64 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/instances.d.ts +94 -0
  87. package/dist/instances.d.ts.map +1 -0
  88. package/dist/instances.js +197 -0
  89. package/dist/instances.js.map +1 -0
  90. package/dist/integrations.d.ts +111 -0
  91. package/dist/integrations.d.ts.map +1 -0
  92. package/dist/integrations.js +206 -0
  93. package/dist/integrations.js.map +1 -0
  94. package/dist/job/base.d.ts +86 -0
  95. package/dist/job/base.d.ts.map +1 -0
  96. package/dist/job/base.js +206 -0
  97. package/dist/job/base.js.map +1 -0
  98. package/dist/job/comfyui.d.ts +259 -0
  99. package/dist/job/comfyui.d.ts.map +1 -0
  100. package/dist/job/comfyui.js +1563 -0
  101. package/dist/job/comfyui.js.map +1 -0
  102. package/dist/job/gradio.d.ts +48 -0
  103. package/dist/job/gradio.d.ts.map +1 -0
  104. package/dist/job/gradio.js +90 -0
  105. package/dist/job/gradio.js.map +1 -0
  106. package/dist/job-codecs.d.ts +66 -0
  107. package/dist/job-codecs.d.ts.map +1 -0
  108. package/dist/job-codecs.js +132 -0
  109. package/dist/job-codecs.js.map +1 -0
  110. package/dist/jobs.d.ts +148 -0
  111. package/dist/jobs.d.ts.map +1 -0
  112. package/dist/jobs.js +480 -0
  113. package/dist/jobs.js.map +1 -0
  114. package/dist/keys.d.ts +99 -0
  115. package/dist/keys.d.ts.map +1 -0
  116. package/dist/keys.js +145 -0
  117. package/dist/keys.js.map +1 -0
  118. package/dist/logs.d.ts +54 -0
  119. package/dist/logs.d.ts.map +1 -0
  120. package/dist/logs.js +256 -0
  121. package/dist/logs.js.map +1 -0
  122. package/dist/managed-context.d.ts +20 -0
  123. package/dist/managed-context.d.ts.map +1 -0
  124. package/dist/managed-context.js +95 -0
  125. package/dist/managed-context.js.map +1 -0
  126. package/dist/mcp.d.ts +7 -0
  127. package/dist/mcp.d.ts.map +1 -0
  128. package/dist/mcp.js +8 -0
  129. package/dist/mcp.js.map +1 -0
  130. package/dist/memory.d.ts +87 -0
  131. package/dist/memory.d.ts.map +1 -0
  132. package/dist/memory.js +79 -0
  133. package/dist/memory.js.map +1 -0
  134. package/dist/models.d.ts +15 -0
  135. package/dist/models.d.ts.map +1 -0
  136. package/dist/models.js +19 -0
  137. package/dist/models.js.map +1 -0
  138. package/dist/openclaw-control-ui-origin.d.ts +23 -0
  139. package/dist/openclaw-control-ui-origin.d.ts.map +1 -0
  140. package/dist/openclaw-control-ui-origin.js +53 -0
  141. package/dist/openclaw-control-ui-origin.js.map +1 -0
  142. package/dist/renders.d.ts +187 -0
  143. package/dist/renders.d.ts.map +1 -0
  144. package/dist/renders.js +360 -0
  145. package/dist/renders.js.map +1 -0
  146. package/dist/routines.d.ts +59 -0
  147. package/dist/routines.d.ts.map +1 -0
  148. package/dist/routines.js +135 -0
  149. package/dist/routines.js.map +1 -0
  150. package/dist/runners.d.ts +61 -0
  151. package/dist/runners.d.ts.map +1 -0
  152. package/dist/runners.js +127 -0
  153. package/dist/runners.js.map +1 -0
  154. package/dist/sessions.d.ts +280 -0
  155. package/dist/sessions.d.ts.map +1 -0
  156. package/dist/sessions.js +292 -0
  157. package/dist/sessions.js.map +1 -0
  158. package/dist/skills.d.ts +170 -0
  159. package/dist/skills.d.ts.map +1 -0
  160. package/dist/skills.js +2 -0
  161. package/dist/skills.js.map +1 -0
  162. package/dist/user.d.ts +78 -0
  163. package/dist/user.d.ts.map +1 -0
  164. package/dist/user.js +143 -0
  165. package/dist/user.js.map +1 -0
  166. package/dist/version.d.ts +2 -0
  167. package/dist/version.d.ts.map +1 -0
  168. package/dist/version.js +3 -0
  169. package/dist/version.js.map +1 -0
  170. package/dist/voice-session.d.ts +66 -0
  171. package/dist/voice-session.d.ts.map +1 -0
  172. package/dist/voice-session.js +366 -0
  173. package/dist/voice-session.js.map +1 -0
  174. package/dist/voice-transcription-session.d.ts +64 -0
  175. package/dist/voice-transcription-session.d.ts.map +1 -0
  176. package/dist/voice-transcription-session.js +228 -0
  177. package/dist/voice-transcription-session.js.map +1 -0
  178. package/dist/voice.d.ts +62 -0
  179. package/dist/voice.d.ts.map +1 -0
  180. package/dist/voice.js +134 -0
  181. package/dist/voice.js.map +1 -0
  182. package/dist/workspace-tomd.d.ts +61 -0
  183. package/dist/workspace-tomd.d.ts.map +1 -0
  184. package/dist/workspace-tomd.js +177 -0
  185. package/dist/workspace-tomd.js.map +1 -0
  186. package/dist/workspaces.d.ts +255 -0
  187. package/dist/workspaces.d.ts.map +1 -0
  188. package/dist/workspaces.js +653 -0
  189. package/dist/workspaces.js.map +1 -0
  190. package/package.json +115 -0
  191. package/runtime/config-require.browser.js +4 -0
  192. package/runtime/config-require.d.ts +2 -0
  193. package/runtime/config-require.node.js +8 -0
package/dist/user.js ADDED
@@ -0,0 +1,143 @@
1
+ function userUi(meta) {
2
+ try {
3
+ const value = typeof meta === 'string' ? JSON.parse(meta) : meta;
4
+ const profile = value?.ui?.profile;
5
+ return typeof profile === 'string' || profile === null ? { profile } : {};
6
+ }
7
+ catch {
8
+ return {};
9
+ }
10
+ }
11
+ function userProfileImageFromDict(data) {
12
+ return {
13
+ id: String(data?.id || ''),
14
+ avatarUrl: data?.avatar_url || null,
15
+ s3Key: data?.s3_key || null,
16
+ };
17
+ }
18
+ function deriveExternalId(data) {
19
+ if (data.external_id)
20
+ return data.external_id;
21
+ if (data.privy_user_id)
22
+ return data.privy_user_id;
23
+ if (data.wallet_address)
24
+ return `wallet:${String(data.wallet_address).toLowerCase()}`;
25
+ if (data.turnkey_org_id)
26
+ return `turnkey:${data.turnkey_org_id}`;
27
+ if (data.user_id)
28
+ return `orchestra:${data.user_id}`;
29
+ return null;
30
+ }
31
+ function userFromDict(data) {
32
+ return {
33
+ userId: data.user_id || '',
34
+ email: data.email || null,
35
+ name: data.name || null,
36
+ isActive: data.is_active !== false,
37
+ createdAt: data.created_at || '',
38
+ emailVerified: data.email_verified,
39
+ updatedAt: data.updated_at || '',
40
+ userType: data.user_type ?? null,
41
+ meta: data.meta ?? null,
42
+ ui: userUi(data.meta),
43
+ };
44
+ }
45
+ function authMeFromDict(data) {
46
+ // Tolerate both the nested `runtime` object and top-level runtime fields;
47
+ // the backend has served both shapes.
48
+ let runtime = null;
49
+ const runtimeValue = data?.runtime;
50
+ if (runtimeValue && typeof runtimeValue === 'object') {
51
+ runtime = {
52
+ runtime: String(runtimeValue.runtime || ''),
53
+ agentId: runtimeValue.agent_id || runtimeValue.agentId || null,
54
+ };
55
+ }
56
+ else if (typeof runtimeValue === 'string' && runtimeValue.trim()) {
57
+ runtime = {
58
+ runtime: runtimeValue.trim(),
59
+ agentId: data?.agent_id || data?.runtime_agent_id || null,
60
+ };
61
+ }
62
+ return {
63
+ userId: data.user_id || '',
64
+ orchestraUserId: data.orchestra_user_id || null,
65
+ externalId: deriveExternalId(data),
66
+ privyUserId: data.privy_user_id || null,
67
+ walletAddress: data.wallet_address || null,
68
+ userType: data.user_type || null,
69
+ teamId: data.team_id || '',
70
+ planId: data.plan_id || '',
71
+ email: data.email || null,
72
+ authType: data.auth_type || '',
73
+ capabilities: Array.isArray(data.capabilities) ? data.capabilities : [],
74
+ tags: Array.isArray(data.tags) ? data.tags : [],
75
+ runtime,
76
+ hasActiveSubscription: Boolean(data.has_active_subscription),
77
+ keyId: data.key_id || null,
78
+ keyName: data.key_name || null,
79
+ };
80
+ }
81
+ export function runtimeAgentId(auth) {
82
+ return auth.runtime?.runtime === 'agent' ? auth.runtime.agentId : null;
83
+ }
84
+ export function isRuntimeAgent(auth) {
85
+ return runtimeAgentId(auth) !== null;
86
+ }
87
+ export class UserAPI {
88
+ http;
89
+ authHttp;
90
+ profileHttp;
91
+ constructor(http, authHttp = http, profileHttp = authHttp) {
92
+ this.http = http;
93
+ this.authHttp = authHttp;
94
+ this.profileHttp = profileHttp;
95
+ }
96
+ /**
97
+ * Get current user info
98
+ */
99
+ async get() {
100
+ const data = await this.http.get('/api/user');
101
+ return userFromDict(data);
102
+ }
103
+ /**
104
+ * Resolve the current auth context, including key capabilities.
105
+ */
106
+ async authMe() {
107
+ const data = await this.authHttp.get('/api/auth/me');
108
+ return authMeFromDict(data);
109
+ }
110
+ /**
111
+ * Update the current user profile.
112
+ */
113
+ async update(options) {
114
+ const data = await this.http.patch('/api/user', options);
115
+ return userFromDict(data);
116
+ }
117
+ /** Omitted profile is untouched; null explicitly clears it. Maximum 32768 characters. */
118
+ async updateProfile(profile) {
119
+ return this.update({ ui: { profile } });
120
+ }
121
+ async getProfileImage() {
122
+ return userProfileImageFromDict(await this.profileHttp.get('/users/profile-image'));
123
+ }
124
+ async uploadProfileImage(content, contentType) {
125
+ let body;
126
+ let resolvedContentType = contentType || 'image/png';
127
+ if (content instanceof Blob) {
128
+ body = content;
129
+ resolvedContentType = contentType || content.type || resolvedContentType;
130
+ }
131
+ else if (ArrayBuffer.isView(content)) {
132
+ body = content;
133
+ }
134
+ else {
135
+ body = content;
136
+ }
137
+ return userProfileImageFromDict(await this.profileHttp.postRaw('/users/profile-image', body, resolvedContentType));
138
+ }
139
+ async deleteProfileImage() {
140
+ return userProfileImageFromDict(await this.profileHttp.delete('/users/profile-image'));
141
+ }
142
+ }
143
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const APP_VERSION = "0.9.1";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Generated by tools/sync_versions.py from versions.json.
2
+ export const APP_VERSION = '0.9.1';
3
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
@@ -0,0 +1,66 @@
1
+ export type VoiceSessionState = 'closed' | 'idle' | 'rendering' | 'receiving';
2
+ export interface VoiceAudioMetadata {
3
+ format?: string;
4
+ contentType?: string;
5
+ sampleRate?: number;
6
+ channels?: number;
7
+ sampleFormat?: string;
8
+ bytesPerSample?: number;
9
+ }
10
+ export interface VoiceChunkEvent {
11
+ requestId: string;
12
+ index: number;
13
+ /** null only for explicitly negotiated incremental PCM; DONE carries the count. */
14
+ total: number | null;
15
+ audio: Uint8Array;
16
+ final: boolean;
17
+ metadata?: VoiceAudioMetadata;
18
+ }
19
+ export interface VoiceSessionOptions {
20
+ /** Agents WS base, e.g. wss://api.agents.hypercli.com/ws */
21
+ wsUrl: string;
22
+ /** API key (hyper_api_...) or opaque access token. */
23
+ credential: string;
24
+ /** Per-request timeout in milliseconds (default 300 000). */
25
+ timeoutMs?: number;
26
+ }
27
+ export interface CloneSpeakOptions {
28
+ streamMode?: 'incremental_pcm';
29
+ text: string;
30
+ refAudio: Uint8Array | ArrayBuffer;
31
+ language?: string;
32
+ xVectorOnly?: boolean;
33
+ format?: string;
34
+ chunks?: boolean;
35
+ requestId?: string;
36
+ }
37
+ export declare class VoiceStreamError extends Error {
38
+ readonly code: string;
39
+ readonly detail: string;
40
+ constructor(code: string, detail: string);
41
+ }
42
+ export declare function encodeBase64(bytes: Uint8Array | ArrayBuffer): string;
43
+ export declare class VoiceSession {
44
+ state: VoiceSessionState;
45
+ private readonly wsUrl;
46
+ private readonly credential;
47
+ private readonly timeoutMs;
48
+ private ws;
49
+ private messages;
50
+ private waiter;
51
+ private closeError;
52
+ constructor(options: VoiceSessionOptions);
53
+ open(): Promise<this>;
54
+ close(): void;
55
+ cancel(requestId: string): Promise<void>;
56
+ /** Speak text in a voice cloned from reference audio. */
57
+ speakClone(options: CloneSpeakOptions): AsyncGenerator<VoiceChunkEvent, void, undefined>;
58
+ private runSpeak;
59
+ private readAudioPayload;
60
+ private drainCancelledRequest;
61
+ private send;
62
+ private enqueue;
63
+ private handleClose;
64
+ private nextMessage;
65
+ }
66
+ //# sourceMappingURL=voice-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-session.d.ts","sourceRoot":"","sources":["../src/voice-session.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,WAAW,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAiB,SAAQ,KAAK;aAEvB,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,MAAM;gBADd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAKjC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAWpE;AA2CD,qBAAa,YAAY;IACvB,KAAK,EAAE,iBAAiB,CAAY;IAEpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,EAAE,CAA0C;IACpD,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,UAAU,CAAsB;gBAE5B,OAAO,EAAE,mBAAmB;IAMlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC3B,KAAK,IAAI,IAAI;IAaP,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,yDAAyD;IAClD,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC;YAahF,QAAQ;YA2IT,gBAAgB;YAYhB,qBAAqB;IAuBnC,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;CAyBpB"}
@@ -0,0 +1,366 @@
1
+ export class VoiceStreamError extends Error {
2
+ code;
3
+ detail;
4
+ constructor(code, detail) {
5
+ super(`voice stream error ${code}: ${detail}`);
6
+ this.code = code;
7
+ this.detail = detail;
8
+ this.name = 'VoiceStreamError';
9
+ }
10
+ }
11
+ export function encodeBase64(bytes) {
12
+ const data = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
13
+ if (typeof Buffer !== 'undefined') {
14
+ return Buffer.from(data).toString('base64');
15
+ }
16
+ let binary = '';
17
+ const CHUNK = 0x8000;
18
+ for (let i = 0; i < data.length; i += CHUNK) {
19
+ binary += String.fromCharCode(...data.subarray(i, i + CHUNK));
20
+ }
21
+ return btoa(binary);
22
+ }
23
+ function randomRequestId() {
24
+ return Math.random().toString(36).slice(2, 10) + Math.random().toString(36).slice(2, 6);
25
+ }
26
+ function positiveNumber(value) {
27
+ const number = typeof value === 'number' ? value : Number(value);
28
+ return Number.isFinite(number) && number > 0 ? number : undefined;
29
+ }
30
+ function stringValue(value) {
31
+ const text = typeof value === 'string' ? value.trim() : '';
32
+ return text || undefined;
33
+ }
34
+ function metadataFromStartFrame(message) {
35
+ const metadata = {
36
+ format: stringValue(message.format),
37
+ contentType: stringValue(message.content_type) ?? stringValue(message.contentType),
38
+ sampleRate: positiveNumber(message.sample_rate ?? message.sampleRate),
39
+ channels: positiveNumber(message.channels),
40
+ sampleFormat: stringValue(message.sample_format) ?? stringValue(message.sampleFormat),
41
+ bytesPerSample: positiveNumber(message.bytes_per_sample ?? message.bytesPerSample),
42
+ };
43
+ return Object.fromEntries(Object.entries(metadata).filter((entry) => entry[1] !== undefined));
44
+ }
45
+ async function loadNodeWebSocket() {
46
+ const moduleName = 'ws';
47
+ const mod = await import(moduleName);
48
+ return (mod.default ?? mod);
49
+ }
50
+ export class VoiceSession {
51
+ state = 'closed';
52
+ wsUrl;
53
+ credential;
54
+ timeoutMs;
55
+ ws = null;
56
+ messages = [];
57
+ waiter = null;
58
+ closeError = null;
59
+ constructor(options) {
60
+ this.wsUrl = options.wsUrl.replace(/\/+$/, '');
61
+ this.credential = options.credential;
62
+ this.timeoutMs = options.timeoutMs ?? 300_000;
63
+ }
64
+ async open() {
65
+ if (this.ws)
66
+ return this;
67
+ const useBrowserSocket = 'localStorage' in globalThis && typeof WebSocket !== 'undefined';
68
+ await new Promise((resolve, reject) => {
69
+ if (useBrowserSocket) {
70
+ // Browsers cannot set WS headers — credential rides the token query param.
71
+ const url = `${this.wsUrl}/voice?token=${encodeURIComponent(this.credential)}`;
72
+ const ws = new WebSocket(url);
73
+ ws.binaryType = 'arraybuffer';
74
+ this.ws = ws;
75
+ ws.onopen = () => resolve();
76
+ ws.onmessage = (event) => this.enqueue(event.data ?? '');
77
+ ws.onerror = () => reject(new Error('voice WS connection failed'));
78
+ ws.onclose = (event) => this.handleClose(event.code ?? 1006, String(event.reason ?? ''));
79
+ return;
80
+ }
81
+ loadNodeWebSocket()
82
+ .then((NodeSocket) => {
83
+ // Send the credential as both ?token= and an Authorization: Bearer
84
+ // header so either server-side probe shape accepts the session.
85
+ const ws = new NodeSocket(`${this.wsUrl}/voice?token=${encodeURIComponent(this.credential)}`, {
86
+ headers: { Authorization: `Bearer ${this.credential}` },
87
+ });
88
+ this.ws = ws;
89
+ ws.on('open', () => resolve());
90
+ ws.on('message', (data, isBinary) => this.enqueue(isBinary ? data : textFromRaw(data)));
91
+ ws.on('error', (error) => reject(error));
92
+ ws.on('close', (code, reason) => this.handleClose(code ?? 1006, reason?.toString() ?? ''));
93
+ })
94
+ .catch(() => reject(new Error('WebSocket is not available in this environment')));
95
+ });
96
+ this.state = 'idle';
97
+ return this;
98
+ }
99
+ close() {
100
+ const ws = this.ws;
101
+ this.ws = null;
102
+ this.state = 'closed';
103
+ if (ws) {
104
+ try {
105
+ ws.close();
106
+ }
107
+ catch {
108
+ // already closed
109
+ }
110
+ }
111
+ }
112
+ async cancel(requestId) {
113
+ this.send({ type: 'cancel', request_id: requestId });
114
+ }
115
+ /** Speak text in a voice cloned from reference audio. */
116
+ async *speakClone(options) {
117
+ yield* this.runSpeak('clone', {
118
+ text: options.text,
119
+ ref_audio_base64: encodeBase64(options.refAudio),
120
+ language: options.language ?? 'auto',
121
+ x_vector_only: options.xVectorOnly ?? true,
122
+ }, options);
123
+ }
124
+ async *runSpeak(op, body, options) {
125
+ if (!this.ws || this.state === 'closed') {
126
+ throw new Error("Session is not connected; call open() first");
127
+ }
128
+ if (this.state !== 'idle') {
129
+ throw new Error(`Session is ${this.state}; one request at a time`);
130
+ }
131
+ const format = options.format ?? 'pcm';
132
+ const streamMode = options.streamMode
133
+ ?? (format === 'pcm' && options.chunks !== false ? 'incremental_pcm' : undefined);
134
+ const requestId = options.requestId ?? randomRequestId();
135
+ const deadline = Date.now() + this.timeoutMs;
136
+ this.state = 'rendering';
137
+ let finished = false;
138
+ try {
139
+ this.send({
140
+ type: 'speak',
141
+ request_id: requestId,
142
+ op,
143
+ format,
144
+ chunks: options.chunks ?? true,
145
+ ...(streamMode ? { stream_mode: streamMode } : {}),
146
+ ...body,
147
+ });
148
+ let expectedSeq = 0;
149
+ let receivedChunks = 0;
150
+ let sawFinal = false;
151
+ let metadata;
152
+ let incremental = false;
153
+ let unknownTotal = false;
154
+ while (true) {
155
+ const remaining = deadline - Date.now();
156
+ if (remaining <= 0) {
157
+ throw new VoiceStreamError('timeout', `voice stream timed out after ${this.timeoutMs}ms`);
158
+ }
159
+ const raw = await this.nextMessage(remaining);
160
+ if (typeof raw !== 'string' && !isTextBuffer(raw)) {
161
+ throw new VoiceStreamError('protocol', 'Unexpected binary frame without audio header');
162
+ }
163
+ let message;
164
+ try {
165
+ message = JSON.parse(textFromRaw(raw));
166
+ }
167
+ catch {
168
+ throw new VoiceStreamError('protocol', 'Expected JSON control frame');
169
+ }
170
+ const rid = String(message.request_id ?? '');
171
+ if (rid !== '' && rid !== requestId)
172
+ continue;
173
+ switch (message.type) {
174
+ case 'start':
175
+ metadata = metadataFromStartFrame(message);
176
+ incremental = streamMode === 'incremental_pcm' && message.stream_mode === 'incremental_pcm'
177
+ && format === 'pcm' && message.format === 'pcm' && options.chunks !== false;
178
+ break;
179
+ case 'audio': {
180
+ if (!incremental && message.total === null) {
181
+ throw new VoiceStreamError('protocol', 'Unknown audio total was not negotiated');
182
+ }
183
+ if (sawFinal) {
184
+ throw new VoiceStreamError('protocol', 'Audio frame received after final chunk');
185
+ }
186
+ const seq = Number(message.seq ?? -1);
187
+ if (seq !== expectedSeq) {
188
+ throw new VoiceStreamError('protocol', `Unexpected audio sequence: expected ${expectedSeq}, got ${seq}`);
189
+ }
190
+ const audio = await this.readAudioPayload(message, deadline);
191
+ const total = incremental && message.total == null ? null : Number(message.total ?? 1);
192
+ const final = Boolean(message.final);
193
+ if (total !== null && (!Number.isSafeInteger(total) || total < 1 || seq >= total)) {
194
+ throw new VoiceStreamError('protocol', `Invalid audio total ${total} for sequence ${seq}`);
195
+ }
196
+ unknownTotal ||= total === null;
197
+ expectedSeq += 1;
198
+ receivedChunks += 1;
199
+ sawFinal = final;
200
+ this.state = 'receiving';
201
+ yield {
202
+ requestId,
203
+ index: seq,
204
+ total,
205
+ audio,
206
+ final,
207
+ metadata,
208
+ };
209
+ break;
210
+ }
211
+ case 'done':
212
+ if (incremental && !Number.isSafeInteger(message.total_chunks)) {
213
+ throw new VoiceStreamError('protocol', 'Unknown audio total requires exact DONE total_chunks');
214
+ }
215
+ if (message.total_chunks !== undefined && Number(message.total_chunks) !== receivedChunks) {
216
+ throw new VoiceStreamError('protocol', `Done chunk count mismatch: expected ${receivedChunks}, got ${String(message.total_chunks)}`);
217
+ }
218
+ if (message.chunks !== undefined && Number(message.chunks) !== receivedChunks) {
219
+ throw new VoiceStreamError('protocol', `Done chunk count mismatch: expected ${receivedChunks}, got ${String(message.chunks)}`);
220
+ }
221
+ if (receivedChunks > 0 && !sawFinal && !unknownTotal) {
222
+ throw new VoiceStreamError('protocol', 'Done received before final audio chunk');
223
+ }
224
+ finished = true;
225
+ return;
226
+ case 'error':
227
+ finished = true;
228
+ throw new VoiceStreamError(String(message.code ?? ''), String(message.detail ?? ''));
229
+ default:
230
+ break;
231
+ }
232
+ }
233
+ }
234
+ catch (error) {
235
+ if (!finished && this.ws) {
236
+ // Protocol/transport failures may leave us between a header and payload.
237
+ // Preserve the original error, but never reuse an ambiguous stream.
238
+ try {
239
+ await this.cancel(requestId);
240
+ }
241
+ catch { /* socket may be gone */ }
242
+ this.close();
243
+ }
244
+ throw error;
245
+ }
246
+ finally {
247
+ if (!finished && this.ws) {
248
+ // Iterator return is at a yield boundary. Retain ownership until the
249
+ // server settles cancellation, including any already-sent audio pairs.
250
+ try {
251
+ await this.cancel(requestId);
252
+ await this.drainCancelledRequest(requestId, deadline);
253
+ }
254
+ catch (error) {
255
+ this.close();
256
+ throw error;
257
+ }
258
+ }
259
+ this.state = this.ws ? 'idle' : 'closed';
260
+ }
261
+ }
262
+ async readAudioPayload(message, deadline) {
263
+ const expected = Number(message.bytes ?? -1);
264
+ if (!Number.isSafeInteger(expected) || expected < 0) {
265
+ throw new VoiceStreamError('protocol', 'Audio header has invalid byte length');
266
+ }
267
+ const audio = bytesFromRaw(await this.nextMessage(Math.max(0, deadline - Date.now())));
268
+ if (audio.length !== expected) {
269
+ throw new VoiceStreamError('protocol', `Audio payload length mismatch: expected ${expected}, got ${audio.length}`);
270
+ }
271
+ return audio;
272
+ }
273
+ async drainCancelledRequest(requestId, deadline) {
274
+ while (true) {
275
+ const remaining = deadline - Date.now();
276
+ if (remaining <= 0) {
277
+ throw new VoiceStreamError('timeout', `voice stream timed out after ${this.timeoutMs}ms`);
278
+ }
279
+ const raw = await this.nextMessage(remaining);
280
+ let message;
281
+ try {
282
+ if (typeof raw !== 'string' && !isTextBuffer(raw))
283
+ throw new Error();
284
+ message = JSON.parse(textFromRaw(raw));
285
+ }
286
+ catch {
287
+ throw new VoiceStreamError('protocol', 'Expected JSON control frame during cancellation');
288
+ }
289
+ if (message.type === 'audio') {
290
+ await this.readAudioPayload(message, deadline);
291
+ }
292
+ else if ((!message.request_id || message.request_id === requestId)
293
+ && (message.type === 'error' || message.type === 'done')) {
294
+ return;
295
+ }
296
+ }
297
+ }
298
+ send(message) {
299
+ if (!this.ws) {
300
+ throw new Error('Session is not connected');
301
+ }
302
+ this.ws.send(JSON.stringify(message));
303
+ }
304
+ enqueue(raw) {
305
+ if (this.waiter) {
306
+ const waiter = this.waiter;
307
+ this.waiter = null;
308
+ waiter.resolve(raw);
309
+ return;
310
+ }
311
+ this.messages.push(raw);
312
+ }
313
+ handleClose(code, reason) {
314
+ this.ws = null;
315
+ this.state = 'closed';
316
+ this.closeError = new Error(`voice WS closed (${code}): ${reason || 'connection closed'}`);
317
+ if (this.waiter) {
318
+ const waiter = this.waiter;
319
+ this.waiter = null;
320
+ waiter.reject(this.closeError);
321
+ }
322
+ }
323
+ nextMessage(timeoutMs) {
324
+ const queued = this.messages.shift();
325
+ if (queued !== undefined) {
326
+ return Promise.resolve(queued);
327
+ }
328
+ if (!this.ws) {
329
+ return Promise.reject(this.closeError ?? new Error('Session is not connected'));
330
+ }
331
+ return new Promise((resolve, reject) => {
332
+ const timer = setTimeout(() => {
333
+ this.waiter = null;
334
+ reject(new VoiceStreamError('timeout', `no message within ${Math.round(timeoutMs)}ms`));
335
+ }, timeoutMs);
336
+ this.waiter = {
337
+ resolve: (value) => {
338
+ clearTimeout(timer);
339
+ resolve(value);
340
+ },
341
+ reject: (error) => {
342
+ clearTimeout(timer);
343
+ reject(error);
344
+ },
345
+ };
346
+ });
347
+ }
348
+ }
349
+ function isTextBuffer(raw) {
350
+ return typeof Buffer !== 'undefined' && Buffer.isBuffer(raw);
351
+ }
352
+ function textFromRaw(raw) {
353
+ if (Array.isArray(raw))
354
+ return Buffer.concat(raw).toString();
355
+ return typeof raw === 'string' ? raw : Buffer.from(raw).toString();
356
+ }
357
+ function bytesFromRaw(raw) {
358
+ if (raw instanceof Uint8Array)
359
+ return raw;
360
+ if (raw instanceof ArrayBuffer)
361
+ return new Uint8Array(raw);
362
+ if (Array.isArray(raw))
363
+ return new Uint8Array(Buffer.concat(raw));
364
+ throw new VoiceStreamError('protocol', 'Expected binary audio payload after audio header');
365
+ }
366
+ //# sourceMappingURL=voice-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-session.js","sourceRoot":"","sources":["../src/voice-session.ts"],"names":[],"mappings":"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"}