Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@futdevpro/fsm-dynamo

Package Overview
Dependencies
Maintainers
3
Versions
303
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@futdevpro/fsm-dynamo - npm Package Compare versions

Comparing version
1.15.16
to
1.15.17
+128
.dynamo/pipeline.cicd.config.json
{
"name": "Dynamo-FSM CI/CD Pipeline",
"outputDir": "./logs/cicd-pipeline",
"timing": {
"stepTimeout": "10m",
"teeMaxRuntime": "10m",
"stepCooldown": "1s"
},
"log": {
"runtimeMaxBytes": 5242880,
"trimCheckEveryN": 1000
},
"versionBump": {
"enabled": false
},
"report": {
"fileName": "cicd-report.json",
"includeLogTail": true,
"logTailLines": 10000,
"includeStepLogs": false
},
"steps": [
{
"label": "discord-start",
"command": "dc ci-dn-s '{\"appName\":\"Dynamo-FSM\",\"appEmoji\":\"🧱\",\"commitMessage\":\"$COMMIT_MESSAGE\",\"branchName\":\"$GITHUB_REF_NAME\",\"author\":\"$GITHUB_ACTOR\",\"runNumber\":\"$GITHUB_RUN_NUMBER\",\"runId\":\"$GITHUB_RUN_ID\",\"repository\":\"$GITHUB_REPOSITORY\",\"eventName\":\"$GITHUB_EVENT_NAME\",\"eventDateTime\":\"$EVENT_DATETIME\"}'",
"fatal": false,
"discord": {
"hide": true
},
"condition": {
"envSet": [
"DISCORD_WEBHOOK_ID"
]
}
},
{
"label": "pre-flight",
"type": "pre-flight-check",
"fatal": true,
"discord": {
"emoji": "🔐",
"name": "Pre-flight Check"
},
"settings": {
"requiredEnvVars": [
"NPM_TOKEN"
]
}
},
{
"label": "install",
"command": "pnpm i",
"fatal": true,
"discord": {
"hide": true
}
},
{
"label": "build",
"command": "npx tsc",
"fatal": true,
"discord": {
"emoji": "🏗️",
"name": "Build"
}
},
{
"label": "test",
"command": "npx jasmine",
"fatal": true,
"discord": {
"emoji": "🧪",
"name": "Tests"
}
},
{
"label": "npm-publish",
"type": "npm-publish",
"fatal": false,
"discord": {
"emoji": "📦",
"name": "NPM Publish"
},
"condition": {
"branchMatch": [
"master"
]
},
"settings": {
"directory": ".",
"skipIfPublished": true,
"retryAttempts": 3,
"retryDelaySeconds": 30
}
},
{
"label": "pipeline-report",
"command": "fdp pipeline-report --report ./logs/cicd-pipeline/cicd-report.json --overseer-url $OVERSEER_URL --overseer-secret $OVERSEER_SECRET_KEY --branch $GITHUB_REF_NAME",
"fatal": false,
"always": true,
"discord": {
"emoji": "📊",
"name": "Build Report"
},
"condition": {
"envSet": [
"OVERSEER_URL"
]
}
},
{
"label": "discord-result",
"command": "fdp pipeline-notify --report ./logs/cicd-pipeline/cicd-report.json --config ./pipeline.cicd.config.json --app-name Dynamo-FSM --app-emoji 🧱 --webhook-id $DISCORD_WEBHOOK_ID --webhook-token $DISCORD_WEBHOOK_TOKEN --overseer-url $OVERSEER_DASHBOARD_URL",
"fatal": false,
"retryOnFail": 2,
"retryDelaySec": 5,
"always": true,
"discord": {
"hide": true
},
"condition": {
"envSet": [
"DISCORD_WEBHOOK_ID"
]
}
}
]
}
import { DyFM_AI_ModelInfo } from '../_models/ai-model-info.interface';
/**
* Lookups over a per-provider model registry (`DyFM_OAI_Models`, `DyFM_AAI_Models`, …).
*
* The registry array is passed IN — this keeps the agnostic `./ai` core free of
* any provider-submodule dependency (the execution-layer service supplies its own
* provider's registry). The lookup is by exact API model `id`.
*/
export declare class DyFM_AI_ModelRegistry_Util {
/**
* A modell-descriptor megkeresese id alapjan a megadott registry-ben.
* @param models - a provider registry tomb (pl. DyFM_OAI_Models)
* @param id - pontos API modell-azonosito (pl. 'gpt-5.5')
*/
static findModelInfo(models: DyFM_AI_ModelInfo[], id: string): DyFM_AI_ModelInfo | undefined;
/**
* Tamogatja-e a modell a function calling-ot (tool use)?
* Ismeretlen id eseten `false` (honesty — soha ne feltetelezzunk tool-kepesseget).
* @param models - a provider registry tomb
* @param id - pontos API modell-azonosito
*/
static modelSupportsTools(models: DyFM_AI_ModelInfo[], id: string): boolean;
}
//# sourceMappingURL=ai-model-registry.util.d.ts.map
{"version":3,"file":"ai-model-registry.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_collections/ai-model-registry.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE;;;;;;GAMG;AACH,qBAAa,0BAA0B;IAErC;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI5F;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;CAG5E"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DyFM_AI_ModelRegistry_Util = void 0;
/**
* Lookups over a per-provider model registry (`DyFM_OAI_Models`, `DyFM_AAI_Models`, …).
*
* The registry array is passed IN — this keeps the agnostic `./ai` core free of
* any provider-submodule dependency (the execution-layer service supplies its own
* provider's registry). The lookup is by exact API model `id`.
*/
class DyFM_AI_ModelRegistry_Util {
/**
* A modell-descriptor megkeresese id alapjan a megadott registry-ben.
* @param models - a provider registry tomb (pl. DyFM_OAI_Models)
* @param id - pontos API modell-azonosito (pl. 'gpt-5.5')
*/
static findModelInfo(models, id) {
return models.find((model) => model.id === id);
}
/**
* Tamogatja-e a modell a function calling-ot (tool use)?
* Ismeretlen id eseten `false` (honesty — soha ne feltetelezzunk tool-kepesseget).
* @param models - a provider registry tomb
* @param id - pontos API modell-azonosito
*/
static modelSupportsTools(models, id) {
return DyFM_AI_ModelRegistry_Util.findModelInfo(models, id)?.capabilities?.functionCalling ?? false;
}
}
exports.DyFM_AI_ModelRegistry_Util = DyFM_AI_ModelRegistry_Util;
//# sourceMappingURL=ai-model-registry.util.js.map
{"version":3,"file":"ai-model-registry.util.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_collections/ai-model-registry.util.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,MAAa,0BAA0B;IAErC;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,MAA2B,EAAE,EAAU;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAA2B,EAAE,EAAU;QAC/D,OAAO,0BAA0B,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,IAAI,KAAK,CAAC;IACtG,CAAC;CACF;AApBD,gEAoBC"}
/**
* Per-model capability flags.
*
* Where {@link DyFM_AI_ProviderCapabilities} describes what a PROVIDER can do
* in aggregate, this describes what a single concrete MODEL supports. This is
* the honest source of truth for feature-gating: e.g. an embedding model has
* functionCalling=false, a reasoning chat model has functionCalling=true, a
* local generic model may have functionCalling decided at runtime.
*/
export interface DyFM_AI_ModelCapabilities {
/** Native function calling / tool use. The driver for the tool-calling feature. */
functionCalling: boolean;
/** Image input (vision). */
vision: boolean;
/** Streaming responses. */
streaming: boolean;
/** Structured output / JSON mode (OpenAI structured outputs, Gemini responseSchema, etc.). */
jsonMode: boolean;
/** Audio input (speech-to-text / audio understanding). */
audioInput: boolean;
/** Audio output (text-to-speech / speech generation). */
audioOutput: boolean;
/** Image generation (the model produces images). */
imageGeneration: boolean;
/** Embedding generation (vector output). */
embeddings: boolean;
}
//# sourceMappingURL=ai-model-capabilities.interface.d.ts.map
{"version":3,"file":"ai-model-capabilities.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-model-capabilities.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAAyB;IACxC,mFAAmF;IACnF,eAAe,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,2BAA2B;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,8FAA8F;IAC9F,QAAQ,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,UAAU,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,WAAW,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,eAAe,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,UAAU,EAAE,OAAO,CAAC;CACrB"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=ai-model-capabilities.interface.js.map
{"version":3,"file":"ai-model-capabilities.interface.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-model-capabilities.interface.ts"],"names":[],"mappings":""}
import { DyFM_AI_Provider } from '../_enums/ai-provider.enum';
import { DyFM_AI_ModelType } from '../_enums/ai-model-type.enum';
import { DyFM_AI_ModelCapabilities } from './ai-model-capabilities.interface';
import { DyFM_AI_ModelSettingsSchema } from './ai-model-settings-schema.interface';
/**
* Lifecycle status of a model in the provider's catalogue.
*
* `ga` — generally available, recommended for new work.
* `preview` — available but pre-GA (API/behaviour may change).
* `deprecated` — still callable but on a sunset path; prefer {@link DyFM_AI_ModelInfo.successorId}.
*/
export type DyFM_AI_ModelStatus = 'ga' | 'preview' | 'deprecated';
/**
* Single-model descriptor for the provider model registry.
*
* The provider registries (`DyFM_OAI_Models`, `DyFM_AAI_Models`, …) are arrays
* of these — an SDK-free, data-only source of truth for which models exist and
* what each can do. The bare model enums (`DyFM_OAI_Model`, …) remain the typed
* id keys; a registry entry's `id` references one of those values.
*
* Note: model line-ups churn fast (see the 2026-06 research) — keep the registry
* current and rely on `status`/`successorId` rather than silently breaking on a
* retired id.
*/
export interface DyFM_AI_ModelInfo {
/** Exact API model string (e.g. 'gpt-5.5', 'claude-opus-4-8', 'gemini-3.5-flash'). */
id: string;
/** The provider that serves this model. */
provider: DyFM_AI_Provider;
/** The kind of model (chat / embedding / image / audio). */
modelType: DyFM_AI_ModelType;
/** What this specific model can DO (feature gates). */
capabilities: DyFM_AI_ModelCapabilities;
/**
* RESERVED (FR-048) — which tuning PARAMETERS this model accepts/rejects.
*
* Sibling of {@link capabilities}. NOT populated by FR-047 and NOT yet
* consumed by any reconciler — reserved space for the future per-model
* agnostic settings system. Each model accepts a different settings surface
* (e.g. Opus 4.7+ rejects temperature/topP/topK; reasoning models add
* reasoningEffort), and that knowledge must be curated continuously like the
* model registry itself.
*
* See: `__agent/feature-requests/FR-048-per-model-agnostic-settings.md`
*/
settingsSchema?: DyFM_AI_ModelSettingsSchema;
/** Input context window in tokens, if applicable. */
contextWindow?: number;
/** Maximum output tokens, if applicable. */
maxOutputTokens?: number;
/** Lifecycle status; defaults to `ga` when omitted. */
status?: DyFM_AI_ModelStatus;
/** When `deprecated`/sunsetting, the recommended replacement model id. */
successorId?: string;
/** When `deprecated`, the earliest known shutdown date (ISO yyyy-mm-dd). */
sunsetDate?: string;
/** Human-readable name for UI (e.g. 'GPT-5.5', 'Claude Opus 4.8'). */
displayName?: string;
/** Provider-specific tier label (e.g. 'flagship', 'mini', 'Opus', 'Sonnet', 'Haiku'). */
tier?: string;
}
//# sourceMappingURL=ai-model-info.interface.d.ts.map
{"version":3,"file":"ai-model-info.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-model-info.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAAC;AAElE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,4DAA4D;IAC5D,SAAS,EAAE,iBAAiB,CAAC;IAC7B,uDAAuD;IACvD,YAAY,EAAE,yBAAyB,CAAC;IACxC;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,2BAA2B,CAAC;IAC7C,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=ai-model-info.interface.js.map
{"version":3,"file":"ai-model-info.interface.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-model-info.interface.ts"],"names":[],"mappings":""}
/**
* RESERVED — per-model settings schema (FR-048; NOT implemented by FR-047).
*
* Sibling of {@link DyFM_AI_ModelCapabilities}: capabilities describe what a
* model can DO; this describes which tuning PARAMETERS it accepts, their
* bounds, and which it REJECTS. A flat {@link DyFM_AI_CallSettings} bag cannot
* express this, yet sending an unsupported param can hard-fail a call (e.g.
* Anthropic Opus 4.7+ rejects `temperature`/`top_p`/`top_k` with HTTP 400).
*
* This type reserves the architectural space and documents intent. The
* registry consts do NOT populate `settingsSchema` yet, and no reconciler
* consumes it yet — both are FR-048 work. The exact shape may evolve when
* FR-048 is built; treat this as a forward placeholder, not a frozen contract.
*
* See: `__agent/feature-requests/FR-048-per-model-agnostic-settings.md`
* `documentations/guidelines/development/ai-per-model-settings.md`
*/
export interface DyFM_AI_ModelSettingsSchema {
/** Agnostic setting keys this model ACCEPTS (e.g. 'temperature','topP','maxTokens','reasoningEffort'). */
supported?: string[];
/**
* Agnostic setting keys this model REJECTS — sending them errors.
* Example: Opus 4.7+ → ['temperature','topP','topK'] (HTTP 400 on non-default).
* The future reconciler drops these (debug-log, never silently).
*/
unsupported?: string[];
/** Per-key value constraints (range / enum / default). */
constraints?: Record<string, DyFM_AI_SettingConstraint>;
/**
* Provider/model-specific knobs NOT present on the agnostic CallSettings
* (e.g. OpenAI 'reasoningEffort', Gemini 'thinkingConfig'). The provider
* translator maps these to the native param.
*/
extraParams?: string[];
}
/**
* RESERVED (FR-048) — value constraint for a single tuning parameter.
* Forward placeholder; shape may evolve when FR-048 is built.
*/
export interface DyFM_AI_SettingConstraint {
/** Minimum numeric value (inclusive), if applicable. */
min?: number;
/** Maximum numeric value (inclusive), if applicable. */
max?: number;
/** Default value the provider applies when omitted. */
default?: unknown;
/** Allowed discrete values (enum-like params, e.g. reasoningEffort). */
allowed?: unknown[];
/** Free-text note (Hunglish ok) — e.g. provider quirk, version gate. */
note?: string;
}
//# sourceMappingURL=ai-model-settings-schema.interface.d.ts.map
{"version":3,"file":"ai-model-settings-schema.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-model-settings-schema.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0GAA0G;IAC1G,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACxD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=ai-model-settings-schema.interface.js.map
{"version":3,"file":"ai-model-settings-schema.interface.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-model-settings-schema.interface.ts"],"names":[],"mappings":""}
/**
* A normalized tool invocation requested by the model.
*
* Each provider's native shape is normalized into this at the translator boundary:
* - OpenAI: message.tool_calls[] → { id, name, arguments: JSON.parse(function.arguments) }
* - Anthropic: content[] { type:'tool_use', id, name, input } → { id, name, arguments: input }
* - Gemini: parts[].functionCall { id, name, args } → { id, name, arguments: args }
*
* `arguments` is ALWAYS a parsed object (OpenAI's JSON string is parsed at the boundary).
*/
export interface DyFM_AI_ToolCall {
/** Provider call id — echoed back when returning the result. */
id: string;
/** The invoked tool's name. */
name: string;
/** Parsed arguments object. */
arguments: Record<string, unknown>;
}
//# sourceMappingURL=ai-tool-call.interface.d.ts.map
{"version":3,"file":"ai-tool-call.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-tool-call.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=ai-tool-call.interface.js.map
{"version":3,"file":"ai-tool-call.interface.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-tool-call.interface.ts"],"names":[],"mappings":""}
/**
* Handler for a single function-calling tool — receives the parsed arguments
* (JSON already parsed) and returns the tool result as a string (which is fed
* back to the model). Generalized from the proven legacy `FDPNTS_GPT_ToolHandler`.
*/
export type DyFM_AI_ToolHandler = (args: Record<string, unknown>) => Promise<string> | string;
/**
* Tool-name → handler registration for the `requestWithTools` agent-loop.
*/
export type DyFM_AI_ToolHandlers = Record<string, DyFM_AI_ToolHandler>;
//# sourceMappingURL=ai-tool-handler.type.d.ts.map
{"version":3,"file":"ai-tool-handler.type.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-tool-handler.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=ai-tool-handler.type.js.map
{"version":3,"file":"ai-tool-handler.type.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-tool-handler.type.ts"],"names":[],"mappings":""}
/**
* The result of executing a tool, fed back to the model.
*
* Translated per provider:
* - OpenAI: { role:'tool', tool_call_id: toolCallId, content }
* - Anthropic: content block { type:'tool_result', tool_use_id: toolCallId, content, is_error: isError }
* - Gemini: part { functionResponse: { id: toolCallId, name, response: { result: content } } }
*/
export interface DyFM_AI_ToolResult {
/** Must echo the originating {@link DyFM_AI_ToolCall.id}. */
toolCallId: string;
/** The tool's output (or an error message — see {@link isError}). */
content: string;
/** True when the tool failed; the model is told so it can correct. */
isError?: boolean;
}
//# sourceMappingURL=ai-tool-result.interface.d.ts.map
{"version":3,"file":"ai-tool-result.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-tool-result.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=ai-tool-result.interface.js.map
{"version":3,"file":"ai-tool-result.interface.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-tool-result.interface.ts"],"names":[],"mappings":""}
/**
* Provider-neutral tool (function) definition for native function calling.
*
* One agnostic shape, translated per provider by the execution layer:
* - OpenAI-wire: → { type:'function', function:{ name, description, parameters } }
* - Anthropic: → { name, description, input_schema: parameters }
* - Gemini: → tools:[{ functionDeclarations:[{ name, description, parameters }] }]
*/
export interface DyFM_AI_Tool {
/** Function name. No spaces / special chars (Gemini constraint). */
name: string;
/** What the tool does — the model uses this to decide when to call it. */
description: string;
/** JSON Schema (object schema) describing the arguments. Translated to each provider's param shape. */
parameters: object;
}
//# sourceMappingURL=ai-tool.interface.d.ts.map
{"version":3,"file":"ai-tool.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-tool.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,uGAAuG;IACvG,UAAU,EAAE,MAAM,CAAC;CACpB"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=ai-tool.interface.js.map
{"version":3,"file":"ai-tool.interface.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-tool.interface.ts"],"names":[],"mappings":""}
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
/**
* Anthropic Claude model registry — verified 2026-06-01 against platform.claude.com docs.
*
* All Claude models are chat (Messages API) models — Anthropic has NO embeddings API.
* Tool use is universal (content-block `tool_use` / `tool_result` wire format).
* Anthropic has no dedicated JSON-mode flag (structured output is done via tools),
* so `jsonMode` is false across the board.
*
* Param note (translator): Opus 4.7+ reject `temperature`/`top_p`/`top_k` with 400 —
* not modelled here, handled in the Anthropic call translator.
*/
export declare const DyFM_AAI_Models: DyFM_AI_ModelInfo[];
//# sourceMappingURL=aai-models.const.d.ts.map
{"version":3,"file":"aai-models.const.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAG7E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,EA6D9C,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DyFM_AAI_Models = void 0;
const ai_provider_enum_1 = require("../../../_enums/ai-provider.enum");
const ai_model_type_enum_1 = require("../../../_enums/ai-model-type.enum");
const aai_model_enum_1 = require("../_enums/aai-model.enum");
/**
* Anthropic Claude model registry — verified 2026-06-01 against platform.claude.com docs.
*
* All Claude models are chat (Messages API) models — Anthropic has NO embeddings API.
* Tool use is universal (content-block `tool_use` / `tool_result` wire format).
* Anthropic has no dedicated JSON-mode flag (structured output is done via tools),
* so `jsonMode` is false across the board.
*
* Param note (translator): Opus 4.7+ reject `temperature`/`top_p`/`top_k` with 400 —
* not modelled here, handled in the Anthropic call translator.
*/
exports.DyFM_AAI_Models = [
{
id: aai_model_enum_1.DyFM_AAI_Model.claude_opus_4_8,
provider: ai_provider_enum_1.DyFM_AI_Provider.Anthropic,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'Claude Opus 4.8',
tier: 'Opus',
status: 'ga',
contextWindow: 1_000_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: aai_model_enum_1.DyFM_AAI_Model.claude_sonnet_4_6,
provider: ai_provider_enum_1.DyFM_AI_Provider.Anthropic,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'Claude Sonnet 4.6',
tier: 'Sonnet',
status: 'ga',
contextWindow: 1_000_000,
maxOutputTokens: 64_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: aai_model_enum_1.DyFM_AAI_Model.claude_haiku_4_5,
provider: ai_provider_enum_1.DyFM_AI_Provider.Anthropic,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'Claude Haiku 4.5',
tier: 'Haiku',
status: 'ga',
contextWindow: 200_000,
maxOutputTokens: 64_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
];
//# sourceMappingURL=aai-models.const.js.map
{"version":3,"file":"aai-models.const.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AACpE,2EAAuE;AAEvE,6DAA0D;AAE1D;;;;;;;;;;GAUG;AACU,QAAA,eAAe,GAAwB;IAClD;QACE,EAAE,EAAE,+BAAc,CAAC,eAAe;QAClC,QAAQ,EAAE,mCAAgB,CAAC,SAAS;QACpC,SAAS,EAAE,sCAAiB,CAAC,IAAI;QACjC,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,SAAS;QACxB,eAAe,EAAE,OAAO;QACxB,YAAY,EAAE;YACZ,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;SAClB;KACF;IACD;QACE,EAAE,EAAE,+BAAc,CAAC,iBAAiB;QACpC,QAAQ,EAAE,mCAAgB,CAAC,SAAS;QACpC,SAAS,EAAE,sCAAiB,CAAC,IAAI;QACjC,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,SAAS;QACxB,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE;YACZ,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;SAClB;KACF;IACD;QACE,EAAE,EAAE,+BAAc,CAAC,gBAAgB;QACnC,QAAQ,EAAE,mCAAgB,CAAC,SAAS;QACpC,SAAS,EAAE,sCAAiB,CAAC,IAAI;QACjC,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,OAAO;QACtB,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE;YACZ,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;SAClB;KACF;CACF,CAAC"}
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
/**
* FDP-AI model registry.
*
* FDP-AI is an internal, OpenAI-wire-compatible HTTP gateway (`/chat/completions`),
* so tool calling follows the OpenAI format. Capabilities ultimately depend on the
* backing gateway/model — `functionCalling` is declared true on the assumption the
* gateway forwards OpenAI-style tools; confirm against the live FDP-AI deployment.
* Context window is gateway-defined and therefore left unset.
*/
export declare const DyFM_FdpAI_Models: DyFM_AI_ModelInfo[];
//# sourceMappingURL=fdpai-models.const.d.ts.map
{"version":3,"file":"fdpai-models.const.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAG7E;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,EAkBhD,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DyFM_FdpAI_Models = void 0;
const ai_provider_enum_1 = require("../../../_enums/ai-provider.enum");
const ai_model_type_enum_1 = require("../../../_enums/ai-model-type.enum");
const fdpai_model_enum_1 = require("../_enums/fdpai-model.enum");
/**
* FDP-AI model registry.
*
* FDP-AI is an internal, OpenAI-wire-compatible HTTP gateway (`/chat/completions`),
* so tool calling follows the OpenAI format. Capabilities ultimately depend on the
* backing gateway/model — `functionCalling` is declared true on the assumption the
* gateway forwards OpenAI-style tools; confirm against the live FDP-AI deployment.
* Context window is gateway-defined and therefore left unset.
*/
exports.DyFM_FdpAI_Models = [
{
id: fdpai_model_enum_1.DyFM_FdpAI_Model.fdpBase1,
provider: ai_provider_enum_1.DyFM_AI_Provider.FdpAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'FDP Base 1',
status: 'ga',
capabilities: {
functionCalling: true, // OpenAI-wire compatible — verify against the live gateway
vision: false,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
];
//# sourceMappingURL=fdpai-models.const.js.map
{"version":3,"file":"fdpai-models.const.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AACpE,2EAAuE;AAEvE,iEAA8D;AAE9D;;;;;;;;GAQG;AACU,QAAA,iBAAiB,GAAwB;IACpD;QACE,EAAE,EAAE,mCAAgB,CAAC,QAAQ;QAC7B,QAAQ,EAAE,mCAAgB,CAAC,KAAK;QAChC,SAAS,EAAE,sCAAiB,CAAC,IAAI;QACjC,WAAW,EAAE,YAAY;QACzB,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE;YACZ,eAAe,EAAE,IAAI,EAAE,2DAA2D;YAClF,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;SAClB;KACF;CACF,CAAC"}
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
/**
* Google Gemini model registry — verified 2026-06-01 against ai.google.dev docs.
*
* SDK note: depend on `@google/genai` (the old `@google/generative-ai` was sunset
* 2025-11-30). Tool use via `functionDeclarations`; tool results are returned under
* a `user`-role `functionResponse` part (no dedicated tool role).
*
* Video input is a real Gemini capability but is not yet modelled in
* {@link DyFM_AI_ModelCapabilities} — `vision` covers image input only.
*/
export declare const DyFM_GAI_Models: DyFM_AI_ModelInfo[];
//# sourceMappingURL=gai-models.const.d.ts.map
{"version":3,"file":"gai-models.const.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAG7E;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,EA+E9C,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DyFM_GAI_Models = void 0;
const ai_provider_enum_1 = require("../../../_enums/ai-provider.enum");
const ai_model_type_enum_1 = require("../../../_enums/ai-model-type.enum");
const gai_model_enum_1 = require("../_enums/gai-model.enum");
/**
* Google Gemini model registry — verified 2026-06-01 against ai.google.dev docs.
*
* SDK note: depend on `@google/genai` (the old `@google/generative-ai` was sunset
* 2025-11-30). Tool use via `functionDeclarations`; tool results are returned under
* a `user`-role `functionResponse` part (no dedicated tool role).
*
* Video input is a real Gemini capability but is not yet modelled in
* {@link DyFM_AI_ModelCapabilities} — `vision` covers image input only.
*/
exports.DyFM_GAI_Models = [
{
id: gai_model_enum_1.DyFM_GAI_Model.gemini_3_5_flash,
provider: ai_provider_enum_1.DyFM_AI_Provider.Google,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'Gemini 3.5 Flash',
tier: 'flash',
status: 'ga',
contextWindow: 1_048_576,
maxOutputTokens: 65_536,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: true,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: gai_model_enum_1.DyFM_GAI_Model.gemini_3_1_pro_preview,
provider: ai_provider_enum_1.DyFM_AI_Provider.Google,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'Gemini 3.1 Pro (preview)',
tier: 'pro',
status: 'preview',
contextWindow: 1_048_576,
maxOutputTokens: 65_536,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: true,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: gai_model_enum_1.DyFM_GAI_Model.gemini_3_1_flash_lite,
provider: ai_provider_enum_1.DyFM_AI_Provider.Google,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'Gemini 3.1 Flash-Lite',
tier: 'flash-lite',
status: 'ga',
contextWindow: 1_048_576,
maxOutputTokens: 65_536,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: true,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: gai_model_enum_1.DyFM_GAI_Model.gemini_embedding_2,
provider: ai_provider_enum_1.DyFM_AI_Provider.Google,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Embedding,
displayName: 'Gemini Embedding 2',
status: 'ga',
contextWindow: 8_192,
capabilities: {
functionCalling: false,
vision: true, // multimodal embedding (text / image / audio)
streaming: false,
jsonMode: false,
audioInput: true,
audioOutput: false,
imageGeneration: false,
embeddings: true,
},
},
];
//# sourceMappingURL=gai-models.const.js.map
{"version":3,"file":"gai-models.const.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AACpE,2EAAuE;AAEvE,6DAA0D;AAE1D;;;;;;;;;GASG;AACU,QAAA,eAAe,GAAwB;IAClD;QACE,EAAE,EAAE,+BAAc,CAAC,gBAAgB;QACnC,QAAQ,EAAE,mCAAgB,CAAC,MAAM;QACjC,SAAS,EAAE,sCAAiB,CAAC,IAAI;QACjC,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,SAAS;QACxB,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE;YACZ,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;SAClB;KACF;IACD;QACE,EAAE,EAAE,+BAAc,CAAC,sBAAsB;QACzC,QAAQ,EAAE,mCAAgB,CAAC,MAAM;QACjC,SAAS,EAAE,sCAAiB,CAAC,IAAI;QACjC,WAAW,EAAE,0BAA0B;QACvC,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,SAAS;QACxB,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE;YACZ,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;SAClB;KACF;IACD;QACE,EAAE,EAAE,+BAAc,CAAC,qBAAqB;QACxC,QAAQ,EAAE,mCAAgB,CAAC,MAAM;QACjC,SAAS,EAAE,sCAAiB,CAAC,IAAI;QACjC,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,SAAS;QACxB,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE;YACZ,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;SAClB;KACF;IACD;QACE,EAAE,EAAE,+BAAc,CAAC,kBAAkB;QACrC,QAAQ,EAAE,mCAAgB,CAAC,MAAM;QACjC,SAAS,EAAE,sCAAiB,CAAC,SAAS;QACtC,WAAW,EAAE,oBAAoB;QACjC,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE;YACZ,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,IAAI,EAAE,8CAA8C;YAC5D,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,IAAI;SACjB;KACF;CACF,CAAC"}
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
/**
* Local-AI model registry.
*
* Local models are served by a self-hosted, OpenAI-wire-compatible server
* (lm-studio / ollama / vllm). These are GENERIC descriptors — the real
* capabilities depend entirely on the model the user has loaded at runtime.
* In particular `functionCalling` is left FALSE here because many local models
* do not support tool calling; it must be confirmed per loaded model rather than
* assumed. Context window is model-defined and therefore left unset.
*/
export declare const DyFM_LAI_Models: DyFM_AI_ModelInfo[];
//# sourceMappingURL=lai-models.const.d.ts.map
{"version":3,"file":"lai-models.const.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAG7E;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAmC9C,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DyFM_LAI_Models = void 0;
const ai_provider_enum_1 = require("../../../_enums/ai-provider.enum");
const ai_model_type_enum_1 = require("../../../_enums/ai-model-type.enum");
const lai_model_enum_1 = require("../_enums/lai-model.enum");
/**
* Local-AI model registry.
*
* Local models are served by a self-hosted, OpenAI-wire-compatible server
* (lm-studio / ollama / vllm). These are GENERIC descriptors — the real
* capabilities depend entirely on the model the user has loaded at runtime.
* In particular `functionCalling` is left FALSE here because many local models
* do not support tool calling; it must be confirmed per loaded model rather than
* assumed. Context window is model-defined and therefore left unset.
*/
exports.DyFM_LAI_Models = [
{
id: lai_model_enum_1.DyFM_LAI_Model.generic_llm,
provider: ai_provider_enum_1.DyFM_AI_Provider.LocalAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'Local generic LLM',
status: 'ga',
capabilities: {
functionCalling: false, // runtime/model-dependent — confirm per loaded model
vision: false,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: lai_model_enum_1.DyFM_LAI_Model.text_embedding,
provider: ai_provider_enum_1.DyFM_AI_Provider.LocalAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Embedding,
displayName: 'Local text embedding',
status: 'ga',
capabilities: {
functionCalling: false,
vision: false,
streaming: false,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: true,
},
},
];
//# sourceMappingURL=lai-models.const.js.map
{"version":3,"file":"lai-models.const.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AACpE,2EAAuE;AAEvE,6DAA0D;AAE1D;;;;;;;;;GASG;AACU,QAAA,eAAe,GAAwB;IAClD;QACE,EAAE,EAAE,+BAAc,CAAC,WAAW;QAC9B,QAAQ,EAAE,mCAAgB,CAAC,OAAO;QAClC,SAAS,EAAE,sCAAiB,CAAC,IAAI;QACjC,WAAW,EAAE,mBAAmB;QAChC,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE;YACZ,eAAe,EAAE,KAAK,EAAE,qDAAqD;YAC7E,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;SAClB;KACF;IACD;QACE,EAAE,EAAE,+BAAc,CAAC,cAAc;QACjC,QAAQ,EAAE,mCAAgB,CAAC,OAAO;QAClC,SAAS,EAAE,sCAAiB,CAAC,SAAS;QACtC,WAAW,EAAE,sBAAsB;QACnC,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE;YACZ,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,IAAI;SACjB;KACF;CACF,CAAC"}
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
/**
* OpenAI model registry — verified 2026-06-01 against developers.openai.com docs.
*
* Contains current GA + still-callable legacy models. Retired models are omitted;
* sunsetting ones carry `status: 'deprecated'` + `successorId` + `sunsetDate`.
*
* Tool-calling note: native function calling is universal across current OpenAI
* chat models. The `-pro` reasoning models support tools but NOT streaming and
* are Responses-API-only — reflected in `capabilities.streaming`.
*/
export declare const DyFM_OAI_Models: DyFM_AI_ModelInfo[];
//# sourceMappingURL=oai-models.const.d.ts.map
{"version":3,"file":"oai-models.const.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAG7E;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAiO9C,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DyFM_OAI_Models = void 0;
const ai_provider_enum_1 = require("../../../_enums/ai-provider.enum");
const ai_model_type_enum_1 = require("../../../_enums/ai-model-type.enum");
const oai_model_enum_1 = require("../_enums/oai-model.enum");
/**
* OpenAI model registry — verified 2026-06-01 against developers.openai.com docs.
*
* Contains current GA + still-callable legacy models. Retired models are omitted;
* sunsetting ones carry `status: 'deprecated'` + `successorId` + `sunsetDate`.
*
* Tool-calling note: native function calling is universal across current OpenAI
* chat models. The `-pro` reasoning models support tools but NOT streaming and
* are Responses-API-only — reflected in `capabilities.streaming`.
*/
exports.DyFM_OAI_Models = [
// ── Chat / reasoning (current GA) ──
{
id: oai_model_enum_1.DyFM_OAI_Model.gpt55,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.5',
tier: 'flagship',
status: 'ga',
contextWindow: 1_050_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: oai_model_enum_1.DyFM_OAI_Model.gpt55_pro,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.5 Pro',
tier: 'pro',
status: 'ga',
contextWindow: 1_050_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: false, // Responses-API-only, no streaming
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: oai_model_enum_1.DyFM_OAI_Model.gpt54,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.4',
tier: 'flagship',
status: 'ga',
contextWindow: 1_000_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: oai_model_enum_1.DyFM_OAI_Model.gpt54_mini,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.4 mini',
tier: 'mini',
status: 'ga',
contextWindow: 400_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: oai_model_enum_1.DyFM_OAI_Model.gpt54_nano,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.4 nano',
tier: 'nano',
status: 'ga',
contextWindow: 400_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: oai_model_enum_1.DyFM_OAI_Model.o3_pro,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'o3-pro',
tier: 'pro',
status: 'ga',
contextWindow: 200_000,
maxOutputTokens: 100_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: false, // Responses-API-only, no streaming
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
// ── Chat (legacy-active, sunsetting) ──
{
id: oai_model_enum_1.DyFM_OAI_Model.gpt4o,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'GPT-4o',
tier: 'legacy',
status: 'deprecated',
successorId: oai_model_enum_1.DyFM_OAI_Model.gpt54_mini,
sunsetDate: '2026-10-23',
contextWindow: 128_000,
maxOutputTokens: 16_384,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: oai_model_enum_1.DyFM_OAI_Model.gpt4o_mini,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Chat,
displayName: 'GPT-4o mini',
tier: 'legacy',
status: 'deprecated',
successorId: oai_model_enum_1.DyFM_OAI_Model.gpt54_mini,
sunsetDate: '2026-10-23',
contextWindow: 128_000,
maxOutputTokens: 16_384,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
// ── Embeddings (current GA) ──
{
id: oai_model_enum_1.DyFM_OAI_Model.textEmbedding_3Small,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Embedding,
displayName: 'text-embedding-3-small',
status: 'ga',
contextWindow: 8_191,
capabilities: {
functionCalling: false,
vision: false,
streaming: false,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: true,
},
},
{
id: oai_model_enum_1.DyFM_OAI_Model.textEmbedding_3Large,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Embedding,
displayName: 'text-embedding-3-large',
status: 'ga',
contextWindow: 8_191,
capabilities: {
functionCalling: false,
vision: false,
streaming: false,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: true,
},
},
// ── Image generation (current GA) ──
{
id: oai_model_enum_1.DyFM_OAI_Model.gptImage_2,
provider: ai_provider_enum_1.DyFM_AI_Provider.OpenAI,
modelType: ai_model_type_enum_1.DyFM_AI_ModelType.Image,
displayName: 'GPT Image 2',
status: 'ga',
capabilities: {
functionCalling: false,
vision: true, // accepts image input for editing
streaming: false,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: true,
embeddings: false,
},
},
];
//# sourceMappingURL=oai-models.const.js.map
{"version":3,"file":"oai-models.const.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts"],"names":[],"mappings":"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"}
import { DyFM_AI_ModelRegistry_Util } from './ai-model-registry.util';
import { DyFM_OAI_Models } from '../_modules/open-ai/_collections/oai-models.const';
import { DyFM_OAI_Model } from '../_modules/open-ai/_enums/oai-model.enum';
describe('| DyFM_AI_ModelRegistry_Util', (): void => {
describe('| findModelInfo', (): void => {
it('| should find a known model by id', (): void => {
const info = DyFM_AI_ModelRegistry_Util.findModelInfo(DyFM_OAI_Models, DyFM_OAI_Model.gpt55);
expect(info).toBeTruthy();
expect(info?.id).toBe(DyFM_OAI_Model.gpt55);
});
it('| should return undefined for an unknown id', (): void => {
const info = DyFM_AI_ModelRegistry_Util.findModelInfo(DyFM_OAI_Models, 'no-such-model');
expect(info).toBeUndefined();
});
});
describe('| modelSupportsTools', (): void => {
it('| should return true for a tool-capable chat model', (): void => {
expect(DyFM_AI_ModelRegistry_Util.modelSupportsTools(DyFM_OAI_Models, DyFM_OAI_Model.gpt55)).toBe(true);
});
it('| should return false for an embedding model', (): void => {
expect(
DyFM_AI_ModelRegistry_Util.modelSupportsTools(DyFM_OAI_Models, DyFM_OAI_Model.textEmbedding_3Small)
).toBe(false);
});
it('| should return false for an unknown id (no assumption of tool support)', (): void => {
expect(DyFM_AI_ModelRegistry_Util.modelSupportsTools(DyFM_OAI_Models, 'no-such-model')).toBe(false);
});
});
});
import { DyFM_AI_ModelInfo } from '../_models/ai-model-info.interface';
/**
* Lookups over a per-provider model registry (`DyFM_OAI_Models`, `DyFM_AAI_Models`, …).
*
* The registry array is passed IN — this keeps the agnostic `./ai` core free of
* any provider-submodule dependency (the execution-layer service supplies its own
* provider's registry). The lookup is by exact API model `id`.
*/
export class DyFM_AI_ModelRegistry_Util {
/**
* A modell-descriptor megkeresese id alapjan a megadott registry-ben.
* @param models - a provider registry tomb (pl. DyFM_OAI_Models)
* @param id - pontos API modell-azonosito (pl. 'gpt-5.5')
*/
static findModelInfo(models: DyFM_AI_ModelInfo[], id: string): DyFM_AI_ModelInfo | undefined {
return models.find((model: DyFM_AI_ModelInfo) => model.id === id);
}
/**
* Tamogatja-e a modell a function calling-ot (tool use)?
* Ismeretlen id eseten `false` (honesty — soha ne feltetelezzunk tool-kepesseget).
* @param models - a provider registry tomb
* @param id - pontos API modell-azonosito
*/
static modelSupportsTools(models: DyFM_AI_ModelInfo[], id: string): boolean {
return DyFM_AI_ModelRegistry_Util.findModelInfo(models, id)?.capabilities?.functionCalling ?? false;
}
}
/**
* Per-model capability flags.
*
* Where {@link DyFM_AI_ProviderCapabilities} describes what a PROVIDER can do
* in aggregate, this describes what a single concrete MODEL supports. This is
* the honest source of truth for feature-gating: e.g. an embedding model has
* functionCalling=false, a reasoning chat model has functionCalling=true, a
* local generic model may have functionCalling decided at runtime.
*/
export interface DyFM_AI_ModelCapabilities {
/** Native function calling / tool use. The driver for the tool-calling feature. */
functionCalling: boolean;
/** Image input (vision). */
vision: boolean;
/** Streaming responses. */
streaming: boolean;
/** Structured output / JSON mode (OpenAI structured outputs, Gemini responseSchema, etc.). */
jsonMode: boolean;
/** Audio input (speech-to-text / audio understanding). */
audioInput: boolean;
/** Audio output (text-to-speech / speech generation). */
audioOutput: boolean;
/** Image generation (the model produces images). */
imageGeneration: boolean;
/** Embedding generation (vector output). */
embeddings: boolean;
}
import { DyFM_AI_Provider } from '../_enums/ai-provider.enum';
import { DyFM_AI_ModelType } from '../_enums/ai-model-type.enum';
import { DyFM_AI_ModelCapabilities } from './ai-model-capabilities.interface';
import { DyFM_AI_ModelSettingsSchema } from './ai-model-settings-schema.interface';
/**
* Lifecycle status of a model in the provider's catalogue.
*
* `ga` — generally available, recommended for new work.
* `preview` — available but pre-GA (API/behaviour may change).
* `deprecated` — still callable but on a sunset path; prefer {@link DyFM_AI_ModelInfo.successorId}.
*/
export type DyFM_AI_ModelStatus = 'ga' | 'preview' | 'deprecated';
/**
* Single-model descriptor for the provider model registry.
*
* The provider registries (`DyFM_OAI_Models`, `DyFM_AAI_Models`, …) are arrays
* of these — an SDK-free, data-only source of truth for which models exist and
* what each can do. The bare model enums (`DyFM_OAI_Model`, …) remain the typed
* id keys; a registry entry's `id` references one of those values.
*
* Note: model line-ups churn fast (see the 2026-06 research) — keep the registry
* current and rely on `status`/`successorId` rather than silently breaking on a
* retired id.
*/
export interface DyFM_AI_ModelInfo {
/** Exact API model string (e.g. 'gpt-5.5', 'claude-opus-4-8', 'gemini-3.5-flash'). */
id: string;
/** The provider that serves this model. */
provider: DyFM_AI_Provider;
/** The kind of model (chat / embedding / image / audio). */
modelType: DyFM_AI_ModelType;
/** What this specific model can DO (feature gates). */
capabilities: DyFM_AI_ModelCapabilities;
/**
* RESERVED (FR-048) — which tuning PARAMETERS this model accepts/rejects.
*
* Sibling of {@link capabilities}. NOT populated by FR-047 and NOT yet
* consumed by any reconciler — reserved space for the future per-model
* agnostic settings system. Each model accepts a different settings surface
* (e.g. Opus 4.7+ rejects temperature/topP/topK; reasoning models add
* reasoningEffort), and that knowledge must be curated continuously like the
* model registry itself.
*
* See: `__agent/feature-requests/FR-048-per-model-agnostic-settings.md`
*/
settingsSchema?: DyFM_AI_ModelSettingsSchema;
/** Input context window in tokens, if applicable. */
contextWindow?: number;
/** Maximum output tokens, if applicable. */
maxOutputTokens?: number;
/** Lifecycle status; defaults to `ga` when omitted. */
status?: DyFM_AI_ModelStatus;
/** When `deprecated`/sunsetting, the recommended replacement model id. */
successorId?: string;
/** When `deprecated`, the earliest known shutdown date (ISO yyyy-mm-dd). */
sunsetDate?: string;
/** Human-readable name for UI (e.g. 'GPT-5.5', 'Claude Opus 4.8'). */
displayName?: string;
/** Provider-specific tier label (e.g. 'flagship', 'mini', 'Opus', 'Sonnet', 'Haiku'). */
tier?: string;
}
/**
* RESERVED — per-model settings schema (FR-048; NOT implemented by FR-047).
*
* Sibling of {@link DyFM_AI_ModelCapabilities}: capabilities describe what a
* model can DO; this describes which tuning PARAMETERS it accepts, their
* bounds, and which it REJECTS. A flat {@link DyFM_AI_CallSettings} bag cannot
* express this, yet sending an unsupported param can hard-fail a call (e.g.
* Anthropic Opus 4.7+ rejects `temperature`/`top_p`/`top_k` with HTTP 400).
*
* This type reserves the architectural space and documents intent. The
* registry consts do NOT populate `settingsSchema` yet, and no reconciler
* consumes it yet — both are FR-048 work. The exact shape may evolve when
* FR-048 is built; treat this as a forward placeholder, not a frozen contract.
*
* See: `__agent/feature-requests/FR-048-per-model-agnostic-settings.md`
* `documentations/guidelines/development/ai-per-model-settings.md`
*/
export interface DyFM_AI_ModelSettingsSchema {
/** Agnostic setting keys this model ACCEPTS (e.g. 'temperature','topP','maxTokens','reasoningEffort'). */
supported?: string[];
/**
* Agnostic setting keys this model REJECTS — sending them errors.
* Example: Opus 4.7+ → ['temperature','topP','topK'] (HTTP 400 on non-default).
* The future reconciler drops these (debug-log, never silently).
*/
unsupported?: string[];
/** Per-key value constraints (range / enum / default). */
constraints?: Record<string, DyFM_AI_SettingConstraint>;
/**
* Provider/model-specific knobs NOT present on the agnostic CallSettings
* (e.g. OpenAI 'reasoningEffort', Gemini 'thinkingConfig'). The provider
* translator maps these to the native param.
*/
extraParams?: string[];
}
/**
* RESERVED (FR-048) — value constraint for a single tuning parameter.
* Forward placeholder; shape may evolve when FR-048 is built.
*/
export interface DyFM_AI_SettingConstraint {
/** Minimum numeric value (inclusive), if applicable. */
min?: number;
/** Maximum numeric value (inclusive), if applicable. */
max?: number;
/** Default value the provider applies when omitted. */
default?: unknown;
/** Allowed discrete values (enum-like params, e.g. reasoningEffort). */
allowed?: unknown[];
/** Free-text note (Hunglish ok) — e.g. provider quirk, version gate. */
note?: string;
}
/**
* A normalized tool invocation requested by the model.
*
* Each provider's native shape is normalized into this at the translator boundary:
* - OpenAI: message.tool_calls[] → { id, name, arguments: JSON.parse(function.arguments) }
* - Anthropic: content[] { type:'tool_use', id, name, input } → { id, name, arguments: input }
* - Gemini: parts[].functionCall { id, name, args } → { id, name, arguments: args }
*
* `arguments` is ALWAYS a parsed object (OpenAI's JSON string is parsed at the boundary).
*/
export interface DyFM_AI_ToolCall {
/** Provider call id — echoed back when returning the result. */
id: string;
/** The invoked tool's name. */
name: string;
/** Parsed arguments object. */
arguments: Record<string, unknown>;
}
/**
* Handler for a single function-calling tool — receives the parsed arguments
* (JSON already parsed) and returns the tool result as a string (which is fed
* back to the model). Generalized from the proven legacy `FDPNTS_GPT_ToolHandler`.
*/
export type DyFM_AI_ToolHandler = (args: Record<string, unknown>) => Promise<string> | string;
/**
* Tool-name → handler registration for the `requestWithTools` agent-loop.
*/
export type DyFM_AI_ToolHandlers = Record<string, DyFM_AI_ToolHandler>;
/**
* The result of executing a tool, fed back to the model.
*
* Translated per provider:
* - OpenAI: { role:'tool', tool_call_id: toolCallId, content }
* - Anthropic: content block { type:'tool_result', tool_use_id: toolCallId, content, is_error: isError }
* - Gemini: part { functionResponse: { id: toolCallId, name, response: { result: content } } }
*/
export interface DyFM_AI_ToolResult {
/** Must echo the originating {@link DyFM_AI_ToolCall.id}. */
toolCallId: string;
/** The tool's output (or an error message — see {@link isError}). */
content: string;
/** True when the tool failed; the model is told so it can correct. */
isError?: boolean;
}
/**
* Provider-neutral tool (function) definition for native function calling.
*
* One agnostic shape, translated per provider by the execution layer:
* - OpenAI-wire: → { type:'function', function:{ name, description, parameters } }
* - Anthropic: → { name, description, input_schema: parameters }
* - Gemini: → tools:[{ functionDeclarations:[{ name, description, parameters }] }]
*/
export interface DyFM_AI_Tool {
/** Function name. No spaces / special chars (Gemini constraint). */
name: string;
/** What the tool does — the model uses this to decide when to call it. */
description: string;
/** JSON Schema (object schema) describing the arguments. Translated to each provider's param shape. */
parameters: object;
}
import { DyFM_AI_Provider } from '../../../_enums/ai-provider.enum';
import { DyFM_AI_ModelType } from '../../../_enums/ai-model-type.enum';
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
import { DyFM_AAI_Model } from '../_enums/aai-model.enum';
/**
* Anthropic Claude model registry — verified 2026-06-01 against platform.claude.com docs.
*
* All Claude models are chat (Messages API) models — Anthropic has NO embeddings API.
* Tool use is universal (content-block `tool_use` / `tool_result` wire format).
* Anthropic has no dedicated JSON-mode flag (structured output is done via tools),
* so `jsonMode` is false across the board.
*
* Param note (translator): Opus 4.7+ reject `temperature`/`top_p`/`top_k` with 400 —
* not modelled here, handled in the Anthropic call translator.
*/
export const DyFM_AAI_Models: DyFM_AI_ModelInfo[] = [
{
id: DyFM_AAI_Model.claude_opus_4_8,
provider: DyFM_AI_Provider.Anthropic,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'Claude Opus 4.8',
tier: 'Opus',
status: 'ga',
contextWindow: 1_000_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_AAI_Model.claude_sonnet_4_6,
provider: DyFM_AI_Provider.Anthropic,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'Claude Sonnet 4.6',
tier: 'Sonnet',
status: 'ga',
contextWindow: 1_000_000,
maxOutputTokens: 64_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_AAI_Model.claude_haiku_4_5,
provider: DyFM_AI_Provider.Anthropic,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'Claude Haiku 4.5',
tier: 'Haiku',
status: 'ga',
contextWindow: 200_000,
maxOutputTokens: 64_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
];
import { DyFM_AI_Provider } from '../../../_enums/ai-provider.enum';
import { DyFM_AI_ModelType } from '../../../_enums/ai-model-type.enum';
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
import { DyFM_FdpAI_Model } from '../_enums/fdpai-model.enum';
/**
* FDP-AI model registry.
*
* FDP-AI is an internal, OpenAI-wire-compatible HTTP gateway (`/chat/completions`),
* so tool calling follows the OpenAI format. Capabilities ultimately depend on the
* backing gateway/model — `functionCalling` is declared true on the assumption the
* gateway forwards OpenAI-style tools; confirm against the live FDP-AI deployment.
* Context window is gateway-defined and therefore left unset.
*/
export const DyFM_FdpAI_Models: DyFM_AI_ModelInfo[] = [
{
id: DyFM_FdpAI_Model.fdpBase1,
provider: DyFM_AI_Provider.FdpAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'FDP Base 1',
status: 'ga',
capabilities: {
functionCalling: true, // OpenAI-wire compatible — verify against the live gateway
vision: false,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
];
import { DyFM_AI_Provider } from '../../../_enums/ai-provider.enum';
import { DyFM_AI_ModelType } from '../../../_enums/ai-model-type.enum';
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
import { DyFM_GAI_Model } from '../_enums/gai-model.enum';
/**
* Google Gemini model registry — verified 2026-06-01 against ai.google.dev docs.
*
* SDK note: depend on `@google/genai` (the old `@google/generative-ai` was sunset
* 2025-11-30). Tool use via `functionDeclarations`; tool results are returned under
* a `user`-role `functionResponse` part (no dedicated tool role).
*
* Video input is a real Gemini capability but is not yet modelled in
* {@link DyFM_AI_ModelCapabilities} — `vision` covers image input only.
*/
export const DyFM_GAI_Models: DyFM_AI_ModelInfo[] = [
{
id: DyFM_GAI_Model.gemini_3_5_flash,
provider: DyFM_AI_Provider.Google,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'Gemini 3.5 Flash',
tier: 'flash',
status: 'ga',
contextWindow: 1_048_576,
maxOutputTokens: 65_536,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: true,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_GAI_Model.gemini_3_1_pro_preview,
provider: DyFM_AI_Provider.Google,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'Gemini 3.1 Pro (preview)',
tier: 'pro',
status: 'preview',
contextWindow: 1_048_576,
maxOutputTokens: 65_536,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: true,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_GAI_Model.gemini_3_1_flash_lite,
provider: DyFM_AI_Provider.Google,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'Gemini 3.1 Flash-Lite',
tier: 'flash-lite',
status: 'ga',
contextWindow: 1_048_576,
maxOutputTokens: 65_536,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: true,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_GAI_Model.gemini_embedding_2,
provider: DyFM_AI_Provider.Google,
modelType: DyFM_AI_ModelType.Embedding,
displayName: 'Gemini Embedding 2',
status: 'ga',
contextWindow: 8_192,
capabilities: {
functionCalling: false,
vision: true, // multimodal embedding (text / image / audio)
streaming: false,
jsonMode: false,
audioInput: true,
audioOutput: false,
imageGeneration: false,
embeddings: true,
},
},
];
import { DyFM_AI_Provider } from '../../../_enums/ai-provider.enum';
import { DyFM_AI_ModelType } from '../../../_enums/ai-model-type.enum';
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
import { DyFM_LAI_Model } from '../_enums/lai-model.enum';
/**
* Local-AI model registry.
*
* Local models are served by a self-hosted, OpenAI-wire-compatible server
* (lm-studio / ollama / vllm). These are GENERIC descriptors — the real
* capabilities depend entirely on the model the user has loaded at runtime.
* In particular `functionCalling` is left FALSE here because many local models
* do not support tool calling; it must be confirmed per loaded model rather than
* assumed. Context window is model-defined and therefore left unset.
*/
export const DyFM_LAI_Models: DyFM_AI_ModelInfo[] = [
{
id: DyFM_LAI_Model.generic_llm,
provider: DyFM_AI_Provider.LocalAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'Local generic LLM',
status: 'ga',
capabilities: {
functionCalling: false, // runtime/model-dependent — confirm per loaded model
vision: false,
streaming: true,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_LAI_Model.text_embedding,
provider: DyFM_AI_Provider.LocalAI,
modelType: DyFM_AI_ModelType.Embedding,
displayName: 'Local text embedding',
status: 'ga',
capabilities: {
functionCalling: false,
vision: false,
streaming: false,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: true,
},
},
];
import { DyFM_AI_Provider } from '../../../_enums/ai-provider.enum';
import { DyFM_AI_ModelType } from '../../../_enums/ai-model-type.enum';
import { DyFM_AI_ModelInfo } from '../../../_models/ai-model-info.interface';
import { DyFM_OAI_Model } from '../_enums/oai-model.enum';
/**
* OpenAI model registry — verified 2026-06-01 against developers.openai.com docs.
*
* Contains current GA + still-callable legacy models. Retired models are omitted;
* sunsetting ones carry `status: 'deprecated'` + `successorId` + `sunsetDate`.
*
* Tool-calling note: native function calling is universal across current OpenAI
* chat models. The `-pro` reasoning models support tools but NOT streaming and
* are Responses-API-only — reflected in `capabilities.streaming`.
*/
export const DyFM_OAI_Models: DyFM_AI_ModelInfo[] = [
// ── Chat / reasoning (current GA) ──
{
id: DyFM_OAI_Model.gpt55,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.5',
tier: 'flagship',
status: 'ga',
contextWindow: 1_050_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_OAI_Model.gpt55_pro,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.5 Pro',
tier: 'pro',
status: 'ga',
contextWindow: 1_050_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: false, // Responses-API-only, no streaming
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_OAI_Model.gpt54,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.4',
tier: 'flagship',
status: 'ga',
contextWindow: 1_000_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_OAI_Model.gpt54_mini,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.4 mini',
tier: 'mini',
status: 'ga',
contextWindow: 400_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_OAI_Model.gpt54_nano,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'GPT-5.4 nano',
tier: 'nano',
status: 'ga',
contextWindow: 400_000,
maxOutputTokens: 128_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_OAI_Model.o3_pro,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'o3-pro',
tier: 'pro',
status: 'ga',
contextWindow: 200_000,
maxOutputTokens: 100_000,
capabilities: {
functionCalling: true,
vision: true,
streaming: false, // Responses-API-only, no streaming
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
// ── Chat (legacy-active, sunsetting) ──
{
id: DyFM_OAI_Model.gpt4o,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'GPT-4o',
tier: 'legacy',
status: 'deprecated',
successorId: DyFM_OAI_Model.gpt54_mini,
sunsetDate: '2026-10-23',
contextWindow: 128_000,
maxOutputTokens: 16_384,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
{
id: DyFM_OAI_Model.gpt4o_mini,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Chat,
displayName: 'GPT-4o mini',
tier: 'legacy',
status: 'deprecated',
successorId: DyFM_OAI_Model.gpt54_mini,
sunsetDate: '2026-10-23',
contextWindow: 128_000,
maxOutputTokens: 16_384,
capabilities: {
functionCalling: true,
vision: true,
streaming: true,
jsonMode: true,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: false,
},
},
// ── Embeddings (current GA) ──
{
id: DyFM_OAI_Model.textEmbedding_3Small,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Embedding,
displayName: 'text-embedding-3-small',
status: 'ga',
contextWindow: 8_191,
capabilities: {
functionCalling: false,
vision: false,
streaming: false,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: true,
},
},
{
id: DyFM_OAI_Model.textEmbedding_3Large,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Embedding,
displayName: 'text-embedding-3-large',
status: 'ga',
contextWindow: 8_191,
capabilities: {
functionCalling: false,
vision: false,
streaming: false,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: false,
embeddings: true,
},
},
// ── Image generation (current GA) ──
{
id: DyFM_OAI_Model.gptImage_2,
provider: DyFM_AI_Provider.OpenAI,
modelType: DyFM_AI_ModelType.Image,
displayName: 'GPT Image 2',
status: 'ga',
capabilities: {
functionCalling: false,
vision: true, // accepts image input for editing
streaming: false,
jsonMode: false,
audioInput: false,
audioOutput: false,
imageGeneration: true,
embeddings: false,
},
},
];
+3
-1
export declare enum DyFM_AI_MessageRole {
system = "system",
user = "user",
assistant = "assistant"
assistant = "assistant",
/** Tool-result message (function calling). Provider translators map this to their native shape. */
tool = "tool"
}
//# sourceMappingURL=ai-message-role.enum.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"ai-message-role.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_enums/ai-message-role.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;CACxB"}
{"version":3,"file":"ai-message-role.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_enums/ai-message-role.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,mGAAmG;IACnG,IAAI,SAAS;CACd"}

@@ -9,3 +9,5 @@ "use strict";

DyFM_AI_MessageRole["assistant"] = "assistant";
/** Tool-result message (function calling). Provider translators map this to their native shape. */
DyFM_AI_MessageRole["tool"] = "tool";
})(DyFM_AI_MessageRole || (exports.DyFM_AI_MessageRole = DyFM_AI_MessageRole = {}));
//# sourceMappingURL=ai-message-role.enum.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"ai-message-role.enum.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_enums/ai-message-role.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,oCAAa,CAAA;IACb,8CAAuB,CAAA;AACzB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B"}
{"version":3,"file":"ai-message-role.enum.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_enums/ai-message-role.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,oCAAa,CAAA;IACb,8CAAuB,CAAA;IACvB,mGAAmG;IACnG,oCAAa,CAAA;AACf,CAAC,EANW,mBAAmB,mCAAnB,mBAAmB,QAM9B"}
export declare enum DyFM_AI_ModelType {
LLM = "llm",
Embedding = "embedding",
Chat = "chat"
Chat = "chat",
Image = "image",
Audio = "audio"
}
//# sourceMappingURL=ai-model-type.enum.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"ai-model-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_enums/ai-model-type.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,IAAI,SAAS;CACd"}
{"version":3,"file":"ai-model-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_enums/ai-model-type.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB"}

@@ -9,3 +9,5 @@ "use strict";

DyFM_AI_ModelType["Chat"] = "chat";
DyFM_AI_ModelType["Image"] = "image";
DyFM_AI_ModelType["Audio"] = "audio";
})(DyFM_AI_ModelType || (exports.DyFM_AI_ModelType = DyFM_AI_ModelType = {}));
//# sourceMappingURL=ai-model-type.enum.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"ai-model-type.enum.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_enums/ai-model-type.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,gCAAW,CAAA;IACX,4CAAuB,CAAA;IACvB,kCAAa,CAAA;AACf,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B"}
{"version":3,"file":"ai-model-type.enum.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_enums/ai-model-type.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,gCAAW,CAAA;IACX,4CAAuB,CAAA;IACvB,kCAAa,CAAA;IACb,oCAAe,CAAA;IACf,oCAAe,CAAA;AACjB,CAAC,EANW,iBAAiB,iCAAjB,iBAAiB,QAM5B"}

@@ -0,1 +1,22 @@

/**
* Agnostic LLM call settings — the provider-neutral tuning bag.
*
* The typed fields below are the common, broadly-supported knobs. The
* `[key: string]: any` escape hatch carries provider/model-specific params
* until they are first-classed.
*
* IMPORTANT — per-model variance (FR-048, reserved): NOT every model accepts
* every field here, and sending an unsupported param can hard-fail the call
* (e.g. Anthropic Opus 4.7+ rejects `temperature`/`topP`/`topK` with HTTP 400;
* reasoning models take an extra `reasoningEffort`; pro models drop streaming).
* This flat bag intentionally does NOT encode those constraints — the future
* per-model settings system ({@link DyFM_AI_ModelSettingsSchema} on the model
* registry + a reconciler in `DyNTS_AI_LLM_ServiceBase`) will validate, clamp,
* and drop params against what each model actually accepts. Until then,
* provider translators drop model-rejected params locally (see FR-047 Phase 4
* Anthropic). Do not assume a field here is universally accepted.
*
* See: `__agent/feature-requests/FR-048-per-model-agnostic-settings.md`
* `documentations/guidelines/development/ai-per-model-settings.md`
*/
export declare class DyFM_AI_CallSettings {

@@ -2,0 +23,0 @@ systemPrompt?: string;

@@ -1,1 +0,1 @@

{"version":3,"file":"ai-call-settings.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-call-settings.interface.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAoB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAM;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAK;IACzB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAQ;IAC1B;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAQ;IACrB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAK;IAC9B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAK;IAG7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;gBAGjB,GAAG,CAAC,EAAE,oBAAoB;CAM7B"}
{"version":3,"file":"ai-call-settings.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-call-settings.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,oBAAoB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAM;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAK;IACzB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAQ;IAC1B;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAQ;IACrB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAK;IAC9B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAK;IAG7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;gBAGjB,GAAG,CAAC,EAAE,oBAAoB;CAM7B"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DyFM_AI_CallSettings = void 0;
/**
* Agnostic LLM call settings — the provider-neutral tuning bag.
*
* The typed fields below are the common, broadly-supported knobs. The
* `[key: string]: any` escape hatch carries provider/model-specific params
* until they are first-classed.
*
* IMPORTANT — per-model variance (FR-048, reserved): NOT every model accepts
* every field here, and sending an unsupported param can hard-fail the call
* (e.g. Anthropic Opus 4.7+ rejects `temperature`/`topP`/`topK` with HTTP 400;
* reasoning models take an extra `reasoningEffort`; pro models drop streaming).
* This flat bag intentionally does NOT encode those constraints — the future
* per-model settings system ({@link DyFM_AI_ModelSettingsSchema} on the model
* registry + a reconciler in `DyNTS_AI_LLM_ServiceBase`) will validate, clamp,
* and drop params against what each model actually accepts. Until then,
* provider translators drop model-rejected params locally (see FR-047 Phase 4
* Anthropic). Do not assume a field here is universally accepted.
*
* See: `__agent/feature-requests/FR-048-per-model-agnostic-settings.md`
* `documentations/guidelines/development/ai-per-model-settings.md`
*/
class DyFM_AI_CallSettings {

@@ -5,0 +26,0 @@ systemPrompt = '';

@@ -1,1 +0,1 @@

{"version":3,"file":"ai-call-settings.interface.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-call-settings.interface.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;IAC/B,YAAY,GAAY,EAAE,CAAC;IAC3B,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,QAAQ,CAAW;IAEnB;;;;;;;;OAQG;IACH,WAAW,GAAY,CAAC,CAAC;IACzB;;;;;;;;OAQG;IACH,SAAS,GAAY,IAAI,CAAC;IAC1B;;;;;;;OAOG;IACH,IAAI,GAAY,IAAI,CAAC;IACrB;;;;;OAKG;IACH,gBAAgB,GAAY,CAAC,CAAC;IAC9B;;;;;;;OAOG;IACH,eAAe,GAAY,CAAC,CAAC;IAK7B,YACE,GAA0B;QAE1B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF;AA9DD,oDA8DC"}
{"version":3,"file":"ai-call-settings.interface.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-call-settings.interface.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,oBAAoB;IAC/B,YAAY,GAAY,EAAE,CAAC;IAC3B,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,QAAQ,CAAW;IAEnB;;;;;;;;OAQG;IACH,WAAW,GAAY,CAAC,CAAC;IACzB;;;;;;;;OAQG;IACH,SAAS,GAAY,IAAI,CAAC;IAC1B;;;;;;;OAOG;IACH,IAAI,GAAY,IAAI,CAAC;IACrB;;;;;OAKG;IACH,gBAAgB,GAAY,CAAC,CAAC;IAC9B;;;;;;;OAOG;IACH,eAAe,GAAY,CAAC,CAAC;IAK7B,YACE,GAA0B;QAE1B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF;AA9DD,oDA8DC"}
import { DyFM_AI_Message } from './ai-message.interface';
import { DyFM_AI_ToolCall } from './ai-tool-call.interface';
/**

@@ -15,2 +16,6 @@ * Generic LLM response structure

finishReason?: string;
/** Present when the model requested tool calls (function calling); normalized across providers. */
toolCalls?: DyFM_AI_ToolCall[];
/** Normalized stop reason (e.g. 'tool_use', 'stop', 'length'). */
stopReason?: string;
rawResponse?: any;

@@ -17,0 +22,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"ai-llm-response.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-llm-response.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC;CAClB"}
{"version":3,"file":"ai-llm-response.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-llm-response.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mGAAmG;IACnG,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC;CAClB"}
import { DyFM_AI_MessageRole } from '../_enums/ai-message-role.enum';
import { DyFM_AI_ToolCall } from './ai-tool-call.interface';
export interface DyFM_AI_Message {
role: DyFM_AI_MessageRole;
content: string;
/** Present on an assistant turn that requested tool calls (function calling). */
toolCalls?: DyFM_AI_ToolCall[];
/** Present on a `tool`-role message — which {@link DyFM_AI_ToolCall.id} this result answers. */
toolCallId?: string;
}
//# sourceMappingURL=ai-message.interface.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"ai-message.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-message.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB"}
{"version":3,"file":"ai-message.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_models/ai-message.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
export declare enum DyFM_AAI_Model {
claude_opus_4_8 = "claude-opus-4-8",
claude_sonnet_4_6 = "claude-sonnet-4-6",
claude_haiku_4_5 = "claude-haiku-4-5",
claude_haiku_4_5_20251001 = "claude-haiku-4-5-20251001",
claude_3_5_sonnet_latest = "claude-3-5-sonnet-latest",

@@ -3,0 +7,0 @@ claude_3_5_sonnet_20241022 = "claude-3-5-sonnet-20241022",

@@ -1,1 +0,1 @@

{"version":3,"file":"aai-model.enum.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts"],"names":[],"mappings":"AACA,oBAAY,cAAc;IACxB,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;CAChD"}
{"version":3,"file":"aai-model.enum.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts"],"names":[],"mappings":"AACA,oBAAY,cAAc;IAGxB,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,yBAAyB,8BAA8B;IAGvD,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;CAChD"}

@@ -7,2 +7,9 @@ "use strict";

(function (DyFM_AAI_Model) {
// Current GA (verified 2026-06). From the 4.6 generation the ids are
// dateless-but-pinned snapshots — there is NO `-latest` alias for these.
DyFM_AAI_Model["claude_opus_4_8"] = "claude-opus-4-8";
DyFM_AAI_Model["claude_sonnet_4_6"] = "claude-sonnet-4-6";
DyFM_AAI_Model["claude_haiku_4_5"] = "claude-haiku-4-5";
DyFM_AAI_Model["claude_haiku_4_5_20251001"] = "claude-haiku-4-5-20251001";
// Legacy / retired (kept for back-compat; NOT in the active registry)
DyFM_AAI_Model["claude_3_5_sonnet_latest"] = "claude-3-5-sonnet-latest";

@@ -9,0 +16,0 @@ DyFM_AAI_Model["claude_3_5_sonnet_20241022"] = "claude-3-5-sonnet-20241022";

@@ -1,1 +0,1 @@

{"version":3,"file":"aai-model.enum.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,uEAAqD,CAAA;IACrD,2EAAyD,CAAA;IACzD,qEAAmD,CAAA;IACnD,+DAA6C,CAAA;IAC7C,mEAAiD,CAAA;IACjD,iEAA+C,CAAA;AACjD,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB"}
{"version":3,"file":"aai-model.enum.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,IAAY,cAeX;AAfD,WAAY,cAAc;IACxB,qEAAqE;IACrE,yEAAyE;IACzE,qDAAmC,CAAA;IACnC,yDAAuC,CAAA;IACvC,uDAAqC,CAAA;IACrC,yEAAuD,CAAA;IAEvD,sEAAsE;IACtE,uEAAqD,CAAA;IACrD,2EAAyD,CAAA;IACzD,qEAAmD,CAAA;IACnD,+DAA6C,CAAA;IAC7C,mEAAiD,CAAA;IACjD,iEAA+C,CAAA;AACjD,CAAC,EAfW,cAAc,8BAAd,cAAc,QAezB"}

@@ -0,1 +1,2 @@

export * from './_collections/aai-models.const';
export * from './_enums/aai-model.enum';

@@ -2,0 +3,0 @@ export * from './_models/aai-client-options.interface';

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/anthropic/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AAGxC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,kDAAkD,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/anthropic/index.ts"],"names":[],"mappings":"AACA,cAAc,iCAAiC,CAAC;AAGhD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,kDAAkD,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
// COLLECTIONS
tslib_1.__exportStar(require("./_collections/aai-models.const"), exports);
// ENUMS

@@ -5,0 +7,0 @@ tslib_1.__exportStar(require("./_enums/aai-model.enum"), exports);

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/anthropic/index.ts"],"names":[],"mappings":";;;AAAA,QAAQ;AACR,kEAAwC;AAExC,SAAS;AACT,iFAAuD;AACvD,oFAA0D;AAC1D,+EAAqD;AACrD,2FAAiE"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/anthropic/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,0EAAgD;AAEhD,QAAQ;AACR,kEAAwC;AAExC,SAAS;AACT,iFAAuD;AACvD,oFAA0D;AAC1D,+EAAqD;AACrD,2FAAiE"}

@@ -0,1 +1,2 @@

export * from './_collections/fdpai-models.const';
export * from './_enums/fdpai-model.enum';

@@ -2,0 +3,0 @@ export * from './_models/fdpai-client-options.interface';

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/fdp-ai/index.ts"],"names":[],"mappings":"AACA,cAAc,2BAA2B,CAAC;AAG1C,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oDAAoD,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/fdp-ai/index.ts"],"names":[],"mappings":"AACA,cAAc,mCAAmC,CAAC;AAGlD,cAAc,2BAA2B,CAAC;AAG1C,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oDAAoD,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
// COLLECTIONS
tslib_1.__exportStar(require("./_collections/fdpai-models.const"), exports);
// ENUMS

@@ -5,0 +7,0 @@ tslib_1.__exportStar(require("./_enums/fdpai-model.enum"), exports);

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/fdp-ai/index.ts"],"names":[],"mappings":";;;AAAA,QAAQ;AACR,oEAA0C;AAE1C,SAAS;AACT,mFAAyD;AACzD,sFAA4D;AAC5D,iFAAuD;AACvD,6FAAmE"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/fdp-ai/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,4EAAkD;AAElD,QAAQ;AACR,oEAA0C;AAE1C,SAAS;AACT,mFAAyD;AACzD,sFAA4D;AAC5D,iFAAuD;AACvD,6FAAmE"}
export declare enum DyFM_GAI_Model {
gemini_3_5_flash = "gemini-3.5-flash",
gemini_3_1_pro_preview = "gemini-3.1-pro-preview",
gemini_3_1_flash_lite = "gemini-3.1-flash-lite",
gemini_embedding_2 = "gemini-embedding-2",
gemini_1_5_pro_latest = "gemini-1.5-pro-latest",

@@ -3,0 +7,0 @@ gemini_1_5_flash_latest = "gemini-1.5-flash-latest",

@@ -1,1 +0,1 @@

{"version":3,"file":"gai-model.enum.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts"],"names":[],"mappings":"AACA,oBAAY,cAAc;IACxB,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,kBAAkB,uBAAuB;CAC1C"}
{"version":3,"file":"gai-model.enum.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts"],"names":[],"mappings":"AAEA,oBAAY,cAAc;IAExB,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,kBAAkB,uBAAuB;IAGzC,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,kBAAkB,uBAAuB;CAC1C"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DyFM_GAI_Model = void 0;
// Based on @google/generative-ai model identifiers
// Based on the @google/genai SDK model identifiers
// (the older @google/generative-ai SDK was sunset 2025-11-30).
var DyFM_GAI_Model;
(function (DyFM_GAI_Model) {
// Current (verified 2026-06)
DyFM_GAI_Model["gemini_3_5_flash"] = "gemini-3.5-flash";
DyFM_GAI_Model["gemini_3_1_pro_preview"] = "gemini-3.1-pro-preview";
DyFM_GAI_Model["gemini_3_1_flash_lite"] = "gemini-3.1-flash-lite";
DyFM_GAI_Model["gemini_embedding_2"] = "gemini-embedding-2";
// Legacy (deprecated / removed from the active line-up)
DyFM_GAI_Model["gemini_1_5_pro_latest"] = "gemini-1.5-pro-latest";

@@ -8,0 +15,0 @@ DyFM_GAI_Model["gemini_1_5_flash_latest"] = "gemini-1.5-flash-latest";

@@ -1,1 +0,1 @@

{"version":3,"file":"gai-model.enum.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AACnD,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iEAA+C,CAAA;IAC/C,qEAAmD,CAAA;IACnD,2DAAyC,CAAA;AAC3C,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB"}
{"version":3,"file":"gai-model.enum.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AACnD,+DAA+D;AAC/D,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,6BAA6B;IAC7B,uDAAqC,CAAA;IACrC,mEAAiD,CAAA;IACjD,iEAA+C,CAAA;IAC/C,2DAAyC,CAAA;IAEzC,wDAAwD;IACxD,iEAA+C,CAAA;IAC/C,qEAAmD,CAAA;IACnD,2DAAyC,CAAA;AAC3C,CAAC,EAXW,cAAc,8BAAd,cAAc,QAWzB"}

@@ -0,1 +1,2 @@

export * from './_collections/gai-models.const';
export * from './_enums/gai-model.enum';

@@ -2,0 +3,0 @@ export * from './_models/gai-client-options.interface';

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/google-ai/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AAGxC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,kDAAkD,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/google-ai/index.ts"],"names":[],"mappings":"AACA,cAAc,iCAAiC,CAAC;AAGhD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,kDAAkD,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
// COLLECTIONS
tslib_1.__exportStar(require("./_collections/gai-models.const"), exports);
// ENUMS

@@ -5,0 +7,0 @@ tslib_1.__exportStar(require("./_enums/gai-model.enum"), exports);

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/google-ai/index.ts"],"names":[],"mappings":";;;AAAA,QAAQ;AACR,kEAAwC;AAExC,SAAS;AACT,iFAAuD;AACvD,oFAA0D;AAC1D,+EAAqD;AACrD,2FAAiE"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/google-ai/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,0EAAgD;AAEhD,QAAQ;AACR,kEAAwC;AAExC,SAAS;AACT,iFAAuD;AACvD,oFAA0D;AAC1D,+EAAqD;AACrD,2FAAiE"}

@@ -0,1 +1,2 @@

export * from './_collections/lai-models.const';
export * from './_enums/lai-model.enum';

@@ -2,0 +3,0 @@ export * from './_models/lai-client-options.interface';

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/local-ai/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AAGxC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/local-ai/index.ts"],"names":[],"mappings":"AACA,cAAc,iCAAiC,CAAC;AAGhD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
// COLLECTIONS
tslib_1.__exportStar(require("./_collections/lai-models.const"), exports);
// ENUMS

@@ -5,0 +7,0 @@ tslib_1.__exportStar(require("./_enums/lai-model.enum"), exports);

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/local-ai/index.ts"],"names":[],"mappings":";;;AAAA,QAAQ;AACR,kEAAwC;AAExC,SAAS;AACT,iFAAuD;AACvD,oFAA0D;AAC1D,+EAAqD"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/local-ai/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,0EAAgD;AAEhD,QAAQ;AACR,kEAAwC;AAExC,SAAS;AACT,iFAAuD;AACvD,oFAA0D;AAC1D,+EAAqD"}

@@ -5,2 +5,10 @@ /**

export declare enum DyFM_OAI_Model {
gpt55 = "gpt-5.5",
gpt55_pro = "gpt-5.5-pro",
gpt54 = "gpt-5.4",
gpt54_mini = "gpt-5.4-mini",
gpt54_nano = "gpt-5.4-nano",
o3_pro = "o3-pro",
gptImage_2 = "gpt-image-2",
gptImage_1 = "gpt-image-1",
gpt5 = "gpt-5",

@@ -7,0 +15,0 @@ gpt51 = "gpt-5.1",

@@ -1,1 +0,1 @@

{"version":3,"file":"oai-model.enum.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,oBAAY,cAAc;IAExB,IAAI,UAAU;IACd,KAAK,YAAY;IACjB,SAAS,eAAe;IACxB,SAAS,eAAe;IACxB,eAAe,sBAAsB;IACrC,gBAAgB,wBAAwB;IACxC,UAAU,gBAAgB;IAC1B,WAAW,kBAAkB;IAa7B,KAAK,WAAW,CAAE,0BAA0B;IAE5C,cAAc,sBAAsB,CAAE,6BAA6B;IAEnE,cAAc,sBAAsB,CAAE,0BAA0B;IAYhE,UAAU,gBAAgB,CAAE,6BAA6B;IAEzD,kBAAkB,2BAA2B,CAAE,gCAAgC;IAuB/E;;;OAGG;IACH,oBAAoB,2BAA2B,CAAE,wBAAwB;IACzE;;;OAGG;IACH,oBAAoB,2BAA2B,CAAE,wBAAwB;IACzE;;;OAGG;IACH,oBAAoB,2BAA2B;CAsEhD;AAED,MAAM,MAAM,uBAAuB,GACjC,cAAc,CAAC,oBAAoB,GACnC,cAAc,CAAC,oBAAoB,GACnC,cAAc,CAAC,oBAAoB,CAAC;AAEtC,eAAO,MAAM,2BAA2B,EAAE,uBAAuB,EAIhE,CAAC"}
{"version":3,"file":"oai-model.enum.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,oBAAY,cAAc;IAExB,KAAK,YAAY;IACjB,SAAS,gBAAgB;IACzB,KAAK,YAAY;IACjB,UAAU,iBAAiB;IAC3B,UAAU,iBAAiB;IAC3B,MAAM,WAAW;IAEjB,UAAU,gBAAgB;IAC1B,UAAU,gBAAgB;IAG1B,IAAI,UAAU;IACd,KAAK,YAAY;IACjB,SAAS,eAAe;IACxB,SAAS,eAAe;IACxB,eAAe,sBAAsB;IACrC,gBAAgB,wBAAwB;IACxC,UAAU,gBAAgB;IAC1B,WAAW,kBAAkB;IAa7B,KAAK,WAAW,CAAE,0BAA0B;IAE5C,cAAc,sBAAsB,CAAE,6BAA6B;IAEnE,cAAc,sBAAsB,CAAE,0BAA0B;IAYhE,UAAU,gBAAgB,CAAE,6BAA6B;IAEzD,kBAAkB,2BAA2B,CAAE,gCAAgC;IAuB/E;;;OAGG;IACH,oBAAoB,2BAA2B,CAAE,wBAAwB;IACzE;;;OAGG;IACH,oBAAoB,2BAA2B,CAAE,wBAAwB;IACzE;;;OAGG;IACH,oBAAoB,2BAA2B;CAsEhD;AAED,MAAM,MAAM,uBAAuB,GACjC,cAAc,CAAC,oBAAoB,GACnC,cAAc,CAAC,oBAAoB,GACnC,cAAc,CAAC,oBAAoB,CAAC;AAEtC,eAAO,MAAM,2BAA2B,EAAE,uBAAuB,EAIhE,CAAC"}

@@ -9,2 +9,12 @@ "use strict";

(function (DyFM_OAI_Model) {
// GPT-5.5 / 5.4 (current flagships — verified 2026-06)
DyFM_OAI_Model["gpt55"] = "gpt-5.5";
DyFM_OAI_Model["gpt55_pro"] = "gpt-5.5-pro";
DyFM_OAI_Model["gpt54"] = "gpt-5.4";
DyFM_OAI_Model["gpt54_mini"] = "gpt-5.4-mini";
DyFM_OAI_Model["gpt54_nano"] = "gpt-5.4-nano";
DyFM_OAI_Model["o3_pro"] = "o3-pro";
// Image generation (current)
DyFM_OAI_Model["gptImage_2"] = "gpt-image-2";
DyFM_OAI_Model["gptImage_1"] = "gpt-image-1";
// GPT-5

@@ -11,0 +21,0 @@ DyFM_OAI_Model["gpt5"] = "gpt-5";

@@ -1,1 +0,1 @@

{"version":3,"file":"oai-model.enum.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts"],"names":[],"mappings":";;;AAKA;;GAEG;AACH,IAAY,cAmJX;AAnJD,WAAY,cAAc;IACxB,QAAQ;IACR,gCAAc,CAAA;IACd,mCAAiB,CAAA;IACjB,0CAAwB,CAAA;IACxB,0CAAwB,CAAA;IACxB,uDAAqC,CAAA;IACrC,0DAAwC,CAAA;IACxC,4CAA0B,CAAA;IAC1B,+CAA6B,CAAA;IAC7B,6BAA6B,CAAC,iBAAiB;IAE/C,UAAU;IACV;;;;;+DAK2D;IAE3D,QAAQ;IACR,QAAQ;IACR,kCAAgB,CAAA;IAChB,oBAAoB;IACpB,sDAAoC,CAAA;IACpC,oBAAoB;IACpB,sDAAoC,CAAA;IAEpC;;;;;;iDAM6C;IAE7C,WAAW;IACX,cAAc;IACd,4CAA0B,CAAA;IAC1B,yBAAyB;IACzB,+DAA6C,CAAA;IAG7C,SAAS;IACT;;;qDAGiD;IAEjD,SAAS;IACT;;;+BAG2B;IAE3B,uBAAuB;IACvB;;;;+BAI2B;IAE3B,kBAAkB;IAClB;;;OAGG;IACH,iEAA+C,CAAA;IAC/C;;;OAGG;IACH,iEAA+C,CAAA;IAC/C;;;OAGG;IACH,iEAA+C,CAAA;IAE/C;;uDAEmD;IAEnD,sBAAsB;IACtB;;wDAEoD;IAGpD,iCAAiC;IAYjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA6C8B;AAChC,CAAC,EAnJW,cAAc,8BAAd,cAAc,QAmJzB;AAOY,QAAA,2BAA2B,GAA8B;IACpE,cAAc,CAAC,oBAAoB;IACnC,cAAc,CAAC,oBAAoB;IACnC,cAAc,CAAC,oBAAoB;CACpC,CAAC"}
{"version":3,"file":"oai-model.enum.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts"],"names":[],"mappings":";;;AAKA;;GAEG;AACH,IAAY,cA8JX;AA9JD,WAAY,cAAc;IACxB,uDAAuD;IACvD,mCAAiB,CAAA;IACjB,2CAAyB,CAAA;IACzB,mCAAiB,CAAA;IACjB,6CAA2B,CAAA;IAC3B,6CAA2B,CAAA;IAC3B,mCAAiB,CAAA;IACjB,6BAA6B;IAC7B,4CAA0B,CAAA;IAC1B,4CAA0B,CAAA;IAE1B,QAAQ;IACR,gCAAc,CAAA;IACd,mCAAiB,CAAA;IACjB,0CAAwB,CAAA;IACxB,0CAAwB,CAAA;IACxB,uDAAqC,CAAA;IACrC,0DAAwC,CAAA;IACxC,4CAA0B,CAAA;IAC1B,+CAA6B,CAAA;IAC7B,6BAA6B,CAAC,iBAAiB;IAE/C,UAAU;IACV;;;;;+DAK2D;IAE3D,QAAQ;IACR,QAAQ;IACR,kCAAgB,CAAA;IAChB,oBAAoB;IACpB,sDAAoC,CAAA;IACpC,oBAAoB;IACpB,sDAAoC,CAAA;IAEpC;;;;;;iDAM6C;IAE7C,WAAW;IACX,cAAc;IACd,4CAA0B,CAAA;IAC1B,yBAAyB;IACzB,+DAA6C,CAAA;IAG7C,SAAS;IACT;;;qDAGiD;IAEjD,SAAS;IACT;;;+BAG2B;IAE3B,uBAAuB;IACvB;;;;+BAI2B;IAE3B,kBAAkB;IAClB;;;OAGG;IACH,iEAA+C,CAAA;IAC/C;;;OAGG;IACH,iEAA+C,CAAA;IAC/C;;;OAGG;IACH,iEAA+C,CAAA;IAE/C;;uDAEmD;IAEnD,sBAAsB;IACtB;;wDAEoD;IAGpD,iCAAiC;IAYjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA6C8B;AAChC,CAAC,EA9JW,cAAc,8BAAd,cAAc,QA8JzB;AAOY,QAAA,2BAA2B,GAA8B;IACpE,cAAc,CAAC,oBAAoB;IACnC,cAAc,CAAC,oBAAoB;IACnC,cAAc,CAAC,oBAAoB;CACpC,CAAC"}
export * from './_collections/oai-embedding-model-dimensions.const';
export * from './_collections/oai-models.const';
export * from './_enums/oai-model.enum';

@@ -3,0 +4,0 @@ export * from './_models/oai-call-settings.control-model';

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/open-ai/index.ts"],"names":[],"mappings":"AAaA,cAAc,qDAAqD,CAAC;AAGpE,cAAc,yBAAyB,CAAC;AAGxC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kDAAkD,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/open-ai/index.ts"],"names":[],"mappings":"AAaA,cAAc,qDAAqD,CAAC;AACpE,cAAc,iCAAiC,CAAC;AAGhD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kDAAkD,CAAC"}

@@ -14,2 +14,3 @@ "use strict";

tslib_1.__exportStar(require("./_collections/oai-embedding-model-dimensions.const"), exports);
tslib_1.__exportStar(require("./_collections/oai-models.const"), exports);
// ENUMS

@@ -16,0 +17,0 @@ tslib_1.__exportStar(require("./_enums/oai-model.enum"), exports);

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/open-ai/index.ts"],"names":[],"mappings":";AAGA;;;;;;;IAOI;;;AAEJ,cAAc;AACd,8FAAoE;AAEpE,QAAQ;AACR,kEAAwC;AAExC,SAAS;AACT,oFAA0D;AAC1D,iFAAuD;AACvD,iFAAuD;AACvD,+EAAqD;AACrD,2FAAiE"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/open-ai/index.ts"],"names":[],"mappings":";AAGA;;;;;;;IAOI;;;AAEJ,cAAc;AACd,8FAAoE;AACpE,0EAAgD;AAEhD,QAAQ;AACR,kEAAwC;AAExC,SAAS;AACT,oFAA0D;AAC1D,iFAAuD;AACvD,iFAAuD;AACvD,+EAAqD;AACrD,2FAAiE"}
export * from './_collections/ai-model-ref.util';
export * from './_collections/ai-model-registry.util';
export * from './_enums/ai-provider.enum';

@@ -12,5 +13,12 @@ export * from './_enums/ai-model-type.enum';

export * from './_models/ai-message.interface';
export * from './_models/ai-model-capabilities.interface';
export * from './_models/ai-model-info.interface';
export * from './_models/ai-model-settings-schema.interface';
export * from './_models/ai-provider-capabilities.interface';
export * from './_models/ai-settings.interface';
export * from './_models/ai-tool.interface';
export * from './_models/ai-tool-call.interface';
export * from './_models/ai-tool-result.interface';
export * from './_models/ai-tool-handler.type';
export * from './_models/ai-user-provider-config.control-model';
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/ai/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AAGjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/ai/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iDAAiD,CAAC"}

@@ -6,2 +6,3 @@ "use strict";

tslib_1.__exportStar(require("./_collections/ai-model-ref.util"), exports);
tslib_1.__exportStar(require("./_collections/ai-model-registry.util"), exports);
// ENUMS

@@ -19,5 +20,12 @@ tslib_1.__exportStar(require("./_enums/ai-provider.enum"), exports);

tslib_1.__exportStar(require("./_models/ai-message.interface"), exports);
tslib_1.__exportStar(require("./_models/ai-model-capabilities.interface"), exports);
tslib_1.__exportStar(require("./_models/ai-model-info.interface"), exports);
tslib_1.__exportStar(require("./_models/ai-model-settings-schema.interface"), exports);
tslib_1.__exportStar(require("./_models/ai-provider-capabilities.interface"), exports);
tslib_1.__exportStar(require("./_models/ai-settings.interface"), exports);
tslib_1.__exportStar(require("./_models/ai-tool.interface"), exports);
tslib_1.__exportStar(require("./_models/ai-tool-call.interface"), exports);
tslib_1.__exportStar(require("./_models/ai-tool-result.interface"), exports);
tslib_1.__exportStar(require("./_models/ai-tool-handler.type"), exports);
tslib_1.__exportStar(require("./_models/ai-user-provider-config.control-model"), exports);
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/ai/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,2EAAiD;AAEjD,QAAQ;AACR,oEAA0C;AAC1C,sEAA4C;AAC5C,wEAA8C;AAE9C,SAAS;AACT,+EAAqD;AACrD,wEAA8C;AAC9C,mFAAyD;AACzD,oFAA0D;AAC1D,6EAAmD;AACnD,8EAAoD;AACpD,yEAA+C;AAC/C,uFAA6D;AAC7D,0EAAgD;AAChD,0FAAgE"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/ai/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,2EAAiD;AACjD,gFAAsD;AAEtD,QAAQ;AACR,oEAA0C;AAC1C,sEAA4C;AAC5C,wEAA8C;AAE9C,SAAS;AACT,+EAAqD;AACrD,wEAA8C;AAC9C,mFAAyD;AACzD,oFAA0D;AAC1D,6EAAmD;AACnD,8EAAoD;AACpD,yEAA+C;AAC/C,oFAA0D;AAC1D,4EAAkD;AAClD,uFAA6D;AAC7D,uFAA6D;AAC7D,0EAAgD;AAChD,sEAA4C;AAC5C,2EAAiD;AACjD,6EAAmD;AACnD,yEAA+C;AAC/C,0FAAgE"}
{
"name": "@futdevpro/fsm-dynamo",
"version": "01.15.16",
"version": "01.15.17",
"description": "Full Stack Model Collection for Dynamic (NodeJS-Typescript) Framework called Dynamo, by Future Development Ltd.",

@@ -5,0 +5,0 @@ "DyBu_settings": {

@@ -5,2 +5,4 @@ export enum DyFM_AI_MessageRole {

assistant = 'assistant',
/** Tool-result message (function calling). Provider translators map this to their native shape. */
tool = 'tool',
}

@@ -5,2 +5,4 @@ export enum DyFM_AI_ModelType {

Chat = 'chat',
Image = 'image',
Audio = 'audio',
}

@@ -0,1 +1,22 @@

/**
* Agnostic LLM call settings — the provider-neutral tuning bag.
*
* The typed fields below are the common, broadly-supported knobs. The
* `[key: string]: any` escape hatch carries provider/model-specific params
* until they are first-classed.
*
* IMPORTANT — per-model variance (FR-048, reserved): NOT every model accepts
* every field here, and sending an unsupported param can hard-fail the call
* (e.g. Anthropic Opus 4.7+ rejects `temperature`/`topP`/`topK` with HTTP 400;
* reasoning models take an extra `reasoningEffort`; pro models drop streaming).
* This flat bag intentionally does NOT encode those constraints — the future
* per-model settings system ({@link DyFM_AI_ModelSettingsSchema} on the model
* registry + a reconciler in `DyNTS_AI_LLM_ServiceBase`) will validate, clamp,
* and drop params against what each model actually accepts. Until then,
* provider translators drop model-rejected params locally (see FR-047 Phase 4
* Anthropic). Do not assume a field here is universally accepted.
*
* See: `__agent/feature-requests/FR-048-per-model-agnostic-settings.md`
* `documentations/guidelines/development/ai-per-model-settings.md`
*/
export class DyFM_AI_CallSettings {

@@ -2,0 +23,0 @@ systemPrompt?: string = '';

import { DyFM_AI_Message } from './ai-message.interface';
import { DyFM_AI_ToolCall } from './ai-tool-call.interface';

@@ -16,2 +17,6 @@ /**

finishReason?: string;
/** Present when the model requested tool calls (function calling); normalized across providers. */
toolCalls?: DyFM_AI_ToolCall[];
/** Normalized stop reason (e.g. 'tool_use', 'stop', 'length'). */
stopReason?: string;
rawResponse?: any; // Provider-specific raw response

@@ -18,0 +23,0 @@ }

import { DyFM_AI_MessageRole } from '../_enums/ai-message-role.enum';
import { DyFM_AI_ToolCall } from './ai-tool-call.interface';

@@ -6,3 +7,7 @@ export interface DyFM_AI_Message {

content: string;
/** Present on an assistant turn that requested tool calls (function calling). */
toolCalls?: DyFM_AI_ToolCall[];
/** Present on a `tool`-role message — which {@link DyFM_AI_ToolCall.id} this result answers. */
toolCallId?: string;
}
// Based on @anthropic-ai/sdk model identifiers
export enum DyFM_AAI_Model {
// Current GA (verified 2026-06). From the 4.6 generation the ids are
// dateless-but-pinned snapshots — there is NO `-latest` alias for these.
claude_opus_4_8 = 'claude-opus-4-8',
claude_sonnet_4_6 = 'claude-sonnet-4-6',
claude_haiku_4_5 = 'claude-haiku-4-5',
claude_haiku_4_5_20251001 = 'claude-haiku-4-5-20251001',
// Legacy / retired (kept for back-compat; NOT in the active registry)
claude_3_5_sonnet_latest = 'claude-3-5-sonnet-latest',

@@ -4,0 +12,0 @@ claude_3_5_sonnet_20241022 = 'claude-3-5-sonnet-20241022',

@@ -0,1 +1,4 @@

// COLLECTIONS
export * from './_collections/aai-models.const';
// ENUMS

@@ -2,0 +5,0 @@ export * from './_enums/aai-model.enum';

@@ -0,1 +1,4 @@

// COLLECTIONS
export * from './_collections/fdpai-models.const';
// ENUMS

@@ -2,0 +5,0 @@ export * from './_enums/fdpai-model.enum';

@@ -1,3 +0,11 @@

// Based on @google/generative-ai model identifiers
// Based on the @google/genai SDK model identifiers
// (the older @google/generative-ai SDK was sunset 2025-11-30).
export enum DyFM_GAI_Model {
// Current (verified 2026-06)
gemini_3_5_flash = 'gemini-3.5-flash',
gemini_3_1_pro_preview = 'gemini-3.1-pro-preview',
gemini_3_1_flash_lite = 'gemini-3.1-flash-lite',
gemini_embedding_2 = 'gemini-embedding-2',
// Legacy (deprecated / removed from the active line-up)
gemini_1_5_pro_latest = 'gemini-1.5-pro-latest',

@@ -4,0 +12,0 @@ gemini_1_5_flash_latest = 'gemini-1.5-flash-latest',

@@ -0,1 +1,4 @@

// COLLECTIONS
export * from './_collections/gai-models.const';
// ENUMS

@@ -2,0 +5,0 @@ export * from './_enums/gai-model.enum';

@@ -0,1 +1,4 @@

// COLLECTIONS
export * from './_collections/lai-models.const';
// ENUMS

@@ -2,0 +5,0 @@ export * from './_enums/lai-model.enum';

@@ -10,2 +10,13 @@

export enum DyFM_OAI_Model {
// GPT-5.5 / 5.4 (current flagships — verified 2026-06)
gpt55 = 'gpt-5.5',
gpt55_pro = 'gpt-5.5-pro',
gpt54 = 'gpt-5.4',
gpt54_mini = 'gpt-5.4-mini',
gpt54_nano = 'gpt-5.4-nano',
o3_pro = 'o3-pro',
// Image generation (current)
gptImage_2 = 'gpt-image-2',
gptImage_1 = 'gpt-image-1',
// GPT-5

@@ -12,0 +23,0 @@ gpt5 = 'gpt-5',

@@ -15,2 +15,3 @@

export * from './_collections/oai-embedding-model-dimensions.const';
export * from './_collections/oai-models.const';

@@ -17,0 +18,0 @@ // ENUMS

// COLLECTIONS
export * from './_collections/ai-model-ref.util';
export * from './_collections/ai-model-registry.util';

@@ -17,4 +18,11 @@ // ENUMS

export * from './_models/ai-message.interface';
export * from './_models/ai-model-capabilities.interface';
export * from './_models/ai-model-info.interface';
export * from './_models/ai-model-settings-schema.interface';
export * from './_models/ai-provider-capabilities.interface';
export * from './_models/ai-settings.interface';
export * from './_models/ai-tool.interface';
export * from './_models/ai-tool-call.interface';
export * from './_models/ai-tool-result.interface';
export * from './_models/ai-tool-handler.type';
export * from './_models/ai-user-provider-config.control-model';