@ohm_studio/sdk-core 0.6.0 → 0.8.0
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/client.d.ts +63 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +376 -36
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +121 -19
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +121 -1
- package/dist/errors.js.map +1 -1
- package/dist/types.d.ts +128 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApiDetail, ApiSummary, AudioExtractInput, AudioExtractResult, AudioTranscribeInput, AudioTranscribeResult, CreateAudioJobInput, CreateAudioJobResult, ExtractInput, ExtractResult, GetApiOptions, InsightsInput, InsightsResult, JobDetail, ListApisOptions, OHMClientOptions, OHMInit, PollJobOptions, RequestOptions, SearchInvocationsByPatientOptions, SearchInvocationsByPatientResult, StreamChunk, SummarizeInput, SummarizeResult, UploadProgressEvent, UsageEvent } from "./types";
|
|
1
|
+
import type { ApiDetail, ApiSummary, AudioExtractInput, AudioExtractResult, AudioTranscribeInput, AudioTranscribeResult, BulkExtractOptions, BulkResult, ClientHooks, CreateAudioJobInput, CreateAudioJobResult, ExtractInput, ExtractResult, GetApiOptions, InsightsInput, InsightsResult, JobDetail, ListApisOptions, OHMClientOptions, OHMInit, PollJobOptions, RequestOptions, SearchInvocationsByPatientOptions, SearchInvocationsByPatientResult, StreamChunk, SummarizeInput, SummarizeResult, UploadProgressEvent, UsageEvent } from "./types";
|
|
2
2
|
/**
|
|
3
3
|
* Platform-agnostic core client. Subclasses (sdk-js, sdk-react-native)
|
|
4
4
|
* supply the platform-specific multipart/audio adapter via the `attachAudio`
|
|
@@ -9,12 +9,47 @@ export declare abstract class OHMCoreClient {
|
|
|
9
9
|
protected readonly apiKey?: string;
|
|
10
10
|
protected readonly jwt?: string;
|
|
11
11
|
protected readonly timeoutMs: number;
|
|
12
|
+
protected readonly totalTimeoutMs?: number;
|
|
12
13
|
protected readonly maxRetries: number;
|
|
13
14
|
protected readonly fetchImpl: typeof fetch;
|
|
14
15
|
protected readonly onUsage?: (e: UsageEvent) => void;
|
|
16
|
+
protected readonly hooks?: ClientHooks;
|
|
17
|
+
protected readonly disableAutoIdempotency: boolean;
|
|
18
|
+
protected readonly userAgent: string;
|
|
15
19
|
protected readonly _mock: boolean;
|
|
16
20
|
protected readonly _mockResponses?: OHMClientOptions["mockResponses"];
|
|
21
|
+
/** Cached options for `withOverrides`. */
|
|
22
|
+
private readonly _opts;
|
|
23
|
+
/** SDK version stamped on `X-OHM-Client` + `User-Agent`. */
|
|
24
|
+
protected static readonly SDK_VERSION = "0.8.0";
|
|
17
25
|
constructor(init: OHMInit);
|
|
26
|
+
/**
|
|
27
|
+
* Returns the SDK version string. Useful when forwarding the SDK
|
|
28
|
+
* version to your own telemetry pipeline.
|
|
29
|
+
*/
|
|
30
|
+
static getVersion(): string;
|
|
31
|
+
/**
|
|
32
|
+
* Returns a new client with overridden options for one call. The
|
|
33
|
+
* underlying auth + base URL are inherited; you typically only
|
|
34
|
+
* override `timeoutMs` / `maxRetries` / `totalTimeoutMs` for a
|
|
35
|
+
* single known-slow call.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* const slow = ohm.withOverrides({ timeoutMs: 5 * 60_000 });
|
|
39
|
+
* await slow.audio.extract({ apiSlug, file: bigAudio });
|
|
40
|
+
*/
|
|
41
|
+
withOverrides(overrides: Partial<OHMClientOptions>): this;
|
|
42
|
+
/**
|
|
43
|
+
* Establish a TCP/TLS connection to the API ahead of the first real
|
|
44
|
+
* call. Drops cold-start latency from ~500 ms to ~150 ms on real-world
|
|
45
|
+
* mobile networks. Safe to call multiple times; no-op in mock mode.
|
|
46
|
+
*
|
|
47
|
+
* const ohm = new OHM({ apiKey });
|
|
48
|
+
* void ohm.warmUp(); // fire-and-forget at app boot
|
|
49
|
+
* // ...
|
|
50
|
+
* await ohm.extract({ ... }); // already-warm connection
|
|
51
|
+
*/
|
|
52
|
+
warmUp(): Promise<void>;
|
|
18
53
|
/**
|
|
19
54
|
* Audio surface — speech-to-text and audio-to-structured-JSON.
|
|
20
55
|
* Subclasses fill in the platform-specific multipart adapter (browser
|
|
@@ -65,7 +100,7 @@ export declare abstract class OHMCoreClient {
|
|
|
65
100
|
* step finishes. Backend uses Server-Sent Events.
|
|
66
101
|
*
|
|
67
102
|
* @example
|
|
68
|
-
* const stream = ohm.audio.
|
|
103
|
+
* const stream = ohm.audio.extractStream({ apiSlug, file });
|
|
69
104
|
* for await (const chunk of stream) {
|
|
70
105
|
* if (chunk.type === "transcript") setT(chunk.transcript);
|
|
71
106
|
* if (chunk.type === "data") setData(chunk.data);
|
|
@@ -160,6 +195,29 @@ export declare abstract class OHMCoreClient {
|
|
|
160
195
|
* }
|
|
161
196
|
*/
|
|
162
197
|
extract<T = Record<string, unknown>>(input: ExtractInput): Promise<ExtractResult<T>>;
|
|
198
|
+
/**
|
|
199
|
+
* Bulk-extract a batch of text inputs concurrently. Partial failures
|
|
200
|
+
* do NOT fail the batch — each input gets a discriminated-union
|
|
201
|
+
* result (`{ ok: true, data }` or `{ ok: false, error, input }`).
|
|
202
|
+
*
|
|
203
|
+
* Use when replaying historical transcripts, batch-tagging lab
|
|
204
|
+
* reports, or anywhere "10 000 of these need to extract this week".
|
|
205
|
+
*
|
|
206
|
+
* Default concurrency is 4 — enough to amortise network round-trips
|
|
207
|
+
* without blowing the per-key rate limit. Pass a higher cap when you
|
|
208
|
+
* know your key's quota is generous.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* const results = await ohm.extractBulk(transcripts.map(t => ({
|
|
212
|
+
* apiSlug: "opd-clinic",
|
|
213
|
+
* text: t,
|
|
214
|
+
* })), {
|
|
215
|
+
* concurrency: 8,
|
|
216
|
+
* onProgress: (done, total) => console.log(`${done}/${total}`),
|
|
217
|
+
* });
|
|
218
|
+
* const errored = results.filter(r => !r.ok);
|
|
219
|
+
*/
|
|
220
|
+
extractBulk<T = Record<string, unknown>>(inputs: ExtractInput[], options?: BulkExtractOptions): Promise<BulkResult<T>[]>;
|
|
163
221
|
/**
|
|
164
222
|
* One-line convenience: pass a transcript, get back the data field.
|
|
165
223
|
* Equivalent to `(await ohm.extract({ apiSlug, text })).data` — the most
|
|
@@ -269,11 +327,11 @@ export declare abstract class OHMCoreClient {
|
|
|
269
327
|
file: any;
|
|
270
328
|
fields?: Record<string, string>;
|
|
271
329
|
signal?: AbortSignal;
|
|
272
|
-
idempotencyKey?: string;
|
|
330
|
+
idempotencyKey?: string | null;
|
|
273
331
|
onProgress?: (event: UploadProgressEvent) => void;
|
|
274
332
|
}): Promise<T>;
|
|
275
333
|
/**
|
|
276
|
-
* Default SSE-based streaming for audio.
|
|
334
|
+
* Default SSE-based streaming for audio.extractStream. Subclasses
|
|
277
335
|
* override `runMultipart` to construct the FormData body for their
|
|
278
336
|
* platform; this method reuses that body and parses an SSE event stream
|
|
279
337
|
* off the response.
|
|
@@ -289,7 +347,7 @@ export declare abstract class OHMCoreClient {
|
|
|
289
347
|
file: any;
|
|
290
348
|
fields?: Record<string, string>;
|
|
291
349
|
signal?: AbortSignal;
|
|
292
|
-
idempotencyKey?: string;
|
|
350
|
+
idempotencyKey?: string | null;
|
|
293
351
|
}): AsyncGenerator<StreamChunk<T>>;
|
|
294
352
|
/**
|
|
295
353
|
* Builds a `FormData` (web/Node) or RN-shaped FormData. Subclasses
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|