@hypercli.com/sdk 2026.6.21 → 2026.7.31

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 (87) hide show
  1. package/README.md +82 -1
  2. package/dist/agent.d.ts +19 -2
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +24 -0
  5. package/dist/agent.js.map +1 -1
  6. package/dist/agents.d.ts +561 -41
  7. package/dist/agents.d.ts.map +1 -1
  8. package/dist/agents.js +2016 -106
  9. package/dist/agents.js.map +1 -1
  10. package/dist/browser.d.ts +3 -1
  11. package/dist/browser.d.ts.map +1 -1
  12. package/dist/browser.js +9 -2
  13. package/dist/browser.js.map +1 -1
  14. package/dist/channels.d.ts +156 -0
  15. package/dist/channels.d.ts.map +1 -0
  16. package/dist/channels.js +110 -0
  17. package/dist/channels.js.map +1 -0
  18. package/dist/client.d.ts +2 -0
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +9 -3
  21. package/dist/client.js.map +1 -1
  22. package/dist/connectors.d.ts +79 -0
  23. package/dist/connectors.d.ts.map +1 -0
  24. package/dist/connectors.js +2 -0
  25. package/dist/connectors.js.map +1 -0
  26. package/dist/http.d.ts +10 -3
  27. package/dist/http.d.ts.map +1 -1
  28. package/dist/http.js +135 -61
  29. package/dist/http.js.map +1 -1
  30. package/dist/index.d.ts +12 -4
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +8 -2
  33. package/dist/index.js.map +1 -1
  34. package/dist/keys.d.ts +6 -1
  35. package/dist/keys.d.ts.map +1 -1
  36. package/dist/keys.js +8 -1
  37. package/dist/keys.js.map +1 -1
  38. package/dist/openclaw/channels.d.ts +86 -0
  39. package/dist/openclaw/channels.d.ts.map +1 -0
  40. package/dist/openclaw/channels.js +290 -0
  41. package/dist/openclaw/channels.js.map +1 -0
  42. package/dist/openclaw/connectors.d.ts +61 -0
  43. package/dist/openclaw/connectors.d.ts.map +1 -0
  44. package/dist/openclaw/connectors.js +174 -0
  45. package/dist/openclaw/connectors.js.map +1 -0
  46. package/dist/openclaw/gateway.d.ts +733 -15
  47. package/dist/openclaw/gateway.d.ts.map +1 -1
  48. package/dist/openclaw/gateway.js +1720 -181
  49. package/dist/openclaw/gateway.js.map +1 -1
  50. package/dist/openclaw/skills.d.ts +106 -0
  51. package/dist/openclaw/skills.d.ts.map +1 -0
  52. package/dist/openclaw/skills.js +575 -0
  53. package/dist/openclaw/skills.js.map +1 -0
  54. package/dist/openclaw/slack.d.ts +818 -0
  55. package/dist/openclaw/slack.d.ts.map +1 -0
  56. package/dist/openclaw/slack.js +536 -0
  57. package/dist/openclaw/slack.js.map +1 -0
  58. package/dist/openclaw/whatsapp.d.ts +63 -0
  59. package/dist/openclaw/whatsapp.d.ts.map +1 -0
  60. package/dist/openclaw/whatsapp.js +264 -0
  61. package/dist/openclaw/whatsapp.js.map +1 -0
  62. package/dist/renders.js +11 -11
  63. package/dist/renders.js.map +1 -1
  64. package/dist/skills.d.ts +126 -0
  65. package/dist/skills.d.ts.map +1 -0
  66. package/dist/skills.js +2 -0
  67. package/dist/skills.js.map +1 -0
  68. package/dist/user.d.ts +15 -2
  69. package/dist/user.d.ts.map +1 -1
  70. package/dist/user.js +51 -4
  71. package/dist/user.js.map +1 -1
  72. package/dist/voice-session.d.ts +74 -0
  73. package/dist/voice-session.d.ts.map +1 -0
  74. package/dist/voice-session.js +255 -0
  75. package/dist/voice-session.js.map +1 -0
  76. package/dist/voice.d.ts +27 -3
  77. package/dist/voice.d.ts.map +1 -1
  78. package/dist/voice.js +89 -6
  79. package/dist/voice.js.map +1 -1
  80. package/dist/workspaces.d.ts +181 -0
  81. package/dist/workspaces.d.ts.map +1 -0
  82. package/dist/workspaces.js +495 -0
  83. package/dist/workspaces.js.map +1 -0
  84. package/dist/x402.d.ts.map +1 -1
  85. package/dist/x402.js +1 -2
  86. package/dist/x402.js.map +1 -1
  87. package/package.json +38 -2
package/dist/user.d.ts CHANGED
@@ -16,6 +16,10 @@ export interface User {
16
16
  export interface AuthMe {
17
17
  userId: string;
18
18
  orchestraUserId: string | null;
19
+ externalId: string | null;
20
+ privyUserId: string | null;
21
+ walletAddress: string | null;
22
+ userType: string | null;
19
23
  teamId: string;
20
24
  planId: string;
21
25
  email: string | null;
@@ -28,19 +32,25 @@ export interface AuthMe {
28
32
  keyName: string | null;
29
33
  }
30
34
  export interface RuntimeIdentity {
31
- kind: string;
35
+ runtime: string;
32
36
  agentId: string | null;
33
37
  }
34
38
  export interface UpdateUserOptions {
35
39
  name?: string;
36
40
  email?: string;
37
41
  }
42
+ export interface UserProfileImage {
43
+ id: string;
44
+ avatarUrl: string | null;
45
+ s3Key: string | null;
46
+ }
38
47
  export declare function runtimeAgentId(auth: AuthMe): string | null;
39
48
  export declare function isRuntimeAgent(auth: AuthMe): boolean;
40
49
  export declare class UserAPI {
41
50
  private http;
42
51
  private authHttp;
43
- constructor(http: HTTPClient, authHttp?: HTTPClient);
52
+ private profileHttp;
53
+ constructor(http: HTTPClient, authHttp?: HTTPClient, profileHttp?: HTTPClient);
44
54
  /**
45
55
  * Get current user info
46
56
  */
@@ -53,5 +63,8 @@ export declare class UserAPI {
53
63
  * Update the current user profile.
54
64
  */
55
65
  update(options: UpdateUserOptions): Promise<User>;
66
+ getProfileImage(): Promise<UserProfileImage>;
67
+ uploadProfileImage(content: Blob | ArrayBuffer | ArrayBufferView, contentType?: string): Promise<UserProfileImage>;
68
+ deleteProfileImage(): Promise<UserProfileImage>;
56
69
  }
57
70
  //# sourceMappingURL=user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,qBAAa,OAAO;IACN,OAAO,CAAC,IAAI;IAAc,OAAO,CAAC,QAAQ;gBAAlC,IAAI,EAAE,UAAU,EAAU,QAAQ,GAAE,UAAiB;IAEzE;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAK/B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAIxD"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AA4DD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,qBAAa,OAAO;IAEhB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;gBAFX,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,UAAiB,EAC3B,WAAW,GAAE,UAAqB;IAG5C;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAK/B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAI5C,kBAAkB,CACtB,OAAO,EAAE,IAAI,GAAG,WAAW,GAAG,eAAe,EAC7C,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;IAgBtB,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAGtD"}
package/dist/user.js CHANGED
@@ -1,3 +1,23 @@
1
+ function userProfileImageFromDict(data) {
2
+ return {
3
+ id: String(data?.id || ''),
4
+ avatarUrl: data?.avatar_url || null,
5
+ s3Key: data?.s3_key || null,
6
+ };
7
+ }
8
+ function deriveExternalId(data) {
9
+ if (data.external_id)
10
+ return data.external_id;
11
+ if (data.privy_user_id)
12
+ return data.privy_user_id;
13
+ if (data.wallet_address)
14
+ return `wallet:${String(data.wallet_address).toLowerCase()}`;
15
+ if (data.turnkey_org_id)
16
+ return `turnkey:${data.turnkey_org_id}`;
17
+ if (data.user_id)
18
+ return `orchestra:${data.user_id}`;
19
+ return null;
20
+ }
1
21
  function userFromDict(data) {
2
22
  return {
3
23
  userId: data.user_id || '',
@@ -14,13 +34,17 @@ function userFromDict(data) {
14
34
  function authMeFromDict(data) {
15
35
  const runtime = data?.runtime && typeof data.runtime === 'object'
16
36
  ? {
17
- kind: data.runtime.kind || '',
18
- agentId: data.runtime.agent_id || data.runtime.agentId || null,
37
+ runtime: data.runtime.runtime || '',
38
+ agentId: data.runtime.agent_id || null,
19
39
  }
20
40
  : null;
21
41
  return {
22
42
  userId: data.user_id || '',
23
43
  orchestraUserId: data.orchestra_user_id || null,
44
+ externalId: deriveExternalId(data),
45
+ privyUserId: data.privy_user_id || null,
46
+ walletAddress: data.wallet_address || null,
47
+ userType: data.user_type || null,
24
48
  teamId: data.team_id || '',
25
49
  planId: data.plan_id || '',
26
50
  email: data.email || null,
@@ -34,7 +58,7 @@ function authMeFromDict(data) {
34
58
  };
35
59
  }
36
60
  export function runtimeAgentId(auth) {
37
- return auth.runtime?.kind === 'agent' ? auth.runtime.agentId : null;
61
+ return auth.runtime?.runtime === 'agent' ? auth.runtime.agentId : null;
38
62
  }
39
63
  export function isRuntimeAgent(auth) {
40
64
  return runtimeAgentId(auth) !== null;
@@ -42,9 +66,11 @@ export function isRuntimeAgent(auth) {
42
66
  export class UserAPI {
43
67
  http;
44
68
  authHttp;
45
- constructor(http, authHttp = http) {
69
+ profileHttp;
70
+ constructor(http, authHttp = http, profileHttp = authHttp) {
46
71
  this.http = http;
47
72
  this.authHttp = authHttp;
73
+ this.profileHttp = profileHttp;
48
74
  }
49
75
  /**
50
76
  * Get current user info
@@ -67,5 +93,26 @@ export class UserAPI {
67
93
  const data = await this.http.patch('/api/user', options);
68
94
  return userFromDict(data);
69
95
  }
96
+ async getProfileImage() {
97
+ return userProfileImageFromDict(await this.profileHttp.get('/users/profile-image'));
98
+ }
99
+ async uploadProfileImage(content, contentType) {
100
+ let body;
101
+ let resolvedContentType = contentType || 'image/png';
102
+ if (content instanceof Blob) {
103
+ body = content;
104
+ resolvedContentType = contentType || content.type || resolvedContentType;
105
+ }
106
+ else if (ArrayBuffer.isView(content)) {
107
+ body = content;
108
+ }
109
+ else {
110
+ body = content;
111
+ }
112
+ return userProfileImageFromDict(await this.profileHttp.postRaw('/users/profile-image', body, resolvedContentType));
113
+ }
114
+ async deleteProfileImage() {
115
+ return userProfileImageFromDict(await this.profileHttp.delete('/users/profile-image'));
116
+ }
70
117
  }
71
118
  //# sourceMappingURL=user.js.map
package/dist/user.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ export type VoiceSessionState = 'closed' | 'idle' | 'rendering' | 'receiving';
2
+ export interface VoiceChunkEvent {
3
+ requestId: string;
4
+ index: number;
5
+ total: number;
6
+ audio: Uint8Array;
7
+ final: boolean;
8
+ }
9
+ export interface VoiceSessionOptions {
10
+ /** Agents WS base, e.g. wss://api.agents.hypercli.com/ws */
11
+ wsUrl: string;
12
+ /** API key (hyper_api_...) or JWT. */
13
+ credential: string;
14
+ /** Per-request timeout in milliseconds (default 300 000). */
15
+ timeoutMs?: number;
16
+ }
17
+ export interface SpeakOptions {
18
+ text: string;
19
+ voice?: string;
20
+ language?: string;
21
+ format?: string;
22
+ /** true (default): receive each server-side split; false: one assembled file. */
23
+ chunks?: boolean;
24
+ requestId?: string;
25
+ }
26
+ export interface CloneSpeakOptions {
27
+ text: string;
28
+ refAudio: Uint8Array | ArrayBuffer;
29
+ language?: string;
30
+ xVectorOnly?: boolean;
31
+ format?: string;
32
+ chunks?: boolean;
33
+ requestId?: string;
34
+ }
35
+ export interface DesignSpeakOptions {
36
+ text: string;
37
+ description: string;
38
+ language?: string;
39
+ format?: string;
40
+ chunks?: boolean;
41
+ requestId?: string;
42
+ }
43
+ export declare class VoiceStreamError extends Error {
44
+ readonly code: string;
45
+ readonly detail: string;
46
+ constructor(code: string, detail: string);
47
+ }
48
+ export declare function encodeBase64(bytes: Uint8Array | ArrayBuffer): string;
49
+ export declare class VoiceSession {
50
+ state: VoiceSessionState;
51
+ private readonly wsUrl;
52
+ private readonly credential;
53
+ private readonly timeoutMs;
54
+ private ws;
55
+ private messages;
56
+ private waiter;
57
+ private closeError;
58
+ constructor(options: VoiceSessionOptions);
59
+ open(): Promise<this>;
60
+ close(): void;
61
+ cancel(requestId: string): Promise<void>;
62
+ /** Speak text with a preset voice. */
63
+ speak(options: SpeakOptions): AsyncGenerator<VoiceChunkEvent, void, undefined>;
64
+ /** Speak text in a voice cloned from reference audio. */
65
+ speakClone(options: CloneSpeakOptions): AsyncGenerator<VoiceChunkEvent, void, undefined>;
66
+ /** Speak text in a voice designed from a natural-language description. */
67
+ speakDesign(options: DesignSpeakOptions): AsyncGenerator<VoiceChunkEvent, void, undefined>;
68
+ private runSpeak;
69
+ private send;
70
+ private enqueue;
71
+ private handleClose;
72
+ private nextMessage;
73
+ }
74
+ //# 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":"AAUA,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,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,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,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;AAuBD,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,CAAgB;IAChC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,UAAU,CAAsB;gBAE5B,OAAO,EAAE,mBAAmB;IAMlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC3B,KAAK,IAAI,IAAI;IAaP,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,sCAAsC;IAC/B,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC;IAYrF,yDAAyD;IAClD,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC;IAa/F,0EAA0E;IACnE,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC;YAYlF,QAAQ;IA4EvB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;CAyBpB"}
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Voice streaming session over the /ws/voice WebSocket.
3
+ *
4
+ * The server owns text chunking; a session receives an ordered stream of
5
+ * audio chunks. One request at a time: idle → rendering → receiving → idle.
6
+ * Works in both Node (`ws` package, Authorization header) and the browser
7
+ * (global WebSocket, `?jwt=` query — browsers cannot set WS headers).
8
+ */
9
+ import NodeWebSocket from 'ws';
10
+ export class VoiceStreamError extends Error {
11
+ code;
12
+ detail;
13
+ constructor(code, detail) {
14
+ super(`voice stream error ${code}: ${detail}`);
15
+ this.code = code;
16
+ this.detail = detail;
17
+ this.name = 'VoiceStreamError';
18
+ }
19
+ }
20
+ export function encodeBase64(bytes) {
21
+ const data = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
22
+ if (typeof Buffer !== 'undefined') {
23
+ return Buffer.from(data).toString('base64');
24
+ }
25
+ let binary = '';
26
+ const CHUNK = 0x8000;
27
+ for (let i = 0; i < data.length; i += CHUNK) {
28
+ binary += String.fromCharCode(...data.subarray(i, i + CHUNK));
29
+ }
30
+ return btoa(binary);
31
+ }
32
+ function decodeBase64(value) {
33
+ if (typeof Buffer !== 'undefined') {
34
+ return new Uint8Array(Buffer.from(value, 'base64'));
35
+ }
36
+ const binary = atob(value);
37
+ const bytes = new Uint8Array(binary.length);
38
+ for (let i = 0; i < binary.length; i++) {
39
+ bytes[i] = binary.charCodeAt(i);
40
+ }
41
+ return bytes;
42
+ }
43
+ function randomRequestId() {
44
+ return Math.random().toString(36).slice(2, 10) + Math.random().toString(36).slice(2, 6);
45
+ }
46
+ export class VoiceSession {
47
+ state = 'closed';
48
+ wsUrl;
49
+ credential;
50
+ timeoutMs;
51
+ ws = null;
52
+ messages = [];
53
+ waiter = null;
54
+ closeError = null;
55
+ constructor(options) {
56
+ this.wsUrl = options.wsUrl.replace(/\/+$/, '');
57
+ this.credential = options.credential;
58
+ this.timeoutMs = options.timeoutMs ?? 300_000;
59
+ }
60
+ async open() {
61
+ if (this.ws)
62
+ return this;
63
+ const useBrowserSocket = 'localStorage' in globalThis && typeof WebSocket !== 'undefined';
64
+ if (!useBrowserSocket && typeof NodeWebSocket === 'undefined') {
65
+ throw new Error('WebSocket is not available in this environment');
66
+ }
67
+ await new Promise((resolve, reject) => {
68
+ if (useBrowserSocket) {
69
+ // Browsers cannot set WS headers — credential rides the jwt query param.
70
+ const url = `${this.wsUrl}/voice?jwt=${encodeURIComponent(this.credential)}`;
71
+ const ws = new WebSocket(url);
72
+ this.ws = ws;
73
+ ws.onopen = () => resolve();
74
+ ws.onmessage = (event) => this.enqueue(String(event.data ?? ''));
75
+ ws.onerror = () => reject(new Error('voice WS connection failed'));
76
+ ws.onclose = (event) => this.handleClose(event.code ?? 1006, String(event.reason ?? ''));
77
+ return;
78
+ }
79
+ const ws = new NodeWebSocket(`${this.wsUrl}/voice`, {
80
+ headers: { Authorization: `Bearer ${this.credential}` },
81
+ });
82
+ this.ws = ws;
83
+ ws.on('open', () => resolve());
84
+ ws.on('message', (data) => this.enqueue(typeof data === 'string' ? data : data.toString()));
85
+ ws.on('error', (error) => reject(error));
86
+ ws.on('close', (code, reason) => this.handleClose(code ?? 1006, reason?.toString() ?? ''));
87
+ });
88
+ this.state = 'idle';
89
+ return this;
90
+ }
91
+ close() {
92
+ const ws = this.ws;
93
+ this.ws = null;
94
+ this.state = 'closed';
95
+ if (ws) {
96
+ try {
97
+ ws.close();
98
+ }
99
+ catch {
100
+ // already closed
101
+ }
102
+ }
103
+ }
104
+ async cancel(requestId) {
105
+ this.send({ type: 'cancel', request_id: requestId });
106
+ }
107
+ /** Speak text with a preset voice. */
108
+ async *speak(options) {
109
+ yield* this.runSpeak('tts', {
110
+ text: options.text,
111
+ voice: options.voice ?? 'serena',
112
+ language: options.language ?? 'auto',
113
+ }, options);
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
+ /** Speak text in a voice designed from a natural-language description. */
125
+ async *speakDesign(options) {
126
+ yield* this.runSpeak('design', {
127
+ text: options.text,
128
+ instruct: options.description,
129
+ language: options.language ?? 'auto',
130
+ }, options);
131
+ }
132
+ async *runSpeak(op, body, options) {
133
+ if (!this.ws || this.state === 'closed') {
134
+ throw new Error("Session is not connected; call open() first");
135
+ }
136
+ if (this.state !== 'idle') {
137
+ throw new Error(`Session is ${this.state}; one request at a time`);
138
+ }
139
+ const requestId = options.requestId ?? randomRequestId();
140
+ const deadline = Date.now() + this.timeoutMs;
141
+ this.state = 'rendering';
142
+ let finished = false;
143
+ try {
144
+ this.send({
145
+ type: 'speak',
146
+ request_id: requestId,
147
+ op,
148
+ format: options.format ?? 'mp3',
149
+ chunks: options.chunks ?? true,
150
+ ...body,
151
+ });
152
+ while (true) {
153
+ const remaining = deadline - Date.now();
154
+ if (remaining <= 0) {
155
+ throw new VoiceStreamError('timeout', `voice stream timed out after ${this.timeoutMs}ms`);
156
+ }
157
+ const raw = await this.nextMessage(remaining);
158
+ let message;
159
+ try {
160
+ message = JSON.parse(raw);
161
+ }
162
+ catch {
163
+ continue;
164
+ }
165
+ const rid = String(message.request_id ?? '');
166
+ if (rid !== '' && rid !== requestId)
167
+ continue;
168
+ switch (message.type) {
169
+ case 'chunk': {
170
+ this.state = 'receiving';
171
+ yield {
172
+ requestId,
173
+ index: Number(message.index ?? 0),
174
+ total: Number(message.total ?? 1),
175
+ audio: decodeBase64(String(message.audio_b64 ?? '')),
176
+ final: Boolean(message.final),
177
+ };
178
+ break;
179
+ }
180
+ case 'done':
181
+ finished = true;
182
+ return;
183
+ case 'error':
184
+ finished = true;
185
+ throw new VoiceStreamError(String(message.code ?? ''), String(message.detail ?? ''));
186
+ default:
187
+ break;
188
+ }
189
+ }
190
+ }
191
+ finally {
192
+ if (!finished && this.ws) {
193
+ // Consumer bailed early (or timed out) — cancel server-side.
194
+ try {
195
+ await this.cancel(requestId);
196
+ }
197
+ catch {
198
+ // socket may already be gone
199
+ }
200
+ }
201
+ this.state = this.ws ? 'idle' : 'closed';
202
+ }
203
+ }
204
+ send(message) {
205
+ if (!this.ws) {
206
+ throw new Error('Session is not connected');
207
+ }
208
+ this.ws.send(JSON.stringify(message));
209
+ }
210
+ enqueue(raw) {
211
+ if (this.waiter) {
212
+ const waiter = this.waiter;
213
+ this.waiter = null;
214
+ waiter.resolve(raw);
215
+ return;
216
+ }
217
+ this.messages.push(raw);
218
+ }
219
+ handleClose(code, reason) {
220
+ this.ws = null;
221
+ this.state = 'closed';
222
+ this.closeError = new Error(`voice WS closed (${code}): ${reason || 'connection closed'}`);
223
+ if (this.waiter) {
224
+ const waiter = this.waiter;
225
+ this.waiter = null;
226
+ waiter.reject(this.closeError);
227
+ }
228
+ }
229
+ nextMessage(timeoutMs) {
230
+ const queued = this.messages.shift();
231
+ if (queued !== undefined) {
232
+ return Promise.resolve(queued);
233
+ }
234
+ if (!this.ws) {
235
+ return Promise.reject(this.closeError ?? new Error('Session is not connected'));
236
+ }
237
+ return new Promise((resolve, reject) => {
238
+ const timer = setTimeout(() => {
239
+ this.waiter = null;
240
+ reject(new VoiceStreamError('timeout', `no message within ${Math.round(timeoutMs)}ms`));
241
+ }, timeoutMs);
242
+ this.waiter = {
243
+ resolve: (value) => {
244
+ clearTimeout(timer);
245
+ resolve(value);
246
+ },
247
+ reject: (error) => {
248
+ clearTimeout(timer);
249
+ reject(error);
250
+ },
251
+ };
252
+ });
253
+ }
254
+ }
255
+ //# 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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"}
package/dist/voice.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- /**
2
- * Voice capability API
3
- */
4
1
  import type { HTTPClient } from './http.js';
2
+ import { VoiceSession, type VoiceChunkEvent } from './voice-session.js';
3
+ export { VoiceSession, VoiceStreamError, type CloneSpeakOptions, type DesignSpeakOptions, type SpeakOptions, type VoiceChunkEvent, type VoiceSessionOptions, type VoiceSessionState, } from './voice-session.js';
5
4
  export interface TTSOptions {
6
5
  text: string;
7
6
  voice?: string;
8
7
  language?: string;
9
8
  responseFormat?: string;
9
+ signal?: AbortSignal;
10
10
  }
11
11
  export interface CloneOptions {
12
12
  text: string;
@@ -27,5 +27,29 @@ export declare class VoiceAPI {
27
27
  tts(options: TTSOptions): Promise<Uint8Array>;
28
28
  clone(options: CloneOptions): Promise<Uint8Array>;
29
29
  design(options: DesignOptions): Promise<Uint8Array>;
30
+ /**
31
+ * Create a streaming VoiceSession over /ws/voice (call open() or use ttsStream()).
32
+ */
33
+ connect(options?: {
34
+ timeoutMs?: number;
35
+ }): VoiceSession;
36
+ /**
37
+ * One-shot streaming TTS: opens a session, speaks, closes.
38
+ */
39
+ ttsStream(options: TTSOptions & {
40
+ timeoutMs?: number;
41
+ }): AsyncGenerator<VoiceChunkEvent, void, undefined>;
42
+ /**
43
+ * One-shot streaming voice clone: opens a session, speaks, closes.
44
+ */
45
+ cloneStream(options: CloneOptions & {
46
+ timeoutMs?: number;
47
+ }): AsyncGenerator<VoiceChunkEvent, void, undefined>;
48
+ /**
49
+ * One-shot streaming voice design: opens a session, speaks, closes.
50
+ */
51
+ designStream(options: DesignOptions & {
52
+ timeoutMs?: number;
53
+ }): AsyncGenerator<VoiceChunkEvent, void, undefined>;
30
54
  }
31
55
  //# sourceMappingURL=voice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,WAAW,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAOD,qBAAa,QAAQ;IACP,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE9B,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAS7C,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAUjD,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;CAQ1D"}
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,WAAW,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAgBD,qBAAa,QAAQ;IACP,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE9B,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAS7C,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAUjD,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IASzD;;OAEG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY;IAQvD;;OAEG;IACI,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC;IAgBhH;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC;IAiBpH;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC;CAevH"}