@maroonedsoftware/rhapsode-sdk 0.1.10 → 0.1.12

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.
@@ -1,19 +1,43 @@
1
1
  import type { SdkFetch } from '../sdk-options.js';
2
2
  import type { Capabilities, CatalogEntry, CoreHealth, EngineDialogueRequest, EngineSpeakRequest, EngineSummary, ErrorBody, InstallJob, PullRequest, ReinstallOutdated, ResidencyDetail, UpdateStatus, Voice } from '../rhapsode/types/rhapsode.types.js';
3
- import type { OpenApiDocument } from './types/rhapsode.public.js';
3
+ import type { OpenApiDocument, Settings, SettingsPatch } from './types/rhapsode.public.js';
4
4
  export declare class PublicClient {
5
5
  private fetch;
6
6
  constructor(fetch: SdkFetch);
7
- /** @description The core's own. It answers while every worker is down and never blocks on one, because a */
7
+ /**
8
+ * @name Health
9
+ * @description The core's own health, which answers even while every worker is down.
10
+ */
8
11
  health(): Promise<CoreHealth>;
9
- /** @description Open to every caller, like /health. It never waits on the network: a first call after boot */
12
+ /**
13
+ * @name Update status
14
+ * @description Whether a newer rhapsode has been released, from a check made at most once a day.
15
+ */
10
16
  updateStatus(): Promise<UpdateStatus>;
11
- /** @description What is on the card, for an operator asking where their memory went. Reads the core's own */
17
+ /**
18
+ * @name Check for an update
19
+ * @description Asks GitHub for the latest release now, and answers once it has.
20
+ */
21
+ checkForUpdate(): Promise<UpdateStatus>;
22
+ /**
23
+ * @name Residency
24
+ * @description What each engine holds in memory, how big it is and when it expires.
25
+ */
12
26
  residency(): Promise<ResidencyDetail>;
13
- /** @description Open to every caller, like /health. The public API only: never a worker route. */
27
+ /**
28
+ * @name Self-description
29
+ * @description This API as an OpenAPI 3.1 document, describing the core that serves it.
30
+ */
14
31
  openapi(): Promise<OpenApiDocument>;
15
- /** @description Every declared engine, whether or not it is running. Never spawns one: this is the list an */
32
+ /**
33
+ * @name Engines
34
+ * @description Every declared engine, running or not, with its code and weights licences.
35
+ */
16
36
  engines(): Promise<EngineSummary[]>;
37
+ /**
38
+ * @name Engine capabilities
39
+ * @description What the engine can do with the variant it has loaded, and what its other variants could.
40
+ */
17
41
  engineCapabilities(engine: string): Promise<{
18
42
  status: 200;
19
43
  contentType: 'application/json';
@@ -27,6 +51,10 @@ export declare class PublicClient {
27
51
  contentType: 'application/json';
28
52
  data: ErrorBody;
29
53
  }>;
54
+ /**
55
+ * @name Voices
56
+ * @description The engine's voices, built in and cloned.
57
+ */
30
58
  engineVoices(engine: string): Promise<{
31
59
  status: 200;
32
60
  contentType: 'application/json';
@@ -36,7 +64,10 @@ export declare class PublicClient {
36
64
  contentType: 'application/json';
37
65
  data: ErrorBody;
38
66
  }>;
39
- /** @description Management, like § 10: it writes a file on the box. Streamed to the worker, capped at 25 MB. */
67
+ /**
68
+ * @name Create a voice
69
+ * @description Creates a voice from a reference, such as a clip to clone, or from a blend of voices the engine has.
70
+ */
40
71
  createVoice(engine: string, body: FormData): Promise<{
41
72
  status: 201;
42
73
  contentType: 'application/json';
@@ -58,6 +89,10 @@ export declare class PublicClient {
58
89
  contentType: 'application/json';
59
90
  data: ErrorBody;
60
91
  }>;
92
+ /**
93
+ * @name Delete a voice
94
+ * @description Deletes a voice.
95
+ */
61
96
  deleteVoice(engine: string, voice: string): Promise<{
62
97
  status: 204;
63
98
  } | {
@@ -77,6 +112,10 @@ export declare class PublicClient {
77
112
  contentType: 'application/json';
78
113
  data: ErrorBody;
79
114
  }>;
115
+ /**
116
+ * @name Voice preview
117
+ * @description A short sample of the voice.
118
+ */
80
119
  voicePreview(engine: string, voice: string): Promise<{
81
120
  status: 200;
82
121
  contentType: 'audio/wav';
@@ -86,7 +125,10 @@ export declare class PublicClient {
86
125
  contentType: 'application/json';
87
126
  data: ErrorBody;
88
127
  }>;
89
- /** @description The one endpoint that matters. Cues the effective variant does not claim are stripped */
128
+ /**
129
+ * @name Speak
130
+ * @description Speaks a line with one engine, streamed or as a finished file.
131
+ */
90
132
  speak(body: EngineSpeakRequest): Promise<{
91
133
  status: 200;
92
134
  contentType: 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16';
@@ -112,7 +154,10 @@ export declare class PublicClient {
112
154
  contentType: 'application/json';
113
155
  data: ErrorBody;
114
156
  }>;
115
- /** @description A conversation in one take, on a variant that declares `dialogue`. Cues are stripped per */
157
+ /**
158
+ * @name Dialogue
159
+ * @description A conversation between speakers in one take, on a variant that declares dialogue.
160
+ */
116
161
  dialogue(engine: string, body: EngineDialogueRequest): Promise<{
117
162
  status: 200;
118
163
  contentType: 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16';
@@ -138,9 +183,15 @@ export declare class PublicClient {
138
183
  contentType: 'application/json';
139
184
  data: ErrorBody;
140
185
  }>;
141
- /** @description Open to every caller: it only reads, and its licences are what § 4 promises before install. */
186
+ /**
187
+ * @name Catalog
188
+ * @description Every engine this core knows how to install, with both licences, before anything is installed.
189
+ */
142
190
  catalog(): Promise<CatalogEntry[]>;
143
- /** @description Only an engine this API installed. One the operator configured is theirs to remove. */
191
+ /**
192
+ * @name Uninstall an engine
193
+ * @description Removes an engine this API installed.
194
+ */
144
195
  uninstallEngine(engine: string): Promise<{
145
196
  status: 204;
146
197
  } | {
@@ -156,7 +207,10 @@ export declare class PublicClient {
156
207
  contentType: 'application/json';
157
208
  data: ErrorBody;
158
209
  }>;
159
- /** @description Free this engine's model now, rather than waiting out its keep-alive. Idempotent: an */
210
+ /**
211
+ * @name Unload an engine
212
+ * @description Frees the engine's model now, rather than waiting out its keep-alive.
213
+ */
160
214
  unloadEngine(engine: string, query?: {
161
215
  mode?: 'terminate' | 'unload';
162
216
  }): Promise<{
@@ -176,6 +230,10 @@ export declare class PublicClient {
176
230
  contentType: 'application/json';
177
231
  data: ErrorBody;
178
232
  }>;
233
+ /**
234
+ * @name Install an engine
235
+ * @description Installs an engine from the catalog, as a job to follow.
236
+ */
179
237
  installEngine(engine: string, query?: {
180
238
  pull?: string;
181
239
  accept?: string;
@@ -200,6 +258,10 @@ export declare class PublicClient {
200
258
  contentType: 'application/json';
201
259
  data: ErrorBody;
202
260
  }>;
261
+ /**
262
+ * @name Reinstall an engine
263
+ * @description Rebuilds an installed engine beside the old one and swaps it in once it works.
264
+ */
203
265
  reinstallEngine(engine: string, query?: {
204
266
  accept?: string;
205
267
  }): Promise<{
@@ -223,6 +285,10 @@ export declare class PublicClient {
223
285
  contentType: 'application/json';
224
286
  data: ErrorBody;
225
287
  }>;
288
+ /**
289
+ * @name Pull weights
290
+ * @description Downloads a variant's weights ahead of its first load, as a job to follow.
291
+ */
226
292
  pullEngine(engine: string, body: PullRequest): Promise<{
227
293
  status: 202;
228
294
  contentType: 'application/json';
@@ -240,6 +306,10 @@ export declare class PublicClient {
240
306
  contentType: 'application/json';
241
307
  data: ErrorBody;
242
308
  }>;
309
+ /**
310
+ * @name Install jobs
311
+ * @description Every install job, running and finished.
312
+ */
243
313
  installJobs(): Promise<{
244
314
  status: 200;
245
315
  contentType: 'application/json';
@@ -249,6 +319,10 @@ export declare class PublicClient {
249
319
  contentType: 'application/json';
250
320
  data: ErrorBody;
251
321
  }>;
322
+ /**
323
+ * @name Reinstall outdated engines
324
+ * @description Reinstalls every engine an upgrade left behind.
325
+ */
252
326
  reinstallOutdated(): Promise<{
253
327
  status: 202;
254
328
  contentType: 'application/json';
@@ -258,6 +332,10 @@ export declare class PublicClient {
258
332
  contentType: 'application/json';
259
333
  data: ErrorBody;
260
334
  }>;
335
+ /**
336
+ * @name Install job
337
+ * @description One install job and where it has got to.
338
+ */
261
339
  installJob(job: string): Promise<{
262
340
  status: 200;
263
341
  contentType: 'application/json';
@@ -271,7 +349,10 @@ export declare class PublicClient {
271
349
  contentType: 'application/json';
272
350
  data: ErrorBody;
273
351
  }>;
274
- /** @description Server-sent events, each frame's data a FeedEvent. Hand-written, like /speak: ContractKit */
352
+ /**
353
+ * @name Install job events
354
+ * @description An install job's progress and output as server-sent events.
355
+ */
275
356
  installJobEvents(job: string): Promise<{
276
357
  status: 200;
277
358
  contentType: 'text/event-stream';
@@ -285,5 +366,47 @@ export declare class PublicClient {
285
366
  contentType: 'application/json';
286
367
  data: ErrorBody;
287
368
  }>;
369
+ /**
370
+ * @name Settings
371
+ * @description Every setting, its value, where the value came from and whether a change applies now.
372
+ */
373
+ settings(): Promise<{
374
+ status: 200;
375
+ contentType: 'application/json';
376
+ data: Settings;
377
+ } | {
378
+ status: 403;
379
+ contentType: 'application/json';
380
+ data: ErrorBody;
381
+ }>;
382
+ /**
383
+ * @name Update settings
384
+ * @description Changes settings in one transaction, and answers the whole document after the write.
385
+ */
386
+ updateSettings(body: SettingsPatch): Promise<{
387
+ status: 200;
388
+ contentType: 'application/json';
389
+ data: Settings;
390
+ } | {
391
+ status: 400;
392
+ contentType: 'application/json';
393
+ data: ErrorBody;
394
+ } | {
395
+ status: 403;
396
+ contentType: 'application/json';
397
+ data: ErrorBody;
398
+ } | {
399
+ status: 404;
400
+ contentType: 'application/json';
401
+ data: ErrorBody;
402
+ } | {
403
+ status: 409;
404
+ contentType: 'application/json';
405
+ data: ErrorBody;
406
+ } | {
407
+ status: 422;
408
+ contentType: 'application/json';
409
+ data: ErrorBody;
410
+ }>;
288
411
  }
289
412
  //# sourceMappingURL=public.client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.client.d.ts","sourceRoot":"","sources":["../../../src/generated/public/public.client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public.client.d.ts","sourceRoot":"","sources":["../../../src/generated/public/public.client.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,158 @@
1
1
  import type { JsonValue } from '../../sdk-options.js';
2
2
  /**
3
- * generated from [ApiInfo](../../../../../../contracts/rhapsode.public.ck#L63)
3
+ * generated from [ApiInfo](../../../../../../contracts/rhapsode.public.ck#L79)
4
4
  */
5
5
  export interface ApiInfo {
6
6
  title: string;
7
7
  /** The running core's package version. Not the contract. */
8
8
  version: string;
9
9
  }
10
+ /**
11
+ * generated from [SettingsServer](../../../../../../contracts/rhapsode.public.ck#L437)
12
+ */
13
+ export interface SettingsServer {
14
+ port: number;
15
+ host: string;
16
+ shutdownGraceMs: number;
17
+ }
18
+ /**
19
+ * generated from [SettingsLog](../../../../../../contracts/rhapsode.public.ck#L443)
20
+ */
21
+ export interface SettingsLog {
22
+ level: 'error' | 'warn' | 'info' | 'debug' | 'trace';
23
+ }
24
+ /**
25
+ * generated from [SettingsResidency](../../../../../../contracts/rhapsode.public.ck#L447)
26
+ */
27
+ export interface SettingsResidency {
28
+ maxResidentModels: number;
29
+ evictionWaitSeconds: number;
30
+ keepAliveSeconds: number;
31
+ }
32
+ /**
33
+ * generated from [SettingsWorkers](../../../../../../contracts/rhapsode.public.ck#L453)
34
+ */
35
+ export interface SettingsWorkers {
36
+ socketDir: string;
37
+ voiceDir: string;
38
+ startupTimeoutSeconds: number;
39
+ drainGraceMs: number;
40
+ maxRestarts: number;
41
+ restartDecaySeconds: number;
42
+ }
43
+ /**
44
+ * generated from [SettingsInstall](../../../../../../contracts/rhapsode.public.ck#L462)
45
+ */
46
+ export interface SettingsInstall {
47
+ venvDir: string;
48
+ /** Absent when there is neither a setting nor a checkout to find. */
49
+ sourceDir?: string;
50
+ python: string;
51
+ }
52
+ /**
53
+ * generated from [SettingsManagement](../../../../../../contracts/rhapsode.public.ck#L468)
54
+ */
55
+ export interface SettingsManagement {
56
+ /** Never the token itself, which is a root password for the box. */
57
+ tokenSet: boolean;
58
+ origins: string[];
59
+ }
60
+ /**
61
+ * generated from [SettingsUpdate](../../../../../../contracts/rhapsode.public.ck#L473)
62
+ */
63
+ export interface SettingsUpdate {
64
+ check: boolean;
65
+ }
66
+ /**
67
+ * generated from [SettingsEngine](../../../../../../contracts/rhapsode.public.ck#L477)
68
+ */
69
+ export interface SettingsEngine {
70
+ /** Absent when the engine uses residency.keepAliveSeconds. */
71
+ keepAliveSeconds?: number;
72
+ }
73
+ /**
74
+ * generated from [SettingField](../../../../../../contracts/rhapsode.public.ck#L493)
75
+ */
76
+ export interface SettingField {
77
+ /** Dotted: residency.keepAliveSeconds, engines.kokoro.keepAliveSeconds. */
78
+ key: string;
79
+ /** The layer the value in use came from. */
80
+ source: 'default' | 'config' | 'database';
81
+ /** Whether a change takes effect when it is written. */
82
+ applies: 'live' | 'restart';
83
+ /** A value waiting for a restart. For management.token, `true` and never the token. */
84
+ saved?: JsonValue;
85
+ }
86
+ /**
87
+ * A change to some settings. Strict, so a misspelt key is refused rather than saved and ignored, and
88
+ * every member nullable: `null` clears the database's value and the file's, or the default, shows
89
+ * through again. The ranges here are the ones a value is refused outside of; § 10 lists them.
90
+ * generated from [SettingsServerPatch](../../../../../../contracts/rhapsode.public.ck#L508)
91
+ */
92
+ export interface SettingsServerPatch {
93
+ port?: number | null;
94
+ host?: string | null;
95
+ shutdownGraceMs?: number | null;
96
+ }
97
+ /**
98
+ * generated from [SettingsLogPatch](../../../../../../contracts/rhapsode.public.ck#L514)
99
+ */
100
+ export interface SettingsLogPatch {
101
+ level?: 'error' | 'warn' | 'info' | 'debug' | 'trace' | null;
102
+ }
103
+ /**
104
+ * generated from [SettingsResidencyPatch](../../../../../../contracts/rhapsode.public.ck#L518)
105
+ */
106
+ export interface SettingsResidencyPatch {
107
+ maxResidentModels?: number | null;
108
+ evictionWaitSeconds?: number | null;
109
+ keepAliveSeconds?: number | null;
110
+ }
111
+ /**
112
+ * generated from [SettingsWorkersPatch](../../../../../../contracts/rhapsode.public.ck#L524)
113
+ */
114
+ export interface SettingsWorkersPatch {
115
+ socketDir?: string | null;
116
+ voiceDir?: string | null;
117
+ startupTimeoutSeconds?: number | null;
118
+ drainGraceMs?: number | null;
119
+ maxRestarts?: number | null;
120
+ restartDecaySeconds?: number | null;
121
+ }
122
+ /**
123
+ * generated from [SettingsInstallPatch](../../../../../../contracts/rhapsode.public.ck#L533)
124
+ */
125
+ export interface SettingsInstallPatch {
126
+ venvDir?: string | null;
127
+ sourceDir?: string | null;
128
+ python?: string | null;
129
+ }
130
+ /**
131
+ * generated from [SettingsManagementPatch](../../../../../../contracts/rhapsode.public.ck#L539)
132
+ */
133
+ export interface SettingsManagementPatch {
134
+ /** Empty is no token, even where the file has one. */
135
+ token?: string | null;
136
+ /** The whole list, replacing the file's rather than adding to it. */
137
+ origins?: string[] | null;
138
+ }
139
+ /**
140
+ * generated from [SettingsUpdatePatch](../../../../../../contracts/rhapsode.public.ck#L544)
141
+ */
142
+ export interface SettingsUpdatePatch {
143
+ check?: boolean | null;
144
+ }
145
+ /**
146
+ * generated from [SettingsEnginePatch](../../../../../../contracts/rhapsode.public.ck#L548)
147
+ */
148
+ export interface SettingsEnginePatch {
149
+ keepAliveSeconds?: number | null;
150
+ }
10
151
  /**
11
152
  * This file, `rhapsode.types.ck` and `rhapsode.openai.ck` as OpenAPI 3.1. protocol.md § 9. Only the
12
153
  * top of the document is declared: the rest is OpenAPI's own shape, and a client that wants it typed
13
154
  * already has a library that types it.
14
- * generated from [OpenApiDocument](../../../../../../contracts/rhapsode.public.ck#L56)
155
+ * generated from [OpenApiDocument](../../../../../../contracts/rhapsode.public.ck#L72)
15
156
  */
16
157
  export interface OpenApiDocument {
17
158
  openapi: string;
@@ -19,4 +160,39 @@ export interface OpenApiDocument {
19
160
  paths: Record<string, JsonValue>;
20
161
  components?: Record<string, JsonValue>;
21
162
  }
163
+ /**
164
+ * What the running process is using. A setting waiting for a restart shows its old value here.
165
+ * generated from [SettingsValues](../../../../../../contracts/rhapsode.public.ck#L482)
166
+ */
167
+ export interface SettingsValues {
168
+ server: SettingsServer;
169
+ log: SettingsLog;
170
+ residency: SettingsResidency;
171
+ workers: SettingsWorkers;
172
+ install: SettingsInstall;
173
+ management: SettingsManagement;
174
+ update: SettingsUpdate;
175
+ /** One per engine in the registry. */
176
+ engines: Record<string, SettingsEngine>;
177
+ }
178
+ /**
179
+ * generated from [SettingsPatch](../../../../../../contracts/rhapsode.public.ck#L552)
180
+ */
181
+ export interface SettingsPatch {
182
+ server?: SettingsServerPatch;
183
+ log?: SettingsLogPatch;
184
+ residency?: SettingsResidencyPatch;
185
+ workers?: SettingsWorkersPatch;
186
+ install?: SettingsInstallPatch;
187
+ management?: SettingsManagementPatch;
188
+ update?: SettingsUpdatePatch;
189
+ engines?: Record<string, SettingsEnginePatch>;
190
+ }
191
+ /**
192
+ * generated from [Settings](../../../../../../contracts/rhapsode.public.ck#L500)
193
+ */
194
+ export interface Settings {
195
+ values: SettingsValues;
196
+ fields: SettingField[];
197
+ }
22
198
  //# sourceMappingURL=rhapsode.public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rhapsode.public.d.ts","sourceRoot":"","sources":["../../../../src/generated/public/types/rhapsode.public.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC1C"}
1
+ {"version":3,"file":"rhapsode.public.d.ts","sourceRoot":"","sources":["../../../../src/generated/public/types/rhapsode.public.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -114,41 +114,70 @@ var PublicClient = class {
114
114
  constructor(fetch2) {
115
115
  this.fetch = fetch2;
116
116
  }
117
- /** @description The core's own. It answers while every worker is down and never blocks on one, because a */
117
+ /**
118
+ * @name Health
119
+ * @description The core's own health, which answers even while every worker is down.
120
+ */
118
121
  async health() {
119
122
  const result = await this.fetch(`/health`, {
120
123
  method: "GET"
121
124
  });
122
125
  return await parseJson(result);
123
126
  }
124
- /** @description Open to every caller, like /health. It never waits on the network: a first call after boot */
127
+ /**
128
+ * @name Update status
129
+ * @description Whether a newer rhapsode has been released, from a check made at most once a day.
130
+ */
125
131
  async updateStatus() {
126
132
  const result = await this.fetch(`/update`, {
127
133
  method: "GET"
128
134
  });
129
135
  return await parseJson(result);
130
136
  }
131
- /** @description What is on the card, for an operator asking where their memory went. Reads the core's own */
137
+ /**
138
+ * @name Check for an update
139
+ * @description Asks GitHub for the latest release now, and answers once it has.
140
+ */
141
+ async checkForUpdate() {
142
+ const result = await this.fetch(`/update/check`, {
143
+ method: "POST"
144
+ });
145
+ return await parseJson(result);
146
+ }
147
+ /**
148
+ * @name Residency
149
+ * @description What each engine holds in memory, how big it is and when it expires.
150
+ */
132
151
  async residency() {
133
152
  const result = await this.fetch(`/residency`, {
134
153
  method: "GET"
135
154
  });
136
155
  return await parseJson(result);
137
156
  }
138
- /** @description Open to every caller, like /health. The public API only: never a worker route. */
157
+ /**
158
+ * @name Self-description
159
+ * @description This API as an OpenAPI 3.1 document, describing the core that serves it.
160
+ */
139
161
  async openapi() {
140
162
  const result = await this.fetch(`/openapi.json`, {
141
163
  method: "GET"
142
164
  });
143
165
  return await parseJson(result);
144
166
  }
145
- /** @description Every declared engine, whether or not it is running. Never spawns one: this is the list an */
167
+ /**
168
+ * @name Engines
169
+ * @description Every declared engine, running or not, with its code and weights licences.
170
+ */
146
171
  async engines() {
147
172
  const result = await this.fetch(`/engines`, {
148
173
  method: "GET"
149
174
  });
150
175
  return await parseJson(result);
151
176
  }
177
+ /**
178
+ * @name Engine capabilities
179
+ * @description What the engine can do with the variant it has loaded, and what its other variants could.
180
+ */
152
181
  async engineCapabilities(engine) {
153
182
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/capabilities`, {
154
183
  method: "GET",
@@ -178,6 +207,10 @@ var PublicClient = class {
178
207
  };
179
208
  }
180
209
  }
210
+ /**
211
+ * @name Voices
212
+ * @description The engine's voices, built in and cloned.
213
+ */
181
214
  async engineVoices(engine) {
182
215
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices`, {
183
216
  method: "GET",
@@ -200,7 +233,10 @@ var PublicClient = class {
200
233
  };
201
234
  }
202
235
  }
203
- /** @description Management, like § 10: it writes a file on the box. Streamed to the worker, capped at 25 MB. */
236
+ /**
237
+ * @name Create a voice
238
+ * @description Creates a voice from a reference, such as a clip to clone, or from a blend of voices the engine has.
239
+ */
204
240
  async createVoice(engine, body) {
205
241
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices`, {
206
242
  method: "POST",
@@ -245,6 +281,10 @@ var PublicClient = class {
245
281
  };
246
282
  }
247
283
  }
284
+ /**
285
+ * @name Delete a voice
286
+ * @description Deletes a voice.
287
+ */
248
288
  async deleteVoice(engine, voice) {
249
289
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices/${encodeURIComponent(voice)}`, {
250
290
  method: "DELETE",
@@ -286,6 +326,10 @@ var PublicClient = class {
286
326
  };
287
327
  }
288
328
  }
329
+ /**
330
+ * @name Voice preview
331
+ * @description A short sample of the voice.
332
+ */
289
333
  async voicePreview(engine, voice) {
290
334
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices/${encodeURIComponent(voice)}/preview`, {
291
335
  method: "GET",
@@ -308,7 +352,10 @@ var PublicClient = class {
308
352
  };
309
353
  }
310
354
  }
311
- /** @description The one endpoint that matters. Cues the effective variant does not claim are stripped */
355
+ /**
356
+ * @name Speak
357
+ * @description Speaks a line with one engine, streamed or as a finished file.
358
+ */
312
359
  async speak(body) {
313
360
  const result = await this.fetch(`/speak`, {
314
361
  method: "POST",
@@ -363,7 +410,10 @@ var PublicClient = class {
363
410
  };
364
411
  }
365
412
  }
366
- /** @description A conversation in one take, on a variant that declares `dialogue`. Cues are stripped per */
413
+ /**
414
+ * @name Dialogue
415
+ * @description A conversation between speakers in one take, on a variant that declares dialogue.
416
+ */
367
417
  async dialogue(engine, body) {
368
418
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/dialogue`, {
369
419
  method: "POST",
@@ -418,14 +468,20 @@ var PublicClient = class {
418
468
  };
419
469
  }
420
470
  }
421
- /** @description Open to every caller: it only reads, and its licences are what § 4 promises before install. */
471
+ /**
472
+ * @name Catalog
473
+ * @description Every engine this core knows how to install, with both licences, before anything is installed.
474
+ */
422
475
  async catalog() {
423
476
  const result = await this.fetch(`/catalog`, {
424
477
  method: "GET"
425
478
  });
426
479
  return await parseJson(result);
427
480
  }
428
- /** @description Only an engine this API installed. One the operator configured is theirs to remove. */
481
+ /**
482
+ * @name Uninstall an engine
483
+ * @description Removes an engine this API installed.
484
+ */
429
485
  async uninstallEngine(engine) {
430
486
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}`, {
431
487
  method: "DELETE",
@@ -460,7 +516,10 @@ var PublicClient = class {
460
516
  };
461
517
  }
462
518
  }
463
- /** @description Free this engine's model now, rather than waiting out its keep-alive. Idempotent: an */
519
+ /**
520
+ * @name Unload an engine
521
+ * @description Frees the engine's model now, rather than waiting out its keep-alive.
522
+ */
464
523
  async unloadEngine(engine, query) {
465
524
  const qs = buildQueryString(query);
466
525
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/unload${qs}`, {
@@ -498,6 +557,10 @@ var PublicClient = class {
498
557
  };
499
558
  }
500
559
  }
560
+ /**
561
+ * @name Install an engine
562
+ * @description Installs an engine from the catalog, as a job to follow.
563
+ */
501
564
  async installEngine(engine, query) {
502
565
  const qs = buildQueryString(query);
503
566
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/install${qs}`, {
@@ -542,6 +605,10 @@ var PublicClient = class {
542
605
  };
543
606
  }
544
607
  }
608
+ /**
609
+ * @name Reinstall an engine
610
+ * @description Rebuilds an installed engine beside the old one and swaps it in once it works.
611
+ */
545
612
  async reinstallEngine(engine, query) {
546
613
  const qs = buildQueryString(query);
547
614
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/reinstall${qs}`, {
@@ -586,6 +653,10 @@ var PublicClient = class {
586
653
  };
587
654
  }
588
655
  }
656
+ /**
657
+ * @name Pull weights
658
+ * @description Downloads a variant's weights ahead of its first load, as a job to follow.
659
+ */
589
660
  async pullEngine(engine, body) {
590
661
  const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/pull`, {
591
662
  method: "POST",
@@ -626,6 +697,10 @@ var PublicClient = class {
626
697
  };
627
698
  }
628
699
  }
700
+ /**
701
+ * @name Install jobs
702
+ * @description Every install job, running and finished.
703
+ */
629
704
  async installJobs() {
630
705
  const result = await this.fetch(`/installs`, {
631
706
  method: "GET",
@@ -648,6 +723,10 @@ var PublicClient = class {
648
723
  };
649
724
  }
650
725
  }
726
+ /**
727
+ * @name Reinstall outdated engines
728
+ * @description Reinstalls every engine an upgrade left behind.
729
+ */
651
730
  async reinstallOutdated() {
652
731
  const result = await this.fetch(`/installs/outdated`, {
653
732
  method: "POST",
@@ -670,6 +749,10 @@ var PublicClient = class {
670
749
  };
671
750
  }
672
751
  }
752
+ /**
753
+ * @name Install job
754
+ * @description One install job and where it has got to.
755
+ */
673
756
  async installJob(job) {
674
757
  const result = await this.fetch(`/installs/${encodeURIComponent(job)}`, {
675
758
  method: "GET",
@@ -699,7 +782,10 @@ var PublicClient = class {
699
782
  };
700
783
  }
701
784
  }
702
- /** @description Server-sent events, each frame's data a FeedEvent. Hand-written, like /speak: ContractKit */
785
+ /**
786
+ * @name Install job events
787
+ * @description An install job's progress and output as server-sent events.
788
+ */
703
789
  async installJobEvents(job) {
704
790
  const result = await this.fetch(`/installs/${encodeURIComponent(job)}/events`, {
705
791
  method: "GET",
@@ -729,6 +815,90 @@ var PublicClient = class {
729
815
  };
730
816
  }
731
817
  }
818
+ /**
819
+ * @name Settings
820
+ * @description Every setting, its value, where the value came from and whether a change applies now.
821
+ */
822
+ async settings() {
823
+ const result = await this.fetch(`/settings`, {
824
+ method: "GET",
825
+ expectStatuses: [
826
+ 403
827
+ ]
828
+ });
829
+ switch (result.status) {
830
+ case 403:
831
+ return {
832
+ status: 403,
833
+ contentType: "application/json",
834
+ data: await parseJson(result)
835
+ };
836
+ default:
837
+ return {
838
+ status: 200,
839
+ contentType: "application/json",
840
+ data: await parseJson(result)
841
+ };
842
+ }
843
+ }
844
+ /**
845
+ * @name Update settings
846
+ * @description Changes settings in one transaction, and answers the whole document after the write.
847
+ */
848
+ async updateSettings(body) {
849
+ const result = await this.fetch(`/settings`, {
850
+ method: "PATCH",
851
+ headers: {
852
+ "Content-Type": "application/json"
853
+ },
854
+ body: JSON.stringify(body, bigIntReplacer),
855
+ expectStatuses: [
856
+ 400,
857
+ 403,
858
+ 404,
859
+ 409,
860
+ 422
861
+ ]
862
+ });
863
+ switch (result.status) {
864
+ case 400:
865
+ return {
866
+ status: 400,
867
+ contentType: "application/json",
868
+ data: await parseJson(result)
869
+ };
870
+ case 403:
871
+ return {
872
+ status: 403,
873
+ contentType: "application/json",
874
+ data: await parseJson(result)
875
+ };
876
+ case 404:
877
+ return {
878
+ status: 404,
879
+ contentType: "application/json",
880
+ data: await parseJson(result)
881
+ };
882
+ case 409:
883
+ return {
884
+ status: 409,
885
+ contentType: "application/json",
886
+ data: await parseJson(result)
887
+ };
888
+ case 422:
889
+ return {
890
+ status: 422,
891
+ contentType: "application/json",
892
+ data: await parseJson(result)
893
+ };
894
+ default:
895
+ return {
896
+ status: 200,
897
+ contentType: "application/json",
898
+ data: await parseJson(result)
899
+ };
900
+ }
901
+ }
732
902
  };
733
903
 
734
904
  // src/generated/rhapsode.sdk.ts
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generated/sdk-options.ts","../src/generated/public/public.client.ts","../src/generated/rhapsode.sdk.ts"],"sourcesContent":["export class SdkError<TBody = unknown> extends Error {\n constructor(\n public readonly status: number,\n public readonly statusText: string,\n public readonly body: TBody,\n public readonly headers: Headers,\n ) {\n super(`${status} ${statusText}`);\n this.name = 'SdkError';\n }\n}\n\nexport interface SdkRequestInit extends RequestInit {\n /**\n * Statuses this operation declares as values rather than errors — a 304 from\n * conditional-GET middleware, or an error status the service returns deliberately.\n * Anything else at or above 400 still throws SdkError.\n */\n expectStatuses?: number[];\n}\n\nexport type SdkFetch = (url: string, init: SdkRequestInit) => Promise<Response>;\n\nexport interface SdkOptions {\n baseUrl: string;\n headers?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);\n fetch?: SdkFetch;\n /** Called once per request to produce a unique X-Request-ID header value */\n requestIdFactory?: () => string;\n}\n\nexport const bigIntReplacer = (_: string, value: any): any => {\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n};\n\nexport const bigIntReviver = (_: string, value: any): any => {\n if (typeof value === 'string' && /^-?\\d+n$/.test(value)) {\n return BigInt(value.slice(0, -1));\n }\n return value;\n};\n\nexport type JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };\n\nexport function readContentType(res: Response): string {\n return res.headers.get('content-type')?.split(';')[0]?.trim() ?? '';\n}\n\n/** A v4 UUID. `crypto.randomUUID` exists only in a secure context, so plain HTTP builds one by hand. */\nfunction randomRequestId(): string {\n if (typeof crypto.randomUUID === 'function') return crypto.randomUUID();\n const bytes = crypto.getRandomValues(new Uint8Array(16));\n bytes[6] = (bytes[6]! & 0x0f) | 0x40;\n bytes[8] = (bytes[8]! & 0x3f) | 0x80;\n const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n}\n\nexport function createSdkFetch(options: SdkOptions): SdkFetch {\n const getRequestId = options.requestIdFactory ?? randomRequestId;\n return async (url: string, init: SdkRequestInit): Promise<Response> => {\n const baseHeaders = typeof options.headers === 'function' ? await options.headers() : (options.headers ?? {});\n const res = await fetch(`${options.baseUrl}${url}`, {\n ...init,\n headers: { ...baseHeaders, 'X-Request-ID': getRequestId(), ...(init.headers as Record<string, string>) },\n });\n if (!res.ok && !(init.expectStatuses ?? []).includes(res.status)) {\n const text = await res.text();\n let body: unknown;\n try {\n body = JSON.parse(text);\n } catch {\n body = text;\n }\n throw new SdkError(res.status, res.statusText, body, res.headers);\n }\n return res;\n };\n}\n\nexport function buildQueryString(query: object | undefined): string {\n const searchParams = new URLSearchParams();\n if (query) {\n for (const [k, v] of Object.entries(query)) {\n if (v === undefined || v === null) continue;\n if (Array.isArray(v)) {\n for (const item of v) searchParams.append(k, String(item));\n } else searchParams.set(k, String(v));\n }\n }\n const qs = searchParams.toString();\n return qs ? `?${qs}` : '';\n}\n\nexport function buildHeaders(headers: object | undefined): Record<string, string> {\n const out: Record<string, string> = {};\n if (headers) {\n for (const [k, v] of Object.entries(headers)) {\n if (v === undefined || v === null) continue;\n out[k] = Array.isArray(v) ? v.map(String).join(', ') : String(v);\n }\n }\n return out;\n}\n\nexport function parseBigIntHeader(name: string, value: string): bigint {\n if (/^-?\\d+n?$/.test(value)) return BigInt(value.replace(/n$/, ''));\n throw new Error(`Response header '${name}' is not a bigint: ${JSON.stringify(value)}`);\n}\n\n/**\n * Read a JSON response body.\n *\n * No reviver: `bigIntReviver` matches any string of the form `123n` anywhere in the\n * document, so a contract with no bigint field would still have a legitimate string like\n * \"123n\" silently turned into a BigInt. Clients whose contracts do use bigint import\n * `parseJsonWithBigInt` under this name instead.\n */\nexport async function parseJson<T>(res: Response): Promise<T> {\n return JSON.parse(await res.text()) as T;\n}\n\n/** `parseJson` for contracts that declare a bigint, applying the `123n` reviver. */\nexport async function parseJsonWithBigInt<T>(res: Response): Promise<T> {\n return JSON.parse(await res.text(), bigIntReviver) as T;\n}\n","import type { SdkFetch } from '../sdk-options.js';\nimport { bigIntReplacer, parseJson, buildQueryString, readContentType } from '../sdk-options.js';\nimport type {\n Capabilities,\n CatalogEntry,\n CoreHealth,\n EngineDialogueRequest,\n EngineSpeakRequest,\n EngineSummary,\n ErrorBody,\n InstallJob,\n PullRequest,\n ReinstallOutdated,\n ResidencyDetail,\n UpdateStatus,\n Voice,\n} from '../rhapsode/types/rhapsode.types.js';\nimport type { OpenApiDocument } from './types/rhapsode.public.js';\n\nexport class PublicClient {\n constructor(private fetch: SdkFetch) {}\n\n /** @description The core's own. It answers while every worker is down and never blocks on one, because a */\n async health(): Promise<CoreHealth> {\n const result = await this.fetch(`/health`, { method: 'GET' });\n return await parseJson<CoreHealth>(result);\n }\n\n /** @description Open to every caller, like /health. It never waits on the network: a first call after boot */\n async updateStatus(): Promise<UpdateStatus> {\n const result = await this.fetch(`/update`, { method: 'GET' });\n return await parseJson<UpdateStatus>(result);\n }\n\n /** @description What is on the card, for an operator asking where their memory went. Reads the core's own */\n async residency(): Promise<ResidencyDetail> {\n const result = await this.fetch(`/residency`, { method: 'GET' });\n return await parseJson<ResidencyDetail>(result);\n }\n\n /** @description Open to every caller, like /health. The public API only: never a worker route. */\n async openapi(): Promise<OpenApiDocument> {\n const result = await this.fetch(`/openapi.json`, { method: 'GET' });\n return await parseJson<OpenApiDocument>(result);\n }\n\n /** @description Every declared engine, whether or not it is running. Never spawns one: this is the list an */\n async engines(): Promise<EngineSummary[]> {\n const result = await this.fetch(`/engines`, { method: 'GET' });\n return await parseJson<EngineSummary[]>(result);\n }\n\n async engineCapabilities(\n engine: string,\n ): Promise<\n | { status: 200; contentType: 'application/json'; data: Capabilities }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 503; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/capabilities`, {\n method: 'GET',\n expectStatuses: [404, 503],\n });\n switch (result.status) {\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 503:\n return { status: 503, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<Capabilities>(result) };\n }\n }\n\n async engineVoices(\n engine: string,\n ): Promise<{ status: 200; contentType: 'application/json'; data: Voice[] } | { status: 404; contentType: 'application/json'; data: ErrorBody }> {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices`, {\n method: 'GET',\n expectStatuses: [404],\n });\n switch (result.status) {\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<Voice[]>(result) };\n }\n }\n\n /** @description Management, like § 10: it writes a file on the box. Streamed to the worker, capped at 25 MB. */\n async createVoice(\n engine: string,\n body: FormData,\n ): Promise<\n | { status: 201; contentType: 'application/json'; data: Voice }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 422; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices`, {\n method: 'POST',\n body: body,\n expectStatuses: [400, 403, 404, 422],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 422:\n return { status: 422, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 201, contentType: 'application/json', data: await parseJson<Voice>(result) };\n }\n }\n\n async deleteVoice(\n engine: string,\n voice: string,\n ): Promise<\n | { status: 204 }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 422; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices/${encodeURIComponent(voice)}`, {\n method: 'DELETE',\n expectStatuses: [400, 403, 404, 422],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 422:\n return { status: 422, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 204 };\n }\n }\n\n async voicePreview(\n engine: string,\n voice: string,\n ): Promise<{ status: 200; contentType: 'audio/wav'; data: Blob } | { status: 404; contentType: 'application/json'; data: ErrorBody }> {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices/${encodeURIComponent(voice)}/preview`, {\n method: 'GET',\n expectStatuses: [404],\n });\n switch (result.status) {\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'audio/wav', data: await result.blob() };\n }\n }\n\n /** @description The one endpoint that matters. Cues the effective variant does not claim are stripped */\n async speak(\n body: EngineSpeakRequest,\n ): Promise<\n | { status: 200; contentType: 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16'; data: Blob }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 422; contentType: 'application/json'; data: ErrorBody }\n | { status: 429; contentType: 'application/json'; data: ErrorBody }\n | { status: 503; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/speak`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body, bigIntReplacer),\n expectStatuses: [400, 404, 422, 429, 503],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 422:\n return { status: 422, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 429:\n return { status: 429, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 503:\n return { status: 503, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return {\n status: 200,\n contentType: readContentType(result) as 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16',\n data: await result.blob(),\n };\n }\n }\n\n /** @description A conversation in one take, on a variant that declares `dialogue`. Cues are stripped per */\n async dialogue(\n engine: string,\n body: EngineDialogueRequest,\n ): Promise<\n | { status: 200; contentType: 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16'; data: Blob }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 422; contentType: 'application/json'; data: ErrorBody }\n | { status: 429; contentType: 'application/json'; data: ErrorBody }\n | { status: 503; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/dialogue`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body, bigIntReplacer),\n expectStatuses: [400, 404, 422, 429, 503],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 422:\n return { status: 422, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 429:\n return { status: 429, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 503:\n return { status: 503, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return {\n status: 200,\n contentType: readContentType(result) as 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16',\n data: await result.blob(),\n };\n }\n }\n\n /** @description Open to every caller: it only reads, and its licences are what § 4 promises before install. */\n async catalog(): Promise<CatalogEntry[]> {\n const result = await this.fetch(`/catalog`, { method: 'GET' });\n return await parseJson<CatalogEntry[]>(result);\n }\n\n /** @description Only an engine this API installed. One the operator configured is theirs to remove. */\n async uninstallEngine(\n engine: string,\n ): Promise<\n | { status: 204 }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}`, {\n method: 'DELETE',\n expectStatuses: [403, 404, 409],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 204 };\n }\n }\n\n /** @description Free this engine's model now, rather than waiting out its keep-alive. Idempotent: an */\n async unloadEngine(\n engine: string,\n query?: { mode?: 'terminate' | 'unload' },\n ): Promise<\n | { status: 200; contentType: 'application/json'; data: EngineSummary }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const qs = buildQueryString(query);\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/unload${qs}`, {\n method: 'POST',\n expectStatuses: [403, 404, 409],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<EngineSummary>(result) };\n }\n }\n\n async installEngine(\n engine: string,\n query?: { pull?: string; accept?: string },\n ): Promise<\n | { status: 202; contentType: 'application/json'; data: InstallJob }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const qs = buildQueryString(query);\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/install${qs}`, {\n method: 'POST',\n expectStatuses: [400, 403, 404, 409],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 202, contentType: 'application/json', data: await parseJson<InstallJob>(result) };\n }\n }\n\n async reinstallEngine(\n engine: string,\n query?: { accept?: string },\n ): Promise<\n | { status: 202; contentType: 'application/json'; data: InstallJob }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const qs = buildQueryString(query);\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/reinstall${qs}`, {\n method: 'POST',\n expectStatuses: [400, 403, 404, 409],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 202, contentType: 'application/json', data: await parseJson<InstallJob>(result) };\n }\n }\n\n async pullEngine(\n engine: string,\n body: PullRequest,\n ): Promise<\n | { status: 202; contentType: 'application/json'; data: InstallJob }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/pull`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body, bigIntReplacer),\n expectStatuses: [403, 404, 409],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 202, contentType: 'application/json', data: await parseJson<InstallJob>(result) };\n }\n }\n\n async installJobs(): Promise<\n { status: 200; contentType: 'application/json'; data: InstallJob[] } | { status: 403; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/installs`, {\n method: 'GET',\n expectStatuses: [403],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<InstallJob[]>(result) };\n }\n }\n\n async reinstallOutdated(): Promise<\n { status: 202; contentType: 'application/json'; data: ReinstallOutdated } | { status: 403; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/installs/outdated`, {\n method: 'POST',\n expectStatuses: [403],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 202, contentType: 'application/json', data: await parseJson<ReinstallOutdated>(result) };\n }\n }\n\n async installJob(\n job: string,\n ): Promise<\n | { status: 200; contentType: 'application/json'; data: InstallJob }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/installs/${encodeURIComponent(job)}`, {\n method: 'GET',\n expectStatuses: [403, 404],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<InstallJob>(result) };\n }\n }\n\n /** @description Server-sent events, each frame's data a FeedEvent. Hand-written, like /speak: ContractKit */\n async installJobEvents(\n job: string,\n ): Promise<\n | { status: 200; contentType: 'text/event-stream'; data: string }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/installs/${encodeURIComponent(job)}/events`, {\n method: 'GET',\n expectStatuses: [403, 404],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'text/event-stream', data: await result.text() };\n }\n }\n}\n","import type { SdkOptions } from './sdk-options.js';\nimport { createSdkFetch } from './sdk-options.js';\nimport { PublicClient } from './public/public.client.js';\n\nexport class RhapsodeSdk {\n readonly public: PublicClient;\n\n constructor(options: SdkOptions) {\n const sdkFetch = options.fetch ?? createSdkFetch(options);\n this.public = new PublicClient(sdkFetch);\n }\n}\n"],"mappings":"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","names":["SdkError","Error","status","statusText","body","headers","name","bigIntReplacer","_","value","toString","bigIntReviver","test","BigInt","slice","readContentType","res","get","split","trim","randomRequestId","crypto","randomUUID","bytes","getRandomValues","Uint8Array","hex","Array","from","b","padStart","join","createSdkFetch","options","getRequestId","requestIdFactory","url","init","baseHeaders","fetch","baseUrl","ok","expectStatuses","includes","text","JSON","parse","buildQueryString","query","searchParams","URLSearchParams","k","v","Object","entries","undefined","isArray","item","append","String","set","qs","buildHeaders","out","map","parseBigIntHeader","replace","stringify","parseJson","parseJsonWithBigInt","PublicClient","fetch","health","result","method","parseJson","updateStatus","residency","openapi","engines","engineCapabilities","engine","encodeURIComponent","expectStatuses","status","contentType","data","engineVoices","createVoice","body","deleteVoice","voice","voicePreview","blob","speak","headers","JSON","stringify","bigIntReplacer","readContentType","dialogue","catalog","uninstallEngine","unloadEngine","query","qs","buildQueryString","installEngine","reinstallEngine","pullEngine","installJobs","reinstallOutdated","installJob","job","installJobEvents","text","RhapsodeSdk","public","options","sdkFetch","fetch","createSdkFetch","PublicClient"]}
1
+ {"version":3,"sources":["../src/generated/sdk-options.ts","../src/generated/public/public.client.ts","../src/generated/rhapsode.sdk.ts"],"sourcesContent":["export class SdkError<TBody = unknown> extends Error {\n constructor(\n public readonly status: number,\n public readonly statusText: string,\n public readonly body: TBody,\n public readonly headers: Headers,\n ) {\n super(`${status} ${statusText}`);\n this.name = 'SdkError';\n }\n}\n\nexport interface SdkRequestInit extends RequestInit {\n /**\n * Statuses this operation declares as values rather than errors — a 304 from\n * conditional-GET middleware, or an error status the service returns deliberately.\n * Anything else at or above 400 still throws SdkError.\n */\n expectStatuses?: number[];\n}\n\nexport type SdkFetch = (url: string, init: SdkRequestInit) => Promise<Response>;\n\nexport interface SdkOptions {\n baseUrl: string;\n headers?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);\n fetch?: SdkFetch;\n /** Called once per request to produce a unique X-Request-ID header value */\n requestIdFactory?: () => string;\n}\n\nexport const bigIntReplacer = (_: string, value: any): any => {\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n};\n\nexport const bigIntReviver = (_: string, value: any): any => {\n if (typeof value === 'string' && /^-?\\d+n$/.test(value)) {\n return BigInt(value.slice(0, -1));\n }\n return value;\n};\n\nexport type JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };\n\nexport function readContentType(res: Response): string {\n return res.headers.get('content-type')?.split(';')[0]?.trim() ?? '';\n}\n\n/** A v4 UUID. `crypto.randomUUID` exists only in a secure context, so plain HTTP builds one by hand. */\nfunction randomRequestId(): string {\n if (typeof crypto.randomUUID === 'function') return crypto.randomUUID();\n const bytes = crypto.getRandomValues(new Uint8Array(16));\n bytes[6] = (bytes[6]! & 0x0f) | 0x40;\n bytes[8] = (bytes[8]! & 0x3f) | 0x80;\n const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n}\n\nexport function createSdkFetch(options: SdkOptions): SdkFetch {\n const getRequestId = options.requestIdFactory ?? randomRequestId;\n return async (url: string, init: SdkRequestInit): Promise<Response> => {\n const baseHeaders = typeof options.headers === 'function' ? await options.headers() : (options.headers ?? {});\n const res = await fetch(`${options.baseUrl}${url}`, {\n ...init,\n headers: { ...baseHeaders, 'X-Request-ID': getRequestId(), ...(init.headers as Record<string, string>) },\n });\n if (!res.ok && !(init.expectStatuses ?? []).includes(res.status)) {\n const text = await res.text();\n let body: unknown;\n try {\n body = JSON.parse(text);\n } catch {\n body = text;\n }\n throw new SdkError(res.status, res.statusText, body, res.headers);\n }\n return res;\n };\n}\n\nexport function buildQueryString(query: object | undefined): string {\n const searchParams = new URLSearchParams();\n if (query) {\n for (const [k, v] of Object.entries(query)) {\n if (v === undefined || v === null) continue;\n if (Array.isArray(v)) {\n for (const item of v) searchParams.append(k, String(item));\n } else searchParams.set(k, String(v));\n }\n }\n const qs = searchParams.toString();\n return qs ? `?${qs}` : '';\n}\n\nexport function buildHeaders(headers: object | undefined): Record<string, string> {\n const out: Record<string, string> = {};\n if (headers) {\n for (const [k, v] of Object.entries(headers)) {\n if (v === undefined || v === null) continue;\n out[k] = Array.isArray(v) ? v.map(String).join(', ') : String(v);\n }\n }\n return out;\n}\n\nexport function parseBigIntHeader(name: string, value: string): bigint {\n if (/^-?\\d+n?$/.test(value)) return BigInt(value.replace(/n$/, ''));\n throw new Error(`Response header '${name}' is not a bigint: ${JSON.stringify(value)}`);\n}\n\n/**\n * Read a JSON response body.\n *\n * No reviver: `bigIntReviver` matches any string of the form `123n` anywhere in the\n * document, so a contract with no bigint field would still have a legitimate string like\n * \"123n\" silently turned into a BigInt. Clients whose contracts do use bigint import\n * `parseJsonWithBigInt` under this name instead.\n */\nexport async function parseJson<T>(res: Response): Promise<T> {\n return JSON.parse(await res.text()) as T;\n}\n\n/** `parseJson` for contracts that declare a bigint, applying the `123n` reviver. */\nexport async function parseJsonWithBigInt<T>(res: Response): Promise<T> {\n return JSON.parse(await res.text(), bigIntReviver) as T;\n}\n","import type { SdkFetch } from '../sdk-options.js';\nimport { bigIntReplacer, parseJson, buildQueryString, readContentType } from '../sdk-options.js';\nimport type {\n Capabilities,\n CatalogEntry,\n CoreHealth,\n EngineDialogueRequest,\n EngineSpeakRequest,\n EngineSummary,\n ErrorBody,\n InstallJob,\n PullRequest,\n ReinstallOutdated,\n ResidencyDetail,\n UpdateStatus,\n Voice,\n} from '../rhapsode/types/rhapsode.types.js';\nimport type { OpenApiDocument, Settings, SettingsPatch } from './types/rhapsode.public.js';\n\nexport class PublicClient {\n constructor(private fetch: SdkFetch) {}\n\n /**\n * @name Health\n * @description The core's own health, which answers even while every worker is down.\n */\n async health(): Promise<CoreHealth> {\n const result = await this.fetch(`/health`, { method: 'GET' });\n return await parseJson<CoreHealth>(result);\n }\n\n /**\n * @name Update status\n * @description Whether a newer rhapsode has been released, from a check made at most once a day.\n */\n async updateStatus(): Promise<UpdateStatus> {\n const result = await this.fetch(`/update`, { method: 'GET' });\n return await parseJson<UpdateStatus>(result);\n }\n\n /**\n * @name Check for an update\n * @description Asks GitHub for the latest release now, and answers once it has.\n */\n async checkForUpdate(): Promise<UpdateStatus> {\n const result = await this.fetch(`/update/check`, { method: 'POST' });\n return await parseJson<UpdateStatus>(result);\n }\n\n /**\n * @name Residency\n * @description What each engine holds in memory, how big it is and when it expires.\n */\n async residency(): Promise<ResidencyDetail> {\n const result = await this.fetch(`/residency`, { method: 'GET' });\n return await parseJson<ResidencyDetail>(result);\n }\n\n /**\n * @name Self-description\n * @description This API as an OpenAPI 3.1 document, describing the core that serves it.\n */\n async openapi(): Promise<OpenApiDocument> {\n const result = await this.fetch(`/openapi.json`, { method: 'GET' });\n return await parseJson<OpenApiDocument>(result);\n }\n\n /**\n * @name Engines\n * @description Every declared engine, running or not, with its code and weights licences.\n */\n async engines(): Promise<EngineSummary[]> {\n const result = await this.fetch(`/engines`, { method: 'GET' });\n return await parseJson<EngineSummary[]>(result);\n }\n\n /**\n * @name Engine capabilities\n * @description What the engine can do with the variant it has loaded, and what its other variants could.\n */\n async engineCapabilities(\n engine: string,\n ): Promise<\n | { status: 200; contentType: 'application/json'; data: Capabilities }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 503; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/capabilities`, {\n method: 'GET',\n expectStatuses: [404, 503],\n });\n switch (result.status) {\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 503:\n return { status: 503, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<Capabilities>(result) };\n }\n }\n\n /**\n * @name Voices\n * @description The engine's voices, built in and cloned.\n */\n async engineVoices(\n engine: string,\n ): Promise<{ status: 200; contentType: 'application/json'; data: Voice[] } | { status: 404; contentType: 'application/json'; data: ErrorBody }> {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices`, {\n method: 'GET',\n expectStatuses: [404],\n });\n switch (result.status) {\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<Voice[]>(result) };\n }\n }\n\n /**\n * @name Create a voice\n * @description Creates a voice from a reference, such as a clip to clone, or from a blend of voices the engine has.\n */\n async createVoice(\n engine: string,\n body: FormData,\n ): Promise<\n | { status: 201; contentType: 'application/json'; data: Voice }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 422; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices`, {\n method: 'POST',\n body: body,\n expectStatuses: [400, 403, 404, 422],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 422:\n return { status: 422, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 201, contentType: 'application/json', data: await parseJson<Voice>(result) };\n }\n }\n\n /**\n * @name Delete a voice\n * @description Deletes a voice.\n */\n async deleteVoice(\n engine: string,\n voice: string,\n ): Promise<\n | { status: 204 }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 422; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices/${encodeURIComponent(voice)}`, {\n method: 'DELETE',\n expectStatuses: [400, 403, 404, 422],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 422:\n return { status: 422, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 204 };\n }\n }\n\n /**\n * @name Voice preview\n * @description A short sample of the voice.\n */\n async voicePreview(\n engine: string,\n voice: string,\n ): Promise<{ status: 200; contentType: 'audio/wav'; data: Blob } | { status: 404; contentType: 'application/json'; data: ErrorBody }> {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/voices/${encodeURIComponent(voice)}/preview`, {\n method: 'GET',\n expectStatuses: [404],\n });\n switch (result.status) {\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'audio/wav', data: await result.blob() };\n }\n }\n\n /**\n * @name Speak\n * @description Speaks a line with one engine, streamed or as a finished file.\n */\n async speak(\n body: EngineSpeakRequest,\n ): Promise<\n | { status: 200; contentType: 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16'; data: Blob }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 422; contentType: 'application/json'; data: ErrorBody }\n | { status: 429; contentType: 'application/json'; data: ErrorBody }\n | { status: 503; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/speak`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body, bigIntReplacer),\n expectStatuses: [400, 404, 422, 429, 503],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 422:\n return { status: 422, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 429:\n return { status: 429, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 503:\n return { status: 503, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return {\n status: 200,\n contentType: readContentType(result) as 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16',\n data: await result.blob(),\n };\n }\n }\n\n /**\n * @name Dialogue\n * @description A conversation between speakers in one take, on a variant that declares dialogue.\n */\n async dialogue(\n engine: string,\n body: EngineDialogueRequest,\n ): Promise<\n | { status: 200; contentType: 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16'; data: Blob }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 422; contentType: 'application/json'; data: ErrorBody }\n | { status: 429; contentType: 'application/json'; data: ErrorBody }\n | { status: 503; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/dialogue`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body, bigIntReplacer),\n expectStatuses: [400, 404, 422, 429, 503],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 422:\n return { status: 422, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 429:\n return { status: 429, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 503:\n return { status: 503, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return {\n status: 200,\n contentType: readContentType(result) as 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16',\n data: await result.blob(),\n };\n }\n }\n\n /**\n * @name Catalog\n * @description Every engine this core knows how to install, with both licences, before anything is installed.\n */\n async catalog(): Promise<CatalogEntry[]> {\n const result = await this.fetch(`/catalog`, { method: 'GET' });\n return await parseJson<CatalogEntry[]>(result);\n }\n\n /**\n * @name Uninstall an engine\n * @description Removes an engine this API installed.\n */\n async uninstallEngine(\n engine: string,\n ): Promise<\n | { status: 204 }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}`, {\n method: 'DELETE',\n expectStatuses: [403, 404, 409],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 204 };\n }\n }\n\n /**\n * @name Unload an engine\n * @description Frees the engine's model now, rather than waiting out its keep-alive.\n */\n async unloadEngine(\n engine: string,\n query?: { mode?: 'terminate' | 'unload' },\n ): Promise<\n | { status: 200; contentType: 'application/json'; data: EngineSummary }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const qs = buildQueryString(query);\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/unload${qs}`, {\n method: 'POST',\n expectStatuses: [403, 404, 409],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<EngineSummary>(result) };\n }\n }\n\n /**\n * @name Install an engine\n * @description Installs an engine from the catalog, as a job to follow.\n */\n async installEngine(\n engine: string,\n query?: { pull?: string; accept?: string },\n ): Promise<\n | { status: 202; contentType: 'application/json'; data: InstallJob }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const qs = buildQueryString(query);\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/install${qs}`, {\n method: 'POST',\n expectStatuses: [400, 403, 404, 409],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 202, contentType: 'application/json', data: await parseJson<InstallJob>(result) };\n }\n }\n\n /**\n * @name Reinstall an engine\n * @description Rebuilds an installed engine beside the old one and swaps it in once it works.\n */\n async reinstallEngine(\n engine: string,\n query?: { accept?: string },\n ): Promise<\n | { status: 202; contentType: 'application/json'; data: InstallJob }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const qs = buildQueryString(query);\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/reinstall${qs}`, {\n method: 'POST',\n expectStatuses: [400, 403, 404, 409],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 202, contentType: 'application/json', data: await parseJson<InstallJob>(result) };\n }\n }\n\n /**\n * @name Pull weights\n * @description Downloads a variant's weights ahead of its first load, as a job to follow.\n */\n async pullEngine(\n engine: string,\n body: PullRequest,\n ): Promise<\n | { status: 202; contentType: 'application/json'; data: InstallJob }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/pull`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body, bigIntReplacer),\n expectStatuses: [403, 404, 409],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 202, contentType: 'application/json', data: await parseJson<InstallJob>(result) };\n }\n }\n\n /**\n * @name Install jobs\n * @description Every install job, running and finished.\n */\n async installJobs(): Promise<\n { status: 200; contentType: 'application/json'; data: InstallJob[] } | { status: 403; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/installs`, {\n method: 'GET',\n expectStatuses: [403],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<InstallJob[]>(result) };\n }\n }\n\n /**\n * @name Reinstall outdated engines\n * @description Reinstalls every engine an upgrade left behind.\n */\n async reinstallOutdated(): Promise<\n { status: 202; contentType: 'application/json'; data: ReinstallOutdated } | { status: 403; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/installs/outdated`, {\n method: 'POST',\n expectStatuses: [403],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 202, contentType: 'application/json', data: await parseJson<ReinstallOutdated>(result) };\n }\n }\n\n /**\n * @name Install job\n * @description One install job and where it has got to.\n */\n async installJob(\n job: string,\n ): Promise<\n | { status: 200; contentType: 'application/json'; data: InstallJob }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/installs/${encodeURIComponent(job)}`, {\n method: 'GET',\n expectStatuses: [403, 404],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<InstallJob>(result) };\n }\n }\n\n /**\n * @name Install job events\n * @description An install job's progress and output as server-sent events.\n */\n async installJobEvents(\n job: string,\n ): Promise<\n | { status: 200; contentType: 'text/event-stream'; data: string }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/installs/${encodeURIComponent(job)}/events`, {\n method: 'GET',\n expectStatuses: [403, 404],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'text/event-stream', data: await result.text() };\n }\n }\n\n /**\n * @name Settings\n * @description Every setting, its value, where the value came from and whether a change applies now.\n */\n async settings(): Promise<\n { status: 200; contentType: 'application/json'; data: Settings } | { status: 403; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/settings`, {\n method: 'GET',\n expectStatuses: [403],\n });\n switch (result.status) {\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<Settings>(result) };\n }\n }\n\n /**\n * @name Update settings\n * @description Changes settings in one transaction, and answers the whole document after the write.\n */\n async updateSettings(\n body: SettingsPatch,\n ): Promise<\n | { status: 200; contentType: 'application/json'; data: Settings }\n | { status: 400; contentType: 'application/json'; data: ErrorBody }\n | { status: 403; contentType: 'application/json'; data: ErrorBody }\n | { status: 404; contentType: 'application/json'; data: ErrorBody }\n | { status: 409; contentType: 'application/json'; data: ErrorBody }\n | { status: 422; contentType: 'application/json'; data: ErrorBody }\n > {\n const result = await this.fetch(`/settings`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body, bigIntReplacer),\n expectStatuses: [400, 403, 404, 409, 422],\n });\n switch (result.status) {\n case 400:\n return { status: 400, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 403:\n return { status: 403, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 404:\n return { status: 404, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 409:\n return { status: 409, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n case 422:\n return { status: 422, contentType: 'application/json', data: await parseJson<ErrorBody>(result) };\n default:\n return { status: 200, contentType: 'application/json', data: await parseJson<Settings>(result) };\n }\n }\n}\n","import type { SdkOptions } from './sdk-options.js';\nimport { createSdkFetch } from './sdk-options.js';\nimport { PublicClient } from './public/public.client.js';\n\nexport class RhapsodeSdk {\n readonly public: PublicClient;\n\n constructor(options: SdkOptions) {\n const sdkFetch = options.fetch ?? createSdkFetch(options);\n this.public = new PublicClient(sdkFetch);\n }\n}\n"],"mappings":"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","names":["SdkError","Error","status","statusText","body","headers","name","bigIntReplacer","_","value","toString","bigIntReviver","test","BigInt","slice","readContentType","res","get","split","trim","randomRequestId","crypto","randomUUID","bytes","getRandomValues","Uint8Array","hex","Array","from","b","padStart","join","createSdkFetch","options","getRequestId","requestIdFactory","url","init","baseHeaders","fetch","baseUrl","ok","expectStatuses","includes","text","JSON","parse","buildQueryString","query","searchParams","URLSearchParams","k","v","Object","entries","undefined","isArray","item","append","String","set","qs","buildHeaders","out","map","parseBigIntHeader","replace","stringify","parseJson","parseJsonWithBigInt","PublicClient","fetch","health","result","method","parseJson","updateStatus","checkForUpdate","residency","openapi","engines","engineCapabilities","engine","encodeURIComponent","expectStatuses","status","contentType","data","engineVoices","createVoice","body","deleteVoice","voice","voicePreview","blob","speak","headers","JSON","stringify","bigIntReplacer","readContentType","dialogue","catalog","uninstallEngine","unloadEngine","query","qs","buildQueryString","installEngine","reinstallEngine","pullEngine","installJobs","reinstallOutdated","installJob","job","installJobEvents","text","settings","updateSettings","RhapsodeSdk","public","options","sdkFetch","fetch","createSdkFetch","PublicClient"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maroonedsoftware/rhapsode-sdk",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "A typed client for the rhapsode public API, generated from contracts/.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,6 +13,7 @@
13
13
  }
14
14
  },
15
15
  "license": "MIT",
16
+ "homepage": "https://maroonedsoftware.github.io/rhapsode/docs/api-reference",
16
17
  "repository": {
17
18
  "type": "git",
18
19
  "url": "git+https://github.com/MaroonedSoftware/rhapsode.git",
@@ -25,7 +26,7 @@
25
26
  "devDependencies": {
26
27
  "@repo/config-eslint": "0.0.0",
27
28
  "@repo/config-typescript": "0.0.0",
28
- "@rhapsode/core": "0.1.10",
29
+ "@rhapsode/core": "0.1.12",
29
30
  "vitest": "^5.0.0"
30
31
  },
31
32
  "publishConfig": {