@puukis/core 0.1.0

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 (162) hide show
  1. package/LICENSE +21 -0
  2. package/dist/brain/Brain.d.ts +39 -0
  3. package/dist/brain/Brain.d.ts.map +1 -0
  4. package/dist/brain/Brain.js +284 -0
  5. package/dist/brain/Brain.js.map +1 -0
  6. package/dist/brain/index.d.ts +2 -0
  7. package/dist/brain/index.d.ts.map +1 -0
  8. package/dist/brain/index.js +2 -0
  9. package/dist/brain/index.js.map +1 -0
  10. package/dist/cli/argv.d.ts +8 -0
  11. package/dist/cli/argv.d.ts.map +1 -0
  12. package/dist/cli/argv.js +41 -0
  13. package/dist/cli/argv.js.map +1 -0
  14. package/dist/cli/codexInstall.d.ts +17 -0
  15. package/dist/cli/codexInstall.d.ts.map +1 -0
  16. package/dist/cli/codexInstall.js +106 -0
  17. package/dist/cli/codexInstall.js.map +1 -0
  18. package/dist/cli/commands/auth.d.ts +3 -0
  19. package/dist/cli/commands/auth.d.ts.map +1 -0
  20. package/dist/cli/commands/auth.js +66 -0
  21. package/dist/cli/commands/auth.js.map +1 -0
  22. package/dist/cli/commands/install.d.ts +3 -0
  23. package/dist/cli/commands/install.d.ts.map +1 -0
  24. package/dist/cli/commands/install.js +21 -0
  25. package/dist/cli/commands/install.js.map +1 -0
  26. package/dist/cli/commands/onboard.d.ts +3 -0
  27. package/dist/cli/commands/onboard.d.ts.map +1 -0
  28. package/dist/cli/commands/onboard.js +43 -0
  29. package/dist/cli/commands/onboard.js.map +1 -0
  30. package/dist/cli/commands/uninstall.d.ts +3 -0
  31. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  32. package/dist/cli/commands/uninstall.js +193 -0
  33. package/dist/cli/commands/uninstall.js.map +1 -0
  34. package/dist/cli/commands/update.d.ts +3 -0
  35. package/dist/cli/commands/update.d.ts.map +1 -0
  36. package/dist/cli/commands/update.js +314 -0
  37. package/dist/cli/commands/update.js.map +1 -0
  38. package/dist/cli/index.d.ts +3 -0
  39. package/dist/cli/index.d.ts.map +1 -0
  40. package/dist/cli/index.js +60 -0
  41. package/dist/cli/index.js.map +1 -0
  42. package/dist/codex/CodexRpcClient.d.ts +65 -0
  43. package/dist/codex/CodexRpcClient.d.ts.map +1 -0
  44. package/dist/codex/CodexRpcClient.js +395 -0
  45. package/dist/codex/CodexRpcClient.js.map +1 -0
  46. package/dist/codex/codexModels.d.ts +33 -0
  47. package/dist/codex/codexModels.d.ts.map +1 -0
  48. package/dist/codex/codexModels.js +226 -0
  49. package/dist/codex/codexModels.js.map +1 -0
  50. package/dist/codex/index.d.ts +5 -0
  51. package/dist/codex/index.d.ts.map +1 -0
  52. package/dist/codex/index.js +3 -0
  53. package/dist/codex/index.js.map +1 -0
  54. package/dist/codex/types.d.ts +97 -0
  55. package/dist/codex/types.d.ts.map +1 -0
  56. package/dist/codex/types.js +2 -0
  57. package/dist/codex/types.js.map +1 -0
  58. package/dist/config/env.d.ts +8 -0
  59. package/dist/config/env.d.ts.map +1 -0
  60. package/dist/config/env.js +130 -0
  61. package/dist/config/env.js.map +1 -0
  62. package/dist/config/index.d.ts +2 -0
  63. package/dist/config/index.d.ts.map +1 -0
  64. package/dist/config/index.js +2 -0
  65. package/dist/config/index.js.map +1 -0
  66. package/dist/db/index.d.ts +48 -0
  67. package/dist/db/index.d.ts.map +1 -0
  68. package/dist/db/index.js +147 -0
  69. package/dist/db/index.js.map +1 -0
  70. package/dist/gateway/Gateway.d.ts +69 -0
  71. package/dist/gateway/Gateway.d.ts.map +1 -0
  72. package/dist/gateway/Gateway.js +239 -0
  73. package/dist/gateway/Gateway.js.map +1 -0
  74. package/dist/gateway/LaneQueue.d.ts +24 -0
  75. package/dist/gateway/LaneQueue.d.ts.map +1 -0
  76. package/dist/gateway/LaneQueue.js +59 -0
  77. package/dist/gateway/LaneQueue.js.map +1 -0
  78. package/dist/gateway/index.d.ts +3 -0
  79. package/dist/gateway/index.d.ts.map +1 -0
  80. package/dist/gateway/index.js +3 -0
  81. package/dist/gateway/index.js.map +1 -0
  82. package/dist/index.d.ts +13 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +14 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/llm/GeminiProvider.d.ts +16 -0
  87. package/dist/llm/GeminiProvider.d.ts.map +1 -0
  88. package/dist/llm/GeminiProvider.js +172 -0
  89. package/dist/llm/GeminiProvider.js.map +1 -0
  90. package/dist/llm/OllamaProvider.d.ts +15 -0
  91. package/dist/llm/OllamaProvider.d.ts.map +1 -0
  92. package/dist/llm/OllamaProvider.js +108 -0
  93. package/dist/llm/OllamaProvider.js.map +1 -0
  94. package/dist/llm/OpenAICodexProvider.d.ts +51 -0
  95. package/dist/llm/OpenAICodexProvider.d.ts.map +1 -0
  96. package/dist/llm/OpenAICodexProvider.js +620 -0
  97. package/dist/llm/OpenAICodexProvider.js.map +1 -0
  98. package/dist/llm/OpenAIProvider.d.ts +16 -0
  99. package/dist/llm/OpenAIProvider.d.ts.map +1 -0
  100. package/dist/llm/OpenAIProvider.js +134 -0
  101. package/dist/llm/OpenAIProvider.js.map +1 -0
  102. package/dist/llm/index.d.ts +10 -0
  103. package/dist/llm/index.d.ts.map +1 -0
  104. package/dist/llm/index.js +30 -0
  105. package/dist/llm/index.js.map +1 -0
  106. package/dist/main.d.ts +7 -0
  107. package/dist/main.d.ts.map +1 -0
  108. package/dist/main.js +88 -0
  109. package/dist/main.js.map +1 -0
  110. package/dist/pipeline/index.d.ts +2 -0
  111. package/dist/pipeline/index.d.ts.map +1 -0
  112. package/dist/pipeline/index.js +2 -0
  113. package/dist/pipeline/index.js.map +1 -0
  114. package/dist/pipeline/normalize.d.ts +19 -0
  115. package/dist/pipeline/normalize.d.ts.map +1 -0
  116. package/dist/pipeline/normalize.js +34 -0
  117. package/dist/pipeline/normalize.js.map +1 -0
  118. package/dist/server/index.d.ts +28 -0
  119. package/dist/server/index.d.ts.map +1 -0
  120. package/dist/server/index.js +389 -0
  121. package/dist/server/index.js.map +1 -0
  122. package/dist/tools/ToolExecutor.d.ts +68 -0
  123. package/dist/tools/ToolExecutor.d.ts.map +1 -0
  124. package/dist/tools/ToolExecutor.js +177 -0
  125. package/dist/tools/ToolExecutor.js.map +1 -0
  126. package/dist/tools/builtin/browser.d.ts +27 -0
  127. package/dist/tools/builtin/browser.d.ts.map +1 -0
  128. package/dist/tools/builtin/browser.js +222 -0
  129. package/dist/tools/builtin/browser.js.map +1 -0
  130. package/dist/tools/builtin/filesystem.d.ts +22 -0
  131. package/dist/tools/builtin/filesystem.d.ts.map +1 -0
  132. package/dist/tools/builtin/filesystem.js +151 -0
  133. package/dist/tools/builtin/filesystem.js.map +1 -0
  134. package/dist/tools/builtin/index.d.ts +10 -0
  135. package/dist/tools/builtin/index.d.ts.map +1 -0
  136. package/dist/tools/builtin/index.js +21 -0
  137. package/dist/tools/builtin/index.js.map +1 -0
  138. package/dist/tools/builtin/sandbox.d.ts +11 -0
  139. package/dist/tools/builtin/sandbox.d.ts.map +1 -0
  140. package/dist/tools/builtin/sandbox.js +166 -0
  141. package/dist/tools/builtin/sandbox.js.map +1 -0
  142. package/dist/tools/builtin/search.d.ts +7 -0
  143. package/dist/tools/builtin/search.d.ts.map +1 -0
  144. package/dist/tools/builtin/search.js +76 -0
  145. package/dist/tools/builtin/search.js.map +1 -0
  146. package/dist/tools/builtin/shell.d.ts +7 -0
  147. package/dist/tools/builtin/shell.d.ts.map +1 -0
  148. package/dist/tools/builtin/shell.js +71 -0
  149. package/dist/tools/builtin/shell.js.map +1 -0
  150. package/dist/tools/index.d.ts +3 -0
  151. package/dist/tools/index.d.ts.map +1 -0
  152. package/dist/tools/index.js +3 -0
  153. package/dist/tools/index.js.map +1 -0
  154. package/dist/types.d.ts +167 -0
  155. package/dist/types.d.ts.map +1 -0
  156. package/dist/types.js +3 -0
  157. package/dist/types.js.map +1 -0
  158. package/dist/workspace/agentWorkspace.d.ts +24 -0
  159. package/dist/workspace/agentWorkspace.d.ts.map +1 -0
  160. package/dist/workspace/agentWorkspace.js +210 -0
  161. package/dist/workspace/agentWorkspace.js.map +1 -0
  162. package/package.json +45 -0
@@ -0,0 +1,620 @@
1
+ import { spawn } from 'node:child_process';
2
+ import os from 'node:os';
3
+ import { CodexRpcClient, codexModelFromProviderModelId, mapCodexModelsToProviderModels, normalizeCodexModels, pickDefaultCodexModel, providerModelIdFromCodexModelId, readCodexModelCache, writeCodexModelCache, } from '../codex/index.js';
4
+ export class OpenAICodexProvider {
5
+ name = 'openai-codex';
6
+ cwd;
7
+ client;
8
+ openExternalUrl;
9
+ allowDeviceAuthFallback;
10
+ loginTimeoutMs;
11
+ reasoningEffort;
12
+ selectedProviderModelId;
13
+ selectedCodexModelId = null;
14
+ cachedModels = null;
15
+ sessionThreadIds = new Map();
16
+ constructor(model, options = {}) {
17
+ this.cwd = expandHomePath(options.cwd ?? process.cwd());
18
+ this.selectedProviderModelId = model || 'openai-codex/gpt-5.3';
19
+ this.reasoningEffort = normalizeCodexReasoningEffort(options.reasoningEffort) ?? 'medium';
20
+ this.openExternalUrl = options.openExternalUrl ?? openExternalUrl;
21
+ this.allowDeviceAuthFallback = options.allowDeviceAuthFallback ?? true;
22
+ this.loginTimeoutMs = options.loginTimeoutMs ?? 240_000;
23
+ this.client = options.rpcClient ?? new CodexRpcClient({
24
+ cwd: this.cwd,
25
+ requestTimeoutMs: options.requestTimeoutMs,
26
+ modelReasoningEffort: this.reasoningEffort,
27
+ clientInfo: {
28
+ name: 'keygate',
29
+ title: 'Keygate',
30
+ version: '0.1.0',
31
+ },
32
+ });
33
+ }
34
+ async chat(messages, options) {
35
+ let content = '';
36
+ for await (const chunk of this.stream(messages, options)) {
37
+ if (chunk.content) {
38
+ content += chunk.content;
39
+ }
40
+ }
41
+ return {
42
+ content,
43
+ finishReason: 'stop',
44
+ };
45
+ }
46
+ async *stream(messages, options) {
47
+ await this.ensureConnected();
48
+ await this.ensureAuthenticated(false);
49
+ const sessionId = options?.sessionId ?? 'default';
50
+ const threadId = await this.ensureThread(sessionId, options);
51
+ const prompt = getLatestUserPrompt(messages);
52
+ const selectedModel = await this.resolveCodexModelId();
53
+ const turnParams = {
54
+ threadId,
55
+ input: [{ type: 'text', text: prompt }],
56
+ cwd: options?.cwd ?? this.cwd,
57
+ model: selectedModel,
58
+ approvalPolicy: normalizeApprovalPolicy(options?.approvalPolicy),
59
+ };
60
+ const sandboxPolicy = this.normalizeSandboxPolicy(options?.sandboxPolicy ?? this.getDefaultSandboxPolicy(options));
61
+ if (sandboxPolicy) {
62
+ turnParams['sandboxPolicy'] = sandboxPolicy;
63
+ }
64
+ const turnStart = await this.client.request('turn/start', turnParams);
65
+ const turnId = getTurnId(turnStart);
66
+ if (!turnId) {
67
+ throw new Error('Codex turn/start did not return a turn id');
68
+ }
69
+ const pendingChunks = [];
70
+ let done = false;
71
+ let failed = null;
72
+ let wakeUp = null;
73
+ const pushChunk = (chunk) => {
74
+ pendingChunks.push(chunk);
75
+ if (wakeUp) {
76
+ const resolve = wakeUp;
77
+ wakeUp = null;
78
+ resolve();
79
+ }
80
+ };
81
+ const onNotification = (notification) => {
82
+ if (!notificationBelongsToTurn(notification, turnId, threadId)) {
83
+ return;
84
+ }
85
+ options?.onProviderEvent?.({
86
+ provider: this.name,
87
+ method: notification.method,
88
+ params: notification.params,
89
+ });
90
+ if (notification.method === 'item/agentMessage/delta') {
91
+ const deltaText = extractAgentDeltaText(notification.params);
92
+ if (deltaText) {
93
+ pushChunk({ content: deltaText, done: false });
94
+ }
95
+ return;
96
+ }
97
+ if (notification.method === 'item/completed') {
98
+ const finalText = extractCompletedAgentMessageText(notification.params);
99
+ if (finalText) {
100
+ pushChunk({ content: finalText, done: false });
101
+ }
102
+ return;
103
+ }
104
+ if (notification.method === 'turn/completed') {
105
+ const status = getTurnStatus(notification.params);
106
+ if (status === 'failed') {
107
+ failed = new Error(getTurnFailureMessage(notification.params) ?? 'Codex turn failed');
108
+ }
109
+ done = true;
110
+ if (wakeUp) {
111
+ const resolve = wakeUp;
112
+ wakeUp = null;
113
+ resolve();
114
+ }
115
+ }
116
+ };
117
+ this.client.on('notification', onNotification);
118
+ try {
119
+ while (!done || pendingChunks.length > 0) {
120
+ if (pendingChunks.length > 0) {
121
+ yield pendingChunks.shift();
122
+ continue;
123
+ }
124
+ if (failed) {
125
+ throw failed;
126
+ }
127
+ await new Promise((resolve) => {
128
+ wakeUp = resolve;
129
+ });
130
+ }
131
+ if (failed) {
132
+ throw failed;
133
+ }
134
+ yield { done: true };
135
+ }
136
+ finally {
137
+ this.client.off('notification', onNotification);
138
+ }
139
+ }
140
+ async listModels() {
141
+ const codexModels = await this.listCodexModels();
142
+ return mapCodexModelsToProviderModels(codexModels).map((model) => toProviderModelOption(model));
143
+ }
144
+ getModel() {
145
+ return this.selectedProviderModelId;
146
+ }
147
+ async setModel(model) {
148
+ this.selectedProviderModelId = model;
149
+ this.selectedCodexModelId = null;
150
+ this.sessionThreadIds.clear();
151
+ }
152
+ async login(options = {}) {
153
+ await this.ensureConnected();
154
+ const accountState = await this.readAccount();
155
+ if (hasActiveAccount(accountState)) {
156
+ return;
157
+ }
158
+ if (options.useDeviceAuth) {
159
+ await runCodexDeviceAuth();
160
+ await this.ensureAuthenticated(false, true);
161
+ return;
162
+ }
163
+ const loginStart = await this.client.request('account/login/start', {
164
+ type: 'chatgpt',
165
+ });
166
+ const loginId = loginStart.loginId;
167
+ const authUrl = loginStart.authUrl;
168
+ if (!authUrl) {
169
+ throw new Error('Codex account/login/start did not return authUrl for ChatGPT login');
170
+ }
171
+ const opened = await this.openExternalUrl(authUrl);
172
+ if (!opened) {
173
+ const shouldFallback = options.allowDeviceAuthFallback ?? this.allowDeviceAuthFallback;
174
+ if (!shouldFallback) {
175
+ throw new Error('Unable to open browser for ChatGPT OAuth. Retry with --device-auth.');
176
+ }
177
+ await runCodexDeviceAuth();
178
+ await this.ensureAuthenticated(false, true);
179
+ return;
180
+ }
181
+ const timeoutMs = options.timeoutMs ?? this.loginTimeoutMs;
182
+ const completion = await this.client.waitForNotification('account/login/completed', {
183
+ timeoutMs,
184
+ predicate: (params) => {
185
+ if (!loginId) {
186
+ return true;
187
+ }
188
+ return params?.['loginId'] === loginId;
189
+ },
190
+ });
191
+ const completed = completion;
192
+ if (completed?.success === false) {
193
+ throw new Error(completed.error ?? 'ChatGPT OAuth login failed in Codex');
194
+ }
195
+ await this.ensureAuthenticated(false, true);
196
+ }
197
+ async dispose() {
198
+ await this.client.stop();
199
+ }
200
+ async checkAccount() {
201
+ await this.ensureConnected();
202
+ return this.readAccount();
203
+ }
204
+ async ensureAuthenticated(autoLogin = false, refreshToken = false) {
205
+ const account = await this.readAccount(refreshToken);
206
+ if (hasActiveAccount(account)) {
207
+ return;
208
+ }
209
+ if (!account.requiresOpenaiAuth) {
210
+ return;
211
+ }
212
+ if (autoLogin) {
213
+ await this.login();
214
+ return;
215
+ }
216
+ throw new Error('Not logged in to Codex. Run `keygate auth login --provider openai-codex` first.');
217
+ }
218
+ async ensureConnected() {
219
+ await this.client.ensureInitialized();
220
+ }
221
+ async listCodexModels() {
222
+ try {
223
+ await this.ensureConnected();
224
+ const discovered = await this.listCodexModelsFromServer();
225
+ this.cachedModels = discovered;
226
+ await writeCodexModelCache(discovered);
227
+ return discovered;
228
+ }
229
+ catch {
230
+ if (this.cachedModels && this.cachedModels.length > 0) {
231
+ return this.cachedModels;
232
+ }
233
+ const fromDisk = await readCodexModelCache();
234
+ if (fromDisk && fromDisk.length > 0) {
235
+ this.cachedModels = fromDisk;
236
+ return fromDisk;
237
+ }
238
+ const fallback = normalizeCodexModels([]);
239
+ this.cachedModels = fallback;
240
+ return fallback;
241
+ }
242
+ }
243
+ async listCodexModelsFromServer() {
244
+ const entries = [];
245
+ let cursor;
246
+ for (let page = 0; page < 8; page += 1) {
247
+ const params = cursor
248
+ ? { limit: 100, cursor }
249
+ : { limit: 100 };
250
+ const result = await this.client.request('model/list', params);
251
+ if (Array.isArray(result.data)) {
252
+ entries.push(...result.data);
253
+ }
254
+ if (!result.nextCursor) {
255
+ break;
256
+ }
257
+ cursor = result.nextCursor;
258
+ }
259
+ const normalized = normalizeCodexModels(entries);
260
+ const deduped = new Map();
261
+ for (const model of normalized) {
262
+ deduped.set(model.id, model);
263
+ }
264
+ return Array.from(deduped.values());
265
+ }
266
+ async readAccount(refreshToken = false) {
267
+ try {
268
+ return await this.client.request('account/read', { refreshToken });
269
+ }
270
+ catch {
271
+ if (refreshToken) {
272
+ return this.client.request('account/read');
273
+ }
274
+ throw new Error('Failed to read Codex account state');
275
+ }
276
+ }
277
+ async ensureThread(sessionId, options) {
278
+ const existing = this.sessionThreadIds.get(sessionId);
279
+ if (existing) {
280
+ return existing;
281
+ }
282
+ const modelId = await this.resolveCodexModelId();
283
+ const threadParams = {
284
+ model: modelId,
285
+ cwd: options?.cwd ?? this.cwd,
286
+ approvalPolicy: normalizeApprovalPolicy(options?.approvalPolicy),
287
+ sandbox: options?.securityMode === 'spicy' ? 'danger-full-access' : 'workspace-write',
288
+ };
289
+ const startResult = await this.client.request('thread/start', threadParams);
290
+ const threadId = startResult.thread?.id ?? startResult.threadId;
291
+ if (!threadId) {
292
+ throw new Error('Codex thread/start did not return a thread id');
293
+ }
294
+ this.sessionThreadIds.set(sessionId, threadId);
295
+ return threadId;
296
+ }
297
+ async resolveCodexModelId() {
298
+ if (this.selectedCodexModelId) {
299
+ return this.selectedCodexModelId;
300
+ }
301
+ const models = await this.listCodexModels();
302
+ if (!this.selectedProviderModelId) {
303
+ const defaultModel = pickDefaultCodexModel(models);
304
+ this.selectedCodexModelId = defaultModel.id;
305
+ this.selectedProviderModelId = providerModelIdFromCodexModelId(defaultModel.id);
306
+ return defaultModel.id;
307
+ }
308
+ const codexId = codexModelFromProviderModelId(this.selectedProviderModelId, models);
309
+ this.selectedCodexModelId = codexId;
310
+ if (!this.selectedProviderModelId.startsWith('openai-codex/')) {
311
+ this.selectedProviderModelId = providerModelIdFromCodexModelId(codexId);
312
+ }
313
+ return codexId;
314
+ }
315
+ getDefaultSandboxPolicy(options) {
316
+ if (options?.securityMode === 'spicy') {
317
+ return { type: 'dangerFullAccess' };
318
+ }
319
+ const workspace = options?.cwd ?? this.cwd;
320
+ return {
321
+ type: 'workspaceWrite',
322
+ writable_roots: [workspace],
323
+ network_access: true,
324
+ };
325
+ }
326
+ normalizeSandboxPolicy(sandboxPolicy) {
327
+ if (!sandboxPolicy) {
328
+ return undefined;
329
+ }
330
+ const normalized = { ...sandboxPolicy };
331
+ // Codex expects sandbox policy discriminated by `type`.
332
+ // Keep compatibility with legacy callers that still pass `mode`.
333
+ if (typeof normalized['type'] === 'string') {
334
+ normalized['type'] = normalizeTurnSandboxPolicyType(normalized['type']);
335
+ }
336
+ else if (typeof normalized['mode'] === 'string') {
337
+ normalized['type'] = normalizeTurnSandboxPolicyType(normalized['mode']);
338
+ }
339
+ if (!normalized['writable_roots'] && Array.isArray(normalized['writableRoots'])) {
340
+ normalized['writable_roots'] = normalized['writableRoots'];
341
+ }
342
+ if (typeof normalized['network_access'] !== 'boolean' && typeof normalized['networkAccess'] === 'boolean') {
343
+ normalized['network_access'] = normalized['networkAccess'];
344
+ }
345
+ if (typeof normalized['exclude_slash_tmp'] !== 'boolean' && typeof normalized['excludeSlashTmp'] === 'boolean') {
346
+ normalized['exclude_slash_tmp'] = normalized['excludeSlashTmp'];
347
+ }
348
+ if (typeof normalized['exclude_tmpdir_env_var'] !== 'boolean' &&
349
+ typeof normalized['excludeTmpdirEnvVar'] === 'boolean') {
350
+ normalized['exclude_tmpdir_env_var'] = normalized['excludeTmpdirEnvVar'];
351
+ }
352
+ delete normalized['mode'];
353
+ delete normalized['writableRoots'];
354
+ delete normalized['networkAccess'];
355
+ delete normalized['excludeSlashTmp'];
356
+ delete normalized['excludeTmpdirEnvVar'];
357
+ return normalized;
358
+ }
359
+ }
360
+ export async function runCodexDeviceAuth() {
361
+ await new Promise((resolve, reject) => {
362
+ const child = spawn('codex', ['login', '--device-auth'], {
363
+ stdio: 'inherit',
364
+ });
365
+ child.once('error', (error) => {
366
+ reject(new Error(`Failed to start device auth login: ${error.message}`));
367
+ });
368
+ child.once('exit', (code) => {
369
+ if (code === 0) {
370
+ resolve();
371
+ return;
372
+ }
373
+ reject(new Error(`codex login --device-auth exited with code ${code}`));
374
+ });
375
+ });
376
+ }
377
+ function hasActiveAccount(accountState) {
378
+ return Boolean(accountState.account);
379
+ }
380
+ function getLatestUserPrompt(messages) {
381
+ for (let i = messages.length - 1; i >= 0; i -= 1) {
382
+ const message = messages[i];
383
+ if (message?.role === 'user') {
384
+ return message.content;
385
+ }
386
+ }
387
+ throw new Error('No user message found for Codex turn/start');
388
+ }
389
+ function getTurnId(result) {
390
+ return result.turn?.id ?? result.turnId;
391
+ }
392
+ function getTurnStatus(params) {
393
+ const turn = params?.['turn'];
394
+ if (!turn || typeof turn !== 'object') {
395
+ return undefined;
396
+ }
397
+ const status = turn['status'];
398
+ return typeof status === 'string' ? status : undefined;
399
+ }
400
+ function getTurnFailureMessage(params) {
401
+ const turn = params?.['turn'];
402
+ if (!turn || typeof turn !== 'object') {
403
+ return undefined;
404
+ }
405
+ const error = turn['error'];
406
+ if (!error || typeof error !== 'object') {
407
+ return undefined;
408
+ }
409
+ const message = error['message'];
410
+ return typeof message === 'string' ? message : undefined;
411
+ }
412
+ function notificationBelongsToTurn(notification, turnId, threadId) {
413
+ const params = notification.params;
414
+ if (!params) {
415
+ return false;
416
+ }
417
+ const paramsRecord = params;
418
+ const directTurnId = paramsRecord['turnId'];
419
+ if (typeof directTurnId === 'string' && directTurnId !== turnId) {
420
+ return false;
421
+ }
422
+ const directThreadId = paramsRecord['threadId'];
423
+ if (typeof directThreadId === 'string' && directThreadId !== threadId) {
424
+ return false;
425
+ }
426
+ const nestedTurn = paramsRecord['turn'];
427
+ if (nestedTurn && typeof nestedTurn === 'object') {
428
+ const nestedTurnId = nestedTurn['id'];
429
+ if (typeof nestedTurnId === 'string' && nestedTurnId !== turnId) {
430
+ return false;
431
+ }
432
+ }
433
+ const nestedItem = paramsRecord['item'];
434
+ if (nestedItem && typeof nestedItem === 'object') {
435
+ const itemTurnId = nestedItem['turnId'];
436
+ if (typeof itemTurnId === 'string' && itemTurnId !== turnId) {
437
+ return false;
438
+ }
439
+ const itemThreadId = nestedItem['threadId'];
440
+ if (typeof itemThreadId === 'string' && itemThreadId !== threadId) {
441
+ return false;
442
+ }
443
+ }
444
+ return true;
445
+ }
446
+ function extractAgentDeltaText(params) {
447
+ if (!params) {
448
+ return '';
449
+ }
450
+ const directDelta = params['delta'];
451
+ if (typeof directDelta === 'string') {
452
+ return directDelta;
453
+ }
454
+ if (directDelta && typeof directDelta === 'object') {
455
+ const text = directDelta['text'];
456
+ if (typeof text === 'string') {
457
+ return text;
458
+ }
459
+ }
460
+ const item = params['item'];
461
+ if (item && typeof item === 'object') {
462
+ const itemDelta = item['delta'];
463
+ if (typeof itemDelta === 'string') {
464
+ return itemDelta;
465
+ }
466
+ if (itemDelta && typeof itemDelta === 'object') {
467
+ const text = itemDelta['text'];
468
+ if (typeof text === 'string') {
469
+ return text;
470
+ }
471
+ }
472
+ }
473
+ return '';
474
+ }
475
+ function extractCompletedAgentMessageText(params) {
476
+ if (!params) {
477
+ return '';
478
+ }
479
+ const item = params['item'];
480
+ if (!item || typeof item !== 'object') {
481
+ return '';
482
+ }
483
+ const itemRecord = item;
484
+ const itemType = itemRecord['type'];
485
+ if (itemType !== 'agentMessage') {
486
+ return '';
487
+ }
488
+ const text = itemRecord['text'];
489
+ if (typeof text === 'string') {
490
+ return text;
491
+ }
492
+ const content = itemRecord['content'];
493
+ if (!Array.isArray(content)) {
494
+ return '';
495
+ }
496
+ const fragments = [];
497
+ for (const part of content) {
498
+ if (!part || typeof part !== 'object') {
499
+ continue;
500
+ }
501
+ const partRecord = part;
502
+ const value = partRecord['text'];
503
+ if (typeof value === 'string') {
504
+ fragments.push(value);
505
+ }
506
+ }
507
+ return fragments.join('');
508
+ }
509
+ function toProviderModelOption(model) {
510
+ return {
511
+ id: model.id,
512
+ provider: model.provider,
513
+ displayName: model.displayName,
514
+ isDefault: model.isDefault,
515
+ supportsPersonality: model.supportsPersonality,
516
+ reasoningEffort: model.reasoningEffort,
517
+ defaultReasoningEffort: model.defaultReasoningEffort,
518
+ metadata: {
519
+ codexModelId: model.codexModelId,
520
+ },
521
+ };
522
+ }
523
+ async function openExternalUrl(url) {
524
+ const platform = process.platform;
525
+ const command = platform === 'darwin'
526
+ ? { cmd: 'open', args: [url] }
527
+ : platform === 'win32'
528
+ ? { cmd: 'cmd', args: ['/c', 'start', '', url] }
529
+ : { cmd: 'xdg-open', args: [url] };
530
+ return new Promise((resolve) => {
531
+ const child = spawn(command.cmd, command.args, {
532
+ stdio: 'ignore',
533
+ detached: platform !== 'win32',
534
+ });
535
+ child.once('error', () => {
536
+ resolve(false);
537
+ });
538
+ child.once('spawn', () => {
539
+ child.unref();
540
+ resolve(true);
541
+ });
542
+ });
543
+ }
544
+ function expandHomePath(value) {
545
+ if (value === '~') {
546
+ return os.homedir();
547
+ }
548
+ if (value.startsWith('~/')) {
549
+ return `${os.homedir()}${value.slice(1)}`;
550
+ }
551
+ return value;
552
+ }
553
+ function normalizeCodexReasoningEffort(value) {
554
+ if (typeof value !== 'string') {
555
+ return null;
556
+ }
557
+ const normalized = value.trim().toLowerCase();
558
+ switch (normalized) {
559
+ case 'low':
560
+ case 'medium':
561
+ case 'high':
562
+ return normalized;
563
+ case 'xhigh':
564
+ case 'extra-high':
565
+ case 'extra_high':
566
+ case 'extra high':
567
+ return 'xhigh';
568
+ default:
569
+ return null;
570
+ }
571
+ }
572
+ function normalizeApprovalPolicy(value) {
573
+ if (typeof value !== 'string') {
574
+ return 'untrusted';
575
+ }
576
+ const normalized = value.trim().toLowerCase();
577
+ switch (normalized) {
578
+ case 'untrusted':
579
+ case 'unlesstrusted':
580
+ case 'unless-trusted':
581
+ case 'unless_trusted':
582
+ return 'untrusted';
583
+ case 'on-failure':
584
+ case 'on_failure':
585
+ case 'onfailure':
586
+ return 'on-failure';
587
+ case 'on-request':
588
+ case 'on_request':
589
+ case 'onrequest':
590
+ return 'on-request';
591
+ case 'never':
592
+ return 'never';
593
+ default:
594
+ return 'untrusted';
595
+ }
596
+ }
597
+ function normalizeTurnSandboxPolicyType(value) {
598
+ const normalized = value.trim().toLowerCase();
599
+ switch (normalized) {
600
+ case 'dangerfullaccess':
601
+ case 'danger-full-access':
602
+ case 'danger_full_access':
603
+ return 'dangerFullAccess';
604
+ case 'readonly':
605
+ case 'read-only':
606
+ case 'read_only':
607
+ return 'readOnly';
608
+ case 'externalsandbox':
609
+ case 'external-sandbox':
610
+ case 'external_sandbox':
611
+ return 'externalSandbox';
612
+ case 'workspacewrite':
613
+ case 'workspace-write':
614
+ case 'workspace_write':
615
+ return 'workspaceWrite';
616
+ default:
617
+ return 'workspaceWrite';
618
+ }
619
+ }
620
+ //# sourceMappingURL=OpenAICodexProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAICodexProvider.js","sourceRoot":"","sources":["../../src/llm/OpenAICodexProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ChatOptions, LLMChunk, LLMProvider, LLMResponse, Message } from '../types.js';
2
+ /**
3
+ * OpenAI LLM Provider
4
+ */
5
+ export declare class OpenAIProvider implements LLMProvider {
6
+ name: string;
7
+ private client;
8
+ private model;
9
+ constructor(apiKey: string, model: string);
10
+ chat(messages: Message[], options?: ChatOptions): Promise<LLMResponse>;
11
+ stream(messages: Message[], options?: ChatOptions): AsyncIterable<LLMChunk>;
12
+ private convertMessages;
13
+ private convertTools;
14
+ private mapFinishReason;
15
+ }
16
+ //# sourceMappingURL=OpenAIProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAIProvider.d.ts","sourceRoot":"","sources":["../../src/llm/OpenAIProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,WAAW,EACX,WAAW,EACX,OAAO,EAGR,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKnC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IA2BrE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC;IAuDlF,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,eAAe;CAQxB"}