diff --git a/src/agents/pi-embedded-runner.ts b/src/agents/pi-embedded-runner.ts index 5eced8e58..660d0cdbd 100644 --- a/src/agents/pi-embedded-runner.ts +++ b/src/agents/pi-embedded-runner.ts @@ -262,11 +262,14 @@ export function waitForEmbeddedPiRunEnd( const waiters = EMBEDDED_RUN_WAITERS.get(sessionId) ?? new Set(); const waiter: EmbeddedRunWaiter = { resolve, - timer: setTimeout(() => { - waiters.delete(waiter); - if (waiters.size === 0) EMBEDDED_RUN_WAITERS.delete(sessionId); - resolve(false); - }, Math.max(100, timeoutMs)), + timer: setTimeout( + () => { + waiters.delete(waiter); + if (waiters.size === 0) EMBEDDED_RUN_WAITERS.delete(sessionId); + resolve(false); + }, + Math.max(100, timeoutMs), + ), }; waiters.add(waiter); EMBEDDED_RUN_WAITERS.set(sessionId, waiters); diff --git a/src/agents/pi-embedded.ts b/src/agents/pi-embedded.ts index e36a2c458..022a4898f 100644 --- a/src/agents/pi-embedded.ts +++ b/src/agents/pi-embedded.ts @@ -8,7 +8,7 @@ export { isEmbeddedPiRunActive, isEmbeddedPiRunStreaming, queueEmbeddedPiMessage, - waitForEmbeddedPiRunEnd, resolveEmbeddedSessionLane, runEmbeddedPiAgent, + waitForEmbeddedPiRunEnd, } from "./pi-embedded-runner.js"; diff --git a/src/config/config.ts b/src/config/config.ts index d4b88d10f..051b6daf9 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -1777,8 +1777,10 @@ function applySessionDefaults(cfg: ClawdisConfig): ClawdisConfig { if (!session || session.mainKey === undefined) return cfg; const trimmed = session.mainKey.trim(); - const next: ClawdisConfig = { ...cfg, session: { ...session } }; - next.session.mainKey = "main"; + const next: ClawdisConfig = { + ...cfg, + session: { ...session, mainKey: "main" }, + }; if (trimmed && trimmed !== "main" && !warnedMainKeyOverride) { warnedMainKeyOverride = true; diff --git a/src/config/sessions.ts b/src/config/sessions.ts index b9895ac16..a0eef9a9d 100644 --- a/src/config/sessions.ts +++ b/src/config/sessions.ts @@ -103,9 +103,9 @@ export function resolveStorePath(store?: string) { return path.resolve(store); } -export function resolveMainSessionKey( - cfg?: { session?: { scope?: SessionScope; mainKey?: string } }, -): string { +export function resolveMainSessionKey(cfg?: { + session?: { scope?: SessionScope; mainKey?: string }; +}): string { if (cfg?.session?.scope === "global") return "global"; return "main"; } diff --git a/src/gateway/server-bridge.ts b/src/gateway/server-bridge.ts index 5692b3b59..04e0998d2 100644 --- a/src/gateway/server-bridge.ts +++ b/src/gateway/server-bridge.ts @@ -2,12 +2,6 @@ import { randomUUID } from "node:crypto"; import fs from "node:fs"; import { DEFAULT_MODEL, DEFAULT_PROVIDER } from "../agents/defaults.js"; import type { ModelCatalogEntry } from "../agents/model-catalog.js"; -import { - abortEmbeddedPiRun, - isEmbeddedPiRunActive, - resolveEmbeddedSessionLane, - waitForEmbeddedPiRunEnd, -} from "../agents/pi-embedded.js"; import { buildAllowedModelSet, buildModelAliasIndex, @@ -16,6 +10,12 @@ import { resolveModelRefFromString, resolveThinkingDefault, } from "../agents/model-selection.js"; +import { + abortEmbeddedPiRun, + isEmbeddedPiRunActive, + resolveEmbeddedSessionLane, + waitForEmbeddedPiRunEnd, +} from "../agents/pi-embedded.js"; import { normalizeGroupActivation } from "../auto-reply/group-activation.js"; import { normalizeThinkLevel, @@ -44,8 +44,8 @@ import { loadVoiceWakeConfig, setVoiceWakeTriggers, } from "../infra/voicewake.js"; -import { defaultRuntime } from "../runtime.js"; import { clearCommandLane } from "../process/command-queue.js"; +import { defaultRuntime } from "../runtime.js"; import { normalizeSendPolicy } from "../sessions/send-policy.js"; import { buildMessageWithAttachments } from "./chat-attachments.js"; import { diff --git a/src/gateway/server.sessions.test.ts b/src/gateway/server.sessions.test.ts index 4e56c56a7..97dd9c6c6 100644 --- a/src/gateway/server.sessions.test.ts +++ b/src/gateway/server.sessions.test.ts @@ -4,8 +4,8 @@ import path from "node:path"; import { describe, expect, test } from "vitest"; import { connectOk, - installGatewayTestHooks, embeddedRunMock, + installGatewayTestHooks, piSdkMock, rpcReq, startServerWithClient, diff --git a/src/gateway/test-helpers.ts b/src/gateway/test-helpers.ts index 3bbb60eb8..3266b5935 100644 --- a/src/gateway/test-helpers.ts +++ b/src/gateway/test-helpers.ts @@ -39,7 +39,7 @@ export type BridgeStartOpts = { >; }; - const hoisted = vi.hoisted(() => ({ +const hoisted = vi.hoisted(() => ({ bridgeStartCalls: [] as BridgeStartOpts[], bridgeInvoke: vi.fn(async () => ({ type: "invoke-res", @@ -292,9 +292,9 @@ vi.mock("../config/config.js", async () => { }); vi.mock("../agents/pi-embedded.js", async () => { - const actual = await vi.importActual( - "../agents/pi-embedded.js", - ); + const actual = await vi.importActual< + typeof import("../agents/pi-embedded.js") + >("../agents/pi-embedded.js"); return { ...actual, isEmbeddedPiRunActive: (sessionId: string) => diff --git a/src/web/outbound.ts b/src/web/outbound.ts index 9008a5538..a8c3c076b 100644 --- a/src/web/outbound.ts +++ b/src/web/outbound.ts @@ -67,13 +67,7 @@ export async function sendMessageWhatsApp( ? { gifPlayback: true } : undefined; const result = sendOptions - ? await active.sendMessage( - to, - text, - mediaBuffer, - mediaType, - sendOptions, - ) + ? await active.sendMessage(to, text, mediaBuffer, mediaType, sendOptions) : await active.sendMessage(to, text, mediaBuffer, mediaType); const messageId = (result as { messageId?: string })?.messageId ?? "unknown";