@nyrra/foundry-ai 0.0.2-rc.0 → 0.0.2-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -1
- package/dist/{chunk-5SYKCKOX.mjs → chunk-QPX75PWC.mjs} +53 -2
- package/dist/chunk-QPX75PWC.mjs.map +1 -0
- package/dist/index.cjs +64 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +20 -3
- package/dist/index.d.ts +20 -3
- package/dist/index.mjs +13 -1
- package/dist/index.mjs.map +1 -1
- package/dist/providers/anthropic.cjs +51 -1
- package/dist/providers/anthropic.cjs.map +1 -1
- package/dist/providers/anthropic.d.cts +1 -1
- package/dist/providers/anthropic.d.ts +1 -1
- package/dist/providers/anthropic.mjs +1 -1
- package/dist/providers/google.cjs +347 -0
- package/dist/providers/google.cjs.map +1 -0
- package/dist/providers/google.d.cts +16 -0
- package/dist/providers/google.d.ts +16 -0
- package/dist/providers/google.mjs +57 -0
- package/dist/providers/google.mjs.map +1 -0
- package/dist/providers/openai.cjs +51 -1
- package/dist/providers/openai.cjs.map +1 -1
- package/dist/providers/openai.d.cts +1 -1
- package/dist/providers/openai.d.ts +1 -1
- package/dist/providers/openai.mjs +1 -1
- package/dist/{types-cG4EwdjA.d.cts → types-Dxb5JHjl.d.cts} +7 -4
- package/dist/{types-cG4EwdjA.d.ts → types-Dxb5JHjl.d.ts} +7 -4
- package/package.json +10 -1
- package/dist/chunk-5SYKCKOX.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -14,6 +14,10 @@ pnpm add @nyrra/foundry-ai ai @ai-sdk/openai
|
|
|
14
14
|
pnpm add @nyrra/foundry-ai ai @ai-sdk/anthropic
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @nyrra/foundry-ai ai @ai-sdk/google
|
|
19
|
+
```
|
|
20
|
+
|
|
17
21
|
## Usage
|
|
18
22
|
|
|
19
23
|
```ts
|
|
@@ -42,6 +46,7 @@ console.log(result.text);
|
|
|
42
46
|
- `@nyrra/foundry-ai`
|
|
43
47
|
- `@nyrra/foundry-ai/openai`
|
|
44
48
|
- `@nyrra/foundry-ai/anthropic`
|
|
49
|
+
- `@nyrra/foundry-ai/google`
|
|
45
50
|
|
|
46
51
|
There is no published registry helper. Compose multi-provider routing in application code with AI SDK `createProviderRegistry`.
|
|
47
52
|
|
|
@@ -49,6 +54,33 @@ There is no published registry helper. Compose multi-provider routing in applica
|
|
|
49
54
|
|
|
50
55
|
- OpenAI traffic always uses Foundry-safe compatibility defaults where required.
|
|
51
56
|
- `providerOptions.openai.store=true` throws before the request is sent.
|
|
52
|
-
- Unknown model strings pass through as raw
|
|
57
|
+
- Unknown model strings pass through as raw targets when you call a provider factory directly.
|
|
58
|
+
- OpenAI, Anthropic, and Google friendly aliases resolve through the shared catalog.
|
|
59
|
+
- The Google adapter rewrites the AI SDK's `x-goog-api-key` auth into the bearer-token header that Foundry expects.
|
|
60
|
+
|
|
61
|
+
## Verification
|
|
62
|
+
|
|
63
|
+
The examples are demos. The canonical verification surface is the live capability matrix in [`src/__tests__/foundry.live.test.ts`](./src/__tests__/foundry.live.test.ts).
|
|
64
|
+
|
|
65
|
+
Each live run writes structured artifacts under `.memory/capability-runs/<run-id>/` and `pnpm test:live` refreshes the checked-in matrix docs from the latest artifact even when a capability fails.
|
|
66
|
+
|
|
67
|
+
<!-- live-matrix:start -->
|
|
68
|
+
## Live Capability Matrix
|
|
69
|
+
|
|
70
|
+
Generated from the latest local live verification artifact checked into this branch.
|
|
71
|
+
|
|
72
|
+
Latest snapshot: `2026-03-28T02-23-38.080Z-f7c393`
|
|
73
|
+
|
|
74
|
+
- Models: openai=`gpt-5-mini`, anthropic=`claude-sonnet-4.6`, google=`gemini-3.1-flash-lite`
|
|
75
|
+
- Status Counts: `pass`: 29, `skipped`: 18, `proxy-rejected`: 2
|
|
76
|
+
|
|
77
|
+
| Provider | Pass | Skipped | Proxy Rejected | Unsupported | Fail |
|
|
78
|
+
|---|---:|---:|---:|---:|---:|
|
|
79
|
+
| anthropic | 9 | 6 | 1 | 0 | 0 |
|
|
80
|
+
| google | 9 | 7 | 0 | 0 | 0 |
|
|
81
|
+
| openai | 11 | 5 | 1 | 0 | 0 |
|
|
82
|
+
|
|
83
|
+
See [docs/live-capability-matrix.md](./docs/live-capability-matrix.md) for the full row-by-row matrix and non-pass details.
|
|
84
|
+
<!-- live-matrix:end -->
|
|
53
85
|
|
|
54
86
|
See the repo root README for the full catalog, examples, and release notes.
|
|
@@ -120,6 +120,55 @@ var ANTHROPIC_MODELS = {
|
|
|
120
120
|
)
|
|
121
121
|
};
|
|
122
122
|
|
|
123
|
+
// src/models/google-models.ts
|
|
124
|
+
function createGoogleModel(rid, displayName, lifecycle) {
|
|
125
|
+
return {
|
|
126
|
+
rid,
|
|
127
|
+
provider: "google",
|
|
128
|
+
displayName,
|
|
129
|
+
supportsVision: true,
|
|
130
|
+
supportsResponses: false,
|
|
131
|
+
lifecycle
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
var GOOGLE_MODELS = {
|
|
135
|
+
"gemini-2.5-pro": createGoogleModel(
|
|
136
|
+
"ri.language-model-service..language-model.gemini-2-5-pro",
|
|
137
|
+
"Gemini 2.5 Pro",
|
|
138
|
+
"ga"
|
|
139
|
+
),
|
|
140
|
+
"gemini-2.5-flash": createGoogleModel(
|
|
141
|
+
"ri.language-model-service..language-model.gemini-2-5-flash",
|
|
142
|
+
"Gemini 2.5 Flash",
|
|
143
|
+
"ga"
|
|
144
|
+
),
|
|
145
|
+
"gemini-2.5-flash-lite": createGoogleModel(
|
|
146
|
+
"ri.language-model-service..language-model.gemini-2-5-flash-lite",
|
|
147
|
+
"Gemini 2.5 Flash Lite",
|
|
148
|
+
"ga"
|
|
149
|
+
),
|
|
150
|
+
"gemini-3-pro": createGoogleModel(
|
|
151
|
+
"ri.language-model-service..language-model.gemini-3-pro",
|
|
152
|
+
"Gemini 3 Pro (Preview)",
|
|
153
|
+
"sunset"
|
|
154
|
+
),
|
|
155
|
+
"gemini-3-flash": createGoogleModel(
|
|
156
|
+
"ri.language-model-service..language-model.gemini-3-flash",
|
|
157
|
+
"Gemini 3 Flash (Preview)",
|
|
158
|
+
"ga"
|
|
159
|
+
),
|
|
160
|
+
"gemini-3.1-pro": createGoogleModel(
|
|
161
|
+
"ri.language-model-service..language-model.gemini-3-1-pro",
|
|
162
|
+
"Gemini 3.1 Pro (Preview)",
|
|
163
|
+
"ga"
|
|
164
|
+
),
|
|
165
|
+
"gemini-3.1-flash-lite": createGoogleModel(
|
|
166
|
+
"ri.language-model-service..language-model.gemini-3-1-flash-lite",
|
|
167
|
+
"Gemini 3.1 Flash Lite (Preview)",
|
|
168
|
+
"experimental"
|
|
169
|
+
)
|
|
170
|
+
};
|
|
171
|
+
|
|
123
172
|
// src/models/openai-models.ts
|
|
124
173
|
function createOpenAIModel(rid, displayName, {
|
|
125
174
|
lifecycle,
|
|
@@ -218,7 +267,8 @@ function isKnownOpenAIReasoningTarget(modelId) {
|
|
|
218
267
|
// src/models/catalog.ts
|
|
219
268
|
var MODEL_CATALOG = {
|
|
220
269
|
...OPENAI_MODELS,
|
|
221
|
-
...ANTHROPIC_MODELS
|
|
270
|
+
...ANTHROPIC_MODELS,
|
|
271
|
+
...GOOGLE_MODELS
|
|
222
272
|
};
|
|
223
273
|
var MODEL_CATALOG_BY_RID = Object.fromEntries(
|
|
224
274
|
Object.values(MODEL_CATALOG).map((metadata) => [metadata.rid, metadata])
|
|
@@ -258,6 +308,7 @@ export {
|
|
|
258
308
|
resolveFoundryConfig,
|
|
259
309
|
FoundryModelNotFoundError,
|
|
260
310
|
ANTHROPIC_MODELS,
|
|
311
|
+
GOOGLE_MODELS,
|
|
261
312
|
OPENAI_MODELS,
|
|
262
313
|
isKnownOpenAIReasoningTarget,
|
|
263
314
|
MODEL_CATALOG,
|
|
@@ -269,4 +320,4 @@ export {
|
|
|
269
320
|
resolveModelRid,
|
|
270
321
|
resolveModelProvider
|
|
271
322
|
};
|
|
272
|
-
//# sourceMappingURL=chunk-
|
|
323
|
+
//# sourceMappingURL=chunk-QPX75PWC.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config.ts","../src/errors.ts","../src/models/anthropic-models.ts","../src/models/google-models.ts","../src/models/openai-models.ts","../src/models/catalog.ts"],"sourcesContent":["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 { KnownGoogleModelId, ModelLifecycle, ModelMetadata } from '../types.js';\n\nfunction createGoogleModel(\n rid: string,\n displayName: string,\n lifecycle: ModelLifecycle,\n): ModelMetadata {\n return {\n rid,\n provider: 'google',\n displayName,\n supportsVision: true,\n supportsResponses: false,\n lifecycle,\n };\n}\n\nexport const GOOGLE_MODELS = {\n 'gemini-2.5-pro': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-2-5-pro',\n 'Gemini 2.5 Pro',\n 'ga',\n ),\n 'gemini-2.5-flash': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-2-5-flash',\n 'Gemini 2.5 Flash',\n 'ga',\n ),\n 'gemini-2.5-flash-lite': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-2-5-flash-lite',\n 'Gemini 2.5 Flash Lite',\n 'ga',\n ),\n 'gemini-3-pro': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-3-pro',\n 'Gemini 3 Pro (Preview)',\n 'sunset',\n ),\n 'gemini-3-flash': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-3-flash',\n 'Gemini 3 Flash (Preview)',\n 'ga',\n ),\n 'gemini-3.1-pro': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-3-1-pro',\n 'Gemini 3.1 Pro (Preview)',\n 'ga',\n ),\n 'gemini-3.1-flash-lite': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-3-1-flash-lite',\n 'Gemini 3.1 Flash Lite (Preview)',\n 'experimental',\n ),\n} as const satisfies Record<KnownGoogleModelId, 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 { GOOGLE_MODELS } from './google-models.js';\nimport { OPENAI_MODELS } from './openai-models.js';\n\nexport const MODEL_CATALOG = {\n ...OPENAI_MODELS,\n ...ANTHROPIC_MODELS,\n ...GOOGLE_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":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -23,6 +23,8 @@ __export(src_exports, {
|
|
|
23
23
|
ANTHROPIC_MODELS: () => ANTHROPIC_MODELS,
|
|
24
24
|
ANTHROPIC_MODEL_IDS: () => ANTHROPIC_MODEL_IDS,
|
|
25
25
|
FoundryModelNotFoundError: () => FoundryModelNotFoundError,
|
|
26
|
+
GOOGLE_MODELS: () => GOOGLE_MODELS,
|
|
27
|
+
GOOGLE_MODEL_IDS: () => GOOGLE_MODEL_IDS,
|
|
26
28
|
MODEL_CATALOG: () => MODEL_CATALOG,
|
|
27
29
|
MODEL_CATALOG_BY_RID: () => MODEL_CATALOG_BY_RID,
|
|
28
30
|
OPENAI_MODELS: () => OPENAI_MODELS,
|
|
@@ -145,6 +147,55 @@ var ANTHROPIC_MODELS = {
|
|
|
145
147
|
)
|
|
146
148
|
};
|
|
147
149
|
|
|
150
|
+
// src/models/google-models.ts
|
|
151
|
+
function createGoogleModel(rid, displayName, lifecycle) {
|
|
152
|
+
return {
|
|
153
|
+
rid,
|
|
154
|
+
provider: "google",
|
|
155
|
+
displayName,
|
|
156
|
+
supportsVision: true,
|
|
157
|
+
supportsResponses: false,
|
|
158
|
+
lifecycle
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
var GOOGLE_MODELS = {
|
|
162
|
+
"gemini-2.5-pro": createGoogleModel(
|
|
163
|
+
"ri.language-model-service..language-model.gemini-2-5-pro",
|
|
164
|
+
"Gemini 2.5 Pro",
|
|
165
|
+
"ga"
|
|
166
|
+
),
|
|
167
|
+
"gemini-2.5-flash": createGoogleModel(
|
|
168
|
+
"ri.language-model-service..language-model.gemini-2-5-flash",
|
|
169
|
+
"Gemini 2.5 Flash",
|
|
170
|
+
"ga"
|
|
171
|
+
),
|
|
172
|
+
"gemini-2.5-flash-lite": createGoogleModel(
|
|
173
|
+
"ri.language-model-service..language-model.gemini-2-5-flash-lite",
|
|
174
|
+
"Gemini 2.5 Flash Lite",
|
|
175
|
+
"ga"
|
|
176
|
+
),
|
|
177
|
+
"gemini-3-pro": createGoogleModel(
|
|
178
|
+
"ri.language-model-service..language-model.gemini-3-pro",
|
|
179
|
+
"Gemini 3 Pro (Preview)",
|
|
180
|
+
"sunset"
|
|
181
|
+
),
|
|
182
|
+
"gemini-3-flash": createGoogleModel(
|
|
183
|
+
"ri.language-model-service..language-model.gemini-3-flash",
|
|
184
|
+
"Gemini 3 Flash (Preview)",
|
|
185
|
+
"ga"
|
|
186
|
+
),
|
|
187
|
+
"gemini-3.1-pro": createGoogleModel(
|
|
188
|
+
"ri.language-model-service..language-model.gemini-3-1-pro",
|
|
189
|
+
"Gemini 3.1 Pro (Preview)",
|
|
190
|
+
"ga"
|
|
191
|
+
),
|
|
192
|
+
"gemini-3.1-flash-lite": createGoogleModel(
|
|
193
|
+
"ri.language-model-service..language-model.gemini-3-1-flash-lite",
|
|
194
|
+
"Gemini 3.1 Flash Lite (Preview)",
|
|
195
|
+
"experimental"
|
|
196
|
+
)
|
|
197
|
+
};
|
|
198
|
+
|
|
148
199
|
// src/models/openai-models.ts
|
|
149
200
|
function createOpenAIModel(rid, displayName, {
|
|
150
201
|
lifecycle,
|
|
@@ -240,7 +291,8 @@ var OPENAI_REASONING_MODEL_TARGETS = /* @__PURE__ */ new Set([
|
|
|
240
291
|
// src/models/catalog.ts
|
|
241
292
|
var MODEL_CATALOG = {
|
|
242
293
|
...OPENAI_MODELS,
|
|
243
|
-
...ANTHROPIC_MODELS
|
|
294
|
+
...ANTHROPIC_MODELS,
|
|
295
|
+
...GOOGLE_MODELS
|
|
244
296
|
};
|
|
245
297
|
var MODEL_CATALOG_BY_RID = Object.fromEntries(
|
|
246
298
|
Object.values(MODEL_CATALOG).map((metadata) => [metadata.rid, metadata])
|
|
@@ -306,11 +358,22 @@ var ANTHROPIC_MODEL_IDS = [
|
|
|
306
358
|
"claude-sonnet-4.5",
|
|
307
359
|
"claude-sonnet-4.6"
|
|
308
360
|
];
|
|
361
|
+
var GOOGLE_MODEL_IDS = [
|
|
362
|
+
"gemini-2.5-pro",
|
|
363
|
+
"gemini-2.5-flash",
|
|
364
|
+
"gemini-2.5-flash-lite",
|
|
365
|
+
"gemini-3-pro",
|
|
366
|
+
"gemini-3-flash",
|
|
367
|
+
"gemini-3.1-pro",
|
|
368
|
+
"gemini-3.1-flash-lite"
|
|
369
|
+
];
|
|
309
370
|
// Annotate the CommonJS export names for ESM import in node:
|
|
310
371
|
0 && (module.exports = {
|
|
311
372
|
ANTHROPIC_MODELS,
|
|
312
373
|
ANTHROPIC_MODEL_IDS,
|
|
313
374
|
FoundryModelNotFoundError,
|
|
375
|
+
GOOGLE_MODELS,
|
|
376
|
+
GOOGLE_MODEL_IDS,
|
|
314
377
|
MODEL_CATALOG,
|
|
315
378
|
MODEL_CATALOG_BY_RID,
|
|
316
379
|
OPENAI_MODELS,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +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":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/config.ts","../src/errors.ts","../src/models/anthropic-models.ts","../src/models/google-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 { GOOGLE_MODELS } from './models/google-models.js';\nexport { OPENAI_MODELS } from './models/openai-models.js';\nexport type {\n AnthropicModelId,\n FoundryConfig,\n GoogleModelId,\n KnownAnthropicModelId,\n KnownGoogleModelId,\n KnownModelId,\n KnownOpenAIModelId,\n ModelLifecycle,\n ModelMetadata,\n ModelProvider,\n OpenAIModelId,\n ResolvedModelTarget,\n} from './types.js';\nexport { ANTHROPIC_MODEL_IDS, GOOGLE_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 { KnownGoogleModelId, ModelLifecycle, ModelMetadata } from '../types.js';\n\nfunction createGoogleModel(\n rid: string,\n displayName: string,\n lifecycle: ModelLifecycle,\n): ModelMetadata {\n return {\n rid,\n provider: 'google',\n displayName,\n supportsVision: true,\n supportsResponses: false,\n lifecycle,\n };\n}\n\nexport const GOOGLE_MODELS = {\n 'gemini-2.5-pro': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-2-5-pro',\n 'Gemini 2.5 Pro',\n 'ga',\n ),\n 'gemini-2.5-flash': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-2-5-flash',\n 'Gemini 2.5 Flash',\n 'ga',\n ),\n 'gemini-2.5-flash-lite': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-2-5-flash-lite',\n 'Gemini 2.5 Flash Lite',\n 'ga',\n ),\n 'gemini-3-pro': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-3-pro',\n 'Gemini 3 Pro (Preview)',\n 'sunset',\n ),\n 'gemini-3-flash': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-3-flash',\n 'Gemini 3 Flash (Preview)',\n 'ga',\n ),\n 'gemini-3.1-pro': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-3-1-pro',\n 'Gemini 3.1 Pro (Preview)',\n 'ga',\n ),\n 'gemini-3.1-flash-lite': createGoogleModel(\n 'ri.language-model-service..language-model.gemini-3-1-flash-lite',\n 'Gemini 3.1 Flash Lite (Preview)',\n 'experimental',\n ),\n} as const satisfies Record<KnownGoogleModelId, 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 { GOOGLE_MODELS } from './google-models.js';\nimport { OPENAI_MODELS } from './openai-models.js';\n\nexport const MODEL_CATALOG = {\n ...OPENAI_MODELS,\n ...ANTHROPIC_MODELS,\n ...GOOGLE_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 const GOOGLE_MODEL_IDS = [\n 'gemini-2.5-pro',\n 'gemini-2.5-flash',\n 'gemini-2.5-flash-lite',\n 'gemini-3-pro',\n 'gemini-3-flash',\n 'gemini-3.1-pro',\n 'gemini-3.1-flash-lite',\n] as const;\n\nexport type KnownGoogleModelId = (typeof GOOGLE_MODEL_IDS)[number];\n\nexport type GoogleModelId = KnownGoogleModelId | (string & {});\n\nexport type KnownModelId = KnownOpenAIModelId | KnownAnthropicModelId | KnownGoogleModelId;\n\nexport type ModelProvider = 'openai' | 'anthropic' | 'google';\nexport type ModelLifecycle = 'ga' | 'experimental' | 'sunset' | '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":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as FoundryConfig, M as ModelMetadata, K as KnownModelId, a as ModelProvider, R as ResolvedModelTarget } from './types-
|
|
2
|
-
export { A as ANTHROPIC_MODEL_IDS, b as AnthropicModelId, c as
|
|
1
|
+
import { F as FoundryConfig, M as ModelMetadata, K as KnownModelId, a as ModelProvider, R as ResolvedModelTarget } from './types-Dxb5JHjl.cjs';
|
|
2
|
+
export { A as ANTHROPIC_MODEL_IDS, b as AnthropicModelId, G as GOOGLE_MODEL_IDS, c as GoogleModelId, d as KnownAnthropicModelId, e as KnownGoogleModelId, f as KnownOpenAIModelId, g as ModelLifecycle, O as OPENAI_MODEL_IDS, h as OpenAIModelId } from './types-Dxb5JHjl.cjs';
|
|
3
3
|
|
|
4
4
|
declare function loadFoundryConfig(env?: NodeJS.ProcessEnv): FoundryConfig;
|
|
5
5
|
|
|
@@ -21,6 +21,13 @@ declare const ANTHROPIC_MODELS: {
|
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
declare const MODEL_CATALOG: {
|
|
24
|
+
readonly 'gemini-2.5-pro': ModelMetadata;
|
|
25
|
+
readonly 'gemini-2.5-flash': ModelMetadata;
|
|
26
|
+
readonly 'gemini-2.5-flash-lite': ModelMetadata;
|
|
27
|
+
readonly 'gemini-3-pro': ModelMetadata;
|
|
28
|
+
readonly 'gemini-3-flash': ModelMetadata;
|
|
29
|
+
readonly 'gemini-3.1-pro': ModelMetadata;
|
|
30
|
+
readonly 'gemini-3.1-flash-lite': ModelMetadata;
|
|
24
31
|
readonly 'claude-3.5-haiku': ModelMetadata;
|
|
25
32
|
readonly 'claude-3.7-sonnet': ModelMetadata;
|
|
26
33
|
readonly 'claude-haiku-4.5': ModelMetadata;
|
|
@@ -56,6 +63,16 @@ declare function resolveKnownModelMetadata(modelId: string): ModelMetadata;
|
|
|
56
63
|
declare function resolveModelRid(modelId: string): string;
|
|
57
64
|
declare function resolveModelProvider(modelId: string): ModelProvider;
|
|
58
65
|
|
|
66
|
+
declare const GOOGLE_MODELS: {
|
|
67
|
+
readonly 'gemini-2.5-pro': ModelMetadata;
|
|
68
|
+
readonly 'gemini-2.5-flash': ModelMetadata;
|
|
69
|
+
readonly 'gemini-2.5-flash-lite': ModelMetadata;
|
|
70
|
+
readonly 'gemini-3-pro': ModelMetadata;
|
|
71
|
+
readonly 'gemini-3-flash': ModelMetadata;
|
|
72
|
+
readonly 'gemini-3.1-pro': ModelMetadata;
|
|
73
|
+
readonly 'gemini-3.1-flash-lite': ModelMetadata;
|
|
74
|
+
};
|
|
75
|
+
|
|
59
76
|
declare const OPENAI_MODELS: {
|
|
60
77
|
readonly 'gpt-4.1': ModelMetadata;
|
|
61
78
|
readonly 'gpt-4.1-mini': ModelMetadata;
|
|
@@ -75,4 +92,4 @@ declare const OPENAI_MODELS: {
|
|
|
75
92
|
readonly 'o4-mini': ModelMetadata;
|
|
76
93
|
};
|
|
77
94
|
|
|
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 };
|
|
95
|
+
export { ANTHROPIC_MODELS, FoundryConfig, FoundryModelNotFoundError, GOOGLE_MODELS, KnownModelId, MODEL_CATALOG, MODEL_CATALOG_BY_RID, ModelMetadata, ModelProvider, OPENAI_MODELS, ResolvedModelTarget, getModelMetadata, hasKnownModel, loadFoundryConfig, resolveKnownModelMetadata, resolveModelProvider, resolveModelRid, resolveModelTarget };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as FoundryConfig, M as ModelMetadata, K as KnownModelId, a as ModelProvider, R as ResolvedModelTarget } from './types-
|
|
2
|
-
export { A as ANTHROPIC_MODEL_IDS, b as AnthropicModelId, c as
|
|
1
|
+
import { F as FoundryConfig, M as ModelMetadata, K as KnownModelId, a as ModelProvider, R as ResolvedModelTarget } from './types-Dxb5JHjl.js';
|
|
2
|
+
export { A as ANTHROPIC_MODEL_IDS, b as AnthropicModelId, G as GOOGLE_MODEL_IDS, c as GoogleModelId, d as KnownAnthropicModelId, e as KnownGoogleModelId, f as KnownOpenAIModelId, g as ModelLifecycle, O as OPENAI_MODEL_IDS, h as OpenAIModelId } from './types-Dxb5JHjl.js';
|
|
3
3
|
|
|
4
4
|
declare function loadFoundryConfig(env?: NodeJS.ProcessEnv): FoundryConfig;
|
|
5
5
|
|
|
@@ -21,6 +21,13 @@ declare const ANTHROPIC_MODELS: {
|
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
declare const MODEL_CATALOG: {
|
|
24
|
+
readonly 'gemini-2.5-pro': ModelMetadata;
|
|
25
|
+
readonly 'gemini-2.5-flash': ModelMetadata;
|
|
26
|
+
readonly 'gemini-2.5-flash-lite': ModelMetadata;
|
|
27
|
+
readonly 'gemini-3-pro': ModelMetadata;
|
|
28
|
+
readonly 'gemini-3-flash': ModelMetadata;
|
|
29
|
+
readonly 'gemini-3.1-pro': ModelMetadata;
|
|
30
|
+
readonly 'gemini-3.1-flash-lite': ModelMetadata;
|
|
24
31
|
readonly 'claude-3.5-haiku': ModelMetadata;
|
|
25
32
|
readonly 'claude-3.7-sonnet': ModelMetadata;
|
|
26
33
|
readonly 'claude-haiku-4.5': ModelMetadata;
|
|
@@ -56,6 +63,16 @@ declare function resolveKnownModelMetadata(modelId: string): ModelMetadata;
|
|
|
56
63
|
declare function resolveModelRid(modelId: string): string;
|
|
57
64
|
declare function resolveModelProvider(modelId: string): ModelProvider;
|
|
58
65
|
|
|
66
|
+
declare const GOOGLE_MODELS: {
|
|
67
|
+
readonly 'gemini-2.5-pro': ModelMetadata;
|
|
68
|
+
readonly 'gemini-2.5-flash': ModelMetadata;
|
|
69
|
+
readonly 'gemini-2.5-flash-lite': ModelMetadata;
|
|
70
|
+
readonly 'gemini-3-pro': ModelMetadata;
|
|
71
|
+
readonly 'gemini-3-flash': ModelMetadata;
|
|
72
|
+
readonly 'gemini-3.1-pro': ModelMetadata;
|
|
73
|
+
readonly 'gemini-3.1-flash-lite': ModelMetadata;
|
|
74
|
+
};
|
|
75
|
+
|
|
59
76
|
declare const OPENAI_MODELS: {
|
|
60
77
|
readonly 'gpt-4.1': ModelMetadata;
|
|
61
78
|
readonly 'gpt-4.1-mini': ModelMetadata;
|
|
@@ -75,4 +92,4 @@ declare const OPENAI_MODELS: {
|
|
|
75
92
|
readonly 'o4-mini': ModelMetadata;
|
|
76
93
|
};
|
|
77
94
|
|
|
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 };
|
|
95
|
+
export { ANTHROPIC_MODELS, FoundryConfig, FoundryModelNotFoundError, GOOGLE_MODELS, KnownModelId, MODEL_CATALOG, MODEL_CATALOG_BY_RID, ModelMetadata, ModelProvider, OPENAI_MODELS, ResolvedModelTarget, getModelMetadata, hasKnownModel, loadFoundryConfig, resolveKnownModelMetadata, resolveModelProvider, resolveModelRid, resolveModelTarget };
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ANTHROPIC_MODELS,
|
|
3
3
|
FoundryModelNotFoundError,
|
|
4
|
+
GOOGLE_MODELS,
|
|
4
5
|
MODEL_CATALOG,
|
|
5
6
|
MODEL_CATALOG_BY_RID,
|
|
6
7
|
OPENAI_MODELS,
|
|
@@ -11,7 +12,7 @@ import {
|
|
|
11
12
|
resolveModelProvider,
|
|
12
13
|
resolveModelRid,
|
|
13
14
|
resolveModelTarget
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-QPX75PWC.mjs";
|
|
15
16
|
|
|
16
17
|
// src/types.ts
|
|
17
18
|
var OPENAI_MODEL_IDS = [
|
|
@@ -44,10 +45,21 @@ var ANTHROPIC_MODEL_IDS = [
|
|
|
44
45
|
"claude-sonnet-4.5",
|
|
45
46
|
"claude-sonnet-4.6"
|
|
46
47
|
];
|
|
48
|
+
var GOOGLE_MODEL_IDS = [
|
|
49
|
+
"gemini-2.5-pro",
|
|
50
|
+
"gemini-2.5-flash",
|
|
51
|
+
"gemini-2.5-flash-lite",
|
|
52
|
+
"gemini-3-pro",
|
|
53
|
+
"gemini-3-flash",
|
|
54
|
+
"gemini-3.1-pro",
|
|
55
|
+
"gemini-3.1-flash-lite"
|
|
56
|
+
];
|
|
47
57
|
export {
|
|
48
58
|
ANTHROPIC_MODELS,
|
|
49
59
|
ANTHROPIC_MODEL_IDS,
|
|
50
60
|
FoundryModelNotFoundError,
|
|
61
|
+
GOOGLE_MODELS,
|
|
62
|
+
GOOGLE_MODEL_IDS,
|
|
51
63
|
MODEL_CATALOG,
|
|
52
64
|
MODEL_CATALOG_BY_RID,
|
|
53
65
|
OPENAI_MODELS,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +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":"
|
|
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 const GOOGLE_MODEL_IDS = [\n 'gemini-2.5-pro',\n 'gemini-2.5-flash',\n 'gemini-2.5-flash-lite',\n 'gemini-3-pro',\n 'gemini-3-flash',\n 'gemini-3.1-pro',\n 'gemini-3.1-flash-lite',\n] as const;\n\nexport type KnownGoogleModelId = (typeof GOOGLE_MODEL_IDS)[number];\n\nexport type GoogleModelId = KnownGoogleModelId | (string & {});\n\nexport type KnownModelId = KnownOpenAIModelId | KnownAnthropicModelId | KnownGoogleModelId;\n\nexport type ModelProvider = 'openai' | 'anthropic' | 'google';\nexport type ModelLifecycle = 'ga' | 'experimental' | 'sunset' | '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;AAMO,IAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
|
|
@@ -133,6 +133,55 @@ var ANTHROPIC_MODELS = {
|
|
|
133
133
|
)
|
|
134
134
|
};
|
|
135
135
|
|
|
136
|
+
// src/models/google-models.ts
|
|
137
|
+
function createGoogleModel(rid, displayName, lifecycle) {
|
|
138
|
+
return {
|
|
139
|
+
rid,
|
|
140
|
+
provider: "google",
|
|
141
|
+
displayName,
|
|
142
|
+
supportsVision: true,
|
|
143
|
+
supportsResponses: false,
|
|
144
|
+
lifecycle
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
var GOOGLE_MODELS = {
|
|
148
|
+
"gemini-2.5-pro": createGoogleModel(
|
|
149
|
+
"ri.language-model-service..language-model.gemini-2-5-pro",
|
|
150
|
+
"Gemini 2.5 Pro",
|
|
151
|
+
"ga"
|
|
152
|
+
),
|
|
153
|
+
"gemini-2.5-flash": createGoogleModel(
|
|
154
|
+
"ri.language-model-service..language-model.gemini-2-5-flash",
|
|
155
|
+
"Gemini 2.5 Flash",
|
|
156
|
+
"ga"
|
|
157
|
+
),
|
|
158
|
+
"gemini-2.5-flash-lite": createGoogleModel(
|
|
159
|
+
"ri.language-model-service..language-model.gemini-2-5-flash-lite",
|
|
160
|
+
"Gemini 2.5 Flash Lite",
|
|
161
|
+
"ga"
|
|
162
|
+
),
|
|
163
|
+
"gemini-3-pro": createGoogleModel(
|
|
164
|
+
"ri.language-model-service..language-model.gemini-3-pro",
|
|
165
|
+
"Gemini 3 Pro (Preview)",
|
|
166
|
+
"sunset"
|
|
167
|
+
),
|
|
168
|
+
"gemini-3-flash": createGoogleModel(
|
|
169
|
+
"ri.language-model-service..language-model.gemini-3-flash",
|
|
170
|
+
"Gemini 3 Flash (Preview)",
|
|
171
|
+
"ga"
|
|
172
|
+
),
|
|
173
|
+
"gemini-3.1-pro": createGoogleModel(
|
|
174
|
+
"ri.language-model-service..language-model.gemini-3-1-pro",
|
|
175
|
+
"Gemini 3.1 Pro (Preview)",
|
|
176
|
+
"ga"
|
|
177
|
+
),
|
|
178
|
+
"gemini-3.1-flash-lite": createGoogleModel(
|
|
179
|
+
"ri.language-model-service..language-model.gemini-3-1-flash-lite",
|
|
180
|
+
"Gemini 3.1 Flash Lite (Preview)",
|
|
181
|
+
"experimental"
|
|
182
|
+
)
|
|
183
|
+
};
|
|
184
|
+
|
|
136
185
|
// src/models/openai-models.ts
|
|
137
186
|
function createOpenAIModel(rid, displayName, {
|
|
138
187
|
lifecycle,
|
|
@@ -228,7 +277,8 @@ var OPENAI_REASONING_MODEL_TARGETS = /* @__PURE__ */ new Set([
|
|
|
228
277
|
// src/models/catalog.ts
|
|
229
278
|
var MODEL_CATALOG = {
|
|
230
279
|
...OPENAI_MODELS,
|
|
231
|
-
...ANTHROPIC_MODELS
|
|
280
|
+
...ANTHROPIC_MODELS,
|
|
281
|
+
...GOOGLE_MODELS
|
|
232
282
|
};
|
|
233
283
|
var MODEL_CATALOG_BY_RID = Object.fromEntries(
|
|
234
284
|
Object.values(MODEL_CATALOG).map((metadata) => [metadata.rid, metadata])
|