@nyrra/foundry-ai 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/config.ts","../src/errors.ts","../src/models/anthropic-models.ts","../src/models/openai-models.ts","../src/models/catalog.ts","../src/types.ts"],"sourcesContent":["export { loadFoundryConfig } from './config.js';\nexport { FoundryModelNotFoundError } from './errors.js';\nexport { ANTHROPIC_MODELS } from './models/anthropic-models.js';\nexport {\n getModelMetadata,\n hasKnownModel,\n MODEL_CATALOG,\n MODEL_CATALOG_BY_RID,\n resolveKnownModelMetadata,\n resolveModelProvider,\n resolveModelRid,\n resolveModelTarget,\n} from './models/catalog.js';\nexport { OPENAI_MODELS } from './models/openai-models.js';\nexport type {\n AnthropicModelId,\n FoundryConfig,\n KnownAnthropicModelId,\n KnownModelId,\n KnownOpenAIModelId,\n ModelLifecycle,\n ModelMetadata,\n ModelProvider,\n OpenAIModelId,\n ResolvedModelTarget,\n} from './types.js';\nexport { ANTHROPIC_MODEL_IDS, OPENAI_MODEL_IDS } from './types.js';\n","import type { FoundryConfig } from './types.js';\n\nconst FOUNDRY_URL_ENV = 'FOUNDRY_URL';\nconst FOUNDRY_TOKEN_ENV = 'FOUNDRY_TOKEN';\nconst FOUNDRY_ATTRIBUTION_RID_ENV = 'FOUNDRY_ATTRIBUTION_RID';\n\nexport function loadFoundryConfig(env: NodeJS.ProcessEnv = process.env): FoundryConfig {\n return normalizeResolvedFoundryConfig({\n foundryUrl: requireEnv(env, FOUNDRY_URL_ENV),\n token: requireEnv(env, FOUNDRY_TOKEN_ENV),\n attributionRid: optionalEnv(env, FOUNDRY_ATTRIBUTION_RID_ENV),\n });\n}\n\nexport function normalizeFoundryUrl(foundryUrl: string): string {\n return foundryUrl.trim().replace(/\\/+$/, '');\n}\n\nexport function resolveFoundryConfig(config: FoundryConfig, callerName: string): FoundryConfig {\n const normalizedConfig = normalizeResolvedFoundryConfig({\n foundryUrl: typeof config.foundryUrl === 'string' ? config.foundryUrl : '',\n token: typeof config.token === 'string' ? config.token : '',\n attributionRid: typeof config.attributionRid === 'string' ? config.attributionRid : undefined,\n });\n\n if (normalizedConfig.foundryUrl.length === 0) {\n throw new Error(`${callerName} requires config.foundryUrl to be a non-empty string.`);\n }\n\n if (normalizedConfig.token.length === 0) {\n throw new Error(`${callerName} requires config.token to be a non-empty string.`);\n }\n\n return normalizedConfig;\n}\n\nfunction requireEnv(env: NodeJS.ProcessEnv, name: string): string {\n const value = optionalEnv(env, name);\n\n if (value == null) {\n throw new Error(`Missing required environment variable: ${name}`);\n }\n\n return value;\n}\n\nfunction optionalEnv(env: NodeJS.ProcessEnv, name: string): string | undefined {\n const value = env[name]?.trim();\n\n return value ? value : undefined;\n}\n\nfunction normalizeResolvedFoundryConfig(config: {\n foundryUrl: string;\n token: string;\n attributionRid?: string;\n}): FoundryConfig {\n const attributionRid = config.attributionRid?.trim();\n\n return {\n foundryUrl: normalizeFoundryUrl(config.foundryUrl),\n token: config.token.trim(),\n attributionRid: attributionRid || undefined,\n };\n}\n","export class FoundryModelNotFoundError extends Error {\n constructor(modelId: string) {\n super(\n `Unknown model: \"${modelId}\". Check the catalog for supported aliases or pass a raw Foundry RID directly to a provider adapter.`,\n );\n this.name = 'FoundryModelNotFoundError';\n }\n}\n","import type { KnownAnthropicModelId, ModelLifecycle, ModelMetadata } from '../types.js';\n\nfunction createAnthropicModel(\n rid: string,\n displayName: string,\n lifecycle: ModelLifecycle,\n): ModelMetadata {\n return {\n rid,\n provider: 'anthropic',\n displayName,\n supportsVision: true,\n supportsResponses: false,\n lifecycle,\n };\n}\n\nexport const ANTHROPIC_MODELS = {\n 'claude-3.5-haiku': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-3-5-haiku',\n 'Claude 3.5 Haiku',\n 'ga',\n ),\n 'claude-3.7-sonnet': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-3-7-sonnet',\n 'Claude 3.7 Sonnet',\n 'ga',\n ),\n 'claude-haiku-4.5': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-5-haiku',\n 'Claude Haiku 4.5',\n 'ga',\n ),\n 'claude-opus-4': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-opus',\n 'Claude Opus 4',\n 'ga',\n ),\n 'claude-opus-4.1': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-1-opus',\n 'Claude Opus 4.1',\n 'ga',\n ),\n 'claude-opus-4.5': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-5-opus',\n 'Claude Opus 4.5',\n 'ga',\n ),\n 'claude-opus-4.6': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-6-opus',\n 'Claude Opus 4.6',\n 'ga',\n ),\n 'claude-sonnet-4': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-sonnet',\n 'Claude Sonnet 4',\n 'ga',\n ),\n 'claude-sonnet-4.5': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-5-sonnet',\n 'Claude Sonnet 4.5',\n 'ga',\n ),\n 'claude-sonnet-4.6': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-6-sonnet',\n 'Claude Sonnet 4.6',\n 'ga',\n ),\n} as const satisfies Record<KnownAnthropicModelId, ModelMetadata>;\n","import type { KnownOpenAIModelId, ModelLifecycle, ModelMetadata } from '../types.js';\n\nfunction createOpenAIModel(\n rid: string,\n displayName: string,\n {\n lifecycle,\n supportsVision = true,\n }: {\n lifecycle: ModelLifecycle;\n supportsVision?: boolean;\n },\n): ModelMetadata {\n return {\n rid,\n provider: 'openai',\n displayName,\n supportsVision,\n supportsResponses: true,\n lifecycle,\n };\n}\n\nexport const OPENAI_MODELS = {\n 'gpt-4.1': createOpenAIModel('ri.language-model-service..language-model.gpt-4-1', 'GPT-4.1', {\n lifecycle: 'ga',\n }),\n 'gpt-4.1-mini': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-4-1-mini',\n 'GPT-4.1 Mini',\n { lifecycle: 'ga' },\n ),\n 'gpt-4.1-nano': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-4-1-nano',\n 'GPT-4.1 Nano',\n { lifecycle: 'ga' },\n ),\n 'gpt-4o': createOpenAIModel('ri.language-model-service..language-model.gpt-4-o', 'GPT-4o', {\n lifecycle: 'ga',\n }),\n 'gpt-4o-mini': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-4-o-mini',\n 'GPT-4o Mini',\n { lifecycle: 'ga' },\n ),\n 'gpt-5': createOpenAIModel('ri.language-model-service..language-model.gpt-5', 'GPT-5', {\n lifecycle: 'ga',\n }),\n 'gpt-5-codex': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-codex',\n 'GPT-5 Codex',\n { lifecycle: 'ga', supportsVision: false },\n ),\n 'gpt-5-mini': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-mini',\n 'GPT-5 Mini',\n { lifecycle: 'ga' },\n ),\n 'gpt-5-nano': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-nano',\n 'GPT-5 Nano',\n { lifecycle: 'ga' },\n ),\n 'gpt-5.1': createOpenAIModel('ri.language-model-service..language-model.gpt-5-1', 'GPT-5.1', {\n lifecycle: 'ga',\n }),\n 'gpt-5.1-codex': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-1-codex',\n 'GPT-5.1 Codex',\n { lifecycle: 'ga', supportsVision: false },\n ),\n 'gpt-5.1-codex-mini': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-1-codex-mini',\n 'GPT-5.1 Codex Mini',\n { lifecycle: 'ga', supportsVision: false },\n ),\n 'gpt-5.2': createOpenAIModel('ri.language-model-service..language-model.gpt-5-2', 'GPT-5.2', {\n lifecycle: 'experimental',\n }),\n 'gpt-5.4': createOpenAIModel('ri.language-model-service..language-model.gpt-5-4', 'GPT-5.4', {\n lifecycle: 'experimental',\n }),\n o3: createOpenAIModel('ri.language-model-service..language-model.o-3', 'o3', { lifecycle: 'ga' }),\n 'o4-mini': createOpenAIModel('ri.language-model-service..language-model.o-4-mini', 'o4 Mini', {\n lifecycle: 'ga',\n }),\n} as const satisfies Record<KnownOpenAIModelId, ModelMetadata>;\n\nconst OPENAI_REASONING_MODEL_IDS = new Set<KnownOpenAIModelId>([\n 'gpt-5',\n 'gpt-5-mini',\n 'gpt-5-nano',\n 'gpt-5.2',\n 'gpt-5.4',\n 'o3',\n 'o4-mini',\n]);\n\nconst OPENAI_REASONING_MODEL_TARGETS = new Set<string>([\n ...OPENAI_REASONING_MODEL_IDS,\n ...Object.entries(OPENAI_MODELS)\n .filter(([modelId]) => OPENAI_REASONING_MODEL_IDS.has(modelId as KnownOpenAIModelId))\n .map(([, metadata]) => metadata.rid),\n]);\n\nexport function isKnownOpenAIReasoningTarget(modelId: string): boolean {\n return OPENAI_REASONING_MODEL_TARGETS.has(modelId);\n}\n","import { FoundryModelNotFoundError } from '../errors.js';\nimport type { KnownModelId, ModelMetadata, ModelProvider, ResolvedModelTarget } from '../types.js';\nimport { ANTHROPIC_MODELS } from './anthropic-models.js';\nimport { OPENAI_MODELS } from './openai-models.js';\n\nexport const MODEL_CATALOG = {\n ...OPENAI_MODELS,\n ...ANTHROPIC_MODELS,\n} as const satisfies Record<KnownModelId, ModelMetadata>;\nexport const MODEL_CATALOG_BY_RID = Object.fromEntries(\n Object.values(MODEL_CATALOG).map((metadata) => [metadata.rid, metadata]),\n) as Record<string, ModelMetadata>;\n\nexport function getModelMetadata(modelId: string): ModelMetadata | undefined {\n return MODEL_CATALOG[modelId as KnownModelId];\n}\n\nexport function hasKnownModel(modelId: string): modelId is KnownModelId {\n return getModelMetadata(modelId) != null;\n}\n\nexport function resolveModelTarget(modelId: string): ResolvedModelTarget {\n const metadata = getModelMetadata(modelId) ?? getModelMetadataByRid(modelId);\n\n return {\n rid: metadata?.rid ?? modelId,\n metadata,\n };\n}\n\nexport function resolveKnownModelMetadata(modelId: string): ModelMetadata {\n const metadata = getModelMetadata(modelId);\n\n if (metadata == null) {\n throw new FoundryModelNotFoundError(modelId);\n }\n\n return metadata;\n}\n\nexport function resolveModelRid(modelId: string): string {\n return resolveKnownModelMetadata(modelId).rid;\n}\n\nexport function resolveModelProvider(modelId: string): ModelProvider {\n return resolveKnownModelMetadata(modelId).provider;\n}\n\nfunction getModelMetadataByRid(modelRid: string): ModelMetadata | undefined {\n return MODEL_CATALOG_BY_RID[modelRid];\n}\n","export interface FoundryConfig {\n foundryUrl: string;\n token: string;\n attributionRid?: string;\n}\n\nexport const OPENAI_MODEL_IDS = [\n 'gpt-4.1',\n 'gpt-4.1-mini',\n 'gpt-4.1-nano',\n 'gpt-4o',\n 'gpt-4o-mini',\n 'gpt-5',\n 'gpt-5-codex',\n 'gpt-5-mini',\n 'gpt-5-nano',\n 'gpt-5.1',\n 'gpt-5.1-codex',\n 'gpt-5.1-codex-mini',\n 'gpt-5.2',\n 'gpt-5.4',\n 'o3',\n 'o4-mini',\n] as const;\n\nexport type KnownOpenAIModelId = (typeof OPENAI_MODEL_IDS)[number];\n\nexport type OpenAIModelId = KnownOpenAIModelId | (string & {});\n\nexport const ANTHROPIC_MODEL_IDS = [\n 'claude-3.5-haiku',\n 'claude-3.7-sonnet',\n 'claude-haiku-4.5',\n 'claude-opus-4',\n 'claude-opus-4.1',\n 'claude-opus-4.5',\n 'claude-opus-4.6',\n 'claude-sonnet-4',\n 'claude-sonnet-4.5',\n 'claude-sonnet-4.6',\n] as const;\n\nexport type KnownAnthropicModelId = (typeof ANTHROPIC_MODEL_IDS)[number];\n\nexport type AnthropicModelId = KnownAnthropicModelId | (string & {});\n\nexport type KnownModelId = KnownOpenAIModelId | KnownAnthropicModelId;\n\nexport type ModelProvider = 'openai' | 'anthropic';\nexport type ModelLifecycle = 'ga' | 'experimental' | 'deprecated';\n\nexport interface ModelMetadata {\n rid: string;\n provider: ModelProvider;\n displayName: string;\n supportsVision: boolean;\n supportsResponses: boolean;\n lifecycle: ModelLifecycle;\n}\n\nexport interface ResolvedModelTarget {\n rid: string;\n metadata?: ModelMetadata;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,78 @@
1
+ import { F as FoundryConfig, M as ModelMetadata, K as KnownModelId, a as ModelProvider, R as ResolvedModelTarget } from './types-cG4EwdjA.cjs';
2
+ export { A as ANTHROPIC_MODEL_IDS, b as AnthropicModelId, c as KnownAnthropicModelId, d as KnownOpenAIModelId, e as ModelLifecycle, O as OPENAI_MODEL_IDS, f as OpenAIModelId } from './types-cG4EwdjA.cjs';
3
+
4
+ declare function loadFoundryConfig(env?: NodeJS.ProcessEnv): FoundryConfig;
5
+
6
+ declare class FoundryModelNotFoundError extends Error {
7
+ constructor(modelId: string);
8
+ }
9
+
10
+ declare const ANTHROPIC_MODELS: {
11
+ readonly 'claude-3.5-haiku': ModelMetadata;
12
+ readonly 'claude-3.7-sonnet': ModelMetadata;
13
+ readonly 'claude-haiku-4.5': ModelMetadata;
14
+ readonly 'claude-opus-4': ModelMetadata;
15
+ readonly 'claude-opus-4.1': ModelMetadata;
16
+ readonly 'claude-opus-4.5': ModelMetadata;
17
+ readonly 'claude-opus-4.6': ModelMetadata;
18
+ readonly 'claude-sonnet-4': ModelMetadata;
19
+ readonly 'claude-sonnet-4.5': ModelMetadata;
20
+ readonly 'claude-sonnet-4.6': ModelMetadata;
21
+ };
22
+
23
+ declare const MODEL_CATALOG: {
24
+ readonly 'claude-3.5-haiku': ModelMetadata;
25
+ readonly 'claude-3.7-sonnet': ModelMetadata;
26
+ readonly 'claude-haiku-4.5': ModelMetadata;
27
+ readonly 'claude-opus-4': ModelMetadata;
28
+ readonly 'claude-opus-4.1': ModelMetadata;
29
+ readonly 'claude-opus-4.5': ModelMetadata;
30
+ readonly 'claude-opus-4.6': ModelMetadata;
31
+ readonly 'claude-sonnet-4': ModelMetadata;
32
+ readonly 'claude-sonnet-4.5': ModelMetadata;
33
+ readonly 'claude-sonnet-4.6': ModelMetadata;
34
+ readonly 'gpt-4.1': ModelMetadata;
35
+ readonly 'gpt-4.1-mini': ModelMetadata;
36
+ readonly 'gpt-4.1-nano': ModelMetadata;
37
+ readonly 'gpt-4o': ModelMetadata;
38
+ readonly 'gpt-4o-mini': ModelMetadata;
39
+ readonly 'gpt-5': ModelMetadata;
40
+ readonly 'gpt-5-codex': ModelMetadata;
41
+ readonly 'gpt-5-mini': ModelMetadata;
42
+ readonly 'gpt-5-nano': ModelMetadata;
43
+ readonly 'gpt-5.1': ModelMetadata;
44
+ readonly 'gpt-5.1-codex': ModelMetadata;
45
+ readonly 'gpt-5.1-codex-mini': ModelMetadata;
46
+ readonly 'gpt-5.2': ModelMetadata;
47
+ readonly 'gpt-5.4': ModelMetadata;
48
+ readonly o3: ModelMetadata;
49
+ readonly 'o4-mini': ModelMetadata;
50
+ };
51
+ declare const MODEL_CATALOG_BY_RID: Record<string, ModelMetadata>;
52
+ declare function getModelMetadata(modelId: string): ModelMetadata | undefined;
53
+ declare function hasKnownModel(modelId: string): modelId is KnownModelId;
54
+ declare function resolveModelTarget(modelId: string): ResolvedModelTarget;
55
+ declare function resolveKnownModelMetadata(modelId: string): ModelMetadata;
56
+ declare function resolveModelRid(modelId: string): string;
57
+ declare function resolveModelProvider(modelId: string): ModelProvider;
58
+
59
+ declare const OPENAI_MODELS: {
60
+ readonly 'gpt-4.1': ModelMetadata;
61
+ readonly 'gpt-4.1-mini': ModelMetadata;
62
+ readonly 'gpt-4.1-nano': ModelMetadata;
63
+ readonly 'gpt-4o': ModelMetadata;
64
+ readonly 'gpt-4o-mini': ModelMetadata;
65
+ readonly 'gpt-5': ModelMetadata;
66
+ readonly 'gpt-5-codex': ModelMetadata;
67
+ readonly 'gpt-5-mini': ModelMetadata;
68
+ readonly 'gpt-5-nano': ModelMetadata;
69
+ readonly 'gpt-5.1': ModelMetadata;
70
+ readonly 'gpt-5.1-codex': ModelMetadata;
71
+ readonly 'gpt-5.1-codex-mini': ModelMetadata;
72
+ readonly 'gpt-5.2': ModelMetadata;
73
+ readonly 'gpt-5.4': ModelMetadata;
74
+ readonly o3: ModelMetadata;
75
+ readonly 'o4-mini': ModelMetadata;
76
+ };
77
+
78
+ export { ANTHROPIC_MODELS, FoundryConfig, FoundryModelNotFoundError, KnownModelId, MODEL_CATALOG, MODEL_CATALOG_BY_RID, ModelMetadata, ModelProvider, OPENAI_MODELS, ResolvedModelTarget, getModelMetadata, hasKnownModel, loadFoundryConfig, resolveKnownModelMetadata, resolveModelProvider, resolveModelRid, resolveModelTarget };
@@ -0,0 +1,78 @@
1
+ import { F as FoundryConfig, M as ModelMetadata, K as KnownModelId, a as ModelProvider, R as ResolvedModelTarget } from './types-cG4EwdjA.js';
2
+ export { A as ANTHROPIC_MODEL_IDS, b as AnthropicModelId, c as KnownAnthropicModelId, d as KnownOpenAIModelId, e as ModelLifecycle, O as OPENAI_MODEL_IDS, f as OpenAIModelId } from './types-cG4EwdjA.js';
3
+
4
+ declare function loadFoundryConfig(env?: NodeJS.ProcessEnv): FoundryConfig;
5
+
6
+ declare class FoundryModelNotFoundError extends Error {
7
+ constructor(modelId: string);
8
+ }
9
+
10
+ declare const ANTHROPIC_MODELS: {
11
+ readonly 'claude-3.5-haiku': ModelMetadata;
12
+ readonly 'claude-3.7-sonnet': ModelMetadata;
13
+ readonly 'claude-haiku-4.5': ModelMetadata;
14
+ readonly 'claude-opus-4': ModelMetadata;
15
+ readonly 'claude-opus-4.1': ModelMetadata;
16
+ readonly 'claude-opus-4.5': ModelMetadata;
17
+ readonly 'claude-opus-4.6': ModelMetadata;
18
+ readonly 'claude-sonnet-4': ModelMetadata;
19
+ readonly 'claude-sonnet-4.5': ModelMetadata;
20
+ readonly 'claude-sonnet-4.6': ModelMetadata;
21
+ };
22
+
23
+ declare const MODEL_CATALOG: {
24
+ readonly 'claude-3.5-haiku': ModelMetadata;
25
+ readonly 'claude-3.7-sonnet': ModelMetadata;
26
+ readonly 'claude-haiku-4.5': ModelMetadata;
27
+ readonly 'claude-opus-4': ModelMetadata;
28
+ readonly 'claude-opus-4.1': ModelMetadata;
29
+ readonly 'claude-opus-4.5': ModelMetadata;
30
+ readonly 'claude-opus-4.6': ModelMetadata;
31
+ readonly 'claude-sonnet-4': ModelMetadata;
32
+ readonly 'claude-sonnet-4.5': ModelMetadata;
33
+ readonly 'claude-sonnet-4.6': ModelMetadata;
34
+ readonly 'gpt-4.1': ModelMetadata;
35
+ readonly 'gpt-4.1-mini': ModelMetadata;
36
+ readonly 'gpt-4.1-nano': ModelMetadata;
37
+ readonly 'gpt-4o': ModelMetadata;
38
+ readonly 'gpt-4o-mini': ModelMetadata;
39
+ readonly 'gpt-5': ModelMetadata;
40
+ readonly 'gpt-5-codex': ModelMetadata;
41
+ readonly 'gpt-5-mini': ModelMetadata;
42
+ readonly 'gpt-5-nano': ModelMetadata;
43
+ readonly 'gpt-5.1': ModelMetadata;
44
+ readonly 'gpt-5.1-codex': ModelMetadata;
45
+ readonly 'gpt-5.1-codex-mini': ModelMetadata;
46
+ readonly 'gpt-5.2': ModelMetadata;
47
+ readonly 'gpt-5.4': ModelMetadata;
48
+ readonly o3: ModelMetadata;
49
+ readonly 'o4-mini': ModelMetadata;
50
+ };
51
+ declare const MODEL_CATALOG_BY_RID: Record<string, ModelMetadata>;
52
+ declare function getModelMetadata(modelId: string): ModelMetadata | undefined;
53
+ declare function hasKnownModel(modelId: string): modelId is KnownModelId;
54
+ declare function resolveModelTarget(modelId: string): ResolvedModelTarget;
55
+ declare function resolveKnownModelMetadata(modelId: string): ModelMetadata;
56
+ declare function resolveModelRid(modelId: string): string;
57
+ declare function resolveModelProvider(modelId: string): ModelProvider;
58
+
59
+ declare const OPENAI_MODELS: {
60
+ readonly 'gpt-4.1': ModelMetadata;
61
+ readonly 'gpt-4.1-mini': ModelMetadata;
62
+ readonly 'gpt-4.1-nano': ModelMetadata;
63
+ readonly 'gpt-4o': ModelMetadata;
64
+ readonly 'gpt-4o-mini': ModelMetadata;
65
+ readonly 'gpt-5': ModelMetadata;
66
+ readonly 'gpt-5-codex': ModelMetadata;
67
+ readonly 'gpt-5-mini': ModelMetadata;
68
+ readonly 'gpt-5-nano': ModelMetadata;
69
+ readonly 'gpt-5.1': ModelMetadata;
70
+ readonly 'gpt-5.1-codex': ModelMetadata;
71
+ readonly 'gpt-5.1-codex-mini': ModelMetadata;
72
+ readonly 'gpt-5.2': ModelMetadata;
73
+ readonly 'gpt-5.4': ModelMetadata;
74
+ readonly o3: ModelMetadata;
75
+ readonly 'o4-mini': ModelMetadata;
76
+ };
77
+
78
+ export { ANTHROPIC_MODELS, FoundryConfig, FoundryModelNotFoundError, KnownModelId, MODEL_CATALOG, MODEL_CATALOG_BY_RID, ModelMetadata, ModelProvider, OPENAI_MODELS, ResolvedModelTarget, getModelMetadata, hasKnownModel, loadFoundryConfig, resolveKnownModelMetadata, resolveModelProvider, resolveModelRid, resolveModelTarget };
package/dist/index.mjs ADDED
@@ -0,0 +1,63 @@
1
+ import {
2
+ ANTHROPIC_MODELS,
3
+ FoundryModelNotFoundError,
4
+ MODEL_CATALOG,
5
+ MODEL_CATALOG_BY_RID,
6
+ OPENAI_MODELS,
7
+ getModelMetadata,
8
+ hasKnownModel,
9
+ loadFoundryConfig,
10
+ resolveKnownModelMetadata,
11
+ resolveModelProvider,
12
+ resolveModelRid,
13
+ resolveModelTarget
14
+ } from "./chunk-5SYKCKOX.mjs";
15
+
16
+ // src/types.ts
17
+ var OPENAI_MODEL_IDS = [
18
+ "gpt-4.1",
19
+ "gpt-4.1-mini",
20
+ "gpt-4.1-nano",
21
+ "gpt-4o",
22
+ "gpt-4o-mini",
23
+ "gpt-5",
24
+ "gpt-5-codex",
25
+ "gpt-5-mini",
26
+ "gpt-5-nano",
27
+ "gpt-5.1",
28
+ "gpt-5.1-codex",
29
+ "gpt-5.1-codex-mini",
30
+ "gpt-5.2",
31
+ "gpt-5.4",
32
+ "o3",
33
+ "o4-mini"
34
+ ];
35
+ var ANTHROPIC_MODEL_IDS = [
36
+ "claude-3.5-haiku",
37
+ "claude-3.7-sonnet",
38
+ "claude-haiku-4.5",
39
+ "claude-opus-4",
40
+ "claude-opus-4.1",
41
+ "claude-opus-4.5",
42
+ "claude-opus-4.6",
43
+ "claude-sonnet-4",
44
+ "claude-sonnet-4.5",
45
+ "claude-sonnet-4.6"
46
+ ];
47
+ export {
48
+ ANTHROPIC_MODELS,
49
+ ANTHROPIC_MODEL_IDS,
50
+ FoundryModelNotFoundError,
51
+ MODEL_CATALOG,
52
+ MODEL_CATALOG_BY_RID,
53
+ OPENAI_MODELS,
54
+ OPENAI_MODEL_IDS,
55
+ getModelMetadata,
56
+ hasKnownModel,
57
+ loadFoundryConfig,
58
+ resolveKnownModelMetadata,
59
+ resolveModelProvider,
60
+ resolveModelRid,
61
+ resolveModelTarget
62
+ };
63
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["export interface FoundryConfig {\n foundryUrl: string;\n token: string;\n attributionRid?: string;\n}\n\nexport const OPENAI_MODEL_IDS = [\n 'gpt-4.1',\n 'gpt-4.1-mini',\n 'gpt-4.1-nano',\n 'gpt-4o',\n 'gpt-4o-mini',\n 'gpt-5',\n 'gpt-5-codex',\n 'gpt-5-mini',\n 'gpt-5-nano',\n 'gpt-5.1',\n 'gpt-5.1-codex',\n 'gpt-5.1-codex-mini',\n 'gpt-5.2',\n 'gpt-5.4',\n 'o3',\n 'o4-mini',\n] as const;\n\nexport type KnownOpenAIModelId = (typeof OPENAI_MODEL_IDS)[number];\n\nexport type OpenAIModelId = KnownOpenAIModelId | (string & {});\n\nexport const ANTHROPIC_MODEL_IDS = [\n 'claude-3.5-haiku',\n 'claude-3.7-sonnet',\n 'claude-haiku-4.5',\n 'claude-opus-4',\n 'claude-opus-4.1',\n 'claude-opus-4.5',\n 'claude-opus-4.6',\n 'claude-sonnet-4',\n 'claude-sonnet-4.5',\n 'claude-sonnet-4.6',\n] as const;\n\nexport type KnownAnthropicModelId = (typeof ANTHROPIC_MODEL_IDS)[number];\n\nexport type AnthropicModelId = KnownAnthropicModelId | (string & {});\n\nexport type KnownModelId = KnownOpenAIModelId | KnownAnthropicModelId;\n\nexport type ModelProvider = 'openai' | 'anthropic';\nexport type ModelLifecycle = 'ga' | 'experimental' | 'deprecated';\n\nexport interface ModelMetadata {\n rid: string;\n provider: ModelProvider;\n displayName: string;\n supportsVision: boolean;\n supportsResponses: boolean;\n lifecycle: ModelLifecycle;\n}\n\nexport interface ResolvedModelTarget {\n rid: string;\n metadata?: ModelMetadata;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAMO,IAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMO,IAAM,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/providers/anthropic.ts
21
+ var anthropic_exports = {};
22
+ __export(anthropic_exports, {
23
+ createFoundryAnthropic: () => createFoundryAnthropic
24
+ });
25
+ module.exports = __toCommonJS(anthropic_exports);
26
+ var import_anthropic = require("@ai-sdk/anthropic");
27
+ var import_ai2 = require("ai");
28
+
29
+ // src/config.ts
30
+ function normalizeFoundryUrl(foundryUrl) {
31
+ return foundryUrl.trim().replace(/\/+$/, "");
32
+ }
33
+ function resolveFoundryConfig(config, callerName) {
34
+ const normalizedConfig = normalizeResolvedFoundryConfig({
35
+ foundryUrl: typeof config.foundryUrl === "string" ? config.foundryUrl : "",
36
+ token: typeof config.token === "string" ? config.token : "",
37
+ attributionRid: typeof config.attributionRid === "string" ? config.attributionRid : void 0
38
+ });
39
+ if (normalizedConfig.foundryUrl.length === 0) {
40
+ throw new Error(`${callerName} requires config.foundryUrl to be a non-empty string.`);
41
+ }
42
+ if (normalizedConfig.token.length === 0) {
43
+ throw new Error(`${callerName} requires config.token to be a non-empty string.`);
44
+ }
45
+ return normalizedConfig;
46
+ }
47
+ function normalizeResolvedFoundryConfig(config) {
48
+ const attributionRid = config.attributionRid?.trim();
49
+ return {
50
+ foundryUrl: normalizeFoundryUrl(config.foundryUrl),
51
+ token: config.token.trim(),
52
+ attributionRid: attributionRid || void 0
53
+ };
54
+ }
55
+
56
+ // src/middleware.ts
57
+ var import_ai = require("ai");
58
+ function wrapFoundryLanguageModel(model, options) {
59
+ return (0, import_ai.wrapLanguageModel)({
60
+ model,
61
+ middleware: {
62
+ specificationVersion: "v3",
63
+ transformParams: async ({ params }) => {
64
+ return options.transformParams?.(params) ?? params;
65
+ }
66
+ },
67
+ modelId: options.modelId,
68
+ providerId: options.providerId
69
+ });
70
+ }
71
+
72
+ // src/models/anthropic-models.ts
73
+ function createAnthropicModel(rid, displayName, lifecycle) {
74
+ return {
75
+ rid,
76
+ provider: "anthropic",
77
+ displayName,
78
+ supportsVision: true,
79
+ supportsResponses: false,
80
+ lifecycle
81
+ };
82
+ }
83
+ var ANTHROPIC_MODELS = {
84
+ "claude-3.5-haiku": createAnthropicModel(
85
+ "ri.language-model-service..language-model.anthropic-claude-3-5-haiku",
86
+ "Claude 3.5 Haiku",
87
+ "ga"
88
+ ),
89
+ "claude-3.7-sonnet": createAnthropicModel(
90
+ "ri.language-model-service..language-model.anthropic-claude-3-7-sonnet",
91
+ "Claude 3.7 Sonnet",
92
+ "ga"
93
+ ),
94
+ "claude-haiku-4.5": createAnthropicModel(
95
+ "ri.language-model-service..language-model.anthropic-claude-4-5-haiku",
96
+ "Claude Haiku 4.5",
97
+ "ga"
98
+ ),
99
+ "claude-opus-4": createAnthropicModel(
100
+ "ri.language-model-service..language-model.anthropic-claude-4-opus",
101
+ "Claude Opus 4",
102
+ "ga"
103
+ ),
104
+ "claude-opus-4.1": createAnthropicModel(
105
+ "ri.language-model-service..language-model.anthropic-claude-4-1-opus",
106
+ "Claude Opus 4.1",
107
+ "ga"
108
+ ),
109
+ "claude-opus-4.5": createAnthropicModel(
110
+ "ri.language-model-service..language-model.anthropic-claude-4-5-opus",
111
+ "Claude Opus 4.5",
112
+ "ga"
113
+ ),
114
+ "claude-opus-4.6": createAnthropicModel(
115
+ "ri.language-model-service..language-model.anthropic-claude-4-6-opus",
116
+ "Claude Opus 4.6",
117
+ "ga"
118
+ ),
119
+ "claude-sonnet-4": createAnthropicModel(
120
+ "ri.language-model-service..language-model.anthropic-claude-4-sonnet",
121
+ "Claude Sonnet 4",
122
+ "ga"
123
+ ),
124
+ "claude-sonnet-4.5": createAnthropicModel(
125
+ "ri.language-model-service..language-model.anthropic-claude-4-5-sonnet",
126
+ "Claude Sonnet 4.5",
127
+ "ga"
128
+ ),
129
+ "claude-sonnet-4.6": createAnthropicModel(
130
+ "ri.language-model-service..language-model.anthropic-claude-4-6-sonnet",
131
+ "Claude Sonnet 4.6",
132
+ "ga"
133
+ )
134
+ };
135
+
136
+ // src/models/openai-models.ts
137
+ function createOpenAIModel(rid, displayName, {
138
+ lifecycle,
139
+ supportsVision = true
140
+ }) {
141
+ return {
142
+ rid,
143
+ provider: "openai",
144
+ displayName,
145
+ supportsVision,
146
+ supportsResponses: true,
147
+ lifecycle
148
+ };
149
+ }
150
+ var OPENAI_MODELS = {
151
+ "gpt-4.1": createOpenAIModel("ri.language-model-service..language-model.gpt-4-1", "GPT-4.1", {
152
+ lifecycle: "ga"
153
+ }),
154
+ "gpt-4.1-mini": createOpenAIModel(
155
+ "ri.language-model-service..language-model.gpt-4-1-mini",
156
+ "GPT-4.1 Mini",
157
+ { lifecycle: "ga" }
158
+ ),
159
+ "gpt-4.1-nano": createOpenAIModel(
160
+ "ri.language-model-service..language-model.gpt-4-1-nano",
161
+ "GPT-4.1 Nano",
162
+ { lifecycle: "ga" }
163
+ ),
164
+ "gpt-4o": createOpenAIModel("ri.language-model-service..language-model.gpt-4-o", "GPT-4o", {
165
+ lifecycle: "ga"
166
+ }),
167
+ "gpt-4o-mini": createOpenAIModel(
168
+ "ri.language-model-service..language-model.gpt-4-o-mini",
169
+ "GPT-4o Mini",
170
+ { lifecycle: "ga" }
171
+ ),
172
+ "gpt-5": createOpenAIModel("ri.language-model-service..language-model.gpt-5", "GPT-5", {
173
+ lifecycle: "ga"
174
+ }),
175
+ "gpt-5-codex": createOpenAIModel(
176
+ "ri.language-model-service..language-model.gpt-5-codex",
177
+ "GPT-5 Codex",
178
+ { lifecycle: "ga", supportsVision: false }
179
+ ),
180
+ "gpt-5-mini": createOpenAIModel(
181
+ "ri.language-model-service..language-model.gpt-5-mini",
182
+ "GPT-5 Mini",
183
+ { lifecycle: "ga" }
184
+ ),
185
+ "gpt-5-nano": createOpenAIModel(
186
+ "ri.language-model-service..language-model.gpt-5-nano",
187
+ "GPT-5 Nano",
188
+ { lifecycle: "ga" }
189
+ ),
190
+ "gpt-5.1": createOpenAIModel("ri.language-model-service..language-model.gpt-5-1", "GPT-5.1", {
191
+ lifecycle: "ga"
192
+ }),
193
+ "gpt-5.1-codex": createOpenAIModel(
194
+ "ri.language-model-service..language-model.gpt-5-1-codex",
195
+ "GPT-5.1 Codex",
196
+ { lifecycle: "ga", supportsVision: false }
197
+ ),
198
+ "gpt-5.1-codex-mini": createOpenAIModel(
199
+ "ri.language-model-service..language-model.gpt-5-1-codex-mini",
200
+ "GPT-5.1 Codex Mini",
201
+ { lifecycle: "ga", supportsVision: false }
202
+ ),
203
+ "gpt-5.2": createOpenAIModel("ri.language-model-service..language-model.gpt-5-2", "GPT-5.2", {
204
+ lifecycle: "experimental"
205
+ }),
206
+ "gpt-5.4": createOpenAIModel("ri.language-model-service..language-model.gpt-5-4", "GPT-5.4", {
207
+ lifecycle: "experimental"
208
+ }),
209
+ o3: createOpenAIModel("ri.language-model-service..language-model.o-3", "o3", { lifecycle: "ga" }),
210
+ "o4-mini": createOpenAIModel("ri.language-model-service..language-model.o-4-mini", "o4 Mini", {
211
+ lifecycle: "ga"
212
+ })
213
+ };
214
+ var OPENAI_REASONING_MODEL_IDS = /* @__PURE__ */ new Set([
215
+ "gpt-5",
216
+ "gpt-5-mini",
217
+ "gpt-5-nano",
218
+ "gpt-5.2",
219
+ "gpt-5.4",
220
+ "o3",
221
+ "o4-mini"
222
+ ]);
223
+ var OPENAI_REASONING_MODEL_TARGETS = /* @__PURE__ */ new Set([
224
+ ...OPENAI_REASONING_MODEL_IDS,
225
+ ...Object.entries(OPENAI_MODELS).filter(([modelId]) => OPENAI_REASONING_MODEL_IDS.has(modelId)).map(([, metadata]) => metadata.rid)
226
+ ]);
227
+
228
+ // src/models/catalog.ts
229
+ var MODEL_CATALOG = {
230
+ ...OPENAI_MODELS,
231
+ ...ANTHROPIC_MODELS
232
+ };
233
+ var MODEL_CATALOG_BY_RID = Object.fromEntries(
234
+ Object.values(MODEL_CATALOG).map((metadata) => [metadata.rid, metadata])
235
+ );
236
+ function getModelMetadata(modelId) {
237
+ return MODEL_CATALOG[modelId];
238
+ }
239
+ function resolveModelTarget(modelId) {
240
+ const metadata = getModelMetadata(modelId) ?? getModelMetadataByRid(modelId);
241
+ return {
242
+ rid: metadata?.rid ?? modelId,
243
+ metadata
244
+ };
245
+ }
246
+ function getModelMetadataByRid(modelRid) {
247
+ return MODEL_CATALOG_BY_RID[modelRid];
248
+ }
249
+
250
+ // src/providers/anthropic.ts
251
+ function createFoundryAnthropic(config) {
252
+ const providerId = "foundry-anthropic";
253
+ const resolvedConfig = resolveFoundryConfig(config, "createFoundryAnthropic");
254
+ const baseProvider = (0, import_anthropic.createAnthropic)({
255
+ authToken: resolvedConfig.token,
256
+ baseURL: `${resolvedConfig.foundryUrl}/api/v2/llm/proxy/anthropic/v1`,
257
+ headers: resolvedConfig.attributionRid ? { attribution: resolvedConfig.attributionRid } : void 0,
258
+ name: providerId
259
+ });
260
+ const createLanguageModel = (modelId) => {
261
+ const resolvedModel = resolveModelTarget(modelId);
262
+ return wrapFoundryLanguageModel(baseProvider(resolvedModel.rid), {
263
+ modelId,
264
+ providerId
265
+ });
266
+ };
267
+ function provider(modelId) {
268
+ return createLanguageModel(modelId);
269
+ }
270
+ const callableProvider = provider;
271
+ callableProvider.specificationVersion = "v3";
272
+ callableProvider.languageModel = createLanguageModel;
273
+ callableProvider.chat = createLanguageModel;
274
+ callableProvider.messages = createLanguageModel;
275
+ callableProvider.embeddingModel = (modelId) => {
276
+ throw new import_ai2.NoSuchModelError({ modelId, modelType: "embeddingModel" });
277
+ };
278
+ callableProvider.imageModel = (modelId) => {
279
+ throw new import_ai2.NoSuchModelError({ modelId, modelType: "imageModel" });
280
+ };
281
+ return callableProvider;
282
+ }
283
+ // Annotate the CommonJS export names for ESM import in node:
284
+ 0 && (module.exports = {
285
+ createFoundryAnthropic
286
+ });
287
+ //# sourceMappingURL=anthropic.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/providers/anthropic.ts","../../src/config.ts","../../src/middleware.ts","../../src/models/anthropic-models.ts","../../src/models/openai-models.ts","../../src/models/catalog.ts"],"sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic';\nimport type { wrapLanguageModel } from 'ai';\nimport { NoSuchModelError } from 'ai';\nimport { resolveFoundryConfig } from '../config.js';\nimport { wrapFoundryLanguageModel } from '../middleware.js';\nimport { resolveModelTarget } from '../models/catalog.js';\nimport type { AnthropicModelId, FoundryConfig } from '../types.js';\n\ntype FoundryLanguageModel = Parameters<typeof wrapLanguageModel>[0]['model'];\n\nexport interface FoundryAnthropicProvider {\n (modelId: AnthropicModelId): FoundryLanguageModel;\n specificationVersion: 'v3';\n languageModel(modelId: AnthropicModelId): FoundryLanguageModel;\n chat(modelId: AnthropicModelId): FoundryLanguageModel;\n messages(modelId: AnthropicModelId): FoundryLanguageModel;\n embeddingModel(modelId: string): never;\n imageModel(modelId: string): never;\n}\n\nexport function createFoundryAnthropic(config: FoundryConfig): FoundryAnthropicProvider {\n const providerId = 'foundry-anthropic';\n const resolvedConfig = resolveFoundryConfig(config, 'createFoundryAnthropic');\n const baseProvider = createAnthropic({\n authToken: resolvedConfig.token,\n baseURL: `${resolvedConfig.foundryUrl}/api/v2/llm/proxy/anthropic/v1`,\n headers: resolvedConfig.attributionRid\n ? { attribution: resolvedConfig.attributionRid }\n : undefined,\n name: providerId,\n });\n\n const createLanguageModel = (modelId: AnthropicModelId): FoundryLanguageModel => {\n const resolvedModel = resolveModelTarget(modelId);\n\n return wrapFoundryLanguageModel(baseProvider(resolvedModel.rid), {\n modelId,\n providerId,\n });\n };\n\n function provider(modelId: AnthropicModelId): FoundryLanguageModel {\n return createLanguageModel(modelId);\n }\n\n const callableProvider = provider as FoundryAnthropicProvider;\n\n callableProvider.specificationVersion = 'v3';\n callableProvider.languageModel = createLanguageModel;\n callableProvider.chat = createLanguageModel;\n callableProvider.messages = createLanguageModel;\n callableProvider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n };\n callableProvider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n return callableProvider;\n}\n","import type { FoundryConfig } from './types.js';\n\nconst FOUNDRY_URL_ENV = 'FOUNDRY_URL';\nconst FOUNDRY_TOKEN_ENV = 'FOUNDRY_TOKEN';\nconst FOUNDRY_ATTRIBUTION_RID_ENV = 'FOUNDRY_ATTRIBUTION_RID';\n\nexport function loadFoundryConfig(env: NodeJS.ProcessEnv = process.env): FoundryConfig {\n return normalizeResolvedFoundryConfig({\n foundryUrl: requireEnv(env, FOUNDRY_URL_ENV),\n token: requireEnv(env, FOUNDRY_TOKEN_ENV),\n attributionRid: optionalEnv(env, FOUNDRY_ATTRIBUTION_RID_ENV),\n });\n}\n\nexport function normalizeFoundryUrl(foundryUrl: string): string {\n return foundryUrl.trim().replace(/\\/+$/, '');\n}\n\nexport function resolveFoundryConfig(config: FoundryConfig, callerName: string): FoundryConfig {\n const normalizedConfig = normalizeResolvedFoundryConfig({\n foundryUrl: typeof config.foundryUrl === 'string' ? config.foundryUrl : '',\n token: typeof config.token === 'string' ? config.token : '',\n attributionRid: typeof config.attributionRid === 'string' ? config.attributionRid : undefined,\n });\n\n if (normalizedConfig.foundryUrl.length === 0) {\n throw new Error(`${callerName} requires config.foundryUrl to be a non-empty string.`);\n }\n\n if (normalizedConfig.token.length === 0) {\n throw new Error(`${callerName} requires config.token to be a non-empty string.`);\n }\n\n return normalizedConfig;\n}\n\nfunction requireEnv(env: NodeJS.ProcessEnv, name: string): string {\n const value = optionalEnv(env, name);\n\n if (value == null) {\n throw new Error(`Missing required environment variable: ${name}`);\n }\n\n return value;\n}\n\nfunction optionalEnv(env: NodeJS.ProcessEnv, name: string): string | undefined {\n const value = env[name]?.trim();\n\n return value ? value : undefined;\n}\n\nfunction normalizeResolvedFoundryConfig(config: {\n foundryUrl: string;\n token: string;\n attributionRid?: string;\n}): FoundryConfig {\n const attributionRid = config.attributionRid?.trim();\n\n return {\n foundryUrl: normalizeFoundryUrl(config.foundryUrl),\n token: config.token.trim(),\n attributionRid: attributionRid || undefined,\n };\n}\n","import { wrapLanguageModel } from 'ai';\n\ntype FoundryLanguageModel = Parameters<typeof wrapLanguageModel>[0]['model'];\ntype FoundryCallOptions = Parameters<FoundryLanguageModel['doGenerate']>[0];\n\nexport function wrapFoundryLanguageModel(\n model: FoundryLanguageModel,\n options: {\n modelId: string;\n providerId: string;\n transformParams?: (params: FoundryCallOptions) => FoundryCallOptions;\n },\n): FoundryLanguageModel {\n return wrapLanguageModel({\n model,\n middleware: {\n specificationVersion: 'v3',\n transformParams: async ({ params }) => {\n return options.transformParams?.(params) ?? params;\n },\n },\n modelId: options.modelId,\n providerId: options.providerId,\n });\n}\n","import type { KnownAnthropicModelId, ModelLifecycle, ModelMetadata } from '../types.js';\n\nfunction createAnthropicModel(\n rid: string,\n displayName: string,\n lifecycle: ModelLifecycle,\n): ModelMetadata {\n return {\n rid,\n provider: 'anthropic',\n displayName,\n supportsVision: true,\n supportsResponses: false,\n lifecycle,\n };\n}\n\nexport const ANTHROPIC_MODELS = {\n 'claude-3.5-haiku': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-3-5-haiku',\n 'Claude 3.5 Haiku',\n 'ga',\n ),\n 'claude-3.7-sonnet': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-3-7-sonnet',\n 'Claude 3.7 Sonnet',\n 'ga',\n ),\n 'claude-haiku-4.5': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-5-haiku',\n 'Claude Haiku 4.5',\n 'ga',\n ),\n 'claude-opus-4': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-opus',\n 'Claude Opus 4',\n 'ga',\n ),\n 'claude-opus-4.1': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-1-opus',\n 'Claude Opus 4.1',\n 'ga',\n ),\n 'claude-opus-4.5': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-5-opus',\n 'Claude Opus 4.5',\n 'ga',\n ),\n 'claude-opus-4.6': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-6-opus',\n 'Claude Opus 4.6',\n 'ga',\n ),\n 'claude-sonnet-4': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-sonnet',\n 'Claude Sonnet 4',\n 'ga',\n ),\n 'claude-sonnet-4.5': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-5-sonnet',\n 'Claude Sonnet 4.5',\n 'ga',\n ),\n 'claude-sonnet-4.6': createAnthropicModel(\n 'ri.language-model-service..language-model.anthropic-claude-4-6-sonnet',\n 'Claude Sonnet 4.6',\n 'ga',\n ),\n} as const satisfies Record<KnownAnthropicModelId, ModelMetadata>;\n","import type { KnownOpenAIModelId, ModelLifecycle, ModelMetadata } from '../types.js';\n\nfunction createOpenAIModel(\n rid: string,\n displayName: string,\n {\n lifecycle,\n supportsVision = true,\n }: {\n lifecycle: ModelLifecycle;\n supportsVision?: boolean;\n },\n): ModelMetadata {\n return {\n rid,\n provider: 'openai',\n displayName,\n supportsVision,\n supportsResponses: true,\n lifecycle,\n };\n}\n\nexport const OPENAI_MODELS = {\n 'gpt-4.1': createOpenAIModel('ri.language-model-service..language-model.gpt-4-1', 'GPT-4.1', {\n lifecycle: 'ga',\n }),\n 'gpt-4.1-mini': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-4-1-mini',\n 'GPT-4.1 Mini',\n { lifecycle: 'ga' },\n ),\n 'gpt-4.1-nano': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-4-1-nano',\n 'GPT-4.1 Nano',\n { lifecycle: 'ga' },\n ),\n 'gpt-4o': createOpenAIModel('ri.language-model-service..language-model.gpt-4-o', 'GPT-4o', {\n lifecycle: 'ga',\n }),\n 'gpt-4o-mini': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-4-o-mini',\n 'GPT-4o Mini',\n { lifecycle: 'ga' },\n ),\n 'gpt-5': createOpenAIModel('ri.language-model-service..language-model.gpt-5', 'GPT-5', {\n lifecycle: 'ga',\n }),\n 'gpt-5-codex': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-codex',\n 'GPT-5 Codex',\n { lifecycle: 'ga', supportsVision: false },\n ),\n 'gpt-5-mini': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-mini',\n 'GPT-5 Mini',\n { lifecycle: 'ga' },\n ),\n 'gpt-5-nano': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-nano',\n 'GPT-5 Nano',\n { lifecycle: 'ga' },\n ),\n 'gpt-5.1': createOpenAIModel('ri.language-model-service..language-model.gpt-5-1', 'GPT-5.1', {\n lifecycle: 'ga',\n }),\n 'gpt-5.1-codex': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-1-codex',\n 'GPT-5.1 Codex',\n { lifecycle: 'ga', supportsVision: false },\n ),\n 'gpt-5.1-codex-mini': createOpenAIModel(\n 'ri.language-model-service..language-model.gpt-5-1-codex-mini',\n 'GPT-5.1 Codex Mini',\n { lifecycle: 'ga', supportsVision: false },\n ),\n 'gpt-5.2': createOpenAIModel('ri.language-model-service..language-model.gpt-5-2', 'GPT-5.2', {\n lifecycle: 'experimental',\n }),\n 'gpt-5.4': createOpenAIModel('ri.language-model-service..language-model.gpt-5-4', 'GPT-5.4', {\n lifecycle: 'experimental',\n }),\n o3: createOpenAIModel('ri.language-model-service..language-model.o-3', 'o3', { lifecycle: 'ga' }),\n 'o4-mini': createOpenAIModel('ri.language-model-service..language-model.o-4-mini', 'o4 Mini', {\n lifecycle: 'ga',\n }),\n} as const satisfies Record<KnownOpenAIModelId, ModelMetadata>;\n\nconst OPENAI_REASONING_MODEL_IDS = new Set<KnownOpenAIModelId>([\n 'gpt-5',\n 'gpt-5-mini',\n 'gpt-5-nano',\n 'gpt-5.2',\n 'gpt-5.4',\n 'o3',\n 'o4-mini',\n]);\n\nconst OPENAI_REASONING_MODEL_TARGETS = new Set<string>([\n ...OPENAI_REASONING_MODEL_IDS,\n ...Object.entries(OPENAI_MODELS)\n .filter(([modelId]) => OPENAI_REASONING_MODEL_IDS.has(modelId as KnownOpenAIModelId))\n .map(([, metadata]) => metadata.rid),\n]);\n\nexport function isKnownOpenAIReasoningTarget(modelId: string): boolean {\n return OPENAI_REASONING_MODEL_TARGETS.has(modelId);\n}\n","import { FoundryModelNotFoundError } from '../errors.js';\nimport type { KnownModelId, ModelMetadata, ModelProvider, ResolvedModelTarget } from '../types.js';\nimport { ANTHROPIC_MODELS } from './anthropic-models.js';\nimport { OPENAI_MODELS } from './openai-models.js';\n\nexport const MODEL_CATALOG = {\n ...OPENAI_MODELS,\n ...ANTHROPIC_MODELS,\n} as const satisfies Record<KnownModelId, ModelMetadata>;\nexport const MODEL_CATALOG_BY_RID = Object.fromEntries(\n Object.values(MODEL_CATALOG).map((metadata) => [metadata.rid, metadata]),\n) as Record<string, ModelMetadata>;\n\nexport function getModelMetadata(modelId: string): ModelMetadata | undefined {\n return MODEL_CATALOG[modelId as KnownModelId];\n}\n\nexport function hasKnownModel(modelId: string): modelId is KnownModelId {\n return getModelMetadata(modelId) != null;\n}\n\nexport function resolveModelTarget(modelId: string): ResolvedModelTarget {\n const metadata = getModelMetadata(modelId) ?? getModelMetadataByRid(modelId);\n\n return {\n rid: metadata?.rid ?? modelId,\n metadata,\n };\n}\n\nexport function resolveKnownModelMetadata(modelId: string): ModelMetadata {\n const metadata = getModelMetadata(modelId);\n\n if (metadata == null) {\n throw new FoundryModelNotFoundError(modelId);\n }\n\n return metadata;\n}\n\nexport function resolveModelRid(modelId: string): string {\n return resolveKnownModelMetadata(modelId).rid;\n}\n\nexport function resolveModelProvider(modelId: string): ModelProvider {\n return resolveKnownModelMetadata(modelId).provider;\n}\n\nfunction getModelMetadataByRid(modelRid: string): ModelMetadata | undefined {\n return MODEL_CATALOG_BY_RID[modelRid];\n}\n"],"mappings":"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","names":["import_ai"]}
@@ -0,0 +1,16 @@
1
+ import { wrapLanguageModel } from 'ai';
2
+ import { b as AnthropicModelId, F as FoundryConfig } from '../types-cG4EwdjA.cjs';
3
+
4
+ type FoundryLanguageModel = Parameters<typeof wrapLanguageModel>[0]['model'];
5
+ interface FoundryAnthropicProvider {
6
+ (modelId: AnthropicModelId): FoundryLanguageModel;
7
+ specificationVersion: 'v3';
8
+ languageModel(modelId: AnthropicModelId): FoundryLanguageModel;
9
+ chat(modelId: AnthropicModelId): FoundryLanguageModel;
10
+ messages(modelId: AnthropicModelId): FoundryLanguageModel;
11
+ embeddingModel(modelId: string): never;
12
+ imageModel(modelId: string): never;
13
+ }
14
+ declare function createFoundryAnthropic(config: FoundryConfig): FoundryAnthropicProvider;
15
+
16
+ export { type FoundryAnthropicProvider, createFoundryAnthropic };
@@ -0,0 +1,16 @@
1
+ import { wrapLanguageModel } from 'ai';
2
+ import { b as AnthropicModelId, F as FoundryConfig } from '../types-cG4EwdjA.js';
3
+
4
+ type FoundryLanguageModel = Parameters<typeof wrapLanguageModel>[0]['model'];
5
+ interface FoundryAnthropicProvider {
6
+ (modelId: AnthropicModelId): FoundryLanguageModel;
7
+ specificationVersion: 'v3';
8
+ languageModel(modelId: AnthropicModelId): FoundryLanguageModel;
9
+ chat(modelId: AnthropicModelId): FoundryLanguageModel;
10
+ messages(modelId: AnthropicModelId): FoundryLanguageModel;
11
+ embeddingModel(modelId: string): never;
12
+ imageModel(modelId: string): never;
13
+ }
14
+ declare function createFoundryAnthropic(config: FoundryConfig): FoundryAnthropicProvider;
15
+
16
+ export { type FoundryAnthropicProvider, createFoundryAnthropic };