@maroonedsoftware/rhapsode-sdk 0.1.5 → 0.1.7
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 +24 -2
- package/dist/generated/public/public.client.d.ts.map +1 -1
- package/dist/generated/public/types/rhapsode.public.d.ts +2 -2
- package/dist/generated/rhapsode/types/rhapsode.types.d.ts +61 -16
- package/dist/generated/rhapsode/types/rhapsode.types.d.ts.map +1 -1
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { SdkFetch } from '../sdk-options.js';
|
|
2
|
-
import type { Capabilities, CatalogEntry, CoreHealth,
|
|
2
|
+
import type { Capabilities, CatalogEntry, CoreHealth, EngineDialogueRequest, EngineSpeakRequest, EngineSummary, ErrorBody, InstallJob, PullRequest, ResidencyDetail, Voice } from '../rhapsode/types/rhapsode.types.js';
|
|
3
3
|
import type { OpenApiDocument } from './types/rhapsode.public.js';
|
|
4
4
|
export declare class PublicClient {
|
|
5
5
|
private fetch;
|
|
6
6
|
constructor(fetch: SdkFetch);
|
|
7
7
|
/** @description The core's own. It answers while every worker is down and never blocks on one, because a */
|
|
8
8
|
health(): Promise<CoreHealth>;
|
|
9
|
+
/** @description What is on the card, for an operator asking where their memory went. Reads the core's own */
|
|
10
|
+
residency(): Promise<ResidencyDetail>;
|
|
9
11
|
/** @description Open to every caller, like /health. The public API only: never a worker route. */
|
|
10
12
|
openapi(): Promise<OpenApiDocument>;
|
|
11
13
|
/** @description Every declared engine, whether or not it is running. Never spawns one: this is the list an */
|
|
@@ -109,7 +111,7 @@ export declare class PublicClient {
|
|
|
109
111
|
data: ErrorBody;
|
|
110
112
|
}>;
|
|
111
113
|
/** @description A conversation in one take, on a variant that declares `dialogue`. Cues are stripped per */
|
|
112
|
-
dialogue(engine: string, body:
|
|
114
|
+
dialogue(engine: string, body: EngineDialogueRequest): Promise<{
|
|
113
115
|
status: 200;
|
|
114
116
|
contentType: 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16';
|
|
115
117
|
data: Blob;
|
|
@@ -152,6 +154,26 @@ export declare class PublicClient {
|
|
|
152
154
|
contentType: 'application/json';
|
|
153
155
|
data: ErrorBody;
|
|
154
156
|
}>;
|
|
157
|
+
/** @description Free this engine's model now, rather than waiting out its keep-alive. Idempotent: an */
|
|
158
|
+
unloadEngine(engine: string, query?: {
|
|
159
|
+
mode?: 'terminate' | 'unload';
|
|
160
|
+
}): Promise<{
|
|
161
|
+
status: 200;
|
|
162
|
+
contentType: 'application/json';
|
|
163
|
+
data: EngineSummary;
|
|
164
|
+
} | {
|
|
165
|
+
status: 403;
|
|
166
|
+
contentType: 'application/json';
|
|
167
|
+
data: ErrorBody;
|
|
168
|
+
} | {
|
|
169
|
+
status: 404;
|
|
170
|
+
contentType: 'application/json';
|
|
171
|
+
data: ErrorBody;
|
|
172
|
+
} | {
|
|
173
|
+
status: 409;
|
|
174
|
+
contentType: 'application/json';
|
|
175
|
+
data: ErrorBody;
|
|
176
|
+
}>;
|
|
155
177
|
installEngine(engine: string, query?: {
|
|
156
178
|
pull?: string;
|
|
157
179
|
}): Promise<{
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"public.client.d.ts","sourceRoot":"","sources":["../../../src/generated/public/public.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
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#L52)
|
|
4
4
|
*/
|
|
5
5
|
export interface ApiInfo {
|
|
6
6
|
title: string;
|
|
@@ -11,7 +11,7 @@ export interface ApiInfo {
|
|
|
11
11
|
* This file, `rhapsode.types.ck` and `rhapsode.openai.ck` as OpenAPI 3.1. protocol.md § 9. Only the
|
|
12
12
|
* top of the document is declared: the rest is OpenAPI's own shape, and a client that wants it typed
|
|
13
13
|
* already has a library that types it.
|
|
14
|
-
* generated from [OpenApiDocument](../../../../../../contracts/rhapsode.public.ck#
|
|
14
|
+
* generated from [OpenApiDocument](../../../../../../contracts/rhapsode.public.ck#L45)
|
|
15
15
|
*/
|
|
16
16
|
export interface OpenApiDocument {
|
|
17
17
|
openapi: string;
|
|
@@ -138,14 +138,14 @@ export interface SpeakRequest {
|
|
|
138
138
|
}
|
|
139
139
|
/**
|
|
140
140
|
* One speaker's line in a conversation. `speaker` is a label the request makes up, not a voice.
|
|
141
|
-
* generated from [DialogueTurn](../../../../../../contracts/rhapsode.types.ck#
|
|
141
|
+
* generated from [DialogueTurn](../../../../../../contracts/rhapsode.types.ck#L162)
|
|
142
142
|
*/
|
|
143
143
|
export interface DialogueTurn {
|
|
144
144
|
speaker: string;
|
|
145
145
|
text: string;
|
|
146
146
|
}
|
|
147
147
|
/**
|
|
148
|
-
* generated from [LoadRequest](../../../../../../contracts/rhapsode.types.ck#
|
|
148
|
+
* generated from [LoadRequest](../../../../../../contracts/rhapsode.types.ck#L185)
|
|
149
149
|
*/
|
|
150
150
|
export interface LoadRequest {
|
|
151
151
|
variant?: string;
|
|
@@ -153,7 +153,7 @@ export interface LoadRequest {
|
|
|
153
153
|
/**
|
|
154
154
|
* Required, unlike a load's: there is no "whatever is loaded" to fall back on for weights that are
|
|
155
155
|
* not loaded yet. protocol.md § 8.
|
|
156
|
-
* generated from [FetchRequest](../../../../../../contracts/rhapsode.types.ck#
|
|
156
|
+
* generated from [FetchRequest](../../../../../../contracts/rhapsode.types.ck#L191)
|
|
157
157
|
*/
|
|
158
158
|
export interface FetchRequest {
|
|
159
159
|
variant: string;
|
|
@@ -163,7 +163,7 @@ export interface FetchRequest {
|
|
|
163
163
|
* distinction that matters is between "this request was wrong" and "this request was fine and the
|
|
164
164
|
* server was not". A caller that conflates them either retries a permanent failure forever or
|
|
165
165
|
* discards work that would have succeeded on the next pass.
|
|
166
|
-
* generated from [ErrorDetail](../../../../../../contracts/rhapsode.types.ck#
|
|
166
|
+
* generated from [ErrorDetail](../../../../../../contracts/rhapsode.types.ck#L203)
|
|
167
167
|
*/
|
|
168
168
|
export interface ErrorDetail {
|
|
169
169
|
/**
|
|
@@ -177,17 +177,20 @@ export interface ErrorDetail {
|
|
|
177
177
|
retryable: boolean;
|
|
178
178
|
}
|
|
179
179
|
/**
|
|
180
|
-
* generated from [WorkerHealth](../../../../../../contracts/rhapsode.types.ck#
|
|
180
|
+
* generated from [WorkerHealth](../../../../../../contracts/rhapsode.types.ck#L221)
|
|
181
181
|
*/
|
|
182
182
|
export interface WorkerHealth {
|
|
183
183
|
process: 'up' | 'draining';
|
|
184
184
|
model: 'unloaded' | 'loading' | 'loaded' | 'unloading';
|
|
185
185
|
variant?: string;
|
|
186
186
|
device?: string;
|
|
187
|
+
/** What the card holds in total. */
|
|
187
188
|
vramBytes?: number;
|
|
189
|
+
/** What the loaded model took of it, measured. § 3. */
|
|
190
|
+
modelBytes?: number;
|
|
188
191
|
}
|
|
189
192
|
/**
|
|
190
|
-
* generated from [ResidencySummary](../../../../../../contracts/rhapsode.types.ck#
|
|
193
|
+
* generated from [ResidencySummary](../../../../../../contracts/rhapsode.types.ck#L246)
|
|
191
194
|
*/
|
|
192
195
|
export interface ResidencySummary {
|
|
193
196
|
resident: number;
|
|
@@ -197,7 +200,25 @@ export interface ResidencySummary {
|
|
|
197
200
|
blockedBy?: string;
|
|
198
201
|
}
|
|
199
202
|
/**
|
|
200
|
-
*
|
|
203
|
+
* One model on the card, and what the core knows about it. protocol.md § 3.
|
|
204
|
+
* generated from [ResidentModel](../../../../../../contracts/rhapsode.types.ck#L254)
|
|
205
|
+
*/
|
|
206
|
+
export interface ResidentModel {
|
|
207
|
+
engine: string;
|
|
208
|
+
variant: string;
|
|
209
|
+
/** Requests still speaking it. A model with leases is not evictable. */
|
|
210
|
+
leases: number;
|
|
211
|
+
/** ISO 8601, UTC. */
|
|
212
|
+
lastUsedAt: string;
|
|
213
|
+
/** Absent while it is speaking, or when its keep-alive says never. */
|
|
214
|
+
expiresAt?: string;
|
|
215
|
+
/** The one in force here: request, then engine, then server. */
|
|
216
|
+
keepAliveSeconds: number;
|
|
217
|
+
/** What the worker measured the model taking, where it could. */
|
|
218
|
+
sizeBytes?: number;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* generated from [PullRequest](../../../../../../contracts/rhapsode.types.ck#L304)
|
|
201
222
|
*/
|
|
202
223
|
export interface PullRequest {
|
|
203
224
|
/** Absent means the engine's default variant. */
|
|
@@ -206,7 +227,7 @@ export interface PullRequest {
|
|
|
206
227
|
/**
|
|
207
228
|
* One event on a job's stream, `GET /installs/{job}/events`. The shape is ServerKit's server feed,
|
|
208
229
|
* declared here so a client can parse it without depending on ServerKit.
|
|
209
|
-
* generated from [FeedProgress](../../../../../../contracts/rhapsode.types.ck#
|
|
230
|
+
* generated from [FeedProgress](../../../../../../contracts/rhapsode.types.ck#L310)
|
|
210
231
|
*/
|
|
211
232
|
export interface FeedProgress {
|
|
212
233
|
/** The job's step. */
|
|
@@ -241,7 +262,7 @@ export interface Variant {
|
|
|
241
262
|
dialogue?: Dialogue;
|
|
242
263
|
}
|
|
243
264
|
/**
|
|
244
|
-
* generated from [EngineSummary](../../../../../../contracts/rhapsode.types.ck#
|
|
265
|
+
* generated from [EngineSummary](../../../../../../contracts/rhapsode.types.ck#L230)
|
|
245
266
|
*/
|
|
246
267
|
export interface EngineSummary {
|
|
247
268
|
id: string;
|
|
@@ -252,11 +273,18 @@ export interface EngineSummary {
|
|
|
252
273
|
variant?: string;
|
|
253
274
|
lastError?: string;
|
|
254
275
|
restarts: number;
|
|
276
|
+
/**
|
|
277
|
+
* `rhapsode-worker` as installed in this engine's venv, read from the venv rather than asked of
|
|
278
|
+
* the worker so that a `down` engine still answers. A diagnostic, never negotiation: one that
|
|
279
|
+
* differs from the core's version is a pin an upgrade broke. Absent where nothing can say, which
|
|
280
|
+
* includes every remote engine. protocol.md § 9.
|
|
281
|
+
*/
|
|
282
|
+
workerVersion?: string;
|
|
255
283
|
}
|
|
256
284
|
/**
|
|
257
285
|
* What exists, installed or not. `/engines` is what this box has; this is what it could have, with
|
|
258
286
|
* both licences, because the weights licence is only worth reading before the install.
|
|
259
|
-
* generated from [CatalogEntry](../../../../../../contracts/rhapsode.types.ck#
|
|
287
|
+
* generated from [CatalogEntry](../../../../../../contracts/rhapsode.types.ck#L281)
|
|
260
288
|
*/
|
|
261
289
|
export interface CatalogEntry {
|
|
262
290
|
id: string;
|
|
@@ -270,15 +298,19 @@ export interface CatalogEntry {
|
|
|
270
298
|
managed: boolean;
|
|
271
299
|
}
|
|
272
300
|
/**
|
|
273
|
-
*
|
|
301
|
+
* The public shape, which the worker's `/speak` does not share: `keepAliveSeconds` is core policy
|
|
302
|
+
* and a worker has no opinion about how long anything stays resident. protocol.md § 3.
|
|
303
|
+
* generated from [EngineSpeakRequest](../../../../../../contracts/rhapsode.types.ck#L156)
|
|
274
304
|
*/
|
|
275
305
|
export interface EngineSpeakRequest extends SpeakRequest {
|
|
276
306
|
engine: string;
|
|
307
|
+
/** -1 never expires, 0 frees on release. */
|
|
308
|
+
keepAliveSeconds?: number;
|
|
277
309
|
}
|
|
278
310
|
/**
|
|
279
311
|
* A conversation in one take. protocol.md § 6. `/speak`'s fields except `text`, `voice` and
|
|
280
312
|
* `delivery`: a delivery reads a whole line one way, and a dialogue has more than one reader.
|
|
281
|
-
* generated from [DialogueRequest](../../../../../../contracts/rhapsode.types.ck#
|
|
313
|
+
* generated from [DialogueRequest](../../../../../../contracts/rhapsode.types.ck#L169)
|
|
282
314
|
*/
|
|
283
315
|
export interface DialogueRequest {
|
|
284
316
|
turns: DialogueTurn[];
|
|
@@ -292,13 +324,13 @@ export interface DialogueRequest {
|
|
|
292
324
|
stream?: boolean;
|
|
293
325
|
}
|
|
294
326
|
/**
|
|
295
|
-
* generated from [ErrorBody](../../../../../../contracts/rhapsode.types.ck#
|
|
327
|
+
* generated from [ErrorBody](../../../../../../contracts/rhapsode.types.ck#L213)
|
|
296
328
|
*/
|
|
297
329
|
export interface ErrorBody {
|
|
298
330
|
error: ErrorDetail;
|
|
299
331
|
}
|
|
300
332
|
/**
|
|
301
|
-
* generated from [InstallJob](../../../../../../contracts/rhapsode.types.ck#
|
|
333
|
+
* generated from [InstallJob](../../../../../../contracts/rhapsode.types.ck#L291)
|
|
302
334
|
*/
|
|
303
335
|
export interface InstallJob {
|
|
304
336
|
id: string;
|
|
@@ -316,7 +348,13 @@ export interface InstallJob {
|
|
|
316
348
|
error?: ErrorDetail;
|
|
317
349
|
}
|
|
318
350
|
/**
|
|
319
|
-
* generated from [
|
|
351
|
+
* generated from [ResidencyDetail](../../../../../../contracts/rhapsode.types.ck#L264)
|
|
352
|
+
*/
|
|
353
|
+
export interface ResidencyDetail extends ResidencySummary {
|
|
354
|
+
models: ResidentModel[];
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* generated from [FeedEvent](../../../../../../contracts/rhapsode.types.ck#L317)
|
|
320
358
|
*/
|
|
321
359
|
export interface FeedEvent {
|
|
322
360
|
/** The Last-Event-ID resume key. */
|
|
@@ -346,7 +384,7 @@ export interface CurrentVariant extends Omit<Variant, 'cloning' | 'blending'> {
|
|
|
346
384
|
nativeFormat: NativeFormat;
|
|
347
385
|
}
|
|
348
386
|
/**
|
|
349
|
-
* generated from [CoreHealth](../../../../../../contracts/rhapsode.types.ck#
|
|
387
|
+
* generated from [CoreHealth](../../../../../../contracts/rhapsode.types.ck#L268)
|
|
350
388
|
*/
|
|
351
389
|
export interface CoreHealth {
|
|
352
390
|
contract: number;
|
|
@@ -354,6 +392,13 @@ export interface CoreHealth {
|
|
|
354
392
|
engines: EngineSummary[];
|
|
355
393
|
residency: ResidencySummary;
|
|
356
394
|
}
|
|
395
|
+
/**
|
|
396
|
+
* As `EngineSpeakRequest` is to `SpeakRequest`, and for the same reason.
|
|
397
|
+
* generated from [EngineDialogueRequest](../../../../../../contracts/rhapsode.types.ck#L181)
|
|
398
|
+
*/
|
|
399
|
+
export interface EngineDialogueRequest extends DialogueRequest {
|
|
400
|
+
keepAliveSeconds?: number;
|
|
401
|
+
}
|
|
357
402
|
/**
|
|
358
403
|
* generated from [Capabilities](../../../../../../contracts/rhapsode.types.ck#L107)
|
|
359
404
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rhapsode.types.d.ts","sourceRoot":"","sources":["../../../../src/generated/rhapsode/types/rhapsode.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rhapsode.types.d.ts","sourceRoot":"","sources":["../../../../src/generated/rhapsode/types/rhapsode.types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -121,6 +121,13 @@ var PublicClient = class {
|
|
|
121
121
|
});
|
|
122
122
|
return await parseJson(result);
|
|
123
123
|
}
|
|
124
|
+
/** @description What is on the card, for an operator asking where their memory went. Reads the core's own */
|
|
125
|
+
async residency() {
|
|
126
|
+
const result = await this.fetch(`/residency`, {
|
|
127
|
+
method: "GET"
|
|
128
|
+
});
|
|
129
|
+
return await parseJson(result);
|
|
130
|
+
}
|
|
124
131
|
/** @description Open to every caller, like /health. The public API only: never a worker route. */
|
|
125
132
|
async openapi() {
|
|
126
133
|
const result = await this.fetch(`/openapi.json`, {
|
|
@@ -446,6 +453,44 @@ var PublicClient = class {
|
|
|
446
453
|
};
|
|
447
454
|
}
|
|
448
455
|
}
|
|
456
|
+
/** @description Free this engine's model now, rather than waiting out its keep-alive. Idempotent: an */
|
|
457
|
+
async unloadEngine(engine, query) {
|
|
458
|
+
const qs = buildQueryString(query);
|
|
459
|
+
const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/unload${qs}`, {
|
|
460
|
+
method: "POST",
|
|
461
|
+
expectStatuses: [
|
|
462
|
+
403,
|
|
463
|
+
404,
|
|
464
|
+
409
|
|
465
|
+
]
|
|
466
|
+
});
|
|
467
|
+
switch (result.status) {
|
|
468
|
+
case 403:
|
|
469
|
+
return {
|
|
470
|
+
status: 403,
|
|
471
|
+
contentType: "application/json",
|
|
472
|
+
data: await parseJson(result)
|
|
473
|
+
};
|
|
474
|
+
case 404:
|
|
475
|
+
return {
|
|
476
|
+
status: 404,
|
|
477
|
+
contentType: "application/json",
|
|
478
|
+
data: await parseJson(result)
|
|
479
|
+
};
|
|
480
|
+
case 409:
|
|
481
|
+
return {
|
|
482
|
+
status: 409,
|
|
483
|
+
contentType: "application/json",
|
|
484
|
+
data: await parseJson(result)
|
|
485
|
+
};
|
|
486
|
+
default:
|
|
487
|
+
return {
|
|
488
|
+
status: 200,
|
|
489
|
+
contentType: "application/json",
|
|
490
|
+
data: await parseJson(result)
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
}
|
|
449
494
|
async installEngine(engine, query) {
|
|
450
495
|
const qs = buildQueryString(query);
|
|
451
496
|
const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/install${qs}`, {
|
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 DialogueRequest,\n EngineSpeakRequest,\n EngineSummary,\n ErrorBody,\n InstallJob,\n PullRequest,\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. 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: DialogueRequest,\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 async installEngine(\n engine: string,\n query?: { pull?: string },\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 qs = buildQueryString(query);\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/install${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: 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 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","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","installEngine","query","qs","buildQueryString","pullEngine","installJobs","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 ResidencyDetail,\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 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 },\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 qs = buildQueryString(query);\n const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/install${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: 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 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","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","pullEngine","installJobs","installJob","job","installJobEvents","text","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.7",
|
|
4
4
|
"description": "A typed client for the rhapsode public API, generated from contracts/.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@repo/config-eslint": "0.0.0",
|
|
27
27
|
"@repo/config-typescript": "0.0.0",
|
|
28
|
-
"@rhapsode/core": "0.1.
|
|
28
|
+
"@rhapsode/core": "0.1.7",
|
|
29
29
|
"vitest": "^5.0.0"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|