chore(app-server): update bindings for Codex CLI 0.145.0

This commit is contained in:
murashit 2026-07-22 09:06:59 +09:00
parent 14adac592d
commit 73be2beea7
78 changed files with 579 additions and 56 deletions

View file

@ -74,7 +74,7 @@ Use `/help` for the current slash command list.
| -------------------------------------- | --------- | --------------------------------------------------------------------------------------------------- |
| `manifest.minAppVersion` | `1.12.0` | Minimum Obsidian desktop version declared for plugin loading. |
| `obsidian` API types | `1.12.3` | TypeScript API package used for compile-time checks; kept in the same minor as `manifest` baseline. |
| `codexAppServer.testedCliVersion` | `0.144.5` | Exact CLI patch used to generate and verify bindings; compatibility is tracked by minor version. |
| `codexAppServer.testedCliVersion` | `0.145.0` | Exact CLI patch used to generate and verify bindings; compatibility is tracked by minor version. |
Codex Panel depends on the experimental `codex app-server` API.

View file

@ -1,6 +1,6 @@
{
"codexAppServer": {
"testedCliVersion": "0.144.5",
"testedCliVersion": "0.145.0",
"typeGeneration": {
"arguments": ["app-server", "generate-ts", "--experimental"]
},

View file

@ -105,6 +105,9 @@ const IGNORED_SERVER_NOTIFICATION_METHODS = [
"thread/status/changed",
"thread/closed",
"rawResponseItem/completed",
"rawResponse/completed",
"thread/environment/connected",
"thread/environment/disconnected",
"command/exec/outputDelta",
"process/outputDelta",
"process/exited",
@ -157,6 +160,7 @@ const SERVER_NOTIFICATION_SCOPE_EXTRACTORS: ServerNotificationScopeExtractors =
"item/autoApprovalReview/completed": threadTurnNotificationScope,
"item/completed": threadTurnNotificationScope,
"rawResponseItem/completed": threadTurnNotificationScope,
"rawResponse/completed": threadTurnNotificationScope,
"item/agentMessage/delta": threadTurnNotificationScope,
"item/plan/delta": threadTurnNotificationScope,
"command/exec/outputDelta": unscopedNotificationScope,
@ -200,6 +204,8 @@ const SERVER_NOTIFICATION_SCOPE_EXTRACTORS: ServerNotificationScopeExtractors =
"windows/worldWritableWarning": unscopedNotificationScope,
"windowsSandbox/setupCompleted": unscopedNotificationScope,
"account/login/completed": unscopedNotificationScope,
"thread/environment/connected": threadOnlyNotificationScope,
"thread/environment/disconnected": threadOnlyNotificationScope,
};
export function routeServerNotification(notification: ServerNotification, scope: ActiveRouteScope): ServerNotificationRoute {

File diff suppressed because one or more lines are too long

View file

@ -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 CodexResponseHandoffMode = "thinking" | "commentary" | "bemTags";

View file

@ -3,4 +3,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ImageDetail } from "./ImageDetail";
export type ContentItem = { "type": "input_text", text: string, } | { "type": "input_image", image_url: string, detail?: ImageDetail, } | { "type": "output_text", text: string, };
export type ContentItem = { "type": "input_text", text: string, } | { "type": "input_image", image_url: string, detail?: ImageDetail, } | { "type": "input_audio", audio_url: string, } | { "type": "output_text", text: string, };

View file

@ -7,4 +7,4 @@ import type { ImageDetail } from "./ImageDetail";
* Responses API compatible content items that can be returned by a tool call.
* This is a subset of ContentItem with the types we support as function call outputs.
*/
export type FunctionCallOutputContentItem = { "type": "input_text", text: string, } | { "type": "input_image", image_url: string, detail?: ImageDetail, } | { "type": "encrypted_content", encrypted_content: string, };
export type FunctionCallOutputContentItem = { "type": "input_text", text: string, } | { "type": "input_image", image_url: string, detail?: ImageDetail, } | { "type": "input_audio", audio_url: string, } | { "type": "encrypted_content", encrypted_content: string, };

View file

@ -5,4 +5,4 @@
/**
* Canonical user-input modality tags advertised by a model.
*/
export type InputModality = "text" | "image";
export type InputModality = "text" | "image" | "audio";

View file

@ -16,11 +16,12 @@
* 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.
* Deserialization and [`Self::from_string`] accept any UTF-8 string without
* interpreting or validating it. Use [`Self::from_string`] when a caller
* already owns legacy app-server path text and needs to preserve its wire
* spelling; use [`Self::from_path`], [`Self::from_abs_path`], or
* [`Self::from_path_uri`] when converting an actual path value. Relative
* path text remains valid until an operation such as [`Self::to_path_uri`]
* requires an absolute path.
*/
export type LegacyAppPathString = string;

View file

@ -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 RealtimeConversationVersion = "v1" | "v2";
export type RealtimeConversationVersion = "v1" | "v2" | "v3";

View file

@ -10,14 +10,15 @@ import type { LocalShellStatus } from "./LocalShellStatus";
import type { MessagePhase } from "./MessagePhase";
import type { ReasoningItemContent } from "./ReasoningItemContent";
import type { ReasoningItemReasoningSummary } from "./ReasoningItemReasoningSummary";
import type { ResponseItemId } from "./ResponseItemId";
import type { WebSearchAction } from "./WebSearchAction";
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",
export type ResponseItem = { "type": "message", id?: ResponseItemId, role: string, content: Array<ContentItem>, phase?: MessagePhase, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "agent_message", id?: ResponseItemId, author: string, recipient: string, content: Array<AgentMessageInputContent>, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "reasoning", id?: ResponseItemId, 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,
id?: ResponseItemId,
/**
* Set when using the Responses API.
*/
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" };
call_id: string | null, status: LocalShellStatus, action: LocalShellAction, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "function_call", id?: ResponseItemId, name: string, namespace?: string, arguments: string, call_id: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "tool_search_call", id?: ResponseItemId, call_id: string | null, status?: string, execution: string, arguments: unknown, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "function_call_output", id?: ResponseItemId, call_id: string, output: FunctionCallOutputBody, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "custom_tool_call", id?: ResponseItemId, status?: string, call_id: string, name: string, namespace?: string, input: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "custom_tool_call_output", id?: ResponseItemId, call_id: string, name?: string, output: FunctionCallOutputBody, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "tool_search_output", id?: ResponseItemId, call_id: string | null, status: string, execution: string, tools: unknown[], internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "web_search_call", id?: ResponseItemId, status?: string, action?: WebSearchAction, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "image_generation_call", id?: ResponseItemId, status: string, revised_prompt?: string, result: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "compaction", id?: ResponseItemId, encrypted_content: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "compaction_trigger", } | { "type": "context_compaction", id?: ResponseItemId, encrypted_content?: string, internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "type": "other" };

View file

@ -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.
/**
* A Responses API item ID. New IDs require an explicit prefix; deserialization
* remains permissive so legacy rollouts can still be read.
*/
export type ResponseItemId = string;

View file

@ -7,4 +7,4 @@ import type { NetworkPolicyAmendment } from "./NetworkPolicyAmendment";
/**
* User's decision in response to an ExecApprovalRequest.
*/
export type ReviewDecision = "approved" | { "approved_execpolicy_amendment": { proposed_execpolicy_amendment: ExecPolicyAmendment, } } | "approved_for_session" | { "network_policy_amendment": { network_policy_amendment: NetworkPolicyAmendment, } } | "denied" | "timed_out" | "abort";
export type ReviewDecision = "approved" | { "approved_execpolicy_amendment": { proposed_execpolicy_amendment: ExecPolicyAmendment, } } | "approved_for_session" | { "network_policy_amendment": { network_policy_amendment: NetworkPolicyAmendment, } } | { "denied": { rejection: string, } } | "timed_out" | "abort";

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -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.
/**
* Display item emitted by the interruptible `clock.sleep` tool.
*/
export type SleepItem = { id: string, durationMs: number, };

View file

@ -1,6 +1,14 @@
// 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";
import type { WebSearchAction } from "./v2/WebSearchAction";
export type WebSearchItem = { id: string, query: string, action: WebSearchAction | null, };
export type WebSearchItem = { id: string, query: string, action: WebSearchAction | null,
/**
* Structured search results returned out-of-band by standalone web search.
*
* These stay as opaque JSON at the extension/app-server boundary so new
* result fields and result types can pass through without a Codex release.
*/
results: Array<JsonValue> | null, };

View file

@ -3,7 +3,6 @@
export type { AbsolutePathBuf } from "./AbsolutePathBuf";
export type { AgentMessageInputContent } from "./AgentMessageInputContent";
export type { AgentPath } from "./AgentPath";
export type { AmazonBedrockCredentialSource } from "./AmazonBedrockCredentialSource";
export type { ApplyPatchApprovalParams } from "./ApplyPatchApprovalParams";
export type { ApplyPatchApprovalResponse } from "./ApplyPatchApprovalResponse";
export type { AuthMode } from "./AuthMode";
@ -11,6 +10,7 @@ export type { AutoCompactTokenLimitScope } from "./AutoCompactTokenLimitScope";
export type { ClientInfo } from "./ClientInfo";
export type { ClientNotification } from "./ClientNotification";
export type { ClientRequest } from "./ClientRequest";
export type { CodexResponseHandoffMode } from "./CodexResponseHandoffMode";
export type { CollaborationMode } from "./CollaborationMode";
export type { ContentItem } from "./ContentItem";
export type { ConversationGitInfo } from "./ConversationGitInfo";
@ -77,11 +77,14 @@ export type { Resource } from "./Resource";
export type { ResourceContent } from "./ResourceContent";
export type { ResourceTemplate } from "./ResourceTemplate";
export type { ResponseItem } from "./ResponseItem";
export type { ResponseItemId } from "./ResponseItemId";
export type { ReviewDecision } from "./ReviewDecision";
export type { ServerNotification } from "./ServerNotification";
export type { ServerNotificationEnvelope } from "./ServerNotificationEnvelope";
export type { ServerRequest } from "./ServerRequest";
export type { SessionSource } from "./SessionSource";
export type { Settings } from "./Settings";
export type { SleepItem } from "./SleepItem";
export type { SubAgentSource } from "./SubAgentSource";
export type { ThreadId } from "./ThreadId";
export type { ThreadMemoryMode } from "./ThreadMemoryMode";

View file

@ -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 { AmazonBedrockCredentialSource } from "../AmazonBedrockCredentialSource";
import type { PlanType } from "../PlanType";
export type Account = { "type": "apiKey", } | { "type": "chatgpt", email: string | null, planType: PlanType, } | { "type": "amazonBedrock", credentialSource: AmazonBedrockCredentialSource, };
export type Account = { "type": "apiKey", } | { "type": "chatgpt", email: string | null, planType: PlanType, } | { "type": "amazonBedrock", usesCodexManagedCredentials: boolean, };

View file

@ -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.
/**
* EXPERIMENTAL - metadata returned by app/read.
*/
export type AppToolSummary = { name: string, title: string | null, description: string, };

View file

@ -0,0 +1,17 @@
// 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.
/**
* Read the committed installed connector runtime snapshot.
*/
export type AppsInstalledParams = {
/**
* Optional loaded thread id used to evaluate effective app configuration.
*/
threadId?: string | null,
/**
* When true and Apps are permitted, refresh and publish the hosted connector runtime tool
* snapshot first.
*/
forceRefresh?: boolean, };

View file

@ -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 { InstalledApp } from "./InstalledApp";
/**
* The installed connectors in one committed runtime snapshot.
*/
export type AppsInstalledResponse = { apps: Array<InstalledApp>, };

View file

@ -0,0 +1,17 @@
// 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.
/**
* EXPERIMENTAL - read metadata for specific apps/connectors.
*/
export type AppsReadParams = {
/**
* App ids to read. The server accepts at most 100 ids and deduplicates repeated ids while
* preserving their first-request order.
*/
appIds: Array<string>,
/**
* When true, include display-only public tool summaries in the returned metadata.
*/
includeTools?: boolean, };

View file

@ -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 { ConnectorMetadata } from "./ConnectorMetadata";
/**
* EXPERIMENTAL - app/read response.
*/
export type AppsReadResponse = { apps: Array<ConnectorMetadata>, missingAppIds: Array<string>, };

View file

@ -2,4 +2,11 @@
// 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, commandWindows: string | null, 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,
/**
* Approximate token threshold for spilling this hook's `additionalContext` to disk.
* `null` uses 2,500 tokens; `0` disables spilling for this hook. The threshold is
* evaluated against the original context; a spilled preview also includes recovery
* metadata.
*/
additionalContextLimit: number | null, } | { "type": "prompt", } | { "type": "agent", };

View file

@ -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 { AppToolSummary } from "./AppToolSummary";
/**
* EXPERIMENTAL - metadata returned by app/read.
*/
export type ConnectorMetadata = { id: string, name: string, description: string | null, iconUrl: string | null, iconUrlDark: string | null, distributionChannel: string | null, installUrl: string | null, pluginDisplayNames: Array<string>, toolSummaries: Array<AppToolSummary> | null, };

View file

@ -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 DynamicToolCallOutputContentItem = { "type": "inputText", text: string, } | { "type": "inputImage", imageUrl: string, };
export type DynamicToolCallOutputContentItem = { "type": "inputText", text: string, } | { "type": "inputImage", imageUrl: string, } | { "type": "inputAudio", audioUrl: string, };

View file

@ -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 EnvironmentConnectionNotification = { threadId: string, environmentId: string, };

View file

@ -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.
/**
* Current status observed by app-server without starting or recovering an environment.
*
* For a currently ready remote environment, app-server asks the existing
* exec-server connection for `environment/status` without allowing recovery.
*/
export type EnvironmentStatusKind = "ready" | "pending" | "disconnected" | "unknown";

View file

@ -0,0 +1,12 @@
// 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.
/**
* Parameters for reading the current status of one configured environment.
*/
export type EnvironmentStatusParams = {
/**
* Environment id to inspect.
*/
environmentId: string, };

View file

@ -0,0 +1,17 @@
// 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 { EnvironmentStatusKind } from "./EnvironmentStatusKind";
/**
* Current status for the requested environment.
*/
export type EnvironmentStatusResponse = {
/**
* Current status observed without starting or recovering the environment.
*/
status: EnvironmentStatusKind,
/**
* Human-readable detail for `disconnected` and `unknown`; omitted for other statuses.
*/
error?: string, };

View file

@ -10,4 +10,13 @@ includeHome?: boolean,
/**
* Zero or more working directories to include for repo-scoped detection.
*/
cwds?: Array<string> | null, };
cwds?: Array<string> | null,
/**
* Deprecated field retained for compatibility. This field is ignored; use `migrationSource`
* to select the migration source.
*/
source?: string | null,
/**
* Optional migration-source selector. Missing or unrecognized values use the default source.
*/
migrationSource?: string | null, };

View file

@ -2,5 +2,6 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ExternalAgentConfigImportHistory } from "./ExternalAgentConfigImportHistory";
import type { ExternalAgentImportedConnectorCandidate } from "./ExternalAgentImportedConnectorCandidate";
export type ExternalAgentConfigImportHistoriesReadResponse = { data: Array<ExternalAgentConfigImportHistory>, };
export type ExternalAgentConfigImportHistoriesReadResponse = { data: Array<ExternalAgentConfigImportHistory>, connectors: Array<ExternalAgentImportedConnectorCandidate>, };

View file

@ -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 { ExternalAgentConfigMigrationItemType } from "./ExternalAgentConfigMigrationItemType";
export type ExternalAgentConfigImportItemTypeFailure = { itemType: ExternalAgentConfigMigrationItemType, errorType: string | null, failureStage: string, message: string, cwd: string | null, source: string | null, };
export type ExternalAgentConfigImportItemTypeFailure = { itemType: ExternalAgentConfigMigrationItemType, errorType: string | null, subErrorType: string | null, failureStage: string, message: string, cwd: string | null, source: string | null, };

View file

@ -5,6 +5,11 @@ import type { ExternalAgentConfigMigrationItem } from "./ExternalAgentConfigMigr
export type ExternalAgentConfigImportParams = { migrationItems: Array<ExternalAgentConfigMigrationItem>,
/**
* Source product that produced the migration items. Missing means unspecified.
* Optional identifier for the product that initiated the import.
*/
source?: string | null, };
source?: string | null,
/**
* Migration-source selector used to produce the migration items. Pass the same value to
* detection and import; missing or unrecognized values use the default source.
*/
migrationSource?: string | null, };

View file

@ -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 ExternalAgentConfigMigrationItemType = "AGENTS_MD" | "CONFIG" | "SKILLS" | "PLUGINS" | "MCP_SERVER_CONFIG" | "SUBAGENTS" | "HOOKS" | "COMMANDS" | "SESSIONS";
export type ExternalAgentConfigMigrationItemType = "AGENTS_MD" | "CONFIG" | "SKILLS" | "PLUGINS" | "MCP_SERVER_CONFIG" | "SUBAGENTS" | "HOOKS" | "COMMANDS" | "MEMORY" | "SESSIONS";

View file

@ -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 { ExternalAgentImportedConnectorSource } from "./ExternalAgentImportedConnectorSource";
export type ExternalAgentImportedConnectorCandidate = { name: string, sessionCount: number, source: ExternalAgentImportedConnectorSource, };

View file

@ -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 AmazonBedrockCredentialSource = "codexManaged" | "awsManaged";
export type ExternalAgentImportedConnectorSource = "remoteMcpServersConfig";

View file

@ -1,5 +1,6 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { LegacyAppPathString } from "../LegacyAppPathString";
export type FileSystemSpecialPath = { "kind": "root" } | { "kind": "minimal" } | { "kind": "project_roots", subpath: string | null, } | { "kind": "tmpdir" } | { "kind": "slash_tmp" } | { "kind": "unknown", path: string, subpath: string | null, };
export type FileSystemSpecialPath = { "kind": "root" } | { "kind": "minimal" } | { "kind": "project_roots", subpath: LegacyAppPathString | null, } | { "kind": "tmpdir" } | { "kind": "slash_tmp" } | { "kind": "unknown", path: string, subpath: LegacyAppPathString | null, };

View file

@ -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" | "preCompact" | "postCompact" | "sessionStart" | "userPromptSubmit" | "subagentStart" | "subagentStop" | "stop";
export type HookEventName = "preToolUse" | "permissionRequest" | "postToolUse" | "preCompact" | "postCompact" | "sessionStart" | "sessionEnd" | "userPromptSubmit" | "subagentStart" | "subagentStop" | "stop";

View file

@ -7,4 +7,9 @@ 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, currentHash: string, trustStatus: HookTrustStatus, };
export type HookMetadata = { key: string, eventName: HookEventName, handlerType: HookHandlerType, matcher: string | null, command: string | null, timeoutSec: bigint, statusMessage: string | null,
/**
* Configured `additionalContext` spill threshold.
* `null` uses 2,500 tokens; `0` disables spilling.
*/
additionalContextLimit: number | null, sourcePath: AbsolutePathBuf, source: HookSource, pluginId: string | null, displayOrder: bigint, enabled: boolean, isManaged: boolean, currentHash: string, trustStatus: HookTrustStatus, };

View file

@ -0,0 +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.
/**
* Installed connector runtime state.
*/
export type InstalledApp = { id: string,
/**
* Best-effort name carried by the runtime tool catalog. Canonical app metadata remains owned
* by `app/read`.
*/
runtimeName: string | null,
/**
* Effective enabled state after applying global, workspace, local, and managed configuration
* at read time.
*/
enabled: boolean,
/**
* Whether the connector is enabled and has a non-synthetic, model-visible tool allowed by
* effective MCP and app/tool policy in the committed runtime snapshot.
*/
callable: boolean, };

View file

@ -19,4 +19,4 @@ chatgptAccountId: string,
* When `null`, Codex attempts to derive the plan type from access-token
* claims. If unavailable, the plan defaults to `unknown`.
*/
chatgptPlanType?: string | null, };
chatgptPlanType?: string | null, } | { "type": "amazonBedrock", apiKey: string, region: string, };

View file

@ -14,4 +14,4 @@ verificationUrl: string,
/**
* One-time code the user must enter after signing in.
*/
userCode: string, } | { "type": "chatgptAuthTokens", };
userCode: string, } | { "type": "chatgptAuthTokens", } | { "type": "amazonBedrock", };

View file

@ -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<ConfiguredHookMatcherGroup>, PermissionRequest: Array<ConfiguredHookMatcherGroup>, PostToolUse: Array<ConfiguredHookMatcherGroup>, PreCompact: Array<ConfiguredHookMatcherGroup>, PostCompact: Array<ConfiguredHookMatcherGroup>, SessionStart: Array<ConfiguredHookMatcherGroup>, UserPromptSubmit: Array<ConfiguredHookMatcherGroup>, SubagentStart: Array<ConfiguredHookMatcherGroup>, SubagentStop: Array<ConfiguredHookMatcherGroup>, Stop: Array<ConfiguredHookMatcherGroup>, };
export type ManagedHooksRequirements = { managedDir: string | null, windowsManagedDir: string | null, PreToolUse: Array<ConfiguredHookMatcherGroup>, PermissionRequest: Array<ConfiguredHookMatcherGroup>, PostToolUse: Array<ConfiguredHookMatcherGroup>, PreCompact: Array<ConfiguredHookMatcherGroup>, PostCompact: Array<ConfiguredHookMatcherGroup>, SessionStart: Array<ConfiguredHookMatcherGroup>, SessionEnd: Array<ConfiguredHookMatcherGroup>, UserPromptSubmit: Array<ConfiguredHookMatcherGroup>, SubagentStart: Array<ConfiguredHookMatcherGroup>, SubagentStop: Array<ConfiguredHookMatcherGroup>, Stop: Array<ConfiguredHookMatcherGroup>, };

View file

@ -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 McpToolCallAppContext = { connectorId: string, linkId: string | null, resourceUri: string | null, appName: string | null, templateId: string | null, actionName: string | null, };
export type McpToolCallAppContext = { connectorId: string, linkId: string | null, resourceUri: string | null, appName: string | null, actionName: string | null, };

View file

@ -9,4 +9,4 @@ import type { SessionMigration } from "./SessionMigration";
import type { SkillMigration } from "./SkillMigration";
import type { SubagentMigration } from "./SubagentMigration";
export type MigrationDetails = { plugins: Array<PluginsMigration>, skills: Array<SkillMigration>, sessions: Array<SessionMigration>, mcpServers: Array<McpServerMigration>, hooks: Array<HookMigration>, subagents: Array<SubagentMigration>, commands: Array<CommandMigration>, };
export type MigrationDetails = { plugins: Array<PluginsMigration>, skills: Array<SkillMigration>, sessions: Array<SessionMigration>, mcpServers: Array<McpServerMigration>, hooks: Array<HookMigration>, subagents: Array<SubagentMigration>, commands: Array<CommandMigration>, memory?: Array<string>, };

View file

@ -6,6 +6,7 @@ import type { AppSummary } from "./AppSummary";
import type { AppTemplateSummary } from "./AppTemplateSummary";
import type { PluginHookSummary } from "./PluginHookSummary";
import type { PluginSummary } from "./PluginSummary";
import type { ScheduledTaskSummary } from "./ScheduledTaskSummary";
import type { SkillSummary } from "./SkillSummary";
export type PluginDetail = { marketplaceName: string, marketplacePath: AbsolutePathBuf | null, summary: PluginSummary, shareUrl: string | null, description: string | null, skills: Array<SkillSummary>, hooks: Array<PluginHookSummary>, apps: Array<AppSummary>, appTemplates: Array<AppTemplateSummary>, mcpServers: Array<string>, };
export type PluginDetail = { marketplaceName: string, marketplacePath: AbsolutePathBuf | null, summary: PluginSummary, shareUrl: string | null, description: string | null, skills: Array<SkillSummary>, hooks: Array<PluginHookSummary>, apps: Array<AppSummary>, appTemplates: Array<AppTemplateSummary>, mcpServers: Array<string>, scheduledTasks: Array<ScheduledTaskSummary> | null, };

View file

@ -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 PluginShareUpdateDiscoverability = "UNLISTED" | "PRIVATE";
export type PluginShareUpdateDiscoverability = "UNLISTED" | "PRIVATE" | "LISTED";

View file

@ -25,7 +25,7 @@ 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, installPolicySource: PluginInstallPolicySource | null, authPolicy: PluginAuthPolicy,
shareContext: PluginShareContext | null, source: PluginSource, installed: boolean, enabled: boolean, installPolicy: PluginInstallPolicy, installPolicySource: PluginInstallPolicySource | null, mustShowInstallationInterstitial: boolean | null, authPolicy: PluginAuthPolicy,
/**
* Availability state for installing and using the plugin.
*/

View file

@ -7,4 +7,8 @@ import type { RateLimitReachedType } from "./RateLimitReachedType";
import type { RateLimitWindow } from "./RateLimitWindow";
import type { SpendControlLimitSnapshot } from "./SpendControlLimitSnapshot";
export type RateLimitSnapshot = { limitId: string | null, limitName: string | null, primary: RateLimitWindow | null, secondary: RateLimitWindow | null, credits: CreditsSnapshot | null, individualLimit: SpendControlLimitSnapshot | null, planType: PlanType | null, rateLimitReachedType: RateLimitReachedType | null, };
export type RateLimitSnapshot = { limitId: string | null, limitName: string | null, primary: RateLimitWindow | null, secondary: RateLimitWindow | null, credits: CreditsSnapshot | null, individualLimit: SpendControlLimitSnapshot | null,
/**
* Backend-reported spend-control state. `None` is unavailable, not a sparse-update recovery.
*/
spendControlReached: boolean | null, planType: PlanType | null, rateLimitReachedType: RateLimitReachedType | null, };

View file

@ -0,0 +1,10 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { TokenUsageBreakdown } from "./TokenUsageBreakdown";
/**
* Internal-only notification containing the exact usage from one upstream
* Responses API completion.
*/
export type RawResponseCompletedNotification = { threadId: string, turnId: string, responseId: string, usage: TokenUsageBreakdown | null, };

View file

@ -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 { ScheduledTaskWeekday } from "./ScheduledTaskWeekday";
export type ScheduledTaskSchedule = { "type": "hourly", intervalHours: number, days: Array<ScheduledTaskWeekday> | null, } | { "type": "daily", time: string, } | { "type": "weekdays", time: string, } | { "type": "weekly", days: Array<ScheduledTaskWeekday>, time: string, };

View file

@ -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 { ScheduledTaskSchedule } from "./ScheduledTaskSchedule";
export type ScheduledTaskSummary = { key: string, name: string, prompt: string, schedule: ScheduledTaskSchedule, };

View file

@ -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 ScheduledTaskWeekday = "MO" | "TU" | "WE" | "TH" | "FR" | "SA" | "SU";

View file

@ -79,6 +79,11 @@ cliVersion: string,
* Origin of the thread (CLI, VSCode, codex exec, codex app-server, etc.).
*/
source: SessionSource,
/**
* Whether the app server accepts direct turn input for this loaded thread.
* `None` means the capability is unavailable, such as for an unloaded stored thread.
*/
canAcceptDirectInput: boolean | null,
/**
* Optional analytics source classification for this thread.
*/

View file

@ -27,6 +27,11 @@ export type ThreadForkParams = { threadId: string,
* The referenced turn cannot be in progress.
*/
lastTurnId?: string | null,
/**
* Optional turn id to fork before, excluding that turn and all later turns.
* Cannot be combined with `last_turn_id`.
*/
beforeTurnId?: string | null,
/**
* [UNSTABLE] Specify the rollout path to fork from.
* If specified, the thread_id param will be ignored.
@ -59,4 +64,10 @@ threadSource?: ThreadSource | null,
* populating `thread.turns`. This is useful when the client plans to call
* `thread/turns/list` immediately after forking.
*/
excludeTurns?: boolean, };
excludeTurns?: boolean,
/**
* When true, carry the source thread's current goal into the fork without
* starting its initial automatic continuation. The next explicit turn owns
* the goal lifecycle, and normal automatic continuation resumes after it.
*/
deferGoalContinuation?: boolean, };

View file

@ -5,6 +5,7 @@ import type { ImageGenerationItem } from "../ImageGenerationItem";
import type { LegacyAppPathString } from "../LegacyAppPathString";
import type { MessagePhase } from "../MessagePhase";
import type { ReasoningEffort } from "../ReasoningEffort";
import type { SleepItem } from "../SleepItem";
import type { WebSearchItem } from "../WebSearchItem";
import type { JsonValue } from "../serde_json/JsonValue";
import type { CollabAgentState } from "./CollabAgentState";
@ -105,4 +106,4 @@ reasoningEffort: ReasoningEffort | null,
/**
* Last known status of the target agents, when available.
*/
agentsStates: { [key in string]?: CollabAgentState }, } | { "type": "subAgentActivity", id: string, kind: SubAgentActivityKind, agentThreadId: string, agentPath: string, } | { "type": "webSearch" } & WebSearchItem | { "type": "imageView", id: string, path: LegacyAppPathString, } | { "type": "sleep", id: string, durationMs: number, } | { "type": "imageGeneration" } & ImageGenerationItem | { "type": "enteredReviewMode", id: string, review: string, } | { "type": "exitedReviewMode", id: string, review: string, } | { "type": "contextCompaction", id: string, };
agentsStates: { [key in string]?: CollabAgentState }, } | { "type": "subAgentActivity", id: string, kind: SubAgentActivityKind, agentThreadId: string, agentPath: string, } | { "type": "webSearch" } & WebSearchItem | { "type": "imageView", id: string, path: LegacyAppPathString, } | { "type": "sleep" } & SleepItem | { "type": "imageGeneration" } & ImageGenerationItem | { "type": "enteredReviewMode", id: string, review: string, } | { "type": "exitedReviewMode", id: string, review: string, } | { "type": "contextCompaction", id: string, };

View file

@ -0,0 +1,10 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ThreadItem } from "./ThreadItem";
export type ThreadItemEntry = {
/**
* Turn containing this item.
*/
turnId: string, item: ThreadItem, };

View file

@ -1,9 +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 { ThreadItem } from "./ThreadItem";
import type { ThreadItemEntry } from "./ThreadItemEntry";
export type ThreadItemsListResponse = { data: Array<ThreadItem>,
export type ThreadItemsListResponse = { data: Array<ThreadItemEntry>,
/**
* Opaque cursor to pass to the next call to continue after the last item.
* if None, there are no more items to return.

View file

@ -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 { ConversationTextRole } from "../ConversationTextRole";
/**
* EXPERIMENTAL - role-bearing text item included when a realtime V3 session starts.
*/
export type ThreadRealtimeInitialItem = { role: ConversationTextRole, text: string, };

View file

@ -2,9 +2,11 @@
// This file was mechanically normalized after generation by scripts/generate-app-server-types.mjs.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { CodexResponseHandoffMode } from "../CodexResponseHandoffMode";
import type { RealtimeConversationVersion } from "../RealtimeConversationVersion";
import type { RealtimeOutputModality } from "../RealtimeOutputModality";
import type { RealtimeVoice } from "../RealtimeVoice";
import type { ThreadRealtimeInitialItem } from "./ThreadRealtimeInitialItem";
import type { ThreadRealtimeStartTransport } from "./ThreadRealtimeStartTransport";
/**
@ -30,11 +32,10 @@ codexResponsesAsItems?: boolean | null,
*/
codexResponseItemPrefix?: string | null,
/**
* Optional prefix added to automatic V1 Codex commentary sent with
* `conversation.handoff.append` when `codexResponsesAsItems` is not true. Final answers are
* sent without the prefix.
* Selects how automatic Codex responses are routed in Frameless Bidi sessions. Omitted values
* default to `thinking`. Realtime V1 and V2 ignore this setting.
*/
codexResponseHandoffPrefix?: string | null,
codexResponseHandoffMode?: CodexResponseHandoffMode | null,
/**
* Overrides the configured realtime model for this session only.
*/
@ -47,7 +48,13 @@ outputModality: RealtimeOutputModality,
/**
* Set to false to start without Codex's startup context. Omitted or null includes it.
*/
includeStartupContext?: boolean | null, prompt?: string | null, realtimeSessionId?: string | null, transport?: ThreadRealtimeStartTransport | null,
includeStartupContext?: boolean | null,
/**
* Adds complete role-bearing text items to the initial Frameless Bidi session history.
* This is only supported by realtime V3 and is sent during session startup. Requests are
* limited to 128 items and 8,192 estimated text tokens in total.
*/
initialItems?: Array<ThreadRealtimeInitialItem> | null, prompt?: string | null, realtimeSessionId?: string | null, transport?: ThreadRealtimeStartTransport | null,
/**
* Overrides the configured realtime protocol version for this session only.
*/

View file

@ -43,4 +43,18 @@ multiAgentMode: MultiAgentMode,
/**
* `thread/turns/list` page returned when requested by `initialTurnsPage`.
*/
initialTurnsPage: TurnsPage | null, };
initialTurnsPage: TurnsPage | null,
/**
* Opaque head cursor for hydrating paginated turns backwards.
*
* Pass this as `cursor` to `thread/turns/list` with
* `sortDirection: "desc"`. The first page includes the cursor's head turn.
*/
turnsBackwardsCursor: string | null,
/**
* Opaque head cursor for hydrating paginated items backwards.
*
* Pass this as `cursor` to `thread/items/list` with
* `sortDirection: "desc"`. The first page includes the cursor's head item.
*/
itemsBackwardsCursor: string | null, };

View file

@ -0,0 +1,17 @@
// 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 { ThreadSearchTextRange } from "./ThreadSearchTextRange";
/**
* One visible message occurrence returned by [`ThreadSearchOccurrencesResponse`].
*/
export type ThreadSearchOccurrence = { turnId: string, itemId: string, snippet: string,
/**
* Match range within `snippet`, in UTF-16 code units.
*/
snippetMatchRange: ThreadSearchTextRange,
/**
* Opaque inclusive cursor accepted by `thread/turns/list` for this turn.
*/
turnCursor: string, };

View file

@ -0,0 +1,21 @@
// 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.
/**
* Parameters for searching visible message occurrences within one paginated thread.
*/
export type ThreadSearchOccurrencesParams = { threadId: string,
/**
* Case-insensitive literal substring to find in visible user messages and final assistant
* messages.
*/
searchTerm: string,
/**
* Opaque cursor returned by a previous call for the same thread and search term.
*/
cursor?: string | null,
/**
* Optional occurrence page size.
*/
limit?: number | null, };

View file

@ -0,0 +1,14 @@
// 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 { ThreadSearchOccurrence } from "./ThreadSearchOccurrence";
export type ThreadSearchOccurrencesResponse = {
/**
* Occurrences in chronological message order.
*/
data: Array<ThreadSearchOccurrence>,
/**
* Opaque cursor to continue after the last returned occurrence.
*/
nextCursor: string | null, };

View file

@ -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.
/**
* UTF-16 code-unit range within `snippet`.
*/
export type ThreadSearchTextRange = {
/**
* Inclusive UTF-16 code-unit offset.
*/
start: number,
/**
* Exclusive UTF-16 code-unit offset.
*/
end: number, };

View file

@ -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 TokenUsageBreakdown = { totalTokens: number, inputTokens: number, cachedInputTokens: number, outputTokens: number, reasoningOutputTokens: number, };
export type TokenUsageBreakdown = { totalTokens: number, inputTokens: number, cachedInputTokens: number, cacheWriteInputTokens: number, outputTokens: number, reasoningOutputTokens: number, };

View file

@ -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 { LegacyAppPathString } from "../LegacyAppPathString";
export type TurnEnvironmentParams = { environmentId: string, cwd: LegacyAppPathString, };
export type TurnEnvironmentParams = { environmentId: string, cwd: LegacyAppPathString,
/**
* Environment-native runtime workspace roots. Omitted defaults to `cwd`.
*/
runtimeWorkspaceRoots?: Array<LegacyAppPathString> | null, };

View file

@ -8,4 +8,4 @@ export type UserInput = { "type": "text", text: string,
/**
* UI-defined spans within `text` used to render or persist special elements.
*/
text_elements: Array<TextElement>, } | { "type": "image", detail?: ImageDetail, url: string, } | { "type": "localImage", detail?: ImageDetail, path: string, } | { "type": "skill", name: string, path: string, } | { "type": "mention", name: string, path: string, };
text_elements: Array<TextElement>, } | { "type": "image", detail?: ImageDetail, url: string, } | { "type": "localImage", detail?: ImageDetail, path: string, } | { "type": "audio", url: string, } | { "type": "localAudio", path: string, } | { "type": "skill", name: string, path: string, } | { "type": "mention", name: string, path: string, };

View file

@ -26,12 +26,17 @@ export type { AppSummary } from "./AppSummary";
export type { AppTemplateSummary } from "./AppTemplateSummary";
export type { AppTemplateUnavailableReason } from "./AppTemplateUnavailableReason";
export type { AppToolApproval } from "./AppToolApproval";
export type { AppToolSummary } from "./AppToolSummary";
export type { AppToolsConfig } from "./AppToolsConfig";
export type { ApprovalsReviewer } from "./ApprovalsReviewer";
export type { AppsConfig } from "./AppsConfig";
export type { AppsDefaultConfig } from "./AppsDefaultConfig";
export type { AppsInstalledParams } from "./AppsInstalledParams";
export type { AppsInstalledResponse } from "./AppsInstalledResponse";
export type { AppsListParams } from "./AppsListParams";
export type { AppsListResponse } from "./AppsListResponse";
export type { AppsReadParams } from "./AppsReadParams";
export type { AppsReadResponse } from "./AppsReadResponse";
export type { AskForApproval } from "./AskForApproval";
export type { AttestationGenerateParams } from "./AttestationGenerateParams";
export type { AttestationGenerateResponse } from "./AttestationGenerateResponse";
@ -87,6 +92,7 @@ export type { ConfigWarningNotification } from "./ConfigWarningNotification";
export type { ConfigWriteResponse } from "./ConfigWriteResponse";
export type { ConfiguredHookHandler } from "./ConfiguredHookHandler";
export type { ConfiguredHookMatcherGroup } from "./ConfiguredHookMatcherGroup";
export type { ConnectorMetadata } from "./ConnectorMetadata";
export type { ConsumeAccountRateLimitResetCreditOutcome } from "./ConsumeAccountRateLimitResetCreditOutcome";
export type { ConsumeAccountRateLimitResetCreditParams } from "./ConsumeAccountRateLimitResetCreditParams";
export type { ConsumeAccountRateLimitResetCreditResponse } from "./ConsumeAccountRateLimitResetCreditResponse";
@ -105,9 +111,13 @@ export type { DynamicToolNamespaceTool } from "./DynamicToolNamespaceTool";
export type { DynamicToolSpec } from "./DynamicToolSpec";
export type { EnvironmentAddParams } from "./EnvironmentAddParams";
export type { EnvironmentAddResponse } from "./EnvironmentAddResponse";
export type { EnvironmentConnectionNotification } from "./EnvironmentConnectionNotification";
export type { EnvironmentInfoParams } from "./EnvironmentInfoParams";
export type { EnvironmentInfoResponse } from "./EnvironmentInfoResponse";
export type { EnvironmentShellInfo } from "./EnvironmentShellInfo";
export type { EnvironmentStatusKind } from "./EnvironmentStatusKind";
export type { EnvironmentStatusParams } from "./EnvironmentStatusParams";
export type { EnvironmentStatusResponse } from "./EnvironmentStatusResponse";
export type { ErrorNotification } from "./ErrorNotification";
export type { ExecPolicyAmendment } from "./ExecPolicyAmendment";
export type { ExperimentalFeature } from "./ExperimentalFeature";
@ -129,6 +139,8 @@ export type { ExternalAgentConfigImportResponse } from "./ExternalAgentConfigImp
export type { ExternalAgentConfigImportTypeResult } from "./ExternalAgentConfigImportTypeResult";
export type { ExternalAgentConfigMigrationItem } from "./ExternalAgentConfigMigrationItem";
export type { ExternalAgentConfigMigrationItemType } from "./ExternalAgentConfigMigrationItemType";
export type { ExternalAgentImportedConnectorCandidate } from "./ExternalAgentImportedConnectorCandidate";
export type { ExternalAgentImportedConnectorSource } from "./ExternalAgentImportedConnectorSource";
export type { FeedbackUploadParams } from "./FeedbackUploadParams";
export type { FeedbackUploadResponse } from "./FeedbackUploadResponse";
export type { FileChangeApprovalDecision } from "./FileChangeApprovalDecision";
@ -195,6 +207,7 @@ export type { HookTrustStatus } from "./HookTrustStatus";
export type { HooksListEntry } from "./HooksListEntry";
export type { HooksListParams } from "./HooksListParams";
export type { HooksListResponse } from "./HooksListResponse";
export type { InstalledApp } from "./InstalledApp";
export type { ItemCompletedNotification } from "./ItemCompletedNotification";
export type { ItemGuardianApprovalReviewCompletedNotification } from "./ItemGuardianApprovalReviewCompletedNotification";
export type { ItemGuardianApprovalReviewStartedNotification } from "./ItemGuardianApprovalReviewStartedNotification";
@ -363,6 +376,7 @@ export type { RateLimitResetCreditsSummary } from "./RateLimitResetCreditsSummar
export type { RateLimitResetType } from "./RateLimitResetType";
export type { RateLimitSnapshot } from "./RateLimitSnapshot";
export type { RateLimitWindow } from "./RateLimitWindow";
export type { RawResponseCompletedNotification } from "./RawResponseCompletedNotification";
export type { RawResponseItemCompletedNotification } from "./RawResponseItemCompletedNotification";
export type { ReasoningEffortOption } from "./ReasoningEffortOption";
export type { ReasoningSummaryPartAddedNotification } from "./ReasoningSummaryPartAddedNotification";
@ -394,6 +408,9 @@ export type { ReviewTarget } from "./ReviewTarget";
export type { SandboxMode } from "./SandboxMode";
export type { SandboxPolicy } from "./SandboxPolicy";
export type { SandboxWorkspaceWrite } from "./SandboxWorkspaceWrite";
export type { ScheduledTaskSchedule } from "./ScheduledTaskSchedule";
export type { ScheduledTaskSummary } from "./ScheduledTaskSummary";
export type { ScheduledTaskWeekday } from "./ScheduledTaskWeekday";
export type { SelectedCapabilityRoot } from "./SelectedCapabilityRoot";
export type { SendAddCreditsNudgeEmailParams } from "./SendAddCreditsNudgeEmailParams";
export type { SendAddCreditsNudgeEmailResponse } from "./SendAddCreditsNudgeEmailResponse";
@ -465,6 +482,7 @@ export type { ThreadIncrementElicitationResponse } from "./ThreadIncrementElicit
export type { ThreadInjectItemsParams } from "./ThreadInjectItemsParams";
export type { ThreadInjectItemsResponse } from "./ThreadInjectItemsResponse";
export type { ThreadItem } from "./ThreadItem";
export type { ThreadItemEntry } from "./ThreadItemEntry";
export type { ThreadItemsListParams } from "./ThreadItemsListParams";
export type { ThreadItemsListResponse } from "./ThreadItemsListResponse";
export type { ThreadListParams } from "./ThreadListParams";
@ -488,6 +506,7 @@ export type { ThreadRealtimeAppendTextResponse } from "./ThreadRealtimeAppendTex
export type { ThreadRealtimeAudioChunk } from "./ThreadRealtimeAudioChunk";
export type { ThreadRealtimeClosedNotification } from "./ThreadRealtimeClosedNotification";
export type { ThreadRealtimeErrorNotification } from "./ThreadRealtimeErrorNotification";
export type { ThreadRealtimeInitialItem } from "./ThreadRealtimeInitialItem";
export type { ThreadRealtimeItemAddedNotification } from "./ThreadRealtimeItemAddedNotification";
export type { ThreadRealtimeListVoicesParams } from "./ThreadRealtimeListVoicesParams";
export type { ThreadRealtimeListVoicesResponse } from "./ThreadRealtimeListVoicesResponse";
@ -506,9 +525,13 @@ export type { ThreadResumeParams } from "./ThreadResumeParams";
export type { ThreadResumeResponse } from "./ThreadResumeResponse";
export type { ThreadRollbackParams } from "./ThreadRollbackParams";
export type { ThreadRollbackResponse } from "./ThreadRollbackResponse";
export type { ThreadSearchOccurrence } from "./ThreadSearchOccurrence";
export type { ThreadSearchOccurrencesParams } from "./ThreadSearchOccurrencesParams";
export type { ThreadSearchOccurrencesResponse } from "./ThreadSearchOccurrencesResponse";
export type { ThreadSearchParams } from "./ThreadSearchParams";
export type { ThreadSearchResponse } from "./ThreadSearchResponse";
export type { ThreadSearchResult } from "./ThreadSearchResult";
export type { ThreadSearchTextRange } from "./ThreadSearchTextRange";
export type { ThreadSetNameParams } from "./ThreadSetNameParams";
export type { ThreadSetNameResponse } from "./ThreadSetNameResponse";
export type { ThreadSettings } from "./ThreadSettings";

View file

@ -275,6 +275,7 @@ function hookFixture(overrides: Partial<HookMetadata> = {}): HookMetadata {
command: "node hook.js",
timeoutSec: 10n,
statusMessage: null,
additionalContextLimit: null,
sourcePath: "/vault/.codex/hooks.json",
source: "project",
pluginId: null,

View file

@ -472,6 +472,7 @@ function thread(id: string): AppServerThread {
cwd: "/vault",
cliVersion: "0.0.0",
source: "unknown",
canAcceptDirectInput: null,
threadSource: null,
agentNickname: null,
agentRole: null,

View file

@ -42,6 +42,8 @@ function responseFixture(thread: AppServerThread): ThreadResumeResponse {
reasoningEffort: "high",
multiAgentMode: "explicitRequestOnly",
initialTurnsPage: null,
turnsBackwardsCursor: null,
itemsBackwardsCursor: null,
};
}
@ -64,6 +66,7 @@ function threadFixture(id: string, name: string): AppServerThread {
cwd: "/vault",
cliVersion: "0.0.0",
source: "unknown",
canAcceptDirectInput: null,
threadSource: null,
agentNickname: null,
agentRole: null,

View file

@ -561,6 +561,7 @@ describe("ChatInboundHandler", () => {
secondary: null,
credits: null,
individualLimit: null,
spendControlReached: null,
planType: null,
rateLimitReachedType: null,
},
@ -2109,6 +2110,7 @@ function appServerThread(id: string, cwd: string): ThreadStartedNotification["pa
cwd,
cliVersion: "codex",
source: "unknown",
canAcceptDirectInput: null,
threadSource: null,
agentNickname: null,
agentRole: null,

View file

@ -279,6 +279,7 @@ describe("chat inbound routing", () => {
it.each([
{ name: "raw response item completed", notification: rawResponseItemCompletedNotification },
{ name: "raw response completed", notification: rawResponseCompletedNotification },
{ name: "turn moderation metadata", notification: turnModerationMetadataNotification },
{ name: "terminal interaction", notification: terminalInteractionNotification },
{ name: "model verification", notification: modelVerificationNotification },
@ -291,6 +292,8 @@ describe("chat inbound routing", () => {
it.each([
{ name: "thread status changed", notification: threadStatusChangedNotification },
{ name: "thread closed", notification: threadClosedNotification },
{ name: "environment connected", notification: environmentConnectedNotification },
{ name: "environment disconnected", notification: environmentDisconnectedNotification },
])("still scopes ignored thread lifecycle notification $name", ({ notification }) => {
expectNotificationRouteKind(notification("thread-active"), "ignored");
expectNotificationRouteKind(notification("thread-other"), "inactive");
@ -738,6 +741,24 @@ function rawResponseItemCompletedNotification(
};
}
function rawResponseCompletedNotification(
threadId: string,
turnId: string,
): Extract<ServerNotification, { method: "rawResponse/completed" }> {
return {
method: "rawResponse/completed",
params: { threadId, turnId, responseId: "response", usage: null },
};
}
function environmentConnectedNotification(threadId: string): Extract<ServerNotification, { method: "thread/environment/connected" }> {
return { method: "thread/environment/connected", params: { threadId, environmentId: "environment" } };
}
function environmentDisconnectedNotification(threadId: string): Extract<ServerNotification, { method: "thread/environment/disconnected" }> {
return { method: "thread/environment/disconnected", params: { threadId, environmentId: "environment" } };
}
function threadSnapshot(id: string): Extract<ServerNotification, { method: "thread/started" }>["params"]["thread"] {
return {
id,
@ -757,6 +778,7 @@ function threadSnapshot(id: string): Extract<ServerNotification, { method: "thre
cwd: "/vault",
cliVersion: "0.0.0",
source: "unknown",
canAcceptDirectInput: null,
threadSource: null,
agentNickname: null,
agentRole: null,

View file

@ -881,6 +881,7 @@ describe("turn item conversion preserves app-server semantics", () => {
id: "search-1",
query: "fallback query",
action: { type: "search", query: "codex app-server", queries: ["obsidian codex panel"] },
results: null,
};
expect(threadStreamItemFromTurnItem(item, "t1")).toMatchObject({
@ -901,6 +902,7 @@ describe("turn item conversion preserves app-server semantics", () => {
id: "search-empty",
query: "",
action: null,
results: null,
};
expect(threadStreamItemFromTurnItem(item, "t1")).toEqual({

View file

@ -728,6 +728,8 @@ function threadResumeResponse(threadId: string, overrides: Partial<AppServerThre
reasoningEffort: null,
multiAgentMode: "explicitRequestOnly",
initialTurnsPage: null,
turnsBackwardsCursor: null,
itemsBackwardsCursor: null,
...overrides,
};
}