@viewportai/daemon 0.27.0 → 0.29.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 (104) hide show
  1. package/README.md +5 -5
  2. package/dist/adapters/claude.d.ts +1 -0
  3. package/dist/adapters/claude.d.ts.map +1 -1
  4. package/dist/adapters/claude.js +1 -1
  5. package/dist/adapters/claude.js.map +1 -1
  6. package/dist/adapters/codex.d.ts +3 -0
  7. package/dist/adapters/codex.d.ts.map +1 -1
  8. package/dist/adapters/codex.js +298 -32
  9. package/dist/adapters/codex.js.map +1 -1
  10. package/dist/agents/codex-defaults.d.ts.map +1 -1
  11. package/dist/agents/codex-defaults.js +1 -1
  12. package/dist/agents/codex-defaults.js.map +1 -1
  13. package/dist/agents/codex.d.ts.map +1 -1
  14. package/dist/agents/codex.js +8 -2
  15. package/dist/agents/codex.js.map +1 -1
  16. package/dist/cli/commands.d.ts +1 -0
  17. package/dist/cli/commands.d.ts.map +1 -1
  18. package/dist/cli/commands.js +1 -0
  19. package/dist/cli/commands.js.map +1 -1
  20. package/dist/cli/lifecycle-pair-command.js +1 -1
  21. package/dist/cli/lifecycle-pair-command.js.map +1 -1
  22. package/dist/cli/managed-session-verification-contract.d.ts +46 -0
  23. package/dist/cli/managed-session-verification-contract.d.ts.map +1 -0
  24. package/dist/cli/managed-session-verification-contract.js +2 -0
  25. package/dist/cli/managed-session-verification-contract.js.map +1 -0
  26. package/dist/cli/signal-command.d.ts +2 -0
  27. package/dist/cli/signal-command.d.ts.map +1 -0
  28. package/dist/cli/signal-command.js +258 -0
  29. package/dist/cli/signal-command.js.map +1 -0
  30. package/dist/cli/worker-command.js +6 -4
  31. package/dist/cli/worker-command.js.map +1 -1
  32. package/dist/cli/worker-process-lock.js +1 -1
  33. package/dist/cli/worker-process-lock.js.map +1 -1
  34. package/dist/cli/worker-runtime.d.ts +14 -1
  35. package/dist/cli/worker-runtime.d.ts.map +1 -1
  36. package/dist/cli/worker-runtime.js +829 -59
  37. package/dist/cli/worker-runtime.js.map +1 -1
  38. package/dist/cli/workflow-commands.d.ts.map +1 -1
  39. package/dist/cli/workflow-commands.js +1 -6
  40. package/dist/cli/workflow-commands.js.map +1 -1
  41. package/dist/index.d.ts +1 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +6 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/server/http-request-schemas.d.ts +1 -0
  46. package/dist/server/http-request-schemas.d.ts.map +1 -1
  47. package/dist/server/http-request-schemas.js +1 -0
  48. package/dist/server/http-request-schemas.js.map +1 -1
  49. package/dist/server/http-server.d.ts.map +1 -1
  50. package/dist/server/http-server.js +1 -0
  51. package/dist/server/http-server.js.map +1 -1
  52. package/dist/workflows/context-node-resolver.d.ts +1 -0
  53. package/dist/workflows/context-node-resolver.d.ts.map +1 -1
  54. package/dist/workflows/context-node-resolver.js +265 -2
  55. package/dist/workflows/context-node-resolver.js.map +1 -1
  56. package/dist/workflows/daemon-session.js +16 -1
  57. package/dist/workflows/daemon-session.js.map +1 -1
  58. package/dist/workflows/event-types.d.ts +1 -1
  59. package/dist/workflows/event-types.d.ts.map +1 -1
  60. package/dist/workflows/node-executor.js +2 -1
  61. package/dist/workflows/node-executor.js.map +1 -1
  62. package/dist/workflows/platform-context-client.d.ts +12 -27
  63. package/dist/workflows/platform-context-client.d.ts.map +1 -1
  64. package/dist/workflows/platform-context-client.internal.d.ts +23 -0
  65. package/dist/workflows/platform-context-client.internal.d.ts.map +1 -0
  66. package/dist/workflows/platform-context-client.internal.js +124 -0
  67. package/dist/workflows/platform-context-client.internal.js.map +1 -0
  68. package/dist/workflows/platform-context-client.js +102 -58
  69. package/dist/workflows/platform-context-client.js.map +1 -1
  70. package/dist/workflows/platform-context-client.types.d.ts +41 -0
  71. package/dist/workflows/platform-context-client.types.d.ts.map +1 -0
  72. package/dist/workflows/platform-context-client.types.js +2 -0
  73. package/dist/workflows/platform-context-client.types.js.map +1 -0
  74. package/dist/workflows/run-types.d.ts +2 -0
  75. package/dist/workflows/run-types.d.ts.map +1 -1
  76. package/dist/workflows/runner.d.ts.map +1 -1
  77. package/dist/workflows/runner.js +1 -0
  78. package/dist/workflows/runner.js.map +1 -1
  79. package/dist/workflows/workflow-production-schema.d.ts +1 -0
  80. package/dist/workflows/workflow-production-schema.d.ts.map +1 -1
  81. package/dist/workflows/workflow-production-schema.js +1 -0
  82. package/dist/workflows/workflow-production-schema.js.map +1 -1
  83. package/dist/workflows/workflow-production-types.d.ts +1 -0
  84. package/dist/workflows/workflow-production-types.d.ts.map +1 -1
  85. package/dist/workflows/workflow-schema.d.ts +1 -0
  86. package/dist/workflows/workflow-schema.d.ts.map +1 -1
  87. package/package.json +2 -1
  88. package/schemas/workflow-v1.schema.json +4 -0
  89. package/dist/cli/workflow-managed-worker-format.d.ts +0 -13
  90. package/dist/cli/workflow-managed-worker-format.d.ts.map +0 -1
  91. package/dist/cli/workflow-managed-worker-format.js +0 -158
  92. package/dist/cli/workflow-managed-worker-format.js.map +0 -1
  93. package/dist/cli/workflow-managed-worker-types.d.ts +0 -137
  94. package/dist/cli/workflow-managed-worker-types.d.ts.map +0 -1
  95. package/dist/cli/workflow-managed-worker-types.js +0 -2
  96. package/dist/cli/workflow-managed-worker-types.js.map +0 -1
  97. package/dist/cli/workflow-managed-worker-util.d.ts +0 -6
  98. package/dist/cli/workflow-managed-worker-util.d.ts.map +0 -1
  99. package/dist/cli/workflow-managed-worker-util.js +0 -31
  100. package/dist/cli/workflow-managed-worker-util.js.map +0 -1
  101. package/dist/cli/workflow-managed-worker.d.ts +0 -2
  102. package/dist/cli/workflow-managed-worker.d.ts.map +0 -1
  103. package/dist/cli/workflow-managed-worker.js +0 -2036
  104. package/dist/cli/workflow-managed-worker.js.map +0 -1
package/README.md CHANGED
@@ -168,19 +168,19 @@ development from accidentally streaming to production after `vpd profile use
168
168
  prod`, and it also prevents changing a shell default from silently rerouting a
169
169
  running daemon.
170
170
 
171
- Managed workflow runners can also be operated from the daemon CLI:
171
+ Managed workers can also be operated from the daemon CLI:
172
172
 
173
173
  ```bash
174
- vpd workflow worker --server https://api.getviewport.com --workspace <org-id> --executor <runner-id> --credential <vpexec-token> --runner-pool <pool> --doctor --json
175
- vpd workflow worker --server https://api.getviewport.com --workspace <org-id> --executor <runner-id> --credential <vpexec-token> --runner-pool <pool>
174
+ vpd worker doctor --server https://api.getviewport.com --workspace <org-id> --executor <runner-id> --credential <vpexec-token> --runner-pool <pool> --json
175
+ vpd worker start --server https://api.getviewport.com --workspace <org-id> --executor <runner-id> --credential <vpexec-token> --runner-pool <pool>
176
176
  ```
177
177
 
178
178
  When the Viewport app creates or rotates a runner credential it also returns a
179
179
  registration profile. Save that JSON profile locally and start the worker with:
180
180
 
181
181
  ```bash
182
- vpd workflow worker --registration-profile="$HOME/.viewport/managed-executors/<runner>.json" --doctor --json
183
- vpd workflow worker --registration-profile="$HOME/.viewport/managed-executors/<runner>.json"
182
+ vpd worker doctor --registration-profile="$HOME/.viewport/managed-executors/<runner>.json" --json
183
+ vpd worker start --registration-profile="$HOME/.viewport/managed-executors/<runner>.json"
184
184
  ```
185
185
 
186
186
  `--doctor` checks the local daemon agent inventory and proves the platform
@@ -48,6 +48,7 @@ export type QueryFn = (params: {
48
48
  abortController?: AbortController;
49
49
  systemPrompt?: string;
50
50
  permissionMode?: string;
51
+ allowDangerouslySkipPermissions?: boolean;
51
52
  persistSession?: boolean;
52
53
  };
53
54
  }) => SDKQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -471,7 +471,7 @@ function claudePermissionOptions(options) {
471
471
  return { permissionMode: 'plan' };
472
472
  }
473
473
  if (options?.config?.approvalPolicy === 'never') {
474
- return { permissionMode: 'bypassPermissions' };
474
+ return { permissionMode: 'bypassPermissions', allowDangerouslySkipPermissions: true };
475
475
  }
476
476
  return {};
477
477
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ interface CodexClient {
20
20
  type CodexClientFactory = (apiKey?: string) => Promise<CodexClient>;
21
21
  type CodexThreadProvider = CodexThread | (() => Promise<CodexThread>);
22
22
  export declare function resolveCodexPathOverride(env?: NodeJS.ProcessEnv): string;
23
+ export declare function resolveCodexApiKey(explicit: string | undefined, env?: NodeJS.ProcessEnv): string | undefined;
23
24
  export declare class CodexSession extends EventEmitter implements Session {
24
25
  readonly id: string;
25
26
  state: SessionState;
@@ -43,7 +44,9 @@ export declare class CodexSession extends EventEmitter implements Session {
43
44
  private setState;
44
45
  private getThread;
45
46
  private runStreamed;
47
+ private assertToolCallIsNotLooping;
46
48
  private run;
49
+ private buildTurnOptions;
47
50
  private buildLegacyInput;
48
51
  }
49
52
  export declare class CodexAdapter implements AgentAdapter {
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
@@ -7,18 +7,24 @@
7
7
  import { EventEmitter } from 'node:events';
8
8
  import { randomUUID } from 'node:crypto';
9
9
  import { existsSync } from 'node:fs';
10
+ import fs from 'node:fs/promises';
11
+ import path from 'node:path';
10
12
  import { metrics } from '../core/metrics.js';
11
13
  import { importCodexSdkModule } from './codex-sdk-loader.js';
12
14
  import { DEFAULT_CODEX_MODEL } from '../agents/codex-defaults.js';
13
15
  import { extractEventsStream, extractStreamError, extractStreamText, extractText, extractTokenUsageEvent, extractToolCallEvent, extractToolCallUpdateEvent, shouldFallbackToLegacyRun, } from './codex-event-normalizers.js';
16
+ const MAX_IDENTICAL_CODEX_TOOL_CALLS = 8;
17
+ const MAX_CODEX_TOOL_CALLS_PER_TURN = 32;
18
+ const CODEX_RUNAWAY_GUARD_POLL_MS = 250;
14
19
  async function defaultClientFactory(apiKey) {
15
20
  const loaded = await importCodexSdkModule();
16
21
  if (!loaded?.module.Codex) {
17
22
  throw new Error('Codex SDK import failed: install @openai/codex-sdk@latest (or @openai/codex@latest)');
18
23
  }
19
24
  const codexPathOverride = resolveCodexPathOverride();
25
+ const resolvedApiKey = resolveCodexApiKey(apiKey);
20
26
  return new loaded.module.Codex({
21
- apiKey,
27
+ ...(resolvedApiKey ? { apiKey: resolvedApiKey } : {}),
22
28
  ...(codexPathOverride ? { codexPathOverride } : {}),
23
29
  config: {
24
30
  model: DEFAULT_CODEX_MODEL,
@@ -35,6 +41,17 @@ export function resolveCodexPathOverride(env = process.env) {
35
41
  }
36
42
  return 'codex';
37
43
  }
44
+ export function resolveCodexApiKey(explicit, env = process.env) {
45
+ if (explicit && explicit.trim())
46
+ return explicit;
47
+ const codexKey = env['CODEX_API_KEY'];
48
+ if (codexKey && codexKey.trim())
49
+ return codexKey;
50
+ const openAiKey = env['OPENAI_API_KEY'];
51
+ if (openAiKey && openAiKey.trim())
52
+ return openAiKey;
53
+ return undefined;
54
+ }
38
55
  export class CodexSession extends EventEmitter {
39
56
  id;
40
57
  state = 'starting';
@@ -78,39 +95,54 @@ export class CodexSession extends EventEmitter {
78
95
  const chunkMessageId = randomUUID();
79
96
  let aggregated = '';
80
97
  const thread = await this.getThread();
81
- if (typeof thread.runStreamed === 'function') {
82
- for await (const chunk of this.runStreamed(thread, text)) {
83
- const toolCall = extractToolCallEvent(chunk);
84
- if (toolCall)
85
- this.emitMessage(toolCall);
86
- const toolUpdate = extractToolCallUpdateEvent(chunk);
87
- if (toolUpdate)
88
- this.emitMessage(toolUpdate);
89
- const usage = extractTokenUsageEvent(chunk);
98
+ const runawayGuard = startCodexRunawayGuard(this.cwd);
99
+ try {
100
+ if (typeof thread.runStreamed === 'function') {
101
+ for await (const chunk of this.runStreamed(thread, text)) {
102
+ const toolCall = extractToolCallEvent(chunk);
103
+ if (toolCall)
104
+ this.emitMessage(toolCall);
105
+ const toolUpdate = extractToolCallUpdateEvent(chunk);
106
+ if (toolUpdate)
107
+ this.emitMessage(toolUpdate);
108
+ const usage = extractTokenUsageEvent(chunk);
109
+ if (usage)
110
+ this.emitMessage(usage);
111
+ const textChunk = extractStreamText(chunk);
112
+ if (!textChunk)
113
+ continue;
114
+ aggregated += textChunk;
115
+ this.emitMessage({
116
+ type: 'agent_message_chunk',
117
+ text: textChunk,
118
+ messageId: chunkMessageId,
119
+ timestamp: Date.now(),
120
+ });
121
+ }
122
+ }
123
+ else if (typeof thread.run === 'function') {
124
+ const result = await this.run(thread, text);
125
+ const usage = extractTokenUsageEvent(result);
90
126
  if (usage)
91
127
  this.emitMessage(usage);
92
- const textChunk = extractStreamText(chunk);
93
- if (!textChunk)
94
- continue;
95
- aggregated += textChunk;
96
- this.emitMessage({
97
- type: 'agent_message_chunk',
98
- text: textChunk,
99
- messageId: chunkMessageId,
100
- timestamp: Date.now(),
101
- });
128
+ aggregated = extractText(result);
129
+ }
130
+ else {
131
+ throw new Error('Codex thread does not expose run or runStreamed');
102
132
  }
103
133
  }
104
- else if (typeof thread.run === 'function') {
105
- const result = await this.run(thread, text);
106
- const usage = extractTokenUsageEvent(result);
107
- if (usage)
108
- this.emitMessage(usage);
109
- aggregated = extractText(result);
134
+ catch (err) {
135
+ const runawayFailure = runawayGuard.failure();
136
+ if (runawayFailure)
137
+ throw new Error(runawayFailure);
138
+ throw err;
110
139
  }
111
- else {
112
- throw new Error('Codex thread does not expose run or runStreamed');
140
+ finally {
141
+ runawayGuard.stop();
113
142
  }
143
+ const runawayFailure = runawayGuard.failure();
144
+ if (runawayFailure)
145
+ throw new Error(runawayFailure);
114
146
  if (aggregated.trim()) {
115
147
  this.emitMessage({
116
148
  type: 'agent_message',
@@ -159,10 +191,14 @@ export class CodexSession extends EventEmitter {
159
191
  async *runStreamed(thread, text) {
160
192
  if (typeof thread.runStreamed !== 'function')
161
193
  return;
162
- const modern = await thread.runStreamed(text);
194
+ const turnOptions = this.buildTurnOptions();
195
+ const modern = await thread.runStreamed(text, turnOptions);
163
196
  const modernEvents = extractEventsStream(modern);
164
197
  if (modernEvents) {
198
+ const repeatedToolCalls = new Map();
199
+ let totalToolCalls = 0;
165
200
  for await (const event of modernEvents) {
201
+ totalToolCalls = this.assertToolCallIsNotLooping(event, repeatedToolCalls, totalToolCalls);
166
202
  const failure = extractStreamError(event);
167
203
  if (failure)
168
204
  throw new Error(failure);
@@ -171,10 +207,13 @@ export class CodexSession extends EventEmitter {
171
207
  return;
172
208
  }
173
209
  const legacyInput = this.buildLegacyInput(text);
174
- const legacy = await thread.runStreamed(legacyInput);
210
+ const legacy = await thread.runStreamed(legacyInput, turnOptions);
175
211
  const legacyEvents = extractEventsStream(legacy);
176
212
  if (legacyEvents) {
213
+ const repeatedToolCalls = new Map();
214
+ let totalToolCalls = 0;
177
215
  for await (const event of legacyEvents) {
216
+ totalToolCalls = this.assertToolCallIsNotLooping(event, repeatedToolCalls, totalToolCalls);
178
217
  const failure = extractStreamError(event);
179
218
  if (failure)
180
219
  throw new Error(failure);
@@ -184,20 +223,45 @@ export class CodexSession extends EventEmitter {
184
223
  }
185
224
  throw new Error('Codex runStreamed did not return an async event stream');
186
225
  }
226
+ assertToolCallIsNotLooping(event, repeatedToolCalls, totalToolCalls) {
227
+ const signature = codexToolCallSignature(event);
228
+ if (!signature)
229
+ return totalToolCalls;
230
+ const nextTotal = totalToolCalls + 1;
231
+ if (nextTotal > MAX_CODEX_TOOL_CALLS_PER_TURN) {
232
+ throw new Error(`Codex exceeded ${MAX_CODEX_TOOL_CALLS_PER_TURN} tool calls in one workflow node without completing; aborting to prevent runaway spend.`);
233
+ }
234
+ const count = (repeatedToolCalls.get(signature) ?? 0) + 1;
235
+ repeatedToolCalls.set(signature, count);
236
+ if (count <= MAX_IDENTICAL_CODEX_TOOL_CALLS)
237
+ return nextTotal;
238
+ throw new Error(`Codex repeated the same tool call ${count} times without completing; aborting the workflow node to prevent runaway spend.`);
239
+ }
187
240
  async run(thread, text) {
188
241
  if (typeof thread.run !== 'function') {
189
242
  throw new Error('Codex thread does not expose run');
190
243
  }
191
244
  try {
192
- return await thread.run(text);
245
+ return await thread.run(text, this.buildTurnOptions());
193
246
  }
194
247
  catch (err) {
195
248
  if (!shouldFallbackToLegacyRun(err))
196
249
  throw err;
197
250
  const legacyInput = this.buildLegacyInput(text);
198
- return thread.run(legacyInput);
251
+ return thread.run(legacyInput, this.buildTurnOptions());
199
252
  }
200
253
  }
254
+ buildTurnOptions() {
255
+ const options = {
256
+ workingDirectory: this.cwd,
257
+ cwd: this.cwd,
258
+ skipGitRepoCheck: true,
259
+ };
260
+ if (this.model) {
261
+ options['model'] = this.model;
262
+ }
263
+ return options;
264
+ }
201
265
  buildLegacyInput(text) {
202
266
  const input = {
203
267
  input: text,
@@ -208,6 +272,208 @@ export class CodexSession extends EventEmitter {
208
272
  return input;
209
273
  }
210
274
  }
275
+ function codexToolCallSignature(event) {
276
+ const rec = recordValue(event);
277
+ if (!rec)
278
+ return null;
279
+ const direct = functionCallRecord(rec);
280
+ if (direct)
281
+ return stableFunctionCallSignature(direct);
282
+ const payload = recordValue(rec['payload']);
283
+ const fromPayload = payload ? functionCallRecord(payload) : null;
284
+ if (fromPayload)
285
+ return stableFunctionCallSignature(fromPayload);
286
+ const item = recordValue(rec['item']);
287
+ const fromItem = item ? functionCallRecord(item) : null;
288
+ if (fromItem)
289
+ return stableFunctionCallSignature(fromItem);
290
+ return null;
291
+ }
292
+ function startCodexRunawayGuard(cwd) {
293
+ const roots = codexSessionLogRoots();
294
+ const offsets = new Map();
295
+ const repeatedToolCalls = new Map();
296
+ let totalToolCalls = 0;
297
+ let failure = null;
298
+ let stopped = false;
299
+ let scanning = false;
300
+ void primeCodexLogOffsets(roots, offsets);
301
+ const timer = setInterval(() => {
302
+ if (stopped || scanning || failure)
303
+ return;
304
+ scanning = true;
305
+ void scanCodexSessionLogs(roots, offsets, (event) => {
306
+ if (failure)
307
+ return;
308
+ const signature = codexToolCallSignature(event);
309
+ if (!signature)
310
+ return;
311
+ totalToolCalls += 1;
312
+ if (totalToolCalls > MAX_CODEX_TOOL_CALLS_PER_TURN) {
313
+ failure = `Codex exceeded ${MAX_CODEX_TOOL_CALLS_PER_TURN} tool calls in one workflow node without completing; aborting to prevent runaway spend.`;
314
+ void killCodexProcessesForCwd(cwd);
315
+ return;
316
+ }
317
+ const count = (repeatedToolCalls.get(signature) ?? 0) + 1;
318
+ repeatedToolCalls.set(signature, count);
319
+ if (count > MAX_IDENTICAL_CODEX_TOOL_CALLS) {
320
+ failure = `Codex repeated the same tool call ${count} times without completing; aborting the workflow node to prevent runaway spend.`;
321
+ void killCodexProcessesForCwd(cwd);
322
+ }
323
+ }).finally(() => {
324
+ scanning = false;
325
+ });
326
+ }, CODEX_RUNAWAY_GUARD_POLL_MS);
327
+ timer.unref?.();
328
+ return {
329
+ stop() {
330
+ stopped = true;
331
+ clearInterval(timer);
332
+ },
333
+ failure() {
334
+ return failure;
335
+ },
336
+ };
337
+ }
338
+ function codexSessionLogRoots(env = process.env) {
339
+ const explicit = env['CODEX_SESSION_LOG_DIR'];
340
+ if (explicit && explicit.trim())
341
+ return [explicit.trim()];
342
+ const home = env['CODEX_HOME'] && env['CODEX_HOME'].trim()
343
+ ? env['CODEX_HOME'].trim()
344
+ : path.join(env['HOME'] || '/root', '.codex');
345
+ return [path.join(home, 'sessions')];
346
+ }
347
+ async function primeCodexLogOffsets(roots, offsets) {
348
+ for (const file of await listCodexJsonlFiles(roots)) {
349
+ try {
350
+ const stat = await fs.stat(file);
351
+ offsets.set(file, stat.size);
352
+ }
353
+ catch {
354
+ // Ignore files that rotate while the guard starts.
355
+ }
356
+ }
357
+ }
358
+ async function scanCodexSessionLogs(roots, offsets, onEvent) {
359
+ for (const file of await listCodexJsonlFiles(roots)) {
360
+ let previousOffset = offsets.get(file);
361
+ try {
362
+ const stat = await fs.stat(file);
363
+ if (previousOffset === undefined)
364
+ previousOffset = 0;
365
+ if (stat.size < previousOffset)
366
+ previousOffset = 0;
367
+ if (stat.size === previousOffset)
368
+ continue;
369
+ const handle = await fs.open(file, 'r');
370
+ try {
371
+ const length = stat.size - previousOffset;
372
+ const buffer = Buffer.alloc(length);
373
+ await handle.read(buffer, 0, length, previousOffset);
374
+ offsets.set(file, stat.size);
375
+ for (const line of buffer.toString('utf8').split(/\r?\n/)) {
376
+ if (!line.trim())
377
+ continue;
378
+ try {
379
+ onEvent(JSON.parse(line));
380
+ }
381
+ catch {
382
+ // Codex may be appending while we read; the next poll will pick up complete JSONL.
383
+ }
384
+ }
385
+ }
386
+ finally {
387
+ await handle.close();
388
+ }
389
+ }
390
+ catch {
391
+ // Missing/unreadable session logs should not break non-Codex adapters or tests.
392
+ }
393
+ }
394
+ }
395
+ async function listCodexJsonlFiles(roots) {
396
+ const files = [];
397
+ for (const root of roots) {
398
+ await collectJsonlFiles(root, files);
399
+ }
400
+ return files;
401
+ }
402
+ async function collectJsonlFiles(dir, files) {
403
+ let entries;
404
+ try {
405
+ entries = await fs.readdir(dir, { withFileTypes: true, encoding: 'utf8' });
406
+ }
407
+ catch {
408
+ return;
409
+ }
410
+ for (const entry of entries) {
411
+ const full = path.join(dir, entry.name);
412
+ if (entry.isDirectory()) {
413
+ await collectJsonlFiles(full, files);
414
+ }
415
+ else if (entry.isFile() && entry.name.endsWith('.jsonl')) {
416
+ files.push(full);
417
+ }
418
+ }
419
+ }
420
+ async function killCodexProcessesForCwd(cwd) {
421
+ let entries;
422
+ try {
423
+ entries = await fs.readdir('/proc');
424
+ }
425
+ catch {
426
+ return;
427
+ }
428
+ for (const entry of entries) {
429
+ if (!/^\d+$/.test(entry))
430
+ continue;
431
+ const pid = Number(entry);
432
+ if (!Number.isFinite(pid) || pid === process.pid)
433
+ continue;
434
+ let cmdline = '';
435
+ try {
436
+ cmdline = await fs.readFile(`/proc/${entry}/cmdline`, 'utf8');
437
+ }
438
+ catch {
439
+ continue;
440
+ }
441
+ const args = cmdline.split('\0').filter(Boolean);
442
+ const joined = args.join(' ');
443
+ if (!joined.includes('codex') || !joined.includes('exec') || !joined.includes(cwd)) {
444
+ continue;
445
+ }
446
+ try {
447
+ process.kill(pid, 'SIGTERM');
448
+ }
449
+ catch {
450
+ // Process may have exited between scan and kill.
451
+ }
452
+ }
453
+ }
454
+ function functionCallRecord(rec) {
455
+ if (rec['type'] === 'function_call')
456
+ return rec;
457
+ const item = recordValue(rec['item']);
458
+ if (item?.['type'] === 'function_call')
459
+ return item;
460
+ return null;
461
+ }
462
+ function stableFunctionCallSignature(rec) {
463
+ const name = typeof rec['name'] === 'string' ? rec['name'] : 'tool';
464
+ const args = rec['arguments'];
465
+ const normalizedArgs = typeof args === 'string'
466
+ ? args
467
+ : args === undefined
468
+ ? ''
469
+ : JSON.stringify(args, Object.keys(recordValue(args) ?? {}).sort());
470
+ return `${name}:${normalizedArgs}`;
471
+ }
472
+ function recordValue(value) {
473
+ return value && typeof value === 'object' && !Array.isArray(value)
474
+ ? value
475
+ : null;
476
+ }
211
477
  export class CodexAdapter {
212
478
  createClient;
213
479
  apiKey;