openclaw/src/config/types.acp.ts

49 lines
1.7 KiB
TypeScript

import type { AcpSessionUpdateTag } from "../acp/runtime/types.js";
export type AcpDispatchConfig = {
/** Master switch for ACP turn dispatch in the reply pipeline. */
enabled?: boolean;
};
export type AcpStreamConfig = {
/** Coalescer idle flush window in milliseconds for ACP streamed text. */
coalesceIdleMs?: number;
/** Maximum text size per streamed chunk. */
maxChunkChars?: number;
/** Suppresses repeated ACP status/tool projection lines within a turn. */
repeatSuppression?: boolean;
/** Live streams chunks or waits for terminal event before delivery. */
deliveryMode?: "live" | "final_only";
/** Separator inserted before visible text when hidden tool events occurred. */
hiddenBoundarySeparator?: "none" | "space" | "newline" | "paragraph";
/** Maximum assistant output characters forwarded per turn. */
maxOutputChars?: number;
/** Maximum visible characters for projected session/update lines. */
maxSessionUpdateChars?: number;
/**
* Per-sessionUpdate visibility overrides.
* Keys not listed here fall back to OpenClaw defaults.
*/
tagVisibility?: Partial<Record<AcpSessionUpdateTag, boolean>>;
};
export type AcpRuntimeConfig = {
/** Idle runtime TTL in minutes for ACP session workers. */
ttlMinutes?: number;
/** Optional operator install/setup command shown by `/acp install` and `/acp doctor`. */
installCommand?: string;
};
export type AcpConfig = {
/** Global ACP runtime gate. */
enabled?: boolean;
dispatch?: AcpDispatchConfig;
/** Backend id registered by ACP runtime plugin (for example: acpx). */
backend?: string;
defaultAgent?: string;
allowedAgents?: string[];
maxConcurrentSessions?: number;
stream?: AcpStreamConfig;
runtime?: AcpRuntimeConfig;
};