From 8cefb6af49d0faf1419007140155d331a285cddd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 May 2026 08:31:08 +0000 Subject: [PATCH 1/2] Update codex to 0.131.0 --- package-lock.json | 56 +++++++++---------- package.json | 2 +- src/app-server/ClientRequest.ts | 12 ++-- src/app-server/InitializeCapabilities.ts | 4 ++ src/app-server/ResponseItem.ts | 2 +- src/app-server/ServerNotification.ts | 4 +- src/app-server/ServerRequest.ts | 3 +- src/app-server/v2/ActivePermissionProfile.ts | 8 +-- .../v2/AttestationGenerateParams.ts | 5 ++ .../v2/AttestationGenerateResponse.ts | 9 +++ .../CommandExecutionRequestApprovalParams.ts | 3 + src/app-server/v2/Config.ts | 4 +- src/app-server/v2/ConfigLayerSource.ts | 7 ++- src/app-server/v2/ConfigRequirements.ts | 2 +- src/app-server/v2/ConfiguredHookHandler.ts | 2 +- .../v2/FileChangeOutputDeltaNotification.ts | 5 ++ .../v2/FileChangeRequestApprovalParams.ts | 4 ++ .../v2/ForcedChatgptWorkspaceIds.ts | 8 +++ src/app-server/v2/HookEventName.ts | 2 +- src/app-server/v2/HookMetadata.ts | 3 +- src/app-server/v2/HookTrustStatus.ts | 5 ++ .../v2/ItemCompletedNotification.ts | 6 +- ...dianApprovalReviewCompletedNotification.ts | 8 +++ ...ardianApprovalReviewStartedNotification.ts | 4 ++ src/app-server/v2/ItemStartedNotification.ts | 6 +- src/app-server/v2/ManagedHooksRequirements.ts | 2 +- src/app-server/v2/Model.ts | 7 ++- src/app-server/v2/ModelServiceTier.ts | 5 ++ .../v2/PermissionsRequestApprovalParams.ts | 6 +- src/app-server/v2/PluginAvailability.ts | 5 ++ src/app-server/v2/PluginDetail.ts | 3 +- src/app-server/v2/PluginHookSummary.ts | 6 ++ .../v2/PluginListMarketplaceKind.ts | 5 ++ src/app-server/v2/PluginListParams.ts | 8 ++- .../v2/PluginShareCheckoutParams.ts | 5 ++ .../v2/PluginShareCheckoutResponse.ts | 6 ++ src/app-server/v2/PluginShareContext.ts | 11 ++++ src/app-server/v2/PluginShareDeleteParams.ts | 5 ++ .../v2/PluginShareDeleteResponse.ts | 5 ++ .../v2/PluginShareDiscoverability.ts | 5 ++ src/app-server/v2/PluginShareListItem.ts | 7 +++ src/app-server/v2/PluginShareListParams.ts | 5 ++ src/app-server/v2/PluginShareListResponse.ts | 6 ++ src/app-server/v2/PluginSharePrincipal.ts | 7 +++ src/app-server/v2/PluginSharePrincipalRole.ts | 5 ++ src/app-server/v2/PluginSharePrincipalType.ts | 5 ++ src/app-server/v2/PluginShareSaveParams.ts | 8 +++ src/app-server/v2/PluginShareSaveResponse.ts | 5 ++ src/app-server/v2/PluginShareTarget.ts | 7 +++ src/app-server/v2/PluginShareTargetRole.ts | 5 ++ .../v2/PluginShareUpdateDiscoverability.ts | 5 ++ .../v2/PluginShareUpdateTargetsParams.ts | 7 +++ .../v2/PluginShareUpdateTargetsResponse.ts | 7 +++ src/app-server/v2/PluginSkillReadParams.ts | 5 ++ src/app-server/v2/PluginSkillReadResponse.ts | 5 ++ src/app-server/v2/PluginSummary.ts | 20 ++++++- .../v2/ProcessExitedNotification.ts | 42 ++++++++++++++ .../v2/ProcessOutputDeltaNotification.ts | 26 +++++++++ src/app-server/v2/ProcessOutputStream.ts | 8 +++ src/app-server/v2/ProcessTerminalSize.ts | 16 ++++++ src/app-server/v2/ProfileV2.ts | 3 +- .../RemoteControlStatusChangedNotification.ts | 4 +- src/app-server/v2/SkillsListParams.ts | 7 +-- src/app-server/v2/Thread.ts | 9 +++ src/app-server/v2/ThreadForkParams.ts | 10 ++-- src/app-server/v2/ThreadForkResponse.ts | 6 +- .../v2/ThreadRealtimeStartedNotification.ts | 2 +- src/app-server/v2/ThreadResumeParams.ts | 10 +--- src/app-server/v2/ThreadResumeResponse.ts | 6 +- src/app-server/v2/ThreadSource.ts | 5 ++ src/app-server/v2/ThreadStartParams.ts | 9 ++- src/app-server/v2/ThreadStartResponse.ts | 6 +- src/app-server/v2/ThreadTurnsListParams.ts | 18 ------ src/app-server/v2/ThreadTurnsListResponse.ts | 18 ------ src/app-server/v2/ToolsV2.ts | 2 +- src/app-server/v2/Turn.ts | 11 ++-- src/app-server/v2/TurnItemsView.ts | 5 ++ src/app-server/v2/TurnStartParams.ts | 3 +- src/app-server/v2/WindowsSandboxReadiness.ts | 5 ++ .../v2/WindowsSandboxReadinessResponse.ts | 6 ++ src/app-server/v2/index.ts | 39 ++++++++++++- 81 files changed, 499 insertions(+), 144 deletions(-) create mode 100644 src/app-server/v2/AttestationGenerateParams.ts create mode 100644 src/app-server/v2/AttestationGenerateResponse.ts create mode 100644 src/app-server/v2/ForcedChatgptWorkspaceIds.ts create mode 100644 src/app-server/v2/HookTrustStatus.ts create mode 100644 src/app-server/v2/ModelServiceTier.ts create mode 100644 src/app-server/v2/PluginAvailability.ts create mode 100644 src/app-server/v2/PluginHookSummary.ts create mode 100644 src/app-server/v2/PluginListMarketplaceKind.ts create mode 100644 src/app-server/v2/PluginShareCheckoutParams.ts create mode 100644 src/app-server/v2/PluginShareCheckoutResponse.ts create mode 100644 src/app-server/v2/PluginShareContext.ts create mode 100644 src/app-server/v2/PluginShareDeleteParams.ts create mode 100644 src/app-server/v2/PluginShareDeleteResponse.ts create mode 100644 src/app-server/v2/PluginShareDiscoverability.ts create mode 100644 src/app-server/v2/PluginShareListItem.ts create mode 100644 src/app-server/v2/PluginShareListParams.ts create mode 100644 src/app-server/v2/PluginShareListResponse.ts create mode 100644 src/app-server/v2/PluginSharePrincipal.ts create mode 100644 src/app-server/v2/PluginSharePrincipalRole.ts create mode 100644 src/app-server/v2/PluginSharePrincipalType.ts create mode 100644 src/app-server/v2/PluginShareSaveParams.ts create mode 100644 src/app-server/v2/PluginShareSaveResponse.ts create mode 100644 src/app-server/v2/PluginShareTarget.ts create mode 100644 src/app-server/v2/PluginShareTargetRole.ts create mode 100644 src/app-server/v2/PluginShareUpdateDiscoverability.ts create mode 100644 src/app-server/v2/PluginShareUpdateTargetsParams.ts create mode 100644 src/app-server/v2/PluginShareUpdateTargetsResponse.ts create mode 100644 src/app-server/v2/PluginSkillReadParams.ts create mode 100644 src/app-server/v2/PluginSkillReadResponse.ts create mode 100644 src/app-server/v2/ProcessExitedNotification.ts create mode 100644 src/app-server/v2/ProcessOutputDeltaNotification.ts create mode 100644 src/app-server/v2/ProcessOutputStream.ts create mode 100644 src/app-server/v2/ProcessTerminalSize.ts create mode 100644 src/app-server/v2/ThreadSource.ts delete mode 100644 src/app-server/v2/ThreadTurnsListParams.ts delete mode 100644 src/app-server/v2/ThreadTurnsListResponse.ts create mode 100644 src/app-server/v2/TurnItemsView.ts create mode 100644 src/app-server/v2/WindowsSandboxReadiness.ts create mode 100644 src/app-server/v2/WindowsSandboxReadinessResponse.ts diff --git a/package-lock.json b/package-lock.json index 39b18d35..63fda5c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "Apache-2.0", "dependencies": { "@agentclientprotocol/sdk": "^0.21.0", - "@openai/codex": "^0.128.0", + "@openai/codex": "^0.131.0", "diff": "^8.0.3", "open": "^11.0.0", "vscode-jsonrpc": "^8.2.1" @@ -817,9 +817,9 @@ } }, "node_modules/@openai/codex": { - "version": "0.128.0", - "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.128.0.tgz", - "integrity": "sha512-+xp6ODmFfBNnexIWRHApEaPXot2j6gyM8A5we/5IS/uY4eYHj4arETct4hQ5M4eO+MK7JY3ZU4xhuobhlysr0A==", + "version": "0.131.0", + "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.131.0.tgz", + "integrity": "sha512-5/fNFAotnPaNSX1jGAAGgWk65HGZupWPnka+DzXdoNzl78RGw0eGpOjpowF+dtPRTEvdwt0U8qoptUjtefitBQ==", "license": "Apache-2.0", "bin": { "codex": "bin/codex.js" @@ -828,19 +828,19 @@ "node": ">=16" }, "optionalDependencies": { - "@openai/codex-darwin-arm64": "npm:@openai/codex@0.128.0-darwin-arm64", - "@openai/codex-darwin-x64": "npm:@openai/codex@0.128.0-darwin-x64", - "@openai/codex-linux-arm64": "npm:@openai/codex@0.128.0-linux-arm64", - "@openai/codex-linux-x64": "npm:@openai/codex@0.128.0-linux-x64", - "@openai/codex-win32-arm64": "npm:@openai/codex@0.128.0-win32-arm64", - "@openai/codex-win32-x64": "npm:@openai/codex@0.128.0-win32-x64" + "@openai/codex-darwin-arm64": "npm:@openai/codex@0.131.0-darwin-arm64", + "@openai/codex-darwin-x64": "npm:@openai/codex@0.131.0-darwin-x64", + "@openai/codex-linux-arm64": "npm:@openai/codex@0.131.0-linux-arm64", + "@openai/codex-linux-x64": "npm:@openai/codex@0.131.0-linux-x64", + "@openai/codex-win32-arm64": "npm:@openai/codex@0.131.0-win32-arm64", + "@openai/codex-win32-x64": "npm:@openai/codex@0.131.0-win32-x64" } }, "node_modules/@openai/codex-darwin-arm64": { "name": "@openai/codex", - "version": "0.128.0-darwin-arm64", - "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.128.0-darwin-arm64.tgz", - "integrity": "sha512-w+6zohfHx/kHBdles/CyFKaY57u9I3nK8QI9+NrdwMliKA0b7xn13yblRNkMpe09j6vL1oAWoxYsMOQ/vjBGug==", + "version": "0.131.0-darwin-arm64", + "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.131.0-darwin-arm64.tgz", + "integrity": "sha512-e4EZ7XjK1zrkW65nZdhCqQFVKd/zt/of26w4L32wcfibzKE15/Lw2i3FGTD9ufUUqVzF+gowu/lEiBRvDoh21w==", "cpu": [ "arm64" ], @@ -855,9 +855,9 @@ }, "node_modules/@openai/codex-darwin-x64": { "name": "@openai/codex", - "version": "0.128.0-darwin-x64", - "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.128.0-darwin-x64.tgz", - "integrity": "sha512-SDbn6fO22Puy8xmMIbZi4f2znMrUEPwABApke4mo+4ihaauwuVjeqzXvW5SPJz5ty/bG11/mSupQgReT7T8BBw==", + "version": "0.131.0-darwin-x64", + "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.131.0-darwin-x64.tgz", + "integrity": "sha512-BkFwUVU+yJhw5a85p1oagiSjkRvBs9Xp1b1q1Qbvg4Y9Chtatj4SjI7HRjH5uespNs/Wnh48cMnTsxkAILqlBw==", "cpu": [ "x64" ], @@ -872,9 +872,9 @@ }, "node_modules/@openai/codex-linux-arm64": { "name": "@openai/codex", - "version": "0.128.0-linux-arm64", - "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.128.0-linux-arm64.tgz", - "integrity": "sha512-+SvH73H60qvCXFuQGP/EsmR//s1hHMBR22PvJkXvM/hdnTIGucx+JqRUjAWdmmQ1IU6j3kgwVvdLW/6ICB+M6w==", + "version": "0.131.0-linux-arm64", + "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.131.0-linux-arm64.tgz", + "integrity": "sha512-I12Ou5I5oR/nfUyMJ/D95OMm83HoXMBHdl+4YrPay/XGd9KkyMhvZxp9Es/h9x/xt8yiBIk+k0Ehtr093r8AFw==", "cpu": [ "arm64" ], @@ -889,9 +889,9 @@ }, "node_modules/@openai/codex-linux-x64": { "name": "@openai/codex", - "version": "0.128.0-linux-x64", - "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.128.0-linux-x64.tgz", - "integrity": "sha512-2lnSPA05CRRuKAzFW8BCmmNCSieDcToLwfC2ALLbBYilGLgzhRibjlDglK9F1BkEzfohSSWJu4PBbRu/aG60lQ==", + "version": "0.131.0-linux-x64", + "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.131.0-linux-x64.tgz", + "integrity": "sha512-Fj9P7h3iBgjAQKzoEyUkb1Q8QMVLqaf62UzlL1jYeDhIzbDMI/gaV0tOackIGXPcfguzzORJC1g5pD9SMWqU5g==", "cpu": [ "x64" ], @@ -906,9 +906,9 @@ }, "node_modules/@openai/codex-win32-arm64": { "name": "@openai/codex", - "version": "0.128.0-win32-arm64", - "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.128.0-win32-arm64.tgz", - "integrity": "sha512-ECJvsqmYFdA9pn42xxK3Odp/G16AjmBW0BglX8L0PwPjqbstbmlew9bfHf7xvL+SNfNl4NmyotW0+RNo1phgaA==", + "version": "0.131.0-win32-arm64", + "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.131.0-win32-arm64.tgz", + "integrity": "sha512-aGXsk8GYNFCjHYH61mVG0PulheBq6ZxZWM2BLYAJabzGarzRQpPknc60mx8mSm93BebjPkX0Wpf+0qInBPbF0w==", "cpu": [ "arm64" ], @@ -923,9 +923,9 @@ }, "node_modules/@openai/codex-win32-x64": { "name": "@openai/codex", - "version": "0.128.0-win32-x64", - "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.128.0-win32-x64.tgz", - "integrity": "sha512-k3jmUAFrzkUtvjGTXvSKjQqJLLlzjxp/VoHJDYedgmXUn6j70HxK38IwapzmnYfiBiTuzETvGwjXHzZgzKjhoQ==", + "version": "0.131.0-win32-x64", + "resolved": "https://registry.npmjs.org/@openai/codex/-/codex-0.131.0-win32-x64.tgz", + "integrity": "sha512-RlIRs0hi6xIaBXWFhiPTPlz+Dfibc3pXrnVXjJtpbeYcNyBOO+SIMMVuQUswpz3RnJpsxA70dQA+05hKYraKhA==", "cpu": [ "x64" ], diff --git a/package.json b/package.json index 09ae5b96..f69246e4 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ }, "dependencies": { "@agentclientprotocol/sdk": "^0.21.0", - "@openai/codex": "^0.128.0", + "@openai/codex": "^0.131.0", "diff": "^8.0.3", "open": "^11.0.0", "vscode-jsonrpc": "^8.2.1" diff --git a/src/app-server/ClientRequest.ts b/src/app-server/ClientRequest.ts index a86297e3..28371c71 100644 --- a/src/app-server/ClientRequest.ts +++ b/src/app-server/ClientRequest.ts @@ -16,9 +16,6 @@ import type { CommandExecWriteParams } from "./v2/CommandExecWriteParams"; import type { ConfigBatchWriteParams } from "./v2/ConfigBatchWriteParams"; import type { ConfigReadParams } from "./v2/ConfigReadParams"; import type { ConfigValueWriteParams } from "./v2/ConfigValueWriteParams"; -import type { DeviceKeyCreateParams } from "./v2/DeviceKeyCreateParams"; -import type { DeviceKeyPublicParams } from "./v2/DeviceKeyPublicParams"; -import type { DeviceKeySignParams } from "./v2/DeviceKeySignParams"; import type { ExperimentalFeatureEnablementSetParams } from "./v2/ExperimentalFeatureEnablementSetParams"; import type { ExperimentalFeatureListParams } from "./v2/ExperimentalFeatureListParams"; import type { ExternalAgentConfigDetectParams } from "./v2/ExternalAgentConfigDetectParams"; @@ -48,6 +45,12 @@ import type { ModelProviderCapabilitiesReadParams } from "./v2/ModelProviderCapa import type { PluginInstallParams } from "./v2/PluginInstallParams"; import type { PluginListParams } from "./v2/PluginListParams"; import type { PluginReadParams } from "./v2/PluginReadParams"; +import type { PluginShareCheckoutParams } from "./v2/PluginShareCheckoutParams"; +import type { PluginShareDeleteParams } from "./v2/PluginShareDeleteParams"; +import type { PluginShareListParams } from "./v2/PluginShareListParams"; +import type { PluginShareSaveParams } from "./v2/PluginShareSaveParams"; +import type { PluginShareUpdateTargetsParams } from "./v2/PluginShareUpdateTargetsParams"; +import type { PluginSkillReadParams } from "./v2/PluginSkillReadParams"; import type { PluginUninstallParams } from "./v2/PluginUninstallParams"; import type { ReviewStartParams } from "./v2/ReviewStartParams"; import type { SendAddCreditsNudgeEmailParams } from "./v2/SendAddCreditsNudgeEmailParams"; @@ -67,7 +70,6 @@ import type { ThreadRollbackParams } from "./v2/ThreadRollbackParams"; import type { ThreadSetNameParams } from "./v2/ThreadSetNameParams"; import type { ThreadShellCommandParams } from "./v2/ThreadShellCommandParams"; import type { ThreadStartParams } from "./v2/ThreadStartParams"; -import type { ThreadTurnsListParams } from "./v2/ThreadTurnsListParams"; import type { ThreadUnarchiveParams } from "./v2/ThreadUnarchiveParams"; import type { ThreadUnsubscribeParams } from "./v2/ThreadUnsubscribeParams"; import type { TurnInterruptParams } from "./v2/TurnInterruptParams"; @@ -78,4 +80,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/unsubscribe", id: RequestId, params: ThreadUnsubscribeParams, } | { "method": "thread/name/set", id: RequestId, params: ThreadSetNameParams, } | { "method": "thread/metadata/update", id: RequestId, params: ThreadMetadataUpdateParams, } | { "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/list", id: RequestId, params: ThreadListParams, } | { "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/inject_items", id: RequestId, params: ThreadInjectItemsParams, } | { "method": "skills/list", id: RequestId, params: SkillsListParams, } | { "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/read", id: RequestId, params: PluginReadParams, } | { "method": "app/list", id: RequestId, params: AppsListParams, } | { "method": "device/key/create", id: RequestId, params: DeviceKeyCreateParams, } | { "method": "device/key/public", id: RequestId, params: DeviceKeyPublicParams, } | { "method": "device/key/sign", id: RequestId, params: DeviceKeySignParams, } | { "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": "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": "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: 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": "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/unsubscribe", id: RequestId, params: ThreadUnsubscribeParams, } | { "method": "thread/name/set", id: RequestId, params: ThreadSetNameParams, } | { "method": "thread/metadata/update", id: RequestId, params: ThreadMetadataUpdateParams, } | { "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/list", id: RequestId, params: ThreadListParams, } | { "method": "thread/loaded/list", id: RequestId, params: ThreadLoadedListParams, } | { "method": "thread/read", id: RequestId, params: ThreadReadParams, } | { "method": "thread/inject_items", id: RequestId, params: ThreadInjectItemsParams, } | { "method": "skills/list", id: RequestId, params: SkillsListParams, } | { "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/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/list", id: RequestId, params: AppsListParams, } | { "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": "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: 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": "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/app-server/InitializeCapabilities.ts b/src/app-server/InitializeCapabilities.ts index 5d42cc48..c5043e3b 100644 --- a/src/app-server/InitializeCapabilities.ts +++ b/src/app-server/InitializeCapabilities.ts @@ -10,6 +10,10 @@ export type InitializeCapabilities = { * Opt into receiving experimental API methods and fields. */ experimentalApi: boolean, +/** + * Opt into `attestation/generate` requests for upstream `x-oai-attestation`. + */ +requestAttestation: boolean, /** * Exact notification method names that should be suppressed for this * connection (for example `thread/started`). diff --git a/src/app-server/ResponseItem.ts b/src/app-server/ResponseItem.ts index 382c89db..e5e960ff 100644 --- a/src/app-server/ResponseItem.ts +++ b/src/app-server/ResponseItem.ts @@ -14,4 +14,4 @@ export type ResponseItem = { "type": "message", role: string, content: Array, }; +extends: string | null, }; diff --git a/src/app-server/v2/AttestationGenerateParams.ts b/src/app-server/v2/AttestationGenerateParams.ts new file mode 100644 index 00000000..0e87e7d3 --- /dev/null +++ b/src/app-server/v2/AttestationGenerateParams.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 AttestationGenerateParams = Record; diff --git a/src/app-server/v2/AttestationGenerateResponse.ts b/src/app-server/v2/AttestationGenerateResponse.ts new file mode 100644 index 00000000..6821c898 --- /dev/null +++ b/src/app-server/v2/AttestationGenerateResponse.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. + +export type AttestationGenerateResponse = { +/** + * Opaque client attestation token. + */ +token: string, }; diff --git a/src/app-server/v2/CommandExecutionRequestApprovalParams.ts b/src/app-server/v2/CommandExecutionRequestApprovalParams.ts index ca2d0b0a..0e910083 100644 --- a/src/app-server/v2/CommandExecutionRequestApprovalParams.ts +++ b/src/app-server/v2/CommandExecutionRequestApprovalParams.ts @@ -8,6 +8,9 @@ import type { NetworkApprovalContext } from "./NetworkApprovalContext"; import type { NetworkPolicyAmendment } from "./NetworkPolicyAmendment"; export type CommandExecutionRequestApprovalParams = {threadId: string, turnId: string, itemId: string, /** + * Unix timestamp (in milliseconds) when this approval request started. + */ +startedAtMs: number, /** * Unique identifier for this specific approval callback. * * For regular shell/unified_exec approvals, this is null. diff --git a/src/app-server/v2/Config.ts b/src/app-server/v2/Config.ts index 508fe84e..ba24663e 100644 --- a/src/app-server/v2/Config.ts +++ b/src/app-server/v2/Config.ts @@ -4,13 +4,13 @@ import type { ForcedLoginMethod } from "../ForcedLoginMethod"; import type { ReasoningEffort } from "../ReasoningEffort"; import type { ReasoningSummary } from "../ReasoningSummary"; -import type { ServiceTier } from "../ServiceTier"; import type { Verbosity } from "../Verbosity"; import type { WebSearchMode } from "../WebSearchMode"; import type { JsonValue } from "../serde_json/JsonValue"; import type { AnalyticsConfig } from "./AnalyticsConfig"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; import type { AskForApproval } from "./AskForApproval"; +import type { ForcedChatgptWorkspaceIds } from "./ForcedChatgptWorkspaceIds"; import type { ProfileV2 } from "./ProfileV2"; import type { SandboxMode } from "./SandboxMode"; import type { SandboxWorkspaceWrite } from "./SandboxWorkspaceWrite"; @@ -20,4 +20,4 @@ export type Config = {model: string | null, review_model: string | null, model_c * [UNSTABLE] Optional default for where approval requests are routed for * review. */ -approvals_reviewer: ApprovalsReviewer | null, sandbox_mode: SandboxMode | null, sandbox_workspace_write: SandboxWorkspaceWrite | null, forced_chatgpt_workspace_id: string | null, forced_login_method: ForcedLoginMethod | null, web_search: WebSearchMode | null, tools: ToolsV2 | null, profile: string | null, profiles: { [key in string]?: ProfileV2 }, instructions: string | null, developer_instructions: string | null, compact_prompt: string | null, model_reasoning_effort: ReasoningEffort | null, model_reasoning_summary: ReasoningSummary | null, model_verbosity: Verbosity | null, service_tier: ServiceTier | null, analytics: AnalyticsConfig | null} & ({ [key in string]?: number | string | boolean | Array | { [key in string]?: JsonValue } | null }); +approvals_reviewer: ApprovalsReviewer | null, sandbox_mode: SandboxMode | null, sandbox_workspace_write: SandboxWorkspaceWrite | null, forced_chatgpt_workspace_id: ForcedChatgptWorkspaceIds | null, forced_login_method: ForcedLoginMethod | null, web_search: WebSearchMode | null, tools: ToolsV2 | null, profile: string | null, profiles: { [key in string]?: ProfileV2 }, instructions: string | null, developer_instructions: string | null, compact_prompt: string | null, model_reasoning_effort: ReasoningEffort | null, model_reasoning_summary: ReasoningSummary | null, model_verbosity: Verbosity | null, service_tier: string | null, analytics: AnalyticsConfig | null, desktop: { [key in string]?: JsonValue } | null} & ({ [key in string]?: number | string | boolean | Array | { [key in string]?: JsonValue } | null }); diff --git a/src/app-server/v2/ConfigLayerSource.ts b/src/app-server/v2/ConfigLayerSource.ts index 1fe19b67..08cb8c6b 100644 --- a/src/app-server/v2/ConfigLayerSource.ts +++ b/src/app-server/v2/ConfigLayerSource.ts @@ -13,4 +13,9 @@ file: AbsolutePathBuf, } | { "type": "user", * This is the path to the user's config.toml file, though it is not * guaranteed to exist. */ -file: AbsolutePathBuf, } | { "type": "project", dotCodexFolder: AbsolutePathBuf, } | { "type": "sessionFlags" } | { "type": "legacyManagedConfigTomlFromFile", file: AbsolutePathBuf, } | { "type": "legacyManagedConfigTomlFromMdm" }; +file: AbsolutePathBuf, +/** + * Name of the selected profile-v2 config layered on top of the base + * user config, when this layer represents one. + */ +profile: string | null, } | { "type": "project", dotCodexFolder: AbsolutePathBuf, } | { "type": "sessionFlags" } | { "type": "legacyManagedConfigTomlFromFile", file: AbsolutePathBuf, } | { "type": "legacyManagedConfigTomlFromMdm" }; diff --git a/src/app-server/v2/ConfigRequirements.ts b/src/app-server/v2/ConfigRequirements.ts index 47a99453..1b0625e5 100644 --- a/src/app-server/v2/ConfigRequirements.ts +++ b/src/app-server/v2/ConfigRequirements.ts @@ -6,4 +6,4 @@ import type { AskForApproval } from "./AskForApproval"; import type { ResidencyRequirement } from "./ResidencyRequirement"; import type { SandboxMode } from "./SandboxMode"; -export type ConfigRequirements = {allowedApprovalPolicies: Array | null, allowedSandboxModes: Array | null, allowedWebSearchModes: Array | null, featureRequirements: { [key in string]?: boolean } | null, enforceResidency: ResidencyRequirement | null}; +export type ConfigRequirements = {allowedApprovalPolicies: Array | null, allowedSandboxModes: Array | null, allowedWebSearchModes: Array | null, allowManagedHooksOnly: boolean | null, featureRequirements: { [key in string]?: boolean } | null, enforceResidency: ResidencyRequirement | null}; diff --git a/src/app-server/v2/ConfiguredHookHandler.ts b/src/app-server/v2/ConfiguredHookHandler.ts index a81ce61f..42b05cf8 100644 --- a/src/app-server/v2/ConfiguredHookHandler.ts +++ b/src/app-server/v2/ConfiguredHookHandler.ts @@ -2,4 +2,4 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. -export type ConfiguredHookHandler = { "type": "command", command: string, timeoutSec: bigint | null, async: boolean, statusMessage: string | null, } | { "type": "prompt", } | { "type": "agent", }; +export type ConfiguredHookHandler = { "type": "command", command: string, commandWindows: string | null, timeoutSec: bigint | null, async: boolean, statusMessage: string | null, } | { "type": "prompt", } | { "type": "agent", }; diff --git a/src/app-server/v2/FileChangeOutputDeltaNotification.ts b/src/app-server/v2/FileChangeOutputDeltaNotification.ts index 1018bd8a..c11f626c 100644 --- a/src/app-server/v2/FileChangeOutputDeltaNotification.ts +++ b/src/app-server/v2/FileChangeOutputDeltaNotification.ts @@ -2,4 +2,9 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +/** + * Deprecated legacy notification for `apply_patch` textual output. + * + * The server no longer emits this notification. + */ export type FileChangeOutputDeltaNotification = { threadId: string, turnId: string, itemId: string, delta: string, }; diff --git a/src/app-server/v2/FileChangeRequestApprovalParams.ts b/src/app-server/v2/FileChangeRequestApprovalParams.ts index c514ed62..2db7be9e 100644 --- a/src/app-server/v2/FileChangeRequestApprovalParams.ts +++ b/src/app-server/v2/FileChangeRequestApprovalParams.ts @@ -3,6 +3,10 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. export type FileChangeRequestApprovalParams = { threadId: string, turnId: string, itemId: string, +/** + * Unix timestamp (in milliseconds) when this approval request started. + */ +startedAtMs: number, /** * Optional explanatory reason (e.g. request for extra write access). */ diff --git a/src/app-server/v2/ForcedChatgptWorkspaceIds.ts b/src/app-server/v2/ForcedChatgptWorkspaceIds.ts new file mode 100644 index 00000000..d0582c8f --- /dev/null +++ b/src/app-server/v2/ForcedChatgptWorkspaceIds.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. + +/** + * Backward-compatible API shape for ChatGPT workspace login restrictions. + */ +export type ForcedChatgptWorkspaceIds = string | Array; diff --git a/src/app-server/v2/HookEventName.ts b/src/app-server/v2/HookEventName.ts index 28657d22..91c2def7 100644 --- a/src/app-server/v2/HookEventName.ts +++ b/src/app-server/v2/HookEventName.ts @@ -2,4 +2,4 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. -export type HookEventName = "preToolUse" | "permissionRequest" | "postToolUse" | "sessionStart" | "userPromptSubmit" | "stop"; +export type HookEventName = "preToolUse" | "permissionRequest" | "postToolUse" | "preCompact" | "postCompact" | "sessionStart" | "userPromptSubmit" | "stop"; diff --git a/src/app-server/v2/HookMetadata.ts b/src/app-server/v2/HookMetadata.ts index 8ccd2b18..94e3c30c 100644 --- a/src/app-server/v2/HookMetadata.ts +++ b/src/app-server/v2/HookMetadata.ts @@ -5,5 +5,6 @@ import type { AbsolutePathBuf } from "../AbsolutePathBuf"; import type { HookEventName } from "./HookEventName"; import type { HookHandlerType } from "./HookHandlerType"; import type { HookSource } from "./HookSource"; +import type { HookTrustStatus } from "./HookTrustStatus"; -export type HookMetadata = { key: string, eventName: HookEventName, handlerType: HookHandlerType, matcher: string | null, command: string | null, timeoutSec: bigint, statusMessage: string | null, sourcePath: AbsolutePathBuf, source: HookSource, pluginId: string | null, displayOrder: bigint, enabled: boolean, isManaged: boolean, }; +export type HookMetadata = { key: string, eventName: HookEventName, handlerType: HookHandlerType, matcher: string | null, command: string | null, timeoutSec: bigint, statusMessage: string | null, sourcePath: AbsolutePathBuf, source: HookSource, pluginId: string | null, displayOrder: bigint, enabled: boolean, isManaged: boolean, currentHash: string, trustStatus: HookTrustStatus, }; diff --git a/src/app-server/v2/HookTrustStatus.ts b/src/app-server/v2/HookTrustStatus.ts new file mode 100644 index 00000000..692fdc4c --- /dev/null +++ b/src/app-server/v2/HookTrustStatus.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 HookTrustStatus = "managed" | "untrusted" | "trusted" | "modified"; diff --git a/src/app-server/v2/ItemCompletedNotification.ts b/src/app-server/v2/ItemCompletedNotification.ts index 96122204..25ced4a0 100644 --- a/src/app-server/v2/ItemCompletedNotification.ts +++ b/src/app-server/v2/ItemCompletedNotification.ts @@ -3,4 +3,8 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { ThreadItem } from "./ThreadItem"; -export type ItemCompletedNotification = { item: ThreadItem, threadId: string, turnId: string, }; +export type ItemCompletedNotification = { item: ThreadItem, threadId: string, turnId: string, +/** + * Unix timestamp (in milliseconds) when this item lifecycle completed. + */ +completedAtMs: number, }; diff --git a/src/app-server/v2/ItemGuardianApprovalReviewCompletedNotification.ts b/src/app-server/v2/ItemGuardianApprovalReviewCompletedNotification.ts index 5b162cf4..32d12be6 100644 --- a/src/app-server/v2/ItemGuardianApprovalReviewCompletedNotification.ts +++ b/src/app-server/v2/ItemGuardianApprovalReviewCompletedNotification.ts @@ -10,6 +10,14 @@ import type { GuardianApprovalReviewAction } from "./GuardianApprovalReviewActio * shape is expected to change soon. */ export type ItemGuardianApprovalReviewCompletedNotification = { threadId: string, turnId: string, +/** + * Unix timestamp (in milliseconds) when this review started. + */ +startedAtMs: number, +/** + * Unix timestamp (in milliseconds) when this review completed. + */ +completedAtMs: number, /** * Stable identifier for this review. */ diff --git a/src/app-server/v2/ItemGuardianApprovalReviewStartedNotification.ts b/src/app-server/v2/ItemGuardianApprovalReviewStartedNotification.ts index 81ba2cde..92d34fde 100644 --- a/src/app-server/v2/ItemGuardianApprovalReviewStartedNotification.ts +++ b/src/app-server/v2/ItemGuardianApprovalReviewStartedNotification.ts @@ -9,6 +9,10 @@ import type { GuardianApprovalReviewAction } from "./GuardianApprovalReviewActio * shape is expected to change soon. */ export type ItemGuardianApprovalReviewStartedNotification = { threadId: string, turnId: string, +/** + * Unix timestamp (in milliseconds) when this review started. + */ +startedAtMs: number, /** * Stable identifier for this review. */ diff --git a/src/app-server/v2/ItemStartedNotification.ts b/src/app-server/v2/ItemStartedNotification.ts index 5cf1e7b9..9ec8af09 100644 --- a/src/app-server/v2/ItemStartedNotification.ts +++ b/src/app-server/v2/ItemStartedNotification.ts @@ -3,4 +3,8 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { ThreadItem } from "./ThreadItem"; -export type ItemStartedNotification = { item: ThreadItem, threadId: string, turnId: string, }; +export type ItemStartedNotification = { item: ThreadItem, threadId: string, turnId: string, +/** + * Unix timestamp (in milliseconds) when this item lifecycle started. + */ +startedAtMs: number, }; diff --git a/src/app-server/v2/ManagedHooksRequirements.ts b/src/app-server/v2/ManagedHooksRequirements.ts index 3386d16e..cde0e4a5 100644 --- a/src/app-server/v2/ManagedHooksRequirements.ts +++ b/src/app-server/v2/ManagedHooksRequirements.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 { ConfiguredHookMatcherGroup } from "./ConfiguredHookMatcherGroup"; -export type ManagedHooksRequirements = { managedDir: string | null, windowsManagedDir: string | null, PreToolUse: Array, PermissionRequest: Array, PostToolUse: Array, SessionStart: Array, UserPromptSubmit: Array, Stop: Array, }; +export type ManagedHooksRequirements = { managedDir: string | null, windowsManagedDir: string | null, PreToolUse: Array, PermissionRequest: Array, PostToolUse: Array, PreCompact: Array, PostCompact: Array, SessionStart: Array, UserPromptSubmit: Array, Stop: Array, }; diff --git a/src/app-server/v2/Model.ts b/src/app-server/v2/Model.ts index f4cf5a94..2354ffbf 100644 --- a/src/app-server/v2/Model.ts +++ b/src/app-server/v2/Model.ts @@ -4,7 +4,12 @@ import type { InputModality } from "../InputModality"; import type { ReasoningEffort } from "../ReasoningEffort"; import type { ModelAvailabilityNux } from "./ModelAvailabilityNux"; +import type { ModelServiceTier } from "./ModelServiceTier"; import type { ModelUpgradeInfo } from "./ModelUpgradeInfo"; 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, hidden: boolean, supportedReasoningEfforts: Array, defaultReasoningEffort: ReasoningEffort, inputModalities: Array, supportsPersonality: boolean, additionalSpeedTiers: Array, isDefault: boolean, }; +export type Model = { id: string, model: string, upgrade: string | null, upgradeInfo: ModelUpgradeInfo | null, availabilityNux: ModelAvailabilityNux | null, displayName: string, description: string, hidden: boolean, supportedReasoningEfforts: Array, defaultReasoningEffort: ReasoningEffort, inputModalities: Array, supportsPersonality: boolean, +/** + * Deprecated: use `serviceTiers` instead. + */ +additionalSpeedTiers: Array, serviceTiers: Array, isDefault: boolean, }; diff --git a/src/app-server/v2/ModelServiceTier.ts b/src/app-server/v2/ModelServiceTier.ts new file mode 100644 index 00000000..09693d07 --- /dev/null +++ b/src/app-server/v2/ModelServiceTier.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 ModelServiceTier = { id: string, name: string, description: string, }; diff --git a/src/app-server/v2/PermissionsRequestApprovalParams.ts b/src/app-server/v2/PermissionsRequestApprovalParams.ts index 308670a8..509f6092 100644 --- a/src/app-server/v2/PermissionsRequestApprovalParams.ts +++ b/src/app-server/v2/PermissionsRequestApprovalParams.ts @@ -4,4 +4,8 @@ import type { AbsolutePathBuf } from "../AbsolutePathBuf"; import type { RequestPermissionProfile } from "./RequestPermissionProfile"; -export type PermissionsRequestApprovalParams = { threadId: string, turnId: string, itemId: string, cwd: AbsolutePathBuf, reason: string | null, permissions: RequestPermissionProfile, }; +export type PermissionsRequestApprovalParams = { threadId: string, turnId: string, itemId: string, +/** + * Unix timestamp (in milliseconds) when this approval request started. + */ +startedAtMs: number, cwd: AbsolutePathBuf, reason: string | null, permissions: RequestPermissionProfile, }; diff --git a/src/app-server/v2/PluginAvailability.ts b/src/app-server/v2/PluginAvailability.ts new file mode 100644 index 00000000..bec0b88c --- /dev/null +++ b/src/app-server/v2/PluginAvailability.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 PluginAvailability = "AVAILABLE" | "DISABLED_BY_ADMIN"; diff --git a/src/app-server/v2/PluginDetail.ts b/src/app-server/v2/PluginDetail.ts index eb0f38ca..64836c87 100644 --- a/src/app-server/v2/PluginDetail.ts +++ b/src/app-server/v2/PluginDetail.ts @@ -3,7 +3,8 @@ // 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 { AppSummary } from "./AppSummary"; +import type { PluginHookSummary } from "./PluginHookSummary"; import type { PluginSummary } from "./PluginSummary"; import type { SkillSummary } from "./SkillSummary"; -export type PluginDetail = { marketplaceName: string, marketplacePath: AbsolutePathBuf | null, summary: PluginSummary, description: string | null, skills: Array, apps: Array, mcpServers: Array, }; +export type PluginDetail = { marketplaceName: string, marketplacePath: AbsolutePathBuf | null, summary: PluginSummary, description: string | null, skills: Array, hooks: Array, apps: Array, mcpServers: Array, }; diff --git a/src/app-server/v2/PluginHookSummary.ts b/src/app-server/v2/PluginHookSummary.ts new file mode 100644 index 00000000..48046bbd --- /dev/null +++ b/src/app-server/v2/PluginHookSummary.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 { HookEventName } from "./HookEventName"; + +export type PluginHookSummary = { key: string, eventName: HookEventName, }; diff --git a/src/app-server/v2/PluginListMarketplaceKind.ts b/src/app-server/v2/PluginListMarketplaceKind.ts new file mode 100644 index 00000000..6ff6161f --- /dev/null +++ b/src/app-server/v2/PluginListMarketplaceKind.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 PluginListMarketplaceKind = "local" | "workspace-directory" | "shared-with-me"; diff --git a/src/app-server/v2/PluginListParams.ts b/src/app-server/v2/PluginListParams.ts index dcf23796..6dd86b8a 100644 --- a/src/app-server/v2/PluginListParams.ts +++ b/src/app-server/v2/PluginListParams.ts @@ -2,10 +2,16 @@ // 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 { PluginListMarketplaceKind } from "./PluginListMarketplaceKind"; export type PluginListParams = { /** * Optional working directories used to discover repo marketplaces. When omitted, * only home-scoped marketplaces and the official curated marketplace are considered. */ -cwds?: Array | null, }; +cwds?: Array | null, +/** + * Optional marketplace kind filter. When omitted, only local marketplaces are queried, plus + * the default remote catalog when enabled by feature flag. + */ +marketplaceKinds?: Array | null, }; diff --git a/src/app-server/v2/PluginShareCheckoutParams.ts b/src/app-server/v2/PluginShareCheckoutParams.ts new file mode 100644 index 00000000..5bd14aa6 --- /dev/null +++ b/src/app-server/v2/PluginShareCheckoutParams.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 PluginShareCheckoutParams = { remotePluginId: string, }; diff --git a/src/app-server/v2/PluginShareCheckoutResponse.ts b/src/app-server/v2/PluginShareCheckoutResponse.ts new file mode 100644 index 00000000..d27af9e2 --- /dev/null +++ b/src/app-server/v2/PluginShareCheckoutResponse.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 { AbsolutePathBuf } from "../AbsolutePathBuf"; + +export type PluginShareCheckoutResponse = { remotePluginId: string, pluginId: string, pluginName: string, pluginPath: AbsolutePathBuf, marketplaceName: string, marketplacePath: AbsolutePathBuf, remoteVersion: string | null, }; diff --git a/src/app-server/v2/PluginShareContext.ts b/src/app-server/v2/PluginShareContext.ts new file mode 100644 index 00000000..99b8f466 --- /dev/null +++ b/src/app-server/v2/PluginShareContext.ts @@ -0,0 +1,11 @@ +// 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 { PluginShareDiscoverability } from "./PluginShareDiscoverability"; +import type { PluginSharePrincipal } from "./PluginSharePrincipal"; + +export type PluginShareContext = { remotePluginId: string, +/** + * Version of the remote shared plugin release when available. + */ +remoteVersion: string | null, discoverability: PluginShareDiscoverability | null, shareUrl: string | null, creatorAccountUserId: string | null, creatorName: string | null, sharePrincipals: Array | null, }; diff --git a/src/app-server/v2/PluginShareDeleteParams.ts b/src/app-server/v2/PluginShareDeleteParams.ts new file mode 100644 index 00000000..b0adaf2d --- /dev/null +++ b/src/app-server/v2/PluginShareDeleteParams.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 PluginShareDeleteParams = { remotePluginId: string, }; diff --git a/src/app-server/v2/PluginShareDeleteResponse.ts b/src/app-server/v2/PluginShareDeleteResponse.ts new file mode 100644 index 00000000..23102683 --- /dev/null +++ b/src/app-server/v2/PluginShareDeleteResponse.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 PluginShareDeleteResponse = Record; diff --git a/src/app-server/v2/PluginShareDiscoverability.ts b/src/app-server/v2/PluginShareDiscoverability.ts new file mode 100644 index 00000000..8c224216 --- /dev/null +++ b/src/app-server/v2/PluginShareDiscoverability.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 PluginShareDiscoverability = "LISTED" | "UNLISTED" | "PRIVATE"; diff --git a/src/app-server/v2/PluginShareListItem.ts b/src/app-server/v2/PluginShareListItem.ts new file mode 100644 index 00000000..aa5aa4ee --- /dev/null +++ b/src/app-server/v2/PluginShareListItem.ts @@ -0,0 +1,7 @@ +// 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"; +import type { PluginSummary } from "./PluginSummary"; + +export type PluginShareListItem = { plugin: PluginSummary, localPluginPath: AbsolutePathBuf | null, }; diff --git a/src/app-server/v2/PluginShareListParams.ts b/src/app-server/v2/PluginShareListParams.ts new file mode 100644 index 00000000..167ace7a --- /dev/null +++ b/src/app-server/v2/PluginShareListParams.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 PluginShareListParams = Record; diff --git a/src/app-server/v2/PluginShareListResponse.ts b/src/app-server/v2/PluginShareListResponse.ts new file mode 100644 index 00000000..50b324f5 --- /dev/null +++ b/src/app-server/v2/PluginShareListResponse.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 { PluginShareListItem } from "./PluginShareListItem"; + +export type PluginShareListResponse = { data: Array, }; diff --git a/src/app-server/v2/PluginSharePrincipal.ts b/src/app-server/v2/PluginSharePrincipal.ts new file mode 100644 index 00000000..dd0dff20 --- /dev/null +++ b/src/app-server/v2/PluginSharePrincipal.ts @@ -0,0 +1,7 @@ +// 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 { PluginSharePrincipalRole } from "./PluginSharePrincipalRole"; +import type { PluginSharePrincipalType } from "./PluginSharePrincipalType"; + +export type PluginSharePrincipal = { principalType: PluginSharePrincipalType, principalId: string, role: PluginSharePrincipalRole, name: string, }; diff --git a/src/app-server/v2/PluginSharePrincipalRole.ts b/src/app-server/v2/PluginSharePrincipalRole.ts new file mode 100644 index 00000000..0a022a0b --- /dev/null +++ b/src/app-server/v2/PluginSharePrincipalRole.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 PluginSharePrincipalRole = "reader" | "editor" | "owner"; diff --git a/src/app-server/v2/PluginSharePrincipalType.ts b/src/app-server/v2/PluginSharePrincipalType.ts new file mode 100644 index 00000000..e54c129c --- /dev/null +++ b/src/app-server/v2/PluginSharePrincipalType.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 PluginSharePrincipalType = "user" | "group" | "workspace"; diff --git a/src/app-server/v2/PluginShareSaveParams.ts b/src/app-server/v2/PluginShareSaveParams.ts new file mode 100644 index 00000000..c8df0d6c --- /dev/null +++ b/src/app-server/v2/PluginShareSaveParams.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. +import type { AbsolutePathBuf } from "../AbsolutePathBuf"; +import type { PluginShareDiscoverability } from "./PluginShareDiscoverability"; +import type { PluginShareTarget } from "./PluginShareTarget"; + +export type PluginShareSaveParams = { pluginPath: AbsolutePathBuf, remotePluginId?: string | null, discoverability?: PluginShareDiscoverability | null, shareTargets?: Array | null, }; diff --git a/src/app-server/v2/PluginShareSaveResponse.ts b/src/app-server/v2/PluginShareSaveResponse.ts new file mode 100644 index 00000000..b53ace0e --- /dev/null +++ b/src/app-server/v2/PluginShareSaveResponse.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 PluginShareSaveResponse = { remotePluginId: string, shareUrl: string, }; diff --git a/src/app-server/v2/PluginShareTarget.ts b/src/app-server/v2/PluginShareTarget.ts new file mode 100644 index 00000000..66d22ef4 --- /dev/null +++ b/src/app-server/v2/PluginShareTarget.ts @@ -0,0 +1,7 @@ +// 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 { PluginSharePrincipalType } from "./PluginSharePrincipalType"; +import type { PluginShareTargetRole } from "./PluginShareTargetRole"; + +export type PluginShareTarget = { principalType: PluginSharePrincipalType, principalId: string, role: PluginShareTargetRole, }; diff --git a/src/app-server/v2/PluginShareTargetRole.ts b/src/app-server/v2/PluginShareTargetRole.ts new file mode 100644 index 00000000..95eee17b --- /dev/null +++ b/src/app-server/v2/PluginShareTargetRole.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 PluginShareTargetRole = "reader" | "editor"; diff --git a/src/app-server/v2/PluginShareUpdateDiscoverability.ts b/src/app-server/v2/PluginShareUpdateDiscoverability.ts new file mode 100644 index 00000000..fd601987 --- /dev/null +++ b/src/app-server/v2/PluginShareUpdateDiscoverability.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 PluginShareUpdateDiscoverability = "UNLISTED" | "PRIVATE"; diff --git a/src/app-server/v2/PluginShareUpdateTargetsParams.ts b/src/app-server/v2/PluginShareUpdateTargetsParams.ts new file mode 100644 index 00000000..eecd4be8 --- /dev/null +++ b/src/app-server/v2/PluginShareUpdateTargetsParams.ts @@ -0,0 +1,7 @@ +// 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 { PluginShareTarget } from "./PluginShareTarget"; +import type { PluginShareUpdateDiscoverability } from "./PluginShareUpdateDiscoverability"; + +export type PluginShareUpdateTargetsParams = { remotePluginId: string, discoverability: PluginShareUpdateDiscoverability, shareTargets: Array, }; diff --git a/src/app-server/v2/PluginShareUpdateTargetsResponse.ts b/src/app-server/v2/PluginShareUpdateTargetsResponse.ts new file mode 100644 index 00000000..0ce72246 --- /dev/null +++ b/src/app-server/v2/PluginShareUpdateTargetsResponse.ts @@ -0,0 +1,7 @@ +// 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 { PluginShareDiscoverability } from "./PluginShareDiscoverability"; +import type { PluginSharePrincipal } from "./PluginSharePrincipal"; + +export type PluginShareUpdateTargetsResponse = { principals: Array, discoverability: PluginShareDiscoverability, }; diff --git a/src/app-server/v2/PluginSkillReadParams.ts b/src/app-server/v2/PluginSkillReadParams.ts new file mode 100644 index 00000000..54a63599 --- /dev/null +++ b/src/app-server/v2/PluginSkillReadParams.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 PluginSkillReadParams = { remoteMarketplaceName: string, remotePluginId: string, skillName: string, }; diff --git a/src/app-server/v2/PluginSkillReadResponse.ts b/src/app-server/v2/PluginSkillReadResponse.ts new file mode 100644 index 00000000..0ae37982 --- /dev/null +++ b/src/app-server/v2/PluginSkillReadResponse.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 PluginSkillReadResponse = { contents: string | null, }; diff --git a/src/app-server/v2/PluginSummary.ts b/src/app-server/v2/PluginSummary.ts index 1eb443c5..268349cb 100644 --- a/src/app-server/v2/PluginSummary.ts +++ b/src/app-server/v2/PluginSummary.ts @@ -2,8 +2,26 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { PluginAuthPolicy } from "./PluginAuthPolicy"; +import type { PluginAvailability } from "./PluginAvailability"; import type { PluginInstallPolicy } from "./PluginInstallPolicy"; import type { PluginInterface } from "./PluginInterface"; +import type { PluginShareContext } from "./PluginShareContext"; import type { PluginSource } from "./PluginSource"; -export type PluginSummary = { id: string, name: string, source: PluginSource, installed: boolean, enabled: boolean, installPolicy: PluginInstallPolicy, authPolicy: PluginAuthPolicy, interface: PluginInterface | null, }; +export type PluginSummary = { id: string, +/** + * Backend remote plugin identifier when available. + */ +remotePluginId: string | null, +/** + * Version of the locally materialized plugin package when available. + */ +localVersion: string | null, name: string, +/** + * Remote sharing context associated with this plugin when available. + */ +shareContext: PluginShareContext | null, source: PluginSource, installed: boolean, enabled: boolean, installPolicy: PluginInstallPolicy, authPolicy: PluginAuthPolicy, +/** + * Availability state for installing and using the plugin. + */ +availability: PluginAvailability, interface: PluginInterface | null, keywords: Array, }; diff --git a/src/app-server/v2/ProcessExitedNotification.ts b/src/app-server/v2/ProcessExitedNotification.ts new file mode 100644 index 00000000..0d826334 --- /dev/null +++ b/src/app-server/v2/ProcessExitedNotification.ts @@ -0,0 +1,42 @@ +// 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. + +/** + * Final process exit notification for `process/spawn`. + */ +export type ProcessExitedNotification = { +/** + * Client-supplied, connection-scoped `processHandle` from `process/spawn`. + */ +processHandle: string, +/** + * Process exit code. + */ +exitCode: number, +/** + * Buffered stdout capture. + * + * Empty when stdout was streamed via `process/outputDelta`. + */ +stdout: string, +/** + * Whether stdout reached `outputBytesCap`. + * + * In streaming mode, stdout is empty and cap state is also reported on the + * final stdout `process/outputDelta` notification. + */ +stdoutCapReached: boolean, +/** + * Buffered stderr capture. + * + * Empty when stderr was streamed via `process/outputDelta`. + */ +stderr: string, +/** + * Whether stderr reached `outputBytesCap`. + * + * In streaming mode, stderr is empty and cap state is also reported on the + * final stderr `process/outputDelta` notification. + */ +stderrCapReached: boolean, }; diff --git a/src/app-server/v2/ProcessOutputDeltaNotification.ts b/src/app-server/v2/ProcessOutputDeltaNotification.ts new file mode 100644 index 00000000..46369e39 --- /dev/null +++ b/src/app-server/v2/ProcessOutputDeltaNotification.ts @@ -0,0 +1,26 @@ +// 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 { ProcessOutputStream } from "./ProcessOutputStream"; + +/** + * Base64-encoded output chunk emitted for a streaming `process/spawn` request. + */ +export type ProcessOutputDeltaNotification = { +/** + * Client-supplied, connection-scoped `processHandle` from `process/spawn`. + */ +processHandle: string, +/** + * Output stream this chunk belongs to. + */ +stream: ProcessOutputStream, +/** + * Base64-encoded output bytes. + */ +deltaBase64: string, +/** + * True on the final streamed chunk for this stream when output was + * truncated by `outputBytesCap`. + */ +capReached: boolean, }; diff --git a/src/app-server/v2/ProcessOutputStream.ts b/src/app-server/v2/ProcessOutputStream.ts new file mode 100644 index 00000000..1bb550d9 --- /dev/null +++ b/src/app-server/v2/ProcessOutputStream.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. + +/** + * Stream label for `process/outputDelta` notifications. + */ +export type ProcessOutputStream = "stdout" | "stderr"; diff --git a/src/app-server/v2/ProcessTerminalSize.ts b/src/app-server/v2/ProcessTerminalSize.ts new file mode 100644 index 00000000..1c4b4670 --- /dev/null +++ b/src/app-server/v2/ProcessTerminalSize.ts @@ -0,0 +1,16 @@ +// 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. + +/** + * PTY size in character cells for `process/spawn` PTY sessions. + */ +export type ProcessTerminalSize = { +/** + * Terminal height in character cells. + */ +rows: number, +/** + * Terminal width in character cells. + */ +cols: number, }; diff --git a/src/app-server/v2/ProfileV2.ts b/src/app-server/v2/ProfileV2.ts index 7afe3e0c..d0503870 100644 --- a/src/app-server/v2/ProfileV2.ts +++ b/src/app-server/v2/ProfileV2.ts @@ -3,7 +3,6 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { ReasoningEffort } from "../ReasoningEffort"; import type { ReasoningSummary } from "../ReasoningSummary"; -import type { ServiceTier } from "../ServiceTier"; import type { Verbosity } from "../Verbosity"; import type { WebSearchMode } from "../WebSearchMode"; import type { JsonValue } from "../serde_json/JsonValue"; @@ -16,4 +15,4 @@ export type ProfileV2 = {model: string | null, model_provider: string | null, ap * are routed for review. If omitted, the enclosing config default is * used. */ -approvals_reviewer: ApprovalsReviewer | null, service_tier: ServiceTier | null, model_reasoning_effort: ReasoningEffort | null, model_reasoning_summary: ReasoningSummary | null, model_verbosity: Verbosity | null, web_search: WebSearchMode | null, tools: ToolsV2 | null, chatgpt_base_url: string | null} & ({ [key in string]?: number | string | boolean | Array | { [key in string]?: JsonValue } | null }); +approvals_reviewer: ApprovalsReviewer | null, service_tier: string | null, model_reasoning_effort: ReasoningEffort | null, model_reasoning_summary: ReasoningSummary | null, model_verbosity: Verbosity | null, web_search: WebSearchMode | null, tools: ToolsV2 | null, chatgpt_base_url: string | null} & ({ [key in string]?: number | string | boolean | Array | { [key in string]?: JsonValue } | null }); diff --git a/src/app-server/v2/RemoteControlStatusChangedNotification.ts b/src/app-server/v2/RemoteControlStatusChangedNotification.ts index 16a91385..403b0e64 100644 --- a/src/app-server/v2/RemoteControlStatusChangedNotification.ts +++ b/src/app-server/v2/RemoteControlStatusChangedNotification.ts @@ -4,6 +4,6 @@ import type { RemoteControlConnectionStatus } from "./RemoteControlConnectionStatus"; /** - * Current remote-control connection status and environment id exposed to clients. + * Current remote-control connection status and remote identity exposed to clients. */ -export type RemoteControlStatusChangedNotification = { status: RemoteControlConnectionStatus, environmentId: string | null, }; +export type RemoteControlStatusChangedNotification = { status: RemoteControlConnectionStatus, serverName: string, installationId: string, environmentId: string | null, }; diff --git a/src/app-server/v2/SkillsListParams.ts b/src/app-server/v2/SkillsListParams.ts index ad714a32..4adeb38b 100644 --- a/src/app-server/v2/SkillsListParams.ts +++ b/src/app-server/v2/SkillsListParams.ts @@ -1,7 +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 { SkillsListExtraRootsForCwd } from "./SkillsListExtraRootsForCwd"; export type SkillsListParams = { /** @@ -11,8 +10,4 @@ cwds?: Array, /** * When true, bypass the skills cache and re-scan skills from disk. */ -forceReload?: boolean, -/** - * Optional per-cwd extra roots to scan as user-scoped skills. - */ -perCwdExtraUserRoots?: Array | null, }; +forceReload?: boolean, }; diff --git a/src/app-server/v2/Thread.ts b/src/app-server/v2/Thread.ts index 8c4c9394..d917094e 100644 --- a/src/app-server/v2/Thread.ts +++ b/src/app-server/v2/Thread.ts @@ -4,10 +4,15 @@ import type { AbsolutePathBuf } from "../AbsolutePathBuf"; import type { GitInfo } from "./GitInfo"; import type { SessionSource } from "./SessionSource"; +import type { ThreadSource } from "./ThreadSource"; import type { ThreadStatus } from "./ThreadStatus"; import type { Turn } from "./Turn"; export type Thread = { id: string, +/** + * Session id shared by threads that belong to the same session tree. + */ +sessionId: string, /** * Source thread id when this thread was created by forking another thread. */ @@ -52,6 +57,10 @@ cliVersion: string, * Origin of the thread (CLI, VSCode, codex exec, codex app-server, etc.). */ source: SessionSource, +/** + * Optional analytics source classification for this thread. + */ +threadSource: ThreadSource | null, /** * Optional random unique nickname assigned to an AgentControl-spawned sub-agent. */ diff --git a/src/app-server/v2/ThreadForkParams.ts b/src/app-server/v2/ThreadForkParams.ts index a40e406d..6076a4bb 100644 --- a/src/app-server/v2/ThreadForkParams.ts +++ b/src/app-server/v2/ThreadForkParams.ts @@ -1,11 +1,11 @@ // 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 { ServiceTier } from "../ServiceTier"; import type { JsonValue } from "../serde_json/JsonValue"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; import type { AskForApproval } from "./AskForApproval"; import type { SandboxMode } from "./SandboxMode"; +import type { ThreadSource } from "./ThreadSource"; /** * There are two ways to fork a thread: @@ -19,13 +19,11 @@ import type { SandboxMode } from "./SandboxMode"; export type ThreadForkParams = {threadId: string, /** * Configuration overrides for the forked thread, if any. */ -model?: string | null, modelProvider?: string | null, serviceTier?: ServiceTier | null | null, cwd?: string | null, approvalPolicy?: AskForApproval | null, /** +model?: string | null, modelProvider?: string | null, serviceTier?: string | null | null, cwd?: string | null, approvalPolicy?: AskForApproval | null, /** * 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, ephemeral?: boolean, /** - * When true, return only thread metadata and live fork state without - * populating `thread.turns`. This is useful when the client plans to call - * `thread/turns/list` immediately after forking. + * Optional client-supplied analytics source classification for this forked thread. */ -excludeTurns?: boolean}; +threadSource?: ThreadSource | null}; diff --git a/src/app-server/v2/ThreadForkResponse.ts b/src/app-server/v2/ThreadForkResponse.ts index ddcef104..c5b1201c 100644 --- a/src/app-server/v2/ThreadForkResponse.ts +++ b/src/app-server/v2/ThreadForkResponse.ts @@ -3,13 +3,12 @@ // 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 { ReasoningEffort } from "../ReasoningEffort"; -import type { ServiceTier } from "../ServiceTier"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; 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: ServiceTier | null, cwd: AbsolutePathBuf, /** +export type ThreadForkResponse = {thread: Thread, model: string, modelProvider: string, serviceTier: string | null, cwd: AbsolutePathBuf, /** * Instruction source files currently loaded for this thread. */ instructionSources: Array, approvalPolicy: AskForApproval, /** @@ -17,7 +16,6 @@ instructionSources: Array, approvalPolicy: AskForApproval, /** */ approvalsReviewer: ApprovalsReviewer, /** * Legacy sandbox policy retained for compatibility. Experimental clients - * should prefer `permissionProfile` when they need exact runtime - * permissions. + * should prefer `activePermissionProfile` for profile provenance. */ sandbox: SandboxPolicy, reasoningEffort: ReasoningEffort | null}; diff --git a/src/app-server/v2/ThreadRealtimeStartedNotification.ts b/src/app-server/v2/ThreadRealtimeStartedNotification.ts index d4941006..56763777 100644 --- a/src/app-server/v2/ThreadRealtimeStartedNotification.ts +++ b/src/app-server/v2/ThreadRealtimeStartedNotification.ts @@ -6,4 +6,4 @@ import type { RealtimeConversationVersion } from "../RealtimeConversationVersion /** * EXPERIMENTAL - emitted when thread realtime startup is accepted. */ -export type ThreadRealtimeStartedNotification = { threadId: string, sessionId: string | null, version: RealtimeConversationVersion, }; +export type ThreadRealtimeStartedNotification = { threadId: string, realtimeSessionId: string | null, version: RealtimeConversationVersion, }; diff --git a/src/app-server/v2/ThreadResumeParams.ts b/src/app-server/v2/ThreadResumeParams.ts index f9821585..6d1dbdca 100644 --- a/src/app-server/v2/ThreadResumeParams.ts +++ b/src/app-server/v2/ThreadResumeParams.ts @@ -2,7 +2,6 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { Personality } from "../Personality"; -import type { ServiceTier } from "../ServiceTier"; import type { JsonValue } from "../serde_json/JsonValue"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; import type { AskForApproval } from "./AskForApproval"; @@ -22,13 +21,8 @@ import type { SandboxMode } from "./SandboxMode"; export type ThreadResumeParams = {threadId: string, /** * Configuration overrides for the resumed thread, if any. */ -model?: string | null, modelProvider?: string | null, serviceTier?: ServiceTier | null | null, cwd?: string | null, approvalPolicy?: AskForApproval | null, /** +model?: string | null, modelProvider?: string | null, serviceTier?: string | null | null, cwd?: string | null, approvalPolicy?: AskForApproval | null, /** * 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, /** - * 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. - */ -excludeTurns?: boolean}; +approvalsReviewer?: ApprovalsReviewer | null, sandbox?: SandboxMode | null, config?: { [key in string]?: JsonValue } | null, baseInstructions?: string | null, developerInstructions?: string | null, personality?: Personality | null}; diff --git a/src/app-server/v2/ThreadResumeResponse.ts b/src/app-server/v2/ThreadResumeResponse.ts index f7627c07..7a4f9037 100644 --- a/src/app-server/v2/ThreadResumeResponse.ts +++ b/src/app-server/v2/ThreadResumeResponse.ts @@ -3,13 +3,12 @@ // 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 { ReasoningEffort } from "../ReasoningEffort"; -import type { ServiceTier } from "../ServiceTier"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; 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: ServiceTier | null, cwd: AbsolutePathBuf, /** +export type ThreadResumeResponse = {thread: Thread, model: string, modelProvider: string, serviceTier: string | null, cwd: AbsolutePathBuf, /** * Instruction source files currently loaded for this thread. */ instructionSources: Array, approvalPolicy: AskForApproval, /** @@ -17,7 +16,6 @@ instructionSources: Array, approvalPolicy: AskForApproval, /** */ approvalsReviewer: ApprovalsReviewer, /** * Legacy sandbox policy retained for compatibility. Experimental clients - * should prefer `permissionProfile` when they need exact runtime - * permissions. + * should prefer `activePermissionProfile` for profile provenance. */ sandbox: SandboxPolicy, reasoningEffort: ReasoningEffort | null}; diff --git a/src/app-server/v2/ThreadSource.ts b/src/app-server/v2/ThreadSource.ts new file mode 100644 index 00000000..8f555248 --- /dev/null +++ b/src/app-server/v2/ThreadSource.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 ThreadSource = "user" | "subagent" | "memory_consolidation"; diff --git a/src/app-server/v2/ThreadStartParams.ts b/src/app-server/v2/ThreadStartParams.ts index 374ac2e6..30509ef6 100644 --- a/src/app-server/v2/ThreadStartParams.ts +++ b/src/app-server/v2/ThreadStartParams.ts @@ -2,15 +2,18 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { Personality } from "../Personality"; -import type { ServiceTier } from "../ServiceTier"; import type { JsonValue } from "../serde_json/JsonValue"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; import type { AskForApproval } from "./AskForApproval"; import type { SandboxMode } from "./SandboxMode"; +import type { ThreadSource } from "./ThreadSource"; import type { ThreadStartSource } from "./ThreadStartSource"; -export type ThreadStartParams = {model?: string | null, modelProvider?: string | null, serviceTier?: ServiceTier | null | null, cwd?: string | null, approvalPolicy?: AskForApproval | null, /** +export type ThreadStartParams = {model?: string | null, modelProvider?: string | null, serviceTier?: string | null | null, cwd?: string | null, approvalPolicy?: AskForApproval | null, /** * 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, 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/app-server/v2/ThreadStartResponse.ts b/src/app-server/v2/ThreadStartResponse.ts index ce28a4a1..38859a38 100644 --- a/src/app-server/v2/ThreadStartResponse.ts +++ b/src/app-server/v2/ThreadStartResponse.ts @@ -3,13 +3,12 @@ // 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 { ReasoningEffort } from "../ReasoningEffort"; -import type { ServiceTier } from "../ServiceTier"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; 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: ServiceTier | null, cwd: AbsolutePathBuf, /** +export type ThreadStartResponse = {thread: Thread, model: string, modelProvider: string, serviceTier: string | null, cwd: AbsolutePathBuf, /** * Instruction source files currently loaded for this thread. */ instructionSources: Array, approvalPolicy: AskForApproval, /** @@ -17,7 +16,6 @@ instructionSources: Array, approvalPolicy: AskForApproval, /** */ approvalsReviewer: ApprovalsReviewer, /** * Legacy sandbox policy retained for compatibility. Experimental clients - * should prefer `permissionProfile` when they need exact runtime - * permissions. + * should prefer `activePermissionProfile` for profile provenance. */ sandbox: SandboxPolicy, reasoningEffort: ReasoningEffort | null}; diff --git a/src/app-server/v2/ThreadTurnsListParams.ts b/src/app-server/v2/ThreadTurnsListParams.ts deleted file mode 100644 index 2c507bc9..00000000 --- a/src/app-server/v2/ThreadTurnsListParams.ts +++ /dev/null @@ -1,18 +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 { SortDirection } from "./SortDirection"; - -export type ThreadTurnsListParams = { threadId: string, -/** - * Opaque cursor to pass to the next call to continue after the last turn. - */ -cursor?: string | null, -/** - * Optional turn page size. - */ -limit?: number | null, -/** - * Optional turn pagination direction; defaults to descending. - */ -sortDirection?: SortDirection | null, }; diff --git a/src/app-server/v2/ThreadTurnsListResponse.ts b/src/app-server/v2/ThreadTurnsListResponse.ts deleted file mode 100644 index 1dbed91a..00000000 --- a/src/app-server/v2/ThreadTurnsListResponse.ts +++ /dev/null @@ -1,18 +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 { Turn } from "./Turn"; - -export type ThreadTurnsListResponse = { data: Array, -/** - * Opaque cursor to pass to the next call to continue after the last turn. - * if None, there are no more turns to return. - */ -nextCursor: string | null, -/** - * Opaque cursor to pass as `cursor` when reversing `sortDirection`. - * This is only populated when the page contains at least one turn. - * Use it with the opposite `sortDirection` to include the anchor turn again - * and catch updates to that turn. - */ -backwardsCursor: string | null, }; diff --git a/src/app-server/v2/ToolsV2.ts b/src/app-server/v2/ToolsV2.ts index 784991f0..13dc06e9 100644 --- a/src/app-server/v2/ToolsV2.ts +++ b/src/app-server/v2/ToolsV2.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 { WebSearchToolConfig } from "../WebSearchToolConfig"; -export type ToolsV2 = { web_search: WebSearchToolConfig | null, view_image: boolean | null, }; +export type ToolsV2 = { web_search: WebSearchToolConfig | null, }; diff --git a/src/app-server/v2/Turn.ts b/src/app-server/v2/Turn.ts index 844c09c4..6505ec34 100644 --- a/src/app-server/v2/Turn.ts +++ b/src/app-server/v2/Turn.ts @@ -3,15 +3,18 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { ThreadItem } from "./ThreadItem"; import type { TurnError } from "./TurnError"; +import type { TurnItemsView } from "./TurnItemsView"; import type { TurnStatus } from "./TurnStatus"; export type Turn = { id: string, /** - * Only populated on a `thread/resume` or `thread/fork` response. - * For all other responses and notifications returning a Turn, - * the items field will be an empty list. + * Thread items currently included in this turn payload. */ -items: Array, status: TurnStatus, +items: Array, +/** + * Describes how much of `items` has been loaded for this turn. + */ +itemsView: TurnItemsView, status: TurnStatus, /** * Only populated when the Turn's status is failed. */ diff --git a/src/app-server/v2/TurnItemsView.ts b/src/app-server/v2/TurnItemsView.ts new file mode 100644 index 00000000..90569230 --- /dev/null +++ b/src/app-server/v2/TurnItemsView.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 TurnItemsView = "notLoaded" | "summary" | "full"; diff --git a/src/app-server/v2/TurnStartParams.ts b/src/app-server/v2/TurnStartParams.ts index 4af17115..b04919d8 100644 --- a/src/app-server/v2/TurnStartParams.ts +++ b/src/app-server/v2/TurnStartParams.ts @@ -4,7 +4,6 @@ import type { Personality } from "../Personality"; import type { ReasoningEffort } from "../ReasoningEffort"; import type { ReasoningSummary } from "../ReasoningSummary"; -import type { ServiceTier } from "../ServiceTier"; import type { JsonValue } from "../serde_json/JsonValue"; import type { ApprovalsReviewer } from "./ApprovalsReviewer"; import type { AskForApproval } from "./AskForApproval"; @@ -30,7 +29,7 @@ sandboxPolicy?: SandboxPolicy | null, /** model?: string | null, /** * Override the service tier for this turn and subsequent turns. */ -serviceTier?: ServiceTier | null | null, /** +serviceTier?: string | null | null, /** * Override the reasoning effort for this turn and subsequent turns. */ effort?: ReasoningEffort | null, /** diff --git a/src/app-server/v2/WindowsSandboxReadiness.ts b/src/app-server/v2/WindowsSandboxReadiness.ts new file mode 100644 index 00000000..41b1161a --- /dev/null +++ b/src/app-server/v2/WindowsSandboxReadiness.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 WindowsSandboxReadiness = "ready" | "notConfigured" | "updateRequired"; diff --git a/src/app-server/v2/WindowsSandboxReadinessResponse.ts b/src/app-server/v2/WindowsSandboxReadinessResponse.ts new file mode 100644 index 00000000..bc42a1d9 --- /dev/null +++ b/src/app-server/v2/WindowsSandboxReadinessResponse.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 { WindowsSandboxReadiness } from "./WindowsSandboxReadiness"; + +export type WindowsSandboxReadinessResponse = { status: WindowsSandboxReadiness, }; diff --git a/src/app-server/v2/index.ts b/src/app-server/v2/index.ts index f205e056..9717ed46 100644 --- a/src/app-server/v2/index.ts +++ b/src/app-server/v2/index.ts @@ -31,6 +31,8 @@ export type { AppsDefaultConfig } from "./AppsDefaultConfig"; export type { AppsListParams } from "./AppsListParams"; export type { AppsListResponse } from "./AppsListResponse"; export type { AskForApproval } from "./AskForApproval"; +export type { AttestationGenerateParams } from "./AttestationGenerateParams"; +export type { AttestationGenerateResponse } from "./AttestationGenerateResponse"; export type { AutoReviewDecisionSource } from "./AutoReviewDecisionSource"; export type { ByteRange } from "./ByteRange"; export type { CancelLoginAccountParams } from "./CancelLoginAccountParams"; @@ -128,6 +130,7 @@ export type { FileSystemPath } from "./FileSystemPath"; export type { FileSystemSandboxEntry } from "./FileSystemSandboxEntry"; export type { FileSystemSpecialPath } from "./FileSystemSpecialPath"; export type { FileUpdateChange } from "./FileUpdateChange"; +export type { ForcedChatgptWorkspaceIds } from "./ForcedChatgptWorkspaceIds"; export type { FsChangedNotification } from "./FsChangedNotification"; export type { FsCopyParams } from "./FsCopyParams"; export type { FsCopyResponse } from "./FsCopyResponse"; @@ -177,6 +180,7 @@ export type { HookRunSummary } from "./HookRunSummary"; export type { HookScope } from "./HookScope"; export type { HookSource } from "./HookSource"; export type { HookStartedNotification } from "./HookStartedNotification"; +export type { HookTrustStatus } from "./HookTrustStatus"; export type { HooksListEntry } from "./HooksListEntry"; export type { HooksListParams } from "./HooksListParams"; export type { HooksListResponse } from "./HooksListResponse"; @@ -257,6 +261,7 @@ export type { ModelProviderCapabilitiesReadParams } from "./ModelProviderCapabil export type { ModelProviderCapabilitiesReadResponse } from "./ModelProviderCapabilitiesReadResponse"; export type { ModelRerouteReason } from "./ModelRerouteReason"; export type { ModelReroutedNotification } from "./ModelReroutedNotification"; +export type { ModelServiceTier } from "./ModelServiceTier"; export type { ModelUpgradeInfo } from "./ModelUpgradeInfo"; export type { ModelVerification } from "./ModelVerification"; export type { ModelVerificationNotification } from "./ModelVerificationNotification"; @@ -282,21 +287,49 @@ export type { PermissionsRequestApprovalParams } from "./PermissionsRequestAppro export type { PermissionsRequestApprovalResponse } from "./PermissionsRequestApprovalResponse"; export type { PlanDeltaNotification } from "./PlanDeltaNotification"; export type { PluginAuthPolicy } from "./PluginAuthPolicy"; +export type { PluginAvailability } from "./PluginAvailability"; export type { PluginDetail } from "./PluginDetail"; +export type { PluginHookSummary } from "./PluginHookSummary"; export type { PluginInstallParams } from "./PluginInstallParams"; export type { PluginInstallPolicy } from "./PluginInstallPolicy"; export type { PluginInstallResponse } from "./PluginInstallResponse"; export type { PluginInterface } from "./PluginInterface"; +export type { PluginListMarketplaceKind } from "./PluginListMarketplaceKind"; export type { PluginListParams } from "./PluginListParams"; export type { PluginListResponse } from "./PluginListResponse"; export type { PluginMarketplaceEntry } from "./PluginMarketplaceEntry"; export type { PluginReadParams } from "./PluginReadParams"; export type { PluginReadResponse } from "./PluginReadResponse"; +export type { PluginShareCheckoutParams } from "./PluginShareCheckoutParams"; +export type { PluginShareCheckoutResponse } from "./PluginShareCheckoutResponse"; +export type { PluginShareContext } from "./PluginShareContext"; +export type { PluginShareDeleteParams } from "./PluginShareDeleteParams"; +export type { PluginShareDeleteResponse } from "./PluginShareDeleteResponse"; +export type { PluginShareDiscoverability } from "./PluginShareDiscoverability"; +export type { PluginShareListItem } from "./PluginShareListItem"; +export type { PluginShareListParams } from "./PluginShareListParams"; +export type { PluginShareListResponse } from "./PluginShareListResponse"; +export type { PluginSharePrincipal } from "./PluginSharePrincipal"; +export type { PluginSharePrincipalRole } from "./PluginSharePrincipalRole"; +export type { PluginSharePrincipalType } from "./PluginSharePrincipalType"; +export type { PluginShareSaveParams } from "./PluginShareSaveParams"; +export type { PluginShareSaveResponse } from "./PluginShareSaveResponse"; +export type { PluginShareTarget } from "./PluginShareTarget"; +export type { PluginShareTargetRole } from "./PluginShareTargetRole"; +export type { PluginShareUpdateDiscoverability } from "./PluginShareUpdateDiscoverability"; +export type { PluginShareUpdateTargetsParams } from "./PluginShareUpdateTargetsParams"; +export type { PluginShareUpdateTargetsResponse } from "./PluginShareUpdateTargetsResponse"; +export type { PluginSkillReadParams } from "./PluginSkillReadParams"; +export type { PluginSkillReadResponse } from "./PluginSkillReadResponse"; export type { PluginSource } from "./PluginSource"; export type { PluginSummary } from "./PluginSummary"; export type { PluginUninstallParams } from "./PluginUninstallParams"; export type { PluginUninstallResponse } from "./PluginUninstallResponse"; export type { PluginsMigration } from "./PluginsMigration"; +export type { ProcessExitedNotification } from "./ProcessExitedNotification"; +export type { ProcessOutputDeltaNotification } from "./ProcessOutputDeltaNotification"; +export type { ProcessOutputStream } from "./ProcessOutputStream"; +export type { ProcessTerminalSize } from "./ProcessTerminalSize"; export type { ProductSurface } from "./ProductSurface"; export type { ProfileV2 } from "./ProfileV2"; export type { RateLimitReachedType } from "./RateLimitReachedType"; @@ -406,6 +439,7 @@ export type { ThreadSetNameResponse } from "./ThreadSetNameResponse"; export type { ThreadShellCommandParams } from "./ThreadShellCommandParams"; export type { ThreadShellCommandResponse } from "./ThreadShellCommandResponse"; export type { ThreadSortKey } from "./ThreadSortKey"; +export type { ThreadSource } from "./ThreadSource"; export type { ThreadSourceKind } from "./ThreadSourceKind"; export type { ThreadStartParams } from "./ThreadStartParams"; export type { ThreadStartResponse } from "./ThreadStartResponse"; @@ -415,8 +449,6 @@ export type { ThreadStatus } from "./ThreadStatus"; export type { ThreadStatusChangedNotification } from "./ThreadStatusChangedNotification"; export type { ThreadTokenUsage } from "./ThreadTokenUsage"; export type { ThreadTokenUsageUpdatedNotification } from "./ThreadTokenUsageUpdatedNotification"; -export type { ThreadTurnsListParams } from "./ThreadTurnsListParams"; -export type { ThreadTurnsListResponse } from "./ThreadTurnsListResponse"; export type { ThreadUnarchiveParams } from "./ThreadUnarchiveParams"; export type { ThreadUnarchiveResponse } from "./ThreadUnarchiveResponse"; export type { ThreadUnarchivedNotification } from "./ThreadUnarchivedNotification"; @@ -437,6 +469,7 @@ export type { TurnEnvironmentParams } from "./TurnEnvironmentParams"; export type { TurnError } from "./TurnError"; export type { TurnInterruptParams } from "./TurnInterruptParams"; export type { TurnInterruptResponse } from "./TurnInterruptResponse"; +export type { TurnItemsView } from "./TurnItemsView"; export type { TurnPlanStep } from "./TurnPlanStep"; export type { TurnPlanStepStatus } from "./TurnPlanStepStatus"; export type { TurnPlanUpdatedNotification } from "./TurnPlanUpdatedNotification"; @@ -449,6 +482,8 @@ export type { TurnSteerResponse } from "./TurnSteerResponse"; export type { UserInput } from "./UserInput"; export type { WarningNotification } from "./WarningNotification"; export type { WebSearchAction } from "./WebSearchAction"; +export type { WindowsSandboxReadiness } from "./WindowsSandboxReadiness"; +export type { WindowsSandboxReadinessResponse } from "./WindowsSandboxReadinessResponse"; export type { WindowsSandboxSetupCompletedNotification } from "./WindowsSandboxSetupCompletedNotification"; export type { WindowsSandboxSetupMode } from "./WindowsSandboxSetupMode"; export type { WindowsSandboxSetupStartParams } from "./WindowsSandboxSetupStartParams"; From 6aa0a6a9cc3ebd4ee72c1f15880f87e4ec083d98 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 May 2026 08:35:53 +0000 Subject: [PATCH 2/2] Fix types and tests after Codex update --- src/CodexAcpClient.ts | 17 -------- src/CodexEventHandler.ts | 2 + .../CodexACPAgent/CodexAcpClient.test.ts | 39 ++++++++----------- .../CodexACPAgent/approval-events.test.ts | 18 +++++++-- .../command-action-events.test.ts | 12 ++++++ .../data/send-attachments-turn-start.json | 8 +--- .../CodexACPAgent/elicitation-events.test.ts | 11 ++++-- .../CodexACPAgent/file-change-events.test.ts | 7 ++++ .../CodexACPAgent/list-sessions.test.ts | 4 ++ .../CodexACPAgent/load-session.test.ts | 8 ++++ .../CodexACPAgent/model-filtering.test.ts | 4 ++ .../terminal-output-events.test.ts | 7 ++++ .../CodexACPAgent/token-usage-events.test.ts | 8 ++-- 13 files changed, 86 insertions(+), 59 deletions(-) diff --git a/src/CodexAcpClient.ts b/src/CodexAcpClient.ts index d5b59f35..ea9f89bf 100644 --- a/src/CodexAcpClient.ts +++ b/src/CodexAcpClient.ts @@ -332,14 +332,9 @@ export class CodexAcpClient { if (!cwd) { return; } - const additionalRoots = readAdditionalRoots(meta); await this.codexClient.listSkills({ cwds: [cwd], forceReload: true, - perCwdExtraUserRoots: [{ - cwd: cwd, - extraUserRoots: additionalRoots - }] }); } @@ -659,18 +654,6 @@ interface GatewayConfig { } } -function readAdditionalRoots(meta: Record | null | undefined): string[] { - const rawRoots = meta?.["additionalRoots"]; - if (!Array.isArray(rawRoots)) { - return []; - } - - return Array.from(new Set(rawRoots - .filter((value): value is string => typeof value === "string") - .map(value => value.trim()) - .filter(value => value.length > 0))); -} - function mergeGatewayConfig(config: JsonObject, gatewayConfig: GatewayConfig | null): JsonObject { if (gatewayConfig !== null) { const newConfig = {...config}; diff --git a/src/CodexEventHandler.ts b/src/CodexEventHandler.ts index d752cfc0..7b925d1d 100644 --- a/src/CodexEventHandler.ts +++ b/src/CodexEventHandler.ts @@ -119,6 +119,8 @@ export class CodexEventHandler { return this.handleFuzzyFileSearchSessionCompleted(notification.params); // ignored events case "command/exec/outputDelta": + case "process/outputDelta": + case "process/exited": case "item/autoApprovalReview/started": case "item/autoApprovalReview/completed": case "hook/started": diff --git a/src/__tests__/CodexACPAgent/CodexAcpClient.test.ts b/src/__tests__/CodexACPAgent/CodexAcpClient.test.ts index 27ff179f..7825040c 100644 --- a/src/__tests__/CodexACPAgent/CodexAcpClient.test.ts +++ b/src/__tests__/CodexACPAgent/CodexAcpClient.test.ts @@ -210,7 +210,7 @@ describe('ACP server test', { timeout: 40_000 }, () => { expect(logoutSpy).toHaveBeenCalledWith({}); }); - it('prefetches session additional skill roots before thread start', async () => { + it('prefetches skills before thread start', async () => { const mockFixture = createCodexMockTestFixture(); const codexAcpClient = mockFixture.getCodexAcpClient(); const codexAppServerClient = mockFixture.getCodexAppServerClient(); @@ -240,6 +240,7 @@ describe('ACP server test', { timeout: 40_000 }, () => { inputModalities: ["text"], supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: true }], nextCursor: null @@ -248,18 +249,11 @@ describe('ACP server test', { timeout: 40_000 }, () => { await codexAcpClient.newSession({ cwd: "/workspace", mcpServers: [], - _meta: { - additionalRoots: ["/skills/one", " /skills/two ", 7] - } }); expect(listSkillsSpy).toHaveBeenCalledWith({ cwds: ["/workspace"], forceReload: true, - perCwdExtraUserRoots: [{ - cwd: "/workspace", - extraUserRoots: ["/skills/one", "/skills/two"] - }] }); expect(listSkillsSpy.mock.invocationCallOrder[0]!).toBeLessThan(threadStartSpy.mock.invocationCallOrder[0]!); }); @@ -353,18 +347,18 @@ describe('ACP server test', { timeout: 40_000 }, () => { expect(session.sessionId).toBe("thread-id"); }); - it('prefetches session additional skill roots before turn start', async () => { + it('prefetches skills before turn start', async () => { const mockFixture = createCodexMockTestFixture(); const codexAcpAgent = mockFixture.getCodexAcpAgent(); const codexAppServerClient = mockFixture.getCodexAppServerClient(); const listSkillsSpy = vi.spyOn(codexAppServerClient, "listSkills").mockResolvedValue({ data: [] }); const turnStartSpy = vi.spyOn(codexAppServerClient, "turnStart").mockResolvedValue({ - turn: { id: "turn-id", items: [], status: "inProgress", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "inProgress", error: null } } as any); vi.spyOn(codexAppServerClient, "awaitTurnCompleted").mockResolvedValue({ threadId: "session-id", - turn: { id: "turn-id", items: [], status: "completed", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "completed", error: null } } as any); vi.spyOn(codexAcpAgent, "getSessionState").mockReturnValue(createTestSessionState({ @@ -375,19 +369,12 @@ describe('ACP server test', { timeout: 40_000 }, () => { const promptRequest: acp.PromptRequest = { sessionId: "session-id", prompt: [{ type: "text", text: "Hello" }], - _meta: { - additionalRoots: ["/skills/one", " /skills/two ", 7] - } }; await codexAcpAgent.prompt(promptRequest); expect(listSkillsSpy).toHaveBeenCalledWith({ cwds: ["/workspace"], forceReload: true, - perCwdExtraUserRoots: [{ - cwd: "/workspace", - extraUserRoots: ["/skills/one", "/skills/two"] - }] }); expect(listSkillsSpy.mock.invocationCallOrder[0]!).toBeLessThan(turnStartSpy.mock.invocationCallOrder[0]!); }); @@ -411,6 +398,7 @@ describe('ACP server test', { timeout: 40_000 }, () => { return { id, items: [], + itemsView: "full" as const, status, error: null, startedAt: null, @@ -440,11 +428,11 @@ describe('ACP server test', { timeout: 40_000 }, () => { fixture.getCodexAppServerClient().listSkills = vi.fn().mockResolvedValue({ data: [] }); fixture.getCodexAppServerClient().turnStart = vi.fn().mockResolvedValue({ - turn: { id: "turn-id", items: [], status: "inProgress", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "inProgress", error: null } }); fixture.getCodexAppServerClient().awaitTurnCompleted = vi.fn().mockResolvedValue({ threadId: "id", - turn: { id: "turn-id", items: [], status: "completed", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "completed", error: null } }); const sessionState: SessionState = createTestSessionState({ sessionId: "id", @@ -464,11 +452,11 @@ describe('ACP server test', { timeout: 40_000 }, () => { const codexAcpAgent = mockFixture.getCodexAcpAgent(); mockFixture.getCodexAppServerClient().turnStart = vi.fn().mockResolvedValue({ - turn: { id: "turn-id", items: [], status: "inProgress", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "inProgress", error: null } }); mockFixture.getCodexAppServerClient().awaitTurnCompleted = vi.fn().mockResolvedValue({ threadId: "id", - turn: { id: "turn-id", items: [], status: "completed", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "completed", error: null } }); const sessionState: SessionState = createTestSessionState({ @@ -510,7 +498,7 @@ describe('ACP server test', { timeout: 40_000 }, () => { const codexAcpAgent = mockFixture.getCodexAcpAgent(); mockFixture.getCodexAppServerClient().turnStart = vi.fn().mockResolvedValue({ - turn: { id: "turn-id", items: [], status: "inProgress", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "inProgress", error: null } }); const sessionState1: SessionState = createTestSessionState({ @@ -652,6 +640,7 @@ describe('ACP server test', { timeout: 40_000 }, () => { turn: { id: "turn-id", items: [], + itemsView: "full", status: "completed", error: null, startedAt: null, @@ -829,6 +818,7 @@ describe('ACP server test', { timeout: 40_000 }, () => { defaultReasoningEffort: 'medium', supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: false, inputModalities: [] }, @@ -847,6 +837,7 @@ describe('ACP server test', { timeout: 40_000 }, () => { defaultReasoningEffort: 'low', supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: true, inputModalities: [] } @@ -873,6 +864,7 @@ describe('ACP server test', { timeout: 40_000 }, () => { turn: { id: "turn-id", items: [], + itemsView: "full", status: "inProgress", error: null, startedAt: null, @@ -885,6 +877,7 @@ describe('ACP server test', { timeout: 40_000 }, () => { turn: { id: "turn-id", items: [], + itemsView: "full", status: "completed", error: null, startedAt: null, diff --git a/src/__tests__/CodexACPAgent/approval-events.test.ts b/src/__tests__/CodexACPAgent/approval-events.test.ts index 7ee43746..5b0500ac 100644 --- a/src/__tests__/CodexACPAgent/approval-events.test.ts +++ b/src/__tests__/CodexACPAgent/approval-events.test.ts @@ -16,13 +16,13 @@ describe('Approval Events', () => { function setupSessionWithPendingPrompt() { const codexAcpAgent = fixture.getCodexAcpAgent(); - let resolveTurnCompleted: (value: { threadId: string; turn: { id: string; items: never[]; status: string; error: null } }) => void; - const turnCompletedPromise = new Promise<{ threadId: string; turn: { id: string; items: never[]; status: string; error: null } }>((resolve) => { + let resolveTurnCompleted: (value: { threadId: string; turn: { id: string; items: never[]; itemsView: "full"; status: string; error: null } }) => void; + const turnCompletedPromise = new Promise<{ threadId: string; turn: { id: string; items: never[]; itemsView: "full"; status: string; error: null } }>((resolve) => { resolveTurnCompleted = resolve; }); fixture.getCodexAppServerClient().turnStart = vi.fn().mockResolvedValue({ - turn: { id: "turn-id", items: [], status: "inProgress", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "inProgress", error: null } }); fixture.getCodexAppServerClient().awaitTurnCompleted = vi.fn().mockReturnValue(turnCompletedPromise); @@ -42,7 +42,7 @@ describe('Approval Events', () => { promptPromise, completeTurn: () => resolveTurnCompleted!({ threadId: sessionId, - turn: { id: "turn-id", items: [], status: "completed", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "completed", error: null } }) }; } @@ -66,6 +66,7 @@ describe('Approval Events', () => { threadId: sessionId, turnId: 'turn-1', itemId: `item-${optionId}`, + startedAtMs: 123, reason: 'Test command', proposedExecpolicyAmendment: null, }; @@ -92,6 +93,7 @@ describe('Approval Events', () => { threadId: sessionId, turnId: 'turn-1', itemId: 'item-cancelled', + startedAtMs: 123, reason: null, proposedExecpolicyAmendment: null, }; @@ -112,6 +114,7 @@ describe('Approval Events', () => { threadId: 'non-existent-session', turnId: 'turn-1', itemId: 'item-no-handler', + startedAtMs: 123, reason: null, proposedExecpolicyAmendment: null, }; @@ -134,6 +137,7 @@ describe('Approval Events', () => { threadId: sessionId, turnId: 'turn-1', itemId: 'item-snapshot', + startedAtMs: 123, reason: 'Running npm install', proposedExecpolicyAmendment: null, }; @@ -161,6 +165,7 @@ describe('Approval Events', () => { threadId: sessionId, turnId: 'turn-1', itemId: 'item-with-command', + startedAtMs: 123, reason: 'Installing dependencies', command: 'npm install', cwd: '/home/user/project', @@ -198,6 +203,7 @@ describe('Approval Events', () => { threadId: sessionId, turnId: 'turn-1', itemId: 'item-shell-prefix', + startedAtMs: 123, reason: 'Installing dependencies', command, cwd: '/home/user/project', @@ -237,6 +243,7 @@ describe('Approval Events', () => { threadId: sessionId, turnId: 'turn-1', itemId: `file-change-${optionId}`, + startedAtMs: 123, reason: 'Test file change', grantRoot: null, }; @@ -263,6 +270,7 @@ describe('Approval Events', () => { threadId: sessionId, turnId: 'turn-1', itemId: 'file-change-cancelled', + startedAtMs: 123, reason: null, grantRoot: null, }; @@ -283,6 +291,7 @@ describe('Approval Events', () => { threadId: 'non-existent-session', turnId: 'turn-1', itemId: 'file-change-no-handler', + startedAtMs: 123, reason: null, grantRoot: null, }; @@ -305,6 +314,7 @@ describe('Approval Events', () => { threadId: sessionId, turnId: 'turn-1', itemId: 'file-change-snapshot', + startedAtMs: 123, reason: 'Modifying config file', grantRoot: null, }; diff --git a/src/__tests__/CodexACPAgent/command-action-events.test.ts b/src/__tests__/CodexACPAgent/command-action-events.test.ts index bb92314d..51a59eb8 100644 --- a/src/__tests__/CodexACPAgent/command-action-events.test.ts +++ b/src/__tests__/CodexACPAgent/command-action-events.test.ts @@ -23,6 +23,7 @@ describe('CodexEventHandler - command action events', () => { const listFilesNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -58,6 +59,7 @@ describe('CodexEventHandler - command action events', () => { const listFilesNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -93,6 +95,7 @@ describe('CodexEventHandler - command action events', () => { const searchNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -129,6 +132,7 @@ describe('CodexEventHandler - command action events', () => { const searchNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -165,6 +169,7 @@ describe('CodexEventHandler - command action events', () => { const searchNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -201,6 +206,7 @@ describe('CodexEventHandler - command action events', () => { const searchNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -237,6 +243,7 @@ describe('CodexEventHandler - command action events', () => { const searchNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -265,6 +272,7 @@ describe('CodexEventHandler - command action events', () => { { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -292,6 +300,7 @@ describe('CodexEventHandler - command action events', () => { { method: 'item/completed', params: { + completedAtMs: 124, threadId: sessionId, turnId: 'turn-1', item: { @@ -324,6 +333,7 @@ describe('CodexEventHandler - command action events', () => { { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -360,6 +370,7 @@ describe('CodexEventHandler - command action events', () => { { method: 'item/completed', params: { + completedAtMs: 124, threadId: sessionId, turnId: 'turn-1', item: { @@ -390,6 +401,7 @@ describe('CodexEventHandler - command action events', () => { const dynamicToolNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { diff --git a/src/__tests__/CodexACPAgent/data/send-attachments-turn-start.json b/src/__tests__/CodexACPAgent/data/send-attachments-turn-start.json index 9c685ece..1ccea8f4 100644 --- a/src/__tests__/CodexACPAgent/data/send-attachments-turn-start.json +++ b/src/__tests__/CodexACPAgent/data/send-attachments-turn-start.json @@ -5,13 +5,7 @@ "cwds": [ "/test/cwd" ], - "forceReload": true, - "perCwdExtraUserRoots": [ - { - "cwd": "cwd", - "extraUserRoots": [] - } - ] + "forceReload": true } } { diff --git a/src/__tests__/CodexACPAgent/elicitation-events.test.ts b/src/__tests__/CodexACPAgent/elicitation-events.test.ts index 32548bee..e667922e 100644 --- a/src/__tests__/CodexACPAgent/elicitation-events.test.ts +++ b/src/__tests__/CodexACPAgent/elicitation-events.test.ts @@ -17,13 +17,13 @@ describe('Elicitation Events', () => { function setupSessionWithPendingPrompt() { const codexAcpAgent = fixture.getCodexAcpAgent(); - let resolveTurnCompleted: (value: { threadId: string; turn: { id: string; items: never[]; status: string; error: null } }) => void; - const turnCompletedPromise = new Promise<{ threadId: string; turn: { id: string; items: never[]; status: string; error: null } }>((resolve) => { + let resolveTurnCompleted: (value: { threadId: string; turn: { id: string; items: never[]; itemsView: "full"; status: string; error: null } }) => void; + const turnCompletedPromise = new Promise<{ threadId: string; turn: { id: string; items: never[]; itemsView: "full"; status: string; error: null } }>((resolve) => { resolveTurnCompleted = resolve; }); fixture.getCodexAppServerClient().turnStart = vi.fn().mockResolvedValue({ - turn: { id: "turn-id", items: [], status: "inProgress", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "inProgress", error: null } }); fixture.getCodexAppServerClient().awaitTurnCompleted = vi.fn().mockReturnValue(turnCompletedPromise); @@ -43,7 +43,7 @@ describe('Elicitation Events', () => { promptPromise, completeTurn: () => resolveTurnCompleted!({ threadId: sessionId, - turn: { id: "turn-id", items: [], status: "completed", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "completed", error: null } }) }; } @@ -251,6 +251,7 @@ describe('Elicitation Events', () => { const startedNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -269,6 +270,7 @@ describe('Elicitation Events', () => { const completedNotification: ServerNotification = { method: 'item/completed', params: { + completedAtMs: 124, threadId: sessionId, turnId: 'turn-1', item: { @@ -314,6 +316,7 @@ describe('Elicitation Events', () => { const startedNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { diff --git a/src/__tests__/CodexACPAgent/file-change-events.test.ts b/src/__tests__/CodexACPAgent/file-change-events.test.ts index ce00135a..5260dd01 100644 --- a/src/__tests__/CodexACPAgent/file-change-events.test.ts +++ b/src/__tests__/CodexACPAgent/file-change-events.test.ts @@ -44,6 +44,7 @@ describe('CodexEventHandler - file change events', () => { const newFileNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -79,6 +80,7 @@ describe('CodexEventHandler - file change events', () => { const multiFileNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -119,6 +121,7 @@ describe('CodexEventHandler - file change events', () => { const newFileNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -147,6 +150,7 @@ describe('CodexEventHandler - file change events', () => { const deleteFileNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -183,6 +187,7 @@ describe('CodexEventHandler - file change events', () => { const deletedFileNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -213,6 +218,7 @@ describe('CodexEventHandler - file change events', () => { const deleteFileNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -248,6 +254,7 @@ describe('CodexEventHandler - file change events', () => { const deletedFileNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { diff --git a/src/__tests__/CodexACPAgent/list-sessions.test.ts b/src/__tests__/CodexACPAgent/list-sessions.test.ts index a08a6fc3..ecf2bf07 100644 --- a/src/__tests__/CodexACPAgent/list-sessions.test.ts +++ b/src/__tests__/CodexACPAgent/list-sessions.test.ts @@ -14,6 +14,7 @@ describe("CodexACPAgent - list sessions", () => { const threadA: Thread = { id: "sess-1", + sessionId: "sess-1", forkedFromId: null, preview: "First session", ephemeral: false, @@ -25,6 +26,7 @@ describe("CodexACPAgent - list sessions", () => { cwd: "/repo/project", cliVersion: "0.0.0", source: "cli", + threadSource: null, agentNickname: null, agentRole: null, gitInfo: null, @@ -33,6 +35,7 @@ describe("CodexACPAgent - list sessions", () => { }; const threadB: Thread = { id: "sess-2", + sessionId: "sess-2", forkedFromId: null, preview: "Other session", ephemeral: false, @@ -44,6 +47,7 @@ describe("CodexACPAgent - list sessions", () => { cwd: "/repo/other", cliVersion: "0.0.0", source: "cli", + threadSource: null, agentNickname: null, agentRole: null, gitInfo: null, diff --git a/src/__tests__/CodexACPAgent/load-session.test.ts b/src/__tests__/CodexACPAgent/load-session.test.ts index 43aaa09a..e02b26e7 100644 --- a/src/__tests__/CodexACPAgent/load-session.test.ts +++ b/src/__tests__/CodexACPAgent/load-session.test.ts @@ -33,6 +33,7 @@ describe("CodexACPAgent - loadSession", () => { inputModalities: ["text", "image"], supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: true, }; @@ -43,6 +44,7 @@ describe("CodexACPAgent - loadSession", () => { const thread: Thread = { id: "session-1", + sessionId: "session-1", forkedFromId: null, preview: "Hi", ephemeral: false, @@ -54,6 +56,7 @@ describe("CodexACPAgent - loadSession", () => { cwd: "/test/project", cliVersion: "0.0.0", source: "cli", + threadSource: null, agentNickname: null, agentRole: null, gitInfo: null, @@ -66,6 +69,7 @@ describe("CodexACPAgent - loadSession", () => { startedAt: null, completedAt: null, durationMs: null, + itemsView: "full", items: [ { type: "userMessage", @@ -196,6 +200,7 @@ describe("CodexACPAgent - loadSession", () => { inputModalities: ["text"], supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: true, }; @@ -217,6 +222,7 @@ describe("CodexACPAgent - loadSession", () => { cwd: "/test/project", cliVersion: "0.0.0", source: "cli", + threadSource: null, agentNickname: null, agentRole: null, gitInfo: null, @@ -268,6 +274,7 @@ describe("CodexACPAgent - loadSession", () => { inputModalities: ["text"], supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: true, }; @@ -289,6 +296,7 @@ describe("CodexACPAgent - loadSession", () => { cwd: "/test/project", cliVersion: "0.0.0", source: "cli", + threadSource: null, agentNickname: null, agentRole: null, gitInfo: null, diff --git a/src/__tests__/CodexACPAgent/model-filtering.test.ts b/src/__tests__/CodexACPAgent/model-filtering.test.ts index 97b658a4..dc6cdf81 100644 --- a/src/__tests__/CodexACPAgent/model-filtering.test.ts +++ b/src/__tests__/CodexACPAgent/model-filtering.test.ts @@ -26,6 +26,7 @@ describe("Model filtering", () => { defaultReasoningEffort: "medium", supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: false, inputModalities: [] }, @@ -42,6 +43,7 @@ describe("Model filtering", () => { defaultReasoningEffort: "medium", supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: false, inputModalities: [] }, @@ -58,6 +60,7 @@ describe("Model filtering", () => { defaultReasoningEffort: "medium", supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: false, inputModalities: [] }, @@ -74,6 +77,7 @@ describe("Model filtering", () => { defaultReasoningEffort: "medium", supportsPersonality: false, additionalSpeedTiers: [], + serviceTiers: [], isDefault: false, inputModalities: [] }, diff --git a/src/__tests__/CodexACPAgent/terminal-output-events.test.ts b/src/__tests__/CodexACPAgent/terminal-output-events.test.ts index de5ff938..c041e009 100644 --- a/src/__tests__/CodexACPAgent/terminal-output-events.test.ts +++ b/src/__tests__/CodexACPAgent/terminal-output-events.test.ts @@ -23,6 +23,7 @@ describe('CodexEventHandler - terminal output events', () => { const commandStartNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -60,6 +61,7 @@ describe('CodexEventHandler - terminal output events', () => { const commandStartNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -108,6 +110,7 @@ describe('CodexEventHandler - terminal output events', () => { const commandCompletedNotification: ServerNotification = { method: 'item/completed', params: { + completedAtMs: 124, threadId: sessionId, turnId: 'turn-1', item: { @@ -137,6 +140,7 @@ describe('CodexEventHandler - terminal output events', () => { const commandFailedNotification: ServerNotification = { method: 'item/completed', params: { + completedAtMs: 124, threadId: sessionId, turnId: 'turn-1', item: { @@ -166,6 +170,7 @@ describe('CodexEventHandler - terminal output events', () => { const dynamicToolCompletedNotification: ServerNotification = { method: 'item/completed', params: { + completedAtMs: 124, threadId: sessionId, turnId: 'turn-1', item: { @@ -193,6 +198,7 @@ describe('CodexEventHandler - terminal output events', () => { const commandStartNotification: ServerNotification = { method: 'item/started', params: { + startedAtMs: 123, threadId: sessionId, turnId: 'turn-1', item: { @@ -224,6 +230,7 @@ describe('CodexEventHandler - terminal output events', () => { const commandCompletedNotification: ServerNotification = { method: 'item/completed', params: { + completedAtMs: 124, threadId: sessionId, turnId: 'turn-1', item: { diff --git a/src/__tests__/CodexACPAgent/token-usage-events.test.ts b/src/__tests__/CodexACPAgent/token-usage-events.test.ts index 2025b2d2..cdff87af 100644 --- a/src/__tests__/CodexACPAgent/token-usage-events.test.ts +++ b/src/__tests__/CodexACPAgent/token-usage-events.test.ts @@ -34,7 +34,7 @@ describe('Token Usage Events', () => { const codexAcpAgent = mockFixture.getCodexAcpAgent(); mockFixture.getCodexAppServerClient().turnStart = vi.fn().mockResolvedValue({ - turn: { id: "turn-id", items: [], status: "inProgress", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "inProgress", error: null } }); // awaitTurnCompleted sends notifications before resolving @@ -45,7 +45,7 @@ describe('Token Usage Events', () => { } return { threadId: sessionId, - turn: { id: "turn-id", items: [], status: turnStatus, error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: turnStatus, error: null } }; }); @@ -166,7 +166,7 @@ describe('Token Usage Events', () => { const codexAcpAgent = mockFixture.getCodexAcpAgent(); mockFixture.getCodexAppServerClient().turnStart = vi.fn().mockResolvedValue({ - turn: { id: "turn-id", items: [], status: "inProgress", error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: "inProgress", error: null } }); mockFixture.getCodexAppServerClient().awaitTurnCompleted = vi.fn().mockImplementation(async () => { @@ -175,7 +175,7 @@ describe('Token Usage Events', () => { } return { threadId: sessionId, - turn: { id: "turn-id", items: [], status: turnStatus, error: null } + turn: { id: "turn-id", items: [], itemsView: "full", status: turnStatus, error: null } }; });