diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 35c723b..69dd618 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 8b6cd71c-ea04-44da-af45-e43968b5928d management: - docChecksum: 06c725cfe764dbed9c3f85ff06857003 + docChecksum: 459a4007b7391a38a6e9c7249c84c3bf docVersion: 1.0.0 speakeasyVersion: 1.658.2 generationVersion: 2.755.9 - releaseVersion: 0.1.13 - configChecksum: 1bbbf76f0f625fbac8a29bd3ed9222e1 + releaseVersion: 0.1.17 + configChecksum: 1aa68a2fafd67f1deb74a05868fefaac repoURL: https://github.com/OpenRouterTeam/typescript-sdk.git installationURL: https://github.com/OpenRouterTeam/typescript-sdk published: true @@ -70,12 +70,14 @@ generatedFiles: - docs/models/chatmessagecontentitemaudio.md - docs/models/chatmessagecontentitemaudioformat.md - docs/models/chatmessagecontentitemaudioinputaudio.md + - docs/models/chatmessagecontentitemfile.md - docs/models/chatmessagecontentitemimage.md - docs/models/chatmessagecontentitemimagedetail.md - docs/models/chatmessagecontentitemtext.md - docs/models/chatmessagecontentitemvideo.md - docs/models/chatmessagecontentitemvideoinputvideo.md - docs/models/chatmessagecontentitemvideovideourl.md + - docs/models/chatmessagecontentitemvideovideourlvideourl.md - docs/models/chatmessagetokenlogprob.md - docs/models/chatmessagetokenlogprobs.md - docs/models/chatmessagetoolcall.md @@ -132,6 +134,7 @@ generatedFiles: - docs/models/filecitationtype.md - docs/models/filepath.md - docs/models/filepathtype.md + - docs/models/filet.md - docs/models/forbiddenresponseerrordata.md - docs/models/idfileparser.md - docs/models/idmoderation.md @@ -513,8 +516,7 @@ generatedFiles: - docs/models/usermessage.md - docs/models/usermessagecontent.md - docs/models/variables.md - - docs/models/videourl1.md - - docs/models/videourl2.md + - docs/models/videourl.md - docs/models/websearchpreviewtooluserlocation.md - docs/models/websearchpreviewtooluserlocationtype.md - docs/models/websearchstatus.md @@ -593,6 +595,7 @@ generatedFiles: - src/models/chatgenerationtokenusage.ts - src/models/chatmessagecontentitem.ts - src/models/chatmessagecontentitemaudio.ts + - src/models/chatmessagecontentitemfile.ts - src/models/chatmessagecontentitemimage.ts - src/models/chatmessagecontentitemtext.ts - src/models/chatmessagecontentitemvideo.ts @@ -767,6 +770,7 @@ generatedFiles: - src/models/unprocessableentityresponseerrordata.ts - src/models/urlcitation.ts - src/models/usermessage.ts + - src/models/videourl.ts - src/models/websearchpreviewtooluserlocation.ts - src/models/websearchstatus.ts - src/react-query/_context.tsx diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 7a05cf8..7afc9d9 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -30,7 +30,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: false typescript: - version: 0.1.13 + version: 0.1.17 acceptHeaderEnum: false additionalDependencies: dependencies: {} diff --git a/.speakeasy/in.openapi.yaml b/.speakeasy/in.openapi.yaml index 82b30d2..ebd130c 100644 --- a/.speakeasy/in.openapi.yaml +++ b/.speakeasy/in.openapi.yaml @@ -4647,12 +4647,7 @@ components: type: string const: input_video video_url: - type: object - properties: - url: - type: string - required: - - url + $ref: '#/components/schemas/VideoURL' required: - type - video_url @@ -4672,12 +4667,40 @@ components: - type - video_url type: object + VideoURL: + type: object + properties: + url: + type: string + required: + - url + ChatMessageContentItemFile: + type: object + properties: + type: + type: string + const: file + file: + type: object + properties: + file_data: + type: string + file_id: + type: string + filename: + type: string + required: + - file_data + required: + - type + - file ChatMessageContentItem: oneOf: - $ref: '#/components/schemas/ChatMessageContentItemText' - $ref: '#/components/schemas/ChatMessageContentItemImage' - $ref: '#/components/schemas/ChatMessageContentItemAudio' - $ref: '#/components/schemas/ChatMessageContentItemVideo' + - $ref: '#/components/schemas/ChatMessageContentItemFile' type: object discriminator: propertyName: type @@ -4687,6 +4710,7 @@ components: input_audio: '#/components/schemas/ChatMessageContentItemAudio' input_video: '#/components/schemas/ChatMessageContentItemVideo' video_url: '#/components/schemas/ChatMessageContentItemVideo' + file: '#/components/schemas/ChatMessageContentItemFile' ChatMessageToolCall: type: object properties: diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 438627b..d218d94 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -4669,12 +4669,7 @@ components: type: string const: input_video video_url: - type: object - properties: - url: - type: string - required: - - url + $ref: '#/components/schemas/VideoURL' required: - type - video_url @@ -4694,12 +4689,40 @@ components: - type - video_url type: object + VideoURL: + type: object + properties: + url: + type: string + required: + - url + ChatMessageContentItemFile: + type: object + properties: + type: + type: string + const: file + file: + type: object + properties: + file_data: + type: string + file_id: + type: string + filename: + type: string + required: + - file_data + required: + - type + - file ChatMessageContentItem: oneOf: - $ref: '#/components/schemas/ChatMessageContentItemText' - $ref: '#/components/schemas/ChatMessageContentItemImage' - $ref: '#/components/schemas/ChatMessageContentItemAudio' - $ref: '#/components/schemas/ChatMessageContentItemVideo' + - $ref: '#/components/schemas/ChatMessageContentItemFile' type: object discriminator: propertyName: type @@ -4709,6 +4732,7 @@ components: input_audio: '#/components/schemas/ChatMessageContentItemAudio' input_video: '#/components/schemas/ChatMessageContentItemVideo' video_url: '#/components/schemas/ChatMessageContentItemVideo' + file: '#/components/schemas/ChatMessageContentItemFile' ChatMessageToolCall: type: object properties: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 11d30cc..df1aedb 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,19 +2,20 @@ speakeasyVersion: 1.658.2 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:fc0c90dc8ebb69ef4a571e4e63dcd7f8f33c3254c17ad2583b628fbbf3d1ac05 - sourceBlobDigest: sha256:635d63fd18db468c1dcc23700382af788de76594ba3b8292fae9b14c0e5c22c4 + sourceRevisionDigest: sha256:f1b59b9b643de5e20d6e3299a8274783d8c0854615876f5d7f6f081814842695 + sourceBlobDigest: sha256:ee1f2422281b3ed5b38951c74636ad192c9bb160f216069c1f7931ccc4e52553 tags: - latest + - feat-update-sdk-models-and-spec - 1.0.0 targets: openrouter: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:fc0c90dc8ebb69ef4a571e4e63dcd7f8f33c3254c17ad2583b628fbbf3d1ac05 - sourceBlobDigest: sha256:635d63fd18db468c1dcc23700382af788de76594ba3b8292fae9b14c0e5c22c4 + sourceRevisionDigest: sha256:f1b59b9b643de5e20d6e3299a8274783d8c0854615876f5d7f6f081814842695 + sourceBlobDigest: sha256:ee1f2422281b3ed5b38951c74636ad192c9bb160f216069c1f7931ccc4e52553 codeSamplesNamespace: open-router-chat-completions-api-typescript-code-samples - codeSamplesRevisionDigest: sha256:bc8ca65272c07cd10a6fa41d591e264cc50d05d154c91c00678028f2977ff124 + codeSamplesRevisionDigest: sha256:84b8958b8bfb3e2b25461ca49c1cf10e07bd3821337dec96333acd9a2829c701 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/docs/models/chatmessagecontentitem.md b/docs/models/chatmessagecontentitem.md index da9d3c1..d9fef05 100644 --- a/docs/models/chatmessagecontentitem.md +++ b/docs/models/chatmessagecontentitem.md @@ -57,3 +57,14 @@ const value: models.ChatMessageContentItemVideo = { }; ``` +### `models.ChatMessageContentItemFile` + +```typescript +const value: models.ChatMessageContentItemFile = { + type: "file", + file: { + fileData: "", + }, +}; +``` + diff --git a/docs/models/chatmessagecontentitemfile.md b/docs/models/chatmessagecontentitemfile.md new file mode 100644 index 0000000..e2b0d1f --- /dev/null +++ b/docs/models/chatmessagecontentitemfile.md @@ -0,0 +1,21 @@ +# ChatMessageContentItemFile + +## Example Usage + +```typescript +import { ChatMessageContentItemFile } from "@openrouter/sdk/models"; + +let value: ChatMessageContentItemFile = { + type: "file", + file: { + fileData: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `type` | *string* | :heavy_check_mark: | N/A | +| `file` | [models.FileT](../models/filet.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/chatmessagecontentitemvideoinputvideo.md b/docs/models/chatmessagecontentitemvideoinputvideo.md index 80afbbc..292a44a 100644 --- a/docs/models/chatmessagecontentitemvideoinputvideo.md +++ b/docs/models/chatmessagecontentitemvideoinputvideo.md @@ -15,7 +15,7 @@ let value: ChatMessageContentItemVideoInputVideo = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| `type` | *string* | :heavy_check_mark: | N/A | -| `videoUrl` | [models.VideoUrl1](../models/videourl1.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `type` | *string* | :heavy_check_mark: | N/A | +| `videoUrl` | [models.VideoURL](../models/videourl.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/chatmessagecontentitemvideovideourl.md b/docs/models/chatmessagecontentitemvideovideourl.md index 8c4afb4..c8118e0 100644 --- a/docs/models/chatmessagecontentitemvideovideourl.md +++ b/docs/models/chatmessagecontentitemvideovideourl.md @@ -15,7 +15,7 @@ let value: ChatMessageContentItemVideoVideoURL = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| `type` | *string* | :heavy_check_mark: | N/A | -| `videoUrl` | [models.VideoUrl2](../models/videourl2.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `type` | *string* | :heavy_check_mark: | N/A | +| `videoUrl` | [models.ChatMessageContentItemVideoVideoUrlVideoUrl](../models/chatmessagecontentitemvideovideourlvideourl.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/videourl1.md b/docs/models/chatmessagecontentitemvideovideourlvideourl.md similarity index 56% rename from docs/models/videourl1.md rename to docs/models/chatmessagecontentitemvideovideourlvideourl.md index aa61751..b29a8e5 100644 --- a/docs/models/videourl1.md +++ b/docs/models/chatmessagecontentitemvideovideourlvideourl.md @@ -1,12 +1,12 @@ -# VideoUrl1 +# ChatMessageContentItemVideoVideoUrlVideoUrl ## Example Usage ```typescript -import { VideoUrl1 } from "@openrouter/sdk/models"; +import { ChatMessageContentItemVideoVideoUrlVideoUrl } from "@openrouter/sdk/models"; -let value: VideoUrl1 = { - url: "https://colorless-milestone.net/", +let value: ChatMessageContentItemVideoVideoUrlVideoUrl = { + url: "https://perfumed-testimonial.net/", }; ``` diff --git a/docs/models/filet.md b/docs/models/filet.md new file mode 100644 index 0000000..432f7d3 --- /dev/null +++ b/docs/models/filet.md @@ -0,0 +1,19 @@ +# FileT + +## Example Usage + +```typescript +import { FileT } from "@openrouter/sdk/models"; + +let value: FileT = { + fileData: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `fileData` | *string* | :heavy_check_mark: | N/A | +| `fileId` | *string* | :heavy_minus_sign: | N/A | +| `filename` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/videourl2.md b/docs/models/videourl.md similarity index 70% rename from docs/models/videourl2.md rename to docs/models/videourl.md index 0ec1780..f591deb 100644 --- a/docs/models/videourl2.md +++ b/docs/models/videourl.md @@ -1,12 +1,12 @@ -# VideoUrl2 +# VideoURL ## Example Usage ```typescript -import { VideoUrl2 } from "@openrouter/sdk/models"; +import { VideoURL } from "@openrouter/sdk/models"; -let value: VideoUrl2 = { - url: "https://triangular-soup.info", +let value: VideoURL = { + url: "https://oval-vision.biz/", }; ``` diff --git a/examples/nextjs-example/package-lock.json b/examples/nextjs-example/package-lock.json index f372879..8d4b635 100644 --- a/examples/nextjs-example/package-lock.json +++ b/examples/nextjs-example/package-lock.json @@ -36,7 +36,7 @@ }, "../..": { "name": "@openrouter/sdk", - "version": "0.1.11", + "version": "0.1.17", "license": "Apache-2.0", "dependencies": { "zod": "^3.25.0 || ^4.0.0" diff --git a/jsr.json b/jsr.json index bc61e2d..f789f0f 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@openrouter/sdk", - "version": "0.1.13", + "version": "0.1.17", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index a581051..431b4e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@openrouter/sdk", - "version": "0.1.13", + "version": "0.1.17", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@openrouter/sdk", - "version": "0.1.13", + "version": "0.1.17", "license": "Apache-2.0", "dependencies": { "zod": "^3.25.0 || ^4.0.0" diff --git a/package.json b/package.json index 7c7b4a2..1397993 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/sdk", - "version": "0.1.13", + "version": "0.1.17", "author": "OpenRouter", "description": "The OpenRouter TypeScript SDK is a type-safe toolkit for building AI applications with access to 300+ language models through a unified API.", "keywords": [ diff --git a/src/lib/config.ts b/src/lib/config.ts index f273f90..d3cdfee 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -59,7 +59,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0.0", - sdkVersion: "0.1.13", + sdkVersion: "0.1.17", genVersion: "2.755.9", - userAgent: "speakeasy-sdk/typescript 0.1.13 2.755.9 1.0.0 @openrouter/sdk", + userAgent: "speakeasy-sdk/typescript 0.1.17 2.755.9 1.0.0 @openrouter/sdk", } as const; diff --git a/src/models/chatmessagecontentitem.ts b/src/models/chatmessagecontentitem.ts index fabd198..5cb3bbc 100644 --- a/src/models/chatmessagecontentitem.ts +++ b/src/models/chatmessagecontentitem.ts @@ -11,6 +11,12 @@ import { ChatMessageContentItemAudio$Outbound, ChatMessageContentItemAudio$outboundSchema, } from "./chatmessagecontentitemaudio.js"; +import { + ChatMessageContentItemFile, + ChatMessageContentItemFile$inboundSchema, + ChatMessageContentItemFile$Outbound, + ChatMessageContentItemFile$outboundSchema, +} from "./chatmessagecontentitemfile.js"; import { ChatMessageContentItemImage, ChatMessageContentItemImage$inboundSchema, @@ -35,6 +41,7 @@ export type ChatMessageContentItem = | (ChatMessageContentItemText & { type: "text" }) | (ChatMessageContentItemImage & { type: "image_url" }) | (ChatMessageContentItemAudio & { type: "input_audio" }) + | (ChatMessageContentItemFile & { type: "file" }) | (ChatMessageContentItemVideo & { type: "input_video" }) | (ChatMessageContentItemVideo & { type: "video_url" }); @@ -52,6 +59,9 @@ export const ChatMessageContentItem$inboundSchema: z.ZodType< ChatMessageContentItemAudio$inboundSchema.and( z.object({ type: z.literal("input_audio") }), ), + ChatMessageContentItemFile$inboundSchema.and( + z.object({ type: z.literal("file") }), + ), ChatMessageContentItemVideo$inboundSchema.and( z.object({ type: z.literal("input_video") }), ), @@ -64,6 +74,7 @@ export type ChatMessageContentItem$Outbound = | (ChatMessageContentItemText$Outbound & { type: "text" }) | (ChatMessageContentItemImage$Outbound & { type: "image_url" }) | (ChatMessageContentItemAudio$Outbound & { type: "input_audio" }) + | (ChatMessageContentItemFile$Outbound & { type: "file" }) | (ChatMessageContentItemVideo$Outbound & { type: "input_video" }) | (ChatMessageContentItemVideo$Outbound & { type: "video_url" }); @@ -81,6 +92,9 @@ export const ChatMessageContentItem$outboundSchema: z.ZodType< ChatMessageContentItemAudio$outboundSchema.and( z.object({ type: z.literal("input_audio") }), ), + ChatMessageContentItemFile$outboundSchema.and( + z.object({ type: z.literal("file") }), + ), ChatMessageContentItemVideo$outboundSchema.and( z.object({ type: z.literal("input_video") }), ), diff --git a/src/models/chatmessagecontentitemfile.ts b/src/models/chatmessagecontentitemfile.ts new file mode 100644 index 0000000..3cf1d81 --- /dev/null +++ b/src/models/chatmessagecontentitemfile.ts @@ -0,0 +1,103 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type FileT = { + fileData: string; + fileId?: string | undefined; + filename?: string | undefined; +}; + +export type ChatMessageContentItemFile = { + type: "file"; + file: FileT; +}; + +/** @internal */ +export const FileT$inboundSchema: z.ZodType = z.object({ + file_data: z.string(), + file_id: z.string().optional(), + filename: z.string().optional(), +}).transform((v) => { + return remap$(v, { + "file_data": "fileData", + "file_id": "fileId", + }); +}); +/** @internal */ +export type FileT$Outbound = { + file_data: string; + file_id?: string | undefined; + filename?: string | undefined; +}; + +/** @internal */ +export const FileT$outboundSchema: z.ZodType = z.object({ + fileData: z.string(), + fileId: z.string().optional(), + filename: z.string().optional(), +}).transform((v) => { + return remap$(v, { + fileData: "file_data", + fileId: "file_id", + }); +}); + +export function fileToJSON(fileT: FileT): string { + return JSON.stringify(FileT$outboundSchema.parse(fileT)); +} +export function fileFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FileT$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FileT' from JSON`, + ); +} + +/** @internal */ +export const ChatMessageContentItemFile$inboundSchema: z.ZodType< + ChatMessageContentItemFile, + unknown +> = z.object({ + type: z.literal("file"), + file: z.lazy(() => FileT$inboundSchema), +}); +/** @internal */ +export type ChatMessageContentItemFile$Outbound = { + type: "file"; + file: FileT$Outbound; +}; + +/** @internal */ +export const ChatMessageContentItemFile$outboundSchema: z.ZodType< + ChatMessageContentItemFile$Outbound, + ChatMessageContentItemFile +> = z.object({ + type: z.literal("file"), + file: z.lazy(() => FileT$outboundSchema), +}); + +export function chatMessageContentItemFileToJSON( + chatMessageContentItemFile: ChatMessageContentItemFile, +): string { + return JSON.stringify( + ChatMessageContentItemFile$outboundSchema.parse(chatMessageContentItemFile), + ); +} +export function chatMessageContentItemFileFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ChatMessageContentItemFile$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ChatMessageContentItemFile' from JSON`, + ); +} diff --git a/src/models/chatmessagecontentitemvideo.ts b/src/models/chatmessagecontentitemvideo.ts index d4d3f3f..947bd45 100644 --- a/src/models/chatmessagecontentitemvideo.ts +++ b/src/models/chatmessagecontentitemvideo.ts @@ -7,23 +7,25 @@ import { remap as remap$ } from "../lib/primitives.js"; import { safeParse } from "../lib/schemas.js"; import { Result as SafeParseResult } from "../types/fp.js"; import { SDKValidationError } from "./errors/sdkvalidationerror.js"; - -export type VideoUrl2 = { +import { + VideoURL, + VideoURL$inboundSchema, + VideoURL$Outbound, + VideoURL$outboundSchema, +} from "./videourl.js"; + +export type ChatMessageContentItemVideoVideoUrlVideoUrl = { url: string; }; export type ChatMessageContentItemVideoVideoURL = { type: "video_url"; - videoUrl: VideoUrl2; -}; - -export type VideoUrl1 = { - url: string; + videoUrl: ChatMessageContentItemVideoVideoUrlVideoUrl; }; export type ChatMessageContentItemVideoInputVideo = { type: "input_video"; - videoUrl: VideoUrl1; + videoUrl: VideoURL; }; export type ChatMessageContentItemVideo = @@ -31,32 +33,47 @@ export type ChatMessageContentItemVideo = | ChatMessageContentItemVideoVideoURL; /** @internal */ -export const VideoUrl2$inboundSchema: z.ZodType = z.object({ - url: z.string(), -}); +export const ChatMessageContentItemVideoVideoUrlVideoUrl$inboundSchema: + z.ZodType = z.object({ + url: z.string(), + }); /** @internal */ -export type VideoUrl2$Outbound = { +export type ChatMessageContentItemVideoVideoUrlVideoUrl$Outbound = { url: string; }; /** @internal */ -export const VideoUrl2$outboundSchema: z.ZodType< - VideoUrl2$Outbound, - VideoUrl2 -> = z.object({ - url: z.string(), -}); +export const ChatMessageContentItemVideoVideoUrlVideoUrl$outboundSchema: + z.ZodType< + ChatMessageContentItemVideoVideoUrlVideoUrl$Outbound, + ChatMessageContentItemVideoVideoUrlVideoUrl + > = z.object({ + url: z.string(), + }); -export function videoUrl2ToJSON(videoUrl2: VideoUrl2): string { - return JSON.stringify(VideoUrl2$outboundSchema.parse(videoUrl2)); +export function chatMessageContentItemVideoVideoUrlVideoUrlToJSON( + chatMessageContentItemVideoVideoUrlVideoUrl: + ChatMessageContentItemVideoVideoUrlVideoUrl, +): string { + return JSON.stringify( + ChatMessageContentItemVideoVideoUrlVideoUrl$outboundSchema.parse( + chatMessageContentItemVideoVideoUrlVideoUrl, + ), + ); } -export function videoUrl2FromJSON( +export function chatMessageContentItemVideoVideoUrlVideoUrlFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + ChatMessageContentItemVideoVideoUrlVideoUrl, + SDKValidationError +> { return safeParse( jsonString, - (x) => VideoUrl2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'VideoUrl2' from JSON`, + (x) => + ChatMessageContentItemVideoVideoUrlVideoUrl$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ChatMessageContentItemVideoVideoUrlVideoUrl' from JSON`, ); } @@ -66,7 +83,9 @@ export const ChatMessageContentItemVideoVideoURL$inboundSchema: z.ZodType< unknown > = z.object({ type: z.literal("video_url"), - video_url: z.lazy(() => VideoUrl2$inboundSchema), + video_url: z.lazy(() => + ChatMessageContentItemVideoVideoUrlVideoUrl$inboundSchema + ), }).transform((v) => { return remap$(v, { "video_url": "videoUrl", @@ -75,7 +94,7 @@ export const ChatMessageContentItemVideoVideoURL$inboundSchema: z.ZodType< /** @internal */ export type ChatMessageContentItemVideoVideoURL$Outbound = { type: "video_url"; - video_url: VideoUrl2$Outbound; + video_url: ChatMessageContentItemVideoVideoUrlVideoUrl$Outbound; }; /** @internal */ @@ -84,7 +103,9 @@ export const ChatMessageContentItemVideoVideoURL$outboundSchema: z.ZodType< ChatMessageContentItemVideoVideoURL > = z.object({ type: z.literal("video_url"), - videoUrl: z.lazy(() => VideoUrl2$outboundSchema), + videoUrl: z.lazy(() => + ChatMessageContentItemVideoVideoUrlVideoUrl$outboundSchema + ), }).transform((v) => { return remap$(v, { videoUrl: "video_url", @@ -111,43 +132,13 @@ export function chatMessageContentItemVideoVideoURLFromJSON( ); } -/** @internal */ -export const VideoUrl1$inboundSchema: z.ZodType = z.object({ - url: z.string(), -}); -/** @internal */ -export type VideoUrl1$Outbound = { - url: string; -}; - -/** @internal */ -export const VideoUrl1$outboundSchema: z.ZodType< - VideoUrl1$Outbound, - VideoUrl1 -> = z.object({ - url: z.string(), -}); - -export function videoUrl1ToJSON(videoUrl1: VideoUrl1): string { - return JSON.stringify(VideoUrl1$outboundSchema.parse(videoUrl1)); -} -export function videoUrl1FromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => VideoUrl1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'VideoUrl1' from JSON`, - ); -} - /** @internal */ export const ChatMessageContentItemVideoInputVideo$inboundSchema: z.ZodType< ChatMessageContentItemVideoInputVideo, unknown > = z.object({ type: z.literal("input_video"), - video_url: z.lazy(() => VideoUrl1$inboundSchema), + video_url: VideoURL$inboundSchema, }).transform((v) => { return remap$(v, { "video_url": "videoUrl", @@ -156,7 +147,7 @@ export const ChatMessageContentItemVideoInputVideo$inboundSchema: z.ZodType< /** @internal */ export type ChatMessageContentItemVideoInputVideo$Outbound = { type: "input_video"; - video_url: VideoUrl1$Outbound; + video_url: VideoURL$Outbound; }; /** @internal */ @@ -165,7 +156,7 @@ export const ChatMessageContentItemVideoInputVideo$outboundSchema: z.ZodType< ChatMessageContentItemVideoInputVideo > = z.object({ type: z.literal("input_video"), - videoUrl: z.lazy(() => VideoUrl1$outboundSchema), + videoUrl: VideoURL$outboundSchema, }).transform((v) => { return remap$(v, { videoUrl: "video_url", diff --git a/src/models/index.ts b/src/models/index.ts index f926df3..6f4712e 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -11,6 +11,7 @@ export * from "./chatgenerationparams.js"; export * from "./chatgenerationtokenusage.js"; export * from "./chatmessagecontentitem.js"; export * from "./chatmessagecontentitemaudio.js"; +export * from "./chatmessagecontentitemfile.js"; export * from "./chatmessagecontentitemimage.js"; export * from "./chatmessagecontentitemtext.js"; export * from "./chatmessagecontentitemvideo.js"; @@ -141,5 +142,6 @@ export * from "./unauthorizedresponseerrordata.js"; export * from "./unprocessableentityresponseerrordata.js"; export * from "./urlcitation.js"; export * from "./usermessage.js"; +export * from "./videourl.js"; export * from "./websearchpreviewtooluserlocation.js"; export * from "./websearchstatus.js"; diff --git a/src/models/videourl.ts b/src/models/videourl.ts new file mode 100644 index 0000000..459a102 --- /dev/null +++ b/src/models/videourl.ts @@ -0,0 +1,40 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type VideoURL = { + url: string; +}; + +/** @internal */ +export const VideoURL$inboundSchema: z.ZodType = z.object({ + url: z.string(), +}); +/** @internal */ +export type VideoURL$Outbound = { + url: string; +}; + +/** @internal */ +export const VideoURL$outboundSchema: z.ZodType = z + .object({ + url: z.string(), + }); + +export function videoURLToJSON(videoURL: VideoURL): string { + return JSON.stringify(VideoURL$outboundSchema.parse(videoURL)); +} +export function videoURLFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => VideoURL$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'VideoURL' from JSON`, + ); +}