| import type { SessionId } from "@agentclientprotocol/sdk"; |
| import { VERSION } from "../version.js"; |
|
|
| export const ACP_PROVENANCE_MODE_VALUES = ["off", "meta", "meta+receipt"] as const; |
|
|
| export type AcpProvenanceMode = (typeof ACP_PROVENANCE_MODE_VALUES)[number]; |
|
|
| export function normalizeAcpProvenanceMode( |
| value: string | undefined, |
| ): AcpProvenanceMode | undefined { |
| if (!value) { |
| return undefined; |
| } |
| const normalized = value.trim().toLowerCase(); |
| return (ACP_PROVENANCE_MODE_VALUES as readonly string[]).includes(normalized) |
| ? (normalized as AcpProvenanceMode) |
| : undefined; |
| } |
|
|
| export type AcpSession = { |
| sessionId: SessionId; |
| sessionKey: string; |
| cwd: string; |
| createdAt: number; |
| lastTouchedAt: number; |
| abortController: AbortController | null; |
| activeRunId: string | null; |
| }; |
|
|
| export type AcpServerOptions = { |
| gatewayUrl?: string; |
| gatewayToken?: string; |
| gatewayPassword?: string; |
| defaultSessionKey?: string; |
| defaultSessionLabel?: string; |
| requireExistingSession?: boolean; |
| resetSession?: boolean; |
| prefixCwd?: boolean; |
| provenanceMode?: AcpProvenanceMode; |
| sessionCreateRateLimit?: { |
| maxRequests?: number; |
| windowMs?: number; |
| }; |
| verbose?: boolean; |
| }; |
|
|
| export const ACP_AGENT_INFO = { |
| name: "openclaw-acp", |
| title: "OpenClaw ACP Gateway", |
| version: VERSION, |
| }; |
|
|