@openai-oauth/ai-sdk 2.0.0-beta.1 → 2.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,6 +23,27 @@ const result = await generateText({
23
23
  });
24
24
  ```
25
25
 
26
+ Generate or edit images with GPT Image 2:
27
+
28
+ ```ts
29
+ import { readFile } from "node:fs/promises";
30
+ import { generateImage } from "ai";
31
+
32
+ const result = await generateImage({
33
+ model: openai.image("gpt-image-2"),
34
+ prompt: "A tiny house in a forest",
35
+ });
36
+
37
+ const inputImage = await readFile("input.png");
38
+ const edited = await generateImage({
39
+ model: openai.image("gpt-image-2"),
40
+ prompt: {
41
+ text: "Add a red hat",
42
+ images: [inputImage],
43
+ },
44
+ });
45
+ ```
46
+
26
47
  ## Package Notes
27
48
 
28
49
  `@openai-oauth/ai-sdk` accepts any OpenAI OAuth credential source.
@@ -54,6 +75,8 @@ export async function POST(request: Request) {
54
75
  }
55
76
  ```
56
77
 
78
+ Use `@openai-oauth/react` to establish the browser credentials. See the [Sign in with ChatGPT setup](https://github.com/EvanZhouDev/openai-oauth#sign-in-with-chatgpt-setup).
79
+
57
80
  API shape:
58
81
 
59
82
  ```ts
@@ -61,6 +84,8 @@ const openai = createOpenAIOAuth(credentials);
61
84
 
62
85
  openai("gpt-5.4-mini");
63
86
  openai.languageModel("gpt-5.4-mini");
87
+ openai.image("gpt-image-2");
88
+ openai.imageModel("gpt-image-2");
64
89
  ```
65
90
 
66
91
  Exports:
@@ -70,6 +95,7 @@ Exports:
70
95
  - `OpenAIOAuthProviderInput`
71
96
  - `OpenAIOAuthProviderSettings`
72
97
  - `OpenAIOAuthModelId`
98
+ - `OpenAIOAuthImageModelId`
73
99
 
74
100
  ## More
75
101
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import { ProviderV3, LanguageModelV3 } from '@ai-sdk/provider';
1
+ import { ProviderV3, LanguageModelV3, ImageModelV3 } from '@ai-sdk/provider';
2
2
  import { OpenAIOAuthTransport, OpenAIOAuth } from '@openai-oauth/core';
3
3
 
4
4
  type OpenAIOAuthModelId = string;
5
+ type OpenAIOAuthImageModelId = string;
5
6
  type OpenAIOAuthProviderSettings = {
6
7
  name?: string;
7
8
  };
@@ -9,7 +10,9 @@ type OpenAIOAuthProviderInput = OpenAIOAuthTransport | OpenAIOAuth;
9
10
  interface OpenAIOAuthProvider extends ProviderV3 {
10
11
  (modelId: OpenAIOAuthModelId): LanguageModelV3;
11
12
  languageModel(modelId: OpenAIOAuthModelId): LanguageModelV3;
13
+ image(modelId: OpenAIOAuthImageModelId): ImageModelV3;
14
+ imageModel(modelId: OpenAIOAuthImageModelId): ImageModelV3;
12
15
  }
13
16
  declare const createOpenAIOAuth: (input: OpenAIOAuthProviderInput, settings?: OpenAIOAuthProviderSettings) => OpenAIOAuthProvider;
14
17
 
15
- export { type OpenAIOAuthModelId, type OpenAIOAuthProvider, type OpenAIOAuthProviderInput, type OpenAIOAuthProviderSettings, createOpenAIOAuth };
18
+ export { type OpenAIOAuthImageModelId, type OpenAIOAuthModelId, type OpenAIOAuthProvider, type OpenAIOAuthProviderInput, type OpenAIOAuthProviderSettings, createOpenAIOAuth };
package/dist/index.js CHANGED
@@ -1,5 +1,8 @@
1
1
  // src/provider.ts
2
- import { OpenAIResponsesLanguageModel } from "@ai-sdk/openai/internal";
2
+ import {
3
+ OpenAIImageModel,
4
+ OpenAIResponsesLanguageModel
5
+ } from "@ai-sdk/openai/internal";
3
6
  import {
4
7
  NoSuchModelError
5
8
  } from "@ai-sdk/provider";
@@ -212,8 +215,7 @@ var toTransport = (input) => {
212
215
  fetch: input.fetch,
213
216
  headers: input.headers,
214
217
  instructions: input.instructions,
215
- openAIBaseURL: input.openAIBaseURL,
216
- storeResponses: input.storeResponses
218
+ openAIBaseURL: input.openAIBaseURL
217
219
  });
218
220
  };
219
221
  var createOpenAIOAuth = (input, settings = {}) => {
@@ -229,17 +231,22 @@ var createOpenAIOAuth = (input, settings = {}) => {
229
231
  fileIdPrefixes: ["file-"]
230
232
  };
231
233
  const createModel = (modelId) => new CodexResponsesLanguageModel(modelId, config);
234
+ const createImageModel = (modelId) => new OpenAIImageModel(modelId, {
235
+ provider: `${providerName}.image`,
236
+ url: ({ path }) => `${baseURL}${path}`,
237
+ headers: () => withUserAgentSuffix({}, "oai-oauth/0.0.0"),
238
+ fetch: oauthFetch
239
+ });
232
240
  const providerFn = (modelId) => createModel(modelId);
233
241
  const specificationVersion = "v3";
234
242
  return Object.assign(providerFn, {
235
243
  specificationVersion,
236
244
  languageModel: createModel,
245
+ image: createImageModel,
237
246
  embeddingModel: (modelId) => {
238
247
  throw new NoSuchModelError({ modelId, modelType: "embeddingModel" });
239
248
  },
240
- imageModel: (modelId) => {
241
- throw new NoSuchModelError({ modelId, modelType: "imageModel" });
242
- }
249
+ imageModel: createImageModel
243
250
  });
244
251
  };
245
252
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openai-oauth/ai-sdk",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-beta.3",
4
4
  "description": "Vercel AI SDK provider adapter for openai-oauth auth handles.",
5
5
  "keywords": [
6
6
  "openai",
@@ -43,10 +43,10 @@
43
43
  "@ai-sdk/openai": "3.0.41",
44
44
  "@ai-sdk/provider": "3.0.8",
45
45
  "@ai-sdk/provider-utils": "4.0.19",
46
- "@openai-oauth/core": "2.0.0-beta.1"
46
+ "@openai-oauth/core": "2.0.0-beta.3"
47
47
  },
48
48
  "devDependencies": {
49
- "@openai-oauth/local": "2.0.0-beta.1",
49
+ "@openai-oauth/local": "2.0.0-beta.3",
50
50
  "@types/node": "20.17.24",
51
51
  "ai": "6.0.116",
52
52
  "typescript": "latest",