diff --git a/extensions/acpx/src/process-lease.ts b/extensions/acpx/src/process-lease.ts index 103529a17ee2..24cb0b6da127 100644 --- a/extensions/acpx/src/process-lease.ts +++ b/extensions/acpx/src/process-lease.ts @@ -43,7 +43,7 @@ export type AcpxProcessLeaseStore = { markState(leaseId: string, state: AcpxProcessLeaseState): Promise; }; -export type AcpxProcessLeaseFile = { +type AcpxProcessLeaseFile = { version: 1; leases: AcpxProcessLease[]; }; diff --git a/extensions/acpx/src/process-reaper.ts b/extensions/acpx/src/process-reaper.ts index c560621ec973..ab9f5d506634 100644 --- a/extensions/acpx/src/process-reaper.ts +++ b/extensions/acpx/src/process-reaper.ts @@ -48,14 +48,14 @@ export type AcpxProcessCleanupDeps = { }; /** Result from cleaning up a single ACPX process tree. */ -export type AcpxProcessCleanupResult = { +type AcpxProcessCleanupResult = { inspectedPids: number[]; terminatedPids: number[]; skippedReason?: "missing-root" | "not-openclaw-owned" | "unverified-root"; }; /** Result from startup orphan reaping. */ -export type AcpxStartupReapResult = { +type AcpxStartupReapResult = { inspectedPids: number[]; terminatedPids: number[]; skippedReason?: "unsupported-platform" | "process-list-unavailable"; diff --git a/extensions/browser/src/browser/cdp-target-filter.ts b/extensions/browser/src/browser/cdp-target-filter.ts index 351131d07cc2..4c7397424184 100644 --- a/extensions/browser/src/browser/cdp-target-filter.ts +++ b/extensions/browser/src/browser/cdp-target-filter.ts @@ -14,12 +14,12 @@ const BROWSER_INTERNAL_TARGET_URL_PREFIXES = [ "opera://", ]; -export type BrowserTargetUrlLike = { +type BrowserTargetUrlLike = { url?: string | null; }; /** Return true for browser-owned chrome/devtools/internal URLs. */ -export function isBrowserInternalTargetUrl(url: string | null | undefined): boolean { +function isBrowserInternalTargetUrl(url: string | null | undefined): boolean { const normalized = url?.trim().toLowerCase() ?? ""; return BROWSER_INTERNAL_TARGET_URL_PREFIXES.some((prefix) => normalized.startsWith(prefix)); } diff --git a/extensions/browser/src/browser/extension-relay/relay-protocol.ts b/extensions/browser/src/browser/extension-relay/relay-protocol.ts index 5014fcc61dc8..3c37a71d2ec4 100644 --- a/extensions/browser/src/browser/extension-relay/relay-protocol.ts +++ b/extensions/browser/src/browser/extension-relay/relay-protocol.ts @@ -14,7 +14,7 @@ export type RelayTabInfo = { }; /** First message the extension sends after the WebSocket opens. */ -export type ExtensionHelloMessage = { +type ExtensionHelloMessage = { type: "hello"; userAgent: string; /** Full browser product string, e.g. "Chrome/144.0.7204.49". */ @@ -24,13 +24,13 @@ export type ExtensionHelloMessage = { }; /** Full refresh of shared tabs; sent on any group membership or tab change. */ -export type ExtensionTabsMessage = { +type ExtensionTabsMessage = { type: "tabs"; tabs: RelayTabInfo[]; }; /** CDP event emitted by an attached tab (child sessions carry sessionId). */ -export type ExtensionCdpEventMessage = { +type ExtensionCdpEventMessage = { type: "cdpEvent"; tabId: number; sessionId?: string; @@ -39,28 +39,28 @@ export type ExtensionCdpEventMessage = { }; /** Successful response to a relay command (cdp/attach/createTab/...). */ -export type ExtensionResultMessage = { +type ExtensionResultMessage = { type: "result"; seq: number; result?: unknown; }; /** Failed response to a relay command. */ -export type ExtensionErrorMessage = { +type ExtensionErrorMessage = { type: "error"; seq: number; message: string; }; /** chrome.debugger detached outside relay control (infobar cancel, tab gone). */ -export type ExtensionDetachedMessage = { +type ExtensionDetachedMessage = { type: "detached"; tabId: number; reason: string; }; /** Keepalive reply; message traffic keeps the MV3 service worker alive. */ -export type ExtensionPongMessage = { +type ExtensionPongMessage = { type: "pong"; }; @@ -92,7 +92,7 @@ export type RelayCommandBody = | { type: "activateTab"; tabId: number }; /** Keepalive probe; the extension answers with pong. */ -export type RelayPingMessage = { +type RelayPingMessage = { type: "ping"; }; diff --git a/extensions/browser/src/browser/profiles-service.ts b/extensions/browser/src/browser/profiles-service.ts index 1d5ffb1bf64c..6c92ef1affa8 100644 --- a/extensions/browser/src/browser/profiles-service.ts +++ b/extensions/browser/src/browser/profiles-service.ts @@ -25,7 +25,7 @@ import type { BrowserRouteContext, ProfileStatus } from "./server-context.js"; import { movePathToTrash } from "./trash.js"; /** Input accepted when creating a browser profile. */ -export type CreateProfileParams = { +type CreateProfileParams = { name: string; color?: string; cdpUrl?: string; @@ -34,7 +34,7 @@ export type CreateProfileParams = { }; /** Result returned after creating a browser profile. */ -export type CreateProfileResult = { +type CreateProfileResult = { ok: true; profile: string; transport: "cdp" | "chrome-mcp"; @@ -46,7 +46,7 @@ export type CreateProfileResult = { }; /** Result returned after deleting a browser profile. */ -export type DeleteProfileResult = { +type DeleteProfileResult = { ok: true; profile: string; deleted: boolean; diff --git a/extensions/browser/src/browser/pw-session.ts b/extensions/browser/src/browser/pw-session.ts index 23bedbacea93..c122cda4b731 100644 --- a/extensions/browser/src/browser/pw-session.ts +++ b/extensions/browser/src/browser/pw-session.ts @@ -95,7 +95,7 @@ export type BrowserObservedDialogRecord = { }; /** Pending and recent dialog state for a page. */ -export type BrowserObservedDialogState = { +type BrowserObservedDialogState = { pending: BrowserObservedDialogRecord[]; recent: BrowserObservedDialogRecord[]; }; diff --git a/extensions/browser/src/browser/screenshot-annotate.ts b/extensions/browser/src/browser/screenshot-annotate.ts index c030effc21f6..99848310ad30 100644 --- a/extensions/browser/src/browser/screenshot-annotate.ts +++ b/extensions/browser/src/browser/screenshot-annotate.ts @@ -12,7 +12,7 @@ // chrome-mcp path keeps its own inline overlay (renderChromeMcpLabels) for now. export const ANNOTATION_OVERLAY_ATTR = "data-openclaw-labels"; -export const ANNOTATION_OVERLAY_ROOT_ID = "__openclaw-annotations__"; +const ANNOTATION_OVERLAY_ROOT_ID = "__openclaw-annotations__"; export const ANNOTATION_MAX_LABELS_DEFAULT = 150; export type CoordinateSpace = "viewport" | "fullpage" | "element"; @@ -48,7 +48,7 @@ export interface OverlayItem { h: number; } -export interface AnnotationPlan { +interface AnnotationPlan { /** Always document-space items, fed to buildOverlayInjectionScript. */ overlayItems: OverlayItem[]; /** Items projected into the capture mode's image-space coordinates. */ diff --git a/extensions/browser/src/browser/vision.ts b/extensions/browser/src/browser/vision.ts index 840ebe17d0db..533bcb19f6af 100644 --- a/extensions/browser/src/browser/vision.ts +++ b/extensions/browser/src/browser/vision.ts @@ -42,7 +42,7 @@ export type BrowserScreenshotDescriptionDeps = { }; /** Result returned from browser screenshot description. */ -export type BrowserScreenshotDescriptionResult = { +type BrowserScreenshotDescriptionResult = { text: string; provider?: string; model?: string; diff --git a/extensions/file-transfer/src/node-host/path-errors.ts b/extensions/file-transfer/src/node-host/path-errors.ts index 6af2c7f23afb..97b81f96250b 100644 --- a/extensions/file-transfer/src/node-host/path-errors.ts +++ b/extensions/file-transfer/src/node-host/path-errors.ts @@ -3,16 +3,16 @@ import fs from "node:fs/promises"; import path from "node:path"; import { FsSafeError, resolveAbsolutePathForRead } from "openclaw/plugin-sdk/security-runtime"; -export type InvalidPathResult = { +type InvalidPathResult = { ok: false; code: "INVALID_PATH"; message: string; }; -export const SYMLINK_REJECTED_MESSAGE = +const SYMLINK_REJECTED_MESSAGE = "path traverses a symlink; refusing because followSymlinks=false (set plugins.entries.file-transfer.config.nodes..followSymlinks=true to allow, or update allowReadPaths to the canonical path)"; -export type FsSafeReadErrorCode = "INVALID_PATH" | "NOT_FOUND" | "SYMLINK_REDIRECT"; +type FsSafeReadErrorCode = "INVALID_PATH" | "NOT_FOUND" | "SYMLINK_REDIRECT"; export function classifyFsSafeReadError(err: unknown): FsSafeReadErrorCode | undefined { if (!(err instanceof FsSafeError)) { diff --git a/extensions/file-transfer/src/shared/policy.ts b/extensions/file-transfer/src/shared/policy.ts index f8dc0aa152b8..7fb2a70db5f9 100644 --- a/extensions/file-transfer/src/shared/policy.ts +++ b/extensions/file-transfer/src/shared/policy.ts @@ -54,7 +54,7 @@ import { getRuntimeConfig } from "openclaw/plugin-sdk/runtime-config-snapshot"; export type FilePolicyKind = "read" | "write"; export type FilePolicyAskMode = "off" | "on-miss" | "always"; -export type FilePolicyDecision = +type FilePolicyDecision = | { ok: true; reason: "matched-allow"; maxBytes?: number; followSymlinks: boolean } | { ok: true; diff --git a/extensions/memory-core/src/dreaming-state.ts b/extensions/memory-core/src/dreaming-state.ts index 11300213aeab..1327b3c7cb0b 100644 --- a/extensions/memory-core/src/dreaming-state.ts +++ b/extensions/memory-core/src/dreaming-state.ts @@ -15,7 +15,7 @@ export const SHORT_TERM_PHASE_SIGNAL_NAMESPACE = "short-term-phase-signals"; export const SHORT_TERM_META_NAMESPACE = "short-term-meta"; export const SHORT_TERM_LOCK_NAMESPACE = "short-term-locks"; -export const DREAMING_WORKSPACE_STATE_MAX_ENTRIES = 50_000; +const DREAMING_WORKSPACE_STATE_MAX_ENTRIES = 50_000; export const SHORT_TERM_LOCK_MAX_ENTRIES = 4_096; export const SESSION_SEEN_HASHES_PER_CHUNK = 512; diff --git a/extensions/memory-core/src/memory-budget.ts b/extensions/memory-core/src/memory-budget.ts index de13fa7def7d..b7472f9753f6 100644 --- a/extensions/memory-core/src/memory-budget.ts +++ b/extensions/memory-core/src/memory-budget.ts @@ -86,13 +86,13 @@ function joinBlocks(blocks: MemoryBlock[]): string { return blocks.map((block) => block.text).join("\n"); } -export type CompactMemoryParams = { +type CompactMemoryParams = { existingMemory: string; newSection: string; budgetChars: number; }; -export type CompactMemoryResult = { +type CompactMemoryResult = { compacted: string; droppedDates: string[]; }; diff --git a/extensions/memory-core/src/memory/qmd-runtime-cache.ts b/extensions/memory-core/src/memory/qmd-runtime-cache.ts index c04f1b3d3476..f783c0ab7315 100644 --- a/extensions/memory-core/src/memory/qmd-runtime-cache.ts +++ b/extensions/memory-core/src/memory/qmd-runtime-cache.ts @@ -7,8 +7,8 @@ export const QMD_RUNTIME_CACHE_COLLECTION_VALIDATION_NAMESPACE = "qmd-runtime-cache.collection-validation"; export const QMD_RUNTIME_CACHE_MULTI_COLLECTION_PROBE_NAMESPACE = "qmd-runtime-cache.multi-collection-probe"; -export const QMD_RUNTIME_CACHE_COLLECTION_VALIDATION_MAX_ENTRIES = 1_000; -export const QMD_RUNTIME_CACHE_MULTI_COLLECTION_PROBE_MAX_ENTRIES = 1_000; +const QMD_RUNTIME_CACHE_COLLECTION_VALIDATION_MAX_ENTRIES = 1_000; +const QMD_RUNTIME_CACHE_MULTI_COLLECTION_PROBE_MAX_ENTRIES = 1_000; export const QMD_RUNTIME_CACHE_COLLECTION_VALIDATION_TTL_MS = 5 * 60_000; export const QMD_RUNTIME_CACHE_MULTI_COLLECTION_PROBE_TTL_MS = 10 * 60_000; diff --git a/extensions/memory-core/src/memory/watch-pressure.ts b/extensions/memory-core/src/memory/watch-pressure.ts index 94e4148aa942..7e678be7b860 100644 --- a/extensions/memory-core/src/memory/watch-pressure.ts +++ b/extensions/memory-core/src/memory/watch-pressure.ts @@ -1,7 +1,7 @@ // Memory Core plugin module implements watch pressure behavior. import type { FSWatcher } from "chokidar"; -export const MEMORY_WATCH_PRESSURE_WARNING_THRESHOLD = 2_000; +const MEMORY_WATCH_PRESSURE_WARNING_THRESHOLD = 2_000; export type MemoryWatchPressureUnit = "directories" | "paths"; diff --git a/extensions/whatsapp/src/approval-reactions.ts b/extensions/whatsapp/src/approval-reactions.ts index 9545850448c6..19aa3baae752 100644 --- a/extensions/whatsapp/src/approval-reactions.ts +++ b/extensions/whatsapp/src/approval-reactions.ts @@ -17,7 +17,7 @@ const PERSISTENT_NAMESPACE = "whatsapp.approval-reactions"; const PERSISTENT_MAX_ENTRIES = 1000; const DEFAULT_REACTION_TARGET_TTL_MS = 24 * 60 * 60 * 1000; -export type WhatsAppApprovalReactionBinding = ApprovalReactionDecisionBinding; +type WhatsAppApprovalReactionBinding = ApprovalReactionDecisionBinding; type WhatsAppApprovalReactionResolution = { approvalId: string; diff --git a/extensions/whatsapp/src/auto-reply/monitor/status-reaction.ts b/extensions/whatsapp/src/auto-reply/monitor/status-reaction.ts index 984ebafe2ca4..5f1d7289bfad 100644 --- a/extensions/whatsapp/src/auto-reply/monitor/status-reaction.ts +++ b/extensions/whatsapp/src/auto-reply/monitor/status-reaction.ts @@ -16,7 +16,7 @@ import { resolveGroupActivationFor } from "./group-activation.js"; export type { StatusReactionController }; -export type WhatsAppStatusReactionParams = { +type WhatsAppStatusReactionParams = { cfg: OpenClawConfig; msg: AdmittedWebInboundMessage; agentId: string; diff --git a/extensions/whatsapp/src/inbound/dedupe.ts b/extensions/whatsapp/src/inbound/dedupe.ts index fef73b859ff7..a6e57cf755f0 100644 --- a/extensions/whatsapp/src/inbound/dedupe.ts +++ b/extensions/whatsapp/src/inbound/dedupe.ts @@ -95,7 +95,7 @@ export function resetWebInboundDedupe(): void { recentOutboundMessages.clear(); } -export type RecentInboundMessageClaimKind = "claimed" | "duplicate" | "inflight"; +type RecentInboundMessageClaimKind = "claimed" | "duplicate" | "inflight"; export async function claimRecentInboundMessageDelivery( key: string, diff --git a/extensions/whatsapp/src/inbound/durable-receive.ts b/extensions/whatsapp/src/inbound/durable-receive.ts index 87123eabecf1..a39dbc512200 100644 --- a/extensions/whatsapp/src/inbound/durable-receive.ts +++ b/extensions/whatsapp/src/inbound/durable-receive.ts @@ -29,7 +29,7 @@ export type WhatsAppDurableInboundMetadata = { readReceipt?: WhatsAppReadReceiptTarget; }; -export type WhatsAppDurableInboundCompletedMetadata = { +type WhatsAppDurableInboundCompletedMetadata = { readReceipt?: WhatsAppReadReceiptTarget; }; diff --git a/extensions/whatsapp/src/login-qr.ts b/extensions/whatsapp/src/login-qr.ts index 4c9d647da6ed..79e50b328ea7 100644 --- a/extensions/whatsapp/src/login-qr.ts +++ b/extensions/whatsapp/src/login-qr.ts @@ -24,7 +24,7 @@ import { import { resolveWhatsAppSocketTiming, type WhatsAppSocketTimingOptions } from "./socket-timing.js"; type WaSocket = Awaited>; -export type StartWebLoginWithQrResult = { +type StartWebLoginWithQrResult = { qrDataUrl?: string; message: string; connected?: boolean; diff --git a/extensions/whatsapp/src/session.ts b/extensions/whatsapp/src/session.ts index 2a6629d23bfe..0c8945aaefdd 100644 --- a/extensions/whatsapp/src/session.ts +++ b/extensions/whatsapp/src/session.ts @@ -344,7 +344,7 @@ function normalizeEnvProxyValue(value: string | undefined): string | null | unde return trimmed.length > 0 ? trimmed : null; } -export type WhatsAppConnectionWaitOptions = +type WhatsAppConnectionWaitOptions = | { timeout: "none"; } diff --git a/src/acp/tool-status.ts b/src/acp/tool-status.ts index a4a45b679bc1..219c214b0d10 100644 --- a/src/acp/tool-status.ts +++ b/src/acp/tool-status.ts @@ -8,7 +8,7 @@ const ACP_TOOL_TERMINAL_OUTCOMES = { cancelled: "cancelled", } as const; -export type AcpToolTerminalOutcome = +type AcpToolTerminalOutcome = (typeof ACP_TOOL_TERMINAL_OUTCOMES)[keyof typeof ACP_TOOL_TERMINAL_OUTCOMES]; export function resolveAcpToolTerminalOutcome(status: unknown): AcpToolTerminalOutcome | undefined { diff --git a/src/auto-reply/commands-args.types.ts b/src/auto-reply/commands-args.types.ts index c71ee6546b31..66c9db387f4a 100644 --- a/src/auto-reply/commands-args.types.ts +++ b/src/auto-reply/commands-args.types.ts @@ -1,6 +1,6 @@ // Shared command argument shapes for auto-reply command parsing. /** Primitive values accepted by parsed auto-reply command args. */ -export type CommandArgValue = string | number | boolean | bigint; +type CommandArgValue = string | number | boolean | bigint; /** Named parsed auto-reply command values. */ export type CommandArgValues = Record; diff --git a/src/auto-reply/get-reply-options.types.ts b/src/auto-reply/get-reply-options.types.ts index 1f73b15aa3e8..46918a93049b 100644 --- a/src/auto-reply/get-reply-options.types.ts +++ b/src/auto-reply/get-reply-options.types.ts @@ -14,7 +14,7 @@ export type BlockReplyContext = { }; /** Context passed to onModelSelected callback with actual model used. */ -export type ModelSelectedContext = { +type ModelSelectedContext = { provider: string; model: string; thinkLevel: string | undefined; diff --git a/src/auto-reply/handoff-summarizer.ts b/src/auto-reply/handoff-summarizer.ts index 9170d09f3484..be8b31f31715 100644 --- a/src/auto-reply/handoff-summarizer.ts +++ b/src/auto-reply/handoff-summarizer.ts @@ -2,7 +2,7 @@ import type { AgentMessage } from "../agents/runtime/index.js"; /** Summary of the prior model state used to brief the fallback model. */ -export interface HandoffSnapshot { +interface HandoffSnapshot { summary: string; activeSubagents: Array<{ sessionId: string; diff --git a/src/auto-reply/reply/agent-turn-attachments.ts b/src/auto-reply/reply/agent-turn-attachments.ts index 836c4413a5f4..fe9e34e5d535 100644 --- a/src/auto-reply/reply/agent-turn-attachments.ts +++ b/src/auto-reply/reply/agent-turn-attachments.ts @@ -22,7 +22,7 @@ export function loadAgentTurnMediaRuntime() { } /** Runtime surface needed to resolve agent-turn media attachments. */ -export type AgentTurnAttachmentRuntime = Pick< +type AgentTurnAttachmentRuntime = Pick< Awaited>, | "MediaAttachmentCache" | "isMediaUnderstandingSkipError" diff --git a/src/auto-reply/reply/commands-setunset.ts b/src/auto-reply/reply/commands-setunset.ts index fb48d80153cf..4e502d22371e 100644 --- a/src/auto-reply/reply/commands-setunset.ts +++ b/src/auto-reply/reply/commands-setunset.ts @@ -3,7 +3,7 @@ import { parseSlashCommandOrNull } from "./commands-slash-parse.js"; import { parseConfigValue } from "./config-value.js"; /** Parsed set/unset action or a user-facing parse error. */ -export type SetUnsetParseResult = +type SetUnsetParseResult = | { kind: "set"; path: string; value: unknown } | { kind: "unset"; path: string } | { kind: "error"; message: string }; diff --git a/src/auto-reply/reply/commands-slash-parse.ts b/src/auto-reply/reply/commands-slash-parse.ts index 26c9ce7fa7ce..feddaf2037e5 100644 --- a/src/auto-reply/reply/commands-slash-parse.ts +++ b/src/auto-reply/reply/commands-slash-parse.ts @@ -2,7 +2,7 @@ import { normalizeLowercaseStringOrEmpty } from "@openclaw/normalization-core/string-coerce"; /** Internal parse state for slash command action extraction. */ -export type SlashCommandParseResult = +type SlashCommandParseResult = | { kind: "no-match" } | { kind: "empty" } | { kind: "invalid" } diff --git a/src/auto-reply/reply/commands-system-prompt.ts b/src/auto-reply/reply/commands-system-prompt.ts index dfac8b9d6551..9531379d9445 100644 --- a/src/auto-reply/reply/commands-system-prompt.ts +++ b/src/auto-reply/reply/commands-system-prompt.ts @@ -29,7 +29,7 @@ import type { SkillEligibilityContext } from "../../skills/types.js"; import type { HandleCommandsParams } from "./commands-types.js"; import { resolveRuntimePolicySessionKey } from "./runtime-policy-session-key.js"; -export type CommandsSystemPromptBundle = { +type CommandsSystemPromptBundle = { systemPrompt: string; tools: AgentTool[]; skillsPrompt: string; diff --git a/src/auto-reply/reply/context-text.ts b/src/auto-reply/reply/context-text.ts index 38e32e0beccd..6221fe154814 100644 --- a/src/auto-reply/reply/context-text.ts +++ b/src/auto-reply/reply/context-text.ts @@ -3,12 +3,7 @@ import { readStringAlias } from "../../utils/string-readers.js"; import type { FinalizedMsgContext } from "../templating.js"; /** Message context fields that can carry user-visible command text. */ -export type ContextTextKey = - | "BodyForAgent" - | "BodyForCommands" - | "CommandBody" - | "RawBody" - | "Body"; +type ContextTextKey = "BodyForAgent" | "BodyForCommands" | "CommandBody" | "RawBody" | "Body"; /** Returns the first string field from a finalized message context. */ export function resolveFirstContextText( diff --git a/src/auto-reply/reply/effective-reply-route.ts b/src/auto-reply/reply/effective-reply-route.ts index 04eede504b64..58de0888041c 100644 --- a/src/auto-reply/reply/effective-reply-route.ts +++ b/src/auto-reply/reply/effective-reply-route.ts @@ -25,7 +25,7 @@ export type EffectiveReplyRouteEntry = Pick< >; /** Effective channel target selected for source reply delivery. */ -export type EffectiveReplyRoute = { +type EffectiveReplyRoute = { channel?: string; to?: string; accountId?: string; diff --git a/src/auto-reply/reply/get-reply.types.ts b/src/auto-reply/reply/get-reply.types.ts index fcf17e49ecf2..7fedc9593642 100644 --- a/src/auto-reply/reply/get-reply.types.ts +++ b/src/auto-reply/reply/get-reply.types.ts @@ -11,7 +11,7 @@ export type ReplySessionBinding = { storePath?: string; }; -export type InternalReplySessionOptions = { +type InternalReplySessionOptions = { requestedSessionId?: string; resumeRequestedSession?: boolean; sessionPromptSourceReplyDeliveryMode?: GetReplyOptions["sourceReplyDeliveryMode"]; diff --git a/src/auto-reply/reply/normalize-reply.ts b/src/auto-reply/reply/normalize-reply.ts index 2174c61fe07f..6146c8a00fce 100644 --- a/src/auto-reply/reply/normalize-reply.ts +++ b/src/auto-reply/reply/normalize-reply.ts @@ -22,7 +22,7 @@ import { export type NormalizeReplySkipReason = "empty" | "silent" | "heartbeat"; -export type NormalizeReplyOptions = { +type NormalizeReplyOptions = { responsePrefix?: string; applyChannelTransforms?: boolean; /** Context for template variable interpolation in responsePrefix */ diff --git a/src/auto-reply/reply/post-compaction-context.ts b/src/auto-reply/reply/post-compaction-context.ts index c359e9aa4b02..1fbb9dcf3510 100644 --- a/src/auto-reply/reply/post-compaction-context.ts +++ b/src/auto-reply/reply/post-compaction-context.ts @@ -47,7 +47,7 @@ function matchesSectionSet(sectionNames: string[], expectedSections: string[]): * Substitutes YYYY-MM-DD placeholders with the real date so agents read the correct * daily memory files instead of guessing based on training cutoff. */ -export type PostCompactionContextOptions = { +type PostCompactionContextOptions = { cfg?: OpenClawConfig; agentId?: string; nowMs?: number;