openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
183 lines (182 loc) • 6.16 kB
TypeScript
import { i as OpenClawConfig } from "./types.openclaw-DBHlrrVj.js";
import { c as AcpRuntimePromptMode, l as AcpRuntimeSessionMode, n as AcpRuntimeCapabilities, o as AcpRuntimeEvent, s as AcpRuntimeHandle, t as AcpRuntime, u as AcpRuntimeStatus } from "./types-Z2-ObWHA.js";
import { a as SessionAcpIdentity, c as SessionAcpMeta, i as AcpSessionRuntimeOptions } from "./types-Bst3_XVW.js";
import { n as AcpRuntimeError } from "./errors-4NrSl2dh.js";
import { i as requireAcpRuntimeBackend, n as getAcpRuntimeBackend } from "./registry-CakSNsge.js";
import { i as upsertAcpSessionMeta, n as listAcpSessionEntries, r as readAcpSessionEntry } from "./session-meta-CMhmLZgJ.js";
//#region src/acp/control-plane/manager.types.d.ts
/** Result of resolving persisted ACP metadata for a session key. */
type AcpSessionResolution = {
kind: "none";
sessionKey: string;
} | {
kind: "stale";
sessionKey: string;
error: AcpRuntimeError;
} | {
kind: "ready";
sessionKey: string;
meta: SessionAcpMeta;
};
/** Input required to create or resume an ACP runtime session. */
type AcpInitializeSessionInput = {
cfg: OpenClawConfig;
sessionKey: string;
agent: string;
mode: AcpRuntimeSessionMode;
resumeSessionId?: string;
runtimeOptions?: Partial<AcpSessionRuntimeOptions>;
cwd?: string;
backendId?: string;
};
type AcpTurnAttachment = {
mediaType: string;
data: string;
};
/** Input for one ACP prompt turn routed through the manager. */
type AcpRunTurnInput = {
cfg: OpenClawConfig;
sessionKey: string;
text: string;
attachments?: AcpTurnAttachment[];
mode: AcpRuntimePromptMode;
requestId: string;
signal?: AbortSignal;
onLifecycle?: (event: AcpTurnLifecycleEvent) => Promise<void> | void;
onEvent?: (event: AcpRuntimeEvent) => Promise<void> | void;
};
type AcpTurnLifecycleEvent = {
type: "prompt_submitted";
at: number;
};
/** Input for closing, resetting, or cleaning up an ACP session. */
type AcpCloseSessionInput = {
cfg: OpenClawConfig;
sessionKey: string;
reason: string;
discardPersistentState?: boolean;
clearMeta?: boolean;
allowBackendUnavailable?: boolean;
requireAcpSession?: boolean;
};
type AcpCloseSessionResult = {
runtimeClosed: boolean;
runtimeNotice?: string;
metaCleared: boolean;
};
/** User-facing session status assembled from persisted metadata and runtime status. */
type AcpSessionStatus = {
sessionKey: string;
backend: string;
agent: string;
identity?: SessionAcpIdentity;
state: SessionAcpMeta["state"];
mode: AcpRuntimeSessionMode;
runtimeOptions: AcpSessionRuntimeOptions;
capabilities: AcpRuntimeCapabilities;
runtimeStatus?: AcpRuntimeStatus;
lastActivityAt: number;
lastError?: string;
};
/** Process-local ACP manager counters exposed for diagnostics. */
type AcpManagerObservabilitySnapshot = {
runtimeCache: {
activeSessions: number;
idleTtlMs: number;
evictedTotal: number;
lastEvictedAt?: number;
};
turns: {
active: number;
queueDepth: number;
completed: number;
failed: number;
averageLatencyMs: number;
maxLatencyMs: number;
};
errorsByCode: Record<string, number>;
};
type AcpStartupIdentityReconcileResult = {
checked: number;
resolved: number;
failed: number;
};
type AcpSessionManagerDeps = {
listAcpSessions: typeof listAcpSessionEntries;
readSessionEntry: typeof readAcpSessionEntry;
upsertSessionMeta: typeof upsertAcpSessionMeta;
getRuntimeBackend: typeof getAcpRuntimeBackend;
requireRuntimeBackend: typeof requireAcpRuntimeBackend;
};
//#endregion
//#region src/acp/control-plane/manager.core.d.ts
/** Coordinates ACP session metadata, runtime handles, per-session queues, and turn execution. */
declare class AcpSessionManager {
private readonly actorQueue;
private readonly runtimeHandles;
private readonly activeTurnBySession;
private readonly turnLatencyStats;
private readonly errorCountsByCode;
private readonly deps;
constructor(deps?: AcpSessionManagerDeps);
resolveSession(params: {
cfg: OpenClawConfig;
sessionKey: string;
}): AcpSessionResolution;
getObservabilitySnapshot(cfg: OpenClawConfig): AcpManagerObservabilitySnapshot;
reconcilePendingSessionIdentities(params: {
cfg: OpenClawConfig;
}): Promise<AcpStartupIdentityReconcileResult>;
initializeSession(input: AcpInitializeSessionInput): Promise<{
runtime: AcpRuntime;
handle: AcpRuntimeHandle;
meta: SessionAcpMeta;
}>;
getSessionStatus(params: {
cfg: OpenClawConfig;
sessionKey: string;
signal?: AbortSignal;
}): Promise<AcpSessionStatus>;
setSessionRuntimeMode(params: {
cfg: OpenClawConfig;
sessionKey: string;
runtimeMode: string;
}): Promise<AcpSessionRuntimeOptions>;
setSessionConfigOption(params: {
cfg: OpenClawConfig;
sessionKey: string;
key: string;
value: string;
}): Promise<AcpSessionRuntimeOptions>;
updateSessionRuntimeOptions(params: {
cfg: OpenClawConfig;
sessionKey: string;
patch: Partial<AcpSessionRuntimeOptions>;
}): Promise<AcpSessionRuntimeOptions>;
resetSessionRuntimeOptions(params: {
cfg: OpenClawConfig;
sessionKey: string;
}): Promise<AcpSessionRuntimeOptions>;
runTurn(input: AcpRunTurnInput): Promise<void>;
cancelSession(params: {
cfg: OpenClawConfig;
sessionKey: string;
reason?: string;
}): Promise<void>;
closeSession(input: AcpCloseSessionInput): Promise<AcpCloseSessionResult>;
private ensureRuntimeHandle;
private runtimeOptionCommandServices;
private enforceConcurrentSessionLimit;
private recordTurnCompletion;
private recordErrorCode;
private resolveRuntimeCapabilities;
private evictIdleRuntimeHandles;
private applyRuntimeControls;
private setSessionState;
private reconcileRuntimeSessionIdentifiers;
private writeSessionMeta;
private withSessionActor;
private throwIfAborted;
}
//#endregion
export { AcpManagerObservabilitySnapshot as a, AcpSessionStatus as c, AcpInitializeSessionInput as i, AcpStartupIdentityReconcileResult as l, AcpCloseSessionInput as n, AcpRunTurnInput as o, AcpCloseSessionResult as r, AcpSessionResolution as s, AcpSessionManager as t };