diff --git a/extensions/discord/src/monitor/allow-list.ts b/extensions/discord/src/monitor/allow-list.ts index 692e9bb82ef..8338ef83dd1 100644 --- a/extensions/discord/src/monitor/allow-list.ts +++ b/extensions/discord/src/monitor/allow-list.ts @@ -19,7 +19,7 @@ export type DiscordAllowList = { names: Set; }; -export type DiscordAllowListMatch = AllowlistMatch<"wildcard" | "id" | "name" | "tag">; +type DiscordAllowListMatch = AllowlistMatch<"wildcard" | "id" | "name" | "tag">; const DISCORD_OWNER_ALLOWLIST_PREFIXES = ["discord:", "user:", "pk:"]; @@ -149,7 +149,7 @@ export function resolveDiscordAllowListMatch(params: { return { allowed: false }; } -export function resolveDiscordUserAllowed(params: { +function resolveDiscordUserAllowed(params: { allowList?: string[]; userId: string; userName?: string; @@ -500,7 +500,7 @@ export function resolveDiscordShouldRequireMention(params: { return params.channelConfig?.requireMention ?? params.guildInfo?.requireMention ?? true; } -export function isDiscordAutoThreadOwnedByBot(params: { +function isDiscordAutoThreadOwnedByBot(params: { isThread: boolean; channelConfig?: DiscordChannelConfigResolved | null; botId?: string | null; diff --git a/extensions/discord/src/monitor/auto-presence.ts b/extensions/discord/src/monitor/auto-presence.ts index e47e7f6e29a..8d8f9a0970f 100644 --- a/extensions/discord/src/monitor/auto-presence.ts +++ b/extensions/discord/src/monitor/auto-presence.ts @@ -21,7 +21,7 @@ const DEFAULT_MIN_UPDATE_INTERVAL_MS = 15_000; const MIN_INTERVAL_MS = 5_000; const MIN_UPDATE_INTERVAL_MS = 1_000; -export type DiscordAutoPresenceState = "healthy" | "degraded" | "exhausted"; +type DiscordAutoPresenceState = "healthy" | "degraded" | "exhausted"; type ResolvedDiscordAutoPresenceConfig = { enabled: boolean; @@ -32,7 +32,7 @@ type ResolvedDiscordAutoPresenceConfig = { exhaustedText?: string; }; -export type DiscordAutoPresenceDecision = { +type DiscordAutoPresenceDecision = { state: DiscordAutoPresenceState; unavailableReason?: AuthProfileFailureReason | null; presence: UpdatePresenceData; @@ -256,7 +256,7 @@ function stablePresenceSignature(payload: UpdatePresenceData): string { }); } -export type DiscordAutoPresenceController = { +type DiscordAutoPresenceController = { start: () => void; stop: () => void; refresh: () => void; diff --git a/extensions/discord/src/monitor/channel-access.ts b/extensions/discord/src/monitor/channel-access.ts index 843cb3794de..81a8860e038 100644 --- a/extensions/discord/src/monitor/channel-access.ts +++ b/extensions/discord/src/monitor/channel-access.ts @@ -28,7 +28,7 @@ function resolveDiscordChannelNumberPropertySafe( return typeof value === "number" ? value : undefined; } -export type DiscordChannelInfoSafe = { +type DiscordChannelInfoSafe = { name?: string; topic?: string; type?: number; diff --git a/extensions/discord/src/monitor/exec-approvals.ts b/extensions/discord/src/monitor/exec-approvals.ts index 551172af322..2832a98c5e3 100644 --- a/extensions/discord/src/monitor/exec-approvals.ts +++ b/extensions/discord/src/monitor/exec-approvals.ts @@ -51,7 +51,7 @@ export function parseExecApprovalData( }; } -export type ExecApprovalButtonContext = { +type ExecApprovalButtonContext = { getApprovers: () => string[]; resolveApproval: ( approvalId: string, diff --git a/extensions/discord/src/monitor/gateway-handle.ts b/extensions/discord/src/monitor/gateway-handle.ts index f82e0cd1110..bfb28dc1ad6 100644 --- a/extensions/discord/src/monitor/gateway-handle.ts +++ b/extensions/discord/src/monitor/gateway-handle.ts @@ -10,7 +10,7 @@ export type DiscordGatewayHandle = Pick & { type GatewaySocketListener = (...args: unknown[]) => void; -export type DiscordGatewaySocket = { +type DiscordGatewaySocket = { on: (event: "close" | "error", listener: GatewaySocketListener) => unknown; listeners: (event: "close" | "error") => GatewaySocketListener[]; removeListener: (event: "close" | "error", listener: GatewaySocketListener) => unknown; diff --git a/extensions/discord/src/monitor/gateway-metadata.ts b/extensions/discord/src/monitor/gateway-metadata.ts index 5fb51f9667d..520fac5f9ba 100644 --- a/extensions/discord/src/monitor/gateway-metadata.ts +++ b/extensions/discord/src/monitor/gateway-metadata.ts @@ -16,7 +16,7 @@ const MAX_DISCORD_GATEWAY_INFO_TIMEOUT_MS = 120_000; const DISCORD_GATEWAY_INFO_TIMEOUT_ENV = "OPENCLAW_DISCORD_GATEWAY_INFO_TIMEOUT_MS"; const DISCORD_GATEWAY_METADATA_FALLBACK_LOG_INTERVAL_MS = 60_000; -export type DiscordGatewayMetadataResponse = Pick; +type DiscordGatewayMetadataResponse = Pick; export type DiscordGatewayFetchInit = Record & { headers?: Record; }; diff --git a/extensions/discord/src/monitor/gateway-supervisor.ts b/extensions/discord/src/monitor/gateway-supervisor.ts index 99929c3731d..ceec6dffbb2 100644 --- a/extensions/discord/src/monitor/gateway-supervisor.ts +++ b/extensions/discord/src/monitor/gateway-supervisor.ts @@ -3,11 +3,7 @@ import { danger } from "openclaw/plugin-sdk/runtime-env"; import type { RuntimeEnv } from "openclaw/plugin-sdk/runtime-env"; import { formatErrorMessage } from "openclaw/plugin-sdk/ssrf-runtime"; -export type DiscordGatewayEventType = - | "disallowed-intents" - | "fatal" - | "other" - | "reconnect-exhausted"; +type DiscordGatewayEventType = "disallowed-intents" | "fatal" | "other" | "reconnect-exhausted"; export type DiscordGatewayEvent = { type: DiscordGatewayEventType; diff --git a/extensions/discord/src/monitor/inbound-context.ts b/extensions/discord/src/monitor/inbound-context.ts index 13b15e53dab..7d9123879e0 100644 --- a/extensions/discord/src/monitor/inbound-context.ts +++ b/extensions/discord/src/monitor/inbound-context.ts @@ -9,7 +9,7 @@ import { type DiscordGuildEntryResolved, } from "./allow-list.js"; -export type DiscordSupplementalContextSender = { +type DiscordSupplementalContextSender = { id?: string; name?: string; tag?: string; diff --git a/extensions/discord/src/monitor/inbound-job.ts b/extensions/discord/src/monitor/inbound-job.ts index 9c7210f3519..6ac7b0ad4f3 100644 --- a/extensions/discord/src/monitor/inbound-job.ts +++ b/extensions/discord/src/monitor/inbound-job.ts @@ -14,15 +14,9 @@ type DiscordInboundJobRuntimeField = | "threadBindings" | "discordRestFetch"; -export type DiscordInboundJobRuntime = Pick< - DiscordMessagePreflightContext, - DiscordInboundJobRuntimeField ->; +type DiscordInboundJobRuntime = Pick; -export type DiscordInboundJobPayload = Omit< - DiscordMessagePreflightContext, - DiscordInboundJobRuntimeField ->; +type DiscordInboundJobPayload = Omit; export type DiscordInboundJob = { queueKey: string; diff --git a/extensions/discord/src/monitor/message-handler.preflight-helpers.ts b/extensions/discord/src/monitor/message-handler.preflight-helpers.ts index 06ea234c490..e6914988476 100644 --- a/extensions/discord/src/monitor/message-handler.preflight-helpers.ts +++ b/extensions/discord/src/monitor/message-handler.preflight-helpers.ts @@ -25,7 +25,7 @@ export function isBoundThreadBotSystemMessage(params: { return DISCORD_BOUND_THREAD_SYSTEM_PREFIXES.some((prefix) => text.startsWith(prefix)); } -export type BoundThreadLookupRecordLike = { +type BoundThreadLookupRecordLike = { webhookId?: string | null; metadata?: { webhookId?: string | null; diff --git a/extensions/discord/src/monitor/message-handler.preflight-thread.ts b/extensions/discord/src/monitor/message-handler.preflight-thread.ts index 373fffe1610..d24d0ef0d9a 100644 --- a/extensions/discord/src/monitor/message-handler.preflight-thread.ts +++ b/extensions/discord/src/monitor/message-handler.preflight-thread.ts @@ -6,7 +6,7 @@ import { import type { DiscordMessagePreflightContext } from "./message-handler.preflight.types.js"; import type { DiscordChannelInfo } from "./message-utils.js"; -export type DiscordPreflightThreadContext = { +type DiscordPreflightThreadContext = { earlyThreadChannel: DiscordMessagePreflightContext["threadChannel"]; earlyThreadParentId?: string; earlyThreadParentName?: string; diff --git a/extensions/discord/src/monitor/message-handler.preflight.types.ts b/extensions/discord/src/monitor/message-handler.preflight.types.ts index 24cd4cf9759..1ea71002570 100644 --- a/extensions/discord/src/monitor/message-handler.preflight.types.ts +++ b/extensions/discord/src/monitor/message-handler.preflight.types.ts @@ -11,7 +11,7 @@ import type { DiscordSenderIdentity } from "./sender-identity.js"; export type { DiscordSenderIdentity } from "./sender-identity.js"; import type { DiscordThreadChannel } from "./threading.js"; -export type LoadedConfig = OpenClawConfig; +type LoadedConfig = OpenClawConfig; export type RuntimeEnv = import("openclaw/plugin-sdk/runtime-env").RuntimeEnv; export type DiscordMessageEvent = import("./listeners.js").DiscordMessageEvent; diff --git a/extensions/discord/src/monitor/message-run-queue.ts b/extensions/discord/src/monitor/message-run-queue.ts index 7794e301a35..16a546dbd12 100644 --- a/extensions/discord/src/monitor/message-run-queue.ts +++ b/extensions/discord/src/monitor/message-run-queue.ts @@ -22,7 +22,7 @@ type DiscordMessageRunQueueParams = { __testing?: DiscordMessageRunQueueTestingHooks; }; -export type DiscordMessageRunQueue = { +type DiscordMessageRunQueue = { enqueue: (job: DiscordInboundJob) => void; deactivate: () => void; }; diff --git a/extensions/discord/src/monitor/native-command-context.ts b/extensions/discord/src/monitor/native-command-context.ts index 80cd91b93ee..f716348e568 100644 --- a/extensions/discord/src/monitor/native-command-context.ts +++ b/extensions/discord/src/monitor/native-command-context.ts @@ -4,7 +4,7 @@ import { resolveDiscordConversationIdentity } from "../conversation-identity.js" import { type DiscordChannelConfigResolved, type DiscordGuildEntryResolved } from "./allow-list.js"; import { buildDiscordInboundAccessContext } from "./inbound-context.js"; -export type BuildDiscordNativeCommandContextParams = { +type BuildDiscordNativeCommandContextParams = { prompt: string; commandArgs: CommandArgs; sessionKey: string; diff --git a/extensions/discord/src/monitor/native-command-model-picker-apply.ts b/extensions/discord/src/monitor/native-command-model-picker-apply.ts index c321324d380..0175b9e2625 100644 --- a/extensions/discord/src/monitor/native-command-model-picker-apply.ts +++ b/extensions/discord/src/monitor/native-command-model-picker-apply.ts @@ -15,13 +15,13 @@ import type { ThreadBindingManager } from "./thread-bindings.js"; type DiscordConfig = NonNullable["discord"]; -export type DiscordModelPickerSelectionCommand = { +type DiscordModelPickerSelectionCommand = { prompt: string; command: ChatCommandDefinition; args?: CommandArgs; }; -export type DiscordModelPickerApplyResult = +type DiscordModelPickerApplyResult = | { status: "success"; effectiveModelRef: string; noticeMessage: string } | { status: "mismatch"; effectiveModelRef: string; noticeMessage: string } | { status: "rejected"; noticeMessage: string } diff --git a/extensions/discord/src/monitor/native-command-route.ts b/extensions/discord/src/monitor/native-command-route.ts index 5404001a6ae..5a0aa499b79 100644 --- a/extensions/discord/src/monitor/native-command-route.ts +++ b/extensions/discord/src/monitor/native-command-route.ts @@ -15,7 +15,7 @@ type ConfiguredBindingResolution = NonNullable< NonNullable["bindingResolution"] >; -export type DiscordNativeInteractionRouteState = { +type DiscordNativeInteractionRouteState = { route: ResolvedAgentRoute; effectiveRoute: ResolvedAgentRoute; boundSessionKey?: string; diff --git a/extensions/discord/src/monitor/native-interaction-channel-context.ts b/extensions/discord/src/monitor/native-interaction-channel-context.ts index 8bf5989679c..082fef050f0 100644 --- a/extensions/discord/src/monitor/native-interaction-channel-context.ts +++ b/extensions/discord/src/monitor/native-interaction-channel-context.ts @@ -7,7 +7,7 @@ type DiscordInteractionChannel = { type?: ChannelType; }; -export type DiscordNativeInteractionChannelContext = { +type DiscordNativeInteractionChannelContext = { channelType?: ChannelType; isDirectMessage: boolean; isGroupDm: boolean; diff --git a/extensions/discord/src/monitor/provider.config-log.ts b/extensions/discord/src/monitor/provider.config-log.ts index 38ceb983056..a796cee7327 100644 --- a/extensions/discord/src/monitor/provider.config-log.ts +++ b/extensions/discord/src/monitor/provider.config-log.ts @@ -2,7 +2,7 @@ import { logVerbose } from "openclaw/plugin-sdk/runtime-env"; import { summarizeStringEntries } from "openclaw/plugin-sdk/text-runtime"; import { formatThreadBindingDurationLabel } from "./thread-bindings.messages.js"; -export function formatThreadBindingDurationForConfigLabel(durationMs: number): string { +function formatThreadBindingDurationForConfigLabel(durationMs: number): string { const label = formatThreadBindingDurationLabel(durationMs); return label === "disabled" ? "off" : label; } diff --git a/extensions/discord/src/monitor/provider.deploy-errors.ts b/extensions/discord/src/monitor/provider.deploy-errors.ts index 8d67d8452a3..9146a299817 100644 --- a/extensions/discord/src/monitor/provider.deploy-errors.ts +++ b/extensions/discord/src/monitor/provider.deploy-errors.ts @@ -5,7 +5,7 @@ import { RateLimitError } from "../internal/discord.js"; const DISCORD_DEPLOY_REJECTED_ENTRY_LIMIT = 3; -export type DiscordDeployErrorLike = { +type DiscordDeployErrorLike = { status?: unknown; statusCode?: unknown; discordCode?: unknown; @@ -19,7 +19,7 @@ export type DiscordDeployErrorLike = { deployTimeoutMs?: unknown; }; -export type DiscordDeployRateLimitDetails = { +type DiscordDeployRateLimitDetails = { status?: number; retryAfterMs?: number; scope?: string; diff --git a/extensions/discord/src/monitor/provider.deploy.ts b/extensions/discord/src/monitor/provider.deploy.ts index 4bbd9c2d727..3eff0914015 100644 --- a/extensions/discord/src/monitor/provider.deploy.ts +++ b/extensions/discord/src/monitor/provider.deploy.ts @@ -117,7 +117,7 @@ function installDeployRestLogging(params: { }; } -export async function deployDiscordCommands(params: { +async function deployDiscordCommands(params: { client: Client; runtime: RuntimeEnv; enabled: boolean; diff --git a/extensions/discord/src/monitor/provider.startup-log.ts b/extensions/discord/src/monitor/provider.startup-log.ts index 00792684c55..d34bf898cbd 100644 --- a/extensions/discord/src/monitor/provider.startup-log.ts +++ b/extensions/discord/src/monitor/provider.startup-log.ts @@ -1,7 +1,7 @@ import { isVerbose, type RuntimeEnv } from "openclaw/plugin-sdk/runtime-env"; import type { GatewayPlugin } from "../internal/gateway.js"; -export function formatDiscordStartupGatewayState(gateway?: GatewayPlugin): string { +function formatDiscordStartupGatewayState(gateway?: GatewayPlugin): string { if (!gateway) { return "gateway=missing"; } diff --git a/extensions/discord/src/monitor/provider.startup.ts b/extensions/discord/src/monitor/provider.startup.ts index ef30b0714cf..6995edfd3fb 100644 --- a/extensions/discord/src/monitor/provider.startup.ts +++ b/extensions/discord/src/monitor/provider.startup.ts @@ -54,7 +54,7 @@ function registerLatePlugin(client: Client, plugin: Plugin) { } } -export function createDiscordStatusReadyListener(params: { +function createDiscordStatusReadyListener(params: { discordConfig: Parameters[0]; getAutoPresenceController: () => DiscordAutoPresenceController | null; }): ReadyListener { diff --git a/extensions/discord/src/monitor/reply-context.ts b/extensions/discord/src/monitor/reply-context.ts index b574a014299..a382451fca1 100644 --- a/extensions/discord/src/monitor/reply-context.ts +++ b/extensions/discord/src/monitor/reply-context.ts @@ -2,7 +2,7 @@ import type { Guild, Message, User } from "../internal/discord.js"; import { resolveTimestampMs } from "./format.js"; import { resolveDiscordSenderIdentity } from "./sender-identity.js"; -export type DiscordReplyContext = { +type DiscordReplyContext = { id: string; channelId: string; sender: string; diff --git a/extensions/discord/src/monitor/status.ts b/extensions/discord/src/monitor/status.ts index 5cd28b21e93..11ae419b411 100644 --- a/extensions/discord/src/monitor/status.ts +++ b/extensions/discord/src/monitor/status.ts @@ -1,4 +1,4 @@ -export type DiscordMonitorStatusPatch = { +type DiscordMonitorStatusPatch = { connected?: boolean; lastEventAt?: number | null; lastTransportActivityAt?: number | null; diff --git a/extensions/discord/src/monitor/thread-bindings.session-adapter.ts b/extensions/discord/src/monitor/thread-bindings.session-adapter.ts index 50654edff56..3ab011fc0c7 100644 --- a/extensions/discord/src/monitor/thread-bindings.session-adapter.ts +++ b/extensions/discord/src/monitor/thread-bindings.session-adapter.ts @@ -61,7 +61,7 @@ function resolveEffectiveBindingExpiresAt(params: { return inactivityExpiresAt ?? maxAgeExpiresAt; } -export function toSessionBindingRecord( +function toSessionBindingRecord( record: ThreadBindingRecord, defaults: ThreadBindingDefaults, ): SessionBindingRecord { diff --git a/extensions/discord/src/monitor/thread-channel-context.ts b/extensions/discord/src/monitor/thread-channel-context.ts index 03fadd4017c..9e3f7a7aeeb 100644 --- a/extensions/discord/src/monitor/thread-channel-context.ts +++ b/extensions/discord/src/monitor/thread-channel-context.ts @@ -12,7 +12,7 @@ import { } from "./message-utils.js"; import { resolveDiscordThreadParentInfo } from "./threading.js"; -export type DiscordThreadLikeChannelContext = { +type DiscordThreadLikeChannelContext = { channelType?: ChannelType; isThreadChannel: boolean; channelId: string; @@ -25,7 +25,7 @@ export type DiscordThreadLikeChannelContext = { channelInfo: DiscordChannelInfo | null; }; -export function isDiscordThreadChannelType(type: ChannelType | number | undefined): boolean { +function isDiscordThreadChannelType(type: ChannelType | number | undefined): boolean { return ( type === ChannelType.PublicThread || type === ChannelType.PrivateThread || diff --git a/extensions/discord/src/monitor/threading.types.ts b/extensions/discord/src/monitor/threading.types.ts index 76e42e0df48..3068ad4c5c5 100644 --- a/extensions/discord/src/monitor/threading.types.ts +++ b/extensions/discord/src/monitor/threading.types.ts @@ -28,12 +28,12 @@ export type DiscordThreadParentInfo = { type?: ChannelType; }; -export type DiscordThreadStarterRestEmbed = { +type DiscordThreadStarterRestEmbed = { title?: string | null; description?: string | null; }; -export type DiscordThreadStarterRestSnapshotMessage = { +type DiscordThreadStarterRestSnapshotMessage = { content?: string | null; attachments?: APIAttachment[] | null; embeds?: DiscordThreadStarterRestEmbed[] | null; diff --git a/extensions/discord/src/voice/capture-state.ts b/extensions/discord/src/voice/capture-state.ts index 01086ddd04f..6aa2c9a8e9c 100644 --- a/extensions/discord/src/voice/capture-state.ts +++ b/extensions/discord/src/voice/capture-state.ts @@ -1,11 +1,11 @@ import type { Readable } from "node:stream"; -export type VoiceCaptureEntry = { +type VoiceCaptureEntry = { generation: number; stream: Readable; }; -export type VoiceCaptureFinalizeTimer = { +type VoiceCaptureFinalizeTimer = { generation: number; timer: ReturnType; }; diff --git a/extensions/discord/src/voice/receive-recovery.ts b/extensions/discord/src/voice/receive-recovery.ts index 3ff86e003e0..28d50f10f2a 100644 --- a/extensions/discord/src/voice/receive-recovery.ts +++ b/extensions/discord/src/voice/receive-recovery.ts @@ -14,7 +14,7 @@ export type VoiceReceiveRecoveryState = { decryptRecoveryInFlight: boolean; }; -export type VoiceReceiveErrorAnalysis = { +type VoiceReceiveErrorAnalysis = { message: string; isAbortLike: boolean; shouldAttemptPassthrough: boolean; @@ -59,7 +59,7 @@ export function createVoiceReceiveRecoveryState(): VoiceReceiveRecoveryState { }; } -export function isAbortLikeReceiveError(err: unknown): boolean { +function isAbortLikeReceiveError(err: unknown): boolean { if (!err || typeof err !== "object") { return false; } diff --git a/extensions/discord/src/voice/speaker-context.ts b/extensions/discord/src/voice/speaker-context.ts index b6128fa98fc..76728364b63 100644 --- a/extensions/discord/src/voice/speaker-context.ts +++ b/extensions/discord/src/voice/speaker-context.ts @@ -4,7 +4,7 @@ import { formatDiscordUserTag } from "../monitor/format.js"; const SPEAKER_CONTEXT_CACHE_TTL_MS = 60_000; -export type VoiceSpeakerIdentity = { +type VoiceSpeakerIdentity = { id: string; label: string; name?: string; @@ -12,7 +12,7 @@ export type VoiceSpeakerIdentity = { memberRoleIds: string[]; }; -export type VoiceSpeakerContext = Omit & { +type VoiceSpeakerContext = Omit & { senderIsOwner: boolean; }; diff --git a/extensions/discord/src/voice/tts.ts b/extensions/discord/src/voice/tts.ts index 3c3032605b5..8c0e245ff9d 100644 --- a/extensions/discord/src/voice/tts.ts +++ b/extensions/discord/src/voice/tts.ts @@ -11,7 +11,7 @@ import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime"; import { getDiscordRuntime } from "../runtime.js"; import { sanitizeVoiceReplyTextForSpeech } from "./sanitize.js"; -export type VoiceReplyAudioResult = +type VoiceReplyAudioResult = | { status: "ok"; audioPath: string;