From 212eca14f40dcc880eb21f82a30e11db93671723 Mon Sep 17 00:00:00 2001 From: sadfun <32015025+sadfun@users.noreply.github.com> Date: Wed, 23 Sep 2026 09:08:26 +0000 Subject: [PATCH 1/2] Upgrade Codex to 0.156.1 and retire personality setting --- CHANGELOG.md | 9 ++++ codex.version | 2 +- package.json | 2 +- src/codex/config-service.ts | 3 -- src/codex/runtime-service.ts | 8 --- src/codex/service.ts | 2 - src/generated/codex/ClientRequest.ts | 3 +- src/generated/codex/ContentItem.ts | 2 +- .../codex/FunctionCallOutputContentItem.ts | 2 +- src/generated/codex/Personality.ts | 3 ++ src/generated/codex/ToolExposureSurface.ts | 8 +++ src/generated/codex/index.ts | 1 + src/generated/codex/protocol-manifest.json | 3 +- .../codex/v2/AccountRoutingOverride.ts | 8 +++ src/generated/codex/v2/AppsConfig.ts | 7 ++- .../codex/v2/ConfigBatchWriteParams.ts | 4 +- src/generated/codex/v2/ConfigRequirements.ts | 16 +++++- src/generated/codex/v2/GetAccountResponse.ts | 2 +- src/generated/codex/v2/McpAppDisplayMode.ts | 5 ++ src/generated/codex/v2/McpAppUi.ts | 9 ++++ src/generated/codex/v2/McpServerStatus.ts | 7 ++- src/generated/codex/v2/Model.ts | 13 ++++- src/generated/codex/v2/ModelAccessPrograms.ts | 13 +++++ src/generated/codex/v2/PluginDetail.ts | 6 ++- src/generated/codex/v2/Thread.ts | 2 +- src/generated/codex/v2/ThreadForkResponse.ts | 5 +- src/generated/codex/v2/ThreadItem.ts | 9 +++- src/generated/codex/v2/ThreadResumeParams.ts | 6 ++- .../codex/v2/ThreadResumeResponse.ts | 9 +++- .../codex/v2/ThreadRollbackParams.ts | 15 ------ .../codex/v2/ThreadRollbackResponse.ts | 14 ------ src/generated/codex/v2/ThreadSettings.ts | 8 ++- src/generated/codex/v2/ThreadStartParams.ts | 5 +- src/generated/codex/v2/ThreadStartResponse.ts | 5 +- src/generated/codex/v2/TurnStartParams.ts | 9 +++- src/generated/codex/v2/UserInput.ts | 2 +- .../codex/v2/WindowsSandboxImplementation.ts | 5 ++ src/generated/codex/v2/WorkspaceRouting.ts | 6 +++ src/generated/codex/v2/index.ts | 8 ++- src/miniapp/settings.tsx | 17 ------- test/codex-config.test.ts | 50 +++++++++++++++++++ test/fixtures/web-app.ts | 1 - 42 files changed, 222 insertions(+), 92 deletions(-) create mode 100644 src/generated/codex/ToolExposureSurface.ts create mode 100644 src/generated/codex/v2/AccountRoutingOverride.ts create mode 100644 src/generated/codex/v2/McpAppDisplayMode.ts create mode 100644 src/generated/codex/v2/McpAppUi.ts create mode 100644 src/generated/codex/v2/ModelAccessPrograms.ts delete mode 100644 src/generated/codex/v2/ThreadRollbackParams.ts delete mode 100644 src/generated/codex/v2/ThreadRollbackResponse.ts create mode 100644 src/generated/codex/v2/WindowsSandboxImplementation.ts create mode 100644 src/generated/codex/v2/WorkspaceRouting.ts create mode 100644 test/codex-config.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 98877e6..92fb1ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to Wirebot are documented in this file. ## [Unreleased] +## [0.4.0] - 2026-09-23 + ### Added - Slack: `@Wirebot new` inside a thread and plain `new` in the bot DM restart the conversation's @@ -11,6 +13,13 @@ All notable changes to Wirebot are documented in this file. recent messages, in a DM) as plain-text context, so the fresh task knows the discussion without the previous task's memory. `/wirebot new` and `@Wirebot /new` gained the same carry-over. +### Changed + +- Updated the bundled Codex CLI from 0.155.1 to 0.156.1 and regenerated the app-server + protocol bindings. Codex retired the Friendly and Pragmatic personality choices, so the + Model settings page no longer offers a style selector that Codex ignores. Existing Codex + configuration files are left intact. + ## [0.3.3] - 2026-09-21 ### Changed diff --git a/codex.version b/codex.version index 7cfba73..96bbc36 100644 --- a/codex.version +++ b/codex.version @@ -1 +1 @@ -0.155.1 +0.156.1 diff --git a/package.json b/package.json index 3c3f565..086bf96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wirebot", - "version": "0.3.3", + "version": "0.4.0", "private": true, "type": "module", "packageManager": "bun@1.4.0", diff --git a/src/codex/config-service.ts b/src/codex/config-service.ts index b1c763c..ff0b460 100644 --- a/src/codex/config-service.ts +++ b/src/codex/config-service.ts @@ -37,7 +37,6 @@ const sandboxModeSchema = z.enum(["read-only", "workspace-write", "danger-full-a const webSearchSchema = z.enum(["disabled", "cached", "indexed", "live"]); const reasoningSummarySchema = z.enum(["auto", "concise", "detailed", "none"]); const verbositySchema = z.enum(["low", "medium", "high"]); -const personalitySchema = z.enum(["none", "friendly", "pragmatic"]); const windowsSandboxSchema = z.enum(["unelevated", "elevated"]); const nullableIdentifierSchema = z @@ -90,7 +89,6 @@ const editableCodexConfigSchema = z.strictObject({ model_reasoning_summary: reasoningSummarySchema.nullable(), model_verbosity: verbositySchema.nullable(), service_tier: nullableIdentifierSchema, - personality: personalitySchema.nullable(), windows_sandbox: windowsSandboxSchema.nullable(), shell_environment_include_only: environmentPatternsSchema, features: featureValuesSchema, @@ -209,7 +207,6 @@ const scalarConfigPaths = Object.freeze([ ["model_reasoning_summary", "model_reasoning_summary"], ["model_verbosity", "model_verbosity"], ["service_tier", "service_tier"], - ["personality", "personality"], ["windows_sandbox", "windows.sandbox"], ["shell_environment_include_only", "shell_environment_policy.include_only"], ] as const satisfies readonly (readonly [ diff --git a/src/codex/runtime-service.ts b/src/codex/runtime-service.ts index e621861..f4625df 100644 --- a/src/codex/runtime-service.ts +++ b/src/codex/runtime-service.ts @@ -1,4 +1,3 @@ -import type { Personality } from "../generated/codex/Personality.js"; import type { ServerNotification } from "../generated/codex/ServerNotification.js"; import type { Config } from "../generated/codex/v2/Config.js"; import type { ConfigBatchWriteParams } from "../generated/codex/v2/ConfigBatchWriteParams.js"; @@ -527,7 +526,6 @@ function bankedReset(credit: RateLimitResetCredit): CodexBankedReset { } function settingsFromConfig(config: Config): EffectiveCodexSettings { - const personality = isPersonality(config.personality) ? config.personality : null; return { thread: { model: config.model, @@ -538,7 +536,6 @@ function settingsFromConfig(config: Config): EffectiveCodexSettings { sandbox: config.sandbox_mode, baseInstructions: config.instructions, developerInstructions: config.developer_instructions, - personality, }, turn: { model: config.model, @@ -547,15 +544,10 @@ function settingsFromConfig(config: Config): EffectiveCodexSettings { approvalsReviewer: config.approvals_reviewer, effort: config.model_reasoning_effort, summary: config.model_reasoning_summary, - personality, }, }; } -function isPersonality(value: unknown): value is Personality { - return value === "none" || value === "friendly" || value === "pragmatic"; -} - function escapeRegExp(value: string): string { return value.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&"); } diff --git a/src/codex/service.ts b/src/codex/service.ts index 19d3b57..5314f70 100644 --- a/src/codex/service.ts +++ b/src/codex/service.ts @@ -123,7 +123,6 @@ type CodexThreadSettings = Readonly< | "sandbox" | "baseInstructions" | "developerInstructions" - | "personality" > >; @@ -137,7 +136,6 @@ type CodexTurnSettings = Readonly< | "serviceTier" | "effort" | "summary" - | "personality" > >; diff --git a/src/generated/codex/ClientRequest.ts b/src/generated/codex/ClientRequest.ts index e636616..45ed6aa 100644 --- a/src/generated/codex/ClientRequest.ts +++ b/src/generated/codex/ClientRequest.ts @@ -85,7 +85,6 @@ import type { ThreadMetadataUpdateParams } from "./v2/ThreadMetadataUpdateParams import type { ThreadReadParams } from "./v2/ThreadReadParams"; import type { ThreadResumeParams } from "./v2/ThreadResumeParams"; import type { ThreadRevertParams } from "./v2/ThreadRevertParams"; -import type { ThreadRollbackParams } from "./v2/ThreadRollbackParams"; import type { ThreadSectionCreateParams } from "./v2/ThreadSectionCreateParams"; import type { ThreadSectionDeleteParams } from "./v2/ThreadSectionDeleteParams"; import type { ThreadSectionListParams } from "./v2/ThreadSectionListParams"; @@ -105,4 +104,4 @@ import type { WindowsSandboxSetupStartParams } from "./v2/WindowsSandboxSetupSta /** * Request from the client to the server. */ -export type ClientRequest ={ "method": "initialize", id: RequestId, params: InitializeParams, } | { "method": "thread/start", id: RequestId, params: ThreadStartParams, } | { "method": "thread/resume", id: RequestId, params: ThreadResumeParams, } | { "method": "thread/fork", id: RequestId, params: ThreadForkParams, } | { "method": "thread/archive", id: RequestId, params: ThreadArchiveParams, } | { "method": "thread/delete", id: RequestId, params: ThreadDeleteParams, } | { "method": "thread/unsubscribe", id: RequestId, params: ThreadUnsubscribeParams, } | { "method": "thread/name/set", id: RequestId, params: ThreadSetNameParams, } | { "method": "thread/goal/set", id: RequestId, params: ThreadGoalSetParams, } | { "method": "thread/goal/get", id: RequestId, params: ThreadGoalGetParams, } | { "method": "thread/goal/clear", id: RequestId, params: ThreadGoalClearParams, } | { "method": "thread/metadata/update", id: RequestId, params: ThreadMetadataUpdateParams, } | { "method": "thread/attachment/add", id: RequestId, params: ThreadAttachmentAddParams, } | { "method": "thread/attachment/list", id: RequestId, params: ThreadAttachmentListParams, } | { "method": "thread/attachment/remove", id: RequestId, params: ThreadAttachmentRemoveParams, } | { "method": "thread/section/move", id: RequestId, params: ThreadSectionMoveParams, } | { "method": "thread/unarchive", id: RequestId, params: ThreadUnarchiveParams, } | { "method": "thread/compact/start", id: RequestId, params: ThreadCompactStartParams, } | { "method": "thread/shellCommand", id: RequestId, params: ThreadShellCommandParams, } | { "method": "thread/approveGuardianDeniedAction", id: RequestId, params: ThreadApproveGuardianDeniedActionParams, } | { "method": "thread/rollback", id: RequestId, params: ThreadRollbackParams, } | { "method": "thread/revert", id: RequestId, params: ThreadRevertParams, } | { "method": "thread/list", id: RequestId, params: ThreadListParams, } | { "method": "threadSection/list", id: RequestId, params: ThreadSectionListParams, } | { "method": "threadSection/create", id: RequestId, params: ThreadSectionCreateParams, } | { "method": "threadSection/update", id: RequestId, params: ThreadSectionUpdateParams, } | { "method": "threadSection/delete", id: RequestId, params: ThreadSectionDeleteParams, } | { "method": "thread/loaded/list", id: RequestId, params: ThreadLoadedListParams, } | { "method": "thread/read", id: RequestId, params: ThreadReadParams, } | { "method": "thread/turns/list", id: RequestId, params: ThreadTurnsListParams, } | { "method": "thread/items/list", id: RequestId, params: ThreadItemsListParams, } | { "method": "thread/inject_items", id: RequestId, params: ThreadInjectItemsParams, } | { "method": "skills/list", id: RequestId, params: SkillsListParams, } | { "method": "skills/extraRoots/set", id: RequestId, params: SkillsExtraRootsSetParams, } | { "method": "hooks/list", id: RequestId, params: HooksListParams, } | { "method": "marketplace/add", id: RequestId, params: MarketplaceAddParams, } | { "method": "marketplace/remove", id: RequestId, params: MarketplaceRemoveParams, } | { "method": "marketplace/upgrade", id: RequestId, params: MarketplaceUpgradeParams, } | { "method": "plugin/list", id: RequestId, params: PluginListParams, } | { "method": "plugin/installed", id: RequestId, params: PluginInstalledParams, } | { "method": "plugin/reconcile", id: RequestId, params: PluginReconcileParams, } | { "method": "plugin/read", id: RequestId, params: PluginReadParams, } | { "method": "plugin/skill/read", id: RequestId, params: PluginSkillReadParams, } | { "method": "plugin/share/save", id: RequestId, params: PluginShareSaveParams, } | { "method": "plugin/share/updateTargets", id: RequestId, params: PluginShareUpdateTargetsParams, } | { "method": "plugin/share/list", id: RequestId, params: PluginShareListParams, } | { "method": "plugin/share/checkout", id: RequestId, params: PluginShareCheckoutParams, } | { "method": "plugin/share/delete", id: RequestId, params: PluginShareDeleteParams, } | { "method": "app/read", id: RequestId, params: AppsReadParams, } | { "method": "app/list", id: RequestId, params: AppsListParams, } | { "method": "app/installed", id: RequestId, params: AppsInstalledParams, } | { "method": "fs/readFile", id: RequestId, params: FsReadFileParams, } | { "method": "fs/writeFile", id: RequestId, params: FsWriteFileParams, } | { "method": "fs/createDirectory", id: RequestId, params: FsCreateDirectoryParams, } | { "method": "fs/getMetadata", id: RequestId, params: FsGetMetadataParams, } | { "method": "fs/readDirectory", id: RequestId, params: FsReadDirectoryParams, } | { "method": "fs/remove", id: RequestId, params: FsRemoveParams, } | { "method": "fs/copy", id: RequestId, params: FsCopyParams, } | { "method": "fs/watch", id: RequestId, params: FsWatchParams, } | { "method": "fs/unwatch", id: RequestId, params: FsUnwatchParams, } | { "method": "skills/config/write", id: RequestId, params: SkillsConfigWriteParams, } | { "method": "plugin/install", id: RequestId, params: PluginInstallParams, } | { "method": "plugin/uninstall", id: RequestId, params: PluginUninstallParams, } | { "method": "turn/start", id: RequestId, params: TurnStartParams, } | { "method": "turn/steer", id: RequestId, params: TurnSteerParams, } | { "method": "turn/interrupt", id: RequestId, params: TurnInterruptParams, } | { "method": "review/start", id: RequestId, params: ReviewStartParams, } | { "method": "model/list", id: RequestId, params: ModelListParams, } | { "method": "modelProvider/capabilities/read", id: RequestId, params: ModelProviderCapabilitiesReadParams, } | { "method": "experimentalFeature/list", id: RequestId, params: ExperimentalFeatureListParams, } | { "method": "permissionProfile/list", id: RequestId, params: PermissionProfileListParams, } | { "method": "experimentalFeature/enablement/set", id: RequestId, params: ExperimentalFeatureEnablementSetParams, } | { "method": "mcpServer/oauth/login", id: RequestId, params: McpServerOauthLoginParams, } | { "method": "config/mcpServer/reload", id: RequestId, params: undefined, } | { "method": "mcpServerStatus/list", id: RequestId, params: ListMcpServerStatusParams, } | { "method": "mcpServer/resource/read", id: RequestId, params: McpResourceReadParams, } | { "method": "mcpServer/tool/call", id: RequestId, params: McpServerToolCallParams, } | { "method": "windowsSandbox/setupStart", id: RequestId, params: WindowsSandboxSetupStartParams, } | { "method": "windowsSandbox/readiness", id: RequestId, params: undefined, } | { "method": "account/login/start", id: RequestId, params: LoginAccountParams, } | { "method": "account/login/cancel", id: RequestId, params: CancelLoginAccountParams, } | { "method": "account/logout", id: RequestId, params: undefined, } | { "method": "account/rateLimits/read", id: RequestId, params?: GetAccountRateLimitsParams | undefined, } | { "method": "account/rateLimitResetCredit/consume", id: RequestId, params: ConsumeAccountRateLimitResetCreditParams, } | { "method": "account/usage/read", id: RequestId, params?: GetAccountTokenUsageParams | undefined, } | { "method": "account/workspaceMessages/read", id: RequestId, params: undefined, } | { "method": "account/sendAddCreditsNudgeEmail", id: RequestId, params: SendAddCreditsNudgeEmailParams, } | { "method": "feedback/upload", id: RequestId, params: FeedbackUploadParams, } | { "method": "command/exec", id: RequestId, params: CommandExecParams, } | { "method": "command/exec/write", id: RequestId, params: CommandExecWriteParams, } | { "method": "command/exec/terminate", id: RequestId, params: CommandExecTerminateParams, } | { "method": "command/exec/resize", id: RequestId, params: CommandExecResizeParams, } | { "method": "config/read", id: RequestId, params: ConfigReadParams, } | { "method": "externalAgentConfig/detect", id: RequestId, params: ExternalAgentConfigDetectParams, } | { "method": "externalAgentConfig/import", id: RequestId, params: ExternalAgentConfigImportParams, } | { "method": "externalAgentConfig/import/recordHistory", id: RequestId, params: ExternalAgentConfigImportHistoryRecordParams, } | { "method": "externalAgentConfig/import/readHistories", id: RequestId, params: undefined, } | { "method": "config/value/write", id: RequestId, params: ConfigValueWriteParams, } | { "method": "config/batchWrite", id: RequestId, params: ConfigBatchWriteParams, } | { "method": "configRequirements/read", id: RequestId, params: undefined, } | { "method": "account/read", id: RequestId, params: GetAccountParams, } | { "method": "getConversationSummary", id: RequestId, params: GetConversationSummaryParams, } | { "method": "gitDiffToRemote", id: RequestId, params: GitDiffToRemoteParams, } | { "method": "getAuthStatus", id: RequestId, params: GetAuthStatusParams, } | { "method": "fuzzyFileSearch", id: RequestId, params: FuzzyFileSearchParams, }; +export type ClientRequest ={ "method": "initialize", id: RequestId, params: InitializeParams, } | { "method": "thread/start", id: RequestId, params: ThreadStartParams, } | { "method": "thread/resume", id: RequestId, params: ThreadResumeParams, } | { "method": "thread/fork", id: RequestId, params: ThreadForkParams, } | { "method": "thread/archive", id: RequestId, params: ThreadArchiveParams, } | { "method": "thread/delete", id: RequestId, params: ThreadDeleteParams, } | { "method": "thread/unsubscribe", id: RequestId, params: ThreadUnsubscribeParams, } | { "method": "thread/name/set", id: RequestId, params: ThreadSetNameParams, } | { "method": "thread/goal/set", id: RequestId, params: ThreadGoalSetParams, } | { "method": "thread/goal/get", id: RequestId, params: ThreadGoalGetParams, } | { "method": "thread/goal/clear", id: RequestId, params: ThreadGoalClearParams, } | { "method": "thread/metadata/update", id: RequestId, params: ThreadMetadataUpdateParams, } | { "method": "thread/attachment/add", id: RequestId, params: ThreadAttachmentAddParams, } | { "method": "thread/attachment/list", id: RequestId, params: ThreadAttachmentListParams, } | { "method": "thread/attachment/remove", id: RequestId, params: ThreadAttachmentRemoveParams, } | { "method": "thread/section/move", id: RequestId, params: ThreadSectionMoveParams, } | { "method": "thread/unarchive", id: RequestId, params: ThreadUnarchiveParams, } | { "method": "thread/compact/start", id: RequestId, params: ThreadCompactStartParams, } | { "method": "thread/shellCommand", id: RequestId, params: ThreadShellCommandParams, } | { "method": "thread/approveGuardianDeniedAction", id: RequestId, params: ThreadApproveGuardianDeniedActionParams, } | { "method": "thread/revert", id: RequestId, params: ThreadRevertParams, } | { "method": "thread/list", id: RequestId, params: ThreadListParams, } | { "method": "threadSection/list", id: RequestId, params: ThreadSectionListParams, } | { "method": "threadSection/create", id: RequestId, params: ThreadSectionCreateParams, } | { "method": "threadSection/update", id: RequestId, params: ThreadSectionUpdateParams, } | { "method": "threadSection/delete", id: RequestId, params: ThreadSectionDeleteParams, } | { "method": "thread/loaded/list", id: RequestId, params: ThreadLoadedListParams, } | { "method": "thread/read", id: RequestId, params: ThreadReadParams, } | { "method": "thread/turns/list", id: RequestId, params: ThreadTurnsListParams, } | { "method": "thread/items/list", id: RequestId, params: ThreadItemsListParams, } | { "method": "thread/inject_items", id: RequestId, params: ThreadInjectItemsParams, } | { "method": "skills/list", id: RequestId, params: SkillsListParams, } | { "method": "skills/extraRoots/set", id: RequestId, params: SkillsExtraRootsSetParams, } | { "method": "hooks/list", id: RequestId, params: HooksListParams, } | { "method": "marketplace/add", id: RequestId, params: MarketplaceAddParams, } | { "method": "marketplace/remove", id: RequestId, params: MarketplaceRemoveParams, } | { "method": "marketplace/upgrade", id: RequestId, params: MarketplaceUpgradeParams, } | { "method": "plugin/list", id: RequestId, params: PluginListParams, } | { "method": "plugin/installed", id: RequestId, params: PluginInstalledParams, } | { "method": "plugin/reconcile", id: RequestId, params: PluginReconcileParams, } | { "method": "plugin/read", id: RequestId, params: PluginReadParams, } | { "method": "plugin/skill/read", id: RequestId, params: PluginSkillReadParams, } | { "method": "plugin/share/save", id: RequestId, params: PluginShareSaveParams, } | { "method": "plugin/share/updateTargets", id: RequestId, params: PluginShareUpdateTargetsParams, } | { "method": "plugin/share/list", id: RequestId, params: PluginShareListParams, } | { "method": "plugin/share/checkout", id: RequestId, params: PluginShareCheckoutParams, } | { "method": "plugin/share/delete", id: RequestId, params: PluginShareDeleteParams, } | { "method": "app/read", id: RequestId, params: AppsReadParams, } | { "method": "app/list", id: RequestId, params: AppsListParams, } | { "method": "app/installed", id: RequestId, params: AppsInstalledParams, } | { "method": "fs/readFile", id: RequestId, params: FsReadFileParams, } | { "method": "fs/writeFile", id: RequestId, params: FsWriteFileParams, } | { "method": "fs/createDirectory", id: RequestId, params: FsCreateDirectoryParams, } | { "method": "fs/getMetadata", id: RequestId, params: FsGetMetadataParams, } | { "method": "fs/readDirectory", id: RequestId, params: FsReadDirectoryParams, } | { "method": "fs/remove", id: RequestId, params: FsRemoveParams, } | { "method": "fs/copy", id: RequestId, params: FsCopyParams, } | { "method": "fs/watch", id: RequestId, params: FsWatchParams, } | { "method": "fs/unwatch", id: RequestId, params: FsUnwatchParams, } | { "method": "skills/config/write", id: RequestId, params: SkillsConfigWriteParams, } | { "method": "plugin/install", id: RequestId, params: PluginInstallParams, } | { "method": "plugin/uninstall", id: RequestId, params: PluginUninstallParams, } | { "method": "turn/start", id: RequestId, params: TurnStartParams, } | { "method": "turn/steer", id: RequestId, params: TurnSteerParams, } | { "method": "turn/interrupt", id: RequestId, params: TurnInterruptParams, } | { "method": "review/start", id: RequestId, params: ReviewStartParams, } | { "method": "model/list", id: RequestId, params: ModelListParams, } | { "method": "modelProvider/capabilities/read", id: RequestId, params: ModelProviderCapabilitiesReadParams, } | { "method": "experimentalFeature/list", id: RequestId, params: ExperimentalFeatureListParams, } | { "method": "permissionProfile/list", id: RequestId, params: PermissionProfileListParams, } | { "method": "experimentalFeature/enablement/set", id: RequestId, params: ExperimentalFeatureEnablementSetParams, } | { "method": "mcpServer/oauth/login", id: RequestId, params: McpServerOauthLoginParams, } | { "method": "config/mcpServer/reload", id: RequestId, params: undefined, } | { "method": "mcpServerStatus/list", id: RequestId, params: ListMcpServerStatusParams, } | { "method": "mcpServer/resource/read", id: RequestId, params: McpResourceReadParams, } | { "method": "mcpServer/tool/call", id: RequestId, params: McpServerToolCallParams, } | { "method": "windowsSandbox/setupStart", id: RequestId, params: WindowsSandboxSetupStartParams, } | { "method": "windowsSandbox/readiness", id: RequestId, params: undefined, } | { "method": "account/login/start", id: RequestId, params: LoginAccountParams, } | { "method": "account/login/cancel", id: RequestId, params: CancelLoginAccountParams, } | { "method": "account/logout", id: RequestId, params: undefined, } | { "method": "account/rateLimits/read", id: RequestId, params?: GetAccountRateLimitsParams | undefined, } | { "method": "account/rateLimitResetCredit/consume", id: RequestId, params: ConsumeAccountRateLimitResetCreditParams, } | { "method": "account/usage/read", id: RequestId, params?: GetAccountTokenUsageParams | undefined, } | { "method": "account/workspaceMessages/read", id: RequestId, params: undefined, } | { "method": "account/sendAddCreditsNudgeEmail", id: RequestId, params: SendAddCreditsNudgeEmailParams, } | { "method": "feedback/upload", id: RequestId, params: FeedbackUploadParams, } | { "method": "command/exec", id: RequestId, params: CommandExecParams, } | { "method": "command/exec/write", id: RequestId, params: CommandExecWriteParams, } | { "method": "command/exec/terminate", id: RequestId, params: CommandExecTerminateParams, } | { "method": "command/exec/resize", id: RequestId, params: CommandExecResizeParams, } | { "method": "config/read", id: RequestId, params: ConfigReadParams, } | { "method": "externalAgentConfig/detect", id: RequestId, params: ExternalAgentConfigDetectParams, } | { "method": "externalAgentConfig/import", id: RequestId, params: ExternalAgentConfigImportParams, } | { "method": "externalAgentConfig/import/recordHistory", id: RequestId, params: ExternalAgentConfigImportHistoryRecordParams, } | { "method": "externalAgentConfig/import/readHistories", id: RequestId, params: undefined, } | { "method": "config/value/write", id: RequestId, params: ConfigValueWriteParams, } | { "method": "config/batchWrite", id: RequestId, params: ConfigBatchWriteParams, } | { "method": "configRequirements/read", id: RequestId, params: undefined, } | { "method": "account/read", id: RequestId, params: GetAccountParams, } | { "method": "getConversationSummary", id: RequestId, params: GetConversationSummaryParams, } | { "method": "gitDiffToRemote", id: RequestId, params: GitDiffToRemoteParams, } | { "method": "getAuthStatus", id: RequestId, params: GetAuthStatusParams, } | { "method": "fuzzyFileSearch", id: RequestId, params: FuzzyFileSearchParams, }; diff --git a/src/generated/codex/ContentItem.ts b/src/generated/codex/ContentItem.ts index 9e53b5f..0ad09f1 100644 --- a/src/generated/codex/ContentItem.ts +++ b/src/generated/codex/ContentItem.ts @@ -3,4 +3,4 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { ImageDetail } from "./ImageDetail"; -export type ContentItem = { "type": "input_text", text: string, } | { "type": "input_image", image_url: string, detail?: ImageDetail, } | { "type": "input_audio", audio_url: string, } | { "type": "output_text", text: string, }; +export type ContentItem = { "type": "input_text", text: string, } | { "type": "input_image", detail?: ImageDetail, } & ({ image_url: string, } | { file_id: string, }) | { "type": "input_audio", audio_url: string, } | { "type": "output_text", text: string, }; diff --git a/src/generated/codex/FunctionCallOutputContentItem.ts b/src/generated/codex/FunctionCallOutputContentItem.ts index 6c2ab2a..5fa3d63 100644 --- a/src/generated/codex/FunctionCallOutputContentItem.ts +++ b/src/generated/codex/FunctionCallOutputContentItem.ts @@ -7,4 +7,4 @@ import type { ImageDetail } from "./ImageDetail"; * Responses API compatible content items that can be returned by a tool call. * This is a subset of ContentItem with the types we support as function call outputs. */ -export type FunctionCallOutputContentItem = { "type": "input_text", text: string, } | { "type": "input_image", image_url: string, detail?: ImageDetail, } | { "type": "input_audio", audio_url: string, } | { "type": "encrypted_content", encrypted_content: string, }; +export type FunctionCallOutputContentItem = { "type": "input_text", text: string, } | { "type": "input_image", detail?: ImageDetail, } & ({ image_url: string, } | { file_id: string, }) | { "type": "input_audio", audio_url: string, } | { "type": "encrypted_content", encrypted_content: string, }; diff --git a/src/generated/codex/Personality.ts b/src/generated/codex/Personality.ts index 45165f4..a2179fc 100644 --- a/src/generated/codex/Personality.ts +++ b/src/generated/codex/Personality.ts @@ -2,4 +2,7 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +/** + * Deprecated: `friendly` and `pragmatic` no longer select a style. + */ export type Personality = "none" | "friendly" | "pragmatic"; diff --git a/src/generated/codex/ToolExposureSurface.ts b/src/generated/codex/ToolExposureSurface.ts new file mode 100644 index 0000000..562a66a --- /dev/null +++ b/src/generated/codex/ToolExposureSurface.ts @@ -0,0 +1,8 @@ +// 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. + +/** + * A model-facing surface on which a tool can be exposed. + */ +export type ToolExposureSurface = "code_mode" | "deferred" | "direct"; diff --git a/src/generated/codex/index.ts b/src/generated/codex/index.ts index 5f128f7..79f9f52 100644 --- a/src/generated/codex/index.ts +++ b/src/generated/codex/index.ts @@ -85,6 +85,7 @@ export type { SubAgentSource } from "./SubAgentSource"; export type { ThreadId } from "./ThreadId"; export type { ThreadMemoryMode } from "./ThreadMemoryMode"; export type { Tool } from "./Tool"; +export type { ToolExposureSurface } from "./ToolExposureSurface"; export type { Verbosity } from "./Verbosity"; export type { WebSearchAction } from "./WebSearchAction"; export type { WebSearchContextSize } from "./WebSearchContextSize"; diff --git a/src/generated/codex/protocol-manifest.json b/src/generated/codex/protocol-manifest.json index 31b83d1..9997685 100644 --- a/src/generated/codex/protocol-manifest.json +++ b/src/generated/codex/protocol-manifest.json @@ -1,5 +1,5 @@ { - "codexVersion": "0.155.1", + "codexVersion": "0.156.1", "methods": { "clientRequests": [ "account/login/cancel", @@ -91,7 +91,6 @@ "thread/read", "thread/resume", "thread/revert", - "thread/rollback", "thread/section/move", "thread/shellCommand", "thread/start", diff --git a/src/generated/codex/v2/AccountRoutingOverride.ts b/src/generated/codex/v2/AccountRoutingOverride.ts new file mode 100644 index 0000000..30b8c8e --- /dev/null +++ b/src/generated/codex/v2/AccountRoutingOverride.ts @@ -0,0 +1,8 @@ +// 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. + +/** + * Backend routing policy. Wire values match the accounts/check contract. + */ +export type AccountRoutingOverride = "NO_CONSTRAINT" | "us" | "us_cr"; diff --git a/src/generated/codex/v2/AppsConfig.ts b/src/generated/codex/v2/AppsConfig.ts index ea07dc3..c4fd576 100644 --- a/src/generated/codex/v2/AppsConfig.ts +++ b/src/generated/codex/v2/AppsConfig.ts @@ -1,13 +1,18 @@ // 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 { ToolExposureSurface } from "../ToolExposureSurface"; import type { AppLinksConfig } from "./AppLinksConfig"; import type { AppToolApproval } from "./AppToolApproval"; import type { AppToolsConfig } from "./AppToolsConfig"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; import type { AppsDefaultConfig } from "./AppsDefaultConfig"; -export type AppsConfig = { _default: AppsDefaultConfig | null, } & ({ [key in string]?: { enabled: boolean, approvals_reviewer: ApprovalsReviewer | null, destructive_enabled: boolean | null, open_world_enabled: boolean | null, default_tools_approval_mode: AppToolApproval | null, default_tools_enabled: boolean | null, tools: AppToolsConfig | null, +export type AppsConfig = { _default: AppsDefaultConfig | null, } & ({ [key in string]?: { enabled: boolean, +/** + * Additional model-facing surfaces omitted for this connector's tools. + */ +omit_tools_from: Array | null, approvals_reviewer: ApprovalsReviewer | null, destructive_enabled: boolean | null, open_world_enabled: boolean | null, default_tools_approval_mode: AppToolApproval | null, default_tools_enabled: boolean | null, tools: AppToolsConfig | null, /** * Per-account approval settings keyed by link ID. */ diff --git a/src/generated/codex/v2/ConfigBatchWriteParams.ts b/src/generated/codex/v2/ConfigBatchWriteParams.ts index fe82988..2340941 100644 --- a/src/generated/codex/v2/ConfigBatchWriteParams.ts +++ b/src/generated/codex/v2/ConfigBatchWriteParams.ts @@ -10,7 +10,7 @@ export type ConfigBatchWriteParams = { edits: Array, filePath?: string | null, expectedVersion?: string | null, /** * When true, hot-reload updated runtime settings into loaded threads after writing. - * Session-static model, reasoning-effort, Plan-mode reasoning-effort, service-tier, and - * personality defaults are not reloaded. + * Session-static model, reasoning-effort, Plan-mode reasoning-effort, and service-tier + * defaults are not reloaded. The deprecated personality setting is also not reloaded. */ reloadUserConfig?: boolean, }; diff --git a/src/generated/codex/v2/ConfigRequirements.ts b/src/generated/codex/v2/ConfigRequirements.ts index 12be715..c8e40d1 100644 --- a/src/generated/codex/v2/ConfigRequirements.ts +++ b/src/generated/codex/v2/ConfigRequirements.ts @@ -1,8 +1,10 @@ // 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 { ForcedLoginMethod } from "../ForcedLoginMethod"; import type { PathUri } from "../PathUri"; import type { WebSearchMode } from "../WebSearchMode"; +import type { JsonValue } from "../serde_json/JsonValue"; import type { AskForApproval } from "./AskForApproval"; import type { AutoReviewRequirements } from "./AutoReviewRequirements"; import type { BrowserUseRequirements } from "./BrowserUseRequirements"; @@ -13,6 +15,16 @@ import type { InAppBrowserRequirements } from "./InAppBrowserRequirements"; import type { ModelsRequirements } from "./ModelsRequirements"; import type { ResidencyRequirement } from "./ResidencyRequirement"; import type { SandboxMode } from "./SandboxMode"; -import type { WindowsSandboxSetupMode } from "./WindowsSandboxSetupMode"; +import type { WindowsSandboxImplementation } from "./WindowsSandboxImplementation"; -export type ConfigRequirements = {cliAuthCredentialsStore: CliAuthCredentialsStoreMode | null, chatgptBaseUrl: string | null, additionalDeveloperInstructions: string | null, allowedApprovalPolicies: Array | null, allowedSandboxModes: Array | null, allowedWindowsSandboxImplementations: Array | null, allowedPermissionProfiles: { [key in string]?: boolean } | null, defaultPermissions: string | null, allowedWebSearchModes: Array | null, allowManagedHooksOnly: boolean | null, allowBrowserAndComputerUse: boolean | null, allowAppshots: boolean | null, allowRemoteControl: boolean | null, computerUse: ComputerUseRequirements | null, browserUse: BrowserUseRequirements | null, inAppBrowser: InAppBrowserRequirements | null, featureRequirements: { [key in string]?: boolean } | null, enforceResidency: ResidencyRequirement | null, autoReview: AutoReviewRequirements | null, models: ModelsRequirements | null, sqliteHome: PathUri | null, logDir: PathUri | null, modelCatalogJson: PathUri | null, checkForUpdateOnStartup: boolean | null, allowLoginShell: boolean | null, feedback: FeedbackRequirements | null, windowsSandboxPrivateDesktop: boolean | null}; +export type ConfigRequirements = {/** + * Exact provider selection required by managed policy. + */ +modelProvider: string | null, /** + * Complete required provider definitions, using config.toml field names. + */ +modelProviders: { [key in string]?: JsonValue } | null, /** + * Effective login methods after managed, forced-login, and workspace restrictions. + * An empty list permits no login method. Older servers may omit this field. + */ +allowedLoginMethods: Array | null, cliAuthCredentialsStore: CliAuthCredentialsStoreMode | null, chatgptBaseUrl: string | null, additionalDeveloperInstructions: string | null, allowedApprovalPolicies: Array | null, allowedSandboxModes: Array | null, allowedWindowsSandboxImplementations: Array | null, allowedPermissionProfiles: { [key in string]?: boolean } | null, defaultPermissions: string | null, allowedWebSearchModes: Array | null, allowManagedHooksOnly: boolean | null, allowBrowserAndComputerUse: boolean | null, allowAppshots: boolean | null, allowRemoteControl: boolean | null, computerUse: ComputerUseRequirements | null, browserUse: BrowserUseRequirements | null, inAppBrowser: InAppBrowserRequirements | null, featureRequirements: { [key in string]?: boolean } | null, enforceResidency: ResidencyRequirement | null, autoReview: AutoReviewRequirements | null, models: ModelsRequirements | null, sqliteHome: PathUri | null, logDir: PathUri | null, modelCatalogJson: PathUri | null, checkForUpdateOnStartup: boolean | null, allowLoginShell: boolean | null, feedback: FeedbackRequirements | null}; diff --git a/src/generated/codex/v2/GetAccountResponse.ts b/src/generated/codex/v2/GetAccountResponse.ts index 83da4f4..e88cc6a 100644 --- a/src/generated/codex/v2/GetAccountResponse.ts +++ b/src/generated/codex/v2/GetAccountResponse.ts @@ -3,4 +3,4 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { Account } from "./Account"; -export type GetAccountResponse = { account: Account | null, requiresOpenaiAuth: boolean, }; +export type GetAccountResponse = {account: Account | null, requiresOpenaiAuth: boolean}; diff --git a/src/generated/codex/v2/McpAppDisplayMode.ts b/src/generated/codex/v2/McpAppDisplayMode.ts new file mode 100644 index 0000000..aa816f5 --- /dev/null +++ b/src/generated/codex/v2/McpAppDisplayMode.ts @@ -0,0 +1,5 @@ +// 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. + +export type McpAppDisplayMode = "inline" | "fullscreen"; diff --git a/src/generated/codex/v2/McpAppUi.ts b/src/generated/codex/v2/McpAppUi.ts new file mode 100644 index 0000000..cfa781b --- /dev/null +++ b/src/generated/codex/v2/McpAppUi.ts @@ -0,0 +1,9 @@ +// 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 { McpAppDisplayMode } from "./McpAppDisplayMode"; + +/** + * UI resource and display preference for model invocations, captured from the tool descriptor. + */ +export type McpAppUi = { resourceUri: string, preferredModelDisplayMode: McpAppDisplayMode, }; diff --git a/src/generated/codex/v2/McpServerStatus.ts b/src/generated/codex/v2/McpServerStatus.ts index e5dcd5d..f33da54 100644 --- a/src/generated/codex/v2/McpServerStatus.ts +++ b/src/generated/codex/v2/McpServerStatus.ts @@ -5,6 +5,7 @@ import type { McpServerInfo } from "../McpServerInfo"; import type { Resource } from "../Resource"; import type { ResourceTemplate } from "../ResourceTemplate"; import type { Tool } from "../Tool"; +import type { JsonValue } from "../serde_json/JsonValue"; import type { McpAuthStatus } from "./McpAuthStatus"; import type { McpServerConnectionStatus } from "./McpServerConnectionStatus"; @@ -12,7 +13,11 @@ export type McpServerStatus = { name: string, /** * Current thread-runtime connection state; null when unavailable or the configuration changed. */ -runtimeStatus: McpServerConnectionStatus | null, pluginId: string | null, serverInfo: McpServerInfo | null, tools: { [key in string]?: Tool }, +runtimeStatus: McpServerConnectionStatus | null, pluginId: string | null, serverInfo: McpServerInfo | null, +/** + * Capabilities advertised by the initialized MCP server; null when unavailable. + */ +serverCapabilities: JsonValue | null, tools: { [key in string]?: Tool }, /** * Tool discovery failed and no catalog was returned. * Null when a catalog is returned, including cached or empty catalogs. diff --git a/src/generated/codex/v2/Model.ts b/src/generated/codex/v2/Model.ts index 29defcd..6a1c065 100644 --- a/src/generated/codex/v2/Model.ts +++ b/src/generated/codex/v2/Model.ts @@ -3,13 +3,18 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { InputModality } from "../InputModality"; import type { ReasoningEffort } from "../ReasoningEffort"; +import type { ModelAccessPrograms } from "./ModelAccessPrograms"; import type { ModelAvailabilityNux } from "./ModelAvailabilityNux"; import type { ModelServiceTier } from "./ModelServiceTier"; import type { ModelUpgradeInfo } from "./ModelUpgradeInfo"; import type { MultiAgentVersion } from "./MultiAgentVersion"; import type { ReasoningEffortOption } from "./ReasoningEffortOption"; -export type Model = { id: string, model: string, upgrade: string | null, upgradeInfo: ModelUpgradeInfo | null, availabilityNux: ModelAvailabilityNux | null, displayName: string, description: string, modelSpecialty: string | null, hidden: boolean, supportedReasoningEfforts: Array, defaultReasoningEffort: ReasoningEffort, inputModalities: Array, supportsPersonality: boolean, +export type Model = { id: string, model: string, upgrade: string | null, upgradeInfo: ModelUpgradeInfo | null, availabilityNux: ModelAvailabilityNux | null, displayName: string, description: string, modelSpecialty: string | null, hidden: boolean, supportedReasoningEfforts: Array, defaultReasoningEffort: ReasoningEffort, inputModalities: Array, +/** + * @deprecated Always false; models no longer support personality selection. + */ +supportsPersonality: boolean, /** * Multi-agent runtime declared by this model, when available. */ @@ -21,4 +26,8 @@ additionalSpeedTiers: Array, serviceTiers: Array, /** * Catalog default service tier id for this model, when one is configured. */ -defaultServiceTier: string | null, isDefault: boolean, }; +defaultServiceTier: string | null, +/** + * Null when the catalog does not provide access-program metadata. + */ +availableAccessPrograms: ModelAccessPrograms | null, isDefault: boolean, }; diff --git a/src/generated/codex/v2/ModelAccessPrograms.ts b/src/generated/codex/v2/ModelAccessPrograms.ts new file mode 100644 index 0000000..6df203a --- /dev/null +++ b/src/generated/codex/v2/ModelAccessPrograms.ts @@ -0,0 +1,13 @@ +// 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 { CyberAccessProgram } from "./CyberAccessProgram"; + +/** + * Caller-specific explicit access programs advertised by model discovery. + */ +export type ModelAccessPrograms = { +/** + * Accepted explicit selections. + */ +cyber: Array, }; diff --git a/src/generated/codex/v2/PluginDetail.ts b/src/generated/codex/v2/PluginDetail.ts index d4bf3f8..1836b6b 100644 --- a/src/generated/codex/v2/PluginDetail.ts +++ b/src/generated/codex/v2/PluginDetail.ts @@ -9,4 +9,8 @@ import type { PluginSummary } from "./PluginSummary"; import type { ScheduledTaskSummary } from "./ScheduledTaskSummary"; import type { SkillSummary } from "./SkillSummary"; -export type PluginDetail = { marketplaceName: string, marketplacePath: AbsolutePathBuf | null, summary: PluginSummary, shareUrl: string | null, description: string | null, skills: Array, hooks: Array, apps: Array, appTemplates: Array, mcpServers: Array, scheduledTasks: Array | null, }; +export type PluginDetail = { marketplaceName: string, marketplacePath: AbsolutePathBuf | null, summary: PluginSummary, shareUrl: string | null, description: string | null, skills: Array, +/** + * The declared onboarding skill, when the plugin and visible skill are enabled. + */ +onboardingSkill: SkillSummary | null, hooks: Array, apps: Array, appTemplates: Array, mcpServers: Array, scheduledTasks: Array | null, }; diff --git a/src/generated/codex/v2/Thread.ts b/src/generated/codex/v2/Thread.ts index 42a8367..9a0f865 100644 --- a/src/generated/codex/v2/Thread.ts +++ b/src/generated/codex/v2/Thread.ts @@ -96,7 +96,7 @@ gitInfo: GitInfo | null, /** * Optional user-facing thread title. */ name: string | null, /** - * Only populated on `thread/resume`, `thread/rollback`, `thread/fork`, and `thread/read` + * Only populated on `thread/resume`, `thread/fork`, and `thread/read` * (when `includeTurns` is true) responses. * For all other responses and notifications returning a Thread, * the turns field will be an empty list. diff --git a/src/generated/codex/v2/ThreadForkResponse.ts b/src/generated/codex/v2/ThreadForkResponse.ts index 9577562..5fab371 100644 --- a/src/generated/codex/v2/ThreadForkResponse.ts +++ b/src/generated/codex/v2/ThreadForkResponse.ts @@ -9,7 +9,10 @@ import type { AskForApproval } from "./AskForApproval"; import type { SandboxPolicy } from "./SandboxPolicy"; import type { Thread } from "./Thread"; -export type ThreadForkResponse = {thread: Thread, model: string, modelProvider: string, serviceTier: string | null, cwd: AbsolutePathBuf, /** +export type ThreadForkResponse = {thread: Thread, model: string, modelProvider: string, serviceTier: string | null, /** + * Saved list of disabled plugin IDs. Does not yet filter plugin capabilities. + */ +disabledPluginIds: Array, cwd: AbsolutePathBuf, /** * Environment-native paths to instruction source files currently loaded for this thread. */ instructionSources: Array, approvalPolicy: AskForApproval, /** diff --git a/src/generated/codex/v2/ThreadItem.ts b/src/generated/codex/v2/ThreadItem.ts index ae8c00a..31f1430 100644 --- a/src/generated/codex/v2/ThreadItem.ts +++ b/src/generated/codex/v2/ThreadItem.ts @@ -21,6 +21,7 @@ import type { DynamicToolCallOutputContentItem } from "./DynamicToolCallOutputCo import type { DynamicToolCallStatus } from "./DynamicToolCallStatus"; import type { FileUpdateChange } from "./FileUpdateChange"; import type { HookPromptFragment } from "./HookPromptFragment"; +import type { McpAppUi } from "./McpAppUi"; import type { McpToolCallAppContext } from "./McpToolCallAppContext"; import type { McpToolCallError } from "./McpToolCallError"; import type { McpToolCallResult } from "./McpToolCallResult"; @@ -70,9 +71,13 @@ exitCode: number | null, */ durationMs: number | null, } | { "type": "fileChange", id: string, changes: Array, status: PatchApplyStatus, } | { "type": "mcpToolCall", id: string, server: string, tool: string, status: McpToolCallStatus, arguments: JsonValue, appContext: McpToolCallAppContext | null, /** - * Deprecated: use `appContext.resourceUri` instead. + * Legacy compatibility field; prefer `mcpAppUi.resourceUri` when available. */ -mcpAppResourceUri?: string, pluginId: string | null, readOnlyHint: boolean | null, result: McpToolCallResult | null, error: McpToolCallError | null, +mcpAppResourceUri?: string, +/** + * Presentation captured from the invoked descriptor; absent in older history. + */ +mcpAppUi: McpAppUi | null, pluginId: string | null, readOnlyHint: boolean | null, result: McpToolCallResult | null, error: McpToolCallError | null, /** * The duration of the MCP tool call in milliseconds. */ diff --git a/src/generated/codex/v2/ThreadResumeParams.ts b/src/generated/codex/v2/ThreadResumeParams.ts index d9918d9..4da0397 100644 --- a/src/generated/codex/v2/ThreadResumeParams.ts +++ b/src/generated/codex/v2/ThreadResumeParams.ts @@ -30,7 +30,11 @@ model?: string | null, modelProvider?: string | null, serviceTier?: string | nul * Override where approval requests are routed for review on this thread * and subsequent turns. */ -approvalsReviewer?: ApprovalsReviewer | null, sandbox?: SandboxMode | null, config?: { [key in string]?: JsonValue } | null, baseInstructions?: string | null, developerInstructions?: string | null, personality?: Personality | null, /** +approvalsReviewer?: ApprovalsReviewer | null, sandbox?: SandboxMode | null, config?: { [key in string]?: JsonValue } | null, baseInstructions?: string | null, developerInstructions?: string | null, /** + * @deprecated `friendly` and `pragmatic` no longer select a style. + * Changing this does not rewrite the thread's existing instructions. + */ +personality?: Personality | null, /** * When true, return only thread metadata and live-resume state without * populating `thread.turns`. This is useful when the client plans to call * `thread/turns/list` immediately after resuming. Full-history hydration diff --git a/src/generated/codex/v2/ThreadResumeResponse.ts b/src/generated/codex/v2/ThreadResumeResponse.ts index d1282c7..4bffeaa 100644 --- a/src/generated/codex/v2/ThreadResumeResponse.ts +++ b/src/generated/codex/v2/ThreadResumeResponse.ts @@ -2,6 +2,7 @@ // 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"; +import type { CollaborationMode } from "../CollaborationMode"; import type { LegacyAppPathString } from "../LegacyAppPathString"; import type { ReasoningEffort } from "../ReasoningEffort"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; @@ -9,7 +10,10 @@ import type { AskForApproval } from "./AskForApproval"; import type { SandboxPolicy } from "./SandboxPolicy"; import type { Thread } from "./Thread"; -export type ThreadResumeResponse = {thread: Thread, model: string, modelProvider: string, serviceTier: string | null, cwd: AbsolutePathBuf, /** +export type ThreadResumeResponse = {thread: Thread, model: string, modelProvider: string, serviceTier: string | null, /** + * Saved list of disabled plugin IDs. Does not yet filter plugin capabilities. + */ +disabledPluginIds: Array, cwd: AbsolutePathBuf, /** * Environment-native paths to instruction source files currently loaded for this thread. */ instructionSources: Array, approvalPolicy: AskForApproval, /** @@ -20,6 +24,9 @@ approvalsReviewer: ApprovalsReviewer, /** * should prefer `activePermissionProfile` for profile provenance. */ sandbox: SandboxPolicy, reasoningEffort: ReasoningEffort | null, /** + * Effective collaboration mode. Absent when resuming from an older server. + */ +collaborationMode: CollaborationMode | null, /** * Opaque cursor for hydrating paginated turns backwards. * * Pass this as `cursor` to `thread/turns/list` with diff --git a/src/generated/codex/v2/ThreadRollbackParams.ts b/src/generated/codex/v2/ThreadRollbackParams.ts deleted file mode 100644 index af416d1..0000000 --- a/src/generated/codex/v2/ThreadRollbackParams.ts +++ /dev/null @@ -1,15 +0,0 @@ -// 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. - -/** - * DEPRECATED: `thread/rollback` will be removed soon. - */ -export type ThreadRollbackParams = { threadId: string, -/** - * The number of turns to drop from the end of the thread. Must be >= 1. - * - * This only modifies the thread's history and does not revert local file changes - * that have been made by the agent. Clients are responsible for reverting these changes. - */ -numTurns: number, }; diff --git a/src/generated/codex/v2/ThreadRollbackResponse.ts b/src/generated/codex/v2/ThreadRollbackResponse.ts deleted file mode 100644 index 6597cc8..0000000 --- a/src/generated/codex/v2/ThreadRollbackResponse.ts +++ /dev/null @@ -1,14 +0,0 @@ -// 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 { Thread } from "./Thread"; - -export type ThreadRollbackResponse = { -/** - * The updated thread after applying the rollback, with `turns` populated. - * - * The ThreadItems stored in each Turn are lossy since we explicitly do not - * persist all agent interactions, such as command executions. This is the same - * behavior as `thread/resume`. - */ -thread: Thread, }; diff --git a/src/generated/codex/v2/ThreadSettings.ts b/src/generated/codex/v2/ThreadSettings.ts index b034ea8..90818f6 100644 --- a/src/generated/codex/v2/ThreadSettings.ts +++ b/src/generated/codex/v2/ThreadSettings.ts @@ -11,4 +11,10 @@ import type { ApprovalsReviewer } from "./ApprovalsReviewer"; import type { AskForApproval } from "./AskForApproval"; import type { SandboxPolicy } from "./SandboxPolicy"; -export type ThreadSettings = {cwd: AbsolutePathBuf, approvalPolicy: AskForApproval, approvalsReviewer: ApprovalsReviewer, sandboxPolicy: SandboxPolicy, activePermissionProfile: ActivePermissionProfile | null, model: string, modelProvider: string, serviceTier: string | null, effort: ReasoningEffort | null, summary: ReasoningSummary | null, collaborationMode: CollaborationMode, personality: Personality | null}; +export type ThreadSettings = {/** + * Saved list of disabled plugin IDs. Does not yet filter plugin capabilities. + */ +disabledPluginIds: Array, cwd: AbsolutePathBuf, approvalPolicy: AskForApproval, approvalsReviewer: ApprovalsReviewer, sandboxPolicy: SandboxPolicy, activePermissionProfile: ActivePermissionProfile | null, model: string, modelProvider: string, serviceTier: string | null, effort: ReasoningEffort | null, summary: ReasoningSummary | null, collaborationMode: CollaborationMode, /** + * @deprecated Reports the saved setting; `friendly` and `pragmatic` no longer select a style. + */ +personality: Personality | null}; diff --git a/src/generated/codex/v2/ThreadStartParams.ts b/src/generated/codex/v2/ThreadStartParams.ts index 30509ef..69280c0 100644 --- a/src/generated/codex/v2/ThreadStartParams.ts +++ b/src/generated/codex/v2/ThreadStartParams.ts @@ -13,7 +13,10 @@ export type ThreadStartParams = {model?: string | null, modelProvider?: string | * Override where approval requests are routed for review on this thread * and subsequent turns. */ -approvalsReviewer?: ApprovalsReviewer | null, sandbox?: SandboxMode | null, config?: { [key in string]?: JsonValue } | null, serviceName?: string | null, baseInstructions?: string | null, developerInstructions?: string | null, personality?: Personality | null, ephemeral?: boolean | null, sessionStartSource?: ThreadStartSource | null, /** +approvalsReviewer?: ApprovalsReviewer | null, sandbox?: SandboxMode | null, config?: { [key in string]?: JsonValue } | null, serviceName?: string | null, baseInstructions?: string | null, developerInstructions?: string | null, /** + * @deprecated `friendly` and `pragmatic` no longer select a style. + */ +personality?: Personality | null, ephemeral?: boolean | null, sessionStartSource?: ThreadStartSource | null, /** * Optional client-supplied analytics source classification for this thread. */ threadSource?: ThreadSource | null}; diff --git a/src/generated/codex/v2/ThreadStartResponse.ts b/src/generated/codex/v2/ThreadStartResponse.ts index 992ab5d..c4ff084 100644 --- a/src/generated/codex/v2/ThreadStartResponse.ts +++ b/src/generated/codex/v2/ThreadStartResponse.ts @@ -9,7 +9,10 @@ import type { AskForApproval } from "./AskForApproval"; import type { SandboxPolicy } from "./SandboxPolicy"; import type { Thread } from "./Thread"; -export type ThreadStartResponse = {thread: Thread, model: string, modelProvider: string, serviceTier: string | null, cwd: AbsolutePathBuf, /** +export type ThreadStartResponse = {thread: Thread, model: string, modelProvider: string, serviceTier: string | null, /** + * Saved list of disabled plugin IDs. Does not yet filter plugin capabilities. + */ +disabledPluginIds: Array, cwd: AbsolutePathBuf, /** * Environment-native paths to instruction source files currently loaded for this thread. */ instructionSources: Array, approvalPolicy: AskForApproval, /** diff --git a/src/generated/codex/v2/TurnStartParams.ts b/src/generated/codex/v2/TurnStartParams.ts index 97ed892..b5f5321 100644 --- a/src/generated/codex/v2/TurnStartParams.ts +++ b/src/generated/codex/v2/TurnStartParams.ts @@ -11,7 +11,11 @@ import type { SandboxPolicy } from "./SandboxPolicy"; import type { TurnToolOutput } from "./TurnToolOutput"; import type { UserInput } from "./UserInput"; -export type TurnStartParams = {threadId: string, clientUserMessageId?: string | null, input: Array, /** +export type TurnStartParams = {threadId: string, /** + * Replace this thread's disabled plugin IDs. + * Omitted/null preserves the list; [] clears it. + */ +disabledPluginIds?: Array | null, clientUserMessageId?: string | null, input: Array, /** * Optional source classification for the caller that starts this turn. * Ignored when this request steers an already-active turn. */ @@ -46,7 +50,8 @@ effort?: ReasoningEffort | null, /** * Override the reasoning summary for this turn and subsequent turns. */ summary?: ReasoningSummary | null, /** - * Override the personality for this turn and subsequent turns. + * @deprecated `friendly` and `pragmatic` no longer select a style. + * Changing this does not rewrite the thread's existing instructions. */ personality?: Personality | null, /** * Optional JSON Schema used to constrain the final assistant message for diff --git a/src/generated/codex/v2/UserInput.ts b/src/generated/codex/v2/UserInput.ts index c268cb4..390d9dd 100644 --- a/src/generated/codex/v2/UserInput.ts +++ b/src/generated/codex/v2/UserInput.ts @@ -8,4 +8,4 @@ export type UserInput = { "type": "text", text: string, /** * UI-defined spans within `text` used to render or persist special elements. */ -text_elements: Array, } | { "type": "image", detail?: ImageDetail, url: string, } | { "type": "localImage", detail?: ImageDetail, path: string, } | { "type": "audio", url: string, } | { "type": "localAudio", path: string, } | { "type": "skill", name: string, path: string, } | { "type": "mention", name: string, path: string, }; +text_elements: Array, } | { "type": "image", detail?: ImageDetail, } & ({ url: string, } | { fileId: string, }) | { "type": "localImage", detail?: ImageDetail, path: string, } | { "type": "audio", url: string, } | { "type": "localAudio", path: string, } | { "type": "skill", name: string, path: string, } | { "type": "mention", name: string, path: string, }; diff --git a/src/generated/codex/v2/WindowsSandboxImplementation.ts b/src/generated/codex/v2/WindowsSandboxImplementation.ts new file mode 100644 index 0000000..8859663 --- /dev/null +++ b/src/generated/codex/v2/WindowsSandboxImplementation.ts @@ -0,0 +1,5 @@ +// 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. + +export type WindowsSandboxImplementation = "elevated" | "unelevated" | "mxc"; diff --git a/src/generated/codex/v2/WorkspaceRouting.ts b/src/generated/codex/v2/WorkspaceRouting.ts new file mode 100644 index 0000000..f40eec6 --- /dev/null +++ b/src/generated/codex/v2/WorkspaceRouting.ts @@ -0,0 +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 { AccountRoutingOverride } from "./AccountRoutingOverride"; + +export type WorkspaceRouting = { chatgptAccountId: string, backendOrigin: string, accountRoutingOverride: AccountRoutingOverride, }; diff --git a/src/generated/codex/v2/index.ts b/src/generated/codex/v2/index.ts index e3df454..64c7420 100644 --- a/src/generated/codex/v2/index.ts +++ b/src/generated/codex/v2/index.ts @@ -3,6 +3,7 @@ export type { Account } from "./Account"; export type { AccountLoginCompletedNotification } from "./AccountLoginCompletedNotification"; export type { AccountRateLimitsUpdatedNotification } from "./AccountRateLimitsUpdatedNotification"; +export type { AccountRoutingOverride } from "./AccountRoutingOverride"; export type { AccountTokenUsageDailyBucket } from "./AccountTokenUsageDailyBucket"; export type { AccountTokenUsageSummary } from "./AccountTokenUsageSummary"; export type { AccountUpdatedNotification } from "./AccountUpdatedNotification"; @@ -250,6 +251,8 @@ export type { MarketplaceRemoveResponse } from "./MarketplaceRemoveResponse"; export type { MarketplaceUpgradeErrorInfo } from "./MarketplaceUpgradeErrorInfo"; export type { MarketplaceUpgradeParams } from "./MarketplaceUpgradeParams"; export type { MarketplaceUpgradeResponse } from "./MarketplaceUpgradeResponse"; +export type { McpAppDisplayMode } from "./McpAppDisplayMode"; +export type { McpAppUi } from "./McpAppUi"; export type { McpAuthStatus } from "./McpAuthStatus"; export type { McpElicitationArrayType } from "./McpElicitationArrayType"; export type { McpElicitationBooleanSchema } from "./McpElicitationBooleanSchema"; @@ -306,6 +309,7 @@ export type { MigrationDetails } from "./MigrationDetails"; export type { MisalignmentErrorDetails } from "./MisalignmentErrorDetails"; export type { MisalignmentSteer } from "./MisalignmentSteer"; export type { Model } from "./Model"; +export type { ModelAccessPrograms } from "./ModelAccessPrograms"; export type { ModelAvailabilityNux } from "./ModelAvailabilityNux"; export type { ModelListParams } from "./ModelListParams"; export type { ModelListResponse } from "./ModelListResponse"; @@ -542,8 +546,6 @@ export type { ThreadResumeResponse } from "./ThreadResumeResponse"; export type { ThreadRevertParams } from "./ThreadRevertParams"; export type { ThreadRevertResponse } from "./ThreadRevertResponse"; export type { ThreadRevertedNotification } from "./ThreadRevertedNotification"; -export type { ThreadRollbackParams } from "./ThreadRollbackParams"; -export type { ThreadRollbackResponse } from "./ThreadRollbackResponse"; export type { ThreadSearchResult } from "./ThreadSearchResult"; export type { ThreadSearchSortKey } from "./ThreadSearchSortKey"; export type { ThreadSection } from "./ThreadSection"; @@ -616,6 +618,7 @@ export type { TurnsPage } from "./TurnsPage"; export type { UserInput } from "./UserInput"; export type { WarningNotification } from "./WarningNotification"; export type { WebSearchAction } from "./WebSearchAction"; +export type { WindowsSandboxImplementation } from "./WindowsSandboxImplementation"; export type { WindowsSandboxReadiness } from "./WindowsSandboxReadiness"; export type { WindowsSandboxReadinessResponse } from "./WindowsSandboxReadinessResponse"; export type { WindowsSandboxSetupCompletedNotification } from "./WindowsSandboxSetupCompletedNotification"; @@ -625,4 +628,5 @@ export type { WindowsSandboxSetupStartResponse } from "./WindowsSandboxSetupStar export type { WindowsWorldWritableWarningNotification } from "./WindowsWorldWritableWarningNotification"; export type { WorkspaceMessage } from "./WorkspaceMessage"; export type { WorkspaceMessageType } from "./WorkspaceMessageType"; +export type { WorkspaceRouting } from "./WorkspaceRouting"; export type { WriteStatus } from "./WriteStatus"; diff --git a/src/miniapp/settings.tsx b/src/miniapp/settings.tsx index 5d46442..e333440 100644 --- a/src/miniapp/settings.tsx +++ b/src/miniapp/settings.tsx @@ -133,12 +133,6 @@ const verbosityOptions: readonly UiOption>[] = [ - { value: "none", label: "None" }, - { value: "friendly", label: "Friendly" }, - { value: "pragmatic", label: "Pragmatic" }, -]; - const windowsSandboxOptions: readonly UiOption< NonNullable >[] = [ @@ -895,17 +889,6 @@ function ModelFields({ /> )} - form.updateDraft({ personality: value })} - /> { + const writes: unknown[] = []; + const rpc = { + async request(message: { method: string; params?: unknown }): Promise { + switch (message.method) { + case "config/read": + return { + config: { model_provider: null }, + layers: [ + { + name: { type: "user", profile: null }, + version: "v1", + config: { model: "gpt-6", personality: "friendly" }, + disabledReason: null, + }, + ], + }; + case "model/list": + case "permissionProfile/list": + case "experimentalFeature/list": + return { data: [], nextCursor: null }; + case "configRequirements/read": + return { requirements: null }; + case "config/batchWrite": + writes.push(message.params); + return {}; + default: + throw new Error(`Unexpected RPC: ${message.method}`); + } + }, + } as unknown as CodexAppServer; + const service = new CodexConfigService(rpc); + + const snapshot = await service.read(); + expect(snapshot.values.model).toBe("gpt-6"); + expect("personality" in snapshot.values).toBe(false); + + await service.update({ expectedVersion: snapshot.version, values: { model: "gpt-6-sol" } }); + expect(writes).toEqual([ + { + edits: [{ keyPath: "model", value: "gpt-6-sol", mergeStrategy: "upsert" }], + expectedVersion: "v1", + reloadUserConfig: true, + }, + ]); +}); diff --git a/test/fixtures/web-app.ts b/test/fixtures/web-app.ts index 7ada86a..2c2a0da 100644 --- a/test/fixtures/web-app.ts +++ b/test/fixtures/web-app.ts @@ -27,7 +27,6 @@ export const snapshot: EditableConfigSnapshot = { model_reasoning_summary: null, model_verbosity: null, service_tier: null, - personality: null, windows_sandbox: null, shell_environment_include_only: null, features: {}, From 69b7731e0f5d85d23aea16c2c8d48e127c17d1ec Mon Sep 17 00:00:00 2001 From: sadfun <32015025+sadfun@users.noreply.github.com> Date: Wed, 23 Sep 2026 09:16:35 +0000 Subject: [PATCH 2/2] Release Codex 0.156.1 upgrade as Wirebot 0.3.4 --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 92fb1ea..39e1937 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to Wirebot are documented in this file. ## [Unreleased] -## [0.4.0] - 2026-09-23 +## [0.3.4] - 2026-09-23 ### Added diff --git a/package.json b/package.json index 086bf96..e7f1ebc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wirebot", - "version": "0.4.0", + "version": "0.3.4", "private": true, "type": "module", "packageManager": "bun@1.4.0",