@inkeep/agents-run-api 0.0.0-dev-20250919192748 → 0.0.0-dev-20250920002849

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/dist/index.cjs CHANGED
@@ -28,8 +28,10 @@ var destr = require('destr');
28
28
  var traverse = require('traverse');
29
29
  var ai = require('ai');
30
30
  var anthropic = require('@ai-sdk/anthropic');
31
+ var gateway = require('@ai-sdk/gateway');
31
32
  var google = require('@ai-sdk/google');
32
33
  var openai = require('@ai-sdk/openai');
34
+ var aiSdkProvider = require('@openrouter/ai-sdk-provider');
33
35
  var jmespath = require('jmespath');
34
36
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
35
37
  var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
@@ -1411,6 +1413,18 @@ var _ModelFactory = class _ModelFactory {
1411
1413
  return openai.createOpenAI(config);
1412
1414
  case "google":
1413
1415
  return google.createGoogleGenerativeAI(config);
1416
+ case "openrouter":
1417
+ return {
1418
+ ...aiSdkProvider.createOpenRouter(config),
1419
+ textEmbeddingModel: () => {
1420
+ throw new Error("OpenRouter does not support text embeddings");
1421
+ },
1422
+ imageModel: () => {
1423
+ throw new Error("OpenRouter does not support image generation");
1424
+ }
1425
+ };
1426
+ case "gateway":
1427
+ return gateway.createGateway(config);
1414
1428
  default:
1415
1429
  throw new Error(`Unsupported provider: ${provider}`);
1416
1430
  }
@@ -1470,26 +1484,29 @@ var _ModelFactory = class _ModelFactory {
1470
1484
  return openai.openai(modelName);
1471
1485
  case "google":
1472
1486
  return google.google(modelName);
1487
+ case "openrouter":
1488
+ return aiSdkProvider.openrouter(modelName);
1489
+ case "gateway":
1490
+ return gateway.gateway(modelName);
1473
1491
  default:
1474
- throw new Error(`Unsupported provider: ${provider}`);
1492
+ throw new Error(
1493
+ `Unsupported provider: ${provider}. Supported providers are: ${_ModelFactory.BUILT_IN_PROVIDERS.join(", ")}. To access other models, use OpenRouter (openrouter/model-id) or Vercel AI Gateway (gateway/model-id).`
1494
+ );
1475
1495
  }
1476
1496
  }
1477
1497
  /**
1478
1498
  * Parse model string to extract provider and model name
1479
1499
  * Examples: "anthropic/claude-sonnet-4" -> { provider: "anthropic", modelName: "claude-sonnet-4" }
1500
+ * "openrouter/anthropic/claude-sonnet-4" -> { provider: "openrouter", modelName: "anthropic/claude-sonnet-4" }
1480
1501
  * "claude-sonnet-4" -> { provider: "anthropic", modelName: "claude-sonnet-4" } (default to anthropic)
1481
1502
  */
1482
1503
  static parseModelString(modelString) {
1483
1504
  if (modelString.includes("/")) {
1484
1505
  const [provider, ...modelParts] = modelString.split("/");
1485
1506
  const normalizedProvider = provider.toLowerCase();
1486
- if (!_ModelFactory.SUPPORTED_PROVIDERS.includes(normalizedProvider)) {
1487
- logger5.error(
1488
- { provider: normalizedProvider, modelName: modelParts.join("/") },
1489
- "Unsupported provider detected, falling back to anthropic"
1490
- );
1507
+ if (!_ModelFactory.BUILT_IN_PROVIDERS.includes(normalizedProvider)) {
1491
1508
  throw new Error(
1492
- `Unsupported provider: ${normalizedProvider}. Please provide a model in the format of provider/model-name.`
1509
+ `Unsupported provider: ${normalizedProvider}. Supported providers are: ${_ModelFactory.BUILT_IN_PROVIDERS.join(", ")}. To access other models, use OpenRouter (openrouter/model-id) or Vercel AI Gateway (gateway/model-id).`
1493
1510
  );
1494
1511
  }
1495
1512
  return {
@@ -1498,9 +1515,7 @@ var _ModelFactory = class _ModelFactory {
1498
1515
  // In case model name has slashes
1499
1516
  };
1500
1517
  }
1501
- throw new Error(
1502
- `Invalid model provided: ${modelString}. Please provide a model in the format of provider/model-name.`
1503
- );
1518
+ throw new Error(`No provider specified in model string: ${modelString}`);
1504
1519
  }
1505
1520
  /**
1506
1521
  * Get generation parameters from provider options
@@ -1564,9 +1579,15 @@ var _ModelFactory = class _ModelFactory {
1564
1579
  }
1565
1580
  };
1566
1581
  /**
1567
- * Supported providers for security validation
1582
+ * Built-in providers that have special handling
1568
1583
  */
1569
- __publicField(_ModelFactory, "SUPPORTED_PROVIDERS", ["anthropic", "openai", "google"]);
1584
+ __publicField(_ModelFactory, "BUILT_IN_PROVIDERS", [
1585
+ "anthropic",
1586
+ "openai",
1587
+ "google",
1588
+ "openrouter",
1589
+ "gateway"
1590
+ ]);
1570
1591
  var ModelFactory = _ModelFactory;
1571
1592
 
1572
1593
  // src/utils/graph-session.ts
package/dist/index.js CHANGED
@@ -25,8 +25,10 @@ import destr from 'destr';
25
25
  import traverse from 'traverse';
26
26
  import { createUIMessageStream, JsonToSseTransformStream, parsePartialJson, generateText, generateObject, tool, streamText, streamObject } from 'ai';
27
27
  import { createAnthropic, anthropic } from '@ai-sdk/anthropic';
28
+ import { createGateway, gateway } from '@ai-sdk/gateway';
28
29
  import { createGoogleGenerativeAI, google } from '@ai-sdk/google';
29
30
  import { createOpenAI, openai } from '@ai-sdk/openai';
31
+ import { createOpenRouter, openrouter } from '@openrouter/ai-sdk-provider';
30
32
  import jmespath from 'jmespath';
31
33
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
32
34
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
@@ -1140,6 +1142,18 @@ var _ModelFactory = class _ModelFactory {
1140
1142
  return createOpenAI(config);
1141
1143
  case "google":
1142
1144
  return createGoogleGenerativeAI(config);
1145
+ case "openrouter":
1146
+ return {
1147
+ ...createOpenRouter(config),
1148
+ textEmbeddingModel: () => {
1149
+ throw new Error("OpenRouter does not support text embeddings");
1150
+ },
1151
+ imageModel: () => {
1152
+ throw new Error("OpenRouter does not support image generation");
1153
+ }
1154
+ };
1155
+ case "gateway":
1156
+ return createGateway(config);
1143
1157
  default:
1144
1158
  throw new Error(`Unsupported provider: ${provider}`);
1145
1159
  }
@@ -1199,26 +1213,29 @@ var _ModelFactory = class _ModelFactory {
1199
1213
  return openai(modelName);
1200
1214
  case "google":
1201
1215
  return google(modelName);
1216
+ case "openrouter":
1217
+ return openrouter(modelName);
1218
+ case "gateway":
1219
+ return gateway(modelName);
1202
1220
  default:
1203
- throw new Error(`Unsupported provider: ${provider}`);
1221
+ throw new Error(
1222
+ `Unsupported provider: ${provider}. Supported providers are: ${_ModelFactory.BUILT_IN_PROVIDERS.join(", ")}. To access other models, use OpenRouter (openrouter/model-id) or Vercel AI Gateway (gateway/model-id).`
1223
+ );
1204
1224
  }
1205
1225
  }
1206
1226
  /**
1207
1227
  * Parse model string to extract provider and model name
1208
1228
  * Examples: "anthropic/claude-sonnet-4" -> { provider: "anthropic", modelName: "claude-sonnet-4" }
1229
+ * "openrouter/anthropic/claude-sonnet-4" -> { provider: "openrouter", modelName: "anthropic/claude-sonnet-4" }
1209
1230
  * "claude-sonnet-4" -> { provider: "anthropic", modelName: "claude-sonnet-4" } (default to anthropic)
1210
1231
  */
1211
1232
  static parseModelString(modelString) {
1212
1233
  if (modelString.includes("/")) {
1213
1234
  const [provider, ...modelParts] = modelString.split("/");
1214
1235
  const normalizedProvider = provider.toLowerCase();
1215
- if (!_ModelFactory.SUPPORTED_PROVIDERS.includes(normalizedProvider)) {
1216
- logger5.error(
1217
- { provider: normalizedProvider, modelName: modelParts.join("/") },
1218
- "Unsupported provider detected, falling back to anthropic"
1219
- );
1236
+ if (!_ModelFactory.BUILT_IN_PROVIDERS.includes(normalizedProvider)) {
1220
1237
  throw new Error(
1221
- `Unsupported provider: ${normalizedProvider}. Please provide a model in the format of provider/model-name.`
1238
+ `Unsupported provider: ${normalizedProvider}. Supported providers are: ${_ModelFactory.BUILT_IN_PROVIDERS.join(", ")}. To access other models, use OpenRouter (openrouter/model-id) or Vercel AI Gateway (gateway/model-id).`
1222
1239
  );
1223
1240
  }
1224
1241
  return {
@@ -1227,9 +1244,7 @@ var _ModelFactory = class _ModelFactory {
1227
1244
  // In case model name has slashes
1228
1245
  };
1229
1246
  }
1230
- throw new Error(
1231
- `Invalid model provided: ${modelString}. Please provide a model in the format of provider/model-name.`
1232
- );
1247
+ throw new Error(`No provider specified in model string: ${modelString}`);
1233
1248
  }
1234
1249
  /**
1235
1250
  * Get generation parameters from provider options
@@ -1293,9 +1308,15 @@ var _ModelFactory = class _ModelFactory {
1293
1308
  }
1294
1309
  };
1295
1310
  /**
1296
- * Supported providers for security validation
1311
+ * Built-in providers that have special handling
1297
1312
  */
1298
- __publicField(_ModelFactory, "SUPPORTED_PROVIDERS", ["anthropic", "openai", "google"]);
1313
+ __publicField(_ModelFactory, "BUILT_IN_PROVIDERS", [
1314
+ "anthropic",
1315
+ "openai",
1316
+ "google",
1317
+ "openrouter",
1318
+ "gateway"
1319
+ ]);
1299
1320
  var ModelFactory = _ModelFactory;
1300
1321
 
1301
1322
  // src/utils/stream-registry.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/agents-run-api",
3
- "version": "0.0.0-dev-20250919192748",
3
+ "version": "0.0.0-dev-20250920002849",
4
4
  "description": "Agents Run API for Inkeep Agent Framework - handles chat, agent execution, and streaming",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,6 +11,7 @@
11
11
  "license": "SEE LICENSE IN LICENSE.md",
12
12
  "dependencies": {
13
13
  "@ai-sdk/anthropic": "2.0.2",
14
+ "@ai-sdk/gateway": "^1.0.23",
14
15
  "@ai-sdk/google": "^2.0.14",
15
16
  "@ai-sdk/openai": "2.0.11",
16
17
  "@ai-sdk/react": "2.0.11",
@@ -19,6 +20,7 @@
19
20
  "@hono/swagger-ui": "^0.5.1",
20
21
  "@hono/zod-openapi": "^1.0.2",
21
22
  "@modelcontextprotocol/sdk": "^1.17.2",
23
+ "@openrouter/ai-sdk-provider": "^1.2.0",
22
24
  "@opentelemetry/api": "^1.9.0",
23
25
  "@opentelemetry/auto-instrumentations-node": "^0.64.1",
24
26
  "@opentelemetry/baggage-span-processor": "^0.4.0",
@@ -45,7 +47,7 @@
45
47
  "traverse": "^0.6.11",
46
48
  "ts-pattern": "^5.7.1",
47
49
  "zod": "^4.1.5",
48
- "@inkeep/agents-core": "^0.0.0-dev-20250919192748"
50
+ "@inkeep/agents-core": "^0.0.0-dev-20250920002849"
49
51
  },
50
52
  "devDependencies": {
51
53
  "@hono/vite-dev-server": "^0.20.1",