@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.
- package/dist/generated/public/public.client.d.ts +136 -13
- package/dist/generated/public/public.client.d.ts.map +1 -1
- package/dist/generated/public/types/rhapsode.public.d.ts +178 -2
- package/dist/generated/public/types/rhapsode.public.d.ts.map +1 -1
- package/dist/index.js +182 -12
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,KAAK,EACR,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
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#
|
|
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#
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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.
|
|
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.
|
|
29
|
+
"@rhapsode/core": "0.1.12",
|
|
29
30
|
"vitest": "^5.0.0"
|
|
30
31
|
},
|
|
31
32
|
"publishConfig": {
|