@sentropic/llm-mesh 0.29.0 → 0.31.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/README.md +21 -0
- package/dist/decision/adapter.d.ts.map +1 -1
- package/dist/decision/adapter.js +2 -1
- package/dist/decision/adapter.js.map +1 -1
- package/dist/decision/admission.d.ts +2 -1
- package/dist/decision/admission.d.ts.map +1 -1
- package/dist/decision/admission.js +5 -1
- package/dist/decision/admission.js.map +1 -1
- package/dist/decision/assessment-controls.d.ts +6 -0
- package/dist/decision/assessment-controls.d.ts.map +1 -0
- package/dist/decision/assessment-controls.js +45 -0
- package/dist/decision/assessment-controls.js.map +1 -0
- package/dist/decision/assessment-recording.d.ts +23 -0
- package/dist/decision/assessment-recording.d.ts.map +1 -0
- package/dist/decision/assessment-recording.js +73 -0
- package/dist/decision/assessment-recording.js.map +1 -0
- package/dist/decision/assessment-statistics.d.ts +14 -0
- package/dist/decision/assessment-statistics.d.ts.map +1 -0
- package/dist/decision/assessment-statistics.js +88 -0
- package/dist/decision/assessment-statistics.js.map +1 -0
- package/dist/decision/assessment-types.d.ts +123 -0
- package/dist/decision/assessment-types.d.ts.map +1 -0
- package/dist/decision/assessment-types.js +2 -0
- package/dist/decision/assessment-types.js.map +1 -0
- package/dist/decision/assessment-validation.d.ts +7 -0
- package/dist/decision/assessment-validation.d.ts.map +1 -0
- package/dist/decision/assessment-validation.js +124 -0
- package/dist/decision/assessment-validation.js.map +1 -0
- package/dist/decision/assessment.d.ts +6 -0
- package/dist/decision/assessment.d.ts.map +1 -0
- package/dist/decision/assessment.js +157 -0
- package/dist/decision/assessment.js.map +1 -0
- package/dist/decision/descriptor-validation.d.ts.map +1 -1
- package/dist/decision/descriptor-validation.js +4 -2
- package/dist/decision/descriptor-validation.js.map +1 -1
- package/dist/decision/descriptor.d.ts +2 -0
- package/dist/decision/descriptor.d.ts.map +1 -1
- package/dist/decision/descriptor.js.map +1 -1
- package/dist/decision/dispatch.d.ts.map +1 -1
- package/dist/decision/dispatch.js +2 -1
- package/dist/decision/dispatch.js.map +1 -1
- package/dist/decision/host-options.d.ts +5 -0
- package/dist/decision/host-options.d.ts.map +1 -1
- package/dist/decision/host.d.ts +5 -0
- package/dist/decision/host.d.ts.map +1 -1
- package/dist/decision/host.js +3 -0
- package/dist/decision/host.js.map +1 -1
- package/dist/decision/index.d.ts +2 -0
- package/dist/decision/index.d.ts.map +1 -1
- package/dist/decision/jev-response.js +1 -1
- package/dist/decision/jev-response.js.map +1 -1
- package/dist/decision/openai-adapter.d.ts.map +1 -1
- package/dist/decision/openai-adapter.js +2 -1
- package/dist/decision/openai-adapter.js.map +1 -1
- package/dist/decision/openai-codec.js +1 -1
- package/dist/decision/openai-codec.js.map +1 -1
- package/dist/decision/policy.d.ts.map +1 -1
- package/dist/decision/policy.js +2 -1
- package/dist/decision/policy.js.map +1 -1
- package/dist/decision/pricing.d.ts +1 -0
- package/dist/decision/pricing.d.ts.map +1 -1
- package/dist/decision/pricing.js +25 -10
- package/dist/decision/pricing.js.map +1 -1
- package/dist/decision/qualification-scope.d.ts +22 -0
- package/dist/decision/qualification-scope.d.ts.map +1 -0
- package/dist/decision/qualification-scope.js +36 -0
- package/dist/decision/qualification-scope.js.map +1 -0
- package/dist/decision/qualification.d.ts +34 -0
- package/dist/decision/qualification.d.ts.map +1 -0
- package/dist/decision/qualification.js +74 -0
- package/dist/decision/qualification.js.map +1 -0
- package/dist/decision/receipt.d.ts +9 -3
- package/dist/decision/receipt.d.ts.map +1 -1
- package/dist/decision/receipt.js.map +1 -1
- package/dist/decision/service.d.ts.map +1 -1
- package/dist/decision/service.js +19 -3
- package/dist/decision/service.js.map +1 -1
- package/dist/speech/index.d.ts +1 -0
- package/dist/speech/index.d.ts.map +1 -1
- package/dist/speech/index.js +1 -0
- package/dist/speech/index.js.map +1 -1
- package/dist/speech/openai-transcription.d.ts +173 -0
- package/dist/speech/openai-transcription.d.ts.map +1 -0
- package/dist/speech/openai-transcription.js +659 -0
- package/dist/speech/openai-transcription.js.map +1 -0
- package/package.json +1 -1
package/dist/decision/service.js
CHANGED
|
@@ -9,6 +9,7 @@ import { dispatchDecision } from './dispatch.js';
|
|
|
9
9
|
import { hasOnlyKeys } from './validation.js';
|
|
10
10
|
import { isMicroUsd } from './pricing.js';
|
|
11
11
|
import { runWithDecisionDeadline } from './deadline.js';
|
|
12
|
+
import { createDecisionReadinessCheck } from './qualification.js';
|
|
12
13
|
/** Order-insensitive snapshot comparison for descriptor records. */
|
|
13
14
|
function canonicalDecisionJson(value) {
|
|
14
15
|
if (Array.isArray(value))
|
|
@@ -102,10 +103,13 @@ const isEvaluatorAllowlist = (value) => Array.isArray(value) && value.every((ent
|
|
|
102
103
|
/** Trusted composition only. Construction performs no discovery, key resolution or I/O. */
|
|
103
104
|
export function createDecisionService(supplied) {
|
|
104
105
|
const policy = snapshotBoundedJson(supplied.policy ?? {});
|
|
106
|
+
const readiness = snapshotBoundedJson(supplied.readiness ?? null, 16 * 1024 * 1024);
|
|
105
107
|
if (!supplied.registry || ![supplied.resolveEvaluator, supplied.resolveAuth, supplied.resolvePrice, supplied.authorize,
|
|
106
108
|
supplied.budget?.admit, supplied.budget?.markDispatched, supplied.budget?.release, supplied.budget?.settle,
|
|
107
109
|
supplied.receipts?.persist].every((port) => typeof port === 'function')
|
|
108
110
|
|| !isEvaluatorAllowlist(supplied.evaluatorAllowlist)
|
|
111
|
+
|| (supplied.executionProfile !== undefined && supplied.executionProfile !== 'production' && supplied.executionProfile !== 'qualification')
|
|
112
|
+
|| !readiness.ok
|
|
109
113
|
|| !policy.ok || !isRecord(policy.value)
|
|
110
114
|
|| !hasOnlyKeys(policy.value, ['timeoutMs', 'maxCostMicroUsd', 'allowRaw'])
|
|
111
115
|
|| (policy.value.timeoutMs !== undefined && (!Number.isSafeInteger(policy.value.timeoutMs)
|
|
@@ -113,12 +117,16 @@ export function createDecisionService(supplied) {
|
|
|
113
117
|
|| (policy.value.maxCostMicroUsd !== undefined && !isMicroUsd(policy.value.maxCostMicroUsd))
|
|
114
118
|
|| (policy.value.allowRaw !== undefined && typeof policy.value.allowRaw !== 'boolean'))
|
|
115
119
|
throw new Error('Invalid decision host configuration.');
|
|
116
|
-
const options = { ...supplied, policy: freezeDecisionData(policy.value),
|
|
120
|
+
const options = { ...supplied, executionProfile: supplied.executionProfile ?? 'production', policy: freezeDecisionData(policy.value),
|
|
121
|
+
readiness: freezeDecisionData(readiness.value),
|
|
117
122
|
evaluatorAllowlist: freezeDecisionData(supplied.evaluatorAllowlist.map((entry) => ({ ...entry }))) };
|
|
123
|
+
const productionReady = createDecisionReadinessCheck(options.readiness);
|
|
118
124
|
return { async decide(candidate, callOptions) {
|
|
119
125
|
const execution = beginDecisionExecution(candidate, { clock: options.clock, generateId: options.generateId,
|
|
120
126
|
timeoutMs: options.policy.timeoutMs, signal: callOptions?.signal });
|
|
121
|
-
|
|
127
|
+
if (options.executionProfile === 'qualification')
|
|
128
|
+
execution.receipt.experimental = true;
|
|
129
|
+
const result = await runWithDecisionDeadline(execution, async () => {
|
|
122
130
|
if (execution.idError)
|
|
123
131
|
return persistDecisionResult(execution, options.receipts, createDecisionError('MESH_UNAVAILABLE', 'preflight'));
|
|
124
132
|
const interrupted = decisionInterruption(execution, 'preflight');
|
|
@@ -127,13 +135,21 @@ export function createDecisionService(supplied) {
|
|
|
127
135
|
const selection = await preflightDecisionRequest(candidate, options);
|
|
128
136
|
if (!selection.ok)
|
|
129
137
|
return persistDecisionResult(execution, options.receipts, createDecisionError(selection.code, 'preflight'));
|
|
138
|
+
if ((selection.descriptor.executionProfile ?? 'production') !== options.executionProfile) {
|
|
139
|
+
return persistDecisionResult(execution, options.receipts, createDecisionError('PROVIDER_UNAVAILABLE', 'preflight'));
|
|
140
|
+
}
|
|
130
141
|
execution.receipt.evaluator = { ...selection.descriptor.evaluator };
|
|
131
142
|
execution.receipt.retention = structuredClone(selection.descriptor.retention);
|
|
132
|
-
const admitted = await admitDecision(execution, selection, options);
|
|
143
|
+
const admitted = await admitDecision(execution, selection, options, productionReady);
|
|
133
144
|
if (!admitted.ok)
|
|
134
145
|
return persistDecisionResult(execution, options.receipts, admitted.error);
|
|
135
146
|
return dispatchDecision(execution, selection, admitted, options);
|
|
136
147
|
});
|
|
148
|
+
if (execution.receipt.experimental)
|
|
149
|
+
return result.ok
|
|
150
|
+
? { ...result, experimental: true, kind: 'experimental-verdict' }
|
|
151
|
+
: { ...result, experimental: true };
|
|
152
|
+
return result;
|
|
137
153
|
} };
|
|
138
154
|
}
|
|
139
155
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/decision/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAIhE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/decision/service.ts"],"names":[],"mappings":"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"}
|
package/dist/speech/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/speech/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/speech/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC"}
|
package/dist/speech/index.js
CHANGED
package/dist/speech/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/speech/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/speech/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import type { SpeechBinding, SpeechEngineIdentity, SpeechEvent, SpeechInputFrame, SpeechSession, SpeechSessionReceipt, SpeechSessionRequest } from './contracts.js';
|
|
2
|
+
import type { SpeechCapabilities } from './capabilities.js';
|
|
3
|
+
export declare const OPENAI_TRANSCRIPTION_PROVIDER_ID = "openai";
|
|
4
|
+
export declare const OPENAI_TRANSCRIPTION_ADAPTER_ID = "openai-transcription";
|
|
5
|
+
export declare const OPENAI_TRANSCRIPTION_ADAPTER_REVISION = "1";
|
|
6
|
+
export declare const OPENAI_TRANSCRIPTION_PLACEMENT: "cloud-relay";
|
|
7
|
+
export declare const OPENAI_TRANSCRIPTION_WS_URL = "wss://api.openai.com/v1/realtime?intent=transcription";
|
|
8
|
+
export declare const openAiTranscriptionModels: readonly ["gpt-live-transcribe", "gpt-realtime-whisper"];
|
|
9
|
+
export type OpenAiTranscriptionModelId = (typeof openAiTranscriptionModels)[number];
|
|
10
|
+
export declare const openAiTranscriptionDelays: readonly ["minimal", "low", "medium", "high", "xhigh"];
|
|
11
|
+
export type OpenAiTranscriptionDelay = (typeof openAiTranscriptionDelays)[number];
|
|
12
|
+
/** Independent per-profile configuration. No shared mutable state between profiles. */
|
|
13
|
+
export interface OpenAiTranscriptionProfileConfig {
|
|
14
|
+
readonly modelId: OpenAiTranscriptionModelId;
|
|
15
|
+
/** Served model snapshot pinned at admission; never an unreviewed `latest` alias. */
|
|
16
|
+
readonly modelRevision: string;
|
|
17
|
+
/** Latency/accuracy tradeoff; per-profile, never inherited. */
|
|
18
|
+
readonly delay: OpenAiTranscriptionDelay;
|
|
19
|
+
readonly language?: string;
|
|
20
|
+
readonly prompt?: string;
|
|
21
|
+
/** Client-owned turn detection only. Any other value refuses at open. */
|
|
22
|
+
readonly turnDetection?: 'client';
|
|
23
|
+
readonly accountRef?: string;
|
|
24
|
+
readonly region?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const openAiTranscriptionIdentity: (config: OpenAiTranscriptionProfileConfig) => SpeechEngineIdentity;
|
|
27
|
+
/** Per-profile capabilities. TTS is unsupported: synthesis is selected separately (local or L13). */
|
|
28
|
+
export declare const openAiTranscriptionCapabilities: (config: OpenAiTranscriptionProfileConfig) => SpeechCapabilities;
|
|
29
|
+
/** Exact `session.update` body. `turn_detection` is always null (server VAD unsupported). */
|
|
30
|
+
export declare const buildTranscriptionSessionUpdate: (config: OpenAiTranscriptionProfileConfig) => Record<string, unknown>;
|
|
31
|
+
export declare class OpenAiTranscriptionError extends Error {
|
|
32
|
+
readonly code: 'unknown-model' | 'invalid-config' | 'admission' | 'ceiling' | 'closed' | 'aborted' | 'transport' | 'invalid-format' | 'unsupported-command';
|
|
33
|
+
constructor(code: OpenAiTranscriptionError['code'], message: string);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Admission outcome consumed as data (gateway `admitSpeech` runs at
|
|
37
|
+
* composition, L16/API — mesh never imports the gateway). The session
|
|
38
|
+
* refuses to open without it and never exceeds its ceilings.
|
|
39
|
+
*/
|
|
40
|
+
export interface OpenAiTranscriptionAdmission {
|
|
41
|
+
readonly operationId: string;
|
|
42
|
+
readonly holdRef: string;
|
|
43
|
+
readonly pricingRevision: string;
|
|
44
|
+
readonly ceiling: {
|
|
45
|
+
readonly connectedSeconds: number;
|
|
46
|
+
readonly admittedAudioSeconds: number;
|
|
47
|
+
};
|
|
48
|
+
readonly maxDurationMs: number;
|
|
49
|
+
}
|
|
50
|
+
export interface OpenAiTranscriptionUsageTotals {
|
|
51
|
+
readonly connectedSeconds: number;
|
|
52
|
+
readonly admittedAudioSeconds: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Usage sink shaped for the gateway `recordSpeechUsage` / `settleSpeech`
|
|
56
|
+
* calls the composition layer performs. The adapter only measures seconds;
|
|
57
|
+
* pricing stays pinned at admission.
|
|
58
|
+
*/
|
|
59
|
+
export interface OpenAiTranscriptionUsageSink {
|
|
60
|
+
/**
|
|
61
|
+
* Maps to the L8 `recordSpeechUsage` call: operational evidence on the hold,
|
|
62
|
+
* never a charge. The adapter sends `cumulative` totals under a stable
|
|
63
|
+
* eventId so restarts and retries cannot double-count measured seconds.
|
|
64
|
+
*/
|
|
65
|
+
record(update: {
|
|
66
|
+
readonly eventId: string;
|
|
67
|
+
readonly revision: number;
|
|
68
|
+
readonly mode: 'cumulative' | 'incremental';
|
|
69
|
+
readonly usage: Partial<OpenAiTranscriptionUsageTotals>;
|
|
70
|
+
}): void | Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Maps to the L8 `settleSpeech` call. Usage stays absent unless provider-
|
|
73
|
+
* reported (with a monotonic providerRevision): locally measured seconds
|
|
74
|
+
* are estimates, and a usage covering every priced dimension without a
|
|
75
|
+
* providerRevision is rejected by `settleSpeech` as invalid.
|
|
76
|
+
*/
|
|
77
|
+
settle(request: {
|
|
78
|
+
readonly operationId: string;
|
|
79
|
+
readonly outcome: 'completed' | 'cancelled' | 'failed';
|
|
80
|
+
readonly usage?: OpenAiTranscriptionUsageTotals;
|
|
81
|
+
readonly providerRevision?: number;
|
|
82
|
+
}): void | Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
/** Injectable provider socket. Tests use recorded scripts; never a live call. */
|
|
85
|
+
export interface OpenAiTranscriptionSocket {
|
|
86
|
+
send(message: string): void;
|
|
87
|
+
messages(): AsyncIterable<string>;
|
|
88
|
+
close(): Promise<void>;
|
|
89
|
+
}
|
|
90
|
+
export interface OpenAiTranscriptionConnect {
|
|
91
|
+
(url: string, headers: {
|
|
92
|
+
readonly authorization: string;
|
|
93
|
+
readonly originator: string;
|
|
94
|
+
}): Promise<OpenAiTranscriptionSocket> | OpenAiTranscriptionSocket;
|
|
95
|
+
}
|
|
96
|
+
export interface OpenAiTranscriptionOpenOptions {
|
|
97
|
+
readonly request: SpeechSessionRequest;
|
|
98
|
+
readonly admission: OpenAiTranscriptionAdmission;
|
|
99
|
+
/** Bearer material, used once for the socket handshake and never logged. */
|
|
100
|
+
readonly bearerToken: string;
|
|
101
|
+
readonly connect: OpenAiTranscriptionConnect;
|
|
102
|
+
readonly usage: OpenAiTranscriptionUsageSink;
|
|
103
|
+
readonly originator?: string;
|
|
104
|
+
readonly nowMs?: () => number;
|
|
105
|
+
/** Injectable expiry scheduler (tests advance it manually); defaults to setTimeout. */
|
|
106
|
+
readonly schedule?: (delayMs: number, fn: () => void) => () => void;
|
|
107
|
+
readonly signal?: AbortSignal;
|
|
108
|
+
}
|
|
109
|
+
export declare class TranscriptionSession implements SpeechSession {
|
|
110
|
+
readonly receipt: SpeechSessionReceipt;
|
|
111
|
+
readonly events: AsyncIterable<SpeechEvent>;
|
|
112
|
+
private readonly socket;
|
|
113
|
+
private readonly binding;
|
|
114
|
+
private readonly admission;
|
|
115
|
+
private readonly usage;
|
|
116
|
+
private readonly nowMs?;
|
|
117
|
+
private readonly openedAtMs;
|
|
118
|
+
private readonly items;
|
|
119
|
+
private readonly queue;
|
|
120
|
+
private readonly waiters;
|
|
121
|
+
private sequence;
|
|
122
|
+
private eventId;
|
|
123
|
+
private audioSeconds;
|
|
124
|
+
private settled;
|
|
125
|
+
private outcome;
|
|
126
|
+
private readonly pump;
|
|
127
|
+
private readonly signal?;
|
|
128
|
+
private readonly effectiveMaxMs;
|
|
129
|
+
private abortHandler?;
|
|
130
|
+
private expiryCancel?;
|
|
131
|
+
private inPump;
|
|
132
|
+
private turnAudioStartMs?;
|
|
133
|
+
/** End of the last frame written in the open turn (capture + frame duration). */
|
|
134
|
+
private turnAudioEndMs?;
|
|
135
|
+
private openTurnUtteranceId?;
|
|
136
|
+
private readonly turns;
|
|
137
|
+
private readonly bindings;
|
|
138
|
+
/** Finalized items: late deltas/commits drop silently, a second final errors. */
|
|
139
|
+
private readonly finalizedIds;
|
|
140
|
+
/** Cleared items: every late provider frame drops silently. */
|
|
141
|
+
private readonly clearedIds;
|
|
142
|
+
private committedAudioSeconds;
|
|
143
|
+
private usageRevision;
|
|
144
|
+
constructor(receipt: SpeechSessionReceipt, socket: OpenAiTranscriptionSocket, binding: SpeechBinding, admission: OpenAiTranscriptionAdmission, usage: OpenAiTranscriptionUsageSink, nowMs: (() => number) | undefined, signal: AbortSignal | undefined, schedule: ((delayMs: number, fn: () => void) => () => void) | undefined, maxDurationMs: number);
|
|
145
|
+
private nextId;
|
|
146
|
+
private emit;
|
|
147
|
+
private clock;
|
|
148
|
+
private stream;
|
|
149
|
+
write(frame: SpeechInputFrame): Promise<void>;
|
|
150
|
+
command(command: Parameters<SpeechSession['command']>[0]): Promise<void>;
|
|
151
|
+
close(): Promise<void>;
|
|
152
|
+
private pushError;
|
|
153
|
+
/**
|
|
154
|
+
* Resolve the client turn for a provider item. Committed binds are
|
|
155
|
+
* authoritative; before the `committed` frame arrives the oldest
|
|
156
|
+
* unconfirmed turn is used (peeked, never consumed), falling back to the
|
|
157
|
+
* turn currently being recorded. Sequential client turns make all three agree.
|
|
158
|
+
*/
|
|
159
|
+
private attribute;
|
|
160
|
+
private newItem;
|
|
161
|
+
private onCommitted;
|
|
162
|
+
private onDelta;
|
|
163
|
+
private onCompleted;
|
|
164
|
+
private onFrame;
|
|
165
|
+
private run;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Open an admitted transcription session. The bearer token travels only into
|
|
169
|
+
* the socket handshake; failures never echo it. The `session.update` is sent
|
|
170
|
+
* before any audio; an aborted signal refuses without connecting.
|
|
171
|
+
*/
|
|
172
|
+
export declare const openTranscriptionSession: (config: OpenAiTranscriptionProfileConfig, options: OpenAiTranscriptionOpenOptions) => Promise<TranscriptionSession>;
|
|
173
|
+
//# sourceMappingURL=openai-transcription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-transcription.d.ts","sourceRoot":"","sources":["../../src/speech/openai-transcription.ts"],"names":[],"mappings":"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"}
|