@openrouter/sdk 1.2.116 → 1.2.118

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.
Files changed (43) hide show
  1. package/esm/funcs/workspacesDeleteBudget.js +3 -3
  2. package/esm/funcs/workspacesGetBudget.js +3 -3
  3. package/esm/funcs/workspacesListBudgets.js +2 -2
  4. package/esm/funcs/workspacesSetBudget.js +3 -3
  5. package/esm/lib/config.d.ts +2 -2
  6. package/esm/lib/config.js +2 -2
  7. package/esm/models/additionaltoolsitem.d.ts +5 -0
  8. package/esm/models/additionaltoolsitem.js +1 -0
  9. package/esm/models/customtool.d.ts +5 -0
  10. package/esm/models/customtool.js +2 -0
  11. package/esm/models/customtoolcallitem.d.ts +5 -0
  12. package/esm/models/customtoolcallitem.js +1 -0
  13. package/esm/models/functioncallitem.d.ts +5 -0
  14. package/esm/models/functioncallitem.js +1 -0
  15. package/esm/models/fusionplugin.d.ts +1 -1
  16. package/esm/models/namespacefunctiontool.d.ts +5 -0
  17. package/esm/models/namespacefunctiontool.js +2 -0
  18. package/esm/models/openairesponsecustomtoolcall.d.ts +4 -0
  19. package/esm/models/openairesponsecustomtoolcall.js +1 -0
  20. package/esm/models/openairesponsefunctiontoolcall.d.ts +4 -0
  21. package/esm/models/openairesponsefunctiontoolcall.js +1 -0
  22. package/esm/models/openresponsesresult.d.ts +4 -0
  23. package/esm/models/openresponsesresult.js +1 -0
  24. package/esm/models/operations/deleteworkspacebudget.d.ts +2 -2
  25. package/esm/models/operations/deleteworkspacebudget.js +2 -1
  26. package/esm/models/operations/getworkspacebudget.d.ts +2 -2
  27. package/esm/models/operations/getworkspacebudget.js +2 -1
  28. package/esm/models/operations/listworkspacebudgets.d.ts +2 -2
  29. package/esm/models/operations/listworkspacebudgets.js +2 -1
  30. package/esm/models/operations/upsertworkspacebudget.d.ts +2 -2
  31. package/esm/models/operations/upsertworkspacebudget.js +2 -1
  32. package/esm/models/outputcustomtoolcallitem.d.ts +5 -0
  33. package/esm/models/outputcustomtoolcallitem.js +2 -0
  34. package/esm/models/outputfunctioncallitem.d.ts +5 -0
  35. package/esm/models/outputfunctioncallitem.js +2 -0
  36. package/esm/models/responseserrorfield.d.ts +1 -0
  37. package/esm/models/responseserrorfield.js +1 -0
  38. package/esm/models/responsesrequest.d.ts +5 -0
  39. package/esm/models/responsesrequest.js +1 -0
  40. package/esm/sdk/workspaces.d.ts +23 -23
  41. package/esm/sdk/workspaces.js +27 -27
  42. package/jsr.json +1 -1
  43. package/package.json +8 -8
@@ -30,16 +30,16 @@ async function $do(client, request, options) {
30
30
  const payload = parsed.value;
31
31
  const body = null;
32
32
  const pathParams = {
33
- id: encodeSimple("id", payload.id, {
33
+ interval: encodeSimple("interval", payload.interval, {
34
34
  explode: false,
35
35
  charEncoding: "percent",
36
36
  }),
37
- interval: encodeSimple("interval", payload.interval, {
37
+ workspace_ref: encodeSimple("workspace_ref", payload.workspace_ref, {
38
38
  explode: false,
39
39
  charEncoding: "percent",
40
40
  }),
41
41
  };
42
- const path = pathToFunc("/workspaces/{id}/budgets/{interval}")(pathParams);
42
+ const path = pathToFunc("/workspaces/{workspace_ref}/budgets/{interval}")(pathParams);
43
43
  const headers = new Headers(compactMap({
44
44
  Accept: "application/json",
45
45
  "HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
@@ -30,16 +30,16 @@ async function $do(client, request, options) {
30
30
  const payload = parsed.value;
31
31
  const body = null;
32
32
  const pathParams = {
33
- id: encodeSimple("id", payload.id, {
33
+ interval: encodeSimple("interval", payload.interval, {
34
34
  explode: false,
35
35
  charEncoding: "percent",
36
36
  }),
37
- interval: encodeSimple("interval", payload.interval, {
37
+ workspace_ref: encodeSimple("workspace_ref", payload.workspace_ref, {
38
38
  explode: false,
39
39
  charEncoding: "percent",
40
40
  }),
41
41
  };
42
- const path = pathToFunc("/workspaces/{id}/budgets/{interval}")(pathParams);
42
+ const path = pathToFunc("/workspaces/{workspace_ref}/budgets/{interval}")(pathParams);
43
43
  const headers = new Headers(compactMap({
44
44
  Accept: "application/json",
45
45
  "HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
@@ -30,12 +30,12 @@ async function $do(client, request, options) {
30
30
  const payload = parsed.value;
31
31
  const body = null;
32
32
  const pathParams = {
33
- id: encodeSimple("id", payload.id, {
33
+ workspace_ref: encodeSimple("workspace_ref", payload.workspace_ref, {
34
34
  explode: false,
35
35
  charEncoding: "percent",
36
36
  }),
37
37
  };
38
- const path = pathToFunc("/workspaces/{id}/budgets")(pathParams);
38
+ const path = pathToFunc("/workspaces/{workspace_ref}/budgets")(pathParams);
39
39
  const headers = new Headers(compactMap({
40
40
  Accept: "application/json",
41
41
  "HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
@@ -32,16 +32,16 @@ async function $do(client, request, options) {
32
32
  explode: true,
33
33
  });
34
34
  const pathParams = {
35
- id: encodeSimple("id", payload.id, {
35
+ interval: encodeSimple("interval", payload.interval, {
36
36
  explode: false,
37
37
  charEncoding: "percent",
38
38
  }),
39
- interval: encodeSimple("interval", payload.interval, {
39
+ workspace_ref: encodeSimple("workspace_ref", payload.workspace_ref, {
40
40
  explode: false,
41
41
  charEncoding: "percent",
42
42
  }),
43
43
  };
44
- const path = pathToFunc("/workspaces/{id}/budgets/{interval}")(pathParams);
44
+ const path = pathToFunc("/workspaces/{workspace_ref}/budgets/{interval}")(pathParams);
45
45
  const headers = new Headers(compactMap({
46
46
  "Content-Type": "application/json",
47
47
  Accept: "application/json",
@@ -50,8 +50,8 @@ export declare function serverURLFromOptions(options: SDKOptions): URL | null;
50
50
  export declare const SDK_METADATA: {
51
51
  readonly language: "typescript";
52
52
  readonly openapiDocVersion: "1.0.0";
53
- readonly sdkVersion: "1.2.116";
53
+ readonly sdkVersion: "1.2.118";
54
54
  readonly genVersion: "2.914.0";
55
- readonly userAgent: "speakeasy-sdk/typescript 1.2.116 2.914.0 1.0.0 @openrouter/sdk";
55
+ readonly userAgent: "speakeasy-sdk/typescript 1.2.118 2.914.0 1.0.0 @openrouter/sdk";
56
56
  };
57
57
  //# sourceMappingURL=config.d.ts.map
package/esm/lib/config.js CHANGED
@@ -29,8 +29,8 @@ export function serverURLFromOptions(options) {
29
29
  export const SDK_METADATA = {
30
30
  language: "typescript",
31
31
  openapiDocVersion: "1.0.0",
32
- sdkVersion: "1.2.116",
32
+ sdkVersion: "1.2.118",
33
33
  genVersion: "2.914.0",
34
- userAgent: "speakeasy-sdk/typescript 1.2.116 2.914.0 1.0.0 @openrouter/sdk",
34
+ userAgent: "speakeasy-sdk/typescript 1.2.118 2.914.0 1.0.0 @openrouter/sdk",
35
35
  };
36
36
  //# sourceMappingURL=config.js.map
@@ -59,6 +59,10 @@ export type AdditionalToolsItemToolFunction = {
59
59
  } | null;
60
60
  strict?: boolean | null | undefined;
61
61
  type: AdditionalToolsItemTypeFunction;
62
+ /**
63
+ * Lets the model keep working after calling this tool instead of waiting for its output. The tool is still executed by the client; return the result in a later request as a `function_call_output` with the original `call_id`. Only honored by providers whose Responses API supports async tools; ignored elsewhere.
64
+ */
65
+ async?: boolean | undefined;
62
66
  /**
63
67
  * Withhold this tool from the model until `openrouter:tool_search` finds it. Requires the tool search server tool; at least one tool must remain non-deferred.
64
68
  */
@@ -99,6 +103,7 @@ export type AdditionalToolsItemToolFunction$Outbound = {
99
103
  } | null;
100
104
  strict?: boolean | null | undefined;
101
105
  type: string;
106
+ async?: boolean | undefined;
102
107
  defer_loading?: boolean | undefined;
103
108
  };
104
109
  /** @internal */
@@ -74,6 +74,7 @@ export const AdditionalToolsItemToolFunction$outboundSchema = z.object({
74
74
  parameters: z.nullable(z.record(z.string(), z.any())),
75
75
  strict: z.nullable(z.boolean()).optional(),
76
76
  type: AdditionalToolsItemTypeFunction$outboundSchema,
77
+ async: z.boolean().optional(),
77
78
  deferLoading: z.boolean().optional(),
78
79
  }).transform((v) => {
79
80
  return remap$(v, {
@@ -25,6 +25,10 @@ export type CustomToolTypeCustom = ClosedEnum<typeof CustomToolTypeCustom>;
25
25
  * Custom tool configuration
26
26
  */
27
27
  export type CustomTool = {
28
+ /**
29
+ * Lets the model keep working after calling this tool instead of waiting for its output. The tool is still executed by the client; return the result in a later request as a `function_call_output` with the original `call_id`. Only honored by providers whose Responses API supports async tools; ignored elsewhere.
30
+ */
31
+ async?: boolean | undefined;
28
32
  description?: string | undefined;
29
33
  format?: FormatText | FormatGrammar | discriminatedUnionTypes.Unknown<"type"> | undefined;
30
34
  name: string;
@@ -72,6 +76,7 @@ export declare const CustomToolTypeCustom$outboundSchema: z.ZodEnum<typeof Custo
72
76
  export declare const CustomTool$inboundSchema: z.ZodType<CustomTool, unknown>;
73
77
  /** @internal */
74
78
  export type CustomTool$Outbound = {
79
+ async?: boolean | undefined;
75
80
  description?: string | undefined;
76
81
  format?: FormatText$Outbound | FormatGrammar$Outbound | undefined;
77
82
  name: string;
@@ -77,6 +77,7 @@ export const CustomToolTypeCustom$outboundSchema = CustomToolTypeCustom$inboundS
77
77
  /** @internal */
78
78
  export const CustomTool$inboundSchema = z
79
79
  .object({
80
+ async: z.boolean().optional(),
80
81
  description: z.string().optional(),
81
82
  format: discriminatedUnion("type", {
82
83
  text: z.lazy(() => FormatText$inboundSchema),
@@ -87,6 +88,7 @@ export const CustomTool$inboundSchema = z
87
88
  });
88
89
  /** @internal */
89
90
  export const CustomTool$outboundSchema = z.object({
91
+ async: z.boolean().optional(),
90
92
  description: z.string().optional(),
91
93
  format: z.union([
92
94
  z.lazy(() => FormatText$outboundSchema),
@@ -9,6 +9,10 @@ export type CustomToolCallItemType = ClosedEnum<typeof CustomToolCallItemType>;
9
9
  * A call to a custom (freeform-grammar) tool created by the model — distinct from `function_call`. Used for tools like Codex CLI's `apply_patch` whose payload is opaque text rather than JSON arguments.
10
10
  */
11
11
  export type CustomToolCallItem = {
12
+ /**
13
+ * True when the model called a tool declared with `async: true` and may continue its turn before the output is returned. Return the result in a later request as a `function_call_output` with this `call_id`.
14
+ */
15
+ async?: boolean | undefined;
12
16
  callId: string;
13
17
  id?: string | undefined;
14
18
  input: string;
@@ -24,6 +28,7 @@ export type CustomToolCallItem = {
24
28
  export declare const CustomToolCallItemType$outboundSchema: z.ZodEnum<typeof CustomToolCallItemType>;
25
29
  /** @internal */
26
30
  export type CustomToolCallItem$Outbound = {
31
+ async?: boolean | undefined;
27
32
  call_id: string;
28
33
  id?: string | undefined;
29
34
  input: string;
@@ -12,6 +12,7 @@ export const CustomToolCallItemType = {
12
12
  export const CustomToolCallItemType$outboundSchema = z.enum(CustomToolCallItemType);
13
13
  /** @internal */
14
14
  export const CustomToolCallItem$outboundSchema = z.object({
15
+ async: z.boolean().optional(),
15
16
  callId: z.string(),
16
17
  id: z.string().optional(),
17
18
  input: z.string(),
@@ -16,6 +16,10 @@ export type FunctionCallItemType = ClosedEnum<typeof FunctionCallItemType>;
16
16
  */
17
17
  export type FunctionCallItem = {
18
18
  arguments: string;
19
+ /**
20
+ * True when the model called a tool declared with `async: true` and may continue its turn before the output is returned. Return the result in a later request as a `function_call_output` with this `call_id`.
21
+ */
22
+ async?: boolean | undefined;
19
23
  callId: string;
20
24
  id: string;
21
25
  name: string;
@@ -47,6 +51,7 @@ export declare const FunctionCallItemType$outboundSchema: z.ZodEnum<typeof Funct
47
51
  /** @internal */
48
52
  export type FunctionCallItem$Outbound = {
49
53
  arguments: string;
54
+ async?: boolean | undefined;
50
55
  call_id: string;
51
56
  id: string;
52
57
  name: string;
@@ -28,6 +28,7 @@ export const FunctionCallItemType$outboundSchema = z.enum(FunctionCallItemType);
28
28
  /** @internal */
29
29
  export const FunctionCallItem$outboundSchema = z.object({
30
30
  arguments: z.string(),
31
+ async: z.boolean().optional(),
31
32
  callId: z.string(),
32
33
  id: z.string(),
33
34
  name: z.string(),
@@ -33,7 +33,7 @@ export type FusionPluginTool = {
33
33
  };
34
34
  export type FusionPlugin = {
35
35
  /**
36
- * For a Fusion run started by the `openrouter/fusion` model slug or `openrouter:fusion` server tool, slugs of models to run in parallel as the "expert panel" the analyst analyzes. Each model receives the same user prompt with web_search + web_fetch enabled. Capped at 8 models to bound cost amplification. When omitted, defaults to the Quality preset from the /labs/fusion UI (~anthropic/claude-opus-latest, ~openai/gpt-latest, ~google/gemini-pro-latest).
36
+ * For a Fusion run started by the `openrouter/fusion` model slug or `openrouter:fusion` server tool, slugs of models to run in parallel as the "expert panel" the analyst analyzes. Each model receives the same user prompt with web_search + web_fetch enabled. Capped at 8 models to bound cost amplification. When omitted, defaults to the Quality preset from the /labs/fusion UI (~anthropic/claude-opus-latest, ~openai/gpt-sol-latest, ~google/gemini-pro-latest).
37
37
  */
38
38
  analysisModels?: Array<string> | undefined;
39
39
  /**
@@ -12,6 +12,10 @@ export type AllowedCaller = OpenEnum<typeof AllowedCaller>;
12
12
  */
13
13
  export type NamespaceFunctionTool = {
14
14
  allowedCallers?: Array<AllowedCaller> | null | undefined;
15
+ /**
16
+ * Lets the model keep working after calling this tool instead of waiting for its output. The tool is still executed by the client; return the result in a later request as a `function_call_output` with the original `call_id`. Only honored by providers whose Responses API supports async tools; ignored elsewhere.
17
+ */
18
+ async?: boolean | undefined;
15
19
  deferLoading?: boolean | undefined;
16
20
  description?: string | null | undefined;
17
21
  name: string;
@@ -33,6 +37,7 @@ export declare const NamespaceFunctionTool$inboundSchema: z.ZodType<NamespaceFun
33
37
  /** @internal */
34
38
  export type NamespaceFunctionTool$Outbound = {
35
39
  allowed_callers?: Array<string> | null | undefined;
40
+ async?: boolean | undefined;
36
41
  defer_loading?: boolean | undefined;
37
42
  description?: string | null | undefined;
38
43
  name: string;
@@ -17,6 +17,7 @@ export const AllowedCaller$outboundSchema = openEnums.outboundSchema(AllowedCall
17
17
  /** @internal */
18
18
  export const NamespaceFunctionTool$inboundSchema = z.object({
19
19
  allowed_callers: z.nullable(z.array(AllowedCaller$inboundSchema)).optional(),
20
+ async: z.boolean().optional(),
20
21
  defer_loading: z.boolean().optional(),
21
22
  description: z.nullable(z.string()).optional(),
22
23
  name: z.string(),
@@ -34,6 +35,7 @@ export const NamespaceFunctionTool$inboundSchema = z.object({
34
35
  /** @internal */
35
36
  export const NamespaceFunctionTool$outboundSchema = z.object({
36
37
  allowedCallers: z.nullable(z.array(AllowedCaller$outboundSchema)).optional(),
38
+ async: z.boolean().optional(),
37
39
  deferLoading: z.boolean().optional(),
38
40
  description: z.nullable(z.string()).optional(),
39
41
  name: z.string(),
@@ -7,6 +7,10 @@ export declare const OpenAIResponseCustomToolCallType: {
7
7
  };
8
8
  export type OpenAIResponseCustomToolCallType = ClosedEnum<typeof OpenAIResponseCustomToolCallType>;
9
9
  export type OpenAIResponseCustomToolCall = {
10
+ /**
11
+ * True when the model called a tool declared with `async: true` and may continue its turn before the output is returned. Return the result in a later request as a `function_call_output` with this `call_id`.
12
+ */
13
+ async?: boolean | undefined;
10
14
  callId: string;
11
15
  id?: string | undefined;
12
16
  input: string;
@@ -12,6 +12,7 @@ export const OpenAIResponseCustomToolCallType = {
12
12
  export const OpenAIResponseCustomToolCallType$inboundSchema = z.enum(OpenAIResponseCustomToolCallType);
13
13
  /** @internal */
14
14
  export const OpenAIResponseCustomToolCall$inboundSchema = z.object({
15
+ async: z.boolean().optional(),
15
16
  call_id: z.string(),
16
17
  id: z.string().optional(),
17
18
  input: z.string(),
@@ -15,6 +15,10 @@ export declare const OpenAIResponseFunctionToolCallType: {
15
15
  export type OpenAIResponseFunctionToolCallType = ClosedEnum<typeof OpenAIResponseFunctionToolCallType>;
16
16
  export type OpenAIResponseFunctionToolCall = {
17
17
  arguments: string;
18
+ /**
19
+ * True when the model called a tool declared with `async: true` and may continue its turn before the output is returned. Return the result in a later request as a `function_call_output` with this `call_id`.
20
+ */
21
+ async?: boolean | undefined;
18
22
  callId: string;
19
23
  id?: string | undefined;
20
24
  name: string;
@@ -21,6 +21,7 @@ export const OpenAIResponseFunctionToolCallType$inboundSchema = z.enum(OpenAIRes
21
21
  /** @internal */
22
22
  export const OpenAIResponseFunctionToolCall$inboundSchema = z.object({
23
23
  arguments: z.string(),
24
+ async: z.boolean().optional(),
24
25
  call_id: z.string(),
25
26
  id: z.string().optional(),
26
27
  name: z.string(),
@@ -46,6 +46,10 @@ export type OpenResponsesResultToolFunction = {
46
46
  } | null;
47
47
  strict?: boolean | null | undefined;
48
48
  type: "function";
49
+ /**
50
+ * Lets the model keep working after calling this tool instead of waiting for its output. The tool is still executed by the client; return the result in a later request as a `function_call_output` with the original `call_id`. Only honored by providers whose Responses API supports async tools; ignored elsewhere.
51
+ */
52
+ async?: boolean | undefined;
49
53
  /**
50
54
  * Withhold this tool from the model until `openrouter:tool_search` finds it. Requires the tool search server tool; at least one tool must remain non-deferred.
51
55
  */
@@ -46,6 +46,7 @@ export const OpenResponsesResultToolFunction$inboundSchema = z.object({
46
46
  parameters: z.nullable(z.record(z.string(), z.any())),
47
47
  strict: z.nullable(z.boolean()).optional(),
48
48
  type: z.literal("function"),
49
+ async: z.boolean().optional(),
49
50
  defer_loading: z.boolean().optional(),
50
51
  }).transform((v) => {
51
52
  return remap$(v, {
@@ -44,7 +44,7 @@ export type DeleteWorkspaceBudgetRequest = {
44
44
  /**
45
45
  * The workspace ID (UUID) or slug
46
46
  */
47
- id: string;
47
+ workspaceRef: string;
48
48
  /**
49
49
  * Budget reset interval. Use "lifetime" for a one-time budget that never resets.
50
50
  */
@@ -55,7 +55,7 @@ export type DeleteWorkspaceBudgetRequest$Outbound = {
55
55
  "HTTP-Referer"?: string | undefined;
56
56
  appTitle?: string | undefined;
57
57
  appCategories?: string | undefined;
58
- id: string;
58
+ workspace_ref: string;
59
59
  interval: string;
60
60
  };
61
61
  /** @internal */
@@ -10,11 +10,12 @@ export const DeleteWorkspaceBudgetRequest$outboundSchema = z.object({
10
10
  httpReferer: z.string().optional(),
11
11
  appTitle: z.string().optional(),
12
12
  appCategories: z.string().optional(),
13
- id: z.string(),
13
+ workspaceRef: z.string(),
14
14
  interval: models.WorkspaceBudgetInterval$outboundSchema,
15
15
  }).transform((v) => {
16
16
  return remap$(v, {
17
17
  httpReferer: "HTTP-Referer",
18
+ workspaceRef: "workspace_ref",
18
19
  });
19
20
  });
20
21
  export function deleteWorkspaceBudgetRequestToJSON(deleteWorkspaceBudgetRequest) {
@@ -44,7 +44,7 @@ export type GetWorkspaceBudgetRequest = {
44
44
  /**
45
45
  * The workspace ID (UUID) or slug
46
46
  */
47
- id: string;
47
+ workspaceRef: string;
48
48
  /**
49
49
  * Budget reset interval. Use "lifetime" for a one-time budget that never resets.
50
50
  */
@@ -55,7 +55,7 @@ export type GetWorkspaceBudgetRequest$Outbound = {
55
55
  "HTTP-Referer"?: string | undefined;
56
56
  appTitle?: string | undefined;
57
57
  appCategories?: string | undefined;
58
- id: string;
58
+ workspace_ref: string;
59
59
  interval: string;
60
60
  };
61
61
  /** @internal */
@@ -10,11 +10,12 @@ export const GetWorkspaceBudgetRequest$outboundSchema = z.object({
10
10
  httpReferer: z.string().optional(),
11
11
  appTitle: z.string().optional(),
12
12
  appCategories: z.string().optional(),
13
- id: z.string(),
13
+ workspaceRef: z.string(),
14
14
  interval: models.WorkspaceBudgetInterval$outboundSchema,
15
15
  }).transform((v) => {
16
16
  return remap$(v, {
17
17
  httpReferer: "HTTP-Referer",
18
+ workspaceRef: "workspace_ref",
18
19
  });
19
20
  });
20
21
  export function getWorkspaceBudgetRequestToJSON(getWorkspaceBudgetRequest) {
@@ -43,14 +43,14 @@ export type ListWorkspaceBudgetsRequest = {
43
43
  /**
44
44
  * The workspace ID (UUID) or slug
45
45
  */
46
- id: string;
46
+ workspaceRef: string;
47
47
  };
48
48
  /** @internal */
49
49
  export type ListWorkspaceBudgetsRequest$Outbound = {
50
50
  "HTTP-Referer"?: string | undefined;
51
51
  appTitle?: string | undefined;
52
52
  appCategories?: string | undefined;
53
- id: string;
53
+ workspace_ref: string;
54
54
  };
55
55
  /** @internal */
56
56
  export declare const ListWorkspaceBudgetsRequest$outboundSchema: z.ZodType<ListWorkspaceBudgetsRequest$Outbound, ListWorkspaceBudgetsRequest>;
@@ -9,10 +9,11 @@ export const ListWorkspaceBudgetsRequest$outboundSchema = z.object({
9
9
  httpReferer: z.string().optional(),
10
10
  appTitle: z.string().optional(),
11
11
  appCategories: z.string().optional(),
12
- id: z.string(),
12
+ workspaceRef: z.string(),
13
13
  }).transform((v) => {
14
14
  return remap$(v, {
15
15
  httpReferer: "HTTP-Referer",
16
+ workspaceRef: "workspace_ref",
16
17
  });
17
18
  });
18
19
  export function listWorkspaceBudgetsRequestToJSON(listWorkspaceBudgetsRequest) {
@@ -44,7 +44,7 @@ export type UpsertWorkspaceBudgetRequest = {
44
44
  /**
45
45
  * The workspace ID (UUID) or slug
46
46
  */
47
- id: string;
47
+ workspaceRef: string;
48
48
  /**
49
49
  * Budget reset interval. Use "lifetime" for a one-time budget that never resets.
50
50
  */
@@ -56,7 +56,7 @@ export type UpsertWorkspaceBudgetRequest$Outbound = {
56
56
  "HTTP-Referer"?: string | undefined;
57
57
  appTitle?: string | undefined;
58
58
  appCategories?: string | undefined;
59
- id: string;
59
+ workspace_ref: string;
60
60
  interval: string;
61
61
  UpsertWorkspaceBudgetRequest: models.UpsertWorkspaceBudgetRequest$Outbound;
62
62
  };
@@ -10,12 +10,13 @@ export const UpsertWorkspaceBudgetRequest$outboundSchema = z.object({
10
10
  httpReferer: z.string().optional(),
11
11
  appTitle: z.string().optional(),
12
12
  appCategories: z.string().optional(),
13
- id: z.string(),
13
+ workspaceRef: z.string(),
14
14
  interval: models.WorkspaceBudgetInterval$outboundSchema,
15
15
  upsertWorkspaceBudgetRequest: models.UpsertWorkspaceBudgetRequest$outboundSchema,
16
16
  }).transform((v) => {
17
17
  return remap$(v, {
18
18
  httpReferer: "HTTP-Referer",
19
+ workspaceRef: "workspace_ref",
19
20
  upsertWorkspaceBudgetRequest: "UpsertWorkspaceBudgetRequest",
20
21
  });
21
22
  });
@@ -16,6 +16,10 @@ export type OutputCustomToolCallItemType = ClosedEnum<typeof OutputCustomToolCal
16
16
  * A call to a custom (freeform-grammar) tool created by the model — distinct from `function_call`. Used for tools like Codex CLI's `apply_patch` whose payload is opaque text rather than JSON arguments.
17
17
  */
18
18
  export type OutputCustomToolCallItem = {
19
+ /**
20
+ * True when the model called a tool declared with `async: true` and may continue its turn before the output is returned. Return the result in a later request as a `function_call_output` with this `call_id`.
21
+ */
22
+ async?: boolean | undefined;
19
23
  callId: string;
20
24
  id?: string | undefined;
21
25
  input: string;
@@ -39,6 +43,7 @@ export declare const OutputCustomToolCallItemType$outboundSchema: z.ZodEnum<type
39
43
  export declare const OutputCustomToolCallItem$inboundSchema: z.ZodType<OutputCustomToolCallItem, unknown>;
40
44
  /** @internal */
41
45
  export type OutputCustomToolCallItem$Outbound = {
46
+ async?: boolean | undefined;
42
47
  call_id: string;
43
48
  id?: string | undefined;
44
49
  input: string;
@@ -24,6 +24,7 @@ export const OutputCustomToolCallItemType$inboundSchema = z.enum(OutputCustomToo
24
24
  export const OutputCustomToolCallItemType$outboundSchema = OutputCustomToolCallItemType$inboundSchema;
25
25
  /** @internal */
26
26
  export const OutputCustomToolCallItem$inboundSchema = z.object({
27
+ async: z.boolean().optional(),
27
28
  call_id: z.string(),
28
29
  id: z.string().optional(),
29
30
  input: z.string(),
@@ -38,6 +39,7 @@ export const OutputCustomToolCallItem$inboundSchema = z.object({
38
39
  });
39
40
  /** @internal */
40
41
  export const OutputCustomToolCallItem$outboundSchema = z.object({
42
+ async: z.boolean().optional(),
41
43
  callId: z.string(),
42
44
  id: z.string().optional(),
43
45
  input: z.string(),
@@ -27,6 +27,10 @@ export type OutputFunctionCallItemSubagentItem = {
27
27
  };
28
28
  export type OutputFunctionCallItem = {
29
29
  arguments: string;
30
+ /**
31
+ * True when the model called a tool declared with `async: true` and may continue its turn before the output is returned. Return the result in a later request as a `function_call_output` with this `call_id`.
32
+ */
33
+ async?: boolean | undefined;
30
34
  callId: string;
31
35
  id?: string | undefined;
32
36
  name: string;
@@ -85,6 +89,7 @@ export declare const OutputFunctionCallItem$inboundSchema: z.ZodType<OutputFunct
85
89
  /** @internal */
86
90
  export type OutputFunctionCallItem$Outbound = {
87
91
  arguments: string;
92
+ async?: boolean | undefined;
88
93
  call_id: string;
89
94
  id?: string | undefined;
90
95
  name: string;
@@ -76,6 +76,7 @@ export function outputFunctionCallItemSubagentItemFromJSON(jsonString) {
76
76
  /** @internal */
77
77
  export const OutputFunctionCallItem$inboundSchema = z.object({
78
78
  arguments: z.string(),
79
+ async: z.boolean().optional(),
79
80
  call_id: z.string(),
80
81
  id: z.string().optional(),
81
82
  name: z.string(),
@@ -98,6 +99,7 @@ export const OutputFunctionCallItem$inboundSchema = z.object({
98
99
  /** @internal */
99
100
  export const OutputFunctionCallItem$outboundSchema = z.object({
100
101
  arguments: z.string(),
102
+ async: z.boolean().optional(),
101
103
  callId: z.string(),
102
104
  id: z.string().optional(),
103
105
  name: z.string(),
@@ -22,6 +22,7 @@ export declare const Code: {
22
22
  readonly FailedToDownloadImage: "failed_to_download_image";
23
23
  readonly ImageFileNotFound: "image_file_not_found";
24
24
  readonly BioPolicy: "bio_policy";
25
+ readonly CyberPolicy: "cyber_policy";
25
26
  readonly MisalignmentPolicyViolation: "misalignment_policy_violation";
26
27
  readonly DataResidencyMismatch: "data_residency_mismatch";
27
28
  };
@@ -25,6 +25,7 @@ export const Code = {
25
25
  FailedToDownloadImage: "failed_to_download_image",
26
26
  ImageFileNotFound: "image_file_not_found",
27
27
  BioPolicy: "bio_policy",
28
+ CyberPolicy: "cyber_policy",
28
29
  MisalignmentPolicyViolation: "misalignment_policy_violation",
29
30
  DataResidencyMismatch: "data_residency_mismatch",
30
31
  };
@@ -96,6 +96,10 @@ export type ResponsesRequestToolFunction = {
96
96
  } | null;
97
97
  strict?: boolean | null | undefined;
98
98
  type: "function";
99
+ /**
100
+ * Lets the model keep working after calling this tool instead of waiting for its output. The tool is still executed by the client; return the result in a later request as a `function_call_output` with the original `call_id`. Only honored by providers whose Responses API supports async tools; ignored elsewhere.
101
+ */
102
+ async?: boolean | undefined;
99
103
  /**
100
104
  * Withhold this tool from the model until `openrouter:tool_search` finds it. Requires the tool search server tool; at least one tool must remain non-deferred.
101
105
  */
@@ -343,6 +347,7 @@ export type ResponsesRequestToolFunction$Outbound = {
343
347
  } | null;
344
348
  strict?: boolean | null | undefined;
345
349
  type: "function";
350
+ async?: boolean | undefined;
346
351
  defer_loading?: boolean | undefined;
347
352
  };
348
353
  /** @internal */
@@ -112,6 +112,7 @@ export const ResponsesRequestToolFunction$outboundSchema = z.object({
112
112
  parameters: z.nullable(z.record(z.string(), z.any())),
113
113
  strict: z.nullable(z.boolean()).optional(),
114
114
  type: z.literal("function"),
115
+ async: z.boolean().optional(),
115
116
  deferLoading: z.boolean().optional(),
116
117
  }).transform((v) => {
117
118
  return remap$(v, {
@@ -41,55 +41,55 @@ export declare class Workspaces extends ClientSDK {
41
41
  */
42
42
  update(request: operations.UpdateWorkspaceRequest, options?: RequestOptions): Promise<models.UpdateWorkspaceResponse>;
43
43
  /**
44
- * List workspace budgets
44
+ * List workspace members
45
45
  *
46
46
  * @remarks
47
- * List all budgets configured for a workspace. [Management key](/docs/guides/overview/auth/management-api-keys) required.
47
+ * List all members of a workspace. Returns paginated results. For the default workspace, returns all organization members (implicit membership). [Management key](/docs/guides/overview/auth/management-api-keys) required.
48
48
  */
49
- listBudgets(request: operations.ListWorkspaceBudgetsRequest, options?: RequestOptions): Promise<models.ListWorkspaceBudgetsResponse>;
49
+ listMembers(request: operations.ListWorkspaceMembersRequest, options?: RequestOptions): Promise<PageIterator<operations.ListWorkspaceMembersResponse, {
50
+ offset: number;
51
+ }>>;
50
52
  /**
51
- * Delete a workspace budget
53
+ * Bulk add members to a workspace
52
54
  *
53
55
  * @remarks
54
- * Remove the budget for a given interval. [Management key](/docs/guides/overview/auth/management-api-keys) required.
56
+ * Add multiple organization members to a workspace. Members are assigned the same role they hold in the organization. [Management key](/docs/guides/overview/auth/management-api-keys) required.
55
57
  */
56
- deleteBudget(request: operations.DeleteWorkspaceBudgetRequest, options?: RequestOptions): Promise<models.DeleteWorkspaceBudgetResponse>;
58
+ bulkAddMembers(request: operations.BulkAddWorkspaceMembersRequest, options?: RequestOptions): Promise<models.BulkAddWorkspaceMembersResponse>;
57
59
  /**
58
- * Get a workspace budget
60
+ * Bulk remove members from a workspace
59
61
  *
60
62
  * @remarks
61
- * Retrieve the budget for a given interval. [Management key](/docs/guides/overview/auth/management-api-keys) required.
63
+ * Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. SCIM-managed members cannot be removed; changes must be made in your identity provider. [Management key](/docs/guides/overview/auth/management-api-keys) required.
62
64
  */
63
- getBudget(request: operations.GetWorkspaceBudgetRequest, options?: RequestOptions): Promise<models.GetWorkspaceBudgetResponse>;
65
+ bulkRemoveMembers(request: operations.BulkRemoveWorkspaceMembersRequest, options?: RequestOptions): Promise<models.BulkRemoveWorkspaceMembersResponse>;
64
66
  /**
65
- * Create or update a workspace budget
67
+ * List workspace budgets
66
68
  *
67
69
  * @remarks
68
- * Create or update the budget for a given interval. Budget limits must strictly decrease as the interval narrows (lifetime > monthly > weekly > daily). The optional `include_byok_in_budgets` flag is a workspace-wide setting: when provided it applies to every budget interval for the workspace, not just the interval in this request. Note that a change made here is applied to budget enforcement immediately, but an already-open workspace settings page in the web dashboard may keep showing the previous value until it is reloaded. [Management key](/docs/guides/overview/auth/management-api-keys) required.
70
+ * List all budgets configured for a workspace. [Management key](/docs/guides/overview/auth/management-api-keys) required.
69
71
  */
70
- setBudget(request: operations.UpsertWorkspaceBudgetRequest, options?: RequestOptions): Promise<models.UpsertWorkspaceBudgetResponse>;
72
+ listBudgets(request: operations.ListWorkspaceBudgetsRequest, options?: RequestOptions): Promise<models.ListWorkspaceBudgetsResponse>;
71
73
  /**
72
- * List workspace members
74
+ * Delete a workspace budget
73
75
  *
74
76
  * @remarks
75
- * List all members of a workspace. Returns paginated results. For the default workspace, returns all organization members (implicit membership). [Management key](/docs/guides/overview/auth/management-api-keys) required.
77
+ * Remove the budget for a given interval. [Management key](/docs/guides/overview/auth/management-api-keys) required.
76
78
  */
77
- listMembers(request: operations.ListWorkspaceMembersRequest, options?: RequestOptions): Promise<PageIterator<operations.ListWorkspaceMembersResponse, {
78
- offset: number;
79
- }>>;
79
+ deleteBudget(request: operations.DeleteWorkspaceBudgetRequest, options?: RequestOptions): Promise<models.DeleteWorkspaceBudgetResponse>;
80
80
  /**
81
- * Bulk add members to a workspace
81
+ * Get a workspace budget
82
82
  *
83
83
  * @remarks
84
- * Add multiple organization members to a workspace. Members are assigned the same role they hold in the organization. [Management key](/docs/guides/overview/auth/management-api-keys) required.
84
+ * Retrieve the budget for a given interval. [Management key](/docs/guides/overview/auth/management-api-keys) required.
85
85
  */
86
- bulkAddMembers(request: operations.BulkAddWorkspaceMembersRequest, options?: RequestOptions): Promise<models.BulkAddWorkspaceMembersResponse>;
86
+ getBudget(request: operations.GetWorkspaceBudgetRequest, options?: RequestOptions): Promise<models.GetWorkspaceBudgetResponse>;
87
87
  /**
88
- * Bulk remove members from a workspace
88
+ * Create or update a workspace budget
89
89
  *
90
90
  * @remarks
91
- * Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. SCIM-managed members cannot be removed; changes must be made in your identity provider. [Management key](/docs/guides/overview/auth/management-api-keys) required.
91
+ * Create or update the budget for a given interval. Budget limits must strictly decrease as the interval narrows (lifetime > monthly > weekly > daily). The optional `include_byok_in_budgets` flag is a workspace-wide setting: when provided it applies to every budget interval for the workspace, not just the interval in this request. Note that a change made here is applied to budget enforcement immediately, but an already-open workspace settings page in the web dashboard may keep showing the previous value until it is reloaded. [Management key](/docs/guides/overview/auth/management-api-keys) required.
92
92
  */
93
- bulkRemoveMembers(request: operations.BulkRemoveWorkspaceMembersRequest, options?: RequestOptions): Promise<models.BulkRemoveWorkspaceMembersResponse>;
93
+ setBudget(request: operations.UpsertWorkspaceBudgetRequest, options?: RequestOptions): Promise<models.UpsertWorkspaceBudgetResponse>;
94
94
  }
95
95
  //# sourceMappingURL=workspaces.d.ts.map
@@ -63,6 +63,33 @@ export class Workspaces extends ClientSDK {
63
63
  async update(request, options) {
64
64
  return unwrapAsync(workspacesUpdate(this, request, options));
65
65
  }
66
+ /**
67
+ * List workspace members
68
+ *
69
+ * @remarks
70
+ * List all members of a workspace. Returns paginated results. For the default workspace, returns all organization members (implicit membership). [Management key](/docs/guides/overview/auth/management-api-keys) required.
71
+ */
72
+ async listMembers(request, options) {
73
+ return unwrapResultIterator(workspacesListMembers(this, request, options));
74
+ }
75
+ /**
76
+ * Bulk add members to a workspace
77
+ *
78
+ * @remarks
79
+ * Add multiple organization members to a workspace. Members are assigned the same role they hold in the organization. [Management key](/docs/guides/overview/auth/management-api-keys) required.
80
+ */
81
+ async bulkAddMembers(request, options) {
82
+ return unwrapAsync(workspacesBulkAddMembers(this, request, options));
83
+ }
84
+ /**
85
+ * Bulk remove members from a workspace
86
+ *
87
+ * @remarks
88
+ * Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. SCIM-managed members cannot be removed; changes must be made in your identity provider. [Management key](/docs/guides/overview/auth/management-api-keys) required.
89
+ */
90
+ async bulkRemoveMembers(request, options) {
91
+ return unwrapAsync(workspacesBulkRemoveMembers(this, request, options));
92
+ }
66
93
  /**
67
94
  * List workspace budgets
68
95
  *
@@ -99,32 +126,5 @@ export class Workspaces extends ClientSDK {
99
126
  async setBudget(request, options) {
100
127
  return unwrapAsync(workspacesSetBudget(this, request, options));
101
128
  }
102
- /**
103
- * List workspace members
104
- *
105
- * @remarks
106
- * List all members of a workspace. Returns paginated results. For the default workspace, returns all organization members (implicit membership). [Management key](/docs/guides/overview/auth/management-api-keys) required.
107
- */
108
- async listMembers(request, options) {
109
- return unwrapResultIterator(workspacesListMembers(this, request, options));
110
- }
111
- /**
112
- * Bulk add members to a workspace
113
- *
114
- * @remarks
115
- * Add multiple organization members to a workspace. Members are assigned the same role they hold in the organization. [Management key](/docs/guides/overview/auth/management-api-keys) required.
116
- */
117
- async bulkAddMembers(request, options) {
118
- return unwrapAsync(workspacesBulkAddMembers(this, request, options));
119
- }
120
- /**
121
- * Bulk remove members from a workspace
122
- *
123
- * @remarks
124
- * Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. SCIM-managed members cannot be removed; changes must be made in your identity provider. [Management key](/docs/guides/overview/auth/management-api-keys) required.
125
- */
126
- async bulkRemoveMembers(request, options) {
127
- return unwrapAsync(workspacesBulkRemoveMembers(this, request, options));
128
- }
129
129
  }
130
130
  //# sourceMappingURL=workspaces.js.map
package/jsr.json CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  {
4
4
  "name": "@openrouter/sdk",
5
- "version": "1.2.116",
5
+ "version": "1.2.118",
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": "1.2.116",
3
+ "version": "1.2.118",
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": [
@@ -21,8 +21,8 @@
21
21
  "license": "Apache-2.0",
22
22
  "packageManager": "pnpm@10.22.0",
23
23
  "publishConfig": {
24
- "provenance": true,
25
- "access": "public"
24
+ "access": "public",
25
+ "provenance": true
26
26
  },
27
27
  "type": "module",
28
28
  "main": "./esm/index.js",
@@ -73,15 +73,15 @@
73
73
  "lint": "eslint --cache --max-warnings=0 src",
74
74
  "build": "tsc",
75
75
  "prepublishOnly": "npm run build",
76
+ "test:watch": "vitest --watch --project unit",
77
+ "compile": "tsc",
78
+ "test": "vitest --run --project unit",
76
79
  "test:e2e": "vitest --run --project e2e",
77
- "typecheck": "tsc --noEmit",
78
- "prepare": "npm run build",
79
80
  "test:transit": "exit 0",
80
- "test:watch": "vitest --watch --project unit",
81
+ "typecheck": "tsc --noEmit",
81
82
  "typecheck:transit": "exit 0",
82
- "compile": "tsc",
83
83
  "postinstall": "node scripts/check-types.js || true",
84
- "test": "vitest --run --project unit"
84
+ "prepare": "npm run build"
85
85
  },
86
86
  "peerDependencies": {},
87
87
  "devDependencies": {