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

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.
Files changed (3) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +97 -25
  3. package/package.json +8 -5
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  Connect OpenAI OAuth credentials to the Vercel AI SDK.
6
6
 
7
7
  ```bash
8
- npm i @openai-oauth/ai-sdk ai
8
+ npm i @openai-oauth/ai-sdk @openai-oauth/local ai
9
9
  ```
10
10
 
11
11
  Quickstart:
@@ -75,7 +75,7 @@ export async function POST(request: Request) {
75
75
  }
76
76
  ```
77
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).
78
+ Use `@openai-oauth/react` to establish the browser credentials. See the [React Component setup](https://github.com/EvanZhouDev/openai-oauth#react-component).
79
79
 
80
80
  API shape:
81
81
 
package/dist/index.js CHANGED
@@ -1,8 +1,5 @@
1
1
  // src/provider.ts
2
- import {
3
- OpenAIImageModel,
4
- OpenAIResponsesLanguageModel
5
- } from "@ai-sdk/openai/internal";
2
+ import { createOpenAI } from "@ai-sdk/openai";
6
3
  import {
7
4
  NoSuchModelError
8
5
  } from "@ai-sdk/provider";
@@ -10,6 +7,80 @@ import { withUserAgentSuffix } from "@ai-sdk/provider-utils";
10
7
  import {
11
8
  createOpenAIOAuthTransport
12
9
  } from "@openai-oauth/core";
10
+
11
+ // package.json
12
+ var package_default = {
13
+ name: "@openai-oauth/ai-sdk",
14
+ version: "2.0.0-beta.4",
15
+ description: "Vercel AI SDK provider adapter for openai-oauth auth handles.",
16
+ keywords: [
17
+ "openai",
18
+ "oauth",
19
+ "chatgpt",
20
+ "codex",
21
+ "ai-sdk",
22
+ "vercel-ai-sdk"
23
+ ],
24
+ type: "module",
25
+ engines: {
26
+ node: ">=20"
27
+ },
28
+ sideEffects: false,
29
+ main: "./dist/index.js",
30
+ types: "./dist/index.d.ts",
31
+ exports: {
32
+ ".": {
33
+ types: "./dist/index.d.ts",
34
+ import: "./dist/index.js",
35
+ default: "./dist/index.js"
36
+ }
37
+ },
38
+ files: [
39
+ "dist",
40
+ "README.md",
41
+ "LICENSE"
42
+ ],
43
+ scripts: {
44
+ build: "tsup src/index.ts --format esm --dts --outDir dist --clean",
45
+ prepublishOnly: "bun run build",
46
+ typecheck: "tsc --noEmit",
47
+ test: "vitest run",
48
+ "test:live": "LIVE_CODEX_E2E=1 vitest run test/live.e2e.test.ts"
49
+ },
50
+ publishConfig: {
51
+ access: "public"
52
+ },
53
+ peerDependencies: {
54
+ ai: "^6.0.116"
55
+ },
56
+ dependencies: {
57
+ "@ai-sdk/openai": "3.0.41",
58
+ "@ai-sdk/provider": "3.0.8",
59
+ "@ai-sdk/provider-utils": "4.0.19",
60
+ "@openai-oauth/core": "workspace:*"
61
+ },
62
+ devDependencies: {
63
+ "@openai-oauth/local": "workspace:*",
64
+ "@types/node": "20.17.24",
65
+ ai: "6.0.116",
66
+ typescript: "5.9.2",
67
+ vitest: "4.1.10",
68
+ zod: "^3.25.76"
69
+ },
70
+ author: "EvanZhouDev",
71
+ license: "AGPL-3.0-only",
72
+ repository: {
73
+ type: "git",
74
+ url: "git+https://github.com/EvanZhouDev/openai-oauth.git",
75
+ directory: "packages/ai-sdk"
76
+ },
77
+ bugs: {
78
+ url: "https://github.com/EvanZhouDev/openai-oauth/issues"
79
+ },
80
+ homepage: "https://github.com/EvanZhouDev/openai-oauth#readme"
81
+ };
82
+
83
+ // src/provider.ts
13
84
  var emptyUsage = () => ({
14
85
  inputTokens: {
15
86
  total: void 0,
@@ -33,17 +104,23 @@ var mergeProviderMetadata = (left, right) => {
33
104
  }
34
105
  return merged;
35
106
  };
36
- var CodexResponsesLanguageModel = class extends OpenAIResponsesLanguageModel {
37
- generateMode;
38
- constructor(modelId, config, options = {}) {
39
- super(modelId, config);
40
- this.generateMode = options.generateMode ?? "stream";
107
+ var CodexResponsesLanguageModel = class {
108
+ constructor(model) {
109
+ this.model = model;
110
+ this.provider = model.provider;
111
+ this.modelId = model.modelId;
112
+ this.supportedUrls = model.supportedUrls;
113
+ }
114
+ model;
115
+ specificationVersion = "v3";
116
+ provider;
117
+ modelId;
118
+ supportedUrls;
119
+ doStream(options) {
120
+ return this.model.doStream(options);
41
121
  }
42
122
  async doGenerate(options) {
43
- if (this.generateMode === "response") {
44
- return super.doGenerate(options);
45
- }
46
- const streamResult = await super.doStream(options);
123
+ const streamResult = await this.model.doStream(options);
47
124
  const reader = streamResult.stream.getReader();
48
125
  const content = [];
49
126
  const warnings = [];
@@ -223,20 +300,15 @@ var createOpenAIOAuth = (input, settings = {}) => {
223
300
  const baseURL = transport.baseURL;
224
301
  const providerName = settings.name ?? "openai";
225
302
  const oauthFetch = transport.fetch;
226
- const config = {
227
- provider: `${providerName}.responses`,
228
- url: ({ path }) => `${baseURL}${path}`,
229
- headers: () => withUserAgentSuffix({}, "oai-oauth/0.0.0"),
303
+ const provider = createOpenAI({
304
+ apiKey: "openai-oauth",
305
+ baseURL,
230
306
  fetch: oauthFetch,
231
- fileIdPrefixes: ["file-"]
232
- };
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
307
+ headers: withUserAgentSuffix({}, `openai-oauth/${package_default.version}`),
308
+ name: providerName
239
309
  });
310
+ const createModel = (modelId) => new CodexResponsesLanguageModel(provider.responses(modelId));
311
+ const createImageModel = (modelId) => provider.image(modelId);
240
312
  const providerFn = (modelId) => createModel(modelId);
241
313
  const specificationVersion = "v3";
242
314
  return Object.assign(providerFn, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openai-oauth/ai-sdk",
3
- "version": "2.0.0-beta.3",
3
+ "version": "2.0.0-beta.4",
4
4
  "description": "Vercel AI SDK provider adapter for openai-oauth auth handles.",
5
5
  "keywords": [
6
6
  "openai",
@@ -11,6 +11,9 @@
11
11
  "vercel-ai-sdk"
12
12
  ],
13
13
  "type": "module",
14
+ "engines": {
15
+ "node": ">=20"
16
+ },
14
17
  "sideEffects": false,
15
18
  "main": "./dist/index.js",
16
19
  "types": "./dist/index.d.ts",
@@ -43,14 +46,14 @@
43
46
  "@ai-sdk/openai": "3.0.41",
44
47
  "@ai-sdk/provider": "3.0.8",
45
48
  "@ai-sdk/provider-utils": "4.0.19",
46
- "@openai-oauth/core": "2.0.0-beta.3"
49
+ "@openai-oauth/core": "2.0.0-beta.4"
47
50
  },
48
51
  "devDependencies": {
49
- "@openai-oauth/local": "2.0.0-beta.3",
52
+ "@openai-oauth/local": "2.0.0-beta.4",
50
53
  "@types/node": "20.17.24",
51
54
  "ai": "6.0.116",
52
- "typescript": "latest",
53
- "vitest": "latest",
55
+ "typescript": "5.9.2",
56
+ "vitest": "4.1.10",
54
57
  "zod": "^3.25.76"
55
58
  },
56
59
  "author": "EvanZhouDev",