@withbuddi/buddi 0.1.0-pre.19 → 0.1.0-pre.20
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/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/cli/dist/commands.js +1 -1
- package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
- package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/main.js +12 -2
- package/node_modules/@buddi/cli/dist/main.js.map +1 -1
- package/node_modules/@buddi/cli/dist/status.d.ts +10 -0
- package/node_modules/@buddi/cli/dist/status.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/status.js +4 -0
- package/node_modules/@buddi/cli/dist/status.js.map +1 -1
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.js +7 -1
- package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
- package/node_modules/@buddi/core/dist/provider-accounts.d.ts +7 -1
- package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/provider-accounts.js +14 -1
- package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
- package/node_modules/@buddi/core/dist/provider.d.ts +6 -0
- package/node_modules/@buddi/core/dist/provider.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/provider.js.map +1 -1
- package/node_modules/@buddi/core/migrations/046_ollama_device_key.sql +7 -0
- package/node_modules/@buddi/core/migrations/047_reported_context_windows.sql +5 -0
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts +24 -11
- package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/codex-accounts.js +151 -215
- package/node_modules/@buddi/gateway/dist/codex-accounts.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/index.d.ts +1 -0
- package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/index.js +1 -0
- package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/ollama-accounts.d.ts +87 -0
- package/node_modules/@buddi/gateway/dist/ollama-accounts.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/ollama-accounts.js +179 -0
- package/node_modules/@buddi/gateway/dist/ollama-accounts.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts +47 -1
- package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/provider-accounts.js +182 -25
- package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js +10 -3
- package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.js +16 -13
- package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
- package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/codex-direct.d.ts +55 -0
- package/node_modules/@buddi/runtime/dist/codex-direct.d.ts.map +1 -0
- package/node_modules/@buddi/runtime/dist/codex-direct.js +334 -0
- package/node_modules/@buddi/runtime/dist/codex-direct.js.map +1 -0
- package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts +66 -0
- package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts.map +1 -0
- package/node_modules/@buddi/runtime/dist/codex-oauth.js +210 -0
- package/node_modules/@buddi/runtime/dist/codex-oauth.js.map +1 -0
- package/node_modules/@buddi/runtime/dist/codex-profile.d.ts +19 -0
- package/node_modules/@buddi/runtime/dist/codex-profile.d.ts.map +1 -0
- package/node_modules/@buddi/runtime/dist/codex-profile.js +99 -0
- package/node_modules/@buddi/runtime/dist/codex-profile.js.map +1 -0
- package/node_modules/@buddi/runtime/dist/context-window.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/context-window.js +4 -0
- package/node_modules/@buddi/runtime/dist/context-window.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/delegate.d.ts +24 -0
- package/node_modules/@buddi/runtime/dist/delegate.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/delegate.js +87 -11
- package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/index.d.ts +4 -4
- package/node_modules/@buddi/runtime/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/index.js +5 -5
- package/node_modules/@buddi/runtime/dist/index.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/loop.d.ts +7 -0
- package/node_modules/@buddi/runtime/dist/loop.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/loop.js +48 -8
- package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/ollama-signing.d.ts +52 -0
- package/node_modules/@buddi/runtime/dist/ollama-signing.d.ts.map +1 -0
- package/node_modules/@buddi/runtime/dist/ollama-signing.js +154 -0
- package/node_modules/@buddi/runtime/dist/ollama-signing.js.map +1 -0
- package/node_modules/@buddi/runtime/dist/openai.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/openai.js +21 -7
- package/node_modules/@buddi/runtime/dist/openai.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/provider-models.d.ts +2 -0
- package/node_modules/@buddi/runtime/dist/provider-models.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/provider-models.js +8 -3
- package/node_modules/@buddi/runtime/dist/provider-models.js.map +1 -1
- package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/cli/dist/commands.js +1 -1
- package/packages/cli/dist/commands.js.map +1 -1
- package/packages/cli/dist/main.d.ts.map +1 -1
- package/packages/cli/dist/main.js +12 -2
- package/packages/cli/dist/main.js.map +1 -1
- package/packages/cli/dist/status.d.ts +10 -0
- package/packages/cli/dist/status.d.ts.map +1 -1
- package/packages/cli/dist/status.js +4 -0
- package/packages/cli/dist/status.js.map +1 -1
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/agents/catalog.d.ts.map +1 -1
- package/packages/core/dist/agents/catalog.js +7 -1
- package/packages/core/dist/agents/catalog.js.map +1 -1
- package/packages/core/dist/provider-accounts.d.ts +7 -1
- package/packages/core/dist/provider-accounts.d.ts.map +1 -1
- package/packages/core/dist/provider-accounts.js +14 -1
- package/packages/core/dist/provider-accounts.js.map +1 -1
- package/packages/core/dist/provider.d.ts +6 -0
- package/packages/core/dist/provider.d.ts.map +1 -1
- package/packages/core/dist/provider.js.map +1 -1
- package/packages/core/migrations/046_ollama_device_key.sql +7 -0
- package/packages/core/migrations/047_reported_context_windows.sql +5 -0
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/codex-accounts.d.ts +24 -11
- package/packages/gateway/dist/codex-accounts.d.ts.map +1 -1
- package/packages/gateway/dist/codex-accounts.js +151 -215
- package/packages/gateway/dist/codex-accounts.js.map +1 -1
- package/packages/gateway/dist/index.d.ts +1 -0
- package/packages/gateway/dist/index.d.ts.map +1 -1
- package/packages/gateway/dist/index.js +1 -0
- package/packages/gateway/dist/index.js.map +1 -1
- package/packages/gateway/dist/ollama-accounts.d.ts +87 -0
- package/packages/gateway/dist/ollama-accounts.d.ts.map +1 -0
- package/packages/gateway/dist/ollama-accounts.js +179 -0
- package/packages/gateway/dist/ollama-accounts.js.map +1 -0
- package/packages/gateway/dist/provider-accounts.d.ts +47 -1
- package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
- package/packages/gateway/dist/provider-accounts.js +182 -25
- package/packages/gateway/dist/provider-accounts.js.map +1 -1
- package/packages/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
- package/packages/gateway/dist/surfaces/context-budget.js +10 -3
- package/packages/gateway/dist/surfaces/context-budget.js.map +1 -1
- package/packages/gateway/dist/web/server.d.ts.map +1 -1
- package/packages/gateway/dist/web/server.js +16 -13
- package/packages/gateway/dist/web/server.js.map +1 -1
- package/packages/install/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/codex-direct.d.ts +55 -0
- package/packages/runtime/dist/codex-direct.d.ts.map +1 -0
- package/packages/runtime/dist/codex-direct.js +334 -0
- package/packages/runtime/dist/codex-direct.js.map +1 -0
- package/packages/runtime/dist/codex-oauth.d.ts +66 -0
- package/packages/runtime/dist/codex-oauth.d.ts.map +1 -0
- package/packages/runtime/dist/codex-oauth.js +210 -0
- package/packages/runtime/dist/codex-oauth.js.map +1 -0
- package/packages/runtime/dist/codex-profile.d.ts +19 -0
- package/packages/runtime/dist/codex-profile.d.ts.map +1 -0
- package/packages/runtime/dist/codex-profile.js +99 -0
- package/packages/runtime/dist/codex-profile.js.map +1 -0
- package/packages/runtime/dist/context-window.d.ts.map +1 -1
- package/packages/runtime/dist/context-window.js +4 -0
- package/packages/runtime/dist/context-window.js.map +1 -1
- package/packages/runtime/dist/delegate.d.ts +24 -0
- package/packages/runtime/dist/delegate.d.ts.map +1 -1
- package/packages/runtime/dist/delegate.js +87 -11
- package/packages/runtime/dist/delegate.js.map +1 -1
- package/packages/runtime/dist/index.d.ts +4 -4
- package/packages/runtime/dist/index.d.ts.map +1 -1
- package/packages/runtime/dist/index.js +5 -5
- package/packages/runtime/dist/index.js.map +1 -1
- package/packages/runtime/dist/loop.d.ts +7 -0
- package/packages/runtime/dist/loop.d.ts.map +1 -1
- package/packages/runtime/dist/loop.js +48 -8
- package/packages/runtime/dist/loop.js.map +1 -1
- package/packages/runtime/dist/ollama-signing.d.ts +52 -0
- package/packages/runtime/dist/ollama-signing.d.ts.map +1 -0
- package/packages/runtime/dist/ollama-signing.js +154 -0
- package/packages/runtime/dist/ollama-signing.js.map +1 -0
- package/packages/runtime/dist/openai.d.ts.map +1 -1
- package/packages/runtime/dist/openai.js +21 -7
- package/packages/runtime/dist/openai.js.map +1 -1
- package/packages/runtime/dist/provider-models.d.ts +2 -0
- package/packages/runtime/dist/provider-models.d.ts.map +1 -1
- package/packages/runtime/dist/provider-models.js +8 -3
- package/packages/runtime/dist/provider-models.js.map +1 -1
- package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/.tsbuildinfo +1 -1
- package/packages/tools/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/packages/web/dist/assets/index-BRc5auXm.js +123 -0
- package/packages/web/dist/assets/{index-B727JQsO.css → index-DwUpotTR.css} +1 -1
- package/packages/web/dist/index.html +2 -2
- package/node_modules/@buddi/runtime/dist/codex-app-server.d.ts +0 -20
- package/node_modules/@buddi/runtime/dist/codex-app-server.d.ts.map +0 -1
- package/node_modules/@buddi/runtime/dist/codex-app-server.js +0 -172
- package/node_modules/@buddi/runtime/dist/codex-app-server.js.map +0 -1
- package/node_modules/@buddi/runtime/dist/codex-policy.d.ts +0 -6
- package/node_modules/@buddi/runtime/dist/codex-policy.d.ts.map +0 -1
- package/node_modules/@buddi/runtime/dist/codex-policy.js +0 -79
- package/node_modules/@buddi/runtime/dist/codex-policy.js.map +0 -1
- package/node_modules/@buddi/runtime/dist/codex-rpc.d.ts +0 -34
- package/node_modules/@buddi/runtime/dist/codex-rpc.d.ts.map +0 -1
- package/node_modules/@buddi/runtime/dist/codex-rpc.js +0 -152
- package/node_modules/@buddi/runtime/dist/codex-rpc.js.map +0 -1
- package/node_modules/@buddi/runtime/dist/codex-session.d.ts +0 -30
- package/node_modules/@buddi/runtime/dist/codex-session.d.ts.map +0 -1
- package/node_modules/@buddi/runtime/dist/codex-session.js +0 -169
- package/node_modules/@buddi/runtime/dist/codex-session.js.map +0 -1
- package/packages/runtime/dist/codex-app-server.d.ts +0 -20
- package/packages/runtime/dist/codex-app-server.d.ts.map +0 -1
- package/packages/runtime/dist/codex-app-server.js +0 -172
- package/packages/runtime/dist/codex-app-server.js.map +0 -1
- package/packages/runtime/dist/codex-policy.d.ts +0 -6
- package/packages/runtime/dist/codex-policy.d.ts.map +0 -1
- package/packages/runtime/dist/codex-policy.js +0 -79
- package/packages/runtime/dist/codex-policy.js.map +0 -1
- package/packages/runtime/dist/codex-rpc.d.ts +0 -34
- package/packages/runtime/dist/codex-rpc.d.ts.map +0 -1
- package/packages/runtime/dist/codex-rpc.js +0 -152
- package/packages/runtime/dist/codex-rpc.js.map +0 -1
- package/packages/runtime/dist/codex-session.d.ts +0 -30
- package/packages/runtime/dist/codex-session.d.ts.map +0 -1
- package/packages/runtime/dist/codex-session.js +0 -169
- package/packages/runtime/dist/codex-session.js.map +0 -1
- package/packages/web/dist/assets/index-OA0xgibo.js +0 -123
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/** Native credentials are staged only in a private, disposable Codex profile. */
|
|
2
|
-
import { execFile } from 'node:child_process';
|
|
3
|
-
import { chmod, lstat, mkdir, mkdtemp, readFile, readdir, rm, writeFile } from 'node:fs/promises';
|
|
4
|
-
import { tmpdir } from 'node:os';
|
|
5
|
-
import { join } from 'node:path';
|
|
6
|
-
import { promisify } from 'node:util';
|
|
7
|
-
import { CODEX_EXPERIMENT_CONFIG, codexConfigArgs } from './codex-policy.js';
|
|
8
|
-
import { codexChildEnv, spawnCodexRpc } from './codex-rpc.js';
|
|
9
|
-
/** Shape validation only; never decode, log or expose the tokens. */
|
|
10
|
-
export function validateCodexCredential(value) {
|
|
11
|
-
try {
|
|
12
|
-
// macOS `security -w` hex-encodes passwords containing control characters,
|
|
13
|
-
// including the newlines in Codex's pretty-printed auth.json. Decode only
|
|
14
|
-
// here, where a subscription JSON envelope is expected: a generic vault
|
|
15
|
-
// reader must not reinterpret an ordinary API key that happens to be hex.
|
|
16
|
-
if (Buffer.byteLength(value) > 128 * 1024)
|
|
17
|
-
throw new Error();
|
|
18
|
-
if (/^(?:[0-9a-f]{2})+$/i.test(value)) {
|
|
19
|
-
value = new TextDecoder('utf-8', { fatal: true }).decode(Buffer.from(value, 'hex'));
|
|
20
|
-
}
|
|
21
|
-
if (Buffer.byteLength(value) > 64 * 1024)
|
|
22
|
-
throw new Error();
|
|
23
|
-
const data = JSON.parse(value);
|
|
24
|
-
const tokens = data.tokens;
|
|
25
|
-
if (!tokens || typeof tokens.access_token !== 'string' || !tokens.access_token ||
|
|
26
|
-
typeof tokens.refresh_token !== 'string' || !tokens.refresh_token || data.OPENAI_API_KEY ||
|
|
27
|
-
(data.auth_mode !== undefined && data.auth_mode !== 'chatgpt'))
|
|
28
|
-
throw new Error();
|
|
29
|
-
// Persist one line so subsequent Keychain reads don't need the legacy
|
|
30
|
-
// decoding path. Preserve all native fields, including refresh metadata.
|
|
31
|
-
return JSON.stringify(data);
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
throw new Error('Invalid Codex subscription credential. Reconnect the account.');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/** Clean only marked, private profiles whose parent AND native child have exited. */
|
|
38
|
-
export async function cleanupCodexSessions(root = tmpdir()) {
|
|
39
|
-
const dead = (pid) => {
|
|
40
|
-
if (!Number.isSafeInteger(pid) || Number(pid) <= 0)
|
|
41
|
-
return false;
|
|
42
|
-
try {
|
|
43
|
-
process.kill(Number(pid), 0);
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
return error.code === 'ESRCH';
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
for (const name of await readdir(root)) {
|
|
51
|
-
if (!/^buddi-codex-session-[A-Za-z0-9]+$/.test(name))
|
|
52
|
-
continue;
|
|
53
|
-
const dir = join(root, name);
|
|
54
|
-
try {
|
|
55
|
-
const stat = await lstat(dir);
|
|
56
|
-
if (!stat.isDirectory() || stat.isSymbolicLink() || (stat.mode & 0o077) || stat.uid !== process.getuid?.())
|
|
57
|
-
continue;
|
|
58
|
-
const marker = join(dir, 'owner.json');
|
|
59
|
-
const markerStat = await lstat(marker);
|
|
60
|
-
if (!markerStat.isFile() || markerStat.size > 1024)
|
|
61
|
-
continue;
|
|
62
|
-
const owner = JSON.parse(await readFile(marker, 'utf8'));
|
|
63
|
-
if (owner.version === 1 && dead(owner.parent) && (owner.child === null || dead(owner.child)))
|
|
64
|
-
await rm(dir, { recursive: true, force: true });
|
|
65
|
-
}
|
|
66
|
-
catch { /* Not a recognizable owned orphan. Never guess or broaden cleanup. */ }
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
export async function openCodexSession(credential, executable = 'codex') {
|
|
70
|
-
if (process.platform === 'win32')
|
|
71
|
-
throw new Error('Codex experiment needs a verified private-directory ACL on Windows before it can run.');
|
|
72
|
-
if (credential !== null)
|
|
73
|
-
credential = validateCodexCredential(credential);
|
|
74
|
-
// Do not silently accept changed native tool behavior after a binary update.
|
|
75
|
-
const env = { PATH: process.env.PATH, HOME: process.env.HOME };
|
|
76
|
-
const version = await promisify(execFile)(executable, ['--version'], { env, timeout: 5_000, maxBuffer: 4096 })
|
|
77
|
-
.catch(() => { throw new Error('Codex executable is missing or unavailable on the host.'); });
|
|
78
|
-
if (version.stdout.trim() !== 'codex-cli 0.155.0')
|
|
79
|
-
throw new Error('Codex experiment requires the verified CLI version 0.155.0.');
|
|
80
|
-
await cleanupCodexSessions();
|
|
81
|
-
const dir = await mkdtemp(join(tmpdir(), 'buddi-codex-session-'));
|
|
82
|
-
const profileDir = join(dir, 'profile');
|
|
83
|
-
const cwd = join(dir, 'workspace');
|
|
84
|
-
const authFile = join(profileDir, 'auth.json');
|
|
85
|
-
let rpc;
|
|
86
|
-
try {
|
|
87
|
-
await chmod(dir, 0o700);
|
|
88
|
-
await mkdir(profileDir, { mode: 0o700 });
|
|
89
|
-
await mkdir(cwd, { mode: 0o700 });
|
|
90
|
-
await writeFile(join(dir, 'owner.json'), JSON.stringify({ version: 1, parent: process.pid, child: null }), { mode: 0o600, flag: 'wx' });
|
|
91
|
-
if (credential !== null)
|
|
92
|
-
await writeFile(authFile, credential, { mode: 0o600, flag: 'wx' });
|
|
93
|
-
rpc = spawnCodexRpc({ executable, profileDir, cwd, args: codexConfigArgs(CODEX_EXPERIMENT_CONFIG) });
|
|
94
|
-
await writeFile(join(dir, 'owner.json'), JSON.stringify({ version: 1, parent: process.pid, child: rpc.processId ?? null }), { mode: 0o600 });
|
|
95
|
-
let disposed = false;
|
|
96
|
-
return {
|
|
97
|
-
rpc, cwd,
|
|
98
|
-
async credential() {
|
|
99
|
-
if (disposed)
|
|
100
|
-
throw new Error('Codex session already disposed.');
|
|
101
|
-
const stat = await lstat(authFile).catch((error) => { if (error.code === 'ENOENT')
|
|
102
|
-
return null; throw error; });
|
|
103
|
-
if (!stat)
|
|
104
|
-
return null;
|
|
105
|
-
if (!stat.isFile() || stat.size > 64 * 1024)
|
|
106
|
-
throw new Error('Invalid native credential file.');
|
|
107
|
-
return validateCodexCredential(await readFile(authFile, 'utf8'));
|
|
108
|
-
},
|
|
109
|
-
async dispose() {
|
|
110
|
-
if (disposed)
|
|
111
|
-
return;
|
|
112
|
-
// If the process cannot be stopped, retain its private directory: never
|
|
113
|
-
// pretend cleanup succeeded while a process may recreate credential files.
|
|
114
|
-
await rpc.close();
|
|
115
|
-
await rm(dir, { recursive: true, force: true });
|
|
116
|
-
disposed = true;
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
catch (error) {
|
|
121
|
-
if (rpc)
|
|
122
|
-
await rpc.close();
|
|
123
|
-
await rm(dir, { recursive: true, force: true });
|
|
124
|
-
throw error;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
export async function stageCodexProfile(credential) {
|
|
128
|
-
if (process.platform === 'win32')
|
|
129
|
-
throw new Error('Codex experiment needs a verified private-directory ACL on Windows before it can run.');
|
|
130
|
-
credential = validateCodexCredential(credential);
|
|
131
|
-
await cleanupCodexSessions();
|
|
132
|
-
const dir = await mkdtemp(join(tmpdir(), 'buddi-codex-session-'));
|
|
133
|
-
const home = join(dir, 'profile');
|
|
134
|
-
const workspace = join(dir, 'workspace');
|
|
135
|
-
const authFile = join(home, 'auth.json');
|
|
136
|
-
try {
|
|
137
|
-
await chmod(dir, 0o700);
|
|
138
|
-
await mkdir(home, { mode: 0o700 });
|
|
139
|
-
await mkdir(workspace, { mode: 0o700 });
|
|
140
|
-
await writeFile(join(dir, 'owner.json'), JSON.stringify({ version: 1, parent: process.pid, child: null }), { mode: 0o600, flag: 'wx' });
|
|
141
|
-
await writeFile(authFile, credential, { mode: 0o600, flag: 'wx' });
|
|
142
|
-
}
|
|
143
|
-
catch (error) {
|
|
144
|
-
await rm(dir, { recursive: true, force: true });
|
|
145
|
-
throw error;
|
|
146
|
-
}
|
|
147
|
-
let disposed = false;
|
|
148
|
-
return {
|
|
149
|
-
home, workspace, env: codexChildEnv(home),
|
|
150
|
-
async credential() {
|
|
151
|
-
if (disposed)
|
|
152
|
-
throw new Error('Codex profile already disposed.');
|
|
153
|
-
const stat = await lstat(authFile).catch((error) => { if (error.code === 'ENOENT')
|
|
154
|
-
return null; throw error; });
|
|
155
|
-
if (!stat)
|
|
156
|
-
return null;
|
|
157
|
-
if (!stat.isFile() || stat.size > 64 * 1024)
|
|
158
|
-
throw new Error('Invalid native credential file.');
|
|
159
|
-
return validateCodexCredential(await readFile(authFile, 'utf8'));
|
|
160
|
-
},
|
|
161
|
-
async dispose() {
|
|
162
|
-
if (disposed)
|
|
163
|
-
return;
|
|
164
|
-
await rm(dir, { recursive: true, force: true });
|
|
165
|
-
disposed = true;
|
|
166
|
-
},
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
//# sourceMappingURL=codex-session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-session.js","sourceRoot":"","sources":["../src/codex-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Experimental, dependency-injected App Server adapter. Selected only by the
|
|
3
|
-
* opt-in Codex account service, never by the generic HTTP provider factory.
|
|
4
|
-
*
|
|
5
|
-
* One child/thread per completion. A tool request is returned as a proposal, then
|
|
6
|
-
* the child is closed BEFORE the caller can execute it through Buddi's registry.
|
|
7
|
-
* Resumption reconstructs history; no subprocess waits through owner approval.
|
|
8
|
-
*/
|
|
9
|
-
import type { CompletionRequest, RuntimeProvider } from './anthropic.js';
|
|
10
|
-
import { type CodexRpc } from './codex-rpc.js';
|
|
11
|
-
/** Keep useful classifications, never raw provider text (which can echo secrets). */
|
|
12
|
-
export declare function codexTurnError(value: unknown): Error;
|
|
13
|
-
export declare function codexHistory(req: CompletionRequest, names: Map<string, string>): unknown[];
|
|
14
|
-
export declare function createCodexAppServerAdapter(options: {
|
|
15
|
-
model: string;
|
|
16
|
-
cwd: string;
|
|
17
|
-
connect(): CodexRpc;
|
|
18
|
-
timeoutMs?: number;
|
|
19
|
-
}): RuntimeProvider;
|
|
20
|
-
//# sourceMappingURL=codex-app-server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-app-server.d.ts","sourceRoot":"","sources":["../src/codex-app-server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAoC,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAG3G,OAAO,EAAmB,KAAK,QAAQ,EAAmB,MAAM,gBAAgB,CAAC;AAOjF,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAsBpD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,EAAE,CAc1F;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,IAAI,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,eAAe,CAgGlB"}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { toolNameMap } from './anthropic.js';
|
|
2
|
-
import { providerCapabilities } from './capabilities.js';
|
|
3
|
-
import { initializeCodex } from './codex-rpc.js';
|
|
4
|
-
import { assertCodexIsolation } from './codex-policy.js';
|
|
5
|
-
function record(value) {
|
|
6
|
-
return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
7
|
-
}
|
|
8
|
-
/** Keep useful classifications, never raw provider text (which can echo secrets). */
|
|
9
|
-
export function codexTurnError(value) {
|
|
10
|
-
const error = record(value);
|
|
11
|
-
const message = typeof error.message === 'string' ? error.message : '';
|
|
12
|
-
if (/model.{0,200}(?:not supported|unsupported|not available|does not exist)/i.test(message)) {
|
|
13
|
-
return Object.assign(new Error('The selected model is not available for this Codex account. Choose a supported model in agent settings.'), { status: 400, type: 'model_not_supported' });
|
|
14
|
-
}
|
|
15
|
-
const info = error.codexErrorInfo;
|
|
16
|
-
const kind = typeof info === 'string' ? info : Object.keys(record(info))[0];
|
|
17
|
-
const known = {
|
|
18
|
-
contextWindowExceeded: [400, 'context_window_exceeded'], usageLimitExceeded: [429, 'rate_limit_error'],
|
|
19
|
-
unauthorized: [401, 'authentication_error'], badRequest: [400, 'invalid_request_error'],
|
|
20
|
-
internalServerError: [500, 'provider_error'], httpConnectionFailed: [undefined, 'transport_error'],
|
|
21
|
-
responseStreamConnectionFailed: [undefined, 'transport_error'], responseStreamDisconnected: [undefined, 'transport_error'],
|
|
22
|
-
responseTooManyFailedAttempts: [undefined, 'transport_error'], sandboxError: [undefined, 'sandbox_error'],
|
|
23
|
-
};
|
|
24
|
-
const recognized = kind && Object.hasOwn(known, kind) ? known[kind] : undefined;
|
|
25
|
-
if (!recognized)
|
|
26
|
-
return new Error('Codex turn did not complete successfully.');
|
|
27
|
-
const upstream = record(record(info)[kind]).httpStatusCode;
|
|
28
|
-
const status = typeof upstream === 'number' && Number.isInteger(upstream) && upstream >= 400 && upstream <= 599 ? upstream : recognized[0];
|
|
29
|
-
return Object.assign(new Error(`Codex turn failed (${kind}${status ? `; HTTP ${status}` : ''}).`), { ...(status !== undefined ? { status } : {}), type: status !== undefined ? 'http_error' : recognized[1] });
|
|
30
|
-
}
|
|
31
|
-
export function codexHistory(req, names) {
|
|
32
|
-
return req.messages.flatMap((message) => message.content.map((block) => {
|
|
33
|
-
switch (block.type) {
|
|
34
|
-
case 'text': return { type: 'message', role: message.role, content: [{ type: message.role === 'user' ? 'input_text' : 'output_text', text: block.text }] };
|
|
35
|
-
case 'image': return { type: 'message', role: message.role, content: [{ type: 'input_image', image_url: `data:${block.mime};base64,${block.data}` }] };
|
|
36
|
-
case 'tool_use': {
|
|
37
|
-
const name = names.get(block.name);
|
|
38
|
-
if (!name)
|
|
39
|
-
throw new Error('Codex cannot replay a tool that is no longer granted.');
|
|
40
|
-
return { type: 'function_call', call_id: block.id, name, arguments: JSON.stringify(block.input) };
|
|
41
|
-
}
|
|
42
|
-
case 'tool_result': return { type: 'function_call_output', call_id: block.tool_use_id, output: block.is_error ? `[Buddi tool failed]\n${block.content}` : block.content };
|
|
43
|
-
default: throw new Error(`Codex experiment cannot replay ${block.type} content.`);
|
|
44
|
-
}
|
|
45
|
-
}));
|
|
46
|
-
}
|
|
47
|
-
export function createCodexAppServerAdapter(options) {
|
|
48
|
-
return {
|
|
49
|
-
capabilities: { ...providerCapabilities('openai'), parallelToolCalls: false, usageReporting: false },
|
|
50
|
-
async complete(req) {
|
|
51
|
-
req.signal?.throwIfAborted();
|
|
52
|
-
// The native turn API has no exact per-completion max-output-token control.
|
|
53
|
-
// Do not pretend Buddi's testing/cost cap was enforced.
|
|
54
|
-
if (req.maxTokens !== undefined)
|
|
55
|
-
throw new Error('Codex experiment does not support an exact maxTokens cap.');
|
|
56
|
-
if (req.nativeSearch)
|
|
57
|
-
throw new Error('Codex native search is disabled; use a granted Buddi tool.');
|
|
58
|
-
const mapping = toolNameMap(req.tools, 64, ['request_user_input', 'skills']);
|
|
59
|
-
const names = new Map([...mapping].map(([wire, original]) => [original, wire]));
|
|
60
|
-
const history = codexHistory(req, names);
|
|
61
|
-
const rpc = options.connect();
|
|
62
|
-
let threadId;
|
|
63
|
-
let turnId;
|
|
64
|
-
let lastError;
|
|
65
|
-
const content = [];
|
|
66
|
-
const usage = { input: 0, output: 0 };
|
|
67
|
-
let finish;
|
|
68
|
-
let fail;
|
|
69
|
-
let settled = false;
|
|
70
|
-
const done = new Promise((resolve, reject) => {
|
|
71
|
-
finish = (response) => { if (!settled) {
|
|
72
|
-
settled = true;
|
|
73
|
-
resolve(response);
|
|
74
|
-
} };
|
|
75
|
-
fail = (error) => { if (!settled) {
|
|
76
|
-
settled = true;
|
|
77
|
-
reject(error);
|
|
78
|
-
} };
|
|
79
|
-
});
|
|
80
|
-
// A notification can fail while a setup request is pending.
|
|
81
|
-
void done.catch(() => { });
|
|
82
|
-
const abort = () => {
|
|
83
|
-
fail(new Error('Codex completion cancelled.'));
|
|
84
|
-
if (threadId && turnId)
|
|
85
|
-
void rpc.request('turn/interrupt', { threadId, turnId }).catch(() => { });
|
|
86
|
-
void rpc.close().catch(() => { });
|
|
87
|
-
};
|
|
88
|
-
req.signal?.addEventListener('abort', abort, { once: true });
|
|
89
|
-
const timer = setTimeout(() => { fail(new Error('Codex completion timed out.')); void rpc.close().catch(() => { }); }, options.timeoutMs ?? 120_000);
|
|
90
|
-
const offClose = rpc.onClose(fail);
|
|
91
|
-
const offMessage = rpc.onMessage((message) => {
|
|
92
|
-
if (settled)
|
|
93
|
-
return;
|
|
94
|
-
const params = record(message.params);
|
|
95
|
-
if (params.threadId !== threadId)
|
|
96
|
-
return;
|
|
97
|
-
if (turnId && params.turnId && params.turnId !== turnId)
|
|
98
|
-
return;
|
|
99
|
-
if (message.method === 'item/tool/call') {
|
|
100
|
-
const original = [...names].find(([, wire]) => wire === params.tool)?.[0];
|
|
101
|
-
if (!original || params.namespace || typeof params.callId !== 'string' || message.id === undefined) {
|
|
102
|
-
fail(new Error('Codex requested a tool outside this completion’s grant.'));
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
content.push({ type: 'tool_use', id: params.callId, name: original, input: params.arguments });
|
|
106
|
-
finish({ content, stopReason: 'tool_use', usage, model: options.model });
|
|
107
|
-
}
|
|
108
|
-
// Do not answer the native tool request. The finally block closes the
|
|
109
|
-
// child after the turn/start acknowledgement, before returning to Buddi.
|
|
110
|
-
}
|
|
111
|
-
else if (message.method === 'item/completed') {
|
|
112
|
-
const item = record(params.item);
|
|
113
|
-
if (item.type === 'agentMessage' && typeof item.text === 'string')
|
|
114
|
-
content.push({ type: 'text', text: item.text });
|
|
115
|
-
}
|
|
116
|
-
else if (message.method === 'item/started') {
|
|
117
|
-
const type = record(params.item).type;
|
|
118
|
-
if (!['agentMessage', 'reasoning', 'userMessage', 'dynamicToolCall'].includes(String(type))) {
|
|
119
|
-
fail(new Error('Codex emitted an unsupported native activity.'));
|
|
120
|
-
void rpc.close().catch(() => { });
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else if (message.method === 'thread/tokenUsage/updated') {
|
|
124
|
-
const last = record(record(params.tokenUsage).last);
|
|
125
|
-
if (typeof last.inputTokens === 'number')
|
|
126
|
-
usage.input = last.inputTokens;
|
|
127
|
-
if (typeof last.outputTokens === 'number')
|
|
128
|
-
usage.output = last.outputTokens;
|
|
129
|
-
}
|
|
130
|
-
else if (message.method === 'error') {
|
|
131
|
-
// Retrying error events are not terminal. Keep a sanitized fallback
|
|
132
|
-
// for clients that omit the error from the final turn notification.
|
|
133
|
-
lastError = codexTurnError(params.error);
|
|
134
|
-
}
|
|
135
|
-
else if (message.method === 'turn/completed') {
|
|
136
|
-
const turn = record(params.turn);
|
|
137
|
-
if (turn.status === 'completed')
|
|
138
|
-
finish({ content, stopReason: 'end_turn', usage, model: options.model });
|
|
139
|
-
else
|
|
140
|
-
fail(turn.error ? codexTurnError(turn.error) : lastError ?? codexTurnError(undefined));
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
try {
|
|
144
|
-
if (req.signal?.aborted)
|
|
145
|
-
abort();
|
|
146
|
-
await initializeCodex(rpc);
|
|
147
|
-
await assertCodexIsolation(rpc, options.cwd);
|
|
148
|
-
const started = record(await rpc.request('thread/start', {
|
|
149
|
-
model: options.model, cwd: options.cwd, ephemeral: true, environments: [], selectedCapabilityRoots: [],
|
|
150
|
-
approvalPolicy: 'on-request', sandbox: 'read-only',
|
|
151
|
-
baseInstructions: req.system,
|
|
152
|
-
dynamicTools: req.tools.map((tool) => ({ type: 'function', name: names.get(tool.name), description: tool.description, inputSchema: tool.input_schema })),
|
|
153
|
-
}));
|
|
154
|
-
threadId = record(started.thread).id;
|
|
155
|
-
if (!threadId || started.model !== options.model)
|
|
156
|
-
throw new Error('Codex thread model did not match the requested model.');
|
|
157
|
-
await rpc.request('thread/inject_items', { threadId, items: history });
|
|
158
|
-
const turn = record(await rpc.request('turn/start', { threadId, input: [] }));
|
|
159
|
-
turnId = record(turn.turn).id;
|
|
160
|
-
return await done;
|
|
161
|
-
}
|
|
162
|
-
finally {
|
|
163
|
-
clearTimeout(timer);
|
|
164
|
-
req.signal?.removeEventListener('abort', abort);
|
|
165
|
-
offMessage();
|
|
166
|
-
offClose();
|
|
167
|
-
await rpc.close();
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=codex-app-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-app-server.js","sourceRoot":"","sources":["../src/codex-app-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { CodexRpc } from './codex-rpc.js';
|
|
2
|
-
/** Pinned configuration, coupled with an empty native skill-catalog preflight. */
|
|
3
|
-
export declare const CODEX_EXPERIMENT_CONFIG: Record<string, unknown>;
|
|
4
|
-
export declare function codexConfigArgs(config: Record<string, unknown>): string[];
|
|
5
|
-
export declare function assertCodexIsolation(rpc: CodexRpc, cwd: string): Promise<void>;
|
|
6
|
-
//# sourceMappingURL=codex-policy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-policy.d.ts","sourceRoot":"","sources":["../src/codex-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CA2C3D,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAEzE;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BpF"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/** Pinned configuration, coupled with an empty native skill-catalog preflight. */
|
|
2
|
-
export const CODEX_EXPERIMENT_CONFIG = {
|
|
3
|
-
approval_policy: 'on-request',
|
|
4
|
-
sandbox_mode: 'read-only',
|
|
5
|
-
web_search: 'disabled',
|
|
6
|
-
cli_auth_credentials_store: 'file',
|
|
7
|
-
forced_login_method: 'chatgpt',
|
|
8
|
-
mcp_servers: {},
|
|
9
|
-
notify: [],
|
|
10
|
-
hooks: {},
|
|
11
|
-
project_doc_max_bytes: 0,
|
|
12
|
-
check_for_update_on_startup: false,
|
|
13
|
-
'history.persistence': 'none',
|
|
14
|
-
'analytics.enabled': false,
|
|
15
|
-
'feedback.enabled': false,
|
|
16
|
-
'agents.enabled': false,
|
|
17
|
-
'features.shell_tool': false,
|
|
18
|
-
'features.unified_exec': false,
|
|
19
|
-
'features.shell_snapshot': false,
|
|
20
|
-
'features.view_image': false,
|
|
21
|
-
'tools.view_image': false,
|
|
22
|
-
'features.apps': false,
|
|
23
|
-
'features.plugins': false,
|
|
24
|
-
'features.remote_plugin': false,
|
|
25
|
-
'features.hooks': false,
|
|
26
|
-
'features.browser_use': false,
|
|
27
|
-
'features.browser_use_external': false,
|
|
28
|
-
'features.computer_use': false,
|
|
29
|
-
'features.in_app_browser': false,
|
|
30
|
-
'features.multi_agent': false,
|
|
31
|
-
'features.multi_agent_v2': false,
|
|
32
|
-
'features.memories': false,
|
|
33
|
-
'features.workspace_dependencies': false,
|
|
34
|
-
'features.skill_mcp_dependency_install': false,
|
|
35
|
-
'features.skip_host_skill_discovery': true,
|
|
36
|
-
'features.skill_search': false,
|
|
37
|
-
'features.code_mode': false,
|
|
38
|
-
// Required to dispatch modern models' tool calls to the client. This is the
|
|
39
|
-
// internal dispatcher, not a grant of native shell/code/browser tools.
|
|
40
|
-
'features.code_mode_host': true,
|
|
41
|
-
'features.image_generation': false,
|
|
42
|
-
'features.goals': false,
|
|
43
|
-
'features.sleep_tool': false,
|
|
44
|
-
'features.tool_suggest': false,
|
|
45
|
-
};
|
|
46
|
-
export function codexConfigArgs(config) {
|
|
47
|
-
return Object.entries(config).flatMap(([key, value]) => ['-c', `${key}=${JSON.stringify(value)}`]);
|
|
48
|
-
}
|
|
49
|
-
export async function assertCodexIsolation(rpc, cwd) {
|
|
50
|
-
const read = await rpc.request('config/read', { includeLayers: false });
|
|
51
|
-
const config = read?.config;
|
|
52
|
-
const features = config?.features;
|
|
53
|
-
if (!config || config.sandbox_mode !== 'read-only' || config.web_search !== 'disabled' ||
|
|
54
|
-
!features || Object.entries(CODEX_EXPERIMENT_CONFIG).some(([key, value]) => key.startsWith('features.') && features[key.slice('features.'.length)] !== value) ||
|
|
55
|
-
Object.values((config.mcp_servers ?? {})).some(server => server.enabled !== false)) {
|
|
56
|
-
throw new Error('Codex isolation check failed: effective native tool restrictions do not match.');
|
|
57
|
-
}
|
|
58
|
-
const result = await rpc.request('skills/list', { cwds: [cwd], forceReload: true });
|
|
59
|
-
if (!Array.isArray(result?.data) || result.data.length !== 1 ||
|
|
60
|
-
!Array.isArray(result.data[0]?.skills) || result.data[0].skills.length > 1000 ||
|
|
61
|
-
result.data[0].errors?.length) {
|
|
62
|
-
throw new Error('Codex isolation check failed: native skill catalog must be empty.');
|
|
63
|
-
}
|
|
64
|
-
for (const skill of result.data[0].skills) {
|
|
65
|
-
if (typeof skill.path !== 'string')
|
|
66
|
-
throw new Error('Invalid Codex skill catalog.');
|
|
67
|
-
// This changes ONLY the freshly-created private Codex profile's config,
|
|
68
|
-
// never the discovered skill file or the owner's real Codex settings.
|
|
69
|
-
if (skill.enabled !== false)
|
|
70
|
-
await rpc.request('skills/config/write', { path: skill.path, enabled: false });
|
|
71
|
-
}
|
|
72
|
-
const checked = await rpc.request('skills/list', { cwds: [cwd], forceReload: true });
|
|
73
|
-
if (!Array.isArray(checked?.data) || checked.data.length !== 1 ||
|
|
74
|
-
!Array.isArray(checked.data[0]?.skills) || checked.data[0].errors?.length ||
|
|
75
|
-
checked.data[0].skills.some(skill => skill.enabled !== false)) {
|
|
76
|
-
throw new Error('Codex isolation check failed: native skills remain enabled.');
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=codex-policy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-policy.js","sourceRoot":"","sources":["../src/codex-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/** Experimental Codex App Server NDJSON client. No credentials or raw stderr in errors. */
|
|
2
|
-
import { type ChildProcessWithoutNullStreams } from 'node:child_process';
|
|
3
|
-
export type RpcMessage = {
|
|
4
|
-
id?: string | number;
|
|
5
|
-
method?: string;
|
|
6
|
-
params?: unknown;
|
|
7
|
-
result?: unknown;
|
|
8
|
-
error?: unknown;
|
|
9
|
-
};
|
|
10
|
-
export interface CodexRpc {
|
|
11
|
-
readonly processId?: number;
|
|
12
|
-
request(method: string, params?: unknown): Promise<unknown>;
|
|
13
|
-
notify(method: string, params?: unknown): void;
|
|
14
|
-
onMessage(listener: (message: RpcMessage) => void): () => void;
|
|
15
|
-
onClose(listener: (error: Error) => void): () => void;
|
|
16
|
-
close(): Promise<void>;
|
|
17
|
-
}
|
|
18
|
-
export declare function createCodexRpc(child: ChildProcessWithoutNullStreams, timeoutMs?: number): CodexRpc;
|
|
19
|
-
export declare function initializeCodex(rpc: CodexRpc): Promise<void>;
|
|
20
|
-
/** No shell, no inherited provider keys, no user's Codex configuration. */
|
|
21
|
-
export declare function spawnCodexRpc(options: {
|
|
22
|
-
executable: string;
|
|
23
|
-
profileDir: string;
|
|
24
|
-
cwd: string;
|
|
25
|
-
args: readonly string[];
|
|
26
|
-
}): CodexRpc;
|
|
27
|
-
/**
|
|
28
|
-
* The whole environment a native Codex child gets: a short allowlist, so no
|
|
29
|
-
* ambient provider key (OPENAI_API_KEY and the like) and no owner CODEX_HOME
|
|
30
|
-
* reaches it. CODEX_HOME is the native client's documented per-account
|
|
31
|
-
* configuration, not a change to this process or the owner's CLI environment.
|
|
32
|
-
*/
|
|
33
|
-
export declare function codexChildEnv(profileDir: string): Record<string, string>;
|
|
34
|
-
//# sourceMappingURL=codex-rpc.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-rpc.d.ts","sourceRoot":"","sources":["../src/codex-rpc.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAS,KAAK,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAGhF,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACxH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC/D,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,8BAA8B,EAAE,SAAS,SAAS,GAAG,QAAQ,CAyFlG;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlE;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,GAAG,QAAQ,CAIX;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxE"}
|