New:Socket for Asana Is Now Available.Learn more
Get Started

@memberjunction/ai

Package Overview
Dependencies
Maintainers
11
Versions
455
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@memberjunction/ai - npm Package Compare versions

Comparing version
6.1.0-edge.1
to
6.1.0-edge.2
+114
dist/generic/modelConfiguration.d.ts
/**
* 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"}
+46
-1

@@ -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

@@ -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":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;GAIG;AACH,8BAAsB,kBAAmB,SAAQ,SAAS;aACtC,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;aAC/D,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;aAC/D,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;aACjC,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;aAClC,6BAA6B,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;aACpE,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAC3D;AAED;;GAEG;AACH,qBAAa,YAAY;IACrB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,kBAAmB,SAAQ,UAAU;IAC9C;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC1B;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,gGAAgG;IAChG,SAAS,EAAE,MAAM,CAAC;IAClB,0GAA0G;IAC1G,gBAAgB,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IACjD,gFAAgF;IAChF,iCAAiC,CAAC,EAAE,GAAG,EAAE,CAAC;IAC1C,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,SAAS;IAClB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,WAAW;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,UAAU;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,uBAAuB,EAAE,OAAO,CAAA;IAChC;;OAEG;IACH,aAAa,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAA;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;CAC9B;AAED,qBAAa,aAAa;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC7B"}

@@ -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"}

@@ -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"}

@@ -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"}
{
"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"