From 26fe6e8ea3ce77f55ad5d8e1c19b39dd0f197fc7 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 14 Jul 2026 03:43:49 -0700 Subject: [PATCH] refactor(audit): trim internal input types (#107390) --- scripts/deadcode-exports.baseline.mjs | 4 ---- src/audit/audit-event-store.message.test.ts | 24 +++++++++++++++------ src/audit/audit-event-types.ts | 8 +++---- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/scripts/deadcode-exports.baseline.mjs b/scripts/deadcode-exports.baseline.mjs index 6bf437d934e1..60aa97447ee3 100644 --- a/scripts/deadcode-exports.baseline.mjs +++ b/scripts/deadcode-exports.baseline.mjs @@ -485,10 +485,6 @@ export const KNIP_UNUSED_EXPORT_BASELINE = [ "src/audit/agent-event-audit.ts: resetAgentEventAuditForTest", "src/audit/audit-event-store.ts: auditEventStoreLimits", "src/audit/audit-event-store.ts: testApi", - "src/audit/audit-event-types.ts: AgentRunAuditEventInput", - "src/audit/audit-event-types.ts: InboundMessageAuditEventInput", - "src/audit/audit-event-types.ts: OutboundMessageAuditEventInput", - "src/audit/audit-event-types.ts: OutboundMessageAuditTerminal", "src/audit/audit-event-writer.ts: testApi", "src/audit/message-audit-events.ts: resetMessageAuditEventsForTest", "src/auto-reply/reply/abort.ts: testing", diff --git a/src/audit/audit-event-store.message.test.ts b/src/audit/audit-event-store.message.test.ts index bb171d424613..dde8072d4430 100644 --- a/src/audit/audit-event-store.message.test.ts +++ b/src/audit/audit-event-store.message.test.ts @@ -5,16 +5,28 @@ import { openOpenClawStateDatabase, } from "../state/openclaw-state-db.js"; import { listAuditEvents, recordAuditEvent } from "./audit-event-store.js"; -import type { - AgentRunAuditEventInput, - InboundMessageAuditEventInput, - OutboundMessageAuditEventInput, - OutboundMessageAuditTerminal, -} from "./audit-event-types.js"; +import type { AuditEventInput, MessageAuditEventInput } from "./audit-event-types.js"; const tempDirs: string[] = []; const AUDIT_REF_RE = /^hmac-sha256:v1:[a-f0-9]{32}:[a-f0-9]{64}$/u; +type AgentRunAuditEventInput = Extract; +type InboundMessageAuditEventInput = Extract; +type OutboundMessageAuditEventInput = Extract; +type OutboundTerminalFields = + | "deliveryKind" + | "errorCode" + | "failureStage" + | "outcome" + | "reasonCode" + | "status"; +type OutboundMessageAuditTerminal = { + [Status in OutboundMessageAuditEventInput["status"]]: Pick< + Extract, + OutboundTerminalFields + >; +}[OutboundMessageAuditEventInput["status"]]; + function createDatabaseOptions() { return { env: { OPENCLAW_STATE_DIR: makeTempDir(tempDirs, "openclaw-message-audit-") } }; } diff --git a/src/audit/audit-event-types.ts b/src/audit/audit-event-types.ts index e248e2f0cfa5..e71ae9ed299e 100644 --- a/src/audit/audit-event-types.ts +++ b/src/audit/audit-event-types.ts @@ -81,7 +81,7 @@ type AgentRunAuditLifecycle = | { action: "agent.run.started"; status: "started"; errorCode?: never } | ({ action: "agent.run.finished" } & AgentRunFinishedAuditTerminal); -export type AgentRunAuditEventInput = AuditEventInputBase & +type AgentRunAuditEventInput = AuditEventInputBase & AgentAuditAttribution & AgentRunAuditLifecycle & { kind: "agent_run" }; @@ -153,7 +153,7 @@ export type InboundMessageAuditTerminal = reasonCode?: AuditInboundMessageFailureReasonCode; }; -export type OutboundMessageAuditTerminal = +type OutboundMessageAuditTerminal = | { status: "succeeded"; outcome: "sent"; @@ -188,7 +188,7 @@ export type OutboundMessageAuditTerminal = }; /** Raw identifiers exist only on the trusted producer-to-writer boundary. */ -export type InboundMessageAuditEventInput = MessageAuditEventInputBase & +type InboundMessageAuditEventInput = MessageAuditEventInputBase & InboundMessageAuditAttribution & InboundMessageAuditTerminal & { action: "message.inbound.processed"; @@ -198,7 +198,7 @@ export type InboundMessageAuditEventInput = MessageAuditEventInputBase & }; /** Raw identifiers exist only on the trusted producer-to-writer boundary. */ -export type OutboundMessageAuditEventInput = MessageAuditEventInputBase & +type OutboundMessageAuditEventInput = MessageAuditEventInputBase & OutboundMessageAuditAttribution & OutboundMessageAuditTerminal & { action: "message.outbound.finished";