@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.
Files changed (222) hide show
  1. package/README.md +1 -1
  2. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  3. package/node_modules/@buddi/cli/dist/commands.js +1 -1
  4. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  5. package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
  6. package/node_modules/@buddi/cli/dist/main.js +12 -2
  7. package/node_modules/@buddi/cli/dist/main.js.map +1 -1
  8. package/node_modules/@buddi/cli/dist/status.d.ts +10 -0
  9. package/node_modules/@buddi/cli/dist/status.d.ts.map +1 -1
  10. package/node_modules/@buddi/cli/dist/status.js +4 -0
  11. package/node_modules/@buddi/cli/dist/status.js.map +1 -1
  12. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  13. package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
  14. package/node_modules/@buddi/core/dist/agents/catalog.js +7 -1
  15. package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
  16. package/node_modules/@buddi/core/dist/provider-accounts.d.ts +7 -1
  17. package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
  18. package/node_modules/@buddi/core/dist/provider-accounts.js +14 -1
  19. package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
  20. package/node_modules/@buddi/core/dist/provider.d.ts +6 -0
  21. package/node_modules/@buddi/core/dist/provider.d.ts.map +1 -1
  22. package/node_modules/@buddi/core/dist/provider.js.map +1 -1
  23. package/node_modules/@buddi/core/migrations/046_ollama_device_key.sql +7 -0
  24. package/node_modules/@buddi/core/migrations/047_reported_context_windows.sql +5 -0
  25. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  26. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts +24 -11
  27. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts.map +1 -1
  28. package/node_modules/@buddi/gateway/dist/codex-accounts.js +151 -215
  29. package/node_modules/@buddi/gateway/dist/codex-accounts.js.map +1 -1
  30. package/node_modules/@buddi/gateway/dist/index.d.ts +1 -0
  31. package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
  32. package/node_modules/@buddi/gateway/dist/index.js +1 -0
  33. package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
  34. package/node_modules/@buddi/gateway/dist/ollama-accounts.d.ts +87 -0
  35. package/node_modules/@buddi/gateway/dist/ollama-accounts.d.ts.map +1 -0
  36. package/node_modules/@buddi/gateway/dist/ollama-accounts.js +179 -0
  37. package/node_modules/@buddi/gateway/dist/ollama-accounts.js.map +1 -0
  38. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts +47 -1
  39. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
  40. package/node_modules/@buddi/gateway/dist/provider-accounts.js +182 -25
  41. package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
  42. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
  43. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js +10 -3
  44. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js.map +1 -1
  45. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  46. package/node_modules/@buddi/gateway/dist/web/server.js +16 -13
  47. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  48. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  49. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  50. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts +55 -0
  51. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts.map +1 -0
  52. package/node_modules/@buddi/runtime/dist/codex-direct.js +334 -0
  53. package/node_modules/@buddi/runtime/dist/codex-direct.js.map +1 -0
  54. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts +66 -0
  55. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts.map +1 -0
  56. package/node_modules/@buddi/runtime/dist/codex-oauth.js +210 -0
  57. package/node_modules/@buddi/runtime/dist/codex-oauth.js.map +1 -0
  58. package/node_modules/@buddi/runtime/dist/codex-profile.d.ts +19 -0
  59. package/node_modules/@buddi/runtime/dist/codex-profile.d.ts.map +1 -0
  60. package/node_modules/@buddi/runtime/dist/codex-profile.js +99 -0
  61. package/node_modules/@buddi/runtime/dist/codex-profile.js.map +1 -0
  62. package/node_modules/@buddi/runtime/dist/context-window.d.ts.map +1 -1
  63. package/node_modules/@buddi/runtime/dist/context-window.js +4 -0
  64. package/node_modules/@buddi/runtime/dist/context-window.js.map +1 -1
  65. package/node_modules/@buddi/runtime/dist/delegate.d.ts +24 -0
  66. package/node_modules/@buddi/runtime/dist/delegate.d.ts.map +1 -1
  67. package/node_modules/@buddi/runtime/dist/delegate.js +87 -11
  68. package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
  69. package/node_modules/@buddi/runtime/dist/index.d.ts +4 -4
  70. package/node_modules/@buddi/runtime/dist/index.d.ts.map +1 -1
  71. package/node_modules/@buddi/runtime/dist/index.js +5 -5
  72. package/node_modules/@buddi/runtime/dist/index.js.map +1 -1
  73. package/node_modules/@buddi/runtime/dist/loop.d.ts +7 -0
  74. package/node_modules/@buddi/runtime/dist/loop.d.ts.map +1 -1
  75. package/node_modules/@buddi/runtime/dist/loop.js +48 -8
  76. package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
  77. package/node_modules/@buddi/runtime/dist/ollama-signing.d.ts +52 -0
  78. package/node_modules/@buddi/runtime/dist/ollama-signing.d.ts.map +1 -0
  79. package/node_modules/@buddi/runtime/dist/ollama-signing.js +154 -0
  80. package/node_modules/@buddi/runtime/dist/ollama-signing.js.map +1 -0
  81. package/node_modules/@buddi/runtime/dist/openai.d.ts.map +1 -1
  82. package/node_modules/@buddi/runtime/dist/openai.js +21 -7
  83. package/node_modules/@buddi/runtime/dist/openai.js.map +1 -1
  84. package/node_modules/@buddi/runtime/dist/provider-models.d.ts +2 -0
  85. package/node_modules/@buddi/runtime/dist/provider-models.d.ts.map +1 -1
  86. package/node_modules/@buddi/runtime/dist/provider-models.js +8 -3
  87. package/node_modules/@buddi/runtime/dist/provider-models.js.map +1 -1
  88. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  89. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  90. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  91. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  92. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  93. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  94. package/package.json +2 -2
  95. package/packages/cli/dist/.tsbuildinfo +1 -1
  96. package/packages/cli/dist/commands.js +1 -1
  97. package/packages/cli/dist/commands.js.map +1 -1
  98. package/packages/cli/dist/main.d.ts.map +1 -1
  99. package/packages/cli/dist/main.js +12 -2
  100. package/packages/cli/dist/main.js.map +1 -1
  101. package/packages/cli/dist/status.d.ts +10 -0
  102. package/packages/cli/dist/status.d.ts.map +1 -1
  103. package/packages/cli/dist/status.js +4 -0
  104. package/packages/cli/dist/status.js.map +1 -1
  105. package/packages/core/dist/.tsbuildinfo +1 -1
  106. package/packages/core/dist/agents/catalog.d.ts.map +1 -1
  107. package/packages/core/dist/agents/catalog.js +7 -1
  108. package/packages/core/dist/agents/catalog.js.map +1 -1
  109. package/packages/core/dist/provider-accounts.d.ts +7 -1
  110. package/packages/core/dist/provider-accounts.d.ts.map +1 -1
  111. package/packages/core/dist/provider-accounts.js +14 -1
  112. package/packages/core/dist/provider-accounts.js.map +1 -1
  113. package/packages/core/dist/provider.d.ts +6 -0
  114. package/packages/core/dist/provider.d.ts.map +1 -1
  115. package/packages/core/dist/provider.js.map +1 -1
  116. package/packages/core/migrations/046_ollama_device_key.sql +7 -0
  117. package/packages/core/migrations/047_reported_context_windows.sql +5 -0
  118. package/packages/gateway/dist/.tsbuildinfo +1 -1
  119. package/packages/gateway/dist/codex-accounts.d.ts +24 -11
  120. package/packages/gateway/dist/codex-accounts.d.ts.map +1 -1
  121. package/packages/gateway/dist/codex-accounts.js +151 -215
  122. package/packages/gateway/dist/codex-accounts.js.map +1 -1
  123. package/packages/gateway/dist/index.d.ts +1 -0
  124. package/packages/gateway/dist/index.d.ts.map +1 -1
  125. package/packages/gateway/dist/index.js +1 -0
  126. package/packages/gateway/dist/index.js.map +1 -1
  127. package/packages/gateway/dist/ollama-accounts.d.ts +87 -0
  128. package/packages/gateway/dist/ollama-accounts.d.ts.map +1 -0
  129. package/packages/gateway/dist/ollama-accounts.js +179 -0
  130. package/packages/gateway/dist/ollama-accounts.js.map +1 -0
  131. package/packages/gateway/dist/provider-accounts.d.ts +47 -1
  132. package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
  133. package/packages/gateway/dist/provider-accounts.js +182 -25
  134. package/packages/gateway/dist/provider-accounts.js.map +1 -1
  135. package/packages/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
  136. package/packages/gateway/dist/surfaces/context-budget.js +10 -3
  137. package/packages/gateway/dist/surfaces/context-budget.js.map +1 -1
  138. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  139. package/packages/gateway/dist/web/server.js +16 -13
  140. package/packages/gateway/dist/web/server.js.map +1 -1
  141. package/packages/install/dist/.tsbuildinfo +1 -1
  142. package/packages/runtime/dist/.tsbuildinfo +1 -1
  143. package/packages/runtime/dist/codex-direct.d.ts +55 -0
  144. package/packages/runtime/dist/codex-direct.d.ts.map +1 -0
  145. package/packages/runtime/dist/codex-direct.js +334 -0
  146. package/packages/runtime/dist/codex-direct.js.map +1 -0
  147. package/packages/runtime/dist/codex-oauth.d.ts +66 -0
  148. package/packages/runtime/dist/codex-oauth.d.ts.map +1 -0
  149. package/packages/runtime/dist/codex-oauth.js +210 -0
  150. package/packages/runtime/dist/codex-oauth.js.map +1 -0
  151. package/packages/runtime/dist/codex-profile.d.ts +19 -0
  152. package/packages/runtime/dist/codex-profile.d.ts.map +1 -0
  153. package/packages/runtime/dist/codex-profile.js +99 -0
  154. package/packages/runtime/dist/codex-profile.js.map +1 -0
  155. package/packages/runtime/dist/context-window.d.ts.map +1 -1
  156. package/packages/runtime/dist/context-window.js +4 -0
  157. package/packages/runtime/dist/context-window.js.map +1 -1
  158. package/packages/runtime/dist/delegate.d.ts +24 -0
  159. package/packages/runtime/dist/delegate.d.ts.map +1 -1
  160. package/packages/runtime/dist/delegate.js +87 -11
  161. package/packages/runtime/dist/delegate.js.map +1 -1
  162. package/packages/runtime/dist/index.d.ts +4 -4
  163. package/packages/runtime/dist/index.d.ts.map +1 -1
  164. package/packages/runtime/dist/index.js +5 -5
  165. package/packages/runtime/dist/index.js.map +1 -1
  166. package/packages/runtime/dist/loop.d.ts +7 -0
  167. package/packages/runtime/dist/loop.d.ts.map +1 -1
  168. package/packages/runtime/dist/loop.js +48 -8
  169. package/packages/runtime/dist/loop.js.map +1 -1
  170. package/packages/runtime/dist/ollama-signing.d.ts +52 -0
  171. package/packages/runtime/dist/ollama-signing.d.ts.map +1 -0
  172. package/packages/runtime/dist/ollama-signing.js +154 -0
  173. package/packages/runtime/dist/ollama-signing.js.map +1 -0
  174. package/packages/runtime/dist/openai.d.ts.map +1 -1
  175. package/packages/runtime/dist/openai.js +21 -7
  176. package/packages/runtime/dist/openai.js.map +1 -1
  177. package/packages/runtime/dist/provider-models.d.ts +2 -0
  178. package/packages/runtime/dist/provider-models.d.ts.map +1 -1
  179. package/packages/runtime/dist/provider-models.js +8 -3
  180. package/packages/runtime/dist/provider-models.js.map +1 -1
  181. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  182. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  183. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  184. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  185. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  186. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  187. package/packages/web/dist/assets/index-BRc5auXm.js +123 -0
  188. package/packages/web/dist/assets/{index-B727JQsO.css → index-DwUpotTR.css} +1 -1
  189. package/packages/web/dist/index.html +2 -2
  190. package/node_modules/@buddi/runtime/dist/codex-app-server.d.ts +0 -20
  191. package/node_modules/@buddi/runtime/dist/codex-app-server.d.ts.map +0 -1
  192. package/node_modules/@buddi/runtime/dist/codex-app-server.js +0 -172
  193. package/node_modules/@buddi/runtime/dist/codex-app-server.js.map +0 -1
  194. package/node_modules/@buddi/runtime/dist/codex-policy.d.ts +0 -6
  195. package/node_modules/@buddi/runtime/dist/codex-policy.d.ts.map +0 -1
  196. package/node_modules/@buddi/runtime/dist/codex-policy.js +0 -79
  197. package/node_modules/@buddi/runtime/dist/codex-policy.js.map +0 -1
  198. package/node_modules/@buddi/runtime/dist/codex-rpc.d.ts +0 -34
  199. package/node_modules/@buddi/runtime/dist/codex-rpc.d.ts.map +0 -1
  200. package/node_modules/@buddi/runtime/dist/codex-rpc.js +0 -152
  201. package/node_modules/@buddi/runtime/dist/codex-rpc.js.map +0 -1
  202. package/node_modules/@buddi/runtime/dist/codex-session.d.ts +0 -30
  203. package/node_modules/@buddi/runtime/dist/codex-session.d.ts.map +0 -1
  204. package/node_modules/@buddi/runtime/dist/codex-session.js +0 -169
  205. package/node_modules/@buddi/runtime/dist/codex-session.js.map +0 -1
  206. package/packages/runtime/dist/codex-app-server.d.ts +0 -20
  207. package/packages/runtime/dist/codex-app-server.d.ts.map +0 -1
  208. package/packages/runtime/dist/codex-app-server.js +0 -172
  209. package/packages/runtime/dist/codex-app-server.js.map +0 -1
  210. package/packages/runtime/dist/codex-policy.d.ts +0 -6
  211. package/packages/runtime/dist/codex-policy.d.ts.map +0 -1
  212. package/packages/runtime/dist/codex-policy.js +0 -79
  213. package/packages/runtime/dist/codex-policy.js.map +0 -1
  214. package/packages/runtime/dist/codex-rpc.d.ts +0 -34
  215. package/packages/runtime/dist/codex-rpc.d.ts.map +0 -1
  216. package/packages/runtime/dist/codex-rpc.js +0 -152
  217. package/packages/runtime/dist/codex-rpc.js.map +0 -1
  218. package/packages/runtime/dist/codex-session.d.ts +0 -30
  219. package/packages/runtime/dist/codex-session.d.ts.map +0 -1
  220. package/packages/runtime/dist/codex-session.js +0 -169
  221. package/packages/runtime/dist/codex-session.js.map +0 -1
  222. package/packages/web/dist/assets/index-OA0xgibo.js +0 -123
@@ -1,152 +0,0 @@
1
- /** Experimental Codex App Server NDJSON client. No credentials or raw stderr in errors. */
2
- import { spawn } from 'node:child_process';
3
- import { StringDecoder } from 'node:string_decoder';
4
- export function createCodexRpc(child, timeoutMs = 30_000) {
5
- const pending = new Map();
6
- const listeners = new Set();
7
- const closeListeners = new Set();
8
- const decoder = new StringDecoder('utf8');
9
- let sequence = 0;
10
- let buffer = '';
11
- let closed;
12
- let resolveStopped;
13
- const stopped = new Promise((resolve) => { resolveStopped = resolve; });
14
- child.once('exit', resolveStopped);
15
- child.once('error', resolveStopped);
16
- const close = (error) => {
17
- if (closed)
18
- return;
19
- closed = error;
20
- for (const call of pending.values()) {
21
- clearTimeout(call.timer);
22
- call.reject(error);
23
- }
24
- pending.clear();
25
- for (const listener of closeListeners)
26
- listener(error);
27
- // Every client owns its child, never a shared/user Codex process.
28
- child.kill('SIGTERM');
29
- const timer = setTimeout(() => { if (child.exitCode === null && child.signalCode === null)
30
- child.kill('SIGKILL'); }, 1_000);
31
- timer.unref();
32
- };
33
- const send = (message) => {
34
- if (closed)
35
- throw closed;
36
- child.stdin.write(JSON.stringify(message) + '\n');
37
- };
38
- child.on('error', () => close(new Error('Codex App Server could not start. Check the configured executable.')));
39
- child.on('exit', () => close(new Error('Codex App Server exited.')));
40
- child.stdin.on('error', () => close(new Error('Codex App Server input closed.')));
41
- child.stderr.resume(); // Drain, never copy auth codes, tokens or provider bodies to logs.
42
- child.stdout.on('data', (chunk) => {
43
- buffer += decoder.write(chunk);
44
- if (Buffer.byteLength(buffer) > 16 * 1024 * 1024) {
45
- close(new Error('Codex protocol frame exceeded the size limit.'));
46
- return;
47
- }
48
- let newline;
49
- while ((newline = buffer.indexOf('\n')) >= 0) {
50
- const line = buffer.slice(0, newline);
51
- buffer = buffer.slice(newline + 1);
52
- if (!line.trim())
53
- continue;
54
- let message;
55
- try {
56
- const value = JSON.parse(line);
57
- if (!value || typeof value !== 'object' || Array.isArray(value))
58
- throw new Error();
59
- message = value;
60
- }
61
- catch {
62
- close(new Error('Invalid Codex App Server protocol frame.'));
63
- return;
64
- }
65
- if (!message.method && typeof message.id === 'number') {
66
- const call = pending.get(message.id);
67
- if (!call)
68
- continue;
69
- pending.delete(message.id);
70
- clearTimeout(call.timer);
71
- if (message.error !== undefined)
72
- call.reject(new Error('Codex App Server rejected the request.'));
73
- else
74
- call.resolve(message.result);
75
- }
76
- else {
77
- // Never grant native command/file/permission requests. Tool requests are
78
- // proposals only: the adapter closes this child before Buddi executes one.
79
- if (message.id !== undefined && message.method !== 'item/tool/call') {
80
- send({ id: message.id, error: { code: -32601, message: 'Only Buddi dynamic tools are supported.' } });
81
- close(new Error('Codex requested an unsupported native capability.'));
82
- return;
83
- }
84
- for (const listener of listeners)
85
- listener(message);
86
- }
87
- }
88
- });
89
- return {
90
- processId: child.pid,
91
- request(method, params) {
92
- if (closed)
93
- return Promise.reject(closed);
94
- const id = ++sequence;
95
- return new Promise((resolve, reject) => {
96
- const timer = setTimeout(() => close(new Error('Codex App Server request timed out.')), timeoutMs);
97
- pending.set(id, { resolve, reject, timer });
98
- send({ id, method, params });
99
- });
100
- },
101
- notify(method, params) { send({ method, params }); },
102
- onMessage(listener) { listeners.add(listener); return () => listeners.delete(listener); },
103
- onClose(listener) { if (closed)
104
- listener(closed);
105
- else
106
- closeListeners.add(listener); return () => closeListeners.delete(listener); },
107
- async close() {
108
- close(new Error('Codex App Server session closed.'));
109
- if (child.exitCode !== null || child.signalCode !== null)
110
- return;
111
- let timer;
112
- try {
113
- await Promise.race([stopped, new Promise((_, reject) => {
114
- timer = setTimeout(() => reject(new Error('Codex child did not stop; tool execution must not proceed.')), 3_000);
115
- })]);
116
- }
117
- finally {
118
- clearTimeout(timer);
119
- }
120
- },
121
- };
122
- }
123
- export async function initializeCodex(rpc) {
124
- await rpc.request('initialize', {
125
- clientInfo: { name: 'buddi_codex_experiment', title: 'Buddi experimental adapter', version: '0.1.0' },
126
- capabilities: { experimentalApi: true },
127
- });
128
- rpc.notify('initialized');
129
- }
130
- /** No shell, no inherited provider keys, no user's Codex configuration. */
131
- export function spawnCodexRpc(options) {
132
- return createCodexRpc(spawn(options.executable, ['app-server', ...options.args], {
133
- cwd: options.cwd, env: codexChildEnv(options.profileDir), stdio: 'pipe', shell: false,
134
- }));
135
- }
136
- /**
137
- * The whole environment a native Codex child gets: a short allowlist, so no
138
- * ambient provider key (OPENAI_API_KEY and the like) and no owner CODEX_HOME
139
- * reaches it. CODEX_HOME is the native client's documented per-account
140
- * configuration, not a change to this process or the owner's CLI environment.
141
- */
142
- export function codexChildEnv(profileDir) {
143
- const env = {};
144
- for (const name of ['PATH', 'HOME', 'USERPROFILE', 'SystemRoot', 'WINDIR', 'TMPDIR', 'TEMP', 'TMP', 'LANG']) {
145
- const value = process.env[name];
146
- if (value)
147
- env[name] = value;
148
- }
149
- env.CODEX_HOME = profileDir;
150
- return env;
151
- }
152
- //# sourceMappingURL=codex-rpc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex-rpc.js","sourceRoot":"","sources":["../src/codex-rpc.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { type CodexRpc } from './codex-rpc.js';
2
- export interface CodexSession {
3
- rpc: CodexRpc;
4
- cwd: string;
5
- /** Call only after the child has stopped, so refreshed credentials are stable. */
6
- credential(): Promise<string | null>;
7
- dispose(): Promise<void>;
8
- }
9
- /** Shape validation only; never decode, log or expose the tokens. */
10
- export declare function validateCodexCredential(value: string): string;
11
- /** Clean only marked, private profiles whose parent AND native child have exited. */
12
- export declare function cleanupCodexSessions(root?: string): Promise<void>;
13
- export declare function openCodexSession(credential: string | null, executable?: string): Promise<CodexSession>;
14
- /**
15
- * A private profile with this credential staged in it, and no process: for a
16
- * caller that runs its own native child (`codex exec`) rather than the App
17
- * Server. Same directory shape, modes and orphan marker as a session, so the
18
- * same cleanup recognises it; the marker names no child because this module
19
- * never starts one.
20
- */
21
- export interface StagedCodexProfile {
22
- home: string;
23
- workspace: string;
24
- env: Record<string, string>;
25
- /** Call only after the caller's child has exited. */
26
- credential(): Promise<string | null>;
27
- dispose(): Promise<void>;
28
- }
29
- export declare function stageCodexProfile(credential: string): Promise<StagedCodexProfile>;
30
- //# sourceMappingURL=codex-session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex-session.d.ts","sourceRoot":"","sources":["../src/codex-session.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgC,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,kFAAkF;IAClF,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,qEAAqE;AACrE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoB7D;AAED,qFAAqF;AACrF,wBAAsB,oBAAoB,CAAC,IAAI,SAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBzE;AAED,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,SAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CA8C7G;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,qDAAqD;IACrD,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkCvF"}
@@ -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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"}