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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Changelog

All notable package changes are documented here. The package version mirrors the
`codex-cli` version used to generate `src/`, and generated entries use
`codex app-server generate-ts --experimental`.

## 0.144.0 - 2026-07-11

Generated from `codex-cli 0.144.0`.

### Added

- Remote control pairing and client-management RPCs:
`remoteControl/pairing/start`, `remoteControl/pairing/status`,
`remoteControl/client/list`, and `remoteControl/client/revoke`.
- Thread lifecycle support for deletion via `thread/delete` and the
`thread/deleted` notification.
- Background terminal listing and termination RPCs for threads.
- Thread hierarchy and subagent metadata, including `parentThreadId`,
`historyMode`, `extra`, `recencyAt`, and list filters for parent or ancestor
thread IDs.
- Account usage and rate-limit reset-credit types and RPCs, including
`account/usage/read`, `account/rateLimitResetCredit/consume`, reset-credit
summaries, and spend-control limit snapshots.
- Realtime session controls for speech append, handoff behavior, startup
context, realtime model override, and realtime protocol version override.
- Dynamic tool namespace specs alongside function specs.
- External-agent config import progress notifications and import history reads.
- Server-to-client `currentTime/read` requests.
- Skills extra-root configuration, npm plugin source metadata, app template
summaries, and plugin install policy source metadata.
- Turn moderation metadata and model safety-buffering notifications.

### Changed

- `thread/turns/items/list` was renamed to `thread/items/list`, with
`ThreadTurnsItemsList*` types renamed to `ThreadItemsList*`.
- `ReasoningEffort` widened from a fixed string union to `string`.
- Runtime workspace roots now use `AbsolutePathBuf[]` in thread start, resume,
fork, and turn start params.
- `ThreadItem` path fields now use `LegacyAppPathString` in several places and
gained updated web-search, image-generation, sleep, subagent-activity, and
MCP app-context item shapes.
- `AskForApproval` no longer includes `"on-failure"`.
- `AuthMode` gained `headers`, `personalAccessToken`, and `bedrockApiKey`.
- `WebSearchMode` gained `indexed`.
- `ThreadSortKey` gained `recency_at`.

## 0.135.0 - 2026-06-04

Generated from `codex-cli 0.135.0`.

### Changed

- Regenerated the vendored App Server protocol types from Codex CLI 0.135.0.
- Updated package metadata so `version` and `codexCliVersion` both mirror
`0.135.0`.

## 0.133.0 - 2026-06-02

Generated from `codex-cli 0.133.0`.

### Added

- Initial package population with generated App Server protocol TypeScript
types and publishing metadata.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ header.
## Versioning — the package version mirrors the Codex CLI version

**This package's version equals the `codex-cli` version that generated it.**
So `@pwrdrvr/codex-app-server-protocol@0.135.0` was generated by `codex-cli
0.135.0`. Provenance is also recorded in `package.json`:
So `@pwrdrvr/codex-app-server-protocol@0.144.0` was generated by `codex-cli
0.144.0`. Provenance is also recorded in `package.json`:

```jsonc
{
"version": "0.135.0",
"codexCliVersion": "0.135.0", // the codex-cli that generated src/
"version": "0.144.0",
"codexCliVersion": "0.144.0", // the codex-cli that generated src/
"codexExperimental": true // generated with --experimental
}
```
Expand All @@ -45,7 +45,7 @@ dist-tag (`0.133.0-next.N` on `next`) and promote the clean `0.133.0` to
`latest` once happy. Do **not** bump the patch to `0.133.1` for a packaging fix —
that would falsely imply a Codex `0.133.1` surface.

Current generated source: **`codex-cli 0.135.0`** (591 generated `.ts` files;
Current generated source: **`codex-cli 0.144.0`** (671 generated `.ts` files;
v1 surface in `src/`, v2 surface in `src/v2/`).

## Install
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "@pwrdrvr/codex-app-server-protocol",
"version": "0.135.0",
"version": "0.144.0",
"description": "TypeScript types for the Codex App Server JSON-RPC protocol, generated from `codex app-server generate-ts --experimental`. The package version mirrors the Codex CLI version used to generate it; the experimental protocol surface is included.",
"author": "PwrDrvr LLC",
"license": "MIT",
"type": "module",
"codexCliVersion": "0.135.0",
"codexCliVersion": "0.144.0",
"codexExperimental": true,
"keywords": [
"codex",
Expand Down Expand Up @@ -33,6 +33,7 @@
"files": [
"src",
"README.md",
"CHANGELOG.md",
"LICENSE"
],
"sideEffects": false,
Expand Down
5 changes: 5 additions & 0 deletions src/AgentMessageInputContent.ts
Original file line number Diff line number Diff line change
@@ -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 AgentMessageInputContent = { "type": "input_text", text: string, } | { "type": "encrypted_content", encrypted_content: string, };
5 changes: 5 additions & 0 deletions src/AmazonBedrockCredentialSource.ts
Original file line number Diff line number Diff line change
@@ -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 AmazonBedrockCredentialSource = "codexManaged" | "awsManaged";
2 changes: 1 addition & 1 deletion src/AuthMode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
/**
* Authentication mode for OpenAI-backed providers.
*/
export type AuthMode = "apikey" | "chatgpt" | "chatgptAuthTokens" | "agentIdentity";
export type AuthMode = "apikey" | "chatgpt" | "chatgptAuthTokens" | "headers" | "agentIdentity" | "personalAccessToken" | "bedrockApiKey";
17 changes: 15 additions & 2 deletions src/ClientRequest.ts

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions src/ConversationTextRole.ts
Original file line number Diff line number Diff line change
@@ -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 ConversationTextRole = "user" | "developer" | "assistant";
6 changes: 6 additions & 0 deletions src/ImageGenerationItem.ts
Original file line number Diff line number Diff line change
@@ -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 ImageGenerationItem = { id: string, status: string, revisedPrompt: string | null, result: string, savedPath?: AbsolutePathBuf, };
4 changes: 4 additions & 0 deletions src/InitializeCapabilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ experimentalApi: boolean,
* Opt into `attestation/generate` requests for upstream `x-oai-attestation`.
*/
requestAttestation: boolean,
/**
* Allow downstream MCP servers to request OpenAI extended form elicitations.
*/
mcpServerOpenaiFormElicitation?: boolean,
/**
* Exact notification method names that should be suppressed for this
* connection (for example `thread/started`).
Expand Down
11 changes: 11 additions & 0 deletions src/InternalChatMessageMetadataPassthrough.ts
Original file line number Diff line number Diff line change
@@ -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.

/**
* Internal Responses API passthrough metadata copied into underlying chat messages.
*
* Responses API strongly types this payload. Do not modify it without first getting API
* approval and making the corresponding Responses API change.
*/
export type InternalChatMessageMetadataPassthrough = { turn_id?: string, };
26 changes: 26 additions & 0 deletions src/LegacyAppPathString.ts
Original file line number Diff line number Diff line change
@@ -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.

/**
* A UTF-8 path for preserving raw path compatibility at the app-server API
* boundary while Codex migrates to [`PathUri`].
*
* Supports storing arbitrary strings read from the API and converting to and
* from [`PathUri`] using an explicitly selected native path convention.
*
* When converting from [`PathUri`], "native" refers to the supplied
* [`PathConvention`], which may be foreign to the operating system running
* this process. The inner string is private so path-producing code must use a
* path conversion method instead of bypassing the intended conversion
* boundary. Non-UTF-8 paths are converted to UTF-8 lossily because this API
* value is serialized as a JSON string.
*
* Deserialization accepts any UTF-8 string without interpreting or validating
* it. That unrestricted construction path is intentionally available only to
* serde: Codex-internal code cannot construct this type directly from a raw
* `String` and is instead encouraged to convert through [`PathUri`] or
* [`AbsolutePathBuf`]. Relative path text remains valid until an operation
* such as [`Self::to_path_uri`] requires an absolute path.
*/
export type LegacyAppPathString = string;
9 changes: 9 additions & 0 deletions src/McpServerInfo.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!

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

/**
* Presentation metadata advertised by an initialized MCP server.
*/
export type McpServerInfo = { name: string, title: string | null, version: string, description: string | null, icons: Array<JsonValue> | null, websiteUrl: string | null, };
9 changes: 9 additions & 0 deletions src/MultiAgentMode.ts
Original file line number Diff line number Diff line change
@@ -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.

/**
* Controls the effective multi-agent delegation instructions for a turn. `custom` means the
* configured mode hint defines the policy instead of a built-in policy.
*/
export type MultiAgentMode = { "custom": string } | "explicitRequestOnly" | "proactive";
30 changes: 30 additions & 0 deletions src/PathUri.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// 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.

/**
* An immutable, cross-platform representation of a `file:` URI.
*
* Only the `file:` scheme is currently accepted. Construction validates the
* URL, and the URI cannot be mutated after construction. [`Self::basename`],
* [`Self::parent`], and [`Self::join`] operate on URI path segments without
* interpreting them using the operating system running Codex. Fallback URIs
* created by [`Self::from_abs_path`] are opaque to these lexical operations.
*
* `file:` paths retain their URI spelling so they can be parsed independently
* of the current host. A local POSIX `file:` URI can also retain
* percent-encoded non-UTF-8 bytes for lossless native round trips.
*
* Like [VS Code resources], path operations use `/` URI separators on every
* host. Lexical path operations preserve a URL authority without interpreting
* Windows drive or UNC roots from path text. Native path normalization,
* filesystem aliases, symlinks, case sensitivity, and Unicode normalization
* are not resolved.
*
* Serde represents a `PathUri` as its canonical URI string. Deserialization
* accepts only valid `file:` URI strings. These strings round-trip through
* their canonical URL form, including encoded non-UTF-8 path bytes.
*
* [VS Code resources]: https://github.com/microsoft/vscode/blob/main/src/vs/base/common/resources.ts
*/
export type PathUri = string;
2 changes: 1 addition & 1 deletion src/ReasoningEffort.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
/**
* See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning
*/
export type ReasoningEffort = "none" | "minimal" | "low" | "medium" | "high" | "xhigh";
export type ReasoningEffort = string;
10 changes: 8 additions & 2 deletions src/ResponseItem.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
// 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 { AgentMessageInputContent } from "./AgentMessageInputContent";
import type { ContentItem } from "./ContentItem";
import type { FunctionCallOutputBody } from "./FunctionCallOutputBody";
import type { InternalChatMessageMetadataPassthrough } from "./InternalChatMessageMetadataPassthrough";
import type { LocalShellAction } from "./LocalShellAction";
import type { LocalShellStatus } from "./LocalShellStatus";
import type { MessagePhase } from "./MessagePhase";
import type { ReasoningItemContent } from "./ReasoningItemContent";
import type { ReasoningItemReasoningSummary } from "./ReasoningItemReasoningSummary";
import type { WebSearchAction } from "./WebSearchAction";

export type ResponseItem = { "type": "message", role: string, content: Array<ContentItem>, phase?: MessagePhase, } | { "type": "reasoning", summary: Array<ReasoningItemReasoningSummary>, content?: Array<ReasoningItemContent>, encrypted_content: string | null, } | { "type": "local_shell_call",
export type ResponseItem = { "type": "message", id?: string, role: string, content: Array<ContentItem>, phase?: MessagePhase, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "agent_message", id?: string, author: string, recipient: string, content: Array<AgentMessageInputContent>, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "reasoning", id?: string, summary: Array<ReasoningItemReasoningSummary>, content?: Array<ReasoningItemContent>, encrypted_content: string | null, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "local_shell_call",
/**
* Legacy id field retained for compatibility with older payloads.
*/
id?: string,
/**
* Set when using the Responses API.
*/
call_id: string | null, status: LocalShellStatus, action: LocalShellAction, } | { "type": "function_call", name: string, namespace?: string, arguments: string, call_id: string, } | { "type": "tool_search_call", call_id: string | null, status?: string, execution: string, arguments: unknown, } | { "type": "function_call_output", call_id: string, output: FunctionCallOutputBody, } | { "type": "custom_tool_call", status?: string, call_id: string, name: string, input: string, } | { "type": "custom_tool_call_output", call_id: string, name?: string, output: FunctionCallOutputBody, } | { "type": "tool_search_output", call_id: string | null, status: string, execution: string, tools: unknown[], } | { "type": "web_search_call", status?: string, action?: WebSearchAction, } | { "type": "image_generation_call", id: string, status: string, revised_prompt?: string, result: string, } | { "type": "compaction", encrypted_content: string, } | { "type": "compaction_trigger" } | { "type": "context_compaction", encrypted_content?: string, } | { "type": "other" };
call_id: string | null, status: LocalShellStatus, action: LocalShellAction, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "function_call", id?: string, name: string, namespace?: string, arguments: string, call_id: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "tool_search_call", id?: string, call_id: string | null, status?: string, execution: string, arguments: unknown, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "function_call_output", id?: string, call_id: string, output: FunctionCallOutputBody, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "custom_tool_call", id?: string, status?: string, call_id: string, name: string, namespace?: string, input: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "custom_tool_call_output", id?: string, call_id: string, name?: string, output: FunctionCallOutputBody, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "tool_search_output", id?: string, call_id: string | null, status: string, execution: string, tools: unknown[], internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "web_search_call", id?: string, status?: string, action?: WebSearchAction, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "image_generation_call", id?: string, status: string, revised_prompt?: string, result: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "compaction", id?: string, encrypted_content: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "compaction_trigger", } | { "type": "context_compaction", id?: string, encrypted_content?: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "other" };
Loading