diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index e884ff0b2..a2b46dcc0 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: "" id: "" management: - docChecksum: ac1b7d27014263854651af7c7a6bf606 + docChecksum: a6155906b2386d2f95ae28b0cb027d36 docVersion: 1.0.0 speakeasyVersion: 1.787.0 generationVersion: 2.914.0 - releaseVersion: 1.3.5 - configChecksum: 228cf12c42921d2017027698fbcfa9af + releaseVersion: 1.3.6 + configChecksum: 202757eff18b07c12eee4389d14f2df2 repoURL: https://github.com/OpenRouterTeam/typescript-sdk.git installationURL: https://github.com/OpenRouterTeam/typescript-sdk published: true persistentEdits: - generation_id: 9089d553-fc75-4d5f-8f7c-23a3f7744b1d - pristine_commit_hash: 007b10f79afc72fa89fb3f13f26a831cc53c01d7 - pristine_tree_hash: 780b8599c4a60262867ed5f1c803fa4eb6907699 + generation_id: 3a4733cb-1c0b-4eca-99a1-fc3917f2e7aa + pristine_commit_hash: ccee2fe1ff9d1e705d6335a216f29ae12812ae43 + pristine_tree_hash: 1928df8d47d759ad075703309420ced0df8de057 features: typescript: acceptHeaders: 2.81.2 @@ -5570,8 +5570,8 @@ trackedFiles: pristine_git_object: 9ae4de8c73c4bcea74bc0ff0f68791fb127dcb0d docs/models/internlistresponse.mdx: id: 5c9b286a062d - last_write_checksum: sha1:d334ade39df12195e9250101e6b6750fc573ccc7 - pristine_git_object: 65277b016d8bb40dbbd58ca3137e469494371905 + last_write_checksum: sha1:229ca1d55f775c434ac49f957cd8d91f11c36145 + pristine_git_object: b2bcebeaf61d78501a55109a0e7a203e6fb65988 docs/models/internstatus.mdx: id: 5fc34cb78035 last_write_checksum: sha1:af6c4198a4fd4cacc699b7a4096cc7ca2752d070 @@ -8826,8 +8826,8 @@ trackedFiles: pristine_git_object: e35bf2a8b4d6a47d2c2de3ad766e075c0a050dbd docs/models/operations/listinternsrequest.mdx: id: 74ce63b4e73a - last_write_checksum: sha1:93dabfc10c337848e8b521f1e974ac143c2d9d64 - pristine_git_object: 3bb11cb9f31c07a2ccc4620664cb2e02eabb1b0d + last_write_checksum: sha1:a614615da5dacd0781e642569820cc49d22d2ae6 + pristine_git_object: 476c6344d27d607b72a0690bbc344648d1da6cb9 docs/models/operations/listinternvaultsecretsglobals.mdx: id: d50aa244883c last_write_checksum: sha1:994c63623ed392a3445ee5739ce025ca725f5a33 @@ -13578,8 +13578,8 @@ trackedFiles: deleted: true docs/sdks/byok/README.mdx: id: 17792f3b180d - last_write_checksum: sha1:0ab079f53e5b269e228602ea4c9dc43188fc21fd - pristine_git_object: 9aeb0a324ce21ca17127bd37b06d1fc51b5d3157 + last_write_checksum: sha1:f73aadf34bb48dbedff208d4f9f7203362550c48 + pristine_git_object: 528c0f07107423aa378563193a5791162f073ec2 docs/sdks/chat/README.mdx: id: 1dd859c23fe1 last_write_checksum: sha1:b01aa24bc49b080a9d99ca0f7303d1afd546b6ac @@ -13770,12 +13770,12 @@ trackedFiles: pristine_git_object: 410efafd6a7f50d91ccb87131fedbe0c3d47e15a jsr.json: id: 7f6ab7767282 - last_write_checksum: sha1:3c97f4275190480132d5a12db34e7b65ed2af477 - pristine_git_object: 8054f87ecd1e20529c6e28834a4c8c9887f16ebc + last_write_checksum: sha1:1ba208035869efe9201a0537f67700bef9dcd219 + pristine_git_object: f2145490b001509b648e83cfb860ee32fc626d16 package.json: id: 7030d0b2f71b - last_write_checksum: sha1:4a2b89ad6360f55eb8ca1ddbf969a0fd6d2fdf9e - pristine_git_object: 7674f4c0e1c3d17236bd6c05cc380519e183d53a + last_write_checksum: sha1:928cbe03a9074f93f069e72c6f8443deaf93a4d7 + pristine_git_object: 03712669d05e4546ca391477e0c17ef4a03cbcb8 src/core.ts: id: f431fdbcd144 last_write_checksum: sha1:5aa66b0b6a5964f3eea7f3098c2eb3c0ee9c0131 @@ -13842,8 +13842,8 @@ trackedFiles: pristine_git_object: dfb9d43d49aad7afddefd364a0b072818f2e494e src/funcs/byokUpdate.ts: id: af96a7f06850 - last_write_checksum: sha1:e6cd4623a50137e7ab4c5b977a48fc3bc6bdfaf1 - pristine_git_object: cd10734043b5049c0d732046065f1e2167d970ab + last_write_checksum: sha1:44bd81277a3e11b6705dbb755e793366a8ba093b + pristine_git_object: 3741c42bacd78363dd09188953df70ccf74264d8 src/funcs/chatSend.ts: id: 8c3aa3c963bf last_write_checksum: sha1:71e76ceebcad45d6f42ef0aefdfb0b3847e6d87d @@ -14014,8 +14014,8 @@ trackedFiles: pristine_git_object: 84985cfee5e79c648083370d42e07563d54f8fd2 src/funcs/internsListInterns.ts: id: eceaf7dad653 - last_write_checksum: sha1:a4542910a40cb643e21f27a2e697970d450930ba - pristine_git_object: 14ecd1ed53c1f9043a70cd4f0f9b88c72866fef5 + last_write_checksum: sha1:e5dd060b7ff96038d687efc0a5495064efc84621 + pristine_git_object: 48cd8682b2086de133ae3bb3c85c9b42a87a8b23 src/funcs/internsProvisionIntern.ts: id: 38001699f102 last_write_checksum: sha1:a6ce42e9ca605d9e32999a0f49ac538a4c2b5302 @@ -14282,8 +14282,8 @@ trackedFiles: pristine_git_object: a187e58707bdb726ca2aff74941efe7493422d4e src/lib/config.ts: id: 320761608fb3 - last_write_checksum: sha1:86125b9e1f3bde0e8a60471e376be9f27f7b8f94 - pristine_git_object: ab8a6b2b28bd3b520f79b22c56e6dda46e86f738 + last_write_checksum: sha1:0ac2b4577b4da7e58fddce6a0ea0f41dc7a2cef8 + pristine_git_object: 62d14c4edc0b07d5bff9621e401fab6c39cfab68 src/lib/dlv.ts: id: b1988214835a last_write_checksum: sha1:eaac763b22717206a6199104e0403ed17a4e2711 @@ -15828,8 +15828,8 @@ trackedFiles: pristine_git_object: 03b583846aff6f7cfe9d10fb0df3d44314535cd0 src/models/internlistresponse.ts: id: cd6ace7e64c6 - last_write_checksum: sha1:826ef044e99d93217c8b7cfe561b127952c019fb - pristine_git_object: 29f2c5751dd1f0b71242c3e829f8a748cde24826 + last_write_checksum: sha1:229306f65504f90f66f349a5322d0ea2cdb2dc37 + pristine_git_object: 0099b312a851681bdbb70647221dfb5bb8908256 src/models/itemreferenceitem.ts: id: ccbe6ae60edc last_write_checksum: sha1:86c6b837d595e08a6593ffad736ca176dd544b49 @@ -16576,8 +16576,8 @@ trackedFiles: pristine_git_object: 53af57ce4fbd45ca669919b1e55d41052b43bb74 src/models/operations/listinterns.ts: id: 3fe8f2b8da99 - last_write_checksum: sha1:e6c46d4382150707cdd2fb9a230b093877b7f96c - pristine_git_object: 6a2d872bf3147617bd907c6515628597eabf6785 + last_write_checksum: sha1:37baa89eaa2c881ed3019f31f2b1eab70415048e + pristine_git_object: ad3509ebef850d80f92f917aca134e2ea80aae81 src/models/operations/listinternvaultsecrets.ts: id: b36839da75f4 last_write_checksum: sha1:e0fb63ce51a57af12347462eea27ef389e0590cb @@ -18992,6 +18992,8 @@ examples: application/json: {"error": {"code": 404, "message": "Resource not found"}} "500": application/json: {"error": {"code": 500, "message": "Internal Server Error"}} + "403": + application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} createObservabilityDestination: speakeasy-default-create-observability-destination: requestBody: @@ -21081,4 +21083,4 @@ examples: "529": application/json: {"error": {"code": 529, "message": "Provider returned error"}} examplesVersion: 1.0.2 -releaseNotes: "## Typescript SDK Changes:\n* `openrouter.interns.deleteIntern()`: \n * `request.deleteInternRequest` **Added** (Breaking ⚠️)\n * `error` **Changed**\n" +releaseNotes: "## Typescript SDK Changes:\n* `openrouter.byok.update()`: `error.status[403]` **Added**\n* `openrouter.interns.listInterns()`: \n * `request.startingAfter` **Added**\n * `response.nextCursor` **Added**\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 4aaedeb62..1c9c6a3a3 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -37,7 +37,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true typescript: - version: 1.3.5 + version: 1.3.6 acceptHeaderEnum: false additionalDependencies: dependencies: diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 8833bba90..40ca905c5 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -13104,6 +13104,10 @@ components: has_more: description: 'True when more interns match the current filters.' type: 'boolean' + next_cursor: + description: 'Opaque cursor, present when `has_more` is true. Pass it as `starting_after` to fetch the next page.' + example: 'MjAyNi0wOS0xNlQwODozMDowMC4wMDAwMDBafDdjOWU2Njc5LTc0MjUtNDBkZS05NDRiLWUwN2ZjMWY5MGFlNw' + type: 'string' required: - 'data' - 'has_more' @@ -31820,6 +31824,16 @@ paths: schema: $ref: '#/components/schemas/UnauthorizedResponse' description: 'Unauthorized - Authentication required or invalid credentials' + '403': + content: + application/json: + example: + error: + code: 403 + message: 'Only management keys can perform this operation' + schema: + $ref: '#/components/schemas/ForbiddenResponse' + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: @@ -36374,6 +36388,14 @@ paths: x-speakeasy-unknown-values: allow type: 'array' style: 'form' + - description: 'The opaque `next_cursor` of the previous page. Returns the interns that come after it in the newest-first order. A malformed cursor is a 400.' + in: 'query' + name: 'starting_after' + required: false + schema: + description: 'The opaque `next_cursor` of the previous page. Returns the interns that come after it in the newest-first order. A malformed cursor is a 400.' + example: 'MjAyNi0wOS0xNlQwODozMDowMC4wMDAwMDBafDdjOWU2Njc5LTc0MjUtNDBkZS05NDRiLWUwN2ZjMWY5MGFlNw' + type: 'string' - description: 'Only return interns in this workspace. It must match the API key workspace.' in: 'query' name: 'workspace_id' @@ -40586,9 +40608,13 @@ paths: '403': content: application/json: + example: + error: + code: 403 + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: 'Privacy settings are locked' + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 89cadd37a..0fd025826 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,8 +2,8 @@ speakeasyVersion: 1.787.0 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:1be8ee31e86ed4ae0b3c8d37f2808d76b01eda17797a430d320a4a3adc0156fb - sourceBlobDigest: sha256:90ce17ea838df537b466f36fa3d078045589e0605f473529e0a66799bd4aaba6 + sourceRevisionDigest: sha256:a7cb59be0c2ba4ec8ee9818b83b45d3c9b1fe358e38fee1b043f6c0ae9b38507 + sourceBlobDigest: sha256:2d9650b9e28870de725643bb75efc390d7ca7b3de4bd20a50f0c9130294e0780 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: openrouter: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:1be8ee31e86ed4ae0b3c8d37f2808d76b01eda17797a430d320a4a3adc0156fb - sourceBlobDigest: sha256:90ce17ea838df537b466f36fa3d078045589e0605f473529e0a66799bd4aaba6 + sourceRevisionDigest: sha256:a7cb59be0c2ba4ec8ee9818b83b45d3c9b1fe358e38fee1b043f6c0ae9b38507 + sourceBlobDigest: sha256:2d9650b9e28870de725643bb75efc390d7ca7b3de4bd20a50f0c9130294e0780 codeSamplesNamespace: open-router-chat-completions-api-typescript-code-samples - codeSamplesRevisionDigest: sha256:e80fd66a9402afd3e3bdefde66292b73abf6c97e48d044c27a76c3a6e80cbb7a + codeSamplesRevisionDigest: sha256:ad7025eb772e4ee6df1e08a77e2b8455493c35ecb665b30213871ea6159de82a workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.787.0 diff --git a/RELEASES.md b/RELEASES.md index 65afaed24..6635a2b93 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -3846,4 +3846,14 @@ Based on: ### Generated - [typescript v1.3.5] . ### Releases -- [NPM v1.3.5] https://www.npmjs.com/package/@openrouter/sdk/v/1.3.5 - . \ No newline at end of file +- [NPM v1.3.5] https://www.npmjs.com/package/@openrouter/sdk/v/1.3.5 - . + +## 2026-09-19 21:24:13 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [typescript v1.3.6] . +### Releases +- [NPM v1.3.6] https://www.npmjs.com/package/@openrouter/sdk/v/1.3.6 - . \ No newline at end of file diff --git a/docs/models/internlistresponse.mdx b/docs/models/internlistresponse.mdx index 65277b016..b2bcebeaf 100644 --- a/docs/models/internlistresponse.mdx +++ b/docs/models/internlistresponse.mdx @@ -34,7 +34,8 @@ let value: InternListResponse = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | -| `data` | [models.Intern](../models/intern.mdx)[] | :heavy_check_mark: | N/A | -| `hasMore` | *boolean* | :heavy_check_mark: | True when more interns match the current filters. | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| `data` | [models.Intern](../models/intern.mdx)[] | :heavy_check_mark: | N/A | | +| `hasMore` | *boolean* | :heavy_check_mark: | True when more interns match the current filters. | | +| `nextCursor` | *string* | :heavy_minus_sign: | Opaque cursor, present when `has_more` is true. Pass it as `starting_after` to fetch the next page. | MjAyNi0wOS0xNlQwODozMDowMC4wMDAwMDBafDdjOWU2Njc5LTc0MjUtNDBkZS05NDRiLWUwN2ZjMWY5MGFlNw | \ No newline at end of file diff --git a/docs/models/operations/listinternsrequest.mdx b/docs/models/operations/listinternsrequest.mdx index 3bb11cb9f..476c6344d 100644 --- a/docs/models/operations/listinternsrequest.mdx +++ b/docs/models/operations/listinternsrequest.mdx @@ -19,4 +19,5 @@ let value: ListInternsRequest = {}; | `appCategories` | *string* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | | `limit` | *number* | :heavy_minus_sign: | Maximum number of interns to return, from 1 through 500. | 50 | | `status` | [operations.Status](../../models/operations/status.mdx)[] | :heavy_minus_sign: | Comma-separated lifecycle statuses to include. | [
"queued",
"running"
] | +| `startingAfter` | *string* | :heavy_minus_sign: | The opaque `next_cursor` of the previous page. Returns the interns that come after it in the newest-first order. A malformed cursor is a 400. | MjAyNi0wOS0xNlQwODozMDowMC4wMDAwMDBafDdjOWU2Njc5LTc0MjUtNDBkZS05NDRiLWUwN2ZjMWY5MGFlNw | | `workspaceId` | *string* | :heavy_minus_sign: | Only return interns in this workspace. It must match the API key workspace. | 89f9f5b2-3f89-4eaf-83ca-5ceae149e8bb | \ No newline at end of file diff --git a/docs/sdks/byok/README.mdx b/docs/sdks/byok/README.mdx index 9aeb0a324..528c0f071 100644 --- a/docs/sdks/byok/README.mdx +++ b/docs/sdks/byok/README.mdx @@ -434,6 +434,7 @@ run(); | ---------------------------------- | ---------------------------------- | ---------------------------------- | | errors.BadRequestResponseError | 400 | application/json | | errors.UnauthorizedResponseError | 401 | application/json | +| errors.ForbiddenResponseError | 403 | application/json | | errors.NotFoundResponseError | 404 | application/json | | errors.InternalServerResponseError | 500 | application/json | | errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/jsr.json b/jsr.json index 8054f87ec..f2145490b 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@openrouter/sdk", - "version": "1.3.5", + "version": "1.3.6", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package.json b/package.json index 5bc01ece9..dd1c260bd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/sdk", - "version": "1.3.5", + "version": "1.3.6", "author": "OpenRouter", "description": "The OpenRouter TypeScript SDK is a type-safe toolkit for building AI applications with access to 400+ language models through a unified API.", "keywords": [ @@ -73,15 +73,15 @@ "lint": "eslint --cache --max-warnings=0 src", "build": "tsc", "prepublishOnly": "npm run build", - "typecheck": "tsc --noEmit", - "typecheck:transit": "exit 0", "compile": "tsc", "postinstall": "node scripts/check-types.js || true", "prepare": "npm run build", "test:e2e": "vitest --run --project e2e", "test:transit": "exit 0", + "typecheck:transit": "exit 0", + "test": "vitest --run --project unit", "test:watch": "vitest --watch --project unit", - "test": "vitest --run --project unit" + "typecheck": "tsc --noEmit" }, "peerDependencies": {}, "devDependencies": { diff --git a/src/funcs/byokUpdate.ts b/src/funcs/byokUpdate.ts index cd1073404..3741c42ba 100644 --- a/src/funcs/byokUpdate.ts +++ b/src/funcs/byokUpdate.ts @@ -43,6 +43,7 @@ export function byokUpdate( models.UpdateBYOKKeyResponse, | errors.BadRequestResponseError | errors.UnauthorizedResponseError + | errors.ForbiddenResponseError | errors.NotFoundResponseError | errors.InternalServerResponseError | OpenRouterError @@ -72,6 +73,7 @@ async function $do( models.UpdateBYOKKeyResponse, | errors.BadRequestResponseError | errors.UnauthorizedResponseError + | errors.ForbiddenResponseError | errors.NotFoundResponseError | errors.InternalServerResponseError | OpenRouterError @@ -191,6 +193,7 @@ async function $do( models.UpdateBYOKKeyResponse, | errors.BadRequestResponseError | errors.UnauthorizedResponseError + | errors.ForbiddenResponseError | errors.NotFoundResponseError | errors.InternalServerResponseError | OpenRouterError @@ -205,6 +208,7 @@ async function $do( M.json(200, models.UpdateBYOKKeyResponse$inboundSchema), M.jsonErr(400, errors.BadRequestResponseError$inboundSchema), M.jsonErr(401, errors.UnauthorizedResponseError$inboundSchema), + M.jsonErr(403, errors.ForbiddenResponseError$inboundSchema), M.jsonErr(404, errors.NotFoundResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), diff --git a/src/funcs/internsListInterns.ts b/src/funcs/internsListInterns.ts index 14ecd1ed5..48cd8682b 100644 --- a/src/funcs/internsListInterns.ts +++ b/src/funcs/internsListInterns.ts @@ -102,6 +102,7 @@ async function $do( }, { explode: false }), encodeFormQuery({ "limit": payload?.limit, + "starting_after": payload?.starting_after, "workspace_id": payload?.workspace_id, }), ); diff --git a/src/lib/config.ts b/src/lib/config.ts index 534aec9ad..f6f6e956c 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -79,7 +79,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0.0", - sdkVersion: "1.3.5", + sdkVersion: "1.3.6", genVersion: "2.914.0", - userAgent: "speakeasy-sdk/typescript 1.3.5 2.914.0 1.0.0 @openrouter/sdk", + userAgent: "speakeasy-sdk/typescript 1.3.6 2.914.0 1.0.0 @openrouter/sdk", } as const; diff --git a/src/models/internlistresponse.ts b/src/models/internlistresponse.ts index 29f2c5751..0099b312a 100644 --- a/src/models/internlistresponse.ts +++ b/src/models/internlistresponse.ts @@ -19,6 +19,10 @@ export type InternListResponse = { * True when more interns match the current filters. */ hasMore: boolean; + /** + * Opaque cursor, present when `has_more` is true. Pass it as `starting_after` to fetch the next page. + */ + nextCursor?: string | undefined; }; /** @internal */ @@ -28,9 +32,11 @@ export const InternListResponse$inboundSchema: z.ZodType< > = z.object({ data: z.array(Intern$inboundSchema), has_more: z.boolean(), + next_cursor: z.string().optional(), }).transform((v) => { return remap$(v, { "has_more": "hasMore", + "next_cursor": "nextCursor", }); }); diff --git a/src/models/operations/listinterns.ts b/src/models/operations/listinterns.ts index 6a2d872bf..ad3509ebe 100644 --- a/src/models/operations/listinterns.ts +++ b/src/models/operations/listinterns.ts @@ -70,6 +70,10 @@ export type ListInternsRequest = { * Comma-separated lifecycle statuses to include. */ status?: Array | undefined; + /** + * The opaque `next_cursor` of the previous page. Returns the interns that come after it in the newest-first order. A malformed cursor is a 400. + */ + startingAfter?: string | undefined; /** * Only return interns in this workspace. It must match the API key workspace. */ @@ -87,6 +91,7 @@ export type ListInternsRequest$Outbound = { appCategories?: string | undefined; limit?: number | undefined; status?: Array | undefined; + starting_after?: string | undefined; workspace_id?: string | undefined; }; @@ -100,10 +105,12 @@ export const ListInternsRequest$outboundSchema: z.ZodType< appCategories: z.string().optional(), limit: z.int().optional(), status: z.array(Status$outboundSchema).optional(), + startingAfter: z.string().optional(), workspaceId: z.string().optional(), }).transform((v) => { return remap$(v, { httpReferer: "HTTP-Referer", + startingAfter: "starting_after", workspaceId: "workspace_id", }); });