@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.
- package/README.md +2 -2
- package/dist/index.js +97 -25
- 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 [
|
|
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
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
this.
|
|
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
|
-
|
|
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
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
headers: () => withUserAgentSuffix({}, "oai-oauth/0.0.0"),
|
|
303
|
+
const provider = createOpenAI({
|
|
304
|
+
apiKey: "openai-oauth",
|
|
305
|
+
baseURL,
|
|
230
306
|
fetch: oauthFetch,
|
|
231
|
-
|
|
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
|
+
"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.
|
|
49
|
+
"@openai-oauth/core": "2.0.0-beta.4"
|
|
47
50
|
},
|
|
48
51
|
"devDependencies": {
|
|
49
|
-
"@openai-oauth/local": "2.0.0-beta.
|
|
52
|
+
"@openai-oauth/local": "2.0.0-beta.4",
|
|
50
53
|
"@types/node": "20.17.24",
|
|
51
54
|
"ai": "6.0.116",
|
|
52
|
-
"typescript": "
|
|
53
|
-
"vitest": "
|
|
55
|
+
"typescript": "5.9.2",
|
|
56
|
+
"vitest": "4.1.10",
|
|
54
57
|
"zod": "^3.25.76"
|
|
55
58
|
},
|
|
56
59
|
"author": "EvanZhouDev",
|