@memberjunction/ai
Advanced tools
| /** | ||
| * The canonical `ModelConfiguration` shape + the pure cascade resolver. | ||
| * | ||
| * `ModelConfiguration` is a JSONType `nvarchar(max)` column that exists at THREE levels of the | ||
| * model catalog, forming an inherit-with-override cascade (the structured generalization of the | ||
| * scalar `SupportsPrefill` / `PrefillFallbackText` cascade those same three entities already carry): | ||
| * | ||
| * ``` | ||
| * MJ: AI Model Types . ModelConfiguration (type-wide default — e.g. every Realtime model) | ||
| * < MJ: AI Models . ModelConfiguration (per-model) | ||
| * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the winner) | ||
| * ``` | ||
| * | ||
| * **Lockstep contract**: this interface is the package-side mirror of | ||
| * `metadata/entities/JSONType-interfaces/IAIModelConfiguration.ts`, which is pushed into | ||
| * `EntityField.JSONTypeDefinition` and drives the CodeGen-generated `ModelConfigurationObject` | ||
| * accessors on the three entities. Keep the two in step when adding a section or property — | ||
| * the same pact `IAgentSettings` follows with `@memberjunction/ai-core-plus`. | ||
| * | ||
| * **Boundary rule** (also documented on the metadata interface): anything the engine filters, | ||
| * sorts, or joins on stays a COLUMN (`PowerRank`, `IsActive`, `Priority`, `Status` — SQL cannot | ||
| * cheaply predicate into this bag); anything a driver consumes at session/call time belongs HERE. | ||
| * New capability knobs go in this bag — do not add a new capability column per knob. | ||
| */ | ||
| import { JSONObject } from './baseRealtime.js'; | ||
| /** | ||
| * MJ-normalized turn-detection mode vocabulary — provider-neutral by design so a shared model | ||
| * catalog is safe on every provider: | ||
| * | ||
| * - `'default'` — let the provider profile decide (byte-for-byte today's behavior). | ||
| * - `'serverVad'` — classic silence-based server VAD. | ||
| * - `'semanticVad'` — the provider's semantic end-of-utterance detection (OpenAI `semantic_vad`). | ||
| * - `'native'` — deliberately open-ended: "this model's smartest documented turn/duplex mode, | ||
| * whatever the profile maps it to." The forward slot for full-duplex reasoning voice models | ||
| * (e.g. Grok Voice Think Fast) — a profile that maps `'native'` ships the mapping once and the | ||
| * catalog opts models in via metadata, no driver release per model. | ||
| * | ||
| * A profile that does NOT support a requested mode logs and falls back to its default — a wrong | ||
| * inherited value degrades safely, it never rejects a session. | ||
| */ | ||
| export type RealtimeTurnDetectionMode = 'default' | 'serverVad' | 'semanticVad' | 'native'; | ||
| /** | ||
| * Normalized turn-detection settings. Every field optional; absent fields contribute nothing. | ||
| * Profiles translate to their native wire fields and ignore what they have no mapping for. | ||
| */ | ||
| export interface RealtimeTurnDetectionSettings { | ||
| /** The normalized mode; absent = `'default'`. */ | ||
| Mode?: RealtimeTurnDetectionMode; | ||
| /** Semantic-VAD aggressiveness (OpenAI `eagerness`); ignored by profiles without a mapping. */ | ||
| Eagerness?: 'low' | 'auto' | 'high'; | ||
| /** Server-VAD activation threshold (0–1); ignored by profiles without a mapping. */ | ||
| Threshold?: number; | ||
| /** Server-VAD trailing-silence duration in ms; ignored by profiles without a mapping. */ | ||
| SilenceDurationMs?: number; | ||
| } | ||
| /** The `Realtime` section of {@link AIModelConfiguration} — knobs the realtime drivers consume. */ | ||
| export interface RealtimeModelConfigurationSection { | ||
| /** | ||
| * Catalog-level turn-detection default for this model. Folded into the session Config bag as | ||
| * the `turnDetection` key BELOW the agent/app config cascade (`realtime.session.turnDetection`) | ||
| * and the runtime override — the catalog supplies the default, agents/apps/callers refine it. | ||
| */ | ||
| TurnDetection?: RealtimeTurnDetectionSettings; | ||
| } | ||
| /** | ||
| * The `LLM` section of {@link AIModelConfiguration}. Reserved — no consumers yet. Candidate | ||
| * contents: per-model effort-level defaults, response-format quirks, tool-calling behavior flags. | ||
| * Existing capability COLUMNS (`SupportsEffortLevel`, `SupportsStreaming`, …) are NOT migrating | ||
| * here — new knobs only (see the boundary rule in the module docstring). | ||
| */ | ||
| export interface LLMModelConfigurationSection { | ||
| /** Open extension point until the first typed knob lands. */ | ||
| [key: string]: unknown; | ||
| } | ||
| /** | ||
| * The per-modality model-configuration bag stored (as JSON) in the `ModelConfiguration` column of | ||
| * `MJ: AI Model Types`, `MJ: AI Models`, and `MJ: AI Model Vendors`. Sections are optional and | ||
| * per-modality so one catalog row can configure everything its model does. | ||
| */ | ||
| export interface AIModelConfiguration { | ||
| /** Text-generation knobs. Reserved. */ | ||
| LLM?: LLMModelConfigurationSection; | ||
| /** Realtime (speech-to-speech) knobs — the first live section. */ | ||
| Realtime?: RealtimeModelConfigurationSection; | ||
| /** Vision knobs. Reserved. */ | ||
| Vision?: JSONObject; | ||
| /** Audio (TTS/STT) knobs. Reserved. */ | ||
| Audio?: JSONObject; | ||
| } | ||
| /** | ||
| * TOLERANTLY parses one `ModelConfiguration` column value. Returns `null` — never throws — for | ||
| * absent, blank, malformed, or non-object payloads, so a bad catalog row contributes nothing to | ||
| * the cascade instead of failing a session (mirrors `ParseRealtimeTypeConfiguration`). | ||
| * | ||
| * @param json The raw column value, or `null`/`undefined`. | ||
| * @returns The parsed configuration, or `null` when the layer contributes nothing. | ||
| */ | ||
| export declare function ParseModelConfiguration(json: string | null | undefined): AIModelConfiguration | null; | ||
| /** | ||
| * Resolves the EFFECTIVE model configuration by deep-merging the catalog layers, base first — | ||
| * type default < model < model-vendor. Merge semantics are identical to the realtime config | ||
| * cascade (`DeepMergeConfigs` in `@memberjunction/ai-agents` — duplicated here because package | ||
| * layering runs the other way): | ||
| * | ||
| * - plain object vs plain object → recursive per-key merge (a vendor row overriding ONE | ||
| * `Realtime.TurnDetection` knob does not wipe the model's other sections); | ||
| * - anything else (arrays, strings, numbers, booleans, `null`) → the later value REPLACES; | ||
| * - `null`/`undefined` LAYERS are skipped entirely; inputs are never mutated. | ||
| * | ||
| * @param layers The catalog layers, base first (type, model, vendor). | ||
| * @returns The merged configuration, or `null` when every layer is absent/empty. | ||
| */ | ||
| export declare function ResolveEffectiveModelConfiguration(...layers: Array<AIModelConfiguration | null | undefined>): AIModelConfiguration | null; | ||
| //# sourceMappingURL=modelConfiguration.d.ts.map |
| {"version":3,"file":"modelConfiguration.d.ts","sourceRoot":"","sources":["../../src/generic/modelConfiguration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,EAAE,UAAU,EAAa,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE3F;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC1C,iDAAiD;IACjD,IAAI,CAAC,EAAE,yBAAyB,CAAC;IACjC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,mGAAmG;AACnG,MAAM,WAAW,iCAAiC;IAC9C;;;;OAIG;IACH,aAAa,CAAC,EAAE,6BAA6B,CAAC;CACjD;AAED;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IACzC,6DAA6D;IAC7D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,uCAAuC;IACvC,GAAG,CAAC,EAAE,4BAA4B,CAAC;IACnC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,iCAAiC,CAAC;IAC7C,8BAA8B;IAC9B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,uCAAuC;IACvC,KAAK,CAAC,EAAE,UAAU,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,oBAAoB,GAAG,IAAI,CAUpG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kCAAkC,CAC9C,GAAG,MAAM,EAAE,KAAK,CAAC,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAC,GAC1D,oBAAoB,GAAG,IAAI,CAS7B"} |
| /** | ||
| * The canonical `ModelConfiguration` shape + the pure cascade resolver. | ||
| * | ||
| * `ModelConfiguration` is a JSONType `nvarchar(max)` column that exists at THREE levels of the | ||
| * model catalog, forming an inherit-with-override cascade (the structured generalization of the | ||
| * scalar `SupportsPrefill` / `PrefillFallbackText` cascade those same three entities already carry): | ||
| * | ||
| * ``` | ||
| * MJ: AI Model Types . ModelConfiguration (type-wide default — e.g. every Realtime model) | ||
| * < MJ: AI Models . ModelConfiguration (per-model) | ||
| * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the winner) | ||
| * ``` | ||
| * | ||
| * **Lockstep contract**: this interface is the package-side mirror of | ||
| * `metadata/entities/JSONType-interfaces/IAIModelConfiguration.ts`, which is pushed into | ||
| * `EntityField.JSONTypeDefinition` and drives the CodeGen-generated `ModelConfigurationObject` | ||
| * accessors on the three entities. Keep the two in step when adding a section or property — | ||
| * the same pact `IAgentSettings` follows with `@memberjunction/ai-core-plus`. | ||
| * | ||
| * **Boundary rule** (also documented on the metadata interface): anything the engine filters, | ||
| * sorts, or joins on stays a COLUMN (`PowerRank`, `IsActive`, `Priority`, `Status` — SQL cannot | ||
| * cheaply predicate into this bag); anything a driver consumes at session/call time belongs HERE. | ||
| * New capability knobs go in this bag — do not add a new capability column per knob. | ||
| */ | ||
| import { IsPlainObject } from '@memberjunction/global'; | ||
| /** | ||
| * TOLERANTLY parses one `ModelConfiguration` column value. Returns `null` — never throws — for | ||
| * absent, blank, malformed, or non-object payloads, so a bad catalog row contributes nothing to | ||
| * the cascade instead of failing a session (mirrors `ParseRealtimeTypeConfiguration`). | ||
| * | ||
| * @param json The raw column value, or `null`/`undefined`. | ||
| * @returns The parsed configuration, or `null` when the layer contributes nothing. | ||
| */ | ||
| export function ParseModelConfiguration(json) { | ||
| if (typeof json !== 'string' || json.trim().length === 0) { | ||
| return null; | ||
| } | ||
| try { | ||
| const parsed = JSON.parse(json); | ||
| return IsPlainObject(parsed) ? parsed : null; | ||
| } | ||
| catch { | ||
| return null; | ||
| } | ||
| } | ||
| /** | ||
| * Resolves the EFFECTIVE model configuration by deep-merging the catalog layers, base first — | ||
| * type default < model < model-vendor. Merge semantics are identical to the realtime config | ||
| * cascade (`DeepMergeConfigs` in `@memberjunction/ai-agents` — duplicated here because package | ||
| * layering runs the other way): | ||
| * | ||
| * - plain object vs plain object → recursive per-key merge (a vendor row overriding ONE | ||
| * `Realtime.TurnDetection` knob does not wipe the model's other sections); | ||
| * - anything else (arrays, strings, numbers, booleans, `null`) → the later value REPLACES; | ||
| * - `null`/`undefined` LAYERS are skipped entirely; inputs are never mutated. | ||
| * | ||
| * @param layers The catalog layers, base first (type, model, vendor). | ||
| * @returns The merged configuration, or `null` when every layer is absent/empty. | ||
| */ | ||
| export function ResolveEffectiveModelConfiguration(...layers) { | ||
| const result = {}; | ||
| for (const layer of layers) { | ||
| if (!IsPlainObject(layer)) { | ||
| continue; | ||
| } | ||
| mergeInto(result, layer); | ||
| } | ||
| return Object.keys(result).length > 0 ? result : null; | ||
| } | ||
| /** Recursive worker for {@link ResolveEffectiveModelConfiguration} — merges `source` into `target`. */ | ||
| function mergeInto(target, source) { | ||
| for (const key of Object.keys(source)) { | ||
| const incoming = source[key]; | ||
| if (incoming === undefined) { | ||
| continue; | ||
| } | ||
| const existing = target[key]; | ||
| if (IsPlainObject(existing) && IsPlainObject(incoming)) { | ||
| mergeInto(existing, incoming); | ||
| } | ||
| else if (IsPlainObject(incoming)) { | ||
| const copy = {}; | ||
| mergeInto(copy, incoming); | ||
| target[key] = copy; | ||
| } | ||
| else if (Array.isArray(incoming)) { | ||
| target[key] = incoming.slice(); | ||
| } | ||
| else { | ||
| target[key] = incoming; | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=modelConfiguration.js.map |
| {"version":3,"file":"modelConfiguration.js","sourceRoot":"","sources":["../../src/generic/modelConfiguration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAyEvD;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAA+B;IACnE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAA+B,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kCAAkC,CAC9C,GAAG,MAAsD;IAEzD,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,SAAS;QACb,CAAC;QACD,SAAS,CAAC,MAAM,EAAE,KAA8B,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,MAA+B,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC;AAED,uGAAuG;AACvG,SAAS,SAAS,CAAC,MAAkB,EAAE,MAAkB;IACrD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,GAAe,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAiB,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QAC3B,CAAC;IACL,CAAC;AACL,CAAC"} |
| /** | ||
| * Realtime `response.done` usage extraction — the one place that knows WHERE each OpenAI-protocol | ||
| * provider puts its token counts. | ||
| * | ||
| * Deliberately dependency-free and in its own module (the same reasoning as | ||
| * `transcriptContinuation.ts`): both the server-side driver and the browser realtime client need | ||
| * it, and their unit tests mock `@memberjunction/ai` wholesale. Keeping this free of imports lets | ||
| * those tests pull in the REAL implementation instead of restating the parsing rule in a stub — | ||
| * which is precisely the failure mode that let this bug ship in the first place. | ||
| */ | ||
| /** | ||
| * The raw usage payload carried by an OpenAI-protocol `response.done` frame. Per-response DELTAS | ||
| * on every provider that sends it. Indexed so per-modality detail blocks survive untyped. | ||
| */ | ||
| export interface RealtimeResponseDoneUsage { | ||
| input_tokens?: number; | ||
| output_tokens?: number; | ||
| [detail: string]: unknown; | ||
| } | ||
| /** | ||
| * A `response.done` frame, declaring BOTH slots the OpenAI-compatible providers use for usage. | ||
| * See {@link ResolveResponseDoneUsage}. | ||
| */ | ||
| export interface RealtimeResponseDoneFrame { | ||
| /** | ||
| * OpenAI populates usage here. xAI sends this present but EMPTY. | ||
| * | ||
| * Typed as `unknown` deliberately: this is untrusted wire data, and each provider SDK declares | ||
| * its own concrete usage interface (without the index signature {@link RealtimeResponseDoneUsage} | ||
| * carries). Accepting `unknown` lets every SDK's frame type be passed in directly — no cast at | ||
| * the call site — while {@link ResolveResponseDoneUsage} does the narrowing centrally. | ||
| */ | ||
| response?: { | ||
| usage?: unknown; | ||
| } | null; | ||
| /** xAI populates usage here, as a sibling of `response`. OpenAI omits it. */ | ||
| usage?: unknown; | ||
| } | ||
| /** | ||
| * Picks the usage payload out of an OpenAI-protocol `response.done` frame, tolerating the two | ||
| * layouts the compatible providers actually send on the wire: | ||
| * | ||
| * - **OpenAI** (`gpt-realtime`): populated `response.usage`; no top-level `usage`. | ||
| * - **xAI** (Grok Voice): populated TOP-LEVEL `usage`; `response.usage` present but `{}`. | ||
| * | ||
| * Nested wins whenever it carries real numbers, so OpenAI's behavior is unchanged and xAI is | ||
| * picked up as a fallback. If xAI later populates the nested slot, this keeps working untouched — | ||
| * hence prefer-and-fall-back rather than switching outright. | ||
| * | ||
| * **The empty-object check is the entire point.** Callers used to read only `response.usage` and | ||
| * guard with `if (!usage) return`. For xAI that value is `{}` — which is TRUTHY — so the guard | ||
| * never fired: a usage event was emitted with `input_tokens`/`output_tokens` `undefined`, those | ||
| * clamped to `0` downstream, an all-zero delta was dropped, and the session's tokens were never | ||
| * recorded at all (NULL on `AIPromptRun`) instead of failing loudly. Shared here so the | ||
| * client-direct and server-bridged paths cannot drift apart on it again. | ||
| * | ||
| * @param event The `response.done` frame. | ||
| * @returns The payload carrying token counts, or `undefined` when neither slot has any. | ||
| */ | ||
| export declare function ResolveResponseDoneUsage(event: RealtimeResponseDoneFrame): RealtimeResponseDoneUsage | undefined; | ||
| //# sourceMappingURL=realtimeUsage.d.ts.map |
| {"version":3,"file":"realtimeUsage.d.ts","sourceRoot":"","sources":["../../src/generic/realtimeUsage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACtC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAWD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,yBAAyB,GAAG,yBAAyB,GAAG,SAAS,CAKhH"} |
| /** | ||
| * Realtime `response.done` usage extraction — the one place that knows WHERE each OpenAI-protocol | ||
| * provider puts its token counts. | ||
| * | ||
| * Deliberately dependency-free and in its own module (the same reasoning as | ||
| * `transcriptContinuation.ts`): both the server-side driver and the browser realtime client need | ||
| * it, and their unit tests mock `@memberjunction/ai` wholesale. Keeping this free of imports lets | ||
| * those tests pull in the REAL implementation instead of restating the parsing rule in a stub — | ||
| * which is precisely the failure mode that let this bug ship in the first place. | ||
| */ | ||
| /** True when a usage payload actually carries token counts (not absent, not an empty `{}`). */ | ||
| function usageHasTokenCounts(usage) { | ||
| if (usage === null || typeof usage !== 'object') { | ||
| return false; | ||
| } | ||
| const candidate = usage; | ||
| return typeof candidate.input_tokens === 'number' || typeof candidate.output_tokens === 'number'; | ||
| } | ||
| /** | ||
| * Picks the usage payload out of an OpenAI-protocol `response.done` frame, tolerating the two | ||
| * layouts the compatible providers actually send on the wire: | ||
| * | ||
| * - **OpenAI** (`gpt-realtime`): populated `response.usage`; no top-level `usage`. | ||
| * - **xAI** (Grok Voice): populated TOP-LEVEL `usage`; `response.usage` present but `{}`. | ||
| * | ||
| * Nested wins whenever it carries real numbers, so OpenAI's behavior is unchanged and xAI is | ||
| * picked up as a fallback. If xAI later populates the nested slot, this keeps working untouched — | ||
| * hence prefer-and-fall-back rather than switching outright. | ||
| * | ||
| * **The empty-object check is the entire point.** Callers used to read only `response.usage` and | ||
| * guard with `if (!usage) return`. For xAI that value is `{}` — which is TRUTHY — so the guard | ||
| * never fired: a usage event was emitted with `input_tokens`/`output_tokens` `undefined`, those | ||
| * clamped to `0` downstream, an all-zero delta was dropped, and the session's tokens were never | ||
| * recorded at all (NULL on `AIPromptRun`) instead of failing loudly. Shared here so the | ||
| * client-direct and server-bridged paths cannot drift apart on it again. | ||
| * | ||
| * @param event The `response.done` frame. | ||
| * @returns The payload carrying token counts, or `undefined` when neither slot has any. | ||
| */ | ||
| export function ResolveResponseDoneUsage(event) { | ||
| if (usageHasTokenCounts(event.response?.usage)) { | ||
| return event.response?.usage; | ||
| } | ||
| return usageHasTokenCounts(event.usage) ? event.usage : undefined; | ||
| } | ||
| //# sourceMappingURL=realtimeUsage.js.map |
| {"version":3,"file":"realtimeUsage.js","sourceRoot":"","sources":["../../src/generic/realtimeUsage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA8BH,+FAA+F;AAC/F,SAAS,mBAAmB,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,SAAS,GAAG,KAA4D,CAAC;IAC/E,OAAO,OAAO,SAAS,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,aAAa,KAAK,QAAQ,CAAC;AACrG,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAgC;IACrE,IAAI,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC"} |
@@ -36,7 +36,52 @@ import { BaseModel, BaseParams } from "./baseModel.js"; | ||
| /** | ||
| * Base 64 encoded audio file to convert to text | ||
| * Base 64 encoded audio file to convert to text. | ||
| * | ||
| * Optional only in the sense that `audioData` may be supplied instead; exactly one of | ||
| * the two is required. | ||
| */ | ||
| audioFile: string; | ||
| /** | ||
| * The raw audio bytes, as an alternative to the base 64 `audioFile`. | ||
| * | ||
| * Preferred whenever the caller already holds a Buffer: base 64 encoding an hour of | ||
| * audio costs a third more memory than the bytes themselves, for a string the | ||
| * implementation immediately decodes again. | ||
| */ | ||
| audioData?: Buffer; | ||
| /** | ||
| * Original file name, e.g. `episode-104.mp3`. Some providers infer the container | ||
| * format from the extension, so supplying it when known improves reliability. | ||
| */ | ||
| fileName?: string; | ||
| /** | ||
| * ISO 639-1 language code of the spoken audio. Supplying it typically improves both | ||
| * accuracy and latency versus letting the model detect the language. | ||
| */ | ||
| language?: string; | ||
| /** | ||
| * Optional text to steer style, spelling or vocabulary — e.g. proper nouns the model | ||
| * would otherwise mis-transcribe. Should be in the same language as the audio. | ||
| */ | ||
| prompt?: string; | ||
| } | ||
| /** | ||
| * Splits an audio buffer into pieces small enough for a provider that caps upload size. | ||
| * | ||
| * This is a port rather than a bundled implementation on purpose. Splitting audio without | ||
| * re-encoding it means a media tool — in practice an ffmpeg binary — and a ~70MB | ||
| * platform-specific binary is not a dependency an AI provider package should force on | ||
| * every consumer, most of which transcribe short clips and never need it. Applications | ||
| * that do transcribe long audio already have such a tool and inject it here. | ||
| */ | ||
| export interface AudioSplitter { | ||
| /** | ||
| * Split `audio` into consecutive pieces, each no larger than `maxBytes`, ordered so | ||
| * that concatenating their transcripts reproduces the whole. | ||
| * | ||
| * Implementations should split on time, not byte offsets: cutting a compressed stream | ||
| * mid-frame produces pieces the provider cannot decode. | ||
| */ | ||
| Split(audio: Buffer, maxBytes: number): Promise<Buffer[]>; | ||
| } | ||
| /** | ||
| * Interface defining voice configuration settings for text-to-speech generation | ||
@@ -43,0 +88,0 @@ */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"baseAudio.d.ts","sourceRoot":"","sources":["../../src/generic/baseAudio.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"baseAudio.d.ts","sourceRoot":"","sources":["../../src/generic/baseAudio.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"baseAudio.js","sourceRoot":"","sources":["../../src/generic/baseAudio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;GAIG;AACH,MAAM,OAAgB,kBAAmB,SAAQ,SAAS;CAOzD;AAED;;GAEG;AACH,MAAM,OAAO,YAAY;CAexB;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;CAKjD;AAqDD;;GAEG;AACH,MAAM,OAAO,SAAS;CAwCrB;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;CAMvB;AAED,MAAM,OAAO,UAAU;CAmCtB;AAED,MAAM,OAAO,aAAa;CASzB;AAED;;GAEG;AACH,MAAM,OAAO,wBAAwB;CAOpC"} | ||
| {"version":3,"file":"baseAudio.js","sourceRoot":"","sources":["../../src/generic/baseAudio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;GAIG;AACH,MAAM,OAAgB,kBAAmB,SAAQ,SAAS;CAOzD;AAED;;GAEG;AACH,MAAM,OAAO,YAAY;CAexB;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;CAmCjD;AAyED;;GAEG;AACH,MAAM,OAAO,SAAS;CAwCrB;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;CAMvB;AAED,MAAM,OAAO,UAAU;CAmCtB;AAED,MAAM,OAAO,aAAa;CASzB;AAED;;GAEG;AACH,MAAM,OAAO,wBAAwB;CAOpC"} |
@@ -170,2 +170,11 @@ import { BaseModel } from "./baseModel.js"; | ||
| * SDK/wire — a co-agent config carrying them must be safe on every provider. | ||
| * | ||
| * **Registering a key here is what makes it safe; forgetting to is a wire leak.** A co-agent | ||
| * config is authored WITHOUT knowing which vendor will run, so an agnostic key is filed onto | ||
| * whichever driver resolves — including every driver that does not consume it. Unregistered, it | ||
| * survives each driver's residual-bag spread and reaches the provider as an unknown field; on the | ||
| * OpenAI-protocol endpoints a malformed session object is rejected WHOLESALE, taking the prompt | ||
| * and tools with it. So any key added to the neutral vocabulary belongs in this list at the same | ||
| * time, and the OpenAI family's own scrub in `ExtractRealtimeFeatures` must delete it too — that | ||
| * function enumerates its deletes explicitly and does NOT read this list. | ||
| */ | ||
@@ -172,0 +181,0 @@ export declare const REALTIME_SHARED_CONFIG_KEYS: readonly string[]; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"baseRealtime.d.ts","sourceRoot":"","sources":["../../src/generic/baseRealtime.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"baseRealtime.d.ts","sourceRoot":"","sources":["../../src/generic/baseRealtime.ts"],"names":[],"mappings":"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"} |
@@ -158,2 +158,11 @@ import { BaseModel } from "./baseModel.js"; | ||
| * SDK/wire — a co-agent config carrying them must be safe on every provider. | ||
| * | ||
| * **Registering a key here is what makes it safe; forgetting to is a wire leak.** A co-agent | ||
| * config is authored WITHOUT knowing which vendor will run, so an agnostic key is filed onto | ||
| * whichever driver resolves — including every driver that does not consume it. Unregistered, it | ||
| * survives each driver's residual-bag spread and reaches the provider as an unknown field; on the | ||
| * OpenAI-protocol endpoints a malformed session object is rejected WHOLESALE, taking the prompt | ||
| * and tools with it. So any key added to the neutral vocabulary belongs in this list at the same | ||
| * time, and the OpenAI family's own scrub in `ExtractRealtimeFeatures` must delete it too — that | ||
| * function enumerates its deletes explicitly and does NOT read this list. | ||
| */ | ||
@@ -167,3 +176,5 @@ export const REALTIME_SHARED_CONFIG_KEYS = [ | ||
| 'voice', | ||
| 'firstMessage', | ||
| 'disableAutoResponse', | ||
| 'turnDetection', | ||
| 'endpoint', | ||
@@ -170,0 +181,0 @@ 'sampleRate', |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"baseRealtime.js","sourceRoot":"","sources":["../../src/generic/baseRealtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC3C,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3C,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED,MAAM,OAAgB,iBAAkB,SAAQ,SAAS;IAcrD;;;;;;;;;;;OAWG;IACH,IAAW,oBAAoB;QAC3B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACI,KAAK,CAAC,mBAAmB,CAAC,OAA8B;QAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,CAAC,CAAC;IACjG,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAW,aAAa;QACpB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAW,eAAe;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAsB;IAC1D,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,UAAU;IACV,yBAAyB;IACzB,OAAO;IACP,qBAAqB;IACrB,UAAU;IACV,YAAY;IACZ,cAAc;CACR,CAAC"} | ||
| {"version":3,"file":"baseRealtime.js","sourceRoot":"","sources":["../../src/generic/baseRealtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC3C,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3C,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED,MAAM,OAAgB,iBAAkB,SAAQ,SAAS;IAcrD;;;;;;;;;;;OAWG;IACH,IAAW,oBAAoB;QAC3B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACI,KAAK,CAAC,mBAAmB,CAAC,OAA8B;QAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,CAAC,CAAC;IACjG,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAW,aAAa;QACpB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAW,eAAe;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAsB;IAC1D,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,UAAU;IACV,yBAAyB;IACzB,OAAO;IACP,cAAc;IACd,qBAAqB;IACrB,eAAe;IACf,UAAU;IACV,YAAY;IACZ,cAAc;CACR,CAAC"} |
+2
-0
@@ -15,2 +15,4 @@ export * from './generic/baseModel.js'; | ||
| export * from './generic/baseRealtime.js'; | ||
| export * from './generic/realtimeUsage.js'; | ||
| export * from './generic/modelConfiguration.js'; | ||
| export * from './generic/transcriptContinuation.js'; | ||
@@ -17,0 +19,0 @@ export * from './generic/realtimeProxyRegistry.js'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"} |
+2
-0
@@ -15,2 +15,4 @@ export * from './generic/baseModel.js'; | ||
| export * from './generic/baseRealtime.js'; | ||
| export * from './generic/realtimeUsage.js'; | ||
| export * from './generic/modelConfiguration.js'; | ||
| export * from './generic/transcriptContinuation.js'; | ||
@@ -17,0 +19,0 @@ export * from './generic/realtimeProxyRegistry.js'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"} |
+2
-2
| { | ||
| "name": "@memberjunction/ai", | ||
| "type": "module", | ||
| "version": "6.1.0-edge.1", | ||
| "version": "6.1.0-edge.2", | ||
| "description": "MemberJunction: AI - core components for abstracting LLMs and other AI model types that are usable anywhere without ANY other MJ dependencies past @memberjunction/global which itself has zero additional dependencies.", | ||
@@ -14,3 +14,3 @@ "main": "dist/index.js", | ||
| "dependencies": { | ||
| "@memberjunction/global": "6.1.0-edge.1", | ||
| "@memberjunction/global": "6.1.0-edge.2", | ||
| "dotenv": "^17.2.4", | ||
@@ -17,0 +17,0 @@ "rxjs": "^7.8.2" |
370031
7.2%95
9.2%5970
6.8%+ Added
- Removed