@workbench-ai/agent-driver-openai-codex 0.0.44 → 0.0.45

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/dist/index.d.ts CHANGED
@@ -64,6 +64,7 @@ export declare function createCodexHarnessDefinition(options?: {
64
64
  strategy: "secret_ref";
65
65
  ref: string;
66
66
  };
67
+ model: string;
67
68
  config: {};
68
69
  };
69
70
  capabilities: {
@@ -104,6 +105,7 @@ export declare const codexHarnessDefinition: {
104
105
  strategy: "secret_ref";
105
106
  ref: string;
106
107
  };
108
+ model: string;
107
109
  config: {};
108
110
  };
109
111
  capabilities: {
@@ -135,6 +137,7 @@ export declare const codexHarnessProvider: HarnessProvider<CodexSessionState, {
135
137
  export { listCodexIntegrations, projectCodexIntegrations, updateCodexIntegrations, } from "./integrations.js";
136
138
  export { projectCodexGlobalSkills, syncCodexGlobalSkills, } from "./global-skills.js";
137
139
  export { codexWorkbenchProviderAuth, } from "./workbench-auth.js";
140
+ export { codexLocalTraceAdapter, } from "./local-traces.js";
138
141
  export declare function codexHarness(options?: {
139
142
  executable?: string;
140
143
  }): HarnessProvider<CodexSessionState, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -63,6 +63,7 @@ export function createCodexHarnessDefinition(options = {}) {
63
63
  strategy: "secret_ref",
64
64
  ref: "OPENAI_API_KEY",
65
65
  },
66
+ model: "gpt-5.5",
66
67
  config: {},
67
68
  },
68
69
  capabilities: {
@@ -89,6 +90,7 @@ export const codexHarnessProvider = codexHarness();
89
90
  export { listCodexIntegrations, projectCodexIntegrations, updateCodexIntegrations, } from "./integrations.js";
90
91
  export { projectCodexGlobalSkills, syncCodexGlobalSkills, } from "./global-skills.js";
91
92
  export { codexWorkbenchProviderAuth, } from "./workbench-auth.js";
93
+ export { codexLocalTraceAdapter, } from "./local-traces.js";
92
94
  export function codexHarness(options = {}) {
93
95
  const definition = createCodexHarnessDefinition(options);
94
96
  return defineHarnessProvider({
@@ -0,0 +1,3 @@
1
+ import { type LocalTraceAdapter } from "@workbench-ai/agent-driver";
2
+ export declare const codexLocalTraceAdapter: LocalTraceAdapter;
3
+ //# sourceMappingURL=local-traces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-traces.d.ts","sourceRoot":"","sources":["../src/local-traces.ts"],"names":[],"mappings":"AAGA,OAAO,EAwBL,KAAK,iBAAiB,EAKvB,MAAM,4BAA4B,CAAC;AAwBpC,eAAO,MAAM,sBAAsB,EAAE,iBAoKpC,CAAC"}
@@ -0,0 +1,492 @@
1
+ import { promises as fs } from "node:fs";
2
+ import path from "node:path";
3
+ import { appendUnique, buildAgentReadableTraceDigest, collectTraceToolArtifacts, createEmptyTraceArtifacts, expandLocalTraceHomePath, localTraceHomeDir, localTraceRefIsAtOrAfter, localTraceRefMatchesWorkspace, localTraceShortHash, mergeLocalTraceRawType, mergeLocalTraceTimelineTool, normalizeTraceText, readLocalTraceJsonLines, sortLocalTraceRefs, traceJsonArray, traceJsonObject, traceNumber, traceString, truncateTraceJsonValue, truncateTraceText, } from "@workbench-ai/agent-driver";
4
+ const CODEX_LOCAL_TRACE_PROVIDER = "codex";
5
+ const CODEX_LOCAL_TRACE_DISPLAY = "OpenAI Codex";
6
+ export const codexLocalTraceAdapter = {
7
+ id: CODEX_LOCAL_TRACE_PROVIDER,
8
+ displayName: CODEX_LOCAL_TRACE_DISPLAY,
9
+ async discoverLocalTraces(context = {}) {
10
+ const requested = parseCodexTraceId(context.traceId);
11
+ if (context.traceId && !requested) {
12
+ return [];
13
+ }
14
+ const codexHome = resolveCodexHome(context.env);
15
+ const indexPath = path.join(codexHome, "session_index.jsonl");
16
+ const index = await readCodexIndex(indexPath);
17
+ const files = await listCodexSessionFiles(codexHome);
18
+ const refs = [];
19
+ for (const file of files) {
20
+ if (requested && localTraceShortHash(file.sourcePath) !== requested.sourceHash) {
21
+ continue;
22
+ }
23
+ const summary = await summarizeCodexSessionFile(file.sourcePath, index, file.mtimeMs);
24
+ if (!summary) {
25
+ continue;
26
+ }
27
+ if (requested && summary.threadId !== requested.sessionId) {
28
+ continue;
29
+ }
30
+ const ref = codexSummaryToRef(codexHome, indexPath, file.sourcePath, summary);
31
+ if (!localTraceRefMatchesWorkspace(ref, context.workspaceRoot)) {
32
+ continue;
33
+ }
34
+ if (context.since && !localTraceRefIsAtOrAfter(ref, context.since)) {
35
+ continue;
36
+ }
37
+ refs.push(ref);
38
+ if (requested) {
39
+ break;
40
+ }
41
+ if (typeof context.limit === "number" && context.limit > 0 && refs.length >= context.limit) {
42
+ break;
43
+ }
44
+ }
45
+ const sorted = sortLocalTraceRefs(refs);
46
+ return sorted;
47
+ },
48
+ async readLocalTraceDigest(ref, context = {}) {
49
+ const records = await readLocalTraceJsonLines(ref.sourcePath);
50
+ const maxTextChars = context.maxTextChars ?? 4_000;
51
+ const maxToolOutputChars = context.maxToolOutputChars ?? Math.min(maxTextChars, 1_000);
52
+ const timeline = [];
53
+ const toolEntryById = new Map();
54
+ const artifacts = createEmptyTraceArtifacts();
55
+ let goal;
56
+ let activeThreadId = null;
57
+ const pushEntry = (entry) => {
58
+ const timelineEntry = {
59
+ index: timeline.length,
60
+ ...entry,
61
+ };
62
+ timeline.push(timelineEntry);
63
+ return timelineEntry;
64
+ };
65
+ const pushToolEntry = (tool, at, rawType) => {
66
+ collectTraceToolArtifacts(artifacts, tool);
67
+ const existing = tool.id ? toolEntryById.get(tool.id) : undefined;
68
+ if (existing?.tool) {
69
+ existing.tool = mergeLocalTraceTimelineTool(existing.tool, tool);
70
+ existing.raw = { type: mergeLocalTraceRawType(existing.raw?.type, rawType) };
71
+ return;
72
+ }
73
+ const entry = pushEntry({
74
+ type: "tool",
75
+ ...(at ? { at } : {}),
76
+ tool,
77
+ raw: { type: rawType },
78
+ });
79
+ if (tool.id) {
80
+ toolEntryById.set(tool.id, entry);
81
+ }
82
+ };
83
+ for (const record of records) {
84
+ const recordType = traceString(record.type);
85
+ const payload = traceJsonObject(record.payload);
86
+ const at = traceString(record.timestamp);
87
+ if (recordType === "session_meta") {
88
+ activeThreadId = traceString(payload?.id);
89
+ continue;
90
+ }
91
+ if (!payload || (ref.sessionId && activeThreadId && activeThreadId !== ref.sessionId)) {
92
+ continue;
93
+ }
94
+ if (recordType === "response_item") {
95
+ const payloadType = traceString(payload.type);
96
+ if (payloadType === "message") {
97
+ const role = traceString(payload.role);
98
+ if (role !== "user" && role !== "assistant") {
99
+ continue;
100
+ }
101
+ const text = extractCodexMessageText(traceJsonArray(payload.content), role);
102
+ const truncated = truncateTraceText(text, maxTextChars);
103
+ if (!truncated || (role === "user" && isCodexSyntheticUserText(truncated))) {
104
+ continue;
105
+ }
106
+ if (role === "user" && !goal) {
107
+ goal = truncateTraceText(truncated, 300) ?? undefined;
108
+ }
109
+ pushEntry({
110
+ type: role,
111
+ ...(at ? { at } : {}),
112
+ text: truncated,
113
+ ...(traceString(payload.phase) ? { phase: traceString(payload.phase) } : {}),
114
+ raw: { type: "response_item.message" },
115
+ });
116
+ continue;
117
+ }
118
+ if (payloadType === "function_call") {
119
+ const tool = codexToolFromPayload(payload, "started", maxTextChars, maxToolOutputChars);
120
+ pushToolEntry(tool, at, "response_item.function_call");
121
+ continue;
122
+ }
123
+ if (payloadType === "function_call_output") {
124
+ const tool = codexToolFromPayload(payload, "completed", maxTextChars, maxToolOutputChars);
125
+ pushToolEntry(tool, at, "response_item.function_call_output");
126
+ }
127
+ continue;
128
+ }
129
+ if (recordType !== "event_msg") {
130
+ continue;
131
+ }
132
+ const eventType = traceString(payload.type);
133
+ if (eventType === "error") {
134
+ const message = truncateTraceText(traceString(payload.message), maxTextChars);
135
+ if (message) {
136
+ appendUnique(artifacts.errors, message);
137
+ pushEntry({
138
+ type: "error",
139
+ ...(at ? { at } : {}),
140
+ text: message,
141
+ raw: { type: "event_msg.error" },
142
+ });
143
+ }
144
+ continue;
145
+ }
146
+ if (eventType !== "exec_command_end" && eventType !== "mcp_tool_call_end") {
147
+ continue;
148
+ }
149
+ const tool = codexToolFromPayload(payload, "completed", maxTextChars, maxToolOutputChars);
150
+ pushToolEntry(tool, at, `event_msg.${eventType}`);
151
+ }
152
+ return buildAgentReadableTraceDigest({
153
+ provider: CODEX_LOCAL_TRACE_PROVIDER,
154
+ ref,
155
+ ...(goal ? { goal } : {}),
156
+ timeline,
157
+ artifacts,
158
+ });
159
+ },
160
+ };
161
+ function parseCodexTraceId(traceId) {
162
+ if (!traceId) {
163
+ return null;
164
+ }
165
+ const [provider, sessionId, sourceHash, ...extra] = traceId.split(":");
166
+ if (provider !== CODEX_LOCAL_TRACE_PROVIDER ||
167
+ !sessionId ||
168
+ !sourceHash ||
169
+ extra.length > 0) {
170
+ return null;
171
+ }
172
+ return { sessionId, sourceHash };
173
+ }
174
+ function resolveCodexHome(env = process.env) {
175
+ const explicit = env.CODEX_HOME?.trim();
176
+ if (explicit) {
177
+ return path.resolve(expandLocalTraceHomePath(explicit, env));
178
+ }
179
+ return path.join(localTraceHomeDir(env), ".codex");
180
+ }
181
+ async function readCodexIndex(indexPath) {
182
+ const index = new Map();
183
+ const records = await readLocalTraceJsonLines(indexPath).catch(() => []);
184
+ for (const record of records) {
185
+ const id = traceString(record.id);
186
+ if (!id) {
187
+ continue;
188
+ }
189
+ const entry = {};
190
+ const title = traceString(record.thread_name);
191
+ const updatedAt = traceString(record.updated_at);
192
+ if (title && !isCodexSyntheticUserText(title)) {
193
+ entry.title = title;
194
+ }
195
+ if (updatedAt) {
196
+ entry.updatedAt = updatedAt;
197
+ }
198
+ index.set(id, entry);
199
+ }
200
+ return index;
201
+ }
202
+ async function listCodexSessionFiles(codexHome) {
203
+ const roots = [
204
+ path.join(codexHome, "sessions"),
205
+ path.join(codexHome, "archived_sessions"),
206
+ ];
207
+ const files = [];
208
+ for (const root of roots) {
209
+ await collectJsonlFiles(root, files);
210
+ }
211
+ return files.sort((left, right) => right.mtimeMs - left.mtimeMs || left.sourcePath.localeCompare(right.sourcePath));
212
+ }
213
+ async function collectJsonlFiles(root, files) {
214
+ const entries = await fs.readdir(root, { withFileTypes: true }).catch(() => []);
215
+ for (const entry of entries) {
216
+ const entryPath = path.join(root, entry.name);
217
+ if (entry.isDirectory()) {
218
+ await collectJsonlFiles(entryPath, files);
219
+ continue;
220
+ }
221
+ if (entry.isFile() && entry.name.endsWith(".jsonl")) {
222
+ const stat = await fs.stat(entryPath).catch(() => null);
223
+ files.push({
224
+ sourcePath: entryPath,
225
+ mtimeMs: stat?.mtimeMs ?? 0,
226
+ });
227
+ }
228
+ }
229
+ }
230
+ async function summarizeCodexSessionFile(sourcePath, index, fallbackMtimeMs) {
231
+ const records = await readLocalTraceJsonLines(sourcePath).catch(() => []);
232
+ let threadId = null;
233
+ let workspaceRoot;
234
+ let startedAt;
235
+ let endedAt;
236
+ let title;
237
+ for (const record of records) {
238
+ const timestamp = traceString(record.timestamp);
239
+ if (timestamp) {
240
+ startedAt ??= timestamp;
241
+ endedAt = timestamp;
242
+ }
243
+ const recordType = traceString(record.type);
244
+ const payload = traceJsonObject(record.payload);
245
+ if (recordType === "session_meta" && payload) {
246
+ threadId ??= traceString(payload.id);
247
+ const cwd = traceString(payload.cwd);
248
+ if (cwd) {
249
+ workspaceRoot = path.resolve(cwd);
250
+ }
251
+ startedAt ??= traceString(payload.timestamp) ?? timestamp ?? undefined;
252
+ continue;
253
+ }
254
+ if (title || recordType !== "response_item" || !payload) {
255
+ continue;
256
+ }
257
+ if (traceString(payload.type) !== "message" || traceString(payload.role) !== "user") {
258
+ continue;
259
+ }
260
+ const text = extractCodexMessageText(traceJsonArray(payload.content), "user");
261
+ if (!text || isCodexSyntheticUserText(text)) {
262
+ continue;
263
+ }
264
+ title = truncateTraceText(text, 96) ?? undefined;
265
+ }
266
+ if (!threadId) {
267
+ return null;
268
+ }
269
+ const indexEntry = index.get(threadId);
270
+ const fallbackUpdatedAt = typeof fallbackMtimeMs === "number" && fallbackMtimeMs > 0
271
+ ? new Date(fallbackMtimeMs).toISOString()
272
+ : await fs.stat(sourcePath)
273
+ .then((stat) => stat.mtime.toISOString())
274
+ .catch(() => undefined);
275
+ return {
276
+ threadId,
277
+ ...(indexEntry?.title || title ? { title: indexEntry?.title ?? title } : {}),
278
+ ...(workspaceRoot ? { workspaceRoot } : {}),
279
+ ...(startedAt ? { startedAt } : {}),
280
+ ...(endedAt ? { endedAt } : {}),
281
+ updatedAt: indexEntry?.updatedAt ?? endedAt ?? fallbackUpdatedAt,
282
+ };
283
+ }
284
+ function codexSummaryToRef(codexHome, indexPath, sourcePath, summary) {
285
+ return {
286
+ provider: CODEX_LOCAL_TRACE_PROVIDER,
287
+ traceId: `codex:${summary.threadId}:${localTraceShortHash(sourcePath)}`,
288
+ sourcePath,
289
+ profileRoot: codexHome,
290
+ indexPath,
291
+ sessionId: summary.threadId,
292
+ ...(summary.title ? { title: summary.title } : {}),
293
+ ...(summary.workspaceRoot ? { workspaceRoot: summary.workspaceRoot } : {}),
294
+ ...(summary.startedAt ? { startedAt: summary.startedAt } : {}),
295
+ ...(summary.endedAt ? { endedAt: summary.endedAt } : {}),
296
+ ...(summary.updatedAt ? { updatedAt: summary.updatedAt } : {}),
297
+ };
298
+ }
299
+ function extractCodexMessageText(content, role) {
300
+ const chunks = [];
301
+ for (const entry of content) {
302
+ const block = traceJsonObject(entry);
303
+ const type = traceString(block?.type);
304
+ if (role === "user" && type === "input_text") {
305
+ const text = normalizeTraceText(traceString(block?.text));
306
+ if (text) {
307
+ chunks.push(text);
308
+ }
309
+ }
310
+ if (role === "assistant" && type === "output_text") {
311
+ const text = normalizeTraceText(traceString(block?.text));
312
+ if (text) {
313
+ chunks.push(text);
314
+ }
315
+ }
316
+ }
317
+ return chunks.length > 0 ? chunks.join("\n\n") : null;
318
+ }
319
+ function isCodexSyntheticUserText(text) {
320
+ const trimmed = text.trimStart();
321
+ return (trimmed.startsWith("<user_instructions>") ||
322
+ trimmed.startsWith("<environment_context>") ||
323
+ trimmed.startsWith("# AGENTS.md instructions for ") ||
324
+ trimmed.startsWith("# AGENTS instructions for "));
325
+ }
326
+ function codexToolFromPayload(payload, status, maxTextChars, maxToolOutputChars) {
327
+ const input = readCodexToolInput(payload, maxTextChars);
328
+ const output = readCodexToolOutput(payload, maxToolOutputChars);
329
+ const error = truncateTraceText(readCodexToolError(payload), maxTextChars) ?? undefined;
330
+ const command = readToolCommand(payload, input);
331
+ const cwd = readCodexString(payload, [["cwd"], ["item", "cwd"]]) ?? readToolCwd(input);
332
+ const exitCode = traceNumber(payload.exit_code) ??
333
+ traceNumber(payload.exitCode) ??
334
+ traceNumber(readCodexValue(payload, ["result", "exit_code"])) ??
335
+ traceNumber(readCodexValue(payload, ["result", "exitCode"])) ??
336
+ undefined;
337
+ return {
338
+ status,
339
+ ...(readCodexToolId(payload) ? { id: readCodexToolId(payload) } : {}),
340
+ ...(readCodexToolName(payload) ? { name: readCodexToolName(payload) } : {}),
341
+ ...(input !== undefined ? { input } : {}),
342
+ ...(output !== undefined ? { output } : {}),
343
+ ...(error ? { error } : {}),
344
+ ...(command ? { command } : {}),
345
+ ...(cwd ? { cwd } : {}),
346
+ ...(typeof exitCode === "number" ? { exitCode } : {}),
347
+ };
348
+ }
349
+ function readCodexValue(payload, segments) {
350
+ let current = payload ?? undefined;
351
+ for (const segment of segments) {
352
+ if (!current || Array.isArray(current) || typeof current !== "object") {
353
+ return undefined;
354
+ }
355
+ current = current[segment];
356
+ }
357
+ return current;
358
+ }
359
+ function readCodexString(payload, paths) {
360
+ for (const itemPath of paths) {
361
+ const value = readCodexValue(payload, itemPath);
362
+ const text = traceString(value);
363
+ if (text) {
364
+ return text;
365
+ }
366
+ }
367
+ return null;
368
+ }
369
+ function readCodexToolId(payload) {
370
+ return readCodexString(payload, [
371
+ ["id"],
372
+ ["item", "id"],
373
+ ["call_id"],
374
+ ["callId"],
375
+ ["toolCall", "id"],
376
+ ["tool_call", "id"],
377
+ ["call", "id"],
378
+ ]);
379
+ }
380
+ function readCodexToolName(payload) {
381
+ return readCodexString(payload, [
382
+ ["name"],
383
+ ["item", "name"],
384
+ ["toolName"],
385
+ ["tool_name"],
386
+ ["tool", "name"],
387
+ ["call", "name"],
388
+ ["invocation", "tool"],
389
+ ["item", "invocation", "tool"],
390
+ ["title"],
391
+ ["item", "title"],
392
+ ]);
393
+ }
394
+ function readCodexToolInput(payload, maxTextChars) {
395
+ const raw = readCodexValue(payload, ["arguments"]) ??
396
+ readCodexValue(payload, ["item", "arguments"]) ??
397
+ readCodexValue(payload, ["invocation", "arguments"]) ??
398
+ readCodexValue(payload, ["item", "invocation", "arguments"]) ??
399
+ readCodexValue(payload, ["input"]) ??
400
+ readCodexValue(payload, ["item", "input"]);
401
+ if (raw !== undefined) {
402
+ return truncateTraceJsonValue(normalizeCodexJsonValue(raw), { maxTextChars });
403
+ }
404
+ const command = readCodexValue(payload, ["command"]);
405
+ const cwd = traceString(payload.cwd);
406
+ const fallback = {};
407
+ if (command !== undefined) {
408
+ fallback.command = command;
409
+ }
410
+ if (cwd) {
411
+ fallback.cwd = cwd;
412
+ }
413
+ return Object.keys(fallback).length > 0
414
+ ? truncateTraceJsonValue(fallback, { maxTextChars })
415
+ : undefined;
416
+ }
417
+ function readCodexToolOutput(payload, maxTextChars) {
418
+ const result = readCodexValue(payload, ["result"]) ??
419
+ readCodexValue(payload, ["item", "result"]) ??
420
+ readCodexValue(payload, ["output"]) ??
421
+ readCodexValue(payload, ["item", "output"]);
422
+ if (result !== undefined) {
423
+ return truncateTraceJsonValue(normalizeCodexJsonValue(result), { maxTextChars });
424
+ }
425
+ const aggregatedOutput = readCodexString(payload, [
426
+ ["aggregated_output"],
427
+ ["aggregatedOutput"],
428
+ ["item", "aggregatedOutput"],
429
+ ]);
430
+ return truncateTraceText(aggregatedOutput, maxTextChars) ?? undefined;
431
+ }
432
+ function readCodexToolError(payload) {
433
+ const status = readCodexString(payload, [["status"], ["item", "status"]]);
434
+ const errorText = readCodexString(payload, [
435
+ ["error"],
436
+ ["errorText"],
437
+ ["stderr"],
438
+ ["formatted_output"],
439
+ ["formattedOutput"],
440
+ ]);
441
+ if (errorText) {
442
+ return errorText;
443
+ }
444
+ if (status === "failed" || status === "error") {
445
+ return readCodexString(payload, [
446
+ ["aggregated_output"],
447
+ ["aggregatedOutput"],
448
+ ["output"],
449
+ ]);
450
+ }
451
+ return null;
452
+ }
453
+ function normalizeCodexJsonValue(value) {
454
+ if (typeof value !== "string") {
455
+ return value;
456
+ }
457
+ const trimmed = value.trim();
458
+ if (!/^[\[{"]/u.test(trimmed)) {
459
+ return value;
460
+ }
461
+ try {
462
+ return JSON.parse(trimmed);
463
+ }
464
+ catch {
465
+ return value;
466
+ }
467
+ }
468
+ function readToolCommand(payload, input) {
469
+ const direct = readCodexValue(payload, ["command"]);
470
+ if (Array.isArray(direct)) {
471
+ return direct.map((part) => String(part)).join(" ");
472
+ }
473
+ if (typeof direct === "string") {
474
+ return direct;
475
+ }
476
+ const inputRecord = traceJsonObject(input);
477
+ const command = traceString(inputRecord?.cmd) ?? traceString(inputRecord?.command);
478
+ if (command) {
479
+ return command;
480
+ }
481
+ const commandArray = inputRecord?.command;
482
+ if (Array.isArray(commandArray)) {
483
+ return commandArray.map((part) => String(part)).join(" ");
484
+ }
485
+ return undefined;
486
+ }
487
+ function readToolCwd(input) {
488
+ const inputRecord = traceJsonObject(input);
489
+ return traceString(inputRecord?.cwd) ??
490
+ traceString(inputRecord?.workdir) ??
491
+ undefined;
492
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workbench-ai/agent-driver-openai-codex",
3
- "version": "0.0.44",
3
+ "version": "0.0.45",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,7 +28,7 @@
28
28
  ],
29
29
  "dependencies": {
30
30
  "zod": "^4.1.5",
31
- "@workbench-ai/agent-driver": "0.0.44"
31
+ "@workbench-ai/agent-driver": "0.0.45"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^24.3.1",