@openrouter/sdk 0.13.51 → 0.13.53

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.
@@ -13,7 +13,7 @@ import { Result } from "../types/fp.js";
13
13
  * Bulk remove members from a workspace
14
14
  *
15
15
  * @remarks
16
- * Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. [Management key](/docs/guides/overview/auth/management-api-keys) required.
16
+ * 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.
17
17
  */
18
18
  export declare function workspacesBulkRemoveMembers(client: OpenRouterCore, request: operations.BulkRemoveWorkspaceMembersRequest, options?: RequestOptions): APIPromise<Result<models.BulkRemoveWorkspaceMembersResponse, errors.BadRequestResponseError | errors.UnauthorizedResponseError | errors.ForbiddenResponseError | errors.NotFoundResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
19
19
  //# sourceMappingURL=workspacesBulkRemoveMembers.d.ts.map
@@ -17,7 +17,7 @@ import { APIPromise } from "../types/async.js";
17
17
  * Bulk remove members from a workspace
18
18
  *
19
19
  * @remarks
20
- * Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. [Management key](/docs/guides/overview/auth/management-api-keys) required.
20
+ * 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.
21
21
  */
22
22
  export function workspacesBulkRemoveMembers(client, request, options) {
23
23
  return new APIPromise($do(client, request, options));
@@ -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.51";
52
+ readonly sdkVersion: "0.13.53";
53
53
  readonly genVersion: "2.884.4";
54
- readonly userAgent: "speakeasy-sdk/typescript 0.13.51 2.884.4 1.0.0 @openrouter/sdk";
54
+ readonly userAgent: "speakeasy-sdk/typescript 0.13.53 2.884.4 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.51",
29
+ sdkVersion: "0.13.53",
30
30
  genVersion: "2.884.4",
31
- userAgent: "speakeasy-sdk/typescript 0.13.51 2.884.4 1.0.0 @openrouter/sdk",
31
+ userAgent: "speakeasy-sdk/typescript 0.13.53 2.884.4 1.0.0 @openrouter/sdk",
32
32
  };
33
33
  //# sourceMappingURL=config.js.map
@@ -6,7 +6,7 @@ export declare const AnthropicCacheControlDirectiveType: {
6
6
  };
7
7
  export type AnthropicCacheControlDirectiveType = ClosedEnum<typeof AnthropicCacheControlDirectiveType>;
8
8
  /**
9
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
9
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
10
10
  */
11
11
  export type AnthropicCacheControlDirective = {
12
12
  ttl?: AnthropicCacheControlTtl | undefined;
@@ -18,7 +18,7 @@ export type SourceContent = {
18
18
  export type AnthropicDocumentBlockParamSourceUnion = AnthropicBase64PdfSource | AnthropicPlainTextSource | SourceContent | AnthropicUrlPdfSource | AnthropicFileDocumentSource;
19
19
  export type AnthropicDocumentBlockParam = {
20
20
  /**
21
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
21
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
22
22
  */
23
23
  cacheControl?: AnthropicCacheControlDirective | undefined;
24
24
  citations?: AnthropicDocumentBlockParamCitations | null | undefined;
@@ -5,7 +5,7 @@ import { AnthropicUrlImageSource, AnthropicUrlImageSource$Outbound } from "./ant
5
5
  export type AnthropicImageBlockParamSource = AnthropicBase64ImageSource | AnthropicUrlImageSource;
6
6
  export type AnthropicImageBlockParam = {
7
7
  /**
8
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
8
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
9
9
  */
10
10
  cacheControl?: AnthropicCacheControlDirective | undefined;
11
11
  source: AnthropicBase64ImageSource | AnthropicUrlImageSource;
@@ -6,7 +6,7 @@ export type AnthropicSearchResultBlockParamCitations = {
6
6
  };
7
7
  export type AnthropicSearchResultBlockParam = {
8
8
  /**
9
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
9
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
10
10
  */
11
11
  cacheControl?: AnthropicCacheControlDirective | undefined;
12
12
  citations?: AnthropicSearchResultBlockParamCitations | undefined;
@@ -8,7 +8,7 @@ import { AnthropicCitationWebSearchResultLocationParam, AnthropicCitationWebSear
8
8
  export type Citation = AnthropicCitationCharLocationParam | AnthropicCitationContentBlockLocationParam | AnthropicCitationPageLocationParam | AnthropicCitationSearchResultLocationParam | AnthropicCitationWebSearchResultLocationParam;
9
9
  export type AnthropicTextBlockParam = {
10
10
  /**
11
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
11
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
12
12
  */
13
13
  cacheControl?: AnthropicCacheControlDirective | undefined;
14
14
  citations?: Array<AnthropicCitationCharLocationParam | AnthropicCitationContentBlockLocationParam | AnthropicCitationPageLocationParam | AnthropicCitationSearchResultLocationParam | AnthropicCitationWebSearchResultLocationParam> | null | undefined;
@@ -8,7 +8,7 @@ export declare const ChatContentCacheControlType: {
8
8
  };
9
9
  export type ChatContentCacheControlType = ClosedEnum<typeof ChatContentCacheControlType>;
10
10
  /**
11
- * Cache control for the content part
11
+ * Anthropic-style cache breakpoint for the content part. Interchangeable with the OpenAI-style `prompt_cache_breakpoint` marker: OpenRouter converts between the two based on the provider serving the request.
12
12
  */
13
13
  export type ChatContentCacheControl = {
14
14
  ttl?: AnthropicCacheControlTtl | undefined;
@@ -3,6 +3,7 @@ import { ClosedEnum } from "../types/enums.js";
3
3
  import { Result as SafeParseResult } from "../types/fp.js";
4
4
  import { ChatContentCacheControl, ChatContentCacheControl$Outbound } from "./chatcontentcachecontrol.js";
5
5
  import { SDKValidationError } from "./errors/sdkvalidationerror.js";
6
+ import { PromptCacheBreakpoint, PromptCacheBreakpoint$Outbound } from "./promptcachebreakpoint.js";
6
7
  export declare const ChatContentTextType: {
7
8
  readonly Text: "text";
8
9
  };
@@ -12,9 +13,13 @@ export type ChatContentTextType = ClosedEnum<typeof ChatContentTextType>;
12
13
  */
13
14
  export type ChatContentText = {
14
15
  /**
15
- * Cache control for the content part
16
+ * Anthropic-style cache breakpoint for the content part. Interchangeable with the OpenAI-style `prompt_cache_breakpoint` marker: OpenRouter converts between the two based on the provider serving the request.
16
17
  */
17
18
  cacheControl?: ChatContentCacheControl | undefined;
19
+ /**
20
+ * Marks an explicit prompt-cache boundary on this content block (OpenAI-style). Everything through the block carrying this marker is part of the candidate cached prefix. Supported natively by OpenAI GPT-5.6 and newer; on providers that use Anthropic-style `cache_control`, OpenRouter converts the marker to that format automatically.
21
+ */
22
+ promptCacheBreakpoint?: PromptCacheBreakpoint | null | undefined;
18
23
  text: string;
19
24
  type: ChatContentTextType;
20
25
  };
@@ -27,6 +32,7 @@ export declare const ChatContentText$inboundSchema: z.ZodType<ChatContentText, u
27
32
  /** @internal */
28
33
  export type ChatContentText$Outbound = {
29
34
  cache_control?: ChatContentCacheControl$Outbound | undefined;
35
+ prompt_cache_breakpoint?: PromptCacheBreakpoint$Outbound | null | undefined;
30
36
  text: string;
31
37
  type: string;
32
38
  };
@@ -6,6 +6,7 @@ import * as z from "zod/v4";
6
6
  import { remap as remap$ } from "../lib/primitives.js";
7
7
  import { safeParse } from "../lib/schemas.js";
8
8
  import { ChatContentCacheControl$inboundSchema, ChatContentCacheControl$outboundSchema, } from "./chatcontentcachecontrol.js";
9
+ import { PromptCacheBreakpoint$inboundSchema, PromptCacheBreakpoint$outboundSchema, } from "./promptcachebreakpoint.js";
9
10
  export const ChatContentTextType = {
10
11
  Text: "text",
11
12
  };
@@ -16,21 +17,27 @@ export const ChatContentTextType$outboundSchema = ChatContentTextType$inboundSch
16
17
  /** @internal */
17
18
  export const ChatContentText$inboundSchema = z.object({
18
19
  cache_control: ChatContentCacheControl$inboundSchema.optional(),
20
+ prompt_cache_breakpoint: z.nullable(PromptCacheBreakpoint$inboundSchema)
21
+ .optional(),
19
22
  text: z.string(),
20
23
  type: ChatContentTextType$inboundSchema,
21
24
  }).transform((v) => {
22
25
  return remap$(v, {
23
26
  "cache_control": "cacheControl",
27
+ "prompt_cache_breakpoint": "promptCacheBreakpoint",
24
28
  });
25
29
  });
26
30
  /** @internal */
27
31
  export const ChatContentText$outboundSchema = z.object({
28
32
  cacheControl: ChatContentCacheControl$outboundSchema.optional(),
33
+ promptCacheBreakpoint: z.nullable(PromptCacheBreakpoint$outboundSchema)
34
+ .optional(),
29
35
  text: z.string(),
30
36
  type: ChatContentTextType$outboundSchema,
31
37
  }).transform((v) => {
32
38
  return remap$(v, {
33
39
  cacheControl: "cache_control",
40
+ promptCacheBreakpoint: "prompt_cache_breakpoint",
34
41
  });
35
42
  });
36
43
  export function chatContentTextToJSON(chatContentText) {
@@ -41,7 +41,7 @@ export declare const ChatFunctionToolType: {
41
41
  export type ChatFunctionToolType = ClosedEnum<typeof ChatFunctionToolType>;
42
42
  export type ChatFunctionToolFunction = {
43
43
  /**
44
- * Cache control for the content part
44
+ * Anthropic-style cache breakpoint for the content part. Interchangeable with the OpenAI-style `prompt_cache_breakpoint` marker: OpenRouter converts between the two based on the provider serving the request.
45
45
  */
46
46
  cacheControl?: ChatContentCacheControl | undefined;
47
47
  /**
@@ -19,6 +19,7 @@ import { FusionPlugin, FusionPlugin$Outbound } from "./fusionplugin.js";
19
19
  import { ImageConfig, ImageConfig$Outbound } from "./imageconfig.js";
20
20
  import { ModerationPlugin, ModerationPlugin$Outbound } from "./moderationplugin.js";
21
21
  import { ParetoRouterPlugin, ParetoRouterPlugin$Outbound } from "./paretorouterplugin.js";
22
+ import { PromptCacheOptions, PromptCacheOptions$Outbound } from "./promptcacheoptions.js";
22
23
  import { ProviderPreferences, ProviderPreferences$Outbound } from "./providerpreferences.js";
23
24
  import { ResponseHealingPlugin, ResponseHealingPlugin$Outbound } from "./responsehealingplugin.js";
24
25
  import { StopServerToolsWhenCondition, StopServerToolsWhenCondition$Outbound } from "./stopservertoolswhencondition.js";
@@ -101,7 +102,7 @@ export type Stop = string | Array<string> | any;
101
102
  */
102
103
  export type ChatRequest = {
103
104
  /**
104
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
105
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
105
106
  */
106
107
  cacheControl?: AnthropicCacheControlDirective | undefined;
107
108
  /**
@@ -174,6 +175,11 @@ export type ChatRequest = {
174
175
  * Presence penalty (-2.0 to 2.0)
175
176
  */
176
177
  presencePenalty?: number | null | undefined;
178
+ promptCacheKey?: string | null | undefined;
179
+ /**
180
+ * Request-level prompt-cache controls. `mode: "explicit"` disables OpenAI-managed breakpoints so only blocks marked with `prompt_cache_breakpoint` are cached. Only supported by OpenAI GPT-5.6 and newer.
181
+ */
182
+ promptCacheOptions?: PromptCacheOptions | null | undefined;
177
183
  /**
178
184
  * When multiple model providers are available, optionally indicate your routing preference.
179
185
  */
@@ -315,6 +321,8 @@ export type ChatRequest$Outbound = {
315
321
  parallel_tool_calls?: boolean | null | undefined;
316
322
  plugins?: Array<AutoRouterPlugin$Outbound | ContextCompressionPlugin$Outbound | FileParserPlugin$Outbound | FusionPlugin$Outbound | ModerationPlugin$Outbound | ParetoRouterPlugin$Outbound | ResponseHealingPlugin$Outbound | WebSearchPlugin$Outbound | WebFetchPlugin$Outbound> | undefined;
317
323
  presence_penalty?: number | null | undefined;
324
+ prompt_cache_key?: string | null | undefined;
325
+ prompt_cache_options?: PromptCacheOptions$Outbound | null | undefined;
318
326
  provider?: ProviderPreferences$Outbound | null | undefined;
319
327
  reasoning?: ChatRequestReasoning$Outbound | undefined;
320
328
  reasoning_effort?: string | null | undefined;
@@ -24,6 +24,7 @@ import { FusionPlugin$outboundSchema, } from "./fusionplugin.js";
24
24
  import { ImageConfig$outboundSchema, } from "./imageconfig.js";
25
25
  import { ModerationPlugin$outboundSchema, } from "./moderationplugin.js";
26
26
  import { ParetoRouterPlugin$outboundSchema, } from "./paretorouterplugin.js";
27
+ import { PromptCacheOptions$outboundSchema, } from "./promptcacheoptions.js";
27
28
  import { ProviderPreferences$outboundSchema, } from "./providerpreferences.js";
28
29
  import { ResponseHealingPlugin$outboundSchema, } from "./responsehealingplugin.js";
29
30
  import { StopServerToolsWhenCondition$outboundSchema, } from "./stopservertoolswhencondition.js";
@@ -151,6 +152,8 @@ export const ChatRequest$outboundSchema = z.object({
151
152
  WebFetchPlugin$outboundSchema,
152
153
  ])).optional(),
153
154
  presencePenalty: z.nullable(z.number()).optional(),
155
+ promptCacheKey: z.nullable(z.string()).optional(),
156
+ promptCacheOptions: z.nullable(PromptCacheOptions$outboundSchema).optional(),
154
157
  provider: z.nullable(ProviderPreferences$outboundSchema).optional(),
155
158
  reasoning: z.lazy(() => ChatRequestReasoning$outboundSchema).optional(),
156
159
  reasoningEffort: z.nullable(ChatRequestReasoningEffort$outboundSchema)
@@ -192,6 +195,8 @@ export const ChatRequest$outboundSchema = z.object({
192
195
  minP: "min_p",
193
196
  parallelToolCalls: "parallel_tool_calls",
194
197
  presencePenalty: "presence_penalty",
198
+ promptCacheKey: "prompt_cache_key",
199
+ promptCacheOptions: "prompt_cache_options",
195
200
  reasoningEffort: "reasoning_effort",
196
201
  repetitionPenalty: "repetition_penalty",
197
202
  responseFormat: "response_format",
@@ -24,7 +24,7 @@ export type CreateGuardrailRequest = {
24
24
  */
25
25
  description?: string | null | undefined;
26
26
  /**
27
- * Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.
27
+ * Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.
28
28
  *
29
29
  * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
30
30
  */
@@ -42,9 +42,13 @@ export type CreateGuardrailRequest = {
42
42
  */
43
43
  enforceZdrOpenai?: boolean | null | undefined;
44
44
  /**
45
- * Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, or Google. Falls back to enforce_zdr when not provided.
45
+ * Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided.
46
46
  */
47
47
  enforceZdrOther?: boolean | null | undefined;
48
+ /**
49
+ * Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided.
50
+ */
51
+ enforceZdrXai?: boolean | null | undefined;
48
52
  /**
49
53
  * Array of model identifiers to exclude from routing (slug or canonical_slug accepted)
50
54
  */
@@ -82,6 +86,7 @@ export type CreateGuardrailRequest$Outbound = {
82
86
  enforce_zdr_google?: boolean | null | undefined;
83
87
  enforce_zdr_openai?: boolean | null | undefined;
84
88
  enforce_zdr_other?: boolean | null | undefined;
89
+ enforce_zdr_xai?: boolean | null | undefined;
85
90
  ignored_models?: Array<string> | null | undefined;
86
91
  ignored_providers?: Array<string> | null | undefined;
87
92
  limit_usd?: number | null | undefined;
@@ -20,6 +20,7 @@ export const CreateGuardrailRequest$outboundSchema = z.object({
20
20
  enforceZdrGoogle: z.nullable(z.boolean()).optional(),
21
21
  enforceZdrOpenai: z.nullable(z.boolean()).optional(),
22
22
  enforceZdrOther: z.nullable(z.boolean()).optional(),
23
+ enforceZdrXai: z.nullable(z.boolean()).optional(),
23
24
  ignoredModels: z.nullable(z.array(z.string())).optional(),
24
25
  ignoredProviders: z.nullable(z.array(z.string())).optional(),
25
26
  limitUsd: z.nullable(z.number()).optional(),
@@ -37,6 +38,7 @@ export const CreateGuardrailRequest$outboundSchema = z.object({
37
38
  enforceZdrGoogle: "enforce_zdr_google",
38
39
  enforceZdrOpenai: "enforce_zdr_openai",
39
40
  enforceZdrOther: "enforce_zdr_other",
41
+ enforceZdrXai: "enforce_zdr_xai",
40
42
  ignoredModels: "ignored_models",
41
43
  ignoredProviders: "ignored_providers",
42
44
  limitUsd: "limit_usd",
@@ -51,7 +51,7 @@ export type FusionServerToolConfig = {
51
51
  */
52
52
  analysisModels?: Array<string> | undefined;
53
53
  /**
54
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
54
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
55
55
  */
56
56
  cacheControl?: AnthropicCacheControlDirective | undefined;
57
57
  /**
@@ -30,7 +30,7 @@ export type Guardrail = {
30
30
  */
31
31
  description?: string | null | undefined;
32
32
  /**
33
- * Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.
33
+ * Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.
34
34
  *
35
35
  * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
36
36
  */
@@ -48,9 +48,13 @@ export type Guardrail = {
48
48
  */
49
49
  enforceZdrOpenai?: boolean | null | undefined;
50
50
  /**
51
- * Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, or Google. Falls back to enforce_zdr when not provided.
51
+ * Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided.
52
52
  */
53
53
  enforceZdrOther?: boolean | null | undefined;
54
+ /**
55
+ * Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided.
56
+ */
57
+ enforceZdrXai?: boolean | null | undefined;
54
58
  /**
55
59
  * Unique identifier for the guardrail
56
60
  */
@@ -22,6 +22,7 @@ export const Guardrail$inboundSchema = z.object({
22
22
  enforce_zdr_google: z.nullable(z.boolean()).optional(),
23
23
  enforce_zdr_openai: z.nullable(z.boolean()).optional(),
24
24
  enforce_zdr_other: z.nullable(z.boolean()).optional(),
25
+ enforce_zdr_xai: z.nullable(z.boolean()).optional(),
25
26
  id: z.string(),
26
27
  ignored_models: z.nullable(z.array(z.string())).optional(),
27
28
  ignored_providers: z.nullable(z.array(z.string())).optional(),
@@ -42,6 +43,7 @@ export const Guardrail$inboundSchema = z.object({
42
43
  "enforce_zdr_google": "enforceZdrGoogle",
43
44
  "enforce_zdr_openai": "enforceZdrOpenai",
44
45
  "enforce_zdr_other": "enforceZdrOther",
46
+ "enforce_zdr_xai": "enforceZdrXai",
45
47
  "ignored_models": "ignoredModels",
46
48
  "ignored_providers": "ignoredProviders",
47
49
  "limit_usd": "limitUsd",
@@ -7,7 +7,7 @@ import { PromptCacheBreakpoint, PromptCacheBreakpoint$Outbound } from "./promptc
7
7
  */
8
8
  export type InputText = {
9
9
  /**
10
- * Marks an explicit prompt-cache boundary on this content block. Everything through the block carrying this marker is part of the candidate cached prefix. Only supported by OpenAI GPT-5.6 and newer.
10
+ * Marks an explicit prompt-cache boundary on this content block (OpenAI-style). Everything through the block carrying this marker is part of the candidate cached prefix. Supported natively by OpenAI GPT-5.6 and newer; on providers that use Anthropic-style `cache_control`, OpenRouter converts the marker to that format automatically.
11
11
  */
12
12
  promptCacheBreakpoint?: PromptCacheBreakpoint | null | undefined;
13
13
  text: string;
@@ -9,7 +9,7 @@ import { AnthropicWebSearchResultBlockParam, AnthropicWebSearchResultBlockParam$
9
9
  import { MessagesAdvisorToolResultBlock, MessagesAdvisorToolResultBlock$Outbound } from "./messagesadvisortoolresultblock.js";
10
10
  export type ContentCompaction = {
11
11
  /**
12
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
12
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
13
13
  */
14
14
  cacheControl?: AnthropicCacheControlDirective | undefined;
15
15
  content: string | null;
@@ -34,7 +34,7 @@ export type ContentWebSearchToolResultError = {
34
34
  export type MessagesMessageParamContentUnion3 = ContentWebSearchToolResultError | Array<AnthropicWebSearchResultBlockParam>;
35
35
  export type ContentWebSearchToolResult = {
36
36
  /**
37
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
37
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
38
38
  */
39
39
  cacheControl?: AnthropicCacheControlDirective | undefined;
40
40
  content: ContentWebSearchToolResultError | Array<AnthropicWebSearchResultBlockParam>;
@@ -43,7 +43,7 @@ export type ContentWebSearchToolResult = {
43
43
  };
44
44
  export type ContentServerToolUse = {
45
45
  /**
46
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
46
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
47
47
  */
48
48
  cacheControl?: AnthropicCacheControlDirective | undefined;
49
49
  id: string;
@@ -68,7 +68,7 @@ export type MessagesMessageParamContentUnion1 = AnthropicTextBlockParam | Anthro
68
68
  export type MessagesMessageParamContentUnion2 = string | Array<AnthropicTextBlockParam | AnthropicImageBlockParam | ContentToolReference | AnthropicSearchResultBlockParam | AnthropicDocumentBlockParam>;
69
69
  export type ContentToolResult = {
70
70
  /**
71
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
71
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
72
72
  */
73
73
  cacheControl?: AnthropicCacheControlDirective | undefined;
74
74
  content?: string | Array<AnthropicTextBlockParam | AnthropicImageBlockParam | ContentToolReference | AnthropicSearchResultBlockParam | AnthropicDocumentBlockParam> | undefined;
@@ -78,7 +78,7 @@ export type ContentToolResult = {
78
78
  };
79
79
  export type ContentToolUse = {
80
80
  /**
81
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
81
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
82
82
  */
83
83
  cacheControl?: AnthropicCacheControlDirective | undefined;
84
84
  id: string;
@@ -133,7 +133,7 @@ export declare const ToolTypeEphemeral: {
133
133
  };
134
134
  export type ToolTypeEphemeral = ClosedEnum<typeof ToolTypeEphemeral>;
135
135
  /**
136
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
136
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
137
137
  */
138
138
  export type Caching = {
139
139
  ttl?: AnthropicCacheControlTtl | undefined;
@@ -150,7 +150,7 @@ export type TypeAdvisor20260301 = ClosedEnum<typeof TypeAdvisor20260301>;
150
150
  export type ToolAdvisor20260301 = {
151
151
  allowedCallers?: Array<AnthropicAllowedCallers> | undefined;
152
152
  /**
153
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
153
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
154
154
  */
155
155
  cacheControl?: AnthropicCacheControlDirective | undefined;
156
156
  caching?: Caching | null | undefined;
@@ -173,7 +173,7 @@ export type ToolWebSearch20260209 = {
173
173
  allowedDomains?: Array<string> | null | undefined;
174
174
  blockedDomains?: Array<string> | null | undefined;
175
175
  /**
176
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
176
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
177
177
  */
178
178
  cacheControl?: AnthropicCacheControlDirective | undefined;
179
179
  maxUses?: number | null | undefined;
@@ -193,7 +193,7 @@ export type ToolWebSearch20250305 = {
193
193
  allowedDomains?: Array<string> | null | undefined;
194
194
  blockedDomains?: Array<string> | null | undefined;
195
195
  /**
196
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
196
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
197
197
  */
198
198
  cacheControl?: AnthropicCacheControlDirective | undefined;
199
199
  maxUses?: number | null | undefined;
@@ -211,7 +211,7 @@ export declare const TypeTextEditor20250124: {
211
211
  export type TypeTextEditor20250124 = ClosedEnum<typeof TypeTextEditor20250124>;
212
212
  export type ToolTextEditor20250124 = {
213
213
  /**
214
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
214
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
215
215
  */
216
216
  cacheControl?: AnthropicCacheControlDirective | undefined;
217
217
  name: NameStrReplaceEditor;
@@ -227,7 +227,7 @@ export declare const TypeBash20250124: {
227
227
  export type TypeBash20250124 = ClosedEnum<typeof TypeBash20250124>;
228
228
  export type ToolBash20250124 = {
229
229
  /**
230
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
230
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
231
231
  */
232
232
  cacheControl?: AnthropicCacheControlDirective | undefined;
233
233
  name: NameBash;
@@ -247,7 +247,7 @@ export declare const ToolTypeCustom: {
247
247
  export type ToolTypeCustom = ClosedEnum<typeof ToolTypeCustom>;
248
248
  export type ToolCustom = {
249
249
  /**
250
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
250
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
251
251
  */
252
252
  cacheControl?: AnthropicCacheControlDirective | undefined;
253
253
  description?: string | undefined;
@@ -261,7 +261,7 @@ export type MessagesRequestToolUnion = ToolAdvisor20260301 | ToolCustom | ToolBa
261
261
  */
262
262
  export type MessagesRequest = {
263
263
  /**
264
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
264
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
265
265
  */
266
266
  cacheControl?: AnthropicCacheControlDirective | undefined;
267
267
  contextManagement?: ContextManagement | null | undefined;
@@ -7,7 +7,7 @@ export declare const PromptCacheBreakpointMode: {
7
7
  };
8
8
  export type PromptCacheBreakpointMode = ClosedEnum<typeof PromptCacheBreakpointMode>;
9
9
  /**
10
- * Marks an explicit prompt-cache boundary on this content block. Everything through the block carrying this marker is part of the candidate cached prefix. Only supported by OpenAI GPT-5.6 and newer.
10
+ * Marks an explicit prompt-cache boundary on this content block (OpenAI-style). Everything through the block carrying this marker is part of the candidate cached prefix. Supported natively by OpenAI GPT-5.6 and newer; on providers that use Anthropic-style `cache_control`, OpenRouter converts the marker to that format automatically.
11
11
  */
12
12
  export type PromptCacheBreakpoint = {
13
13
  mode: PromptCacheBreakpointMode;
@@ -127,7 +127,7 @@ export type ResponsesRequestToolUnion = ResponsesRequestToolFunction | (PreviewW
127
127
  export type ResponsesRequest = {
128
128
  background?: boolean | null | undefined;
129
129
  /**
130
- * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.
130
+ * Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.
131
131
  */
132
132
  cacheControl?: AnthropicCacheControlDirective | undefined;
133
133
  /**
@@ -24,7 +24,7 @@ export type UpdateGuardrailRequest = {
24
24
  */
25
25
  description?: string | null | undefined;
26
26
  /**
27
- * Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.
27
+ * Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.
28
28
  *
29
29
  * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
30
30
  */
@@ -42,9 +42,13 @@ export type UpdateGuardrailRequest = {
42
42
  */
43
43
  enforceZdrOpenai?: boolean | null | undefined;
44
44
  /**
45
- * Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, or Google. Falls back to enforce_zdr when not provided.
45
+ * Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided.
46
46
  */
47
47
  enforceZdrOther?: boolean | null | undefined;
48
+ /**
49
+ * Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided.
50
+ */
51
+ enforceZdrXai?: boolean | null | undefined;
48
52
  /**
49
53
  * Array of model identifiers to exclude from routing (slug or canonical_slug accepted)
50
54
  */
@@ -78,6 +82,7 @@ export type UpdateGuardrailRequest$Outbound = {
78
82
  enforce_zdr_google?: boolean | null | undefined;
79
83
  enforce_zdr_openai?: boolean | null | undefined;
80
84
  enforce_zdr_other?: boolean | null | undefined;
85
+ enforce_zdr_xai?: boolean | null | undefined;
81
86
  ignored_models?: Array<string> | null | undefined;
82
87
  ignored_providers?: Array<string> | null | undefined;
83
88
  limit_usd?: number | null | undefined;
@@ -20,6 +20,7 @@ export const UpdateGuardrailRequest$outboundSchema = z.object({
20
20
  enforceZdrGoogle: z.nullable(z.boolean()).optional(),
21
21
  enforceZdrOpenai: z.nullable(z.boolean()).optional(),
22
22
  enforceZdrOther: z.nullable(z.boolean()).optional(),
23
+ enforceZdrXai: z.nullable(z.boolean()).optional(),
23
24
  ignoredModels: z.nullable(z.array(z.string())).optional(),
24
25
  ignoredProviders: z.nullable(z.array(z.string())).optional(),
25
26
  limitUsd: z.nullable(z.number()).optional(),
@@ -36,6 +37,7 @@ export const UpdateGuardrailRequest$outboundSchema = z.object({
36
37
  enforceZdrGoogle: "enforce_zdr_google",
37
38
  enforceZdrOpenai: "enforce_zdr_openai",
38
39
  enforceZdrOther: "enforce_zdr_other",
40
+ enforceZdrXai: "enforce_zdr_xai",
39
41
  ignoredModels: "ignored_models",
40
42
  ignoredProviders: "ignored_providers",
41
43
  limitUsd: "limit_usd",
@@ -81,7 +81,7 @@ export declare class Workspaces extends ClientSDK {
81
81
  * Bulk remove members from a workspace
82
82
  *
83
83
  * @remarks
84
- * Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. [Management key](/docs/guides/overview/auth/management-api-keys) required.
84
+ * 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.
85
85
  */
86
86
  bulkRemoveMembers(request: operations.BulkRemoveWorkspaceMembersRequest, options?: RequestOptions): Promise<models.BulkRemoveWorkspaceMembersResponse>;
87
87
  }
@@ -111,7 +111,7 @@ export class Workspaces extends ClientSDK {
111
111
  * Bulk remove members from a workspace
112
112
  *
113
113
  * @remarks
114
- * Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. [Management key](/docs/guides/overview/auth/management-api-keys) required.
114
+ * 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.
115
115
  */
116
116
  async bulkRemoveMembers(request, options) {
117
117
  return unwrapAsync(workspacesBulkRemoveMembers(this, request, options));
package/jsr.json CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  {
4
4
  "name": "@openrouter/sdk",
5
- "version": "0.13.51",
5
+ "version": "0.13.53",
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.51",
3
+ "version": "0.13.53",
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,14 +73,14 @@
73
73
  "lint": "eslint --cache --max-warnings=0 src",
74
74
  "build": "tsc",
75
75
  "prepublishOnly": "npm run build",
76
+ "test:e2e": "vitest --run --project e2e",
77
+ "test:transit": "exit 0",
76
78
  "typecheck:transit": "exit 0",
77
79
  "compile": "tsc",
78
80
  "postinstall": "node scripts/check-types.js || true",
79
- "test:watch": "vitest --watch --project unit",
80
81
  "prepare": "npm run build",
81
82
  "test": "vitest --run --project unit",
82
- "test:e2e": "vitest --run --project e2e",
83
- "test:transit": "exit 0",
83
+ "test:watch": "vitest --watch --project unit",
84
84
  "typecheck": "tsc --noEmit"
85
85
  },
86
86
  "peerDependencies": {},