Merged via squash. Prepared head SHA: b63e46dd94479de611dab68868340aa18bdaff2f Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com> Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com> Reviewed-by: @mbelinky
52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
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,
|
|
};
|