openai-ws-opencode 0.1.0 → 0.1.2
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 +1 -1
- package/bin/setup.js +15 -2
- package/dist/auth/oauth.d.ts.map +1 -1
- package/dist/auth/oauth.js +48 -13
- package/dist/auth/oauth.js.map +1 -1
- package/dist/constants.d.ts +3 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -101,7 +101,7 @@ Then point OpenCode at the packed tarball through the plugin array:
|
|
|
101
101
|
|
|
102
102
|
```jsonc
|
|
103
103
|
{
|
|
104
|
-
"plugin": ["openai-ws-opencode@file:/absolute/path/openai-ws-opencode-0.1.
|
|
104
|
+
"plugin": ["openai-ws-opencode@file:/absolute/path/openai-ws-opencode-0.1.2.tgz"]
|
|
105
105
|
}
|
|
106
106
|
```
|
|
107
107
|
|
package/bin/setup.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// bin/setup.ts
|
|
4
|
+
import { realpathSync } from "node:fs";
|
|
4
5
|
import fs from "node:fs/promises";
|
|
5
6
|
import os from "node:os";
|
|
6
7
|
import path from "node:path";
|
|
8
|
+
import { fileURLToPath } from "node:url";
|
|
7
9
|
import { applyEdits, format, modify, parse } from "jsonc-parser";
|
|
8
10
|
|
|
9
11
|
// src/constants.ts
|
|
@@ -225,7 +227,17 @@ function parseArgs(argv) {
|
|
|
225
227
|
}
|
|
226
228
|
return options;
|
|
227
229
|
}
|
|
228
|
-
|
|
230
|
+
function isDirectExecution(moduleUrl = import.meta.url, argvPath = process.argv[1]) {
|
|
231
|
+
if (!argvPath)
|
|
232
|
+
return false;
|
|
233
|
+
const modulePath = fileURLToPath(moduleUrl);
|
|
234
|
+
try {
|
|
235
|
+
return realpathSync(modulePath) === realpathSync(argvPath);
|
|
236
|
+
} catch {
|
|
237
|
+
return path.resolve(modulePath) === path.resolve(argvPath);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
if (isDirectExecution()) {
|
|
229
241
|
setupOpenCodeConfig(parseArgs(process.argv.slice(2))).then((file) => {
|
|
230
242
|
console.log(`Updated OpenCode config: ${file}`);
|
|
231
243
|
}).catch((error) => {
|
|
@@ -235,5 +247,6 @@ if (import.meta.url === `file://${process.argv[1]}`) {
|
|
|
235
247
|
}
|
|
236
248
|
export {
|
|
237
249
|
setupOpenCodeConfig,
|
|
238
|
-
patchConfigText
|
|
250
|
+
patchConfigText,
|
|
251
|
+
isDirectExecution
|
|
239
252
|
};
|
package/dist/auth/oauth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AAmE3E,iBAAe,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,iBAwCtE;AAiDD,wBAAgB,eAAe,SAS9B;AAED,wBAAsB,0BAA0B;;;;;;;;;;;;;;;;;GAmC/C;AAED,wBAAsB,yBAAyB;;;;;;;;;;;;;;;;;GA+C9C;AAED,eAAO,MAAM,YAAY;;;;;;;;IAexB,CAAA;AAED,eAAO,MAAM,YAAY;;;;CAIxB,CAAA"}
|
package/dist/auth/oauth.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import http from "node:http";
|
|
2
2
|
import crypto from "node:crypto";
|
|
3
|
-
import { CLIENT_ID, CODEX_ORIGINATOR, ISSUER, OAUTH_PORT } from "../constants.js";
|
|
3
|
+
import { CLIENT_ID, CODEX_OAUTH_SCOPE, CODEX_ORIGINATOR, ISSUER, OAUTH_FALLBACK_PORT, OAUTH_PORT } from "../constants.js";
|
|
4
4
|
import { exchangeCodeForTokens, extractAccountId, tokenExpiry } from "./tokens.js";
|
|
5
5
|
let oauthServer;
|
|
6
|
+
let oauthRedirectUri;
|
|
6
7
|
let pendingOAuth;
|
|
7
8
|
const HTML_OK = "<!doctype html><html><body><h1>Authorization successful</h1><p>Return to OpenCode.</p></body></html>";
|
|
8
9
|
const HTML_ERROR = "<!doctype html><html><body><h1>Authorization failed</h1></body></html>";
|
|
@@ -27,7 +28,7 @@ function buildAuthorizeUrl(redirectUri, pkce, state) {
|
|
|
27
28
|
response_type: "code",
|
|
28
29
|
client_id: CLIENT_ID,
|
|
29
30
|
redirect_uri: redirectUri,
|
|
30
|
-
scope:
|
|
31
|
+
scope: CODEX_OAUTH_SCOPE,
|
|
31
32
|
code_challenge: pkce.challenge,
|
|
32
33
|
code_challenge_method: "S256",
|
|
33
34
|
id_token_add_organizations: "true",
|
|
@@ -79,20 +80,54 @@ async function handleCallback(req, res) {
|
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
async function startOAuthServer() {
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
if (oauthServer && oauthRedirectUri)
|
|
84
|
+
return oauthRedirectUri;
|
|
85
|
+
const server = http.createServer((req, res) => {
|
|
86
|
+
void handleCallback(req, res);
|
|
87
|
+
});
|
|
88
|
+
oauthServer = server;
|
|
89
|
+
let port;
|
|
90
|
+
try {
|
|
91
|
+
port = await listen(server, OAUTH_PORT);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (!isAddressInUse(error)) {
|
|
95
|
+
oauthServer = undefined;
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
port = await listen(server, OAUTH_FALLBACK_PORT);
|
|
100
|
+
}
|
|
101
|
+
catch (fallbackError) {
|
|
102
|
+
oauthServer = undefined;
|
|
103
|
+
throw fallbackError;
|
|
104
|
+
}
|
|
90
105
|
}
|
|
91
|
-
|
|
106
|
+
oauthRedirectUri = `http://localhost:${port}/auth/callback`;
|
|
107
|
+
return oauthRedirectUri;
|
|
108
|
+
}
|
|
109
|
+
function listen(server, port) {
|
|
110
|
+
return new Promise((resolve, reject) => {
|
|
111
|
+
const onError = (error) => {
|
|
112
|
+
server.off("listening", onListening);
|
|
113
|
+
reject(error);
|
|
114
|
+
};
|
|
115
|
+
const onListening = () => {
|
|
116
|
+
server.off("error", onError);
|
|
117
|
+
resolve(port);
|
|
118
|
+
};
|
|
119
|
+
server.once("error", onError);
|
|
120
|
+
server.once("listening", onListening);
|
|
121
|
+
server.listen(port, "127.0.0.1");
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
function isAddressInUse(error) {
|
|
125
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === "EADDRINUSE";
|
|
92
126
|
}
|
|
93
127
|
export function stopOAuthServer() {
|
|
94
128
|
oauthServer?.close();
|
|
95
129
|
oauthServer = undefined;
|
|
130
|
+
oauthRedirectUri = undefined;
|
|
96
131
|
if (pendingOAuth) {
|
|
97
132
|
clearTimeout(pendingOAuth.timeout);
|
|
98
133
|
pendingOAuth.reject(new Error("OAuth server stopped"));
|
|
@@ -140,7 +175,7 @@ export async function createBrowserAuthorization() {
|
|
|
140
175
|
export async function createDeviceAuthorization() {
|
|
141
176
|
const deviceResponse = await fetch(`${ISSUER}/api/accounts/deviceauth/usercode`, {
|
|
142
177
|
method: "POST",
|
|
143
|
-
headers: { "Content-Type": "application/json", "User-Agent": "openai-ws-opencode/0.1.
|
|
178
|
+
headers: { "Content-Type": "application/json", "User-Agent": "openai-ws-opencode/0.1.2" },
|
|
144
179
|
body: JSON.stringify({ client_id: CLIENT_ID }),
|
|
145
180
|
});
|
|
146
181
|
if (!deviceResponse.ok)
|
|
@@ -155,7 +190,7 @@ export async function createDeviceAuthorization() {
|
|
|
155
190
|
for (;;) {
|
|
156
191
|
const response = await fetch(`${ISSUER}/api/accounts/deviceauth/token`, {
|
|
157
192
|
method: "POST",
|
|
158
|
-
headers: { "Content-Type": "application/json", "User-Agent": "openai-ws-opencode/0.1.
|
|
193
|
+
headers: { "Content-Type": "application/json", "User-Agent": "openai-ws-opencode/0.1.2" },
|
|
159
194
|
body: JSON.stringify({
|
|
160
195
|
device_auth_id: deviceData.device_auth_id,
|
|
161
196
|
user_code: deviceData.user_code,
|
package/dist/auth/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAmD,MAAM,WAAW,CAAA;AAC3E,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -8,7 +8,9 @@ export declare const OPENAI_WS_URL = "wss://api.openai.com/v1/responses";
|
|
|
8
8
|
export declare const CODEX_WS_URL = "wss://chatgpt.com/backend-api/codex/responses";
|
|
9
9
|
export declare const OPENAI_WS_BETA = "responses_websockets=2026-02-06";
|
|
10
10
|
export declare const CODEX_ORIGINATOR = "codex_cli_rs";
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const CODEX_OAUTH_SCOPE = "openid profile email offline_access api.connectors.read api.connectors.invoke";
|
|
12
|
+
export declare const OAUTH_PORT = 1455;
|
|
13
|
+
export declare const OAUTH_FALLBACK_PORT = 1457;
|
|
12
14
|
export declare const DEFAULT_INSTRUCTIONS = "You are a helpful assistant.";
|
|
13
15
|
export declare const INTERNAL_SESSION_HEADER = "x-openai-ws-opencode-session-id";
|
|
14
16
|
export declare const INTERNAL_AGENT_HEADER = "x-openai-ws-opencode-agent";
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,cAAc,CAAA;AAEtC,eAAO,MAAM,SAAS,iCAAiC,CAAA;AACvD,eAAO,MAAM,MAAM,4BAA4B,CAAA;AAC/C,eAAO,MAAM,eAAe,8BAA8B,CAAA;AAC1D,eAAO,MAAM,cAAc,0CAA0C,CAAA;AACrE,eAAO,MAAM,kBAAkB,oDAAgC,CAAA;AAC/D,eAAO,MAAM,aAAa,sCAAsC,CAAA;AAChE,eAAO,MAAM,YAAY,kDAAkD,CAAA;AAC3E,eAAO,MAAM,cAAc,oCAAoC,CAAA;AAC/D,eAAO,MAAM,gBAAgB,iBAAiB,CAAA;AAC9C,eAAO,MAAM,UAAU,OAAO,CAAA;AAC9B,eAAO,MAAM,oBAAoB,iCAAiC,CAAA;AAElE,eAAO,MAAM,uBAAuB,oCAAoC,CAAA;AACxE,eAAO,MAAM,qBAAqB,+BAA+B,CAAA;AACjE,eAAO,MAAM,qBAAqB,kCAAkC,CAAA;AACpE,eAAO,MAAM,2BAA2B,qCAAqC,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,cAAc,CAAA;AAEtC,eAAO,MAAM,SAAS,iCAAiC,CAAA;AACvD,eAAO,MAAM,MAAM,4BAA4B,CAAA;AAC/C,eAAO,MAAM,eAAe,8BAA8B,CAAA;AAC1D,eAAO,MAAM,cAAc,0CAA0C,CAAA;AACrE,eAAO,MAAM,kBAAkB,oDAAgC,CAAA;AAC/D,eAAO,MAAM,aAAa,sCAAsC,CAAA;AAChE,eAAO,MAAM,YAAY,kDAAkD,CAAA;AAC3E,eAAO,MAAM,cAAc,oCAAoC,CAAA;AAC/D,eAAO,MAAM,gBAAgB,iBAAiB,CAAA;AAC9C,eAAO,MAAM,iBAAiB,kFAAkF,CAAA;AAChH,eAAO,MAAM,UAAU,OAAO,CAAA;AAC9B,eAAO,MAAM,mBAAmB,OAAO,CAAA;AACvC,eAAO,MAAM,oBAAoB,iCAAiC,CAAA;AAElE,eAAO,MAAM,uBAAuB,oCAAoC,CAAA;AACxE,eAAO,MAAM,qBAAqB,+BAA+B,CAAA;AACjE,eAAO,MAAM,qBAAqB,kCAAkC,CAAA;AACpE,eAAO,MAAM,2BAA2B,qCAAqC,CAAA"}
|
package/dist/constants.js
CHANGED
|
@@ -8,7 +8,9 @@ export const OPENAI_WS_URL = "wss://api.openai.com/v1/responses";
|
|
|
8
8
|
export const CODEX_WS_URL = "wss://chatgpt.com/backend-api/codex/responses";
|
|
9
9
|
export const OPENAI_WS_BETA = "responses_websockets=2026-02-06";
|
|
10
10
|
export const CODEX_ORIGINATOR = "codex_cli_rs";
|
|
11
|
-
export const
|
|
11
|
+
export const CODEX_OAUTH_SCOPE = "openid profile email offline_access api.connectors.read api.connectors.invoke";
|
|
12
|
+
export const OAUTH_PORT = 1455;
|
|
13
|
+
export const OAUTH_FALLBACK_PORT = 1457;
|
|
12
14
|
export const DEFAULT_INSTRUCTIONS = "You are a helpful assistant.";
|
|
13
15
|
export const INTERNAL_SESSION_HEADER = "x-openai-ws-opencode-session-id";
|
|
14
16
|
export const INTERNAL_AGENT_HEADER = "x-openai-ws-opencode-agent";
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAA;AAEtC,MAAM,CAAC,MAAM,SAAS,GAAG,8BAA8B,CAAA;AACvD,MAAM,CAAC,MAAM,MAAM,GAAG,yBAAyB,CAAA;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,2BAA2B,CAAA;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,uCAAuC,CAAA;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,cAAc,YAAY,CAAA;AAC/D,MAAM,CAAC,MAAM,aAAa,GAAG,mCAAmC,CAAA;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,+CAA+C,CAAA;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,iCAAiC,CAAA;AAC/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAA;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAA;AAC9B,MAAM,CAAC,MAAM,oBAAoB,GAAG,8BAA8B,CAAA;AAElE,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAA;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAA;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,+BAA+B,CAAA;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAA;AAEtC,MAAM,CAAC,MAAM,SAAS,GAAG,8BAA8B,CAAA;AACvD,MAAM,CAAC,MAAM,MAAM,GAAG,yBAAyB,CAAA;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,2BAA2B,CAAA;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,uCAAuC,CAAA;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,cAAc,YAAY,CAAA;AAC/D,MAAM,CAAC,MAAM,aAAa,GAAG,mCAAmC,CAAA;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,+CAA+C,CAAA;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,iCAAiC,CAAA;AAC/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAA;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,+EAA+E,CAAA;AAChH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAA;AAC9B,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,8BAA8B,CAAA;AAElE,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAA;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAA;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,+BAA+B,CAAA;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openai-ws-opencode",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "OpenCode plugin for OpenAI Responses WebSocket transport.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"bin": {
|
|
24
|
-
"openai-ws-opencode": "
|
|
24
|
+
"openai-ws-opencode": "bin/setup.js"
|
|
25
25
|
},
|
|
26
26
|
"files": [
|
|
27
27
|
"dist/",
|