Update app-server bindings for Codex CLI 0.140.0

This commit is contained in:
murashit 2026-06-16 14:01:18 +09:00
parent 36b9d99fcd
commit e59a782705
45 changed files with 203 additions and 18 deletions

View file

@ -173,7 +173,7 @@ Codex Panel acts as a local Obsidian client for Codex App Server:
| Key | Version | Policy |
| ------------------------ | --------- | ---------------------------------------------------------- |
| `obsidian.minAppVersion` | `1.12.0` | Track the latest patch for this Obsidian minor. |
| `codex.testedCliVersion` | `0.139.0` | Track app-server compatibility by Codex CLI minor version. |
| `codex.testedCliVersion` | `0.140.0` | Track app-server compatibility by Codex CLI minor version. |
Codex Panel depends on the experimental `codex app-server` API.

View file

@ -257,6 +257,7 @@ const THREAD_LIFECYCLE_PLANNERS = {
actions: [],
effects: [{ type: "apply-thread-archived", threadId: notification.params.threadId }],
}),
"thread/deleted": () => ({ actions: [], effects: [{ type: "refresh-threads" }] }),
"thread/unarchived": () => ({ actions: [], effects: [{ type: "refresh-threads" }] }),
"thread/name/updated": (_state, notification) => {
const name = normalizeExplicitThreadName(notification.params.threadName);

View file

@ -48,7 +48,12 @@ type ServerRequestScopeExtractors = {
[Method in ServerRequestMethod]: (request: Extract<ServerRequest, { method: Method }>) => MessageScope;
};
const GLOBALLY_ROUTED_THREAD_CATALOG_NOTIFICATION_METHODS = ["thread/archived", "thread/unarchived", "thread/name/updated"] as const;
const GLOBALLY_ROUTED_THREAD_CATALOG_NOTIFICATION_METHODS = [
"thread/archived",
"thread/deleted",
"thread/unarchived",
"thread/name/updated",
] as const;
const STREAM_UPDATE_NOTIFICATION_METHODS = [
"item/agentMessage/delta",
@ -80,6 +85,7 @@ export type TurnLifecycleNotificationMethod = (typeof TURN_LIFECYCLE_NOTIFICATIO
const THREAD_LIFECYCLE_NOTIFICATION_METHODS = [
"thread/started",
"thread/archived",
"thread/deleted",
"thread/unarchived",
"thread/name/updated",
"thread/goal/updated",
@ -123,6 +129,7 @@ const SERVER_NOTIFICATION_SCOPE_EXTRACTORS: ServerNotificationScopeExtractors =
"thread/started": threadStartedNotificationScope,
"thread/status/changed": threadOnlyNotificationScope,
"thread/archived": threadOnlyNotificationScope,
"thread/deleted": threadOnlyNotificationScope,
"thread/unarchived": threadOnlyNotificationScope,
"thread/closed": threadOnlyNotificationScope,
"skills/changed": unscopedNotificationScope,

View file

@ -153,6 +153,8 @@ function messageStreamItemFromTurnItemData(item: TurnItem, turnId?: string): Mes
return imageViewMessageStreamItem(item, turnId);
case "imageGeneration":
return imageGenerationMessageStreamItem(item, turnId);
case "subAgentActivity":
return null;
case "enteredReviewMode":
case "exitedReviewMode":
return reviewModeMessageStreamItem(item, turnId);

View file

@ -97,6 +97,7 @@ export interface PendingUserInputParams {
turnId: string;
itemId: string;
questions: PendingUserInputQuestion[];
autoResolutionMs: number | null;
}
export interface PendingUserInput {

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 AgentMessageInputContent = { "type": "encrypted_content", encrypted_content: string, };
export type AgentMessageInputContent = { "type": "input_text", text: string, } | { "type": "encrypted_content", encrypted_content: string, };

View file

@ -5,4 +5,4 @@
/**
* Authentication mode for OpenAI-backed providers.
*/
export type AuthMode = "apikey" | "chatgpt" | "chatgptAuthTokens" | "agentIdentity" | "personalAccessToken";
export type AuthMode = "apikey" | "chatgpt" | "chatgptAuthTokens" | "agentIdentity" | "personalAccessToken" | "bedrockApiKey";

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 ConversationTextRole = "user" | "developer";

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 RealtimeConversationArchitecture = "realtimeapi" | "avas";

File diff suppressed because one or more lines are too long

View file

@ -14,6 +14,7 @@ export type { CollaborationMode } from "./CollaborationMode";
export type { ContentItem } from "./ContentItem";
export type { ConversationGitInfo } from "./ConversationGitInfo";
export type { ConversationSummary } from "./ConversationSummary";
export type { ConversationTextRole } from "./ConversationTextRole";
export type { ExecCommandApprovalParams } from "./ExecCommandApprovalParams";
export type { ExecCommandApprovalResponse } from "./ExecCommandApprovalResponse";
export type { ExecPolicyAmendment } from "./ExecPolicyAmendment";
@ -57,6 +58,7 @@ export type { NetworkPolicyRuleAction } from "./NetworkPolicyRuleAction";
export type { ParsedCommand } from "./ParsedCommand";
export type { Personality } from "./Personality";
export type { PlanType } from "./PlanType";
export type { RealtimeConversationArchitecture } from "./RealtimeConversationArchitecture";
export type { RealtimeConversationVersion } from "./RealtimeConversationVersion";
export type { RealtimeOutputModality } from "./RealtimeOutputModality";
export type { RealtimeVoice } from "./RealtimeVoice";

View file

@ -5,4 +5,4 @@
/**
* EXPERIMENTAL - app metadata summary for plugin responses.
*/
export type AppSummary = { id: string, name: string, description: string | null, installUrl: string | null, needsAuth: boolean, };
export type AppSummary = { id: string, name: string, description: string | null, installUrl: string | null, category: string | null, };

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 { AppTemplateUnavailableReason } from "./AppTemplateUnavailableReason";
export type AppTemplateSummary = { templateId: string, name: string, description: string | null, canonicalConnectorId: string | null, logoUrl: string | null, logoUrlDark: string | null, materializedAppIds: Array<string>, reason: AppTemplateUnavailableReason | null, };
export type AppTemplateSummary = { templateId: string, name: string, description: string | null, category: string | null, canonicalConnectorId: string | null, logoUrl: string | null, logoUrlDark: string | null, materializedAppIds: Array<string>, reason: AppTemplateUnavailableReason | null, };

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 { ApprovalsReviewer } from "./ApprovalsReviewer";
export type AppsDefaultConfig = { enabled: boolean, destructive_enabled: boolean, open_world_enabled: boolean, };
export type AppsDefaultConfig = { enabled: boolean, approvals_reviewer: ApprovalsReviewer | null, destructive_enabled: boolean, open_world_enabled: 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.
/**
* Location used to resolve a selected capability root.
*/
export type CapabilityRootLocation = { "type": "environment", environmentId: string, path: string, };

View file

@ -11,4 +11,4 @@ import type { ResidencyRequirement } from "./ResidencyRequirement";
import type { SandboxMode } from "./SandboxMode";
import type { WindowsSandboxSetupMode } from "./WindowsSandboxSetupMode";
export type ConfigRequirements = { allowedApprovalPolicies: Array<AskForApproval> | null, allowedApprovalsReviewers: Array<ApprovalsReviewer> | null, allowedSandboxModes: Array<SandboxMode> | null, allowedWindowsSandboxImplementations: Array<WindowsSandboxSetupMode> | null, allowedPermissionProfiles: { [key in string]?: boolean } | null, defaultPermissions: string | null, allowedWebSearchModes: Array<WebSearchMode> | null, allowManagedHooksOnly: boolean | null, allowAppshots: boolean | null, computerUse: ComputerUseRequirements | null, featureRequirements: { [key in string]?: boolean } | null, hooks: ManagedHooksRequirements | null, enforceResidency: ResidencyRequirement | null, network: NetworkRequirements | null, };
export type ConfigRequirements = { allowedApprovalPolicies: Array<AskForApproval> | null, allowedApprovalsReviewers: Array<ApprovalsReviewer> | null, allowedSandboxModes: Array<SandboxMode> | null, allowedWindowsSandboxImplementations: Array<WindowsSandboxSetupMode> | null, allowedPermissionProfiles: { [key in string]?: boolean } | null, defaultPermissions: string | null, allowedWebSearchModes: Array<WebSearchMode> | null, allowManagedHooksOnly: boolean | null, allowAppshots: boolean | null, allowRemoteControl: boolean | null, computerUse: ComputerUseRequirements | null, featureRequirements: { [key in string]?: boolean } | null, hooks: ManagedHooksRequirements | null, enforceResidency: ResidencyRequirement | null, network: NetworkRequirements | null, };

View file

@ -8,4 +8,4 @@ import type { PluginHookSummary } from "./PluginHookSummary";
import type { PluginSummary } from "./PluginSummary";
import type { SkillSummary } from "./SkillSummary";
export type PluginDetail = { marketplaceName: string, marketplacePath: AbsolutePathBuf | null, summary: PluginSummary, description: string | null, skills: Array<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>, };

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 RemoteControlDisableParams = { ephemeral?: boolean, };

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 RemoteControlEnableParams = { ephemeral?: boolean, };

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 { CapabilityRootLocation } from "./CapabilityRootLocation";
/**
* A user-selected root that can expose one or more runtime capabilities.
*/
export type SelectedCapabilityRoot = {
/**
* Stable identifier supplied by the capability selection platform.
*/
id: string,
/**
* Where the selected root can be resolved.
*/
location: CapabilityRootLocation, };

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 SubAgentActivityKind = "started" | "interacted" | "interrupted";

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 { AbsolutePathBuf } from "../AbsolutePathBuf";
export type ThreadBackgroundTerminal = { itemId: string, processId: string, command: string, cwd: AbsolutePathBuf, osPid: number | null, cpuPercent: number | null, rssKb: bigint | null, };

View file

@ -0,0 +1,13 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ThreadBackgroundTerminalsListParams = { threadId: string,
/**
* Opaque pagination cursor returned by a previous call.
*/
cursor?: string | null,
/**
* Optional page size.
*/
limit?: number | null, };

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.
import type { ThreadBackgroundTerminal } from "./ThreadBackgroundTerminal";
export type ThreadBackgroundTerminalsListResponse = { data: Array<ThreadBackgroundTerminal>,
/**
* Opaque cursor to pass to the next call to continue after the last item.
* If None, there are no more items to return.
*/
nextCursor: string | null, };

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 ThreadBackgroundTerminalsTerminateParams = { threadId: string, processId: 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 ThreadBackgroundTerminalsTerminateResponse = { terminated: boolean, };

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 ThreadDeleteParams = { threadId: 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 ThreadDeleteResponse = Record<string, never>;

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

View file

@ -20,6 +20,7 @@ import type { McpToolCallResult } from "./McpToolCallResult";
import type { McpToolCallStatus } from "./McpToolCallStatus";
import type { MemoryCitation } from "./MemoryCitation";
import type { PatchApplyStatus } from "./PatchApplyStatus";
import type { SubAgentActivityKind } from "./SubAgentActivityKind";
import type { UserInput } from "./UserInput";
import type { WebSearchAction } from "./WebSearchAction";
@ -98,4 +99,4 @@ reasoningEffort: ReasoningEffort | null,
/**
* Last known status of the target agents, when available.
*/
agentsStates: { [key in string]?: CollabAgentState }, } | { "type": "webSearch", id: string, query: string, action: WebSearchAction | null, } | { "type": "imageView", id: string, path: AbsolutePathBuf, } | { "type": "imageGeneration", id: string, status: string, revisedPrompt: string | null, result: string, savedPath?: AbsolutePathBuf, } | { "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", id: string, query: string, action: WebSearchAction | null, } | { "type": "imageView", id: string, path: AbsolutePathBuf, } | { "type": "imageGeneration", id: string, status: string, revisedPrompt: string | null, result: string, savedPath?: AbsolutePathBuf, } | { "type": "enteredReviewMode", id: string, review: string, } | { "type": "exitedReviewMode", id: string, review: string, } | { "type": "contextCompaction", id: string, };

View file

@ -1,8 +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 - append text input to thread realtime.
*/
export type ThreadRealtimeAppendTextParams = { threadId: string, text: string, };
export type ThreadRealtimeAppendTextParams = { threadId: string, text: string, role: ConversationTextRole, };

View file

@ -2,6 +2,8 @@
// 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 { RealtimeConversationArchitecture } from "../RealtimeConversationArchitecture";
import type { RealtimeConversationVersion } from "../RealtimeConversationVersion";
import type { RealtimeOutputModality } from "../RealtimeOutputModality";
import type { RealtimeVoice } from "../RealtimeVoice";
import type { ThreadRealtimeStartTransport } from "./ThreadRealtimeStartTransport";
@ -10,8 +12,20 @@ import type { ThreadRealtimeStartTransport } from "./ThreadRealtimeStartTranspor
* EXPERIMENTAL - start a thread-scoped realtime session.
*/
export type ThreadRealtimeStartParams = { threadId: string,
/**
* Overrides the configured realtime architecture for this session only.
*/
architecture?: RealtimeConversationArchitecture | null,
/**
* Overrides the configured realtime model for this session only.
*/
model?: string | null,
/**
* Selects text or audio output for the realtime session. Transport and voice stay
* independent so clients can choose how they connect separately from what the model emits.
*/
outputModality: RealtimeOutputModality, prompt?: string | null, realtimeSessionId?: string | null, transport?: ThreadRealtimeStartTransport | null, voice?: RealtimeVoice | null, };
outputModality: RealtimeOutputModality, prompt?: string | null, realtimeSessionId?: string | null, transport?: ThreadRealtimeStartTransport | null,
/**
* Overrides the configured realtime protocol version for this session only.
*/
version?: RealtimeConversationVersion | null, voice?: RealtimeVoice | 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 ThreadSource = "user" | "subagent" | "memory_consolidation";
export type ThreadSource = string;

View file

@ -9,6 +9,7 @@ import type { ApprovalsReviewer } from "./ApprovalsReviewer";
import type { AskForApproval } from "./AskForApproval";
import type { DynamicToolSpec } from "./DynamicToolSpec";
import type { SandboxMode } from "./SandboxMode";
import type { SelectedCapabilityRoot } from "./SelectedCapabilityRoot";
import type { ThreadSource } from "./ThreadSource";
import type { ThreadStartSource } from "./ThreadStartSource";
import type { TurnEnvironmentParams } from "./TurnEnvironmentParams";
@ -40,6 +41,10 @@ threadSource?: ThreadSource | null,
* current turn environment.
*/
environments?: Array<TurnEnvironmentParams> | null, dynamicTools?: Array<DynamicToolSpec> | null,
/**
* Capability roots selected for this thread by the hosting platform.
*/
selectedCapabilityRoots?: Array<SelectedCapabilityRoot> | null,
/**
* Test-only experimental field used to validate experimental gating and
* schema filtering behavior in a stable way.

View file

@ -6,4 +6,4 @@ import type { ToolRequestUserInputQuestion } from "./ToolRequestUserInputQuestio
/**
* EXPERIMENTAL. Params sent with a request_user_input event.
*/
export type ToolRequestUserInputParams = { threadId: string, turnId: string, itemId: string, questions: Array<ToolRequestUserInputQuestion>, };
export type ToolRequestUserInputParams = { threadId: string, turnId: string, itemId: string, questions: Array<ToolRequestUserInputQuestion>, autoResolutionMs: number | null, };

View file

@ -17,7 +17,13 @@ import type { UserInput } from "./UserInput";
export type TurnStartParams = { threadId: string, clientUserMessageId?: string | null, input: Array<UserInput>,
/**
* Optional turn-scoped Responses API client metadata.
* Optional metadata to enrich Codex's ResponsesAPI turn metadata.
*
* Entries are flattened into the JSON string sent as
* `client_metadata["x-codex-turn-metadata"]` on ResponsesAPI HTTP and websocket requests.
*
* They are not sent as top-level ResponsesAPI `client_metadata` keys, and reserved keys
* such as `session_id`, `thread_id`, `turn_id`, and `window_id` cannot be overridden.
*/
responsesapiClientMetadata?: { [key in string]?: string } | null,
/**

View file

@ -6,7 +6,13 @@ import type { UserInput } from "./UserInput";
export type TurnSteerParams = { threadId: string, clientUserMessageId?: string | null, input: Array<UserInput>,
/**
* Optional turn-scoped Responses API client metadata.
* Optional metadata to enrich Codex's ResponsesAPI turn metadata.
*
* Entries are flattened into the JSON string sent as
* `client_metadata["x-codex-turn-metadata"]` on ResponsesAPI HTTP and websocket requests.
*
* They are not sent as top-level ResponsesAPI `client_metadata` keys, and reserved keys
* such as `session_id`, `thread_id`, `turn_id`, and `window_id` cannot be overridden.
*/
responsesapiClientMetadata?: { [key in string]?: string } | null,
/**

View file

@ -40,6 +40,7 @@ export type { ByteRange } from "./ByteRange";
export type { CancelLoginAccountParams } from "./CancelLoginAccountParams";
export type { CancelLoginAccountResponse } from "./CancelLoginAccountResponse";
export type { CancelLoginAccountStatus } from "./CancelLoginAccountStatus";
export type { CapabilityRootLocation } from "./CapabilityRootLocation";
export type { ChatgptAuthTokensRefreshParams } from "./ChatgptAuthTokensRefreshParams";
export type { ChatgptAuthTokensRefreshReason } from "./ChatgptAuthTokensRefreshReason";
export type { ChatgptAuthTokensRefreshResponse } from "./ChatgptAuthTokensRefreshResponse";
@ -345,7 +346,9 @@ export type { RemoteControlClientsListResponse } from "./RemoteControlClientsLis
export type { RemoteControlClientsRevokeParams } from "./RemoteControlClientsRevokeParams";
export type { RemoteControlClientsRevokeResponse } from "./RemoteControlClientsRevokeResponse";
export type { RemoteControlConnectionStatus } from "./RemoteControlConnectionStatus";
export type { RemoteControlDisableParams } from "./RemoteControlDisableParams";
export type { RemoteControlDisableResponse } from "./RemoteControlDisableResponse";
export type { RemoteControlEnableParams } from "./RemoteControlEnableParams";
export type { RemoteControlEnableResponse } from "./RemoteControlEnableResponse";
export type { RemoteControlPairingStartParams } from "./RemoteControlPairingStartParams";
export type { RemoteControlPairingStartResponse } from "./RemoteControlPairingStartResponse";
@ -362,6 +365,7 @@ export type { ReviewTarget } from "./ReviewTarget";
export type { SandboxMode } from "./SandboxMode";
export type { SandboxPolicy } from "./SandboxPolicy";
export type { SandboxWorkspaceWrite } from "./SandboxWorkspaceWrite";
export type { SelectedCapabilityRoot } from "./SelectedCapabilityRoot";
export type { SendAddCreditsNudgeEmailParams } from "./SendAddCreditsNudgeEmailParams";
export type { SendAddCreditsNudgeEmailResponse } from "./SendAddCreditsNudgeEmailResponse";
export type { ServerRequestResolvedNotification } from "./ServerRequestResolvedNotification";
@ -384,6 +388,7 @@ export type { SkillsListParams } from "./SkillsListParams";
export type { SkillsListResponse } from "./SkillsListResponse";
export type { SortDirection } from "./SortDirection";
export type { SpendControlLimitSnapshot } from "./SpendControlLimitSnapshot";
export type { SubAgentActivityKind } from "./SubAgentActivityKind";
export type { SubagentMigration } from "./SubagentMigration";
export type { TerminalInteractionNotification } from "./TerminalInteractionNotification";
export type { TextElement } from "./TextElement";
@ -396,13 +401,21 @@ export type { ThreadApproveGuardianDeniedActionResponse } from "./ThreadApproveG
export type { ThreadArchiveParams } from "./ThreadArchiveParams";
export type { ThreadArchiveResponse } from "./ThreadArchiveResponse";
export type { ThreadArchivedNotification } from "./ThreadArchivedNotification";
export type { ThreadBackgroundTerminal } from "./ThreadBackgroundTerminal";
export type { ThreadBackgroundTerminalsCleanParams } from "./ThreadBackgroundTerminalsCleanParams";
export type { ThreadBackgroundTerminalsCleanResponse } from "./ThreadBackgroundTerminalsCleanResponse";
export type { ThreadBackgroundTerminalsListParams } from "./ThreadBackgroundTerminalsListParams";
export type { ThreadBackgroundTerminalsListResponse } from "./ThreadBackgroundTerminalsListResponse";
export type { ThreadBackgroundTerminalsTerminateParams } from "./ThreadBackgroundTerminalsTerminateParams";
export type { ThreadBackgroundTerminalsTerminateResponse } from "./ThreadBackgroundTerminalsTerminateResponse";
export type { ThreadClosedNotification } from "./ThreadClosedNotification";
export type { ThreadCompactStartParams } from "./ThreadCompactStartParams";
export type { ThreadCompactStartResponse } from "./ThreadCompactStartResponse";
export type { ThreadDecrementElicitationParams } from "./ThreadDecrementElicitationParams";
export type { ThreadDecrementElicitationResponse } from "./ThreadDecrementElicitationResponse";
export type { ThreadDeleteParams } from "./ThreadDeleteParams";
export type { ThreadDeleteResponse } from "./ThreadDeleteResponse";
export type { ThreadDeletedNotification } from "./ThreadDeletedNotification";
export type { ThreadForkParams } from "./ThreadForkParams";
export type { ThreadForkResponse } from "./ThreadForkResponse";
export type { ThreadGoal } from "./ThreadGoal";

View file

@ -55,6 +55,7 @@ function userInputRequest(): ServerRequest {
options: [{ label: "Recommended", description: "Use the default path" }],
},
],
autoResolutionMs: null,
},
};
}

View file

@ -736,6 +736,7 @@ describe("ChatInboundController", () => {
options: [{ label: "Narrow", description: "Small change" }],
},
],
autoResolutionMs: null,
},
});
@ -765,6 +766,7 @@ describe("ChatInboundController", () => {
turnId: "turn-active",
itemId: "input-1",
questions: [{ id: "note", header: "Note", question: "What now?", isOther: false, isSecret: false, options: null }],
autoResolutionMs: null,
},
});
@ -907,6 +909,7 @@ describe("ChatInboundController", () => {
turnId: "turn-active",
itemId: "input",
questions: [{ id: "note", header: "Note", question: "What now?", isOther: false, isSecret: false, options: null }],
autoResolutionMs: null,
},
});
controller.handleServerRequest({
@ -917,6 +920,7 @@ describe("ChatInboundController", () => {
turnId: "turn-other",
itemId: "input",
questions: [{ id: "note", header: "Note", question: "What now?", isOther: false, isSecret: false, options: null }],
autoResolutionMs: null,
},
});
@ -951,6 +955,7 @@ describe("ChatInboundController", () => {
turnId: "turn-stale",
itemId: "input",
questions: [{ id: "note", header: "Note", question: "What now?", isOther: false, isSecret: false, options: null }],
autoResolutionMs: null,
},
});
@ -1000,6 +1005,7 @@ describe("ChatInboundController", () => {
turnId: "turn-active",
itemId: "input",
questions: [{ id: "note", header: "Note", question: "What now?", isOther: false, isSecret: false, options: null }],
autoResolutionMs: null,
},
},
],
@ -1084,6 +1090,7 @@ describe("ChatInboundController", () => {
turnId: "turn-active",
itemId: "input",
questions: [{ id: "note", header: "Note", question: "What now?", isOther: false, isSecret: false, options: null }],
autoResolutionMs: null,
},
},
],
@ -1858,6 +1865,7 @@ function userInputRequest(id: number): ServerRequest {
turnId: "turn",
itemId: "input",
questions: [{ id: "note", header: "Note", question: "What now?", isOther: false, isSecret: false, options: null }],
autoResolutionMs: null,
},
};
}

View file

@ -294,6 +294,7 @@ function userInputRequest(
turnId: "turn-active",
itemId: "input",
questions: [{ id: "note", header: "Note", question: "What now?", isOther: false, isSecret: false, options: null }],
autoResolutionMs: null,
...overrides,
},
};

View file

@ -32,6 +32,7 @@ describe("user input model", () => {
options: [{ label: "Recommended", description: "Use the default path" }],
},
],
autoResolutionMs: null,
},
};
@ -64,6 +65,7 @@ describe("user input model", () => {
options: [{ label: "Recommended", description: "Use the default path" }],
},
],
autoResolutionMs: null,
},
}),
);

View file

@ -782,6 +782,7 @@ function userInput(requestId: number): ChatState["requests"]["pendingUserInputs"
turnId: "turn",
itemId: "input",
questions: [{ id: "note", header: "Note", question: "What now?", isOther: false, isSecret: false, options: null }],
autoResolutionMs: null,
},
};
}

View file

@ -269,6 +269,7 @@ export function pendingUserInput(): PendingUserInput {
options: [{ label: "Narrow", description: "Small change" }],
},
],
autoResolutionMs: null,
},
};
}