diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 1bf017d3..ab2356e0 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,18 +1,18 @@ lockVersion: 2.0.0 id: 9eea3e30-2722-4060-973b-57b7f1f75dc0 management: - docChecksum: 8f251860df01987599441eb8f5a93429 + docChecksum: f1c392b11e8e42e64a43b729f17f370a docVersion: 1.0.0 speakeasyVersion: 1.787.0 generationVersion: 2.914.0 - releaseVersion: 0.8.25 - configChecksum: 42996ce4e6a833d9a4308e40e411f92c + releaseVersion: 0.8.26 + configChecksum: a9952b90dcd56e5ec1a9d114903f4e85 repoURL: https://github.com/OpenRouterTeam/go-sdk.git installationURL: https://github.com/OpenRouterTeam/go-sdk persistentEdits: - generation_id: 1361eaf8-4980-4e80-b977-282c37ddb99d - pristine_commit_hash: 2040445c417d8d93f98e3c42292b3fafe6d76202 - pristine_tree_hash: 9b67daa6f9e6eb434a10ae5fc69517cf1a33de89 + generation_id: d27a70d4-61db-49fb-ba39-87634ffa07d8 + pristine_commit_hash: 9e75679540593d6f040c51aac0dba1ea2bd49aba + pristine_tree_hash: a604e644804e8b24d5f277bfbb61134a30ad9b22 features: go: acceptHeaders: 2.81.2 @@ -904,8 +904,8 @@ trackedFiles: pristine_git_object: a29b6331af6e4214dd9c214ba9d841890b063c6a docs/models/components/byokproviderslug.mdx: id: bf78d7c64c23 - last_write_checksum: sha1:a040ba175562a6588168d9f602776dd532f7ca94 - pristine_git_object: 71043408271d116d4da357f937da745d53153557 + last_write_checksum: sha1:7d97929bc8997cdbe19afedabe4b634b9eba4cdd + pristine_git_object: 56edfc4cfd7c9431dabcc00d5742c88dd6cd4c32 docs/models/components/capabilitydescriptor.mdx: id: 4d699c4b70ec last_write_checksum: sha1:6c58e8df800ebcefe9a8e6311270492126066b2e @@ -2616,8 +2616,8 @@ trackedFiles: pristine_git_object: e3e7bb4f750c78b4fcff1fcdd286d042510139e0 docs/models/components/imagegenerationproviderpreferencesoptions.mdx: id: cc5647cf9fa1 - last_write_checksum: sha1:56889d06292184ec7712383334d0c2478e8f308a - pristine_git_object: 320177ad6a0a87d3a3baf3df65607171051cbf2c + last_write_checksum: sha1:c715e56e842a179fa9900889883813ce97ff136c + pristine_git_object: 6cf2cba04a5d374704fc61a48cdb6ef0311fe4b0 docs/models/components/imagegenerationproviderpreferencesorder.mdx: id: d009ab061dcc last_write_checksum: sha1:2207451363c0e06c008e1a081b90ba57ac3110f5 @@ -4912,12 +4912,12 @@ trackedFiles: pristine_git_object: ff5614983c537cdf7c2fb4cb789aca2afc85b72d docs/models/components/providername.mdx: id: 8e0a10860f62 - last_write_checksum: sha1:7d7239589076fdfa596b17e0467043ab546e3def - pristine_git_object: ec24fa271836ed142e12cfa904aee3e5214c0bba + last_write_checksum: sha1:d2a742d103ef4a7ff57ed6f229036d6e5f4f343c + pristine_git_object: 7d4f1d838722385dabcc2ef45c89b01238007aa3 docs/models/components/provideroptions.mdx: id: 9b36b036b5e5 - last_write_checksum: sha1:04c32e28e4db73a16cd2332e87d6fd47ca53f87a - pristine_git_object: 90140f3d33ca99a2141c2c06ba8169d8fd100047 + last_write_checksum: sha1:228e28f1a35673c2a2b57c3645f27b8c2fe15895 + pristine_git_object: c4e8571dad693a7823344b59b5526b0e6d03e914 docs/models/components/provideroverloadedresponseerrordata.mdx: id: 0458c5c0d5bd last_write_checksum: sha1:51f6ecc2ab40c2f7a3b9a1c620bfae501266d34c @@ -4948,8 +4948,8 @@ trackedFiles: pristine_git_object: 3b9019d03ff201f4a4e32a0fccfab9c486d0f4f5 docs/models/components/providerresponseprovidername.mdx: id: d0e6dc9b89c5 - last_write_checksum: sha1:034d9dd1cd5ffabe95b89ae5ef864d5db3b7898d - pristine_git_object: 825bfdff5b81431ee70d8f77c2d6c8dbbaee7a3c + last_write_checksum: sha1:ea84d7fbbe7ee13a81b8bf1568130b2405f39682 + pristine_git_object: 9ce406783bc888db839b7651a41bd79164628485 docs/models/components/providersort.mdx: id: 9132f978d860 last_write_checksum: sha1:c5fea09a49178f7081b6431ba4faa128ecad4d04 @@ -6308,8 +6308,8 @@ trackedFiles: pristine_git_object: cf36741177eb7322bd20fba9510772b46a3b1cbe docs/models/components/videogenerationrequestoptions.mdx: id: 02bb0d2acb68 - last_write_checksum: sha1:a11ce510738db7935efba16e8d1673b4e9a57c6b - pristine_git_object: b71e77efde77be92b6fd9c2d281e63b6d55a26c5 + last_write_checksum: sha1:a8529e497f57f34d2e2ee795479b093f7cb9a204 + pristine_git_object: 8cb8e80155d67107f504392ef3926c32deb89ba7 docs/models/components/videogenerationrequestprovider.mdx: id: ad830be2196e last_write_checksum: sha1:8173973a5e1f28f257b49418ccf0ffbaf566c8dd @@ -7280,8 +7280,8 @@ trackedFiles: pristine_git_object: 2e4644f4bc69974d7bdde1b8d8885a278d2d6e66 docs/models/operations/provider.mdx: id: 45f471a16baa - last_write_checksum: sha1:6914c3e5bb789590354f81e6af69b70cbcc67b08 - pristine_git_object: 9bc4686a1b541babdf4932368c48194c03139eea + last_write_checksum: sha1:18644990435588270814a44d624a16c9302c92bf + pristine_git_object: 2facc949b3654493d49a585b1f71319ef99e409b docs/models/operations/provisioninternrequest.mdx: id: 8d55ad201304 last_write_checksum: sha1:97972d2b8b7f8472cc46e710d47cdbecedb8135f @@ -8164,8 +8164,8 @@ trackedFiles: pristine_git_object: 7e5fd0bb6211b831eb8874dce530c9c01ebb79c9 models/components/byokproviderslug.go: id: 13d55e8b344b - last_write_checksum: sha1:bf48a434e5cb7f1c086a4057d48e6372c548ee1d - pristine_git_object: 085008819060f3050c82feea53f31f3ff8a846aa + last_write_checksum: sha1:9ead281dc7e7906ee292b8517da1429a738491b4 + pristine_git_object: f4321e83d4a49425010fc0cd30c4307658869fff models/components/capabilitydescriptor.go: id: 61addd6d2068 last_write_checksum: sha1:2c89a741740517ea931188941fa2160212d4e75e @@ -8936,8 +8936,8 @@ trackedFiles: pristine_git_object: 777f7215d847acdc6f9b288970c1bc9339417cab models/components/imagegenerationproviderpreferences.go: id: 1e510281b908 - last_write_checksum: sha1:3d76284035dc5d917c78fc65f9e2646649508cc7 - pristine_git_object: eaa368fd63f1168e9d7d361c5e3c362da997d37b + last_write_checksum: sha1:a71428797d47ab77e2c2437ebfdf729959501740 + pristine_git_object: d32db00fac32a531a438d6a467b94558acbd6d7f models/components/imagegenerationrequest.go: id: 2a1c3242c506 last_write_checksum: sha1:818ca6a56052a1de43a98e9d945f2701e059daf5 @@ -9844,12 +9844,12 @@ trackedFiles: pristine_git_object: c50b74b336dc92f3e72e52d5e3954ae9554aeee1 models/components/providername.go: id: 7ecf3a6869c5 - last_write_checksum: sha1:148a262fc649eb0c305258bc6881d9c84ec9aa37 - pristine_git_object: 7ac8ad5ea601f7fe691a8a5e2cce03b44b751b14 + last_write_checksum: sha1:107446b67d4d2125abe356a373169ba868042edb + pristine_git_object: 02e02a52fcfa9b4cf566178d3eaae888b8f6437f models/components/provideroptions.go: id: 83f8e5feb563 - last_write_checksum: sha1:9c1ce6db0febc51a4e2e70cd410db629861ff0d0 - pristine_git_object: 4b36162defb6aa7804d05bc3ed7437a5326de61b + last_write_checksum: sha1:6bab69117a4106e7ec2a6b31ea561936d7aa2137 + pristine_git_object: 5018a4e51a06b70394da54afe431470d3fb6c3b4 models/components/provideroverloadedresponseerrordata.go: id: 4e228708c428 last_write_checksum: sha1:4ecd1f1efbdf106340872d720ebb8bb9891be205 @@ -9860,8 +9860,8 @@ trackedFiles: pristine_git_object: e14ad2f60a813fe6b88b358a37f76ea8b2f19ac9 models/components/providerresponse.go: id: d7f4a6aea47d - last_write_checksum: sha1:ff068885cb7af3e11a4ea928f832b7ed6bdc8f02 - pristine_git_object: 97f80e5fdec44b73b5c5c3e14d87518cb9631be8 + last_write_checksum: sha1:6b7f7d4fdcb4767ca027435daf2941d55f3cef41 + pristine_git_object: 92386f284f845829d12bcd56c49a04e366618380 models/components/providersort.go: id: c183c158e614 last_write_checksum: sha1:d56d1125483e113e3f1c1cb7dc566ef0837b485e @@ -10448,8 +10448,8 @@ trackedFiles: pristine_git_object: f601fa1f8cbbb734585f6c31228430328933914a models/components/videogenerationrequest.go: id: 11162ee57e53 - last_write_checksum: sha1:3a97760ba83d13d6ca26b520d97a8c45a7f02f16 - pristine_git_object: d6af77bff07dc6bc91fc71db27f41b4c3469ee64 + last_write_checksum: sha1:90284c1a13bd9fe9af6483cc7b5b80652c5f6124 + pristine_git_object: e4e738c20d1b3caa9f86510facc764e00c11102d models/components/videogenerationresponse.go: id: 5841b7ef3de9 last_write_checksum: sha1:67f31a1bb28c751b25e5980df877af172a1f2b03 @@ -10824,8 +10824,8 @@ trackedFiles: pristine_git_object: 515ba7a1a7a7a59c0378255d8280b49f2a51fdc5 models/operations/listbyokkeys.go: id: e40d557d5875 - last_write_checksum: sha1:a225c94f751d9f63e6b0ccf4adb2d6d522450298 - pristine_git_object: ebd2a423920e270fdfc7ac17ecb4e57a5de623f8 + last_write_checksum: sha1:7343d2aa1505cdf7d48236ee91c62327bf9771ad + pristine_git_object: 0ca8a074e02d799b0060fce7b223c7c7eac8165b models/operations/listcontainerfiles.go: id: a5d7da5fd18e last_write_checksum: sha1:e80272ac062e53f6aa176da6ebe7928a12d54a6f @@ -11100,8 +11100,8 @@ trackedFiles: pristine_git_object: 5e3a2cdf8cb4ed4f5378b712293cba9c82074f16 openrouter.go: id: 207ad004b774 - last_write_checksum: sha1:0c6d8713ebefa1bdbb90a3aec0e519bf68dcdfc8 - pristine_git_object: ee53bafedf55662f198d4f7ce328d6f4a3d7b33f + last_write_checksum: sha1:71c6b91448599257ff743a16c35c972c0af04fcb + pristine_git_object: 358bf27cbc622e3ff89bb538c6e89b23bdd819fd optionalnullable/optionalnullable.go: id: ce60f259ead3 last_write_checksum: sha1:d6aff1a420c31e025ea21d46cf056e305ae76fe8 @@ -14429,6 +14429,4 @@ examples: "500": application/json: {"error": {"code": 404, "message": "Intern not found"}} examplesVersion: 1.0.2 -releaseNotes: | - ## Go SDK Changes: - * `OpenRouter.Scim.ListGroups()`: `request` **Changed** +releaseNotes: "## Go SDK Changes:\n* `OpenRouter.Alpha.Decisions.Create()`: \n * `request.Request.Provider` **Changed**\n* `OpenRouter.Tts.CreateSpeech()`: \n * `request.Request.Provider.Options.Scaledown` **Added**\n* `OpenRouter.Stt.CreateTranscription()`: \n * `request.Request.Provider.Options.Scaledown` **Added**\n* `OpenRouter.Byok.List()`: \n * `request.Provider` **Changed**\n * `response.Data[].Provider.Enum(scaledown)` **Added**\n* `OpenRouter.Byok.Create()`: \n * `request.Request.Provider.Enum(scaledown)` **Added**\n * `response.Data.Provider.Enum(scaledown)` **Added**\n* `OpenRouter.Byok.Get()`: `response.Data.Provider.Enum(scaledown)` **Added**\n* `OpenRouter.Byok.Update()`: `response.Data.Provider.Enum(scaledown)` **Added**\n* `OpenRouter.Chat.Send()`: \n * `request.ChatRequest.Provider` **Changed**\n* `OpenRouter.Embeddings.Generate()`: \n * `request.Request.Provider` **Changed**\n* `OpenRouter.Endpoints.ListZdrEndpoints()`: `response.Data[].ProviderName.Enum(scaleDown)` **Added**\n* `OpenRouter.Endpoints.List()`: `response.Data.Endpoints[].ProviderName.Enum(scaleDown)` **Added**\n* `OpenRouter.Generations.GetGeneration()`: `response.Data.ProviderResponses[].ProviderName.Enum(scaleDown)` **Added**\n* `OpenRouter.Images.Generate()`: \n * `request.Request.Provider` **Changed**\n* `OpenRouter.Presets.CreatePresetsChatCompletions()`: \n * `request.ChatRequest.Provider` **Changed**\n* `OpenRouter.Presets.CreatePresetsMessages()`: \n * `request.MessagesRequest.Provider` **Changed**\n* `OpenRouter.Presets.CreatePresetsResponses()`: \n * `request.ResponsesRequest.Provider` **Changed**\n* `OpenRouter.Rerank.Rerank()`: \n * `request.Request.Provider` **Changed**\n* `OpenRouter.Responses.Send()`: \n * `request.ResponsesRequest.Provider` **Changed**\n* `OpenRouter.Beta.Responses.Send()`: \n * `request.ResponsesRequest.Provider` **Changed**\n* `OpenRouter.SystemOne.Create()`: \n * `request.Request.Provider` **Changed**\n* `OpenRouter.VideoGeneration.Generate()`: \n * `request.Request.Provider.Options.Scaledown` **Added**\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index cf393182..04eccf75 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -36,7 +36,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true go: - version: 0.8.25 + version: 0.8.26 additionalDependencies: {} baseErrorName: OpenRouterError clientServerStatusCodesAsErrors: true diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 2df19c64..b79dce89 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -4810,6 +4810,7 @@ components: - 'sakana' - 'sakana-ai' - 'sambanova' + - 'scaledown' - 'seed' - 'siliconflow' - 'sourceful' @@ -15800,6 +15801,7 @@ components: - 'Sail Research' - 'Sakana AI' - 'SambaNova' + - 'ScaleDown' - 'Seed' - 'SiliconFlow' - 'Sourceful' @@ -23051,6 +23053,7 @@ components: - 'Sail Research' - 'Sakana AI' - 'SambaNova' + - 'ScaleDown' - 'Seed' - 'SiliconFlow' - 'Sourceful' @@ -23434,6 +23437,9 @@ components: sambanova-cloaked: additionalProperties: {} type: 'object' + scaledown: + additionalProperties: {} + type: 'object' seed: additionalProperties: {} type: 'object' @@ -23821,6 +23827,7 @@ components: - 'Sail Research' - 'Sakana AI' - 'SambaNova' + - 'ScaleDown' - 'Seed' - 'SiliconFlow' - 'Sourceful' @@ -31816,6 +31823,7 @@ paths: - 'sakana' - 'sakana-ai' - 'sambanova' + - 'scaledown' - 'seed' - 'siliconflow' - 'sourceful' diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 2b3094fd..c0be10c2 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:d30bdae32404cf22bc8b66c471a7501242ea3d82f1d07144896a7ffadcd36a0e - sourceBlobDigest: sha256:fed4aea0b2a4fd5d0e383a627d8c6f34ee97763d3eee8b8ca236b0e07facfecc + sourceRevisionDigest: sha256:d0999e8939d94971d792750a3f8ee1c688c40905a51b94c3c1b9bbc8951a2a98 + sourceBlobDigest: sha256:904a5eccabef2f8d817f81fb614cf5cefd0f6d2ed19b467608154e72fc0b4084 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: openrouter: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:d30bdae32404cf22bc8b66c471a7501242ea3d82f1d07144896a7ffadcd36a0e - sourceBlobDigest: sha256:fed4aea0b2a4fd5d0e383a627d8c6f34ee97763d3eee8b8ca236b0e07facfecc + sourceRevisionDigest: sha256:d0999e8939d94971d792750a3f8ee1c688c40905a51b94c3c1b9bbc8951a2a98 + sourceBlobDigest: sha256:904a5eccabef2f8d817f81fb614cf5cefd0f6d2ed19b467608154e72fc0b4084 codeSamplesNamespace: open-router-chat-completions-api-go-code-samples - codeSamplesRevisionDigest: sha256:ab7dff7c2c3e6bf6b25457199f5b351750db42e889d3f788ee8e79af7271519f + codeSamplesRevisionDigest: sha256:c21c5832deee7ebd8d0b5d388ab2066936c4c1315a206c1a44684280025380d2 workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.787.0 diff --git a/OVERVIEW.md b/OVERVIEW.md index 7be523e1..a7fa47a2 100644 --- a/OVERVIEW.md +++ b/OVERVIEW.md @@ -117,7 +117,7 @@ go get github.com/OpenRouterTeam/go-sdk For beta releases, pin an explicit version: ```bash -go get github.com/OpenRouterTeam/go-sdk@v0.8.25 +go get github.com/OpenRouterTeam/go-sdk@v0.8.26 ``` **Requirements:** Go 1.25 or higher diff --git a/README.md b/README.md index 8de2bb08..b3381fce 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ To learn more, see the [API Reference](https://openrouter.ai/docs/sdks/go/api-re > This SDK is in **beta**. Pin to a specific version to avoid unexpected breaking changes: > > ```bash -> go get github.com/OpenRouterTeam/go-sdk@v0.8.25 +> go get github.com/OpenRouterTeam/go-sdk@v0.8.26 > ``` diff --git a/RELEASES.md b/RELEASES.md index 7978241d..5c2c53b6 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -2408,4 +2408,14 @@ Based on: ### Generated - [go v0.8.25] . ### Releases -- [Go v0.8.25] https://github.com/OpenRouterTeam/go-sdk/releases/tag/v0.8.25 - . \ No newline at end of file +- [Go v0.8.25] https://github.com/OpenRouterTeam/go-sdk/releases/tag/v0.8.25 - . + +## 2026-09-24 22:15:56 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [go v0.8.26] . +### Releases +- [Go v0.8.26] https://github.com/OpenRouterTeam/go-sdk/releases/tag/v0.8.26 - . \ No newline at end of file diff --git a/doc.go b/doc.go index eb0eed13..4d770b12 100644 --- a/doc.go +++ b/doc.go @@ -6,7 +6,7 @@ provider selection, and unified billing. This SDK is in beta. Pin to a specific module version to avoid unexpected breaking changes: - go get github.com/OpenRouterTeam/go-sdk@v0.8.25 + go get github.com/OpenRouterTeam/go-sdk@v0.8.26 For full API documentation, visit: https://openrouter.ai/docs/client-sdks/go/overview diff --git a/docs/models/components/byokproviderslug.mdx b/docs/models/components/byokproviderslug.mdx index 71043408..56edfc4c 100644 --- a/docs/models/components/byokproviderslug.mdx +++ b/docs/models/components/byokproviderslug.mdx @@ -113,6 +113,7 @@ custom := components.BYOKProviderSlug("custom_value") | `BYOKProviderSlugSakana` | sakana | | `BYOKProviderSlugSakanaAi` | sakana-ai | | `BYOKProviderSlugSambanova` | sambanova | +| `BYOKProviderSlugScaledown` | scaledown | | `BYOKProviderSlugSeed` | seed | | `BYOKProviderSlugSiliconflow` | siliconflow | | `BYOKProviderSlugSourceful` | sourceful | diff --git a/docs/models/components/imagegenerationproviderpreferencesoptions.mdx b/docs/models/components/imagegenerationproviderpreferencesoptions.mdx index 320177ad..6cf2cba0 100644 --- a/docs/models/components/imagegenerationproviderpreferencesoptions.mdx +++ b/docs/models/components/imagegenerationproviderpreferencesoptions.mdx @@ -126,6 +126,7 @@ Provider-specific options keyed by provider slug. Only options for the matched p | `SakanaAi` | map[string]`any` | :heavy_minus_sign: | N/A | | `Sambanova` | map[string]`any` | :heavy_minus_sign: | N/A | | `SambanovaCloaked` | map[string]`any` | :heavy_minus_sign: | N/A | +| `Scaledown` | map[string]`any` | :heavy_minus_sign: | N/A | | `Seed` | map[string]`any` | :heavy_minus_sign: | N/A | | `SfCompute` | map[string]`any` | :heavy_minus_sign: | N/A | | `Siliconflow` | map[string]`any` | :heavy_minus_sign: | N/A | diff --git a/docs/models/components/providername.mdx b/docs/models/components/providername.mdx index ec24fa27..7d4f1d83 100644 --- a/docs/models/components/providername.mdx +++ b/docs/models/components/providername.mdx @@ -108,6 +108,7 @@ custom := components.ProviderName("custom_value") | `ProviderNameSailResearch` | Sail Research | | `ProviderNameSakanaAi` | Sakana AI | | `ProviderNameSambaNova` | SambaNova | +| `ProviderNameScaleDown` | ScaleDown | | `ProviderNameSeed` | Seed | | `ProviderNameSiliconFlow` | SiliconFlow | | `ProviderNameSourceful` | Sourceful | diff --git a/docs/models/components/provideroptions.mdx b/docs/models/components/provideroptions.mdx index 90140f3d..c4e8571d 100644 --- a/docs/models/components/provideroptions.mdx +++ b/docs/models/components/provideroptions.mdx @@ -126,6 +126,7 @@ Provider-specific options keyed by provider slug. Only options for the matched p | `SakanaAi` | map[string]`any` | :heavy_minus_sign: | N/A | | `Sambanova` | map[string]`any` | :heavy_minus_sign: | N/A | | `SambanovaCloaked` | map[string]`any` | :heavy_minus_sign: | N/A | +| `Scaledown` | map[string]`any` | :heavy_minus_sign: | N/A | | `Seed` | map[string]`any` | :heavy_minus_sign: | N/A | | `SfCompute` | map[string]`any` | :heavy_minus_sign: | N/A | | `Siliconflow` | map[string]`any` | :heavy_minus_sign: | N/A | diff --git a/docs/models/components/providerresponseprovidername.mdx b/docs/models/components/providerresponseprovidername.mdx index 825bfdff..9ce40678 100644 --- a/docs/models/components/providerresponseprovidername.mdx +++ b/docs/models/components/providerresponseprovidername.mdx @@ -138,6 +138,7 @@ custom := components.ProviderResponseProviderName("custom_value") | `ProviderResponseProviderNameSailResearch` | Sail Research | | `ProviderResponseProviderNameSakanaAi` | Sakana AI | | `ProviderResponseProviderNameSambaNova` | SambaNova | +| `ProviderResponseProviderNameScaleDown` | ScaleDown | | `ProviderResponseProviderNameSeed` | Seed | | `ProviderResponseProviderNameSiliconFlow` | SiliconFlow | | `ProviderResponseProviderNameSourceful` | Sourceful | diff --git a/docs/models/components/videogenerationrequestoptions.mdx b/docs/models/components/videogenerationrequestoptions.mdx index b71e77ef..8cb8e801 100644 --- a/docs/models/components/videogenerationrequestoptions.mdx +++ b/docs/models/components/videogenerationrequestoptions.mdx @@ -126,6 +126,7 @@ Provider-specific options keyed by provider slug. Only options for the matched p | `SakanaAi` | map[string]`any` | :heavy_minus_sign: | N/A | | `Sambanova` | map[string]`any` | :heavy_minus_sign: | N/A | | `SambanovaCloaked` | map[string]`any` | :heavy_minus_sign: | N/A | +| `Scaledown` | map[string]`any` | :heavy_minus_sign: | N/A | | `Seed` | map[string]`any` | :heavy_minus_sign: | N/A | | `SfCompute` | map[string]`any` | :heavy_minus_sign: | N/A | | `Siliconflow` | map[string]`any` | :heavy_minus_sign: | N/A | diff --git a/docs/models/operations/provider.mdx b/docs/models/operations/provider.mdx index 9bc4686a..2facc949 100644 --- a/docs/models/operations/provider.mdx +++ b/docs/models/operations/provider.mdx @@ -113,6 +113,7 @@ custom := operations.Provider("custom_value") | `ProviderSakana` | sakana | | `ProviderSakanaAi` | sakana-ai | | `ProviderSambanova` | sambanova | +| `ProviderScaledown` | scaledown | | `ProviderSeed` | seed | | `ProviderSiliconflow` | siliconflow | | `ProviderSourceful` | sourceful | diff --git a/example_test.go b/example_test.go index ba40d3c2..825337ea 100644 --- a/example_test.go +++ b/example_test.go @@ -18,7 +18,7 @@ func ExampleNew() { openrouter.WithSecurity("your-api-key"), ) fmt.Println(sdk.SDKVersion) - // Output: 0.8.25 + // Output: 0.8.26 } // Example demonstrates basic usage of the OpenRouter SDK for chat completions. diff --git a/examples/README.md b/examples/README.md index 1d6e96e8..040ae9b4 100644 --- a/examples/README.md +++ b/examples/README.md @@ -43,7 +43,7 @@ cd ../generation && go run . Each example pins a released SDK version in `go.mod`: ```go -require github.com/OpenRouterTeam/go-sdk v0.8.25 +require github.com/OpenRouterTeam/go-sdk v0.8.26 ``` This should match the version in [README.md](../README.md) and `.speakeasy/gen.lock` `releaseVersion`. CI runs `scripts/bump-examples.sh` after releases to keep these in sync. @@ -51,7 +51,7 @@ This should match the version in [README.md](../README.md) and `.speakeasy/gen.l To use a different version: ```bash -go get github.com/OpenRouterTeam/go-sdk@v0.8.25 +go get github.com/OpenRouterTeam/go-sdk@v0.8.26 go run . ``` diff --git a/models/components/byokproviderslug.go b/models/components/byokproviderslug.go index 08500881..f4321e83 100644 --- a/models/components/byokproviderslug.go +++ b/models/components/byokproviderslug.go @@ -97,6 +97,7 @@ const ( BYOKProviderSlugSakana BYOKProviderSlug = "sakana" BYOKProviderSlugSakanaAi BYOKProviderSlug = "sakana-ai" BYOKProviderSlugSambanova BYOKProviderSlug = "sambanova" + BYOKProviderSlugScaledown BYOKProviderSlug = "scaledown" BYOKProviderSlugSeed BYOKProviderSlug = "seed" BYOKProviderSlugSiliconflow BYOKProviderSlug = "siliconflow" BYOKProviderSlugSourceful BYOKProviderSlug = "sourceful" @@ -128,7 +129,7 @@ func (e BYOKProviderSlug) ToPointer() *BYOKProviderSlug { func (e *BYOKProviderSlug) IsExact() bool { if e != nil { switch *e { - case "ai21", "aion-labs", "akashml", "alibaba", "amazon-bedrock", "amazon-bedrock/claude-on-aws", "amazon-nova", "ambient", "anthropic", "anthropic/2", "arcee-ai", "assemblyai", "atlas-cloud", "avian", "azure", "baidu", "baseten", "black-forest-labs", "byteplus", "cerebras", "chutes", "cirrascale", "clarifai", "claude-on-aws", "cloudflare", "cohere", "coreweave", "cosine", "crusoe", "darkbloom", "databricks", "decart", "deepgram", "deepinfra", "deepseek", "dekallm", "digitalocean", "featherless", "fireworks", "fish-audio", "friendli", "gmicloud", "google-ai-studio", "google-vertex", "groq", "heygen", "inception", "inceptron", "inferact-vllm", "inference-net", "infermatic", "inflection", "io-net", "ionstream", "krea", "liquid", "makora", "mancer", "mara", "meta", "minimax", "mistral", "modal", "modelrun", "modular", "moonshotai", "morph", "near-ai", "nebius", "nex-agi", "nextbit", "novita", "nvidia", "ollama", "open-inference", "openai", "parasail", "perceptron", "perplexity", "phala", "poolside", "primeintellect", "quiver", "recraft", "reka", "relace", "runway", "sail-research", "sakana", "sakana-ai", "sambanova", "seed", "siliconflow", "sourceful", "stepfun", "streamlake", "switchpoint", "tencent", "tenstorrent", "thinkingmachines", "together", "typesafe", "unbiased", "upstage", "venice", "voyageai", "wafer", "wandb", "wandb-legacy", "xai", "xiaomi", "z-ai": + case "ai21", "aion-labs", "akashml", "alibaba", "amazon-bedrock", "amazon-bedrock/claude-on-aws", "amazon-nova", "ambient", "anthropic", "anthropic/2", "arcee-ai", "assemblyai", "atlas-cloud", "avian", "azure", "baidu", "baseten", "black-forest-labs", "byteplus", "cerebras", "chutes", "cirrascale", "clarifai", "claude-on-aws", "cloudflare", "cohere", "coreweave", "cosine", "crusoe", "darkbloom", "databricks", "decart", "deepgram", "deepinfra", "deepseek", "dekallm", "digitalocean", "featherless", "fireworks", "fish-audio", "friendli", "gmicloud", "google-ai-studio", "google-vertex", "groq", "heygen", "inception", "inceptron", "inferact-vllm", "inference-net", "infermatic", "inflection", "io-net", "ionstream", "krea", "liquid", "makora", "mancer", "mara", "meta", "minimax", "mistral", "modal", "modelrun", "modular", "moonshotai", "morph", "near-ai", "nebius", "nex-agi", "nextbit", "novita", "nvidia", "ollama", "open-inference", "openai", "parasail", "perceptron", "perplexity", "phala", "poolside", "primeintellect", "quiver", "recraft", "reka", "relace", "runway", "sail-research", "sakana", "sakana-ai", "sambanova", "scaledown", "seed", "siliconflow", "sourceful", "stepfun", "streamlake", "switchpoint", "tencent", "tenstorrent", "thinkingmachines", "together", "typesafe", "unbiased", "upstage", "venice", "voyageai", "wafer", "wandb", "wandb-legacy", "xai", "xiaomi", "z-ai": return true } } diff --git a/models/components/imagegenerationproviderpreferences.go b/models/components/imagegenerationproviderpreferences.go index eaa368fd..d32db00f 100644 --- a/models/components/imagegenerationproviderpreferences.go +++ b/models/components/imagegenerationproviderpreferences.go @@ -306,6 +306,7 @@ type ImageGenerationProviderPreferencesOptions struct { SakanaAi map[string]any `json:"sakana-ai,omitzero"` Sambanova map[string]any `json:"sambanova,omitzero"` SambanovaCloaked map[string]any `json:"sambanova-cloaked,omitzero"` + Scaledown map[string]any `json:"scaledown,omitzero"` Seed map[string]any `json:"seed,omitzero"` SfCompute map[string]any `json:"sf-compute,omitzero"` Siliconflow map[string]any `json:"siliconflow,omitzero"` @@ -1164,6 +1165,13 @@ func (i *ImageGenerationProviderPreferencesOptions) GetSambanovaCloaked() map[st return i.SambanovaCloaked } +func (i *ImageGenerationProviderPreferencesOptions) GetScaledown() map[string]any { + if i == nil { + return nil + } + return i.Scaledown +} + func (i *ImageGenerationProviderPreferencesOptions) GetSeed() map[string]any { if i == nil { return nil diff --git a/models/components/providername.go b/models/components/providername.go index 7ac8ad5e..02e02a52 100644 --- a/models/components/providername.go +++ b/models/components/providername.go @@ -93,6 +93,7 @@ const ( ProviderNameSailResearch ProviderName = "Sail Research" ProviderNameSakanaAi ProviderName = "Sakana AI" ProviderNameSambaNova ProviderName = "SambaNova" + ProviderNameScaleDown ProviderName = "ScaleDown" ProviderNameSeed ProviderName = "Seed" ProviderNameSiliconFlow ProviderName = "SiliconFlow" ProviderNameSourceful ProviderName = "Sourceful" @@ -126,7 +127,7 @@ func (e ProviderName) ToPointer() *ProviderName { func (e *ProviderName) IsExact() bool { if e != nil { switch *e { - case "Modal", "AkashML", "AI21", "AionLabs", "Alibaba", "Ambient", "Baidu", "Amazon Bedrock", "Amazon Nova", "Anthropic", "Arcee AI", "AssemblyAI", "AtlasCloud", "Avian", "Azure", "BaseTen", "BytePlus", "Black Forest Labs", "Cerebras", "Chutes", "Cirrascale", "Claude Platform on AWS", "Clarifai", "Cloudflare", "Cohere", "CoreWeave", "Cosine", "Crucible", "Crusoe", "Darkbloom", "Databricks", "Decart", "Deepgram", "DeepInfra", "DeepSeek", "DekaLLM", "DigitalOcean", "Featherless", "Fireworks", "Fish Audio", "Friendli", "GMICloud", "Google", "Google AI Studio", "Groq", "HeyGen", "Inception", "Inceptron", "InferenceNet", "Ionstream", "Infermatic", "Io Net", "Inferact vLLM", "Inflection", "Liquid", "Makora", "Mara", "Mancer 2", "Meta", "Minimax", "ModelRun", "Mistral", "Modular", "Moonshot AI", "Morph", "VoyageAI by MongoDB", "TypeSafe", "Near AI", "Nebius", "Nex AGI", "NextBit", "Novita", "Nvidia", "Ollama", "OpenAI", "OpenInference", "Parasail", "Poolside", "PrimeIntellect", "Perceptron", "Perplexity", "Phala", "Recraft", "Reka", "Relace", "Sail Research", "Sakana AI", "SambaNova", "Seed", "SiliconFlow", "Sourceful", "StepFun", "Stealth", "StreamLake", "Switchpoint", "Tencent", "Tenstorrent", "Thinking Machines", "Together", "Unbiased", "Upstage", "Venice", "Wafer", "WandB", "Quiver", "Krea", "Runway", "Xiaomi", "xAI", "Z.AI", "FakeProvider": + case "Modal", "AkashML", "AI21", "AionLabs", "Alibaba", "Ambient", "Baidu", "Amazon Bedrock", "Amazon Nova", "Anthropic", "Arcee AI", "AssemblyAI", "AtlasCloud", "Avian", "Azure", "BaseTen", "BytePlus", "Black Forest Labs", "Cerebras", "Chutes", "Cirrascale", "Claude Platform on AWS", "Clarifai", "Cloudflare", "Cohere", "CoreWeave", "Cosine", "Crucible", "Crusoe", "Darkbloom", "Databricks", "Decart", "Deepgram", "DeepInfra", "DeepSeek", "DekaLLM", "DigitalOcean", "Featherless", "Fireworks", "Fish Audio", "Friendli", "GMICloud", "Google", "Google AI Studio", "Groq", "HeyGen", "Inception", "Inceptron", "InferenceNet", "Ionstream", "Infermatic", "Io Net", "Inferact vLLM", "Inflection", "Liquid", "Makora", "Mara", "Mancer 2", "Meta", "Minimax", "ModelRun", "Mistral", "Modular", "Moonshot AI", "Morph", "VoyageAI by MongoDB", "TypeSafe", "Near AI", "Nebius", "Nex AGI", "NextBit", "Novita", "Nvidia", "Ollama", "OpenAI", "OpenInference", "Parasail", "Poolside", "PrimeIntellect", "Perceptron", "Perplexity", "Phala", "Recraft", "Reka", "Relace", "Sail Research", "Sakana AI", "SambaNova", "ScaleDown", "Seed", "SiliconFlow", "Sourceful", "StepFun", "Stealth", "StreamLake", "Switchpoint", "Tencent", "Tenstorrent", "Thinking Machines", "Together", "Unbiased", "Upstage", "Venice", "Wafer", "WandB", "Quiver", "Krea", "Runway", "Xiaomi", "xAI", "Z.AI", "FakeProvider": return true } } diff --git a/models/components/provideroptions.go b/models/components/provideroptions.go index 4b36162d..5018a4e5 100644 --- a/models/components/provideroptions.go +++ b/models/components/provideroptions.go @@ -125,6 +125,7 @@ type ProviderOptions struct { SakanaAi map[string]any `json:"sakana-ai,omitzero"` Sambanova map[string]any `json:"sambanova,omitzero"` SambanovaCloaked map[string]any `json:"sambanova-cloaked,omitzero"` + Scaledown map[string]any `json:"scaledown,omitzero"` Seed map[string]any `json:"seed,omitzero"` SfCompute map[string]any `json:"sf-compute,omitzero"` Siliconflow map[string]any `json:"siliconflow,omitzero"` @@ -983,6 +984,13 @@ func (p *ProviderOptions) GetSambanovaCloaked() map[string]any { return p.SambanovaCloaked } +func (p *ProviderOptions) GetScaledown() map[string]any { + if p == nil { + return nil + } + return p.Scaledown +} + func (p *ProviderOptions) GetSeed() map[string]any { if p == nil { return nil diff --git a/models/components/providerresponse.go b/models/components/providerresponse.go index 97f80e5f..92386f28 100644 --- a/models/components/providerresponse.go +++ b/models/components/providerresponse.go @@ -122,6 +122,7 @@ const ( ProviderResponseProviderNameSailResearch ProviderResponseProviderName = "Sail Research" ProviderResponseProviderNameSakanaAi ProviderResponseProviderName = "Sakana AI" ProviderResponseProviderNameSambaNova ProviderResponseProviderName = "SambaNova" + ProviderResponseProviderNameScaleDown ProviderResponseProviderName = "ScaleDown" ProviderResponseProviderNameSeed ProviderResponseProviderName = "Seed" ProviderResponseProviderNameSiliconFlow ProviderResponseProviderName = "SiliconFlow" ProviderResponseProviderNameSourceful ProviderResponseProviderName = "Sourceful" @@ -155,7 +156,7 @@ func (e ProviderResponseProviderName) ToPointer() *ProviderResponseProviderName func (e *ProviderResponseProviderName) IsExact() bool { if e != nil { switch *e { - case "AnyScale", "Atoma", "Cent-ML", "CrofAI", "Enfer", "GoPomelo", "HuggingFace", "Hyperbolic", "Hyperbolic 2", "InoCloud", "Kluster", "Lambda", "Lepton", "Lynn 2", "Lynn", "Mancer", "Modal", "NCompass", "Nineteen", "OctoAI", "Recursal", "Reflection", "Replicate", "SambaNova 2", "SF Compute", "Targon", "Together 2", "Ubicloud", "01.AI", "AkashML", "AI21", "AionLabs", "Alibaba", "Ambient", "Baidu", "Amazon Bedrock", "Amazon Nova", "Anthropic", "Arcee AI", "AssemblyAI", "AtlasCloud", "Avian", "Azure", "BaseTen", "BytePlus", "Black Forest Labs", "Cerebras", "Chutes", "Cirrascale", "Claude Platform on AWS", "Clarifai", "Cloudflare", "Cohere", "CoreWeave", "Cosine", "Crucible", "Crusoe", "Darkbloom", "Databricks", "Decart", "Deepgram", "DeepInfra", "DeepSeek", "DekaLLM", "DigitalOcean", "Featherless", "Fireworks", "Fish Audio", "Friendli", "GMICloud", "Google", "Google AI Studio", "Groq", "HeyGen", "Inception", "Inceptron", "InferenceNet", "Ionstream", "Infermatic", "Io Net", "Inferact vLLM", "Inflection", "Liquid", "Makora", "Mara", "Mancer 2", "Meta", "Minimax", "ModelRun", "Mistral", "Modular", "Moonshot AI", "Morph", "VoyageAI by MongoDB", "TypeSafe", "Near AI", "Nebius", "Nex AGI", "NextBit", "Novita", "Nvidia", "Ollama", "OpenAI", "OpenInference", "Parasail", "Poolside", "PrimeIntellect", "Perceptron", "Perplexity", "Phala", "Recraft", "Reka", "Relace", "Sail Research", "Sakana AI", "SambaNova", "Seed", "SiliconFlow", "Sourceful", "StepFun", "Stealth", "StreamLake", "Switchpoint", "Tencent", "Tenstorrent", "Thinking Machines", "Together", "Unbiased", "Upstage", "Venice", "Wafer", "WandB", "Quiver", "Krea", "Runway", "Xiaomi", "xAI", "Z.AI", "FakeProvider": + case "AnyScale", "Atoma", "Cent-ML", "CrofAI", "Enfer", "GoPomelo", "HuggingFace", "Hyperbolic", "Hyperbolic 2", "InoCloud", "Kluster", "Lambda", "Lepton", "Lynn 2", "Lynn", "Mancer", "Modal", "NCompass", "Nineteen", "OctoAI", "Recursal", "Reflection", "Replicate", "SambaNova 2", "SF Compute", "Targon", "Together 2", "Ubicloud", "01.AI", "AkashML", "AI21", "AionLabs", "Alibaba", "Ambient", "Baidu", "Amazon Bedrock", "Amazon Nova", "Anthropic", "Arcee AI", "AssemblyAI", "AtlasCloud", "Avian", "Azure", "BaseTen", "BytePlus", "Black Forest Labs", "Cerebras", "Chutes", "Cirrascale", "Claude Platform on AWS", "Clarifai", "Cloudflare", "Cohere", "CoreWeave", "Cosine", "Crucible", "Crusoe", "Darkbloom", "Databricks", "Decart", "Deepgram", "DeepInfra", "DeepSeek", "DekaLLM", "DigitalOcean", "Featherless", "Fireworks", "Fish Audio", "Friendli", "GMICloud", "Google", "Google AI Studio", "Groq", "HeyGen", "Inception", "Inceptron", "InferenceNet", "Ionstream", "Infermatic", "Io Net", "Inferact vLLM", "Inflection", "Liquid", "Makora", "Mara", "Mancer 2", "Meta", "Minimax", "ModelRun", "Mistral", "Modular", "Moonshot AI", "Morph", "VoyageAI by MongoDB", "TypeSafe", "Near AI", "Nebius", "Nex AGI", "NextBit", "Novita", "Nvidia", "Ollama", "OpenAI", "OpenInference", "Parasail", "Poolside", "PrimeIntellect", "Perceptron", "Perplexity", "Phala", "Recraft", "Reka", "Relace", "Sail Research", "Sakana AI", "SambaNova", "ScaleDown", "Seed", "SiliconFlow", "Sourceful", "StepFun", "Stealth", "StreamLake", "Switchpoint", "Tencent", "Tenstorrent", "Thinking Machines", "Together", "Unbiased", "Upstage", "Venice", "Wafer", "WandB", "Quiver", "Krea", "Runway", "Xiaomi", "xAI", "Z.AI", "FakeProvider": return true } } diff --git a/models/components/videogenerationrequest.go b/models/components/videogenerationrequest.go index d6af77bf..e4e738c2 100644 --- a/models/components/videogenerationrequest.go +++ b/models/components/videogenerationrequest.go @@ -155,6 +155,7 @@ type VideoGenerationRequestOptions struct { SakanaAi map[string]any `json:"sakana-ai,omitzero"` Sambanova map[string]any `json:"sambanova,omitzero"` SambanovaCloaked map[string]any `json:"sambanova-cloaked,omitzero"` + Scaledown map[string]any `json:"scaledown,omitzero"` Seed map[string]any `json:"seed,omitzero"` SfCompute map[string]any `json:"sf-compute,omitzero"` Siliconflow map[string]any `json:"siliconflow,omitzero"` @@ -1013,6 +1014,13 @@ func (v *VideoGenerationRequestOptions) GetSambanovaCloaked() map[string]any { return v.SambanovaCloaked } +func (v *VideoGenerationRequestOptions) GetScaledown() map[string]any { + if v == nil { + return nil + } + return v.Scaledown +} + func (v *VideoGenerationRequestOptions) GetSeed() map[string]any { if v == nil { return nil diff --git a/models/operations/listbyokkeys.go b/models/operations/listbyokkeys.go index ebd2a423..0ca8a074 100644 --- a/models/operations/listbyokkeys.go +++ b/models/operations/listbyokkeys.go @@ -103,6 +103,7 @@ const ( ProviderSakana Provider = "sakana" ProviderSakanaAi Provider = "sakana-ai" ProviderSambanova Provider = "sambanova" + ProviderScaledown Provider = "scaledown" ProviderSeed Provider = "seed" ProviderSiliconflow Provider = "siliconflow" ProviderSourceful Provider = "sourceful" @@ -134,7 +135,7 @@ func (e Provider) ToPointer() *Provider { func (e *Provider) IsExact() bool { if e != nil { switch *e { - case "ai21", "aion-labs", "akashml", "alibaba", "amazon-bedrock", "amazon-bedrock/claude-on-aws", "amazon-nova", "ambient", "anthropic", "anthropic/2", "arcee-ai", "assemblyai", "atlas-cloud", "avian", "azure", "baidu", "baseten", "black-forest-labs", "byteplus", "cerebras", "chutes", "cirrascale", "clarifai", "claude-on-aws", "cloudflare", "cohere", "coreweave", "cosine", "crusoe", "darkbloom", "databricks", "decart", "deepgram", "deepinfra", "deepseek", "dekallm", "digitalocean", "featherless", "fireworks", "fish-audio", "friendli", "gmicloud", "google-ai-studio", "google-vertex", "groq", "heygen", "inception", "inceptron", "inferact-vllm", "inference-net", "infermatic", "inflection", "io-net", "ionstream", "krea", "liquid", "makora", "mancer", "mara", "meta", "minimax", "mistral", "modal", "modelrun", "modular", "moonshotai", "morph", "near-ai", "nebius", "nex-agi", "nextbit", "novita", "nvidia", "ollama", "open-inference", "openai", "parasail", "perceptron", "perplexity", "phala", "poolside", "primeintellect", "quiver", "recraft", "reka", "relace", "runway", "sail-research", "sakana", "sakana-ai", "sambanova", "seed", "siliconflow", "sourceful", "stepfun", "streamlake", "switchpoint", "tencent", "tenstorrent", "thinkingmachines", "together", "typesafe", "unbiased", "upstage", "venice", "voyageai", "wafer", "wandb", "wandb-legacy", "xai", "xiaomi", "z-ai": + case "ai21", "aion-labs", "akashml", "alibaba", "amazon-bedrock", "amazon-bedrock/claude-on-aws", "amazon-nova", "ambient", "anthropic", "anthropic/2", "arcee-ai", "assemblyai", "atlas-cloud", "avian", "azure", "baidu", "baseten", "black-forest-labs", "byteplus", "cerebras", "chutes", "cirrascale", "clarifai", "claude-on-aws", "cloudflare", "cohere", "coreweave", "cosine", "crusoe", "darkbloom", "databricks", "decart", "deepgram", "deepinfra", "deepseek", "dekallm", "digitalocean", "featherless", "fireworks", "fish-audio", "friendli", "gmicloud", "google-ai-studio", "google-vertex", "groq", "heygen", "inception", "inceptron", "inferact-vllm", "inference-net", "infermatic", "inflection", "io-net", "ionstream", "krea", "liquid", "makora", "mancer", "mara", "meta", "minimax", "mistral", "modal", "modelrun", "modular", "moonshotai", "morph", "near-ai", "nebius", "nex-agi", "nextbit", "novita", "nvidia", "ollama", "open-inference", "openai", "parasail", "perceptron", "perplexity", "phala", "poolside", "primeintellect", "quiver", "recraft", "reka", "relace", "runway", "sail-research", "sakana", "sakana-ai", "sambanova", "scaledown", "seed", "siliconflow", "sourceful", "stepfun", "streamlake", "switchpoint", "tencent", "tenstorrent", "thinkingmachines", "together", "typesafe", "unbiased", "upstage", "venice", "voyageai", "wafer", "wandb", "wandb-legacy", "xai", "xiaomi", "z-ai": return true } } diff --git a/openrouter.go b/openrouter.go index ee53bafe..358bf27c 100644 --- a/openrouter.go +++ b/openrouter.go @@ -71,20 +71,6 @@ type OpenRouter struct { Benchmarks *Benchmarks // BYOK endpoints BYOK *BYOK - // Stream a chat completion with an intern - // Sends a prompt to one of your interns and streams the reply as OpenAI-compatible server-sent events ending with `[DONE]`. The run executes on the intern, which may pause to ask you something. It then streams one `openrouter.provide_input` tool call and finishes with `finish_reason: "tool_calls"`, and the run stays open on the intern. - // - // Every response, whether it ends with `stop`, `tool_calls` or `error`, is followed by a final chunk with empty `choices` that carries `session_id`, then `data: [DONE]`. That chunk carries the `usage` the intern reported for the run, after `stop` or `error`, and `null` when the intern reported none. After `tool_calls` its `usage` is `null` because the turn is not over. Read through `[DONE]`: the `session_id` you need to reply arrives after the `tool_calls` finish chunk. - // - // To answer, send a second request with the same `session_id`, the assistant message echoing that tool call, and a `tool` message whose `tool_call_id` is the tool call id and whose `content` is the answer. The answer is delivered to the run that asked and the stream continues from where it paused. A question stays open for its interaction deadline (5 minutes by default) and the run is cancelled when that passes. Rejected replies do not extend the deadline. - // - // Closing the connection after the `[DONE]` that follows `finish_reason: "tool_calls"` keeps the run alive. Disconnecting while a response is still streaming cancels the run. The stream writes a `: keepalive` comment whenever nothing else has been written for 30 seconds, so a disconnect is noticed within that interval even while the intern is silent. - // - // A run the intern ends while you are still connected, by cancellation or by a deadline, ends the stream with a `finish_reason: "error"` chunk carrying `410` and reason `run_ended`, then the final empty-`choices` chunk and `[DONE]`. That error reports only an ending the intern confirmed. A connection that breaks without that confirmation ends with reason `stream_severed`, and a client that has already disconnected is promised no final event. - // - // Set `approval_mode` to `manual` to have the intern ask before approval-bearing tools such as the shell. Omitted, the run self-drives and consents on your behalf. The mode belongs to the run started by that prompt and must be repeated on later prompts. - // - // Available to interns programme members. Callers outside the programme receive `404` for every path under `/api/v1/interns`. Chat *Chat // Task classification market-share endpoints Classifications *Classifications @@ -226,9 +212,9 @@ func WithTimeout(timeout time.Duration) SDKOption { // New creates a new instance of the SDK with the provided options func New(opts ...SDKOption) *OpenRouter { sdk := &OpenRouter{ - SDKVersion: "0.8.25", + SDKVersion: "0.8.26", sdkConfiguration: config.SDKConfiguration{ - UserAgent: "speakeasy-sdk/go 0.8.25 2.914.0 1.0.0 github.com/OpenRouterTeam/go-sdk", + UserAgent: "speakeasy-sdk/go 0.8.26 2.914.0 1.0.0 github.com/OpenRouterTeam/go-sdk", Globals: globals.Globals{}, ServerList: ServerList, },