mirror of
https://github.com/murashit/codex-panel.git
synced 2026-07-22 06:57:10 +00:00
Update app-server types for Codex CLI 0.142.5
This commit is contained in:
parent
d5390d9752
commit
60dba267ba
14 changed files with 45 additions and 20 deletions
|
|
@ -62,7 +62,7 @@ Threads can be archived as Markdown notes with a configurable folder, filename t
|
|||
| ------------------------ | --------- | --------------------------------------------------------------------------------------------------- |
|
||||
| `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. |
|
||||
| `codex.testedCliVersion` | `0.142.0` | Track app-server compatibility by Codex CLI minor version. |
|
||||
| `codex.testedCliVersion` | `0.142.5` | Track app-server compatibility by Codex CLI minor version. |
|
||||
|
||||
Codex Panel depends on the experimental `codex app-server` API.
|
||||
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@ export function startEphemeralThread(
|
|||
ephemeral: true,
|
||||
sandbox: "read-only",
|
||||
approvalPolicy: "never",
|
||||
multiAgentMode: "none",
|
||||
environments: [],
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@
|
|||
*
|
||||
* 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 convert
|
||||
* from [`AbsolutePathBuf`] or use [`Self::from_path_uri`] 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.
|
||||
* 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
|
||||
|
|
|
|||
|
|
@ -20,4 +20,4 @@ id?: string,
|
|||
/**
|
||||
* 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, 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", internal_chat_message_metadata_passthrough?: InternalChatMessageMetadataPassthrough, } | { "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?: 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, 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" };
|
||||
|
|
|
|||
|
|
@ -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 ModelSafetyBufferingUpdatedNotification = { threadId: string, turnId: string, model: string, useCases: Array<string>, reasons: Array<string>, };
|
||||
export type ModelSafetyBufferingUpdatedNotification = { threadId: string, turnId: string, model: string, useCases: Array<string>, reasons: Array<string>, showBufferingUi: boolean, fasterModel: string | null, };
|
||||
|
|
|
|||
|
|
@ -21,10 +21,18 @@ composerIconUrl: string | null,
|
|||
* Local logo path, resolved from the installed plugin package.
|
||||
*/
|
||||
logo: AbsolutePathBuf | null,
|
||||
/**
|
||||
* Local dark-mode logo path, resolved from the installed plugin package.
|
||||
*/
|
||||
logoDark: AbsolutePathBuf | null,
|
||||
/**
|
||||
* Remote logo URL from the plugin catalog.
|
||||
*/
|
||||
logoUrl: string | null,
|
||||
/**
|
||||
* Remote dark-mode logo URL from the plugin catalog.
|
||||
*/
|
||||
logoUrlDark: string | null,
|
||||
/**
|
||||
* Local screenshot paths, resolved from the installed plugin package.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -36,6 +36,6 @@ sandbox: SandboxPolicy,
|
|||
*/
|
||||
activePermissionProfile: ActivePermissionProfile | null, reasoningEffort: ReasoningEffort | null,
|
||||
/**
|
||||
* Current multi-agent mode for this thread.
|
||||
* @deprecated Always `explicitRequestOnly`. Use `reasoningEffort` for Ultra behavior.
|
||||
*/
|
||||
multiAgentMode: MultiAgentMode, };
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ sandbox: SandboxPolicy,
|
|||
*/
|
||||
activePermissionProfile: ActivePermissionProfile | null, reasoningEffort: ReasoningEffort | null,
|
||||
/**
|
||||
* Current multi-agent mode for this thread.
|
||||
* @deprecated Always `explicitRequestOnly`. Use `reasoningEffort` for Ultra behavior.
|
||||
*/
|
||||
multiAgentMode: MultiAgentMode,
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -14,6 +14,6 @@ import type { SandboxPolicy } from "./SandboxPolicy";
|
|||
|
||||
export type ThreadSettings = { cwd: AbsolutePathBuf, approvalPolicy: AskForApproval, approvalsReviewer: ApprovalsReviewer, sandboxPolicy: SandboxPolicy, activePermissionProfile: ActivePermissionProfile | null, model: string, modelProvider: string, serviceTier: string | null, effort: ReasoningEffort | null, summary: ReasoningSummary | null, collaborationMode: CollaborationMode,
|
||||
/**
|
||||
* Current multi-agent mode for this thread.
|
||||
* @deprecated Always `explicitRequestOnly`. Use `effort` for Ultra behavior.
|
||||
*/
|
||||
multiAgentMode: MultiAgentMode, personality: Personality | null, };
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ summary?: ReasoningSummary | null,
|
|||
*/
|
||||
collaborationMode?: CollaborationMode | null,
|
||||
/**
|
||||
* Select the multi-agent mode for subsequent turns.
|
||||
* @deprecated Ignored. Use `effort: "ultra"` for proactive multi-agent behavior.
|
||||
*/
|
||||
multiAgentMode?: MultiAgentMode | null,
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -30,9 +30,7 @@ approvalsReviewer?: ApprovalsReviewer | null, sandbox?: SandboxMode | null,
|
|||
*/
|
||||
permissions?: string | null, config?: { [key in string]?: JsonValue } | null, serviceName?: string | null, baseInstructions?: string | null, developerInstructions?: string | null, personality?: Personality | null,
|
||||
/**
|
||||
* Set the initial multi-agent mode for this thread. `none` leaves the
|
||||
* multi-agent tools available without injecting mode instructions.
|
||||
* Omitted defaults to `explicitRequestOnly`.
|
||||
* @deprecated Ignored. Use Ultra reasoning effort for proactive multi-agent behavior.
|
||||
*/
|
||||
multiAgentMode?: MultiAgentMode | null, ephemeral?: boolean | null, sessionStartSource?: ThreadStartSource | null,
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -36,6 +36,6 @@ sandbox: SandboxPolicy,
|
|||
*/
|
||||
activePermissionProfile: ActivePermissionProfile | null, reasoningEffort: ReasoningEffort | null,
|
||||
/**
|
||||
* Current multi-agent mode for this thread.
|
||||
* @deprecated Always `explicitRequestOnly`. Use `reasoningEffort` for Ultra behavior.
|
||||
*/
|
||||
multiAgentMode: MultiAgentMode, };
|
||||
|
|
|
|||
|
|
@ -100,8 +100,6 @@ outputSchema?: JsonValue | null,
|
|||
*/
|
||||
collaborationMode?: CollaborationMode | null,
|
||||
/**
|
||||
* Controls multi-agent v2 delegation instructions. `none` leaves the
|
||||
* multi-agent tools available without injecting mode instructions. Omitted
|
||||
* keeps the loaded session's current mode.
|
||||
* @deprecated Ignored. Use `effort: "ultra"` for proactive multi-agent behavior.
|
||||
*/
|
||||
multiAgentMode?: MultiAgentMode | null, };
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { describe, expect, it, vi } from "vitest";
|
||||
|
||||
import type { AppServerRequestClient } from "../../src/app-server/services/request-client";
|
||||
import { listThreads, startThread } from "../../src/app-server/services/threads";
|
||||
import { listThreads, startEphemeralThread, startThread } from "../../src/app-server/services/threads";
|
||||
|
||||
describe("app-server thread response adapters", () => {
|
||||
it("starts panel-owned threads with the codex-panel service name", async () => {
|
||||
|
|
@ -31,6 +31,28 @@ describe("app-server thread response adapters", () => {
|
|||
});
|
||||
});
|
||||
|
||||
it("starts ephemeral helper threads without deprecated multi-agent mode params", async () => {
|
||||
const client = {
|
||||
request: vi.fn().mockResolvedValue({ thread: { id: "thread-new" } }),
|
||||
} as unknown as AppServerRequestClient;
|
||||
|
||||
await startEphemeralThread(client, {
|
||||
cwd: "/vault",
|
||||
serviceName: "codex-panel-selection-rewrite",
|
||||
developerInstructions: "Return structured output.",
|
||||
});
|
||||
|
||||
expect(client.request).toHaveBeenCalledWith("thread/start", {
|
||||
cwd: "/vault",
|
||||
serviceName: "codex-panel-selection-rewrite",
|
||||
developerInstructions: "Return structured output.",
|
||||
ephemeral: true,
|
||||
sandbox: "read-only",
|
||||
approvalPolicy: "never",
|
||||
environments: [],
|
||||
});
|
||||
});
|
||||
|
||||
it("maps listed threads to domain threads with archive state", async () => {
|
||||
const clientListThreads = vi.fn().mockResolvedValue({
|
||||
data: [{ id: "thread-1", preview: "Preview", name: null, createdAt: 10, updatedAt: 20 }],
|
||||
|
|
|
|||
Loading…
Reference in a new issue