Skip to content

Commit 78a4c12

Browse files
Update codex to 0.145.0 (#324)
* Update codex to 0.145.0 * Fix types and tests after Codex update --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 2524dfb commit 78a4c12

63 files changed

Lines changed: 448 additions & 88 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

package-lock.json

Lines changed: 28 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
},
6565
"dependencies": {
6666
"@agentclientprotocol/sdk": "^1.2.1",
67-
"@openai/codex": "^0.144.6",
67+
"@openai/codex": "^0.145.0",
6868
"diff": "^9.0.0",
6969
"open": "^11.0.0",
7070
"vscode-jsonrpc": "^9.0.1",

src/CodexEventHandler.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ export class CodexEventHandler {
190190
return this.createTerminalInteractionEvent(notification.params);
191191
// ignored events
192192
case "thread/deleted":
193+
case "thread/environment/connected":
194+
case "thread/environment/disconnected":
193195
case "command/exec/outputDelta":
194196
case "hook/started":
195197
case "hook/completed":
@@ -219,6 +221,7 @@ export class CodexEventHandler {
219221
case "mcpServer/oauthLogin/completed":
220222
case "externalAgentConfig/import/completed":
221223
case "rawResponseItem/completed":
224+
case "rawResponse/completed":
222225
case "thread/started":
223226
case "item/plan/delta":
224227
case "remoteControl/status/changed":

src/CodexToolCallMapper.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ export function createWebSearchStartUpdate(
387387
kind: "search",
388388
title: formatWebSearchTitle(item),
389389
status: "in_progress",
390-
rawInput: item,
390+
rawInput: createWebSearchRawInput(item),
391391
};
392392
}
393393

@@ -399,7 +399,16 @@ export function createWebSearchCompleteUpdate(
399399
toolCallId: item.id,
400400
title: formatWebSearchTitle(item),
401401
status: "completed",
402-
rawInput: item,
402+
rawInput: createWebSearchRawInput(item),
403+
};
404+
}
405+
406+
function createWebSearchRawInput(item: WebSearchItem): Record<string, JsonValue> {
407+
return {
408+
type: item.type,
409+
id: item.id,
410+
query: item.query,
411+
action: item.action,
403412
};
404413
}
405414

src/__tests__/CodexACPAgent/CodexAcpClient.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3340,6 +3340,7 @@ describe('ACP server test', { timeout: 40_000 }, () => {
33403340
secondary: null,
33413341
credits: null,
33423342
individualLimit: null,
3343+
spendControlReached: null,
33433344
planType: null,
33443345
rateLimitReachedType: null,
33453346
}
@@ -3354,6 +3355,7 @@ describe('ACP server test', { timeout: 40_000 }, () => {
33543355
secondary: null,
33553356
credits: null,
33563357
individualLimit: null,
3358+
spendControlReached: null,
33573359
planType: null,
33583360
rateLimitReachedType: null,
33593361
}

src/__tests__/CodexACPAgent/token-usage-events.test.ts

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,15 @@ describe('Token Usage Events', () => {
6060
totalTokens: 5000,
6161
inputTokens: 4000,
6262
cachedInputTokens: 1000,
63+
cacheWriteInputTokens: 0,
6364
outputTokens: 900,
6465
reasoningOutputTokens: 100,
6566
},
6667
last: {
6768
totalTokens: 2500,
6869
inputTokens: 2000,
6970
cachedInputTokens: 500,
71+
cacheWriteInputTokens: 0,
7072
outputTokens: 450,
7173
reasoningOutputTokens: 50,
7274
},
@@ -91,13 +93,15 @@ describe('Token Usage Events', () => {
9193
totalTokens: 3000,
9294
inputTokens: 2500,
9395
cachedInputTokens: 0,
96+
cacheWriteInputTokens: 0,
9497
outputTokens: 500,
9598
reasoningOutputTokens: 0,
9699
},
97100
last: {
98101
totalTokens: 1500,
99102
inputTokens: 1200,
100103
cachedInputTokens: 0,
104+
cacheWriteInputTokens: 0,
101105
outputTokens: 300,
102106
reasoningOutputTokens: 0,
103107
},
@@ -132,18 +136,18 @@ describe('Token Usage Events', () => {
132136
it('should use last token usage from multiple updates', async () => {
133137
const notifications: ServerNotification[] = [
134138
createTokenUsageNotification(sessionId, {
135-
total: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
136-
last: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
139+
total: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, cacheWriteInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
140+
last: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, cacheWriteInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
137141
modelContextWindow: 128000,
138142
}),
139143
createTokenUsageNotification(sessionId, {
140-
total: { totalTokens: 2000, inputTokens: 1600, cachedInputTokens: 0, outputTokens: 400, reasoningOutputTokens: 0 },
141-
last: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
144+
total: { totalTokens: 2000, inputTokens: 1600, cachedInputTokens: 0, cacheWriteInputTokens: 0, outputTokens: 400, reasoningOutputTokens: 0 },
145+
last: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, cacheWriteInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
142146
modelContextWindow: 128000,
143147
}),
144148
createTokenUsageNotification(sessionId, {
145-
total: { totalTokens: 3500, inputTokens: 2800, cachedInputTokens: 500, outputTokens: 600, reasoningOutputTokens: 100 },
146-
last: { totalTokens: 1500, inputTokens: 1200, cachedInputTokens: 500, outputTokens: 200, reasoningOutputTokens: 100 },
149+
total: { totalTokens: 3500, inputTokens: 2800, cachedInputTokens: 500, cacheWriteInputTokens: 0, outputTokens: 600, reasoningOutputTokens: 100 },
150+
last: { totalTokens: 1500, inputTokens: 1200, cachedInputTokens: 500, cacheWriteInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 100 },
147151
modelContextWindow: 128000,
148152
}),
149153
];
@@ -197,13 +201,15 @@ describe('Token Usage Events', () => {
197201
totalTokens: 5000,
198202
inputTokens: 4000,
199203
cachedInputTokens: 1000,
204+
cacheWriteInputTokens: 0,
200205
outputTokens: 900,
201206
reasoningOutputTokens: 100,
202207
},
203208
last: {
204209
totalTokens: 2500,
205210
inputTokens: 2000,
206211
cachedInputTokens: 500,
212+
cacheWriteInputTokens: 0,
207213
outputTokens: 450,
208214
reasoningOutputTokens: 50,
209215
},
@@ -217,18 +223,18 @@ describe('Token Usage Events', () => {
217223
it('should emit latest turn usage from multiple updates', async () => {
218224
const events = await setupPromptAndReturnEvents([
219225
createTokenUsageNotification(sessionId, {
220-
total: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
221-
last: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
226+
total: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, cacheWriteInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
227+
last: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, cacheWriteInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
222228
modelContextWindow: 128000,
223229
}),
224230
createTokenUsageNotification(sessionId, {
225-
total: { totalTokens: 2000, inputTokens: 1600, cachedInputTokens: 0, outputTokens: 400, reasoningOutputTokens: 0 },
226-
last: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
231+
total: { totalTokens: 2000, inputTokens: 1600, cachedInputTokens: 0, cacheWriteInputTokens: 0, outputTokens: 400, reasoningOutputTokens: 0 },
232+
last: { totalTokens: 1000, inputTokens: 800, cachedInputTokens: 0, cacheWriteInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 0 },
227233
modelContextWindow: 128000,
228234
}),
229235
createTokenUsageNotification(sessionId, {
230-
total: { totalTokens: 3500, inputTokens: 2800, cachedInputTokens: 500, outputTokens: 600, reasoningOutputTokens: 100 },
231-
last: { totalTokens: 1500, inputTokens: 1200, cachedInputTokens: 500, outputTokens: 200, reasoningOutputTokens: 100 },
236+
total: { totalTokens: 3500, inputTokens: 2800, cachedInputTokens: 500, cacheWriteInputTokens: 0, outputTokens: 600, reasoningOutputTokens: 100 },
237+
last: { totalTokens: 1500, inputTokens: 1200, cachedInputTokens: 500, cacheWriteInputTokens: 0, outputTokens: 200, reasoningOutputTokens: 100 },
232238
modelContextWindow: 128000,
233239
}),
234240
])();
@@ -239,8 +245,8 @@ describe('Token Usage Events', () => {
239245
it('should skip usage_update when model context window is unavailable', async () => {
240246
const events = await setupPromptAndReturnEvents([
241247
createTokenUsageNotification(sessionId, {
242-
total: { totalTokens: 5000, inputTokens: 4000, cachedInputTokens: 1000, outputTokens: 900, reasoningOutputTokens: 100 },
243-
last: { totalTokens: 2500, inputTokens: 2000, cachedInputTokens: 500, outputTokens: 450, reasoningOutputTokens: 50 },
248+
total: { totalTokens: 5000, inputTokens: 4000, cachedInputTokens: 1000, cacheWriteInputTokens: 0, outputTokens: 900, reasoningOutputTokens: 100 },
249+
last: { totalTokens: 2500, inputTokens: 2000, cachedInputTokens: 500, cacheWriteInputTokens: 0, outputTokens: 450, reasoningOutputTokens: 50 },
244250
modelContextWindow: null,
245251
}),
246252
])();

src/__tests__/CodexACPAgent/web-search-events.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ describe("CodexEventHandler - web search events", () => {
3636
type: "webSearch",
3737
id: "web-search-1",
3838
query: "agent client protocol",
39+
results: null,
3940
action: {
4041
type: "search",
4142
query: "agent client protocol",
@@ -54,6 +55,7 @@ describe("CodexEventHandler - web search events", () => {
5455
type: "webSearch",
5556
id: "web-search-1",
5657
query: "agent client protocol",
58+
results: null,
5759
action: {
5860
type: "search",
5961
query: "agent client protocol",
@@ -83,6 +85,7 @@ describe("CodexEventHandler - web search events", () => {
8385
type: "webSearch",
8486
id: "web-open-1",
8587
query: "https://agentclientprotocol.com",
88+
results: null,
8689
action: {
8790
type: "openPage",
8891
url: "https://agentclientprotocol.com",
@@ -100,6 +103,7 @@ describe("CodexEventHandler - web search events", () => {
100103
type: "webSearch",
101104
id: "web-find-1",
102105
query: "protocol",
106+
results: null,
103107
action: {
104108
type: "findInPage",
105109
url: "https://agentclientprotocol.com/protocol",

0 commit comments

Comments
 (0)