@tryhakim/voice 1.0.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.
Files changed (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +188 -0
  3. package/dist/audio/speech-stream-ws.d.ts +40 -0
  4. package/dist/audio/speech-stream-ws.d.ts.map +1 -0
  5. package/dist/audio/speech-stream-ws.js +565 -0
  6. package/dist/audio/speech-stream-ws.js.map +1 -0
  7. package/dist/audio/speech.d.ts +46 -0
  8. package/dist/audio/speech.d.ts.map +1 -0
  9. package/dist/audio/speech.js +125 -0
  10. package/dist/audio/speech.js.map +1 -0
  11. package/dist/audio/stream.d.ts +38 -0
  12. package/dist/audio/stream.d.ts.map +1 -0
  13. package/dist/audio/stream.js +452 -0
  14. package/dist/audio/stream.js.map +1 -0
  15. package/dist/audio/to-blob.d.ts +10 -0
  16. package/dist/audio/to-blob.d.ts.map +1 -0
  17. package/dist/audio/to-blob.js +78 -0
  18. package/dist/audio/to-blob.js.map +1 -0
  19. package/dist/audio/transcriptions.d.ts +35 -0
  20. package/dist/audio/transcriptions.d.ts.map +1 -0
  21. package/dist/audio/transcriptions.js +105 -0
  22. package/dist/audio/transcriptions.js.map +1 -0
  23. package/dist/audio/translate-stream-ws.d.ts +37 -0
  24. package/dist/audio/translate-stream-ws.d.ts.map +1 -0
  25. package/dist/audio/translate-stream-ws.js +665 -0
  26. package/dist/audio/translate-stream-ws.js.map +1 -0
  27. package/dist/audio/translate.d.ts +36 -0
  28. package/dist/audio/translate.d.ts.map +1 -0
  29. package/dist/audio/translate.js +39 -0
  30. package/dist/audio/translate.js.map +1 -0
  31. package/dist/audio/voices.d.ts +47 -0
  32. package/dist/audio/voices.d.ts.map +1 -0
  33. package/dist/audio/voices.js +91 -0
  34. package/dist/audio/voices.js.map +1 -0
  35. package/dist/chat/completions.d.ts +76 -0
  36. package/dist/chat/completions.d.ts.map +1 -0
  37. package/dist/chat/completions.js +114 -0
  38. package/dist/chat/completions.js.map +1 -0
  39. package/dist/chat/index.d.ts +2 -0
  40. package/dist/chat/index.d.ts.map +1 -0
  41. package/dist/chat/index.js +2 -0
  42. package/dist/chat/index.js.map +1 -0
  43. package/dist/chat/sse.d.ts +12 -0
  44. package/dist/chat/sse.d.ts.map +1 -0
  45. package/dist/chat/sse.js +142 -0
  46. package/dist/chat/sse.js.map +1 -0
  47. package/dist/client.d.ts +63 -0
  48. package/dist/client.d.ts.map +1 -0
  49. package/dist/client.js +80 -0
  50. package/dist/client.js.map +1 -0
  51. package/dist/errors.d.ts +99 -0
  52. package/dist/errors.d.ts.map +1 -0
  53. package/dist/errors.js +158 -0
  54. package/dist/errors.js.map +1 -0
  55. package/dist/index.d.ts +27 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +25 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/jobs.d.ts +34 -0
  60. package/dist/jobs.d.ts.map +1 -0
  61. package/dist/jobs.js +62 -0
  62. package/dist/jobs.js.map +1 -0
  63. package/dist/observability.d.ts +28 -0
  64. package/dist/observability.d.ts.map +1 -0
  65. package/dist/observability.js +107 -0
  66. package/dist/observability.js.map +1 -0
  67. package/dist/settings.d.ts +49 -0
  68. package/dist/settings.d.ts.map +1 -0
  69. package/dist/settings.js +84 -0
  70. package/dist/settings.js.map +1 -0
  71. package/dist/transport.d.ts +82 -0
  72. package/dist/transport.d.ts.map +1 -0
  73. package/dist/transport.js +289 -0
  74. package/dist/transport.js.map +1 -0
  75. package/dist/types.d.ts +969 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +11 -0
  78. package/dist/types.js.map +1 -0
  79. package/dist/usage.d.ts +43 -0
  80. package/dist/usage.d.ts.map +1 -0
  81. package/dist/usage.js +85 -0
  82. package/dist/usage.js.map +1 -0
  83. package/dist/version.d.ts +13 -0
  84. package/dist/version.d.ts.map +1 -0
  85. package/dist/version.js +13 -0
  86. package/dist/version.js.map +1 -0
  87. package/dist/webhooks.d.ts +84 -0
  88. package/dist/webhooks.d.ts.map +1 -0
  89. package/dist/webhooks.js +157 -0
  90. package/dist/webhooks.js.map +1 -0
  91. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate-stream-ws.js","sourceRoot":"","sources":["../../src/audio/translate-stream-ws.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * `audio.translate` — realtime speech translation (STT → LLM → TTS)
3
+ * over a single WebSocket session (`WSS /v1/audio/translate/stream`).
4
+ *
5
+ * Only entry point is `streamWs()` — the surface is realtime by
6
+ * design. The companion HTTP path is intentionally not exposed: a
7
+ * batch translate flow is recoverable from existing `audio.speech` +
8
+ * `audio.transcriptions` + `chat.completions` chains, while the
9
+ * realtime pipeline relies on the proxy's three-upstream
10
+ * orchestration.
11
+ */
12
+ import type { Transport } from '../transport.js';
13
+ import type { TranslateStreamHandle, TranslateStreamOptions } from '../types.js';
14
+ export declare class TranslateAPI {
15
+ private readonly transport;
16
+ constructor(transport: Transport);
17
+ /** Open a realtime translate session.
18
+ *
19
+ * Returns a `TranslateStreamHandle`. The minimum viable session is:
20
+ *
21
+ * const session = hakim.audio.translate.streamWs({
22
+ * target_language: 'en',
23
+ * });
24
+ * micCapture.on('pcm', (chunk) => session.sendAudio(chunk));
25
+ * for await (const ev of session.events) {
26
+ * if (ev.type === 'translation.done') console.log(ev.text);
27
+ * if (ev.type === 'speech.audio') speaker.write(ev.chunk);
28
+ * }
29
+ * await session.close();
30
+ *
31
+ * The voice for the synthesised target is auto-resolved on the
32
+ * server from `(target_language, gender)`; supply `voice` to
33
+ * override. */
34
+ streamWs(opts?: TranslateStreamOptions): TranslateStreamHandle;
35
+ }
36
+ //# sourceMappingURL=translate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../src/audio/translate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGjF,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAEjD;;;;;;;;;;;;;;;;oBAgBgB;IAChB,QAAQ,CAAC,IAAI,GAAE,sBAA2B,GAAG,qBAAqB;CAGnE"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * `audio.translate` — realtime speech translation (STT → LLM → TTS)
3
+ * over a single WebSocket session (`WSS /v1/audio/translate/stream`).
4
+ *
5
+ * Only entry point is `streamWs()` — the surface is realtime by
6
+ * design. The companion HTTP path is intentionally not exposed: a
7
+ * batch translate flow is recoverable from existing `audio.speech` +
8
+ * `audio.transcriptions` + `chat.completions` chains, while the
9
+ * realtime pipeline relies on the proxy's three-upstream
10
+ * orchestration.
11
+ */
12
+ import { openTranslateStream } from './translate-stream-ws.js';
13
+ export class TranslateAPI {
14
+ transport;
15
+ constructor(transport) {
16
+ this.transport = transport;
17
+ }
18
+ /** Open a realtime translate session.
19
+ *
20
+ * Returns a `TranslateStreamHandle`. The minimum viable session is:
21
+ *
22
+ * const session = hakim.audio.translate.streamWs({
23
+ * target_language: 'en',
24
+ * });
25
+ * micCapture.on('pcm', (chunk) => session.sendAudio(chunk));
26
+ * for await (const ev of session.events) {
27
+ * if (ev.type === 'translation.done') console.log(ev.text);
28
+ * if (ev.type === 'speech.audio') speaker.write(ev.chunk);
29
+ * }
30
+ * await session.close();
31
+ *
32
+ * The voice for the synthesised target is auto-resolved on the
33
+ * server from `(target_language, gender)`; supply `voice` to
34
+ * override. */
35
+ streamWs(opts = {}) {
36
+ return openTranslateStream(this.transport, opts);
37
+ }
38
+ }
39
+ //# sourceMappingURL=translate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/audio/translate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAErD;;;;;;;;;;;;;;;;oBAgBgB;IAChB,QAAQ,CAAC,OAA+B,EAAE;QACxC,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * `audio.voices` — list + create + retrieve + delete.
3
+ *
4
+ * GET /v1/audio/voices → list presets + cloned voices
5
+ * POST /v1/audio/voices → create (clone) a new voice
6
+ * GET /v1/audio/voices/:id → fetch one (fresh preview URL)
7
+ * DELETE /v1/audio/voices/:id → soft-delete a cloned voice
8
+ *
9
+ * Cloned voices return `status: 'processing'` immediately; the server
10
+ * runs the clone pipeline async and flips the row to `ready` (or
11
+ * `failed`) later. Callers should poll `retrieve(id)` or subscribe to
12
+ * `voice.ready` / `voice.failed` webhooks instead of busy-polling.
13
+ */
14
+ import type { Transport } from '../transport.js';
15
+ import type { Voice, VoiceCreateRequest, VoicesListQuery, VoicesListResponse } from '../types.js';
16
+ export declare class VoicesAPI {
17
+ private readonly transport;
18
+ constructor(transport: Transport);
19
+ list(query?: VoicesListQuery, opts?: {
20
+ signal?: AbortSignal;
21
+ }): Promise<VoicesListResponse>;
22
+ /** Convenience: iterate every voice (presets first, then clones).
23
+ * Today the server returns the full set in one page, so this just
24
+ * wraps `list()`. When pagination lands this method absorbs it. */
25
+ iter(query?: VoicesListQuery, opts?: {
26
+ signal?: AbortSignal;
27
+ }): AsyncIterable<Voice>;
28
+ /** Clone a voice. Returns the Voice row in `status: 'processing'`;
29
+ * poll `retrieve(id)` or listen for a `voice.ready` webhook to
30
+ * learn when the clone is usable. */
31
+ create(request: VoiceCreateRequest, opts?: {
32
+ idempotencyKey?: string;
33
+ signal?: AbortSignal;
34
+ }): Promise<Voice>;
35
+ retrieve(id: string, opts?: {
36
+ signal?: AbortSignal;
37
+ }): Promise<Voice>;
38
+ delete(id: string, opts?: {
39
+ idempotencyKey?: string;
40
+ signal?: AbortSignal;
41
+ }): Promise<{
42
+ object: 'voice';
43
+ id: string;
44
+ deleted: true;
45
+ }>;
46
+ }
47
+ //# sourceMappingURL=voices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voices.d.ts","sourceRoot":"","sources":["../../src/audio/voices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGlG,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAE3C,IAAI,CACR,KAAK,GAAE,eAAoB,EAC3B,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAClC,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;wEAEoE;IAC7D,IAAI,CACT,KAAK,GAAE,eAAoB,EAC3B,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAClC,aAAa,CAAC,KAAK,CAAC;IAKvB;;0CAEsC;IAChC,MAAM,CACV,OAAO,EAAE,kBAAkB,EAC3B,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAC3D,OAAO,CAAC,KAAK,CAAC;IAyBX,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,KAAK,CAAC;IASzE,MAAM,CACV,EAAE,EAAE,MAAM,EACV,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAC3D,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;CAS3D"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * `audio.voices` — list + create + retrieve + delete.
3
+ *
4
+ * GET /v1/audio/voices → list presets + cloned voices
5
+ * POST /v1/audio/voices → create (clone) a new voice
6
+ * GET /v1/audio/voices/:id → fetch one (fresh preview URL)
7
+ * DELETE /v1/audio/voices/:id → soft-delete a cloned voice
8
+ *
9
+ * Cloned voices return `status: 'processing'` immediately; the server
10
+ * runs the clone pipeline async and flips the row to `ready` (or
11
+ * `failed`) later. Callers should poll `retrieve(id)` or subscribe to
12
+ * `voice.ready` / `voice.failed` webhooks instead of busy-polling.
13
+ */
14
+ import { audioInputToBlob } from './to-blob.js';
15
+ export class VoicesAPI {
16
+ transport;
17
+ constructor(transport) {
18
+ this.transport = transport;
19
+ }
20
+ async list(query = {}, opts = {}) {
21
+ const res = await this.transport.request({
22
+ method: 'GET',
23
+ path: '/v1/audio/voices',
24
+ query: toQueryParams(query),
25
+ ...(opts.signal !== undefined ? { signal: opts.signal } : {}),
26
+ });
27
+ const body = (await res.json());
28
+ return body;
29
+ }
30
+ /** Convenience: iterate every voice (presets first, then clones).
31
+ * Today the server returns the full set in one page, so this just
32
+ * wraps `list()`. When pagination lands this method absorbs it. */
33
+ async *iter(query = {}, opts = {}) {
34
+ const { data } = await this.list(query, opts);
35
+ for (const v of data)
36
+ yield v;
37
+ }
38
+ /** Clone a voice. Returns the Voice row in `status: 'processing'`;
39
+ * poll `retrieve(id)` or listen for a `voice.ready` webhook to
40
+ * learn when the clone is usable. */
41
+ async create(request, opts = {}) {
42
+ const filename = request.filename ?? 'sample.bin';
43
+ const blob = await audioInputToBlob(request.sample, filename);
44
+ const form = new FormData();
45
+ form.append('file', blob, filename);
46
+ form.append('name', request.name);
47
+ if (request.description !== undefined) {
48
+ form.append('description', request.description);
49
+ }
50
+ form.append('language', request.language);
51
+ form.append('consent_confirmed', 'true');
52
+ const res = await this.transport.request({
53
+ method: 'POST',
54
+ path: '/v1/audio/voices',
55
+ formData: form,
56
+ accept: 'application/json',
57
+ headers: { accept: 'application/json' },
58
+ ...(opts.idempotencyKey !== undefined ? { idempotencyKey: opts.idempotencyKey } : {}),
59
+ ...(opts.signal !== undefined ? { signal: opts.signal } : {}),
60
+ });
61
+ return (await res.json());
62
+ }
63
+ async retrieve(id, opts = {}) {
64
+ const res = await this.transport.request({
65
+ method: 'GET',
66
+ path: `/v1/audio/voices/${encodeURIComponent(id)}`,
67
+ ...(opts.signal !== undefined ? { signal: opts.signal } : {}),
68
+ });
69
+ return (await res.json());
70
+ }
71
+ async delete(id, opts = {}) {
72
+ const res = await this.transport.request({
73
+ method: 'DELETE',
74
+ path: `/v1/audio/voices/${encodeURIComponent(id)}`,
75
+ ...(opts.idempotencyKey !== undefined ? { idempotencyKey: opts.idempotencyKey } : {}),
76
+ ...(opts.signal !== undefined ? { signal: opts.signal } : {}),
77
+ });
78
+ return (await res.json());
79
+ }
80
+ }
81
+ function toQueryParams(q) {
82
+ const out = {};
83
+ if (q.language !== undefined)
84
+ out.language = q.language;
85
+ if (q.gender !== undefined)
86
+ out.gender = q.gender;
87
+ if (q.kind !== undefined)
88
+ out.kind = q.kind;
89
+ return out;
90
+ }
91
+ //# sourceMappingURL=voices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voices.js","sourceRoot":"","sources":["../../src/audio/voices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * `chat.completions` — POST /v1/chat/completions.
3
+ *
4
+ * Two entry points, mirroring `audio.speech`:
5
+ *
6
+ * - `create(request)` — buffers the full response and returns a
7
+ * `ChatCompletionResponse` with usage block + decoded
8
+ * observability headers. Forces `stream: false` regardless of
9
+ * what the caller passed, so a stale flag in a saved request
10
+ * can't drag a buffered call into SSE mode.
11
+ *
12
+ * - `stream(request)` — returns an `AsyncIterable<ChatCompletionChunk>`
13
+ * plus the upfront observability headers (kind / unit-type /
14
+ * model / plan / period / credits). The final per-request usage
15
+ * numbers (`credits`, `cost_usd`, `units`) ride the terminal
16
+ * SSE chunk's `usage` block — OpenAI convention — and are not
17
+ * emitted as headers since `reply.hijack()` already flushed
18
+ * the response head before they're known.
19
+ *
20
+ * Reasoning policy: off by default, opt-in for
21
+ * non-stream via `reasoning: { enabled: true }`, and forbidden for
22
+ * streaming. The route rejects the stream-with-reasoning combo at
23
+ * the schema layer with a 400 — we do not pre-validate here so
24
+ * the server stays the single source of truth.
25
+ */
26
+ import type { Transport } from '../transport.js';
27
+ import type { ChatCompletionChunk, ChatCompletionRequest, ChatCompletionResponse } from '../types.js';
28
+ import type { ResponseMeta, SpeechResponseLimits, UsageBlock } from '../types.js';
29
+ /** Returned by `chat.completions.create`. The shape extends the
30
+ * OpenAI response with Hakim-specific observability fields. */
31
+ export interface ChatCompletionCreateResponse extends ChatCompletionResponse {
32
+ /** Decoded `x-hakim-usage-*` headers. Same data as the embedded
33
+ * `hakim_usage` block (the wire echoes it for log integrators
34
+ * that strip headers). */
35
+ usage_headers?: UsageBlock;
36
+ /** Decoded snapshot of plan / period / credits / concurrency. */
37
+ limits?: SpeechResponseLimits;
38
+ meta: ResponseMeta;
39
+ }
40
+ /** Returned by `chat.completions.stream`. The `stream` yields one
41
+ * `ChatCompletionChunk` per SSE frame. The final chunk carries
42
+ * the `usage` block; consumers that want a single roll-up should
43
+ * iterate to completion and read `lastChunk.usage`. */
44
+ export interface ChatCompletionStreamResponse {
45
+ stream: AsyncIterable<ChatCompletionChunk>;
46
+ /** `kind` / `unit_type` / `model` from the streaming preflight.
47
+ * Final per-request `credits` / `cost_usd` / `units` are not
48
+ * knowable before the upstream closes the stream and ride the
49
+ * terminal chunk's `usage` block instead. */
50
+ usage_preflight?: StreamingUsagePreflight;
51
+ limits?: SpeechResponseLimits;
52
+ meta: ResponseMeta;
53
+ }
54
+ export interface StreamingUsagePreflight {
55
+ kind: 'llm_chat';
56
+ unit_type: 'tokens';
57
+ model: string | null;
58
+ }
59
+ export declare class ChatCompletionsAPI {
60
+ private readonly transport;
61
+ constructor(transport: Transport);
62
+ /** Non-streaming chat completion. Returns the full response
63
+ * body plus decoded observability headers. */
64
+ create(request: ChatCompletionRequest, opts?: {
65
+ idempotencyKey?: string;
66
+ signal?: AbortSignal;
67
+ }): Promise<ChatCompletionCreateResponse>;
68
+ /** Streaming chat completion (SSE). Returns an async iterable
69
+ * of chunks. Always sends `stream: true` regardless of what
70
+ * the caller passed on the request body. */
71
+ stream(request: ChatCompletionRequest, opts?: {
72
+ idempotencyKey?: string;
73
+ signal?: AbortSignal;
74
+ }): Promise<ChatCompletionStreamResponse>;
75
+ }
76
+ //# sourceMappingURL=completions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/chat/completions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlF;gEACgE;AAChE,MAAM,WAAW,4BAA6B,SAAQ,sBAAsB;IAC1E;;+BAE2B;IAC3B,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,iEAAiE;IACjE,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;;wDAGwD;AACxD,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC3C;;;kDAG8C;IAC9C,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAEjD;mDAC+C;IACzC,MAAM,CACV,OAAO,EAAE,qBAAqB,EAC9B,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAC3D,OAAO,CAAC,4BAA4B,CAAC;IAyBxC;;iDAE6C;IACvC,MAAM,CACV,OAAO,EAAE,qBAAqB,EAC9B,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAC3D,OAAO,CAAC,4BAA4B,CAAC;CAoCzC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * `chat.completions` — POST /v1/chat/completions.
3
+ *
4
+ * Two entry points, mirroring `audio.speech`:
5
+ *
6
+ * - `create(request)` — buffers the full response and returns a
7
+ * `ChatCompletionResponse` with usage block + decoded
8
+ * observability headers. Forces `stream: false` regardless of
9
+ * what the caller passed, so a stale flag in a saved request
10
+ * can't drag a buffered call into SSE mode.
11
+ *
12
+ * - `stream(request)` — returns an `AsyncIterable<ChatCompletionChunk>`
13
+ * plus the upfront observability headers (kind / unit-type /
14
+ * model / plan / period / credits). The final per-request usage
15
+ * numbers (`credits`, `cost_usd`, `units`) ride the terminal
16
+ * SSE chunk's `usage` block — OpenAI convention — and are not
17
+ * emitted as headers since `reply.hijack()` already flushed
18
+ * the response head before they're known.
19
+ *
20
+ * Reasoning policy: off by default, opt-in for
21
+ * non-stream via `reasoning: { enabled: true }`, and forbidden for
22
+ * streaming. The route rejects the stream-with-reasoning combo at
23
+ * the schema layer with a 400 — we do not pre-validate here so
24
+ * the server stays the single source of truth.
25
+ */
26
+ import { ConnectionError } from '../errors.js';
27
+ import { parseLimitsFromHeaders, parseUsageBlockFromHeaders } from '../observability.js';
28
+ import { parseSseStream } from './sse.js';
29
+ export class ChatCompletionsAPI {
30
+ transport;
31
+ constructor(transport) {
32
+ this.transport = transport;
33
+ }
34
+ /** Non-streaming chat completion. Returns the full response
35
+ * body plus decoded observability headers. */
36
+ async create(request, opts = {}) {
37
+ const res = await this.transport.request({
38
+ method: 'POST',
39
+ path: '/v1/chat/completions',
40
+ json: { ...request, stream: false },
41
+ ...(opts.idempotencyKey !== undefined ? { idempotencyKey: opts.idempotencyKey } : {}),
42
+ ...(opts.signal !== undefined ? { signal: opts.signal } : {}),
43
+ });
44
+ const body = (await res.json());
45
+ const usageHeaders = parseUsageBlockFromHeaders(res.headers);
46
+ const limits = parseLimitsFromHeaders(res.headers);
47
+ return {
48
+ ...body,
49
+ ...(usageHeaders !== undefined ? { usage_headers: usageHeaders } : {}),
50
+ ...(limits !== undefined ? { limits } : {}),
51
+ meta: {
52
+ requestId: res.headers.get('x-request-id') ?? undefined,
53
+ status: res.status,
54
+ headers: res.headers,
55
+ },
56
+ };
57
+ }
58
+ /** Streaming chat completion (SSE). Returns an async iterable
59
+ * of chunks. Always sends `stream: true` regardless of what
60
+ * the caller passed on the request body. */
61
+ async stream(request, opts = {}) {
62
+ const res = await this.transport.request({
63
+ method: 'POST',
64
+ path: '/v1/chat/completions',
65
+ json: { ...request, stream: true },
66
+ accept: 'text/event-stream',
67
+ headers: { accept: 'text/event-stream' },
68
+ stream: true,
69
+ ...(opts.idempotencyKey !== undefined ? { idempotencyKey: opts.idempotencyKey } : {}),
70
+ ...(opts.signal !== undefined ? { signal: opts.signal } : {}),
71
+ });
72
+ if (!res.body) {
73
+ throw new ConnectionError({
74
+ message: 'Hakim SDK: chat streaming response has no body',
75
+ requestId: res.headers.get('x-request-id') ?? undefined,
76
+ });
77
+ }
78
+ return {
79
+ stream: parseSseStream(res.body, {
80
+ requestId: res.headers.get('x-request-id') ?? undefined,
81
+ }),
82
+ ...(parsePreflight(res.headers) !== undefined
83
+ ? { usage_preflight: parsePreflight(res.headers) }
84
+ : {}),
85
+ ...(parseLimitsFromHeaders(res.headers) !== undefined
86
+ ? { limits: parseLimitsFromHeaders(res.headers) }
87
+ : {}),
88
+ meta: {
89
+ requestId: res.headers.get('x-request-id') ?? undefined,
90
+ status: res.status,
91
+ headers: res.headers,
92
+ },
93
+ };
94
+ }
95
+ }
96
+ /**
97
+ * On streaming responses the route stamps a reduced header set
98
+ * before `reply.hijack()` — kind, unit-type, model — and embeds
99
+ * final per-request usage on the terminal SSE chunk. We expose
100
+ * those preflight values so callers don't have to crack open
101
+ * `meta.headers`.
102
+ */
103
+ function parsePreflight(headers) {
104
+ const kind = headers.get('x-hakim-usage-kind');
105
+ const unitType = headers.get('x-hakim-usage-unit-type');
106
+ if (kind !== 'llm_chat' || unitType !== 'tokens')
107
+ return undefined;
108
+ return {
109
+ kind: 'llm_chat',
110
+ unit_type: 'tokens',
111
+ model: headers.get('x-hakim-model'),
112
+ };
113
+ }
114
+ //# sourceMappingURL=completions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/chat/completions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { ChatCompletionsAPI, type ChatCompletionCreateResponse, type ChatCompletionStreamResponse, type StreamingUsagePreflight, } from './completions.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ChatCompletionsAPI, } from './completions.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAInB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Iterate the SSE wire and yield parsed chunks of type `T`.
3
+ *
4
+ * Terminates cleanly on `data: [DONE]` or when the underlying
5
+ * `ReadableStream` closes. Throws when the wire carries an
6
+ * `event: error` envelope whose `data` is a Hakim error JSON
7
+ * payload.
8
+ */
9
+ export declare function parseSseStream<T>(body: ReadableStream<Uint8Array>, opts?: {
10
+ requestId?: string | undefined;
11
+ }): AsyncIterable<T>;
12
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/chat/sse.ts"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,wBAAuB,cAAc,CAAC,CAAC,EACrC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAO,GAC5C,aAAa,CAAC,CAAC,CAAC,CA0ClB"}