Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"license": "ISC",
"type": "module",
"devDependencies": {
"@openai/codex": "^0.106.0",
"@openai/codex": "^0.107.0",
"@types/node": "^24.10.1",
"mcp-hello-world": "^1.1.2",
"tsx": "^4.20.6",
Expand Down
1 change: 1 addition & 0 deletions src/CodexEventHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ export class CodexEventHandler {
case "item/commandExecution/terminalInteraction":
case "item/fileChange/outputDelta":
case "item/mcpToolCall/progress":
case "serverRequest/resolved":
case "account/updated":
return null;
case "account/rateLimits/updated":
Expand Down
10 changes: 8 additions & 2 deletions src/__tests__/CodexACPAgent/CodexAcpClient.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ describe('ACP server test', { timeout: 40_000 }, () => {
id: "gpt-5",
model: "gpt-5",
upgrade: null,
upgradeInfo: null,
availabilityNux: null,
displayName: "gpt-5",
description: "test model",
hidden: false,
Expand Down Expand Up @@ -539,6 +541,9 @@ describe('ACP server test', { timeout: 40_000 }, () => {
{
id: '5.2-codex',
model: '5.2-codex',
upgrade: null,
upgradeInfo: null,
availabilityNux: null,
displayName: 'Codex 5.2',
description: 'Coding model',
hidden: false,
Expand All @@ -549,12 +554,14 @@ describe('ACP server test', { timeout: 40_000 }, () => {
defaultReasoningEffort: 'medium',
supportsPersonality: false,
isDefault: false,
upgrade: null,
inputModalities: []
},
{
id: '5.1',
model: '5.1',
upgrade: null,
upgradeInfo: null,
availabilityNux: null,
displayName: 'Standard 5.1',
description: 'Standard model',
hidden: false,
Expand All @@ -564,7 +571,6 @@ describe('ACP server test', { timeout: 40_000 }, () => {
defaultReasoningEffort: 'low',
supportsPersonality: false,
isDefault: true,
upgrade: null,
inputModalities: []
}
];
Expand Down
30 changes: 30 additions & 0 deletions src/__tests__/CodexACPAgent/data/auth-with-key.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@
"id": "id",
"model": "model",
"upgrade": "upgrade",
"upgradeInfo": null,
"availabilityNux": null,
"displayName": "gpt-5.3-codex",
"description": "Latest frontier agentic coding model.",
"hidden": false,
Expand All @@ -108,6 +110,13 @@
"id": "id",
"model": "model",
"upgrade": "upgrade",
"upgradeInfo": {
"model": "model",
"upgradeCopy": null,
"modelLink": null,
"migrationMarkdown": "**Codex just got an upgrade. Introducing {model_to}.**\n\nCodex is now powered by {model_to}, our most capable agentic coding model yet. It's built for long-running, project-scale work, with mid-turn steering + frequent progress updates so you can collaborate while it runs (and it's faster too).\n\nLearn more: https://openai.com/index/introducing-gpt-5-3-codex/\n\nYou can keep using {model_from} if you prefer.\n"
},
"availabilityNux": null,
"displayName": "gpt-5.2-codex",
"description": "Frontier agentic coding model.",
"hidden": false,
Expand All @@ -124,6 +133,13 @@
"id": "id",
"model": "model",
"upgrade": "upgrade",
"upgradeInfo": {
"model": "model",
"upgradeCopy": null,
"modelLink": null,
"migrationMarkdown": "**Codex just got an upgrade. Introducing {model_to}.**\n\nCodex is now powered by {model_to}, our most capable agentic coding model yet. It's built for long-running, project-scale work, with mid-turn steering + frequent progress updates so you can collaborate while it runs (and it's faster too).\n\nLearn more: https://openai.com/index/introducing-gpt-5-3-codex/\n\nYou can keep using {model_from} if you prefer.\n"
},
"availabilityNux": null,
"displayName": "gpt-5.1-codex-max",
"description": "Codex-optimized flagship for deep and fast reasoning.",
"hidden": false,
Expand All @@ -140,6 +156,13 @@
"id": "id",
"model": "model",
"upgrade": "upgrade",
"upgradeInfo": {
"model": "model",
"upgradeCopy": null,
"modelLink": null,
"migrationMarkdown": "**Codex just got an upgrade. Introducing {model_to}.**\n\nCodex is now powered by {model_to}, our most capable agentic coding model yet. It's built for long-running, project-scale work, with mid-turn steering + frequent progress updates so you can collaborate while it runs (and it's faster too).\n\nLearn more: https://openai.com/index/introducing-gpt-5-3-codex/\n\nYou can keep using {model_from} if you prefer.\n"
},
"availabilityNux": null,
"displayName": "gpt-5.2",
"description": "Latest frontier model with improvements across knowledge, reasoning and coding",
"hidden": false,
Expand All @@ -156,6 +179,13 @@
"id": "id",
"model": "model",
"upgrade": "upgrade",
"upgradeInfo": {
"model": "model",
"upgradeCopy": null,
"modelLink": null,
"migrationMarkdown": "**Codex just got an upgrade. Introducing {model_to}.**\n\nCodex is now powered by {model_to}, our most capable agentic coding model yet. It's built for long-running, project-scale work, with mid-turn steering + frequent progress updates so you can collaborate while it runs (and it's faster too).\n\nLearn more: https://openai.com/index/introducing-gpt-5-3-codex/\n\nYou can keep using {model_from} if you prefer.\n"
},
"availabilityNux": null,
"displayName": "gpt-5.1-codex-mini",
"description": "Optimized for codex. Cheaper, faster, but less capable.",
"hidden": false,
Expand Down
2 changes: 2 additions & 0 deletions src/__tests__/CodexACPAgent/list-sessions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ describe("CodexACPAgent - list sessions", () => {
const threadA: Thread = {
id: "sess-1",
preview: "First session",
ephemeral: false,
modelProvider: "openai",
createdAt: 100,
updatedAt: 200,
Expand All @@ -32,6 +33,7 @@ describe("CodexACPAgent - list sessions", () => {
const threadB: Thread = {
id: "sess-2",
preview: "Other session",
ephemeral: false,
modelProvider: "openai",
createdAt: 300,
updatedAt: 400,
Expand Down
3 changes: 3 additions & 0 deletions src/__tests__/CodexACPAgent/load-session.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ describe("CodexACPAgent - loadSession", () => {
id: "gpt-5.2",
model: "gpt-5.2",
upgrade: null,
upgradeInfo: null,
availabilityNux: null,
displayName: "GPT-5.2",
description: "Test model",
hidden: false,
Expand All @@ -42,6 +44,7 @@ describe("CodexACPAgent - loadSession", () => {
const thread: Thread = {
id: "session-1",
preview: "Hi",
ephemeral: false,
modelProvider: "openai",
createdAt: 123,
updatedAt: 124,
Expand Down
16 changes: 12 additions & 4 deletions src/__tests__/CodexACPAgent/model-filtering.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,53 +16,61 @@ describe("Model filtering", () => {
{
id: "gpt-5.2",
model: "gpt-5.2-model-field",
upgrade: null,
upgradeInfo: null,
availabilityNux: null,
displayName: "GPT-5.2",
description: "Allowed by id.",
hidden: false,
supportedReasoningEfforts: efforts,
defaultReasoningEffort: "medium",
supportsPersonality: false,
isDefault: false,
upgrade: null,
inputModalities: []
},
{
id: "other-id",
model: "gpt-5.2",
upgrade: null,
upgradeInfo: null,
availabilityNux: null,
displayName: "gpt-5.2",
description: "Allowed",
hidden: false,
supportedReasoningEfforts: [defaultEffort],
defaultReasoningEffort: "medium",
supportsPersonality: false,
isDefault: false,
upgrade: null,
inputModalities: []
},
{
id: "gpt-5.1-codex-mini",
model: "other-model",
upgrade: null,
upgradeInfo: null,
availabilityNux: null,
displayName: "Other",
description: "Allowed by id.",
hidden: false,
supportedReasoningEfforts: [defaultEffort],
defaultReasoningEffort: "medium",
supportsPersonality: false,
isDefault: false,
upgrade: null,
inputModalities: []
},
{
id: "gpt-4o",
model: "gpt-4o",
upgrade: null,
upgradeInfo: null,
availabilityNux: null,
displayName: "gpt-4o",
description: "Allowed.",
hidden: false,
supportedReasoningEfforts: [defaultEffort],
defaultReasoningEffort: "medium",
supportsPersonality: false,
isDefault: false,
upgrade: null,
inputModalities: []
},
];
Expand Down
3 changes: 2 additions & 1 deletion src/app-server/FileSystemPermissions.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!

// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AbsolutePathBuf } from "./AbsolutePathBuf";

export type FileSystemPermissions = { read: Array<string> | null, write: Array<string> | null, };
export type FileSystemPermissions = { read: Array<AbsolutePathBuf> | null, write: Array<AbsolutePathBuf> | null, };
2 changes: 1 addition & 1 deletion src/app-server/ResponseItem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ export type ResponseItem = { "type": "message", role: string, content: Array<Con
/**
* Set when using the Responses API.
*/
call_id: string | null, status: LocalShellStatus, action: LocalShellAction, } | { "type": "function_call", name: string, arguments: string, call_id: string, } | { "type": "function_call_output", call_id: string, output: FunctionCallOutputPayload, } | { "type": "custom_tool_call", status?: string, call_id: string, name: string, input: string, } | { "type": "custom_tool_call_output", call_id: string, output: string, } | { "type": "web_search_call", status?: string, action?: WebSearchAction, } | { "type": "ghost_snapshot", ghost_commit: GhostCommit, } | { "type": "compaction", encrypted_content: string, } | { "type": "other" };
call_id: string | null, status: LocalShellStatus, action: LocalShellAction, } | { "type": "function_call", name: string, arguments: string, call_id: string, } | { "type": "function_call_output", call_id: string, output: FunctionCallOutputPayload, } | { "type": "custom_tool_call", status?: string, call_id: string, name: string, input: string, } | { "type": "custom_tool_call_output", call_id: string, output: FunctionCallOutputPayload, } | { "type": "web_search_call", status?: string, action?: WebSearchAction, } | { "type": "ghost_snapshot", ghost_commit: GhostCommit, } | { "type": "compaction", encrypted_content: string, } | { "type": "other" };
Loading