@openrouter/sdk 0.13.67 → 1.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.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ![hero illustration](./assets/banner.png)
2
2
 
3
- # OpenRouter SDK
3
+ # OpenRouter TypeScript SDK
4
4
 
5
- The [OpenRouter SDK](https://openrouter.ai/docs/sdks/typescript) is a TypeScript toolkit designed to help you build AI-powered features and solutions in any JS or TS based runtime. Giving you easy access to 400+ models across providers in an easy and type-safe way.
5
+ The [OpenRouter TypeScript SDK](https://openrouter.ai/docs/sdks/typescript) is the official type-safe toolkit designed to build AI-powered features and solutions in any JS or TS runtime. It provides seamless access to 400+ leading AI models across providers combined with first-class TypeScript support.
6
6
 
7
7
  To learn more about how to use the OpenRouter SDK, check out our [API Reference](https://openrouter.ai/docs/sdks/typescript/reference) and [Documentation](https://openrouter.ai/docs/sdks/typescript).
8
8
 
package/RUNTIMES.md CHANGED
@@ -14,7 +14,7 @@ Runtime environments that are explicitly supported are:
14
14
 
15
15
  - Evergreen browsers which include: Chrome, Safari, Edge, Firefox
16
16
  - Node.js active and maintenance LTS releases
17
- - Currently, this is v18 and v20
17
+ - Currently, this is v18, v20, and v22
18
18
  - Bun v1 and above
19
19
  - Deno v1.39
20
20
  - Note that Deno does not currently have native support for streaming file uploads backed by the filesystem ([issue link][deno-file-streaming])
@@ -49,8 +49,8 @@ export declare function serverURLFromOptions(options: SDKOptions): URL | null;
49
49
  export declare const SDK_METADATA: {
50
50
  readonly language: "typescript";
51
51
  readonly openapiDocVersion: "1.0.0";
52
- readonly sdkVersion: "0.13.67";
52
+ readonly sdkVersion: "1.0.1";
53
53
  readonly genVersion: "2.914.0";
54
- readonly userAgent: "speakeasy-sdk/typescript 0.13.67 2.914.0 1.0.0 @openrouter/sdk";
54
+ readonly userAgent: "speakeasy-sdk/typescript 1.0.1 2.914.0 1.0.0 @openrouter/sdk";
55
55
  };
56
56
  //# sourceMappingURL=config.d.ts.map
package/esm/lib/config.js CHANGED
@@ -26,8 +26,8 @@ export function serverURLFromOptions(options) {
26
26
  export const SDK_METADATA = {
27
27
  language: "typescript",
28
28
  openapiDocVersion: "1.0.0",
29
- sdkVersion: "0.13.67",
29
+ sdkVersion: "1.0.1",
30
30
  genVersion: "2.914.0",
31
- userAgent: "speakeasy-sdk/typescript 0.13.67 2.914.0 1.0.0 @openrouter/sdk",
31
+ userAgent: "speakeasy-sdk/typescript 1.0.1 2.914.0 1.0.0 @openrouter/sdk",
32
32
  };
33
33
  //# sourceMappingURL=config.js.map
@@ -55,7 +55,7 @@ export type FusionServerToolConfig = {
55
55
  */
56
56
  cacheControl?: AnthropicCacheControlDirective | undefined;
57
57
  /**
58
- * Maximum number of output tokens (including reasoning tokens) each panelist and the judge model may produce per inner call. Controls the total output budget so reasoning-heavy models like GPT-5.5 do not exhaust their token allowance before producing visible text. When omitted, panelists default to 32000 and the judge to 50000.
58
+ * Maximum number of output tokens (including reasoning tokens) each panelist and the judge model may produce per inner call. Controls the total output budget so reasoning-heavy models like GPT-5.5 do not exhaust their token allowance before producing visible text. When omitted, panelists default to 32000 and the judge to 20000.
59
59
  */
60
60
  maxCompletionTokens?: number | undefined;
61
61
  /**
@@ -11,6 +11,14 @@ export type OutputBashServerToolItemType = ClosedEnum<typeof OutputBashServerToo
11
11
  * An openrouter:bash server tool output item
12
12
  */
13
13
  export type OutputBashServerToolItem = {
14
+ /**
15
+ * The raw tool-call arguments string as emitted by the model.
16
+ */
17
+ arguments?: string | undefined;
18
+ /**
19
+ * The model-generated tool call id from the originating turn.
20
+ */
21
+ callId?: string | undefined;
14
22
  command?: string | undefined;
15
23
  exitCode?: number | undefined;
16
24
  id?: string | undefined;
@@ -27,6 +35,8 @@ export declare const OutputBashServerToolItemType$outboundSchema: z.ZodEnum<type
27
35
  export declare const OutputBashServerToolItem$inboundSchema: z.ZodType<OutputBashServerToolItem, unknown>;
28
36
  /** @internal */
29
37
  export type OutputBashServerToolItem$Outbound = {
38
+ arguments?: string | undefined;
39
+ call_id?: string | undefined;
30
40
  command?: string | undefined;
31
41
  exitCode?: number | undefined;
32
42
  id?: string | undefined;
@@ -3,6 +3,7 @@
3
3
  * @generated-id: 8eeee25f4818
4
4
  */
5
5
  import * as z from "zod/v4";
6
+ import { remap as remap$ } from "../lib/primitives.js";
6
7
  import { safeParse } from "../lib/schemas.js";
7
8
  import { ToolCallStatus$inboundSchema, ToolCallStatus$outboundSchema, } from "./toolcallstatus.js";
8
9
  export const OutputBashServerToolItemType = {
@@ -14,6 +15,8 @@ export const OutputBashServerToolItemType$inboundSchema = z.enum(OutputBashServe
14
15
  export const OutputBashServerToolItemType$outboundSchema = OutputBashServerToolItemType$inboundSchema;
15
16
  /** @internal */
16
17
  export const OutputBashServerToolItem$inboundSchema = z.object({
18
+ arguments: z.string().optional(),
19
+ call_id: z.string().optional(),
17
20
  command: z.string().optional(),
18
21
  exitCode: z.int().optional(),
19
22
  id: z.string().optional(),
@@ -21,9 +24,15 @@ export const OutputBashServerToolItem$inboundSchema = z.object({
21
24
  stderr: z.string().optional(),
22
25
  stdout: z.string().optional(),
23
26
  type: OutputBashServerToolItemType$inboundSchema,
27
+ }).transform((v) => {
28
+ return remap$(v, {
29
+ "call_id": "callId",
30
+ });
24
31
  });
25
32
  /** @internal */
26
33
  export const OutputBashServerToolItem$outboundSchema = z.object({
34
+ arguments: z.string().optional(),
35
+ callId: z.string().optional(),
27
36
  command: z.string().optional(),
28
37
  exitCode: z.int().optional(),
29
38
  id: z.string().optional(),
@@ -31,6 +40,10 @@ export const OutputBashServerToolItem$outboundSchema = z.object({
31
40
  stderr: z.string().optional(),
32
41
  stdout: z.string().optional(),
33
42
  type: OutputBashServerToolItemType$outboundSchema,
43
+ }).transform((v) => {
44
+ return remap$(v, {
45
+ callId: "call_id",
46
+ });
34
47
  });
35
48
  export function outputBashServerToolItemToJSON(outputBashServerToolItem) {
36
49
  return JSON.stringify(OutputBashServerToolItem$outboundSchema.parse(outputBashServerToolItem));
@@ -16,10 +16,18 @@ export type OutputSubagentServerToolItem = {
16
16
  */
17
17
  error?: string | undefined;
18
18
  id?: string | undefined;
19
+ /**
20
+ * Provider-safe function name of the specific subagent instance that produced this item (e.g. `openrouter_subagent__1`). Present only on items from non-default instances — the second and later subagent entries in the request `tools` array. The first (default) instance omits it, even when multiple subagents are configured. When a replayed item echoes this field back, the transcript rehydrates the call under that instance's tool. This identity is positional: it is derived from the index of the subagent entry in the request `tools` array, so keep the order of subagent entries stable across requests in a conversation.
21
+ */
22
+ instanceName?: string | undefined;
19
23
  /**
20
24
  * Slug of the worker model that executed the task.
21
25
  */
22
26
  model?: string | undefined;
27
+ /**
28
+ * Configured name of the subagent that executed the task (the `name` on its tool entry). Present only for named subagents; omitted for an unnamed (default) subagent.
29
+ */
30
+ name?: string | undefined;
23
31
  /**
24
32
  * The worker model's result (the outcome text returned to the delegating model).
25
33
  */
@@ -45,7 +53,9 @@ export declare const OutputSubagentServerToolItem$inboundSchema: z.ZodType<Outpu
45
53
  export type OutputSubagentServerToolItem$Outbound = {
46
54
  error?: string | undefined;
47
55
  id?: string | undefined;
56
+ instance_name?: string | undefined;
48
57
  model?: string | undefined;
58
+ name?: string | undefined;
49
59
  outcome?: string | undefined;
50
60
  status: string;
51
61
  task_description?: string | undefined;
@@ -17,7 +17,9 @@ export const OutputSubagentServerToolItemType$outboundSchema = OutputSubagentSer
17
17
  export const OutputSubagentServerToolItem$inboundSchema = z.object({
18
18
  error: z.string().optional(),
19
19
  id: z.string().optional(),
20
+ instance_name: z.string().optional(),
20
21
  model: z.string().optional(),
22
+ name: z.string().optional(),
21
23
  outcome: z.string().optional(),
22
24
  status: ToolCallStatus$inboundSchema,
23
25
  task_description: z.string().optional(),
@@ -25,6 +27,7 @@ export const OutputSubagentServerToolItem$inboundSchema = z.object({
25
27
  type: OutputSubagentServerToolItemType$inboundSchema,
26
28
  }).transform((v) => {
27
29
  return remap$(v, {
30
+ "instance_name": "instanceName",
28
31
  "task_description": "taskDescription",
29
32
  "task_name": "taskName",
30
33
  });
@@ -33,7 +36,9 @@ export const OutputSubagentServerToolItem$inboundSchema = z.object({
33
36
  export const OutputSubagentServerToolItem$outboundSchema = z.object({
34
37
  error: z.string().optional(),
35
38
  id: z.string().optional(),
39
+ instanceName: z.string().optional(),
36
40
  model: z.string().optional(),
41
+ name: z.string().optional(),
37
42
  outcome: z.string().optional(),
38
43
  status: ToolCallStatus$outboundSchema,
39
44
  taskDescription: z.string().optional(),
@@ -41,6 +46,7 @@ export const OutputSubagentServerToolItem$outboundSchema = z.object({
41
46
  type: OutputSubagentServerToolItemType$outboundSchema,
42
47
  }).transform((v) => {
43
48
  return remap$(v, {
49
+ instanceName: "instance_name",
44
50
  taskDescription: "task_description",
45
51
  taskName: "task_name",
46
52
  });
@@ -2,7 +2,7 @@ import * as z from "zod/v4";
2
2
  import { SubagentNestedTool, SubagentNestedTool$Outbound } from "./subagentnestedtool.js";
3
3
  import { SubagentReasoning, SubagentReasoning$Outbound } from "./subagentreasoning.js";
4
4
  /**
5
- * Configuration for the openrouter:subagent server tool.
5
+ * Configuration for one openrouter:subagent server tool entry.
6
6
  */
7
7
  export type SubagentServerToolConfig = {
8
8
  /**
@@ -21,6 +21,10 @@ export type SubagentServerToolConfig = {
21
21
  * Slug of the model that executes delegated tasks (any OpenRouter model). Typically a smaller, cheaper, faster model than the one delegating. When omitted, the model from the outer API request is used. The subagent tool itself cannot be the subagent model.
22
22
  */
23
23
  model?: string | undefined;
24
+ /**
25
+ * Optional name for this subagent. The model sees one tool per named subagent (and one default for an unnamed entry). Names must be unique across subagent entries. Letters, digits, spaces, underscores, and dashes; trimmed; 1–64 chars.
26
+ */
27
+ name?: string | undefined;
24
28
  /**
25
29
  * Reasoning configuration forwarded to the subagent call. Use this to control reasoning effort and token budget for models that support extended thinking.
26
30
  */
@@ -40,6 +44,7 @@ export type SubagentServerToolConfig$Outbound = {
40
44
  max_completion_tokens?: number | undefined;
41
45
  max_tool_calls?: number | undefined;
42
46
  model?: string | undefined;
47
+ name?: string | undefined;
43
48
  reasoning?: SubagentReasoning$Outbound | undefined;
44
49
  temperature?: number | undefined;
45
50
  tools?: Array<SubagentNestedTool$Outbound> | undefined;
@@ -12,6 +12,7 @@ export const SubagentServerToolConfig$outboundSchema = z.object({
12
12
  maxCompletionTokens: z.int().optional(),
13
13
  maxToolCalls: z.int().optional(),
14
14
  model: z.string().optional(),
15
+ name: z.string().optional(),
15
16
  reasoning: SubagentReasoning$outboundSchema.optional(),
16
17
  temperature: z.number().optional(),
17
18
  tools: z.array(SubagentNestedTool$outboundSchema).optional(),
@@ -10,7 +10,7 @@ export type SubagentServerToolOpenRouterType = ClosedEnum<typeof SubagentServerT
10
10
  */
11
11
  export type SubagentServerToolOpenRouter = {
12
12
  /**
13
- * Configuration for the openrouter:subagent server tool.
13
+ * Configuration for one openrouter:subagent server tool entry.
14
14
  */
15
15
  parameters?: SubagentServerToolConfig | undefined;
16
16
  type: SubagentServerToolOpenRouterType;
package/jsr.json CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  {
4
4
  "name": "@openrouter/sdk",
5
- "version": "0.13.67",
5
+ "version": "1.0.1",
6
6
  "exports": {
7
7
  ".": "./src/index.ts",
8
8
  "./models/errors": "./src/models/errors/index.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrouter/sdk",
3
- "version": "0.13.67",
3
+ "version": "1.0.1",
4
4
  "author": "OpenRouter",
5
5
  "description": "The OpenRouter TypeScript SDK is a type-safe toolkit for building AI applications with access to 400+ language models through a unified API.",
6
6
  "keywords": [
@@ -73,15 +73,15 @@
73
73
  "lint": "eslint --cache --max-warnings=0 src",
74
74
  "build": "tsc",
75
75
  "prepublishOnly": "npm run build",
76
- "compile": "tsc",
77
76
  "postinstall": "node scripts/check-types.js || true",
78
77
  "prepare": "npm run build",
79
- "test": "vitest --run --project unit",
80
78
  "test:transit": "exit 0",
81
- "test:e2e": "vitest --run --project e2e",
82
79
  "test:watch": "vitest --watch --project unit",
83
80
  "typecheck": "tsc --noEmit",
84
- "typecheck:transit": "exit 0"
81
+ "typecheck:transit": "exit 0",
82
+ "compile": "tsc",
83
+ "test": "vitest --run --project unit",
84
+ "test:e2e": "vitest --run --project e2e"
85
85
  },
86
86
  "peerDependencies": {},
87
87
  "devDependencies": {