@maroonedsoftware/rhapsode-sdk 0.1.3 → 0.1.5
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/index.d.ts +1 -0
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/public/public.client.d.ts +30 -1
- package/dist/generated/public/public.client.d.ts.map +1 -1
- package/dist/generated/public/types/index.d.ts +2 -0
- package/dist/generated/public/types/index.d.ts.map +1 -0
- package/dist/generated/public/types/rhapsode.public.d.ts +22 -0
- package/dist/generated/public/types/rhapsode.public.d.ts.map +1 -0
- package/dist/generated/rhapsode/types/rhapsode.types.d.ts +94 -27
- package/dist/generated/rhapsode/types/rhapsode.types.d.ts.map +1 -1
- package/dist/index.js +62 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AACA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AACA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { SdkFetch } from '../sdk-options.js';
|
|
2
|
-
import type { Capabilities, CatalogEntry, CoreHealth, EngineSpeakRequest, EngineSummary, ErrorBody, InstallJob, PullRequest, Voice } from '../rhapsode/types/rhapsode.types.js';
|
|
2
|
+
import type { Capabilities, CatalogEntry, CoreHealth, DialogueRequest, EngineSpeakRequest, EngineSummary, ErrorBody, InstallJob, PullRequest, Voice } from '../rhapsode/types/rhapsode.types.js';
|
|
3
|
+
import type { OpenApiDocument } from './types/rhapsode.public.js';
|
|
3
4
|
export declare class PublicClient {
|
|
4
5
|
private fetch;
|
|
5
6
|
constructor(fetch: SdkFetch);
|
|
6
7
|
/** @description The core's own. It answers while every worker is down and never blocks on one, because a */
|
|
7
8
|
health(): Promise<CoreHealth>;
|
|
9
|
+
/** @description Open to every caller, like /health. The public API only: never a worker route. */
|
|
10
|
+
openapi(): Promise<OpenApiDocument>;
|
|
8
11
|
/** @description Every declared engine, whether or not it is running. Never spawns one: this is the list an */
|
|
9
12
|
engines(): Promise<EngineSummary[]>;
|
|
10
13
|
engineCapabilities(engine: string): Promise<{
|
|
@@ -105,6 +108,32 @@ export declare class PublicClient {
|
|
|
105
108
|
contentType: 'application/json';
|
|
106
109
|
data: ErrorBody;
|
|
107
110
|
}>;
|
|
111
|
+
/** @description A conversation in one take, on a variant that declares `dialogue`. Cues are stripped per */
|
|
112
|
+
dialogue(engine: string, body: DialogueRequest): Promise<{
|
|
113
|
+
status: 200;
|
|
114
|
+
contentType: 'audio/wav' | 'audio/mpeg' | 'audio/opus' | 'audio/flac' | 'audio/l16';
|
|
115
|
+
data: Blob;
|
|
116
|
+
} | {
|
|
117
|
+
status: 400;
|
|
118
|
+
contentType: 'application/json';
|
|
119
|
+
data: ErrorBody;
|
|
120
|
+
} | {
|
|
121
|
+
status: 404;
|
|
122
|
+
contentType: 'application/json';
|
|
123
|
+
data: ErrorBody;
|
|
124
|
+
} | {
|
|
125
|
+
status: 422;
|
|
126
|
+
contentType: 'application/json';
|
|
127
|
+
data: ErrorBody;
|
|
128
|
+
} | {
|
|
129
|
+
status: 429;
|
|
130
|
+
contentType: 'application/json';
|
|
131
|
+
data: ErrorBody;
|
|
132
|
+
} | {
|
|
133
|
+
status: 503;
|
|
134
|
+
contentType: 'application/json';
|
|
135
|
+
data: ErrorBody;
|
|
136
|
+
}>;
|
|
108
137
|
/** @description Open to every caller: it only reads, and its licences are what § 4 promises before install. */
|
|
109
138
|
catalog(): Promise<CatalogEntry[]>;
|
|
110
139
|
/** @description Only an engine this API installed. One the operator configured is theirs to remove. */
|
|
@@ -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,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACR,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"public.client.d.ts","sourceRoot":"","sources":["../../../src/generated/public/public.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generated/public/types/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { JsonValue } from '../../sdk-options.js';
|
|
2
|
+
/**
|
|
3
|
+
* generated from [ApiInfo](../../../../../../contracts/rhapsode.public.ck#L36)
|
|
4
|
+
*/
|
|
5
|
+
export interface ApiInfo {
|
|
6
|
+
title: string;
|
|
7
|
+
/** The running core's package version. Not the contract. */
|
|
8
|
+
version: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* This file, `rhapsode.types.ck` and `rhapsode.openai.ck` as OpenAPI 3.1. protocol.md § 9. Only the
|
|
12
|
+
* top of the document is declared: the rest is OpenAPI's own shape, and a client that wants it typed
|
|
13
|
+
* already has a library that types it.
|
|
14
|
+
* generated from [OpenApiDocument](../../../../../../contracts/rhapsode.public.ck#L29)
|
|
15
|
+
*/
|
|
16
|
+
export interface OpenApiDocument {
|
|
17
|
+
openapi: string;
|
|
18
|
+
info: ApiInfo;
|
|
19
|
+
paths: Record<string, JsonValue>;
|
|
20
|
+
components?: Record<string, JsonValue>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=rhapsode.public.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -11,23 +11,51 @@ export interface Dial {
|
|
|
11
11
|
default: number;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* A build that speaks a conversation in one pass. protocol.md § 6.
|
|
15
|
+
* generated from [Dialogue](../../../../../../contracts/rhapsode.types.ck#L37)
|
|
16
|
+
*/
|
|
17
|
+
export interface Dialogue {
|
|
18
|
+
maxSpeakers: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* generated from [Cloning](../../../../../../contracts/rhapsode.types.ck#L41)
|
|
15
22
|
*/
|
|
16
23
|
export interface Cloning {
|
|
17
24
|
supported: boolean;
|
|
18
25
|
/** [min, max] of usable reference audio. */
|
|
19
26
|
referenceSeconds?: number[];
|
|
27
|
+
/** File types a `reference` may be. § 7. */
|
|
20
28
|
formats?: string[];
|
|
21
29
|
}
|
|
22
30
|
/**
|
|
23
|
-
*
|
|
31
|
+
* Whether a create may carry a `blend` recipe instead of a `reference`. § 7.
|
|
32
|
+
* generated from [Blending](../../../../../../contracts/rhapsode.types.ck#L48)
|
|
33
|
+
*/
|
|
34
|
+
export interface Blending {
|
|
35
|
+
supported: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Whether text longer than one generation is split rather than refused. protocol.md § 8.
|
|
39
|
+
*
|
|
40
|
+
* Declared because a client cannot see the split and is affected by it: a `seed` reproduces a
|
|
41
|
+
* generation, so a request split four ways is four seeded generations, and prosody carries across a
|
|
42
|
+
* joint only where the engine carries it.
|
|
43
|
+
* generated from [Segmentation](../../../../../../contracts/rhapsode.types.ck#L57)
|
|
44
|
+
*/
|
|
45
|
+
export interface Segmentation {
|
|
46
|
+
supported: boolean;
|
|
47
|
+
/** The most one generation gets. Absent where nothing splits. */
|
|
48
|
+
segmentCharacters?: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* generated from [Streaming](../../../../../../contracts/rhapsode.types.ck#L62)
|
|
24
52
|
*/
|
|
25
53
|
export interface Streaming {
|
|
26
54
|
supported: boolean;
|
|
27
55
|
granularity?: 'chunk' | 'sentence';
|
|
28
56
|
}
|
|
29
57
|
/**
|
|
30
|
-
* generated from [NativeFormat](../../../../../../contracts/rhapsode.types.ck#
|
|
58
|
+
* generated from [NativeFormat](../../../../../../contracts/rhapsode.types.ck#L67)
|
|
31
59
|
*/
|
|
32
60
|
export interface NativeFormat {
|
|
33
61
|
/** v1 accepts pcm_s16le and nothing else. */
|
|
@@ -36,7 +64,7 @@ export interface NativeFormat {
|
|
|
36
64
|
channels: number;
|
|
37
65
|
}
|
|
38
66
|
/**
|
|
39
|
-
* generated from [EngineIdentity](../../../../../../contracts/rhapsode.types.ck#
|
|
67
|
+
* generated from [EngineIdentity](../../../../../../contracts/rhapsode.types.ck#L84)
|
|
40
68
|
*/
|
|
41
69
|
export interface EngineIdentity {
|
|
42
70
|
id: string;
|
|
@@ -48,7 +76,7 @@ export interface EngineIdentity {
|
|
|
48
76
|
* Code and weights separately, because the weights licence is the one package metadata never reveals
|
|
49
77
|
* and the one that decides whether a commercial user may ship. A scanner reads the package, reports
|
|
50
78
|
* the code licence, and is wrong in the way that matters.
|
|
51
|
-
* generated from [License](../../../../../../contracts/rhapsode.types.ck#
|
|
79
|
+
* generated from [License](../../../../../../contracts/rhapsode.types.ck#L94)
|
|
52
80
|
*/
|
|
53
81
|
export interface License {
|
|
54
82
|
code: string;
|
|
@@ -57,7 +85,7 @@ export interface License {
|
|
|
57
85
|
notes?: string;
|
|
58
86
|
}
|
|
59
87
|
/**
|
|
60
|
-
* generated from [Device](../../../../../../contracts/rhapsode.types.ck#
|
|
88
|
+
* generated from [Device](../../../../../../contracts/rhapsode.types.ck#L101)
|
|
61
89
|
*/
|
|
62
90
|
export interface Device {
|
|
63
91
|
type: 'cuda' | 'rocm' | 'mps' | 'cpu';
|
|
@@ -65,7 +93,7 @@ export interface Device {
|
|
|
65
93
|
vramBytes?: number;
|
|
66
94
|
}
|
|
67
95
|
/**
|
|
68
|
-
* generated from [Voice](../../../../../../contracts/rhapsode.types.ck#
|
|
96
|
+
* generated from [Voice](../../../../../../contracts/rhapsode.types.ck#L121)
|
|
69
97
|
*/
|
|
70
98
|
export interface Voice {
|
|
71
99
|
id: string;
|
|
@@ -78,15 +106,20 @@ export interface Voice {
|
|
|
78
106
|
previewUrl?: string;
|
|
79
107
|
}
|
|
80
108
|
/**
|
|
81
|
-
* generated from [CreateVoiceForm](../../../../../../contracts/rhapsode.types.ck#
|
|
109
|
+
* generated from [CreateVoiceForm](../../../../../../contracts/rhapsode.types.ck#L130)
|
|
82
110
|
*/
|
|
83
111
|
export interface CreateVoiceForm {
|
|
84
112
|
id: string;
|
|
85
113
|
label?: string;
|
|
86
|
-
reference
|
|
114
|
+
/** Exactly one of `reference` and `blend`. § 7. */
|
|
115
|
+
reference?: Blob;
|
|
116
|
+
/** A recipe, `name(weight)+name(weight)`, over voices the engine has. */
|
|
117
|
+
blend?: string;
|
|
118
|
+
/** The words spoken in the reference. Required by an engine that continues from it. */
|
|
119
|
+
transcript?: string;
|
|
87
120
|
}
|
|
88
121
|
/**
|
|
89
|
-
* generated from [SpeakRequest](../../../../../../contracts/rhapsode.types.ck#
|
|
122
|
+
* generated from [SpeakRequest](../../../../../../contracts/rhapsode.types.ck#L142)
|
|
90
123
|
*/
|
|
91
124
|
export interface SpeakRequest {
|
|
92
125
|
text: string;
|
|
@@ -104,7 +137,15 @@ export interface SpeakRequest {
|
|
|
104
137
|
stream?: boolean;
|
|
105
138
|
}
|
|
106
139
|
/**
|
|
107
|
-
*
|
|
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#L159)
|
|
142
|
+
*/
|
|
143
|
+
export interface DialogueTurn {
|
|
144
|
+
speaker: string;
|
|
145
|
+
text: string;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* generated from [LoadRequest](../../../../../../contracts/rhapsode.types.ck#L177)
|
|
108
149
|
*/
|
|
109
150
|
export interface LoadRequest {
|
|
110
151
|
variant?: string;
|
|
@@ -112,7 +153,7 @@ export interface LoadRequest {
|
|
|
112
153
|
/**
|
|
113
154
|
* Required, unlike a load's: there is no "whatever is loaded" to fall back on for weights that are
|
|
114
155
|
* not loaded yet. protocol.md § 8.
|
|
115
|
-
* generated from [FetchRequest](../../../../../../contracts/rhapsode.types.ck#
|
|
156
|
+
* generated from [FetchRequest](../../../../../../contracts/rhapsode.types.ck#L183)
|
|
116
157
|
*/
|
|
117
158
|
export interface FetchRequest {
|
|
118
159
|
variant: string;
|
|
@@ -122,7 +163,7 @@ export interface FetchRequest {
|
|
|
122
163
|
* distinction that matters is between "this request was wrong" and "this request was fine and the
|
|
123
164
|
* server was not". A caller that conflates them either retries a permanent failure forever or
|
|
124
165
|
* discards work that would have succeeded on the next pass.
|
|
125
|
-
* generated from [ErrorDetail](../../../../../../contracts/rhapsode.types.ck#
|
|
166
|
+
* generated from [ErrorDetail](../../../../../../contracts/rhapsode.types.ck#L195)
|
|
126
167
|
*/
|
|
127
168
|
export interface ErrorDetail {
|
|
128
169
|
/**
|
|
@@ -136,7 +177,7 @@ export interface ErrorDetail {
|
|
|
136
177
|
retryable: boolean;
|
|
137
178
|
}
|
|
138
179
|
/**
|
|
139
|
-
* generated from [WorkerHealth](../../../../../../contracts/rhapsode.types.ck#
|
|
180
|
+
* generated from [WorkerHealth](../../../../../../contracts/rhapsode.types.ck#L213)
|
|
140
181
|
*/
|
|
141
182
|
export interface WorkerHealth {
|
|
142
183
|
process: 'up' | 'draining';
|
|
@@ -146,7 +187,7 @@ export interface WorkerHealth {
|
|
|
146
187
|
vramBytes?: number;
|
|
147
188
|
}
|
|
148
189
|
/**
|
|
149
|
-
* generated from [ResidencySummary](../../../../../../contracts/rhapsode.types.ck#
|
|
190
|
+
* generated from [ResidencySummary](../../../../../../contracts/rhapsode.types.ck#L232)
|
|
150
191
|
*/
|
|
151
192
|
export interface ResidencySummary {
|
|
152
193
|
resident: number;
|
|
@@ -156,7 +197,7 @@ export interface ResidencySummary {
|
|
|
156
197
|
blockedBy?: string;
|
|
157
198
|
}
|
|
158
199
|
/**
|
|
159
|
-
* generated from [PullRequest](../../../../../../contracts/rhapsode.types.ck#
|
|
200
|
+
* generated from [PullRequest](../../../../../../contracts/rhapsode.types.ck#L275)
|
|
160
201
|
*/
|
|
161
202
|
export interface PullRequest {
|
|
162
203
|
/** Absent means the engine's default variant. */
|
|
@@ -165,7 +206,7 @@ export interface PullRequest {
|
|
|
165
206
|
/**
|
|
166
207
|
* One event on a job's stream, `GET /installs/{job}/events`. The shape is ServerKit's server feed,
|
|
167
208
|
* declared here so a client can parse it without depending on ServerKit.
|
|
168
|
-
* generated from [FeedProgress](../../../../../../contracts/rhapsode.types.ck#
|
|
209
|
+
* generated from [FeedProgress](../../../../../../contracts/rhapsode.types.ck#L281)
|
|
169
210
|
*/
|
|
170
211
|
export interface FeedProgress {
|
|
171
212
|
/** The job's step. */
|
|
@@ -190,9 +231,17 @@ export interface Variant {
|
|
|
190
231
|
languages?: string[];
|
|
191
232
|
/** Overrides the engine's own ceiling for this build. */
|
|
192
233
|
maxCharacters?: number;
|
|
234
|
+
/** Optional only because contract 1 shipped without it. § 4. */
|
|
235
|
+
cloning?: Cloning;
|
|
236
|
+
/** Beside cloning, for the same reason: it needs no model. § 7. */
|
|
237
|
+
blending?: Blending;
|
|
238
|
+
/** Whether long text is split into several generations. § 8. */
|
|
239
|
+
segmentation?: Segmentation;
|
|
240
|
+
/** Present only where this build answers /dialogue. § 6. */
|
|
241
|
+
dialogue?: Dialogue;
|
|
193
242
|
}
|
|
194
243
|
/**
|
|
195
|
-
* generated from [EngineSummary](../../../../../../contracts/rhapsode.types.ck#
|
|
244
|
+
* generated from [EngineSummary](../../../../../../contracts/rhapsode.types.ck#L221)
|
|
196
245
|
*/
|
|
197
246
|
export interface EngineSummary {
|
|
198
247
|
id: string;
|
|
@@ -207,7 +256,7 @@ export interface EngineSummary {
|
|
|
207
256
|
/**
|
|
208
257
|
* What exists, installed or not. `/engines` is what this box has; this is what it could have, with
|
|
209
258
|
* both licences, because the weights licence is only worth reading before the install.
|
|
210
|
-
* generated from [CatalogEntry](../../../../../../contracts/rhapsode.types.ck#
|
|
259
|
+
* generated from [CatalogEntry](../../../../../../contracts/rhapsode.types.ck#L252)
|
|
211
260
|
*/
|
|
212
261
|
export interface CatalogEntry {
|
|
213
262
|
id: string;
|
|
@@ -221,19 +270,35 @@ export interface CatalogEntry {
|
|
|
221
270
|
managed: boolean;
|
|
222
271
|
}
|
|
223
272
|
/**
|
|
224
|
-
* generated from [EngineSpeakRequest](../../../../../../contracts/rhapsode.types.ck#
|
|
273
|
+
* generated from [EngineSpeakRequest](../../../../../../contracts/rhapsode.types.ck#L154)
|
|
225
274
|
*/
|
|
226
275
|
export interface EngineSpeakRequest extends SpeakRequest {
|
|
227
276
|
engine: string;
|
|
228
277
|
}
|
|
229
278
|
/**
|
|
230
|
-
*
|
|
279
|
+
* A conversation in one take. protocol.md § 6. `/speak`'s fields except `text`, `voice` and
|
|
280
|
+
* `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#L166)
|
|
282
|
+
*/
|
|
283
|
+
export interface DialogueRequest {
|
|
284
|
+
turns: DialogueTurn[];
|
|
285
|
+
/** Speaker label to voice id. */
|
|
286
|
+
voices?: Record<string, string>;
|
|
287
|
+
variant?: string;
|
|
288
|
+
format?: 'wav' | 'mp3' | 'opus' | 'flac' | 'pcm';
|
|
289
|
+
language?: string;
|
|
290
|
+
params?: Record<string, number>;
|
|
291
|
+
seed?: number;
|
|
292
|
+
stream?: boolean;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* generated from [ErrorBody](../../../../../../contracts/rhapsode.types.ck#L205)
|
|
231
296
|
*/
|
|
232
297
|
export interface ErrorBody {
|
|
233
298
|
error: ErrorDetail;
|
|
234
299
|
}
|
|
235
300
|
/**
|
|
236
|
-
* generated from [InstallJob](../../../../../../contracts/rhapsode.types.ck#
|
|
301
|
+
* generated from [InstallJob](../../../../../../contracts/rhapsode.types.ck#L262)
|
|
237
302
|
*/
|
|
238
303
|
export interface InstallJob {
|
|
239
304
|
id: string;
|
|
@@ -251,7 +316,7 @@ export interface InstallJob {
|
|
|
251
316
|
error?: ErrorDetail;
|
|
252
317
|
}
|
|
253
318
|
/**
|
|
254
|
-
* generated from [FeedEvent](../../../../../../contracts/rhapsode.types.ck#
|
|
319
|
+
* generated from [FeedEvent](../../../../../../contracts/rhapsode.types.ck#L288)
|
|
255
320
|
*/
|
|
256
321
|
export interface FeedEvent {
|
|
257
322
|
/** The Last-Event-ID resume key. */
|
|
@@ -270,16 +335,18 @@ export interface FeedEvent {
|
|
|
270
335
|
* The resident build, and everything true only while it is resident. Absent from the capability
|
|
271
336
|
* document entirely when nothing is loaded, because a worker in up(unloaded) has nothing to
|
|
272
337
|
* describe and an invented answer is worse than no answer.
|
|
273
|
-
* generated from [CurrentVariant](../../../../../../contracts/rhapsode.types.ck#
|
|
338
|
+
* generated from [CurrentVariant](../../../../../../contracts/rhapsode.types.ck#L76)
|
|
274
339
|
*/
|
|
275
|
-
export interface CurrentVariant extends Variant {
|
|
340
|
+
export interface CurrentVariant extends Omit<Variant, 'cloning' | 'blending'> {
|
|
276
341
|
variant: string;
|
|
277
342
|
cloning: Cloning;
|
|
343
|
+
/** Absent means no, so a worker that predates it is read correctly. */
|
|
344
|
+
blending?: Blending;
|
|
278
345
|
streaming: Streaming;
|
|
279
346
|
nativeFormat: NativeFormat;
|
|
280
347
|
}
|
|
281
348
|
/**
|
|
282
|
-
* generated from [CoreHealth](../../../../../../contracts/rhapsode.types.ck#
|
|
349
|
+
* generated from [CoreHealth](../../../../../../contracts/rhapsode.types.ck#L239)
|
|
283
350
|
*/
|
|
284
351
|
export interface CoreHealth {
|
|
285
352
|
contract: number;
|
|
@@ -288,7 +355,7 @@ export interface CoreHealth {
|
|
|
288
355
|
residency: ResidencySummary;
|
|
289
356
|
}
|
|
290
357
|
/**
|
|
291
|
-
* generated from [Capabilities](../../../../../../contracts/rhapsode.types.ck#
|
|
358
|
+
* generated from [Capabilities](../../../../../../contracts/rhapsode.types.ck#L107)
|
|
292
359
|
*/
|
|
293
360
|
export interface Capabilities {
|
|
294
361
|
/** The contract major this worker settled on. § 9. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rhapsode.types.d.ts","sourceRoot":"","sources":["../../../../src/generated/rhapsode/types/rhapsode.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,IAAI;IACjB,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;
|
|
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 Open to every caller, like /health. The public API only: never a worker route. */
|
|
125
|
+
async openapi() {
|
|
126
|
+
const result = await this.fetch(`/openapi.json`, {
|
|
127
|
+
method: "GET"
|
|
128
|
+
});
|
|
129
|
+
return await parseJson(result);
|
|
130
|
+
}
|
|
124
131
|
/** @description Every declared engine, whether or not it is running. Never spawns one: this is the list an */
|
|
125
132
|
async engines() {
|
|
126
133
|
const result = await this.fetch(`/engines`, {
|
|
@@ -342,6 +349,61 @@ var PublicClient = class {
|
|
|
342
349
|
};
|
|
343
350
|
}
|
|
344
351
|
}
|
|
352
|
+
/** @description A conversation in one take, on a variant that declares `dialogue`. Cues are stripped per */
|
|
353
|
+
async dialogue(engine, body) {
|
|
354
|
+
const result = await this.fetch(`/engines/${encodeURIComponent(engine)}/dialogue`, {
|
|
355
|
+
method: "POST",
|
|
356
|
+
headers: {
|
|
357
|
+
"Content-Type": "application/json"
|
|
358
|
+
},
|
|
359
|
+
body: JSON.stringify(body, bigIntReplacer),
|
|
360
|
+
expectStatuses: [
|
|
361
|
+
400,
|
|
362
|
+
404,
|
|
363
|
+
422,
|
|
364
|
+
429,
|
|
365
|
+
503
|
|
366
|
+
]
|
|
367
|
+
});
|
|
368
|
+
switch (result.status) {
|
|
369
|
+
case 400:
|
|
370
|
+
return {
|
|
371
|
+
status: 400,
|
|
372
|
+
contentType: "application/json",
|
|
373
|
+
data: await parseJson(result)
|
|
374
|
+
};
|
|
375
|
+
case 404:
|
|
376
|
+
return {
|
|
377
|
+
status: 404,
|
|
378
|
+
contentType: "application/json",
|
|
379
|
+
data: await parseJson(result)
|
|
380
|
+
};
|
|
381
|
+
case 422:
|
|
382
|
+
return {
|
|
383
|
+
status: 422,
|
|
384
|
+
contentType: "application/json",
|
|
385
|
+
data: await parseJson(result)
|
|
386
|
+
};
|
|
387
|
+
case 429:
|
|
388
|
+
return {
|
|
389
|
+
status: 429,
|
|
390
|
+
contentType: "application/json",
|
|
391
|
+
data: await parseJson(result)
|
|
392
|
+
};
|
|
393
|
+
case 503:
|
|
394
|
+
return {
|
|
395
|
+
status: 503,
|
|
396
|
+
contentType: "application/json",
|
|
397
|
+
data: await parseJson(result)
|
|
398
|
+
};
|
|
399
|
+
default:
|
|
400
|
+
return {
|
|
401
|
+
status: 200,
|
|
402
|
+
contentType: readContentType(result),
|
|
403
|
+
data: await result.blob()
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
}
|
|
345
407
|
/** @description Open to every caller: it only reads, and its licences are what § 4 promises before install. */
|
|
346
408
|
async catalog() {
|
|
347
409
|
const result = await this.fetch(`/catalog`, {
|
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 EngineSpeakRequest,\n EngineSummary,\n ErrorBody,\n InstallJob,\n PullRequest,\n Voice,\n} from '../rhapsode/types/rhapsode.types.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 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 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","engines","engineCapabilities","engine","encodeURIComponent","expectStatuses","status","contentType","data","engineVoices","createVoice","body","deleteVoice","voice","voicePreview","blob","speak","headers","JSON","stringify","bigIntReplacer","readContentType","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 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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maroonedsoftware/rhapsode-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
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.5",
|
|
29
29
|
"vitest": "^5.0.0"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|