mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-28 23:53:37 +00:00
103 lines
2.3 KiB
TypeScript
103 lines
2.3 KiB
TypeScript
// Shared debug-proxy capture schema. These records back the SQLite store, CLI
|
|
// reports, and runtime capture events for HTTP/SSE/websocket traffic.
|
|
export type CaptureProtocol = "http" | "https" | "sse" | "ws" | "wss" | "connect";
|
|
|
|
export type CaptureDirection = "outbound" | "inbound" | "local";
|
|
|
|
export type CaptureEventKind =
|
|
| "connect"
|
|
| "tls-handshake"
|
|
| "request"
|
|
| "response"
|
|
| "ws-open"
|
|
| "ws-frame"
|
|
| "ws-close"
|
|
| "error"
|
|
| "retry-link";
|
|
|
|
export type CaptureSessionRecord = {
|
|
id: string;
|
|
startedAt: number;
|
|
endedAt?: number;
|
|
mode: string;
|
|
sourceScope: "openclaw";
|
|
sourceProcess: string;
|
|
proxyUrl?: string;
|
|
/** @deprecated Capture storage now lives in the shared state database. */
|
|
dbPath?: string;
|
|
/** @deprecated Capture payloads now live in the shared state database. */
|
|
blobDir?: string;
|
|
};
|
|
|
|
export type CaptureBlobRecord = {
|
|
blobId: string;
|
|
path: string;
|
|
encoding: "gzip";
|
|
sizeBytes: number;
|
|
sha256: string;
|
|
contentType?: string;
|
|
};
|
|
|
|
export type SharedCaptureBlobRecord = Omit<CaptureBlobRecord, "path"> & {
|
|
path?: never;
|
|
};
|
|
|
|
export type CaptureEventRecord = {
|
|
sessionId: string;
|
|
ts: number;
|
|
sourceScope: "openclaw";
|
|
sourceProcess: string;
|
|
protocol: CaptureProtocol;
|
|
direction: CaptureDirection;
|
|
kind: CaptureEventKind;
|
|
flowId: string;
|
|
method?: string;
|
|
host?: string;
|
|
path?: string;
|
|
status?: number;
|
|
closeCode?: number;
|
|
contentType?: string;
|
|
headersJson?: string;
|
|
dataText?: string;
|
|
dataBlobId?: string;
|
|
dataSha256?: string;
|
|
errorText?: string;
|
|
metaJson?: string;
|
|
};
|
|
|
|
export type CaptureQueryPreset =
|
|
| "double-sends"
|
|
| "retry-storms"
|
|
| "cache-busting"
|
|
| "ws-duplicate-frames"
|
|
| "missing-ack"
|
|
| "error-bursts";
|
|
|
|
export type CaptureQueryRow = Record<string, string | number | null>;
|
|
|
|
export type CaptureSessionSummary = {
|
|
id: string;
|
|
startedAt: number;
|
|
endedAt?: number;
|
|
mode: string;
|
|
sourceProcess: string;
|
|
proxyUrl?: string;
|
|
eventCount: number;
|
|
};
|
|
|
|
export type CaptureObservedDimension = {
|
|
value: string;
|
|
count: number;
|
|
};
|
|
|
|
export type CaptureSessionCoverageSummary = {
|
|
sessionId: string;
|
|
totalEvents: number;
|
|
unlabeledEventCount: number;
|
|
providers: CaptureObservedDimension[];
|
|
apis: CaptureObservedDimension[];
|
|
models: CaptureObservedDimension[];
|
|
hosts: CaptureObservedDimension[];
|
|
localPeers: CaptureObservedDimension[];
|
|
};
|