mirror of
https://github.com/codewhale-hq/Codewhale.git
synced 2026-11-10 10:01:43 -10:00
feat(app-server-protocol): typed Tier A/B Codex methods and the committed inventory (CW-7704 S2)
App Server v2 had no committed method inventory, so Tier C "method not found" had nothing to stand on and no check tied Codewhale's method set to the pinned Codex contract. - src/methods.rs: ClientRequestMethod (44: 19 Tier A, 25 Tier B), ClientNotificationMethod (1), ServerRequestMethod (5) and ServerNotificationMethod (33: 27 A, 6 B), each with wire name, tier, lookup and string serde. Variant names follow upstream common.rs. - METHODS.md: every method in the rust-v0.166.0 stable wire enums (109 client requests, 1 client notification, 10 server requests, 87 server notifications) with tier A/B/C/undecided, status on main and basis. Undecided rows carry a recommended tier for the founder. - tests/pinned/codex/*.ts: unmodified TypeScript members of the frozen stable export (hashes in UPSTREAM.md). TypeScript, not the JSON schemas, because only it carries the full wire enums (the JSON omits three deprecated v1 requests and two internal-only notifications). - tests/methods.rs fails when the pinned export names a method the inventory lacks or vice versa, when a typed variant is missing from the export or disagrees with its inventory tier, or when an A/B row has no typed variant. Params/response types per method are not in this slice; dispatch is unchanged. Checks: cargo test -p codewhale-app-server-protocol --locked: lib 10 passed, methods 2 passed, wire 3 passed, 0 failed. Removing the fs/copy row made typed_methods_inventory_and_pinned_export_agree fail (left: ["fs/copy"]). Dead-code budget 137, at budget. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
93045a9d06
commit
42ebdb9ea4
10 files changed
+854
No files matched your search
@@ -0,0 +1,237 @@
|
||||
# Codex App Server method inventory
|
||||
|
||||
Every method in the pinned Codex `rust-v0.166.0` stable wire enums (commit `6ff1e1ca3b30fc8b914720681fcf5fe62e95f856`), with the tier Codewhale gives it and what is on main. The method sets are the unmodified export members under `tests/pinned/codex/`; `tests/methods.rs` fails when this file, those members and the typed enums in `src/methods.rs` disagree.
|
||||
|
||||
- **A**: required for 0.10.3 Codex parity.
|
||||
- **B**: service methods, required for 0.10.3.
|
||||
- **C**: out of scope, for the reason given. A Tier C client request answers `-32601` method not found; the server never sends a Tier C request or notification.
|
||||
- **undecided**: the 0.10.3 parity bar does not settle it yet. The last column carries a recommended tier for the founder to confirm.
|
||||
|
||||
Status: `implemented` means a Codex-shaped handler is on main (response goldens are not yet checked); `partial` means the Codex method name dispatches to the legacy shape; `missing` means no handler; `method-not-found` means the dispatcher answers `-32601`; `never-sent` means the server never emits it. The stable export is the scope: methods that exist only in the experimental export are not listed.
|
||||
|
||||
## Client requests
|
||||
|
||||
| Method | Tier | Status | Basis | Recommended |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `initialize` | A | implemented | connection lifecycle (CW-7704; on main) | |
|
||||
| `thread/start` | A | implemented | thread lifecycle | |
|
||||
| `thread/resume` | A | partial | thread lifecycle | |
|
||||
| `thread/fork` | A | partial | thread lifecycle | |
|
||||
| `thread/archive` | A | partial | thread lifecycle | |
|
||||
| `thread/delete` | B | missing | S9 services: thread delete, revert, shellCommand, compact | |
|
||||
| `thread/unsubscribe` | A | missing | S5 subscriptions and paging | |
|
||||
| `thread/name/set` | A | implemented | thread lifecycle | |
|
||||
| `thread/goal/set` | A | partial | S8 goals | |
|
||||
| `thread/goal/get` | A | partial | S8 goals | |
|
||||
| `thread/goal/clear` | A | partial | S8 goals | |
|
||||
| `thread/metadata/update` | undecided | missing | thread metadata beyond name/goal | B |
|
||||
| `thread/attachment/add` | undecided | missing | Codex desktop attachments | C |
|
||||
| `thread/attachment/list` | undecided | missing | Codex desktop attachments | C |
|
||||
| `thread/attachmentOwner/list` | undecided | missing | Codex desktop attachments | C |
|
||||
| `thread/attachment/remove` | undecided | missing | Codex desktop attachments | C |
|
||||
| `thread/section/move` | undecided | missing | Codex desktop sidebar sections; Codewhale projects are CW-7878 | C |
|
||||
| `thread/unarchive` | A | partial | thread lifecycle | |
|
||||
| `thread/compact/start` | B | missing | S9 services: thread delete, revert, shellCommand, compact | |
|
||||
| `thread/shellCommand` | B | missing | S9 services: thread delete, revert, shellCommand, compact | |
|
||||
| `thread/approveGuardianDeniedAction` | undecided | missing | Codex Guardian auto-review override; Codewhale has its own Auto-Review posture | C |
|
||||
| `thread/revert` | B | missing | S9 services: thread delete, revert, shellCommand, compact | |
|
||||
| `thread/list` | A | implemented | thread lifecycle | |
|
||||
| `threadSection/list` | undecided | missing | Codex desktop sidebar sections; Codewhale projects are CW-7878 | C |
|
||||
| `threadSection/create` | undecided | missing | Codex desktop sidebar sections; Codewhale projects are CW-7878 | C |
|
||||
| `threadSection/update` | undecided | missing | Codex desktop sidebar sections; Codewhale projects are CW-7878 | C |
|
||||
| `threadSection/delete` | undecided | missing | Codex desktop sidebar sections; Codewhale projects are CW-7878 | C |
|
||||
| `thread/loaded/list` | A | implemented | thread lifecycle | |
|
||||
| `thread/read` | A | implemented | thread lifecycle | |
|
||||
| `thread/turns/list` | A | missing | S5 subscriptions and paging | |
|
||||
| `thread/items/list` | A | missing | S5 subscriptions and paging | |
|
||||
| `thread/inject_items` | undecided | missing | raw history injection | C |
|
||||
| `skills/list` | B | missing | S9 services: skills | |
|
||||
| `skills/extraRoots/set` | undecided | missing | skills configuration writes | B |
|
||||
| `hooks/list` | B | missing | S9 services: hooks | |
|
||||
| `marketplace/add` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `marketplace/remove` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `marketplace/upgrade` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `plugin/list` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `plugin/installed` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `plugin/reconcile` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `plugin/read` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `plugin/skill/read` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `plugin/share/save` | C | method-not-found | OpenAI-hosted plugin sharing; no Codewhale service | |
|
||||
| `plugin/share/updateTargets` | C | method-not-found | OpenAI-hosted plugin sharing; no Codewhale service | |
|
||||
| `plugin/share/list` | C | method-not-found | OpenAI-hosted plugin sharing; no Codewhale service | |
|
||||
| `plugin/share/checkout` | C | method-not-found | OpenAI-hosted plugin sharing; no Codewhale service | |
|
||||
| `plugin/share/delete` | C | method-not-found | OpenAI-hosted plugin sharing; no Codewhale service | |
|
||||
| `app/read` | C | method-not-found | ChatGPT Apps connectors; no Codewhale service | |
|
||||
| `app/list` | C | method-not-found | ChatGPT Apps connectors; no Codewhale service | |
|
||||
| `app/installed` | C | method-not-found | ChatGPT Apps connectors; no Codewhale service | |
|
||||
| `fs/readFile` | B | missing | S9 services: fs | |
|
||||
| `fs/writeFile` | B | missing | S9 services: fs | |
|
||||
| `fs/createDirectory` | B | missing | S9 services: fs | |
|
||||
| `fs/getMetadata` | B | missing | S9 services: fs | |
|
||||
| `fs/readDirectory` | B | missing | S9 services: fs | |
|
||||
| `fs/remove` | B | missing | S9 services: fs | |
|
||||
| `fs/copy` | B | missing | S9 services: fs | |
|
||||
| `fs/watch` | B | missing | S9 services: fs | |
|
||||
| `fs/unwatch` | B | missing | S9 services: fs | |
|
||||
| `skills/config/write` | undecided | missing | skills configuration writes | B |
|
||||
| `plugin/install` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `plugin/uninstall` | undecided | missing | Codex plugin marketplace; Codewhale plugins are DSH (CW-7051) | C |
|
||||
| `turn/start` | A | missing | S4a full-tool turns | |
|
||||
| `turn/steer` | A | missing | S4a full-tool turns | |
|
||||
| `turn/interrupt` | A | missing | S4a full-tool turns | |
|
||||
| `review/start` | B | missing | S9 services: review | |
|
||||
| `model/list` | B | missing | S9 services: models | |
|
||||
| `account/gatewayOAuth/read` | C | method-not-found | OpenAI gateway OAuth; no Codewhale service | |
|
||||
| `account/gatewayOAuth/login` | C | method-not-found | OpenAI gateway OAuth; no Codewhale service | |
|
||||
| `account/gatewayOAuth/cancel` | C | method-not-found | OpenAI gateway OAuth; no Codewhale service | |
|
||||
| `modelProvider/capabilities/read` | undecided | missing | provider, feature and permission catalogs | B |
|
||||
| `experimentalFeature/list` | undecided | missing | Codex experimental feature flags | C |
|
||||
| `permissionProfile/list` | undecided | missing | provider, feature and permission catalogs | B |
|
||||
| `experimentalFeature/enablement/set` | undecided | missing | Codex experimental feature flags | C |
|
||||
| `mcpServer/oauth/login` | undecided | missing | MCP actions beyond status | B |
|
||||
| `config/mcpServer/reload` | undecided | missing | MCP actions beyond status | B |
|
||||
| `mcpServerStatus/list` | B | missing | S9 services: MCP status | |
|
||||
| `mcpServer/resource/read` | undecided | missing | MCP actions beyond status | B |
|
||||
| `mcpServer/tool/call` | undecided | missing | MCP actions beyond status | B |
|
||||
| `windowsSandbox/setupStart` | undecided | missing | Codex Windows sandbox setup; Codewhale has its own AppContainer sandbox | C |
|
||||
| `windowsSandbox/readiness` | undecided | missing | Codex Windows sandbox setup; Codewhale has its own AppContainer sandbox | C |
|
||||
| `account/login/start` | undecided | missing | OpenAI account sign-in and usage; Codewhale signs in through /auth | C |
|
||||
| `account/login/cancel` | undecided | missing | OpenAI account sign-in and usage; Codewhale signs in through /auth | C |
|
||||
| `account/logout` | undecided | missing | OpenAI account sign-in and usage; Codewhale signs in through /auth | C |
|
||||
| `account/rateLimits/read` | undecided | missing | OpenAI account sign-in and usage; Codewhale signs in through /auth | C |
|
||||
| `account/rateLimitResetCredit/consume` | C | method-not-found | OpenAI billing and workspace messaging; no Codewhale service | |
|
||||
| `account/usage/read` | undecided | missing | OpenAI account sign-in and usage; Codewhale signs in through /auth | C |
|
||||
| `account/workspaceMessages/read` | C | method-not-found | OpenAI billing and workspace messaging; no Codewhale service | |
|
||||
| `account/sendAddCreditsNudgeEmail` | C | method-not-found | OpenAI billing and workspace messaging; no Codewhale service | |
|
||||
| `feedback/upload` | C | method-not-found | uploads feedback to OpenAI; no Codewhale service | |
|
||||
| `feedback/save` | C | method-not-found | uploads feedback to OpenAI; no Codewhale service | |
|
||||
| `command/exec` | B | missing | S9 services: command/exec | |
|
||||
| `command/exec/write` | B | missing | S9 services: command/exec | |
|
||||
| `command/exec/terminate` | B | missing | S9 services: command/exec | |
|
||||
| `command/exec/resize` | B | missing | S9 services: command/exec | |
|
||||
| `config/read` | B | missing | S9 services: config | |
|
||||
| `externalAgentConfig/detect` | undecided | missing | import config from other agents; Codewhale external agents are CW-7879 | C |
|
||||
| `externalAgentConfig/import` | undecided | missing | import config from other agents; Codewhale external agents are CW-7879 | C |
|
||||
| `externalAgentConfig/import/recordHistory` | undecided | missing | import config from other agents; Codewhale external agents are CW-7879 | C |
|
||||
| `externalAgentConfig/import/readHistories` | undecided | missing | import config from other agents; Codewhale external agents are CW-7879 | C |
|
||||
| `config/value/write` | B | missing | S9 services: config | |
|
||||
| `config/batchWrite` | B | missing | S9 services: config | |
|
||||
| `configRequirements/read` | undecided | missing | managed config requirements | B |
|
||||
| `account/read` | undecided | missing | OpenAI account sign-in and usage; Codewhale signs in through /auth | C |
|
||||
| `getConversationSummary` | C | method-not-found | deprecated v1 API (upstream marks it DEPRECATED; TypeScript-only in the export) | |
|
||||
| `gitDiffToRemote` | C | method-not-found | deprecated v1 API (upstream marks it DEPRECATED; TypeScript-only in the export) | |
|
||||
| `getAuthStatus` | C | method-not-found | deprecated v1 API (upstream marks it DEPRECATED; TypeScript-only in the export) | |
|
||||
| `fuzzyFileSearch` | undecided | missing | file search | B |
|
||||
|
||||
## Client notifications
|
||||
|
||||
| Method | Tier | Status | Basis | Recommended |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `initialized` | A | implemented | connection lifecycle (CW-7704; on main) | |
|
||||
|
||||
## Server requests
|
||||
|
||||
| Method | Tier | Status | Basis | Recommended |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `item/commandExecution/requestApproval` | A | missing | S6 interactions (CW-7704: bidirectional approvals, input, client tools) | |
|
||||
| `item/fileChange/requestApproval` | A | missing | S6 interactions (CW-7704: bidirectional approvals, input, client tools) | |
|
||||
| `item/tool/requestUserInput` | A | missing | S6 interactions (CW-7704: bidirectional approvals, input, client tools) | |
|
||||
| `mcpServer/elicitation/request` | undecided | missing | MCP elicitation | A |
|
||||
| `item/permissions/requestApproval` | A | missing | S6 interactions (CW-7704: bidirectional approvals, input, client tools) | |
|
||||
| `item/tool/call` | A | missing | S6 interactions (CW-7704: bidirectional approvals, input, client tools) | |
|
||||
| `account/chatgptAuthTokens/refresh` | C | never-sent | ChatGPT externally managed auth tokens; no Codewhale service | |
|
||||
| `attestation/generate` | C | never-sent | OpenAI request attestation; no Codewhale service | |
|
||||
| `applyPatchApproval` | C | never-sent | deprecated v1 approvals for legacy turns; superseded by item/*/requestApproval | |
|
||||
| `execCommandApproval` | C | never-sent | deprecated v1 approvals for legacy turns; superseded by item/*/requestApproval | |
|
||||
|
||||
## Server notifications
|
||||
|
||||
| Method | Tier | Status | Basis | Recommended |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `error` | A | missing | S3 projection: errors | |
|
||||
| `thread/started` | A | missing | S3 projection: thread lifecycle | |
|
||||
| `thread/status/changed` | A | missing | S3 projection: thread lifecycle | |
|
||||
| `thread/readState/changed` | undecided | missing | thread state beyond the Tier A set | A |
|
||||
| `thread/archived` | A | missing | S3 projection: thread lifecycle | |
|
||||
| `thread/deleted` | B | missing | pairs with a Tier B service | |
|
||||
| `thread/unarchived` | A | missing | S3 projection: thread lifecycle | |
|
||||
| `thread/closed` | A | missing | S3 projection: thread lifecycle | |
|
||||
| `thread/reverted` | B | missing | pairs with a Tier B service | |
|
||||
| `skills/changed` | B | missing | pairs with a Tier B service | |
|
||||
| `thread/name/updated` | A | missing | S3 projection: thread lifecycle | |
|
||||
| `thread/attachment/updated` | undecided | missing | Codex desktop attachments, predictions, projects and environments | C |
|
||||
| `thread/goal/updated` | A | missing | S3 projection with S8 goals | |
|
||||
| `thread/prediction/updated` | undecided | missing | Codex desktop attachments, predictions, projects and environments | C |
|
||||
| `thread/goal/cleared` | A | missing | S3 projection with S8 goals | |
|
||||
| `thread/queue/changed` | undecided | missing | thread state beyond the Tier A set | A |
|
||||
| `project/changed` | undecided | missing | Codex desktop attachments, predictions, projects and environments | C |
|
||||
| `thread/project/updated` | undecided | missing | Codex desktop attachments, predictions, projects and environments | C |
|
||||
| `thread/environment/connected` | undecided | missing | Codex desktop attachments, predictions, projects and environments | C |
|
||||
| `thread/environment/disconnected` | undecided | missing | Codex desktop attachments, predictions, projects and environments | C |
|
||||
| `thread/settings/updated` | undecided | missing | thread state beyond the Tier A set | A |
|
||||
| `thread/tokenUsage/updated` | A | missing | S3 projection: thread lifecycle | |
|
||||
| `turn/started` | A | missing | S3 projection: turn/* | |
|
||||
| `hook/started` | undecided | missing | hook runs; hooks/list is Tier B | B |
|
||||
| `turn/completed` | A | missing | S3 projection: turn/* | |
|
||||
| `hook/completed` | undecided | missing | hook runs; hooks/list is Tier B | B |
|
||||
| `turn/diff/updated` | A | missing | S3 projection: turn/* | |
|
||||
| `turn/plan/updated` | A | missing | S3 projection: turn/* | |
|
||||
| `item/started` | A | missing | S3 projection: item/* | |
|
||||
| `item/autoApprovalReview/started` | undecided | missing | Codex Guardian; Codewhale has its own Auto-Review posture | C |
|
||||
| `item/autoApprovalReview/completed` | undecided | missing | Codex Guardian; Codewhale has its own Auto-Review posture | C |
|
||||
| `autoApprovalReview/strictReviewRequired` | undecided | missing | Codex Guardian; Codewhale has its own Auto-Review posture | C |
|
||||
| `item/completed` | A | missing | S3 projection: item/* | |
|
||||
| `rawResponseItem/completed` | C | never-sent | internal-only upstream (Codex Cloud, exact upstream usage); TypeScript-only in the export | |
|
||||
| `rawResponse/completed` | C | never-sent | internal-only upstream (Codex Cloud, exact upstream usage); TypeScript-only in the export | |
|
||||
| `item/agentMessage/delta` | A | missing | S3 projection: item/* | |
|
||||
| `item/plan/delta` | A | missing | S3 projection: item/* | |
|
||||
| `command/exec/outputDelta` | B | missing | pairs with a Tier B service | |
|
||||
| `process/outputDelta` | undecided | missing | background processes | B |
|
||||
| `process/exited` | undecided | missing | background processes | B |
|
||||
| `item/commandExecution/outputDelta` | A | missing | S3 projection: item/* | |
|
||||
| `item/commandExecution/terminalInteraction` | A | missing | S3 projection: item/* | |
|
||||
| `item/fileChange/outputDelta` | A | missing | S3 projection: item/* | |
|
||||
| `item/fileChange/patchUpdated` | A | missing | S3 projection: item/* | |
|
||||
| `serverRequest/resolved` | A | missing | S6 interactions (CW-7704) | |
|
||||
| `item/mcpToolCall/progress` | A | missing | S3 projection: item/* | |
|
||||
| `mcpServer/oauthLogin/completed` | undecided | missing | MCP server events | B |
|
||||
| `mcpServer/startupStatus/updated` | undecided | missing | MCP server events | B |
|
||||
| `mcpServer/event/stream/notification` | undecided | missing | MCP server events | B |
|
||||
| `account/updated` | undecided | missing | OpenAI account state | C |
|
||||
| `account/gatewayOAuth/changed` | C | never-sent | pairs with a Tier C method | |
|
||||
| `account/rateLimits/updated` | undecided | missing | OpenAI account state | C |
|
||||
| `app/list/updated` | C | never-sent | pairs with a Tier C method | |
|
||||
| `remoteControl/status/changed` | undecided | missing | remote control status | C |
|
||||
| `externalAgentConfig/import/progress` | undecided | missing | pairs with externalAgentConfig/import | C |
|
||||
| `externalAgentConfig/import/completed` | undecided | missing | pairs with externalAgentConfig/import | C |
|
||||
| `fs/changed` | B | missing | pairs with a Tier B service | |
|
||||
| `item/reasoning/summaryTextDelta` | A | missing | S3 projection: item/* | |
|
||||
| `item/reasoning/summaryPartAdded` | A | missing | S3 projection: item/* | |
|
||||
| `item/reasoning/textDelta` | A | missing | S3 projection: item/* | |
|
||||
| `thread/compacted` | B | missing | pairs with a Tier B service | |
|
||||
| `model/rerouted` | undecided | missing | OpenAI model routing, verification, moderation and safety | C |
|
||||
| `model/verification` | undecided | missing | OpenAI model routing, verification, moderation and safety | C |
|
||||
| `modelProvider/authRecoveryStarted` | undecided | missing | provider auth recovery | B |
|
||||
| `modelProvider/authRecoveryCompleted` | undecided | missing | provider auth recovery | B |
|
||||
| `turn/moderationMetadata` | undecided | missing | OpenAI model routing, verification, moderation and safety | C |
|
||||
| `model/safetyBuffering/updated` | undecided | missing | OpenAI model routing, verification, moderation and safety | C |
|
||||
| `warning` | undecided | missing | generic warnings | A |
|
||||
| `guardianWarning` | undecided | missing | Codex Guardian; Codewhale has its own Auto-Review posture | C |
|
||||
| `deprecationNotice` | undecided | missing | generic warnings | A |
|
||||
| `configWarning` | undecided | missing | generic warnings | A |
|
||||
| `fuzzyFileSearch/sessionUpdated` | undecided | missing | pairs with fuzzyFileSearch | B |
|
||||
| `fuzzyFileSearch/sessionCompleted` | undecided | missing | pairs with fuzzyFileSearch | B |
|
||||
| `thread/realtime/started` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/itemAdded` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/item/started` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/item/transcript/delta` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/item/completed` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/transcript/delta` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/transcript/done` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/outputAudio/delta` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/sdp` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/error` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `thread/realtime/closed` | undecided | missing | realtime audio sessions; no Codewhale equivalent | C |
|
||||
| `windows/worldWritableWarning` | undecided | missing | Codex Windows sandbox | C |
|
||||
| `windowsSandbox/setupCompleted` | undecided | missing | Codex Windows sandbox | C |
|
||||
| `account/login/completed` | undecided | missing | OpenAI account state | C |
|
||||
@@ -26,6 +26,11 @@ The command writes `schema/json/runtime.schema.json`,
|
||||
`--check` compares all three without writing. Normal runtime startup does not
|
||||
generate files or enable schema machinery.
|
||||
|
||||
`src/methods.rs` holds the typed Tier A and B Codex method enums. `METHODS.md` is the
|
||||
committed inventory of every pinned Codex method with its tier and status, and
|
||||
`tests/methods.rs` checks the enums, the inventory and the pinned export against
|
||||
each other.
|
||||
|
||||
The selected future Codex wire target is official `rust-v0.166.0`, commit
|
||||
`6ff1e1ca3b30fc8b914720681fcf5fe62e95f856`. Its four-variant envelope and initialize/initialized lifecycle serve JSONL
|
||||
stdio and WebSocket text messages over the private owner channel. The private
|
||||
|
||||
@@ -5,3 +5,5 @@ The request-ID, request/notification/error data shapes in src/rpc.rs and initial
|
||||
Changed files: these adaptations remove Codex-specific derive/export dependencies and replace the absolute-path wrapper with PathBuf on the server-created response, whose producer validates absolute scope. RpcCall normalizes existing optional jsonrpc compatibility input and requires present request IDs to be strings or i64. It preserves notification ID absence. Correlated results and errors require RequestId. The existing compatibility uncorrelated parse-error helper uses a distinct null-ID error record; that response does not satisfy the pinned correlated Codex error envelope and remains explicit phase4 closure work. No private Engine source observation, receipt or accounting producer proof appears in this protocol crate.
|
||||
|
||||
The exact pinned wire golden fixtures under tests/pinned are unmodified members of the local stable precomputed schema export. This is a staged owner/lifecycle adoption, not complete wire/parity acceptance.
|
||||
|
||||
The method sets in tests/pinned/codex/{ClientRequest,ClientNotification,ServerRequest,ServerNotification}.ts are unmodified TypeScript members of the same commit's stable precomputed export (`codex-rs/app-server-protocol/schema/precomputed/app-server-exports-stable.json.zst`, compressed SHA256 `c3802deddc224896967bccd29e353e93e62af768b44dbd5d583e35825fb3e02a`). Member SHA256: ClientRequest.ts `d52eab2b624ee8bab88a121f78a5465faaa6a2701bbd0d2979dc7e5937741b36`, ClientNotification.ts `96692c191ff9ac32c2688b46a0a04f23d15646937adc352f2adcc8211c6d17a0`, ServerRequest.ts `30880f1a8da876eec30600ba27560d05ad0db5c645e14564c9c79a2429274f06`, ServerNotification.ts `df9b5ab2f11010ac336fb7c5b6bb386a7c389cd5dbe742ac5c804fcc69bd40d9`. The TypeScript members are used because they carry the full wire enums: the export's JSON schemas omit three deprecated v1 client requests and two internal-only notifications. Variant names in src/methods.rs follow the upstream `common.rs` variants.
|
||||
@@ -1,4 +1,5 @@
|
||||
pub mod lifecycle;
|
||||
pub mod methods;
|
||||
pub mod rpc;
|
||||
pub mod runtime;
|
||||
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
pub const CODEX_PROTOCOL_TAG: &str = "rust-v0.166.0";
|
||||
pub const CODEX_PROTOCOL_COMMIT: &str = "6ff1e1ca3b30fc8b914720681fcf5fe62e95f856";
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
pub enum Tier {
|
||||
A,
|
||||
B,
|
||||
}
|
||||
|
||||
macro_rules! codex_methods {
|
||||
($name:ident { $($variant:ident => $wire:literal: $tier:ident,)* }) => {
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
pub enum $name {
|
||||
$($variant,)*
|
||||
}
|
||||
|
||||
impl $name {
|
||||
pub const ALL: &'static [Self] = &[$(Self::$variant,)*];
|
||||
|
||||
pub const fn method(self) -> &'static str {
|
||||
match self {
|
||||
$(Self::$variant => $wire,)*
|
||||
}
|
||||
}
|
||||
|
||||
pub const fn tier(self) -> Tier {
|
||||
match self {
|
||||
$(Self::$variant => Tier::$tier,)*
|
||||
}
|
||||
}
|
||||
|
||||
pub fn from_method(method: &str) -> Option<Self> {
|
||||
match method {
|
||||
$($wire => Some(Self::$variant),)*
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl std::fmt::Display for $name {
|
||||
fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
formatter.write_str(self.method())
|
||||
}
|
||||
}
|
||||
|
||||
impl serde::Serialize for $name {
|
||||
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
|
||||
serializer.serialize_str(self.method())
|
||||
}
|
||||
}
|
||||
|
||||
impl<'de> serde::Deserialize<'de> for $name {
|
||||
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
|
||||
let method = <std::borrow::Cow<'de, str>>::deserialize(deserializer)?;
|
||||
Self::from_method(&method).ok_or_else(|| {
|
||||
serde::de::Error::custom(format!("unknown method: {method}"))
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
codex_methods! {
|
||||
ClientRequestMethod {
|
||||
Initialize => "initialize": A,
|
||||
ThreadStart => "thread/start": A,
|
||||
ThreadResume => "thread/resume": A,
|
||||
ThreadFork => "thread/fork": A,
|
||||
ThreadArchive => "thread/archive": A,
|
||||
ThreadDelete => "thread/delete": B,
|
||||
ThreadUnsubscribe => "thread/unsubscribe": A,
|
||||
ThreadSetName => "thread/name/set": A,
|
||||
ThreadGoalSet => "thread/goal/set": A,
|
||||
ThreadGoalGet => "thread/goal/get": A,
|
||||
ThreadGoalClear => "thread/goal/clear": A,
|
||||
ThreadUnarchive => "thread/unarchive": A,
|
||||
ThreadCompactStart => "thread/compact/start": B,
|
||||
ThreadShellCommand => "thread/shellCommand": B,
|
||||
ThreadRevert => "thread/revert": B,
|
||||
ThreadList => "thread/list": A,
|
||||
ThreadLoadedList => "thread/loaded/list": A,
|
||||
ThreadRead => "thread/read": A,
|
||||
ThreadTurnsList => "thread/turns/list": A,
|
||||
ThreadItemsList => "thread/items/list": A,
|
||||
SkillsList => "skills/list": B,
|
||||
HooksList => "hooks/list": B,
|
||||
FsReadFile => "fs/readFile": B,
|
||||
FsWriteFile => "fs/writeFile": B,
|
||||
FsCreateDirectory => "fs/createDirectory": B,
|
||||
FsGetMetadata => "fs/getMetadata": B,
|
||||
FsReadDirectory => "fs/readDirectory": B,
|
||||
FsRemove => "fs/remove": B,
|
||||
FsCopy => "fs/copy": B,
|
||||
FsWatch => "fs/watch": B,
|
||||
FsUnwatch => "fs/unwatch": B,
|
||||
TurnStart => "turn/start": A,
|
||||
TurnSteer => "turn/steer": A,
|
||||
TurnInterrupt => "turn/interrupt": A,
|
||||
ReviewStart => "review/start": B,
|
||||
ModelList => "model/list": B,
|
||||
McpServerStatusList => "mcpServerStatus/list": B,
|
||||
OneOffCommandExec => "command/exec": B,
|
||||
CommandExecWrite => "command/exec/write": B,
|
||||
CommandExecTerminate => "command/exec/terminate": B,
|
||||
CommandExecResize => "command/exec/resize": B,
|
||||
ConfigRead => "config/read": B,
|
||||
ConfigValueWrite => "config/value/write": B,
|
||||
ConfigBatchWrite => "config/batchWrite": B,
|
||||
}
|
||||
}
|
||||
|
||||
codex_methods! {
|
||||
ClientNotificationMethod {
|
||||
Initialized => "initialized": A,
|
||||
}
|
||||
}
|
||||
|
||||
codex_methods! {
|
||||
ServerRequestMethod {
|
||||
CommandExecutionRequestApproval => "item/commandExecution/requestApproval": A,
|
||||
FileChangeRequestApproval => "item/fileChange/requestApproval": A,
|
||||
ToolRequestUserInput => "item/tool/requestUserInput": A,
|
||||
PermissionsRequestApproval => "item/permissions/requestApproval": A,
|
||||
DynamicToolCall => "item/tool/call": A,
|
||||
}
|
||||
}
|
||||
|
||||
codex_methods! {
|
||||
ServerNotificationMethod {
|
||||
Error => "error": A,
|
||||
ThreadStarted => "thread/started": A,
|
||||
ThreadStatusChanged => "thread/status/changed": A,
|
||||
ThreadArchived => "thread/archived": A,
|
||||
ThreadDeleted => "thread/deleted": B,
|
||||
ThreadUnarchived => "thread/unarchived": A,
|
||||
ThreadClosed => "thread/closed": A,
|
||||
ThreadReverted => "thread/reverted": B,
|
||||
SkillsChanged => "skills/changed": B,
|
||||
ThreadNameUpdated => "thread/name/updated": A,
|
||||
ThreadGoalUpdated => "thread/goal/updated": A,
|
||||
ThreadGoalCleared => "thread/goal/cleared": A,
|
||||
ThreadTokenUsageUpdated => "thread/tokenUsage/updated": A,
|
||||
TurnStarted => "turn/started": A,
|
||||
TurnCompleted => "turn/completed": A,
|
||||
TurnDiffUpdated => "turn/diff/updated": A,
|
||||
TurnPlanUpdated => "turn/plan/updated": A,
|
||||
ItemStarted => "item/started": A,
|
||||
ItemCompleted => "item/completed": A,
|
||||
AgentMessageDelta => "item/agentMessage/delta": A,
|
||||
PlanDelta => "item/plan/delta": A,
|
||||
CommandExecOutputDelta => "command/exec/outputDelta": B,
|
||||
CommandExecutionOutputDelta => "item/commandExecution/outputDelta": A,
|
||||
TerminalInteraction => "item/commandExecution/terminalInteraction": A,
|
||||
FileChangeOutputDelta => "item/fileChange/outputDelta": A,
|
||||
FileChangePatchUpdated => "item/fileChange/patchUpdated": A,
|
||||
ServerRequestResolved => "serverRequest/resolved": A,
|
||||
McpToolCallProgress => "item/mcpToolCall/progress": A,
|
||||
FsChanged => "fs/changed": B,
|
||||
ReasoningSummaryTextDelta => "item/reasoning/summaryTextDelta": A,
|
||||
ReasoningSummaryPartAdded => "item/reasoning/summaryPartAdded": A,
|
||||
ReasoningTextDelta => "item/reasoning/textDelta": A,
|
||||
ContextCompacted => "thread/compacted": B,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,219 @@
|
||||
use codewhale_app_server_protocol::methods::{
|
||||
ClientNotificationMethod, ClientRequestMethod, ServerNotificationMethod, ServerRequestMethod,
|
||||
Tier,
|
||||
};
|
||||
use std::collections::{BTreeMap, BTreeSet};
|
||||
|
||||
const INVENTORY: &str = include_str!("../METHODS.md");
|
||||
|
||||
struct Kind {
|
||||
section: &'static str,
|
||||
pinned: &'static str,
|
||||
typed: Vec<(&'static str, Tier)>,
|
||||
}
|
||||
|
||||
fn kinds() -> [Kind; 4] {
|
||||
fn typed<T: Copy>(
|
||||
all: &[T],
|
||||
method: fn(T) -> &'static str,
|
||||
tier: fn(T) -> Tier,
|
||||
) -> Vec<(&'static str, Tier)> {
|
||||
all.iter()
|
||||
.map(|value| (method(*value), tier(*value)))
|
||||
.collect()
|
||||
}
|
||||
[
|
||||
Kind {
|
||||
section: "Client requests",
|
||||
pinned: include_str!("pinned/codex/ClientRequest.ts"),
|
||||
typed: typed(
|
||||
ClientRequestMethod::ALL,
|
||||
ClientRequestMethod::method,
|
||||
ClientRequestMethod::tier,
|
||||
),
|
||||
},
|
||||
Kind {
|
||||
section: "Client notifications",
|
||||
pinned: include_str!("pinned/codex/ClientNotification.ts"),
|
||||
typed: typed(
|
||||
ClientNotificationMethod::ALL,
|
||||
ClientNotificationMethod::method,
|
||||
ClientNotificationMethod::tier,
|
||||
),
|
||||
},
|
||||
Kind {
|
||||
section: "Server requests",
|
||||
pinned: include_str!("pinned/codex/ServerRequest.ts"),
|
||||
typed: typed(
|
||||
ServerRequestMethod::ALL,
|
||||
ServerRequestMethod::method,
|
||||
ServerRequestMethod::tier,
|
||||
),
|
||||
},
|
||||
Kind {
|
||||
section: "Server notifications",
|
||||
pinned: include_str!("pinned/codex/ServerNotification.ts"),
|
||||
typed: typed(
|
||||
ServerNotificationMethod::ALL,
|
||||
ServerNotificationMethod::method,
|
||||
ServerNotificationMethod::tier,
|
||||
),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
fn pinned_methods(source: &str) -> Vec<&str> {
|
||||
source
|
||||
.split("\"method\": \"")
|
||||
.skip(1)
|
||||
.map(|rest| rest.split('"').next().expect("method literal"))
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn inventory_rows(section: &str) -> Vec<(String, String, String)> {
|
||||
let heading = format!("## {section}\n");
|
||||
let start = INVENTORY
|
||||
.find(&heading)
|
||||
.unwrap_or_else(|| panic!("inventory has no section {section}"))
|
||||
+ heading.len();
|
||||
INVENTORY[start..]
|
||||
.lines()
|
||||
.take_while(|line| !line.starts_with("## "))
|
||||
.filter(|line| line.starts_with("| `"))
|
||||
.map(|line| {
|
||||
let cells = line
|
||||
.trim_matches('|')
|
||||
.split('|')
|
||||
.map(str::trim)
|
||||
.collect::<Vec<_>>();
|
||||
assert_eq!(cells.len(), 5, "inventory row shape: {line}");
|
||||
(
|
||||
cells[0].trim_matches('`').to_owned(),
|
||||
cells[1].to_owned(),
|
||||
cells[2].to_owned(),
|
||||
)
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn typed_methods_inventory_and_pinned_export_agree() {
|
||||
let mut totals = BTreeMap::new();
|
||||
for kind in kinds() {
|
||||
let pinned = pinned_methods(kind.pinned);
|
||||
let pinned_set = pinned.iter().copied().collect::<BTreeSet<_>>();
|
||||
assert_eq!(
|
||||
pinned.len(),
|
||||
pinned_set.len(),
|
||||
"{}: duplicate pinned method",
|
||||
kind.section
|
||||
);
|
||||
|
||||
let rows = inventory_rows(kind.section);
|
||||
let mut inventory = BTreeMap::new();
|
||||
for (method, tier, status) in &rows {
|
||||
assert!(
|
||||
matches!(tier.as_str(), "A" | "B" | "C" | "undecided"),
|
||||
"{}: {method} has tier {tier}",
|
||||
kind.section
|
||||
);
|
||||
assert!(
|
||||
matches!(
|
||||
status.as_str(),
|
||||
"implemented" | "partial" | "missing" | "method-not-found" | "never-sent"
|
||||
),
|
||||
"{}: {method} has status {status}",
|
||||
kind.section
|
||||
);
|
||||
assert_eq!(
|
||||
tier == "C",
|
||||
matches!(status.as_str(), "method-not-found" | "never-sent"),
|
||||
"{}: {method} status {status} does not fit tier {tier}",
|
||||
kind.section
|
||||
);
|
||||
assert!(
|
||||
inventory.insert(method.as_str(), tier.as_str()).is_none(),
|
||||
"{}: {method} listed twice",
|
||||
kind.section
|
||||
);
|
||||
*totals.entry(tier.clone()).or_insert(0usize) += 1;
|
||||
}
|
||||
let inventory_set = inventory.keys().copied().collect::<BTreeSet<_>>();
|
||||
assert_eq!(
|
||||
pinned_set.difference(&inventory_set).collect::<Vec<_>>(),
|
||||
Vec::<&&str>::new(),
|
||||
"{}: pinned export names methods the inventory lacks",
|
||||
kind.section
|
||||
);
|
||||
assert_eq!(
|
||||
inventory_set.difference(&pinned_set).collect::<Vec<_>>(),
|
||||
Vec::<&&str>::new(),
|
||||
"{}: inventory names methods the pinned export lacks",
|
||||
kind.section
|
||||
);
|
||||
|
||||
let mut typed = BTreeSet::new();
|
||||
for (method, tier) in &kind.typed {
|
||||
assert!(
|
||||
typed.insert(*method),
|
||||
"{}: {method} typed twice",
|
||||
kind.section
|
||||
);
|
||||
assert!(
|
||||
pinned_set.contains(method),
|
||||
"{}: typed {method} is not in the pinned export",
|
||||
kind.section
|
||||
);
|
||||
let expected = match tier {
|
||||
Tier::A => "A",
|
||||
Tier::B => "B",
|
||||
};
|
||||
assert_eq!(
|
||||
inventory.get(method).copied(),
|
||||
Some(expected),
|
||||
"{}: typed {method} disagrees with the inventory tier",
|
||||
kind.section
|
||||
);
|
||||
}
|
||||
for (method, tier) in &inventory {
|
||||
if matches!(*tier, "A" | "B") {
|
||||
assert!(
|
||||
typed.contains(method),
|
||||
"{}: Tier {tier} {method} has no typed variant",
|
||||
kind.section
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
assert!(totals.values().sum::<usize>() > 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn typed_methods_round_trip_their_wire_names() {
|
||||
for method in ClientRequestMethod::ALL {
|
||||
assert_eq!(
|
||||
ClientRequestMethod::from_method(method.method()),
|
||||
Some(*method)
|
||||
);
|
||||
let wire = serde_json::to_value(method).expect("serialize method");
|
||||
assert_eq!(wire, method.method());
|
||||
assert_eq!(
|
||||
serde_json::from_value::<ClientRequestMethod>(wire).expect("deserialize method"),
|
||||
*method
|
||||
);
|
||||
}
|
||||
for method in ServerNotificationMethod::ALL {
|
||||
assert_eq!(
|
||||
ServerNotificationMethod::from_method(method.method()),
|
||||
Some(*method)
|
||||
);
|
||||
}
|
||||
for method in ServerRequestMethod::ALL {
|
||||
assert_eq!(
|
||||
ServerRequestMethod::from_method(method.method()),
|
||||
Some(*method)
|
||||
);
|
||||
}
|
||||
assert_eq!(ClientRequestMethod::from_method("account/read"), None);
|
||||
assert!(serde_json::from_value::<ClientRequestMethod>("feedback/upload".into()).is_err());
|
||||
}
|
||||
@@ -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 ClientNotification = { "method": "initialized" };
|
||||
@@ -0,0 +1,109 @@
|
||||
// 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 { FuzzyFileSearchParams } from "./FuzzyFileSearchParams";
|
||||
import type { GetAuthStatusParams } from "./GetAuthStatusParams";
|
||||
import type { GetConversationSummaryParams } from "./GetConversationSummaryParams";
|
||||
import type { GitDiffToRemoteParams } from "./GitDiffToRemoteParams";
|
||||
import type { InitializeParams } from "./InitializeParams";
|
||||
import type { RequestId } from "./RequestId";
|
||||
import type { AppsInstalledParams } from "./v2/AppsInstalledParams";
|
||||
import type { AppsListParams } from "./v2/AppsListParams";
|
||||
import type { AppsReadParams } from "./v2/AppsReadParams";
|
||||
import type { CancelLoginAccountParams } from "./v2/CancelLoginAccountParams";
|
||||
import type { CommandExecParams } from "./v2/CommandExecParams";
|
||||
import type { CommandExecResizeParams } from "./v2/CommandExecResizeParams";
|
||||
import type { CommandExecTerminateParams } from "./v2/CommandExecTerminateParams";
|
||||
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 { ConsumeAccountRateLimitResetCreditParams } from "./v2/ConsumeAccountRateLimitResetCreditParams";
|
||||
import type { ExperimentalFeatureEnablementSetParams } from "./v2/ExperimentalFeatureEnablementSetParams";
|
||||
import type { ExperimentalFeatureListParams } from "./v2/ExperimentalFeatureListParams";
|
||||
import type { ExternalAgentConfigDetectParams } from "./v2/ExternalAgentConfigDetectParams";
|
||||
import type { ExternalAgentConfigImportHistoryRecordParams } from "./v2/ExternalAgentConfigImportHistoryRecordParams";
|
||||
import type { ExternalAgentConfigImportParams } from "./v2/ExternalAgentConfigImportParams";
|
||||
import type { FeedbackSaveParams } from "./v2/FeedbackSaveParams";
|
||||
import type { FeedbackUploadParams } from "./v2/FeedbackUploadParams";
|
||||
import type { FsCopyParams } from "./v2/FsCopyParams";
|
||||
import type { FsCreateDirectoryParams } from "./v2/FsCreateDirectoryParams";
|
||||
import type { FsGetMetadataParams } from "./v2/FsGetMetadataParams";
|
||||
import type { FsReadDirectoryParams } from "./v2/FsReadDirectoryParams";
|
||||
import type { FsReadFileParams } from "./v2/FsReadFileParams";
|
||||
import type { FsRemoveParams } from "./v2/FsRemoveParams";
|
||||
import type { FsUnwatchParams } from "./v2/FsUnwatchParams";
|
||||
import type { FsWatchParams } from "./v2/FsWatchParams";
|
||||
import type { FsWriteFileParams } from "./v2/FsWriteFileParams";
|
||||
import type { GetAccountParams } from "./v2/GetAccountParams";
|
||||
import type { GetAccountRateLimitsParams } from "./v2/GetAccountRateLimitsParams";
|
||||
import type { GetAccountTokenUsageParams } from "./v2/GetAccountTokenUsageParams";
|
||||
import type { HooksListParams } from "./v2/HooksListParams";
|
||||
import type { ListMcpServerStatusParams } from "./v2/ListMcpServerStatusParams";
|
||||
import type { LoginAccountParams } from "./v2/LoginAccountParams";
|
||||
import type { MarketplaceAddParams } from "./v2/MarketplaceAddParams";
|
||||
import type { MarketplaceRemoveParams } from "./v2/MarketplaceRemoveParams";
|
||||
import type { MarketplaceUpgradeParams } from "./v2/MarketplaceUpgradeParams";
|
||||
import type { McpResourceReadParams } from "./v2/McpResourceReadParams";
|
||||
import type { McpServerOauthLoginParams } from "./v2/McpServerOauthLoginParams";
|
||||
import type { McpServerToolCallParams } from "./v2/McpServerToolCallParams";
|
||||
import type { ModelListParams } from "./v2/ModelListParams";
|
||||
import type { ModelProviderCapabilitiesReadParams } from "./v2/ModelProviderCapabilitiesReadParams";
|
||||
import type { PermissionProfileListParams } from "./v2/PermissionProfileListParams";
|
||||
import type { PluginInstallParams } from "./v2/PluginInstallParams";
|
||||
import type { PluginInstalledParams } from "./v2/PluginInstalledParams";
|
||||
import type { PluginListParams } from "./v2/PluginListParams";
|
||||
import type { PluginReadParams } from "./v2/PluginReadParams";
|
||||
import type { PluginReconcileParams } from "./v2/PluginReconcileParams";
|
||||
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";
|
||||
import type { SkillsConfigWriteParams } from "./v2/SkillsConfigWriteParams";
|
||||
import type { SkillsExtraRootsSetParams } from "./v2/SkillsExtraRootsSetParams";
|
||||
import type { SkillsListParams } from "./v2/SkillsListParams";
|
||||
import type { ThreadApproveGuardianDeniedActionParams } from "./v2/ThreadApproveGuardianDeniedActionParams";
|
||||
import type { ThreadArchiveParams } from "./v2/ThreadArchiveParams";
|
||||
import type { ThreadAttachmentAddParams } from "./v2/ThreadAttachmentAddParams";
|
||||
import type { ThreadAttachmentListParams } from "./v2/ThreadAttachmentListParams";
|
||||
import type { ThreadAttachmentOwnerListParams } from "./v2/ThreadAttachmentOwnerListParams";
|
||||
import type { ThreadAttachmentRemoveParams } from "./v2/ThreadAttachmentRemoveParams";
|
||||
import type { ThreadCompactStartParams } from "./v2/ThreadCompactStartParams";
|
||||
import type { ThreadDeleteParams } from "./v2/ThreadDeleteParams";
|
||||
import type { ThreadForkParams } from "./v2/ThreadForkParams";
|
||||
import type { ThreadGoalClearParams } from "./v2/ThreadGoalClearParams";
|
||||
import type { ThreadGoalGetParams } from "./v2/ThreadGoalGetParams";
|
||||
import type { ThreadGoalSetParams } from "./v2/ThreadGoalSetParams";
|
||||
import type { ThreadInjectItemsParams } from "./v2/ThreadInjectItemsParams";
|
||||
import type { ThreadItemsListParams } from "./v2/ThreadItemsListParams";
|
||||
import type { ThreadListParams } from "./v2/ThreadListParams";
|
||||
import type { ThreadLoadedListParams } from "./v2/ThreadLoadedListParams";
|
||||
import type { ThreadMetadataUpdateParams } from "./v2/ThreadMetadataUpdateParams";
|
||||
import type { ThreadReadParams } from "./v2/ThreadReadParams";
|
||||
import type { ThreadResumeParams } from "./v2/ThreadResumeParams";
|
||||
import type { ThreadRevertParams } from "./v2/ThreadRevertParams";
|
||||
import type { ThreadSectionCreateParams } from "./v2/ThreadSectionCreateParams";
|
||||
import type { ThreadSectionDeleteParams } from "./v2/ThreadSectionDeleteParams";
|
||||
import type { ThreadSectionListParams } from "./v2/ThreadSectionListParams";
|
||||
import type { ThreadSectionMoveParams } from "./v2/ThreadSectionMoveParams";
|
||||
import type { ThreadSectionUpdateParams } from "./v2/ThreadSectionUpdateParams";
|
||||
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";
|
||||
import type { TurnStartParams } from "./v2/TurnStartParams";
|
||||
import type { TurnSteerParams } from "./v2/TurnSteerParams";
|
||||
import type { WindowsSandboxSetupStartParams } from "./v2/WindowsSandboxSetupStartParams";
|
||||
|
||||
/**
|
||||
* Request from the client to the server.
|
||||
*/
|
||||
export type ClientRequest ={ "method": "initialize", id: RequestId, params: InitializeParams, } | { "method": "thread/start", id: RequestId, params: ThreadStartParams, } | { "method": "thread/resume", id: RequestId, params: ThreadResumeParams, } | { "method": "thread/fork", id: RequestId, params: ThreadForkParams, } | { "method": "thread/archive", id: RequestId, params: ThreadArchiveParams, } | { "method": "thread/delete", id: RequestId, params: ThreadDeleteParams, } | { "method": "thread/unsubscribe", id: RequestId, params: ThreadUnsubscribeParams, } | { "method": "thread/name/set", id: RequestId, params: ThreadSetNameParams, } | { "method": "thread/goal/set", id: RequestId, params: ThreadGoalSetParams, } | { "method": "thread/goal/get", id: RequestId, params: ThreadGoalGetParams, } | { "method": "thread/goal/clear", id: RequestId, params: ThreadGoalClearParams, } | { "method": "thread/metadata/update", id: RequestId, params: ThreadMetadataUpdateParams, } | { "method": "thread/attachment/add", id: RequestId, params: ThreadAttachmentAddParams, } | { "method": "thread/attachment/list", id: RequestId, params: ThreadAttachmentListParams, } | { "method": "thread/attachmentOwner/list", id: RequestId, params: ThreadAttachmentOwnerListParams, } | { "method": "thread/attachment/remove", id: RequestId, params: ThreadAttachmentRemoveParams, } | { "method": "thread/section/move", id: RequestId, params: ThreadSectionMoveParams, } | { "method": "thread/unarchive", id: RequestId, params: ThreadUnarchiveParams, } | { "method": "thread/compact/start", id: RequestId, params: ThreadCompactStartParams, } | { "method": "thread/shellCommand", id: RequestId, params: ThreadShellCommandParams, } | { "method": "thread/approveGuardianDeniedAction", id: RequestId, params: ThreadApproveGuardianDeniedActionParams, } | { "method": "thread/revert", id: RequestId, params: ThreadRevertParams, } | { "method": "thread/list", id: RequestId, params: ThreadListParams, } | { "method": "threadSection/list", id: RequestId, params: ThreadSectionListParams, } | { "method": "threadSection/create", id: RequestId, params: ThreadSectionCreateParams, } | { "method": "threadSection/update", id: RequestId, params: ThreadSectionUpdateParams, } | { "method": "threadSection/delete", id: RequestId, params: ThreadSectionDeleteParams, } | { "method": "thread/loaded/list", id: RequestId, params: ThreadLoadedListParams, } | { "method": "thread/read", id: RequestId, params: ThreadReadParams, } | { "method": "thread/turns/list", id: RequestId, params: ThreadTurnsListParams, } | { "method": "thread/items/list", id: RequestId, params: ThreadItemsListParams, } | { "method": "thread/inject_items", id: RequestId, params: ThreadInjectItemsParams, } | { "method": "skills/list", id: RequestId, params: SkillsListParams, } | { "method": "skills/extraRoots/set", id: RequestId, params: SkillsExtraRootsSetParams, } | { "method": "hooks/list", id: RequestId, params: HooksListParams, } | { "method": "marketplace/add", id: RequestId, params: MarketplaceAddParams, } | { "method": "marketplace/remove", id: RequestId, params: MarketplaceRemoveParams, } | { "method": "marketplace/upgrade", id: RequestId, params: MarketplaceUpgradeParams, } | { "method": "plugin/list", id: RequestId, params: PluginListParams, } | { "method": "plugin/installed", id: RequestId, params: PluginInstalledParams, } | { "method": "plugin/reconcile", id: RequestId, params: PluginReconcileParams, } | { "method": "plugin/read", id: RequestId, params: PluginReadParams, } | { "method": "plugin/skill/read", id: RequestId, params: PluginSkillReadParams, } | { "method": "plugin/share/save", id: RequestId, params: PluginShareSaveParams, } | { "method": "plugin/share/updateTargets", id: RequestId, params: PluginShareUpdateTargetsParams, } | { "method": "plugin/share/list", id: RequestId, params: PluginShareListParams, } | { "method": "plugin/share/checkout", id: RequestId, params: PluginShareCheckoutParams, } | { "method": "plugin/share/delete", id: RequestId, params: PluginShareDeleteParams, } | { "method": "app/read", id: RequestId, params: AppsReadParams, } | { "method": "app/list", id: RequestId, params: AppsListParams, } | { "method": "app/installed", id: RequestId, params: AppsInstalledParams, } | { "method": "fs/readFile", id: RequestId, params: FsReadFileParams, } | { "method": "fs/writeFile", id: RequestId, params: FsWriteFileParams, } | { "method": "fs/createDirectory", id: RequestId, params: FsCreateDirectoryParams, } | { "method": "fs/getMetadata", id: RequestId, params: FsGetMetadataParams, } | { "method": "fs/readDirectory", id: RequestId, params: FsReadDirectoryParams, } | { "method": "fs/remove", id: RequestId, params: FsRemoveParams, } | { "method": "fs/copy", id: RequestId, params: FsCopyParams, } | { "method": "fs/watch", id: RequestId, params: FsWatchParams, } | { "method": "fs/unwatch", id: RequestId, params: FsUnwatchParams, } | { "method": "skills/config/write", id: RequestId, params: SkillsConfigLine truncated
|
||||
@@ -0,0 +1,93 @@
|
||||
// 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 { FuzzyFileSearchSessionCompletedNotification } from "./FuzzyFileSearchSessionCompletedNotification";
|
||||
import type { FuzzyFileSearchSessionUpdatedNotification } from "./FuzzyFileSearchSessionUpdatedNotification";
|
||||
import type { AccountLoginCompletedNotification } from "./v2/AccountLoginCompletedNotification";
|
||||
import type { AccountRateLimitsUpdatedNotification } from "./v2/AccountRateLimitsUpdatedNotification";
|
||||
import type { AccountUpdatedNotification } from "./v2/AccountUpdatedNotification";
|
||||
import type { AgentMessageDeltaNotification } from "./v2/AgentMessageDeltaNotification";
|
||||
import type { AppListUpdatedNotification } from "./v2/AppListUpdatedNotification";
|
||||
import type { AuthRecoveryNotification } from "./v2/AuthRecoveryNotification";
|
||||
import type { CommandExecOutputDeltaNotification } from "./v2/CommandExecOutputDeltaNotification";
|
||||
import type { CommandExecutionOutputDeltaNotification } from "./v2/CommandExecutionOutputDeltaNotification";
|
||||
import type { ConfigWarningNotification } from "./v2/ConfigWarningNotification";
|
||||
import type { ContextCompactedNotification } from "./v2/ContextCompactedNotification";
|
||||
import type { DeprecationNoticeNotification } from "./v2/DeprecationNoticeNotification";
|
||||
import type { EnvironmentConnectionNotification } from "./v2/EnvironmentConnectionNotification";
|
||||
import type { ErrorNotification } from "./v2/ErrorNotification";
|
||||
import type { ExternalAgentConfigImportCompletedNotification } from "./v2/ExternalAgentConfigImportCompletedNotification";
|
||||
import type { ExternalAgentConfigImportProgressNotification } from "./v2/ExternalAgentConfigImportProgressNotification";
|
||||
import type { FileChangeOutputDeltaNotification } from "./v2/FileChangeOutputDeltaNotification";
|
||||
import type { FileChangePatchUpdatedNotification } from "./v2/FileChangePatchUpdatedNotification";
|
||||
import type { FsChangedNotification } from "./v2/FsChangedNotification";
|
||||
import type { GatewayOAuthChangedNotification } from "./v2/GatewayOAuthChangedNotification";
|
||||
import type { GuardianWarningNotification } from "./v2/GuardianWarningNotification";
|
||||
import type { HookCompletedNotification } from "./v2/HookCompletedNotification";
|
||||
import type { HookStartedNotification } from "./v2/HookStartedNotification";
|
||||
import type { ItemCompletedNotification } from "./v2/ItemCompletedNotification";
|
||||
import type { ItemGuardianApprovalReviewCompletedNotification } from "./v2/ItemGuardianApprovalReviewCompletedNotification";
|
||||
import type { ItemGuardianApprovalReviewStartedNotification } from "./v2/ItemGuardianApprovalReviewStartedNotification";
|
||||
import type { ItemStartedNotification } from "./v2/ItemStartedNotification";
|
||||
import type { McpServerEventStreamNotification } from "./v2/McpServerEventStreamNotification";
|
||||
import type { McpServerOauthLoginCompletedNotification } from "./v2/McpServerOauthLoginCompletedNotification";
|
||||
import type { McpServerStatusUpdatedNotification } from "./v2/McpServerStatusUpdatedNotification";
|
||||
import type { McpToolCallProgressNotification } from "./v2/McpToolCallProgressNotification";
|
||||
import type { ModelReroutedNotification } from "./v2/ModelReroutedNotification";
|
||||
import type { ModelSafetyBufferingUpdatedNotification } from "./v2/ModelSafetyBufferingUpdatedNotification";
|
||||
import type { ModelVerificationNotification } from "./v2/ModelVerificationNotification";
|
||||
import type { PlanDeltaNotification } from "./v2/PlanDeltaNotification";
|
||||
import type { ProcessExitedNotification } from "./v2/ProcessExitedNotification";
|
||||
import type { ProcessOutputDeltaNotification } from "./v2/ProcessOutputDeltaNotification";
|
||||
import type { ProjectChangedNotification } from "./v2/ProjectChangedNotification";
|
||||
import type { RawResponseCompletedNotification } from "./v2/RawResponseCompletedNotification";
|
||||
import type { RawResponseItemCompletedNotification } from "./v2/RawResponseItemCompletedNotification";
|
||||
import type { ReasoningSummaryPartAddedNotification } from "./v2/ReasoningSummaryPartAddedNotification";
|
||||
import type { ReasoningSummaryTextDeltaNotification } from "./v2/ReasoningSummaryTextDeltaNotification";
|
||||
import type { ReasoningTextDeltaNotification } from "./v2/ReasoningTextDeltaNotification";
|
||||
import type { RemoteControlStatusChangedNotification } from "./v2/RemoteControlStatusChangedNotification";
|
||||
import type { ServerRequestResolvedNotification } from "./v2/ServerRequestResolvedNotification";
|
||||
import type { SkillsChangedNotification } from "./v2/SkillsChangedNotification";
|
||||
import type { StrictReviewRequiredNotification } from "./v2/StrictReviewRequiredNotification";
|
||||
import type { TerminalInteractionNotification } from "./v2/TerminalInteractionNotification";
|
||||
import type { ThreadArchivedNotification } from "./v2/ThreadArchivedNotification";
|
||||
import type { ThreadAttachmentUpdatedNotification } from "./v2/ThreadAttachmentUpdatedNotification";
|
||||
import type { ThreadClosedNotification } from "./v2/ThreadClosedNotification";
|
||||
import type { ThreadDeletedNotification } from "./v2/ThreadDeletedNotification";
|
||||
import type { ThreadGoalClearedNotification } from "./v2/ThreadGoalClearedNotification";
|
||||
import type { ThreadGoalUpdatedNotification } from "./v2/ThreadGoalUpdatedNotification";
|
||||
import type { ThreadNameUpdatedNotification } from "./v2/ThreadNameUpdatedNotification";
|
||||
import type { ThreadPredictionUpdatedNotification } from "./v2/ThreadPredictionUpdatedNotification";
|
||||
import type { ThreadProjectUpdatedNotification } from "./v2/ThreadProjectUpdatedNotification";
|
||||
import type { ThreadQueueChangedNotification } from "./v2/ThreadQueueChangedNotification";
|
||||
import type { ThreadReadStateChangedNotification } from "./v2/ThreadReadStateChangedNotification";
|
||||
import type { ThreadRealtimeClosedNotification } from "./v2/ThreadRealtimeClosedNotification";
|
||||
import type { ThreadRealtimeErrorNotification } from "./v2/ThreadRealtimeErrorNotification";
|
||||
import type { ThreadRealtimeItemAddedNotification } from "./v2/ThreadRealtimeItemAddedNotification";
|
||||
import type { ThreadRealtimeItemCompletedNotification } from "./v2/ThreadRealtimeItemCompletedNotification";
|
||||
import type { ThreadRealtimeItemStartedNotification } from "./v2/ThreadRealtimeItemStartedNotification";
|
||||
import type { ThreadRealtimeItemTranscriptDeltaNotification } from "./v2/ThreadRealtimeItemTranscriptDeltaNotification";
|
||||
import type { ThreadRealtimeOutputAudioDeltaNotification } from "./v2/ThreadRealtimeOutputAudioDeltaNotification";
|
||||
import type { ThreadRealtimeSdpNotification } from "./v2/ThreadRealtimeSdpNotification";
|
||||
import type { ThreadRealtimeStartedNotification } from "./v2/ThreadRealtimeStartedNotification";
|
||||
import type { ThreadRealtimeTranscriptDeltaNotification } from "./v2/ThreadRealtimeTranscriptDeltaNotification";
|
||||
import type { ThreadRealtimeTranscriptDoneNotification } from "./v2/ThreadRealtimeTranscriptDoneNotification";
|
||||
import type { ThreadRevertedNotification } from "./v2/ThreadRevertedNotification";
|
||||
import type { ThreadSettingsUpdatedNotification } from "./v2/ThreadSettingsUpdatedNotification";
|
||||
import type { ThreadStartedNotification } from "./v2/ThreadStartedNotification";
|
||||
import type { ThreadStatusChangedNotification } from "./v2/ThreadStatusChangedNotification";
|
||||
import type { ThreadTokenUsageUpdatedNotification } from "./v2/ThreadTokenUsageUpdatedNotification";
|
||||
import type { ThreadUnarchivedNotification } from "./v2/ThreadUnarchivedNotification";
|
||||
import type { TurnCompletedNotification } from "./v2/TurnCompletedNotification";
|
||||
import type { TurnDiffUpdatedNotification } from "./v2/TurnDiffUpdatedNotification";
|
||||
import type { TurnModerationMetadataNotification } from "./v2/TurnModerationMetadataNotification";
|
||||
import type { TurnPlanUpdatedNotification } from "./v2/TurnPlanUpdatedNotification";
|
||||
import type { TurnStartedNotification } from "./v2/TurnStartedNotification";
|
||||
import type { WarningNotification } from "./v2/WarningNotification";
|
||||
import type { WindowsSandboxSetupCompletedNotification } from "./v2/WindowsSandboxSetupCompletedNotification";
|
||||
import type { WindowsWorldWritableWarningNotification } from "./v2/WindowsWorldWritableWarningNotification";
|
||||
|
||||
/**
|
||||
* Notification sent from the server to the client.
|
||||
*/
|
||||
export type ServerNotification = { "method": "error", "params": ErrorNotification } | { "method": "thread/started", "params": ThreadStartedNotification } | { "method": "thread/status/changed", "params": ThreadStatusChangedNotification } | { "method": "thread/readState/changed", "params": ThreadReadStateChangedNotification } | { "method": "thread/archived", "params": ThreadArchivedNotification } | { "method": "thread/deleted", "params": ThreadDeletedNotification } | { "method": "thread/unarchived", "params": ThreadUnarchivedNotification } | { "method": "thread/closed", "params": ThreadClosedNotification } | { "method": "thread/reverted", "params": ThreadRevertedNotification } | { "method": "skills/changed", "params": SkillsChangedNotification } | { "method": "thread/name/updated", "params": ThreadNameUpdatedNotification } | { "method": "thread/attachment/updated", "params": ThreadAttachmentUpdatedNotification } | { "method": "thread/goal/updated", "params": ThreadGoalUpdatedNotification } | { "method": "thread/prediction/updated", "params": ThreadPredictionUpdatedNotification } | { "method": "thread/goal/cleared", "params": ThreadGoalClearedNotification } | { "method": "thread/queue/changed", "params": ThreadQueueChangedNotification } | { "method": "project/changed", "params": ProjectChangedNotification } | { "method": "thread/project/updated", "params": ThreadProjectUpdatedNotification } | { "method": "thread/environment/connected", "params": EnvironmentConnectionNotification } | { "method": "thread/environment/disconnected", "params": EnvironmentConnectionNotification } | { "method": "thread/settings/updated", "params": ThreadSettingsUpdatedNotification } | { "method": "thread/tokenUsage/updated", "params": ThreadTokenUsageUpdatedNotification } | { "method": "turn/started", "params": TurnStartedNotification } | { "method": "hook/started", "params": HookStartedNotification } | { "method": "turn/completed", "params": TurnCompletedNotification } | { "method": "hook/completed", "params": HookCompletedNotification } | { "method": "turn/diff/updated", "params": TurnDiffUpdatedNotification } | { "method": "turn/plan/updated", "params": TurnPlanUpdatedNotification } | { "method": "item/started", "params": ItemStartedNotification } | { "method": "item/autoApprovalReview/started", "params": ItemGuardianApprovalReviewStartedNotification } | { "method": "item/autoApprovalReview/completed", "params": ItemGuardianApprovalReviewCompletedNotification } | { "method": "autoApprovalReview/strictReviewRequired", "params": StrictReviewRequiredNotification } | { "method": "item/completed", "params": ItemCompletedNotification } | { "method": "rawResponseItem/completed", "params": RawResponseItemCompletedNotification } | { "method": "rawResponse/completed", "params": RawResponseCompletedNotification } | { "method": "item/agentMessage/delta", "params": AgentMessageDeltaNotification } | { "method": "item/plan/delta", "params": PlanDeltaNotification } | { "method": "command/exec/outputDelta", "params": CommandExecOutputDeltaNotification } | { "method": "process/outputDelta", "params": ProcessOutputDeltaNotification } | { "method": "process/exited", "params": ProcessExitedNotification } | { "method": "item/commandExecution/outputDelta", "params": CommandExecutionOutputDeltaNotification } | { "method": "item/commandExecution/terminalInteraction", "params": TerminalInteractionNotification } | { "method": "item/fileChange/outputDelta", "params": FileChangeOutputDeltaNotification } | { "method": "item/fileChange/patchUpdated", "params": FileChangePatchUpdatedNotification } | { "method": "serverRequest/resolved", "params": ServerRequestResolvedNotification } | { "method": "item/mcpToolCall/progress", "params": McpToolCallProgressNotification } | { "method": "mcpServer/oauthLogin/completed", "params": McpServerOauthLoginCompletedNotification } | { "method": "mcpServer/startupStatus/updated", "params": McpServerStatusUpdatedNotification } | { "method": "mcpServer/event/stream/notification", "params": McpServerEventStreamNotification } | { "method": "account/updated", "params": AccountUpdatedNotification } | { "method": "account/gatewayOAuth/changed", "params": GatewayOAuthChangedNotification } | { "method": "account/rateLimits/updated", "params": AccountRateLimitsUpdatedNotification } | { "method": "app/list/updated", "params": AppListUpdatedNotification } | { "method": "remoteControl/status/changed", "params": RemoteControlStatusChangedNotification } | { "method": "externalAgentConfig/import/progress", "params": ExternalAgentConfigImportProgressNotification } | { "method": "externalAgentConfig/import/completed", "params": ExternalAgentConfigImportCompletedNotification } | { "method": "fs/changed", "params": FsChangedNotification } | { "method": "item/reasoning/summaryTextDelta", "params": ReasoningSummaryTextDeltaNotification } | { "method": "item/reasoning/summaryPartAdded", "params": ReasoningSummaryPartAddedNotification } | { "method":Line truncated
|
||||
@@ -0,0 +1,19 @@
|
||||
// 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 { ApplyPatchApprovalParams } from "./ApplyPatchApprovalParams";
|
||||
import type { ExecCommandApprovalParams } from "./ExecCommandApprovalParams";
|
||||
import type { RequestId } from "./RequestId";
|
||||
import type { AttestationGenerateParams } from "./v2/AttestationGenerateParams";
|
||||
import type { ChatgptAuthTokensRefreshParams } from "./v2/ChatgptAuthTokensRefreshParams";
|
||||
import type { CommandExecutionRequestApprovalParams } from "./v2/CommandExecutionRequestApprovalParams";
|
||||
import type { DynamicToolCallParams } from "./v2/DynamicToolCallParams";
|
||||
import type { FileChangeRequestApprovalParams } from "./v2/FileChangeRequestApprovalParams";
|
||||
import type { McpServerElicitationRequestParams } from "./v2/McpServerElicitationRequestParams";
|
||||
import type { PermissionsRequestApprovalParams } from "./v2/PermissionsRequestApprovalParams";
|
||||
import type { ToolRequestUserInputParams } from "./v2/ToolRequestUserInputParams";
|
||||
|
||||
/**
|
||||
* Request initiated from the server and sent to the client.
|
||||
*/
|
||||
export type ServerRequest ={ "method": "item/commandExecution/requestApproval", id: RequestId, params: CommandExecutionRequestApprovalParams, } | { "method": "item/fileChange/requestApproval", id: RequestId, params: FileChangeRequestApprovalParams, } | { "method": "item/tool/requestUserInput", id: RequestId, params: ToolRequestUserInputParams, } | { "method": "mcpServer/elicitation/request", id: RequestId, params: McpServerElicitationRequestParams, } | { "method": "item/permissions/requestApproval", id: RequestId, params: PermissionsRequestApprovalParams, } | { "method": "item/tool/call", id: RequestId, params: DynamicToolCallParams, } | { "method": "account/chatgptAuthTokens/refresh", id: RequestId, params: ChatgptAuthTokensRefreshParams, } | { "method": "attestation/generate", id: RequestId, params: AttestationGenerateParams, } | { "method": "applyPatchApproval", id: RequestId, params: ApplyPatchApprovalParams, } | { "method": "execCommandApproval", id: RequestId, params: ExecCommandApprovalParams, };
|
||||
Reference in new issue
Block a user