fix: satisfy gate checks
This commit is contained in:
@@ -262,11 +262,14 @@ export function waitForEmbeddedPiRunEnd(
|
|||||||
const waiters = EMBEDDED_RUN_WAITERS.get(sessionId) ?? new Set();
|
const waiters = EMBEDDED_RUN_WAITERS.get(sessionId) ?? new Set();
|
||||||
const waiter: EmbeddedRunWaiter = {
|
const waiter: EmbeddedRunWaiter = {
|
||||||
resolve,
|
resolve,
|
||||||
timer: setTimeout(() => {
|
timer: setTimeout(
|
||||||
waiters.delete(waiter);
|
() => {
|
||||||
if (waiters.size === 0) EMBEDDED_RUN_WAITERS.delete(sessionId);
|
waiters.delete(waiter);
|
||||||
resolve(false);
|
if (waiters.size === 0) EMBEDDED_RUN_WAITERS.delete(sessionId);
|
||||||
}, Math.max(100, timeoutMs)),
|
resolve(false);
|
||||||
|
},
|
||||||
|
Math.max(100, timeoutMs),
|
||||||
|
),
|
||||||
};
|
};
|
||||||
waiters.add(waiter);
|
waiters.add(waiter);
|
||||||
EMBEDDED_RUN_WAITERS.set(sessionId, waiters);
|
EMBEDDED_RUN_WAITERS.set(sessionId, waiters);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ export {
|
|||||||
isEmbeddedPiRunActive,
|
isEmbeddedPiRunActive,
|
||||||
isEmbeddedPiRunStreaming,
|
isEmbeddedPiRunStreaming,
|
||||||
queueEmbeddedPiMessage,
|
queueEmbeddedPiMessage,
|
||||||
waitForEmbeddedPiRunEnd,
|
|
||||||
resolveEmbeddedSessionLane,
|
resolveEmbeddedSessionLane,
|
||||||
runEmbeddedPiAgent,
|
runEmbeddedPiAgent,
|
||||||
|
waitForEmbeddedPiRunEnd,
|
||||||
} from "./pi-embedded-runner.js";
|
} from "./pi-embedded-runner.js";
|
||||||
|
|||||||
@@ -1777,8 +1777,10 @@ function applySessionDefaults(cfg: ClawdisConfig): ClawdisConfig {
|
|||||||
if (!session || session.mainKey === undefined) return cfg;
|
if (!session || session.mainKey === undefined) return cfg;
|
||||||
|
|
||||||
const trimmed = session.mainKey.trim();
|
const trimmed = session.mainKey.trim();
|
||||||
const next: ClawdisConfig = { ...cfg, session: { ...session } };
|
const next: ClawdisConfig = {
|
||||||
next.session.mainKey = "main";
|
...cfg,
|
||||||
|
session: { ...session, mainKey: "main" },
|
||||||
|
};
|
||||||
|
|
||||||
if (trimmed && trimmed !== "main" && !warnedMainKeyOverride) {
|
if (trimmed && trimmed !== "main" && !warnedMainKeyOverride) {
|
||||||
warnedMainKeyOverride = true;
|
warnedMainKeyOverride = true;
|
||||||
|
|||||||
@@ -103,9 +103,9 @@ export function resolveStorePath(store?: string) {
|
|||||||
return path.resolve(store);
|
return path.resolve(store);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function resolveMainSessionKey(
|
export function resolveMainSessionKey(cfg?: {
|
||||||
cfg?: { session?: { scope?: SessionScope; mainKey?: string } },
|
session?: { scope?: SessionScope; mainKey?: string };
|
||||||
): string {
|
}): string {
|
||||||
if (cfg?.session?.scope === "global") return "global";
|
if (cfg?.session?.scope === "global") return "global";
|
||||||
return "main";
|
return "main";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,6 @@ import { randomUUID } from "node:crypto";
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import { DEFAULT_MODEL, DEFAULT_PROVIDER } from "../agents/defaults.js";
|
import { DEFAULT_MODEL, DEFAULT_PROVIDER } from "../agents/defaults.js";
|
||||||
import type { ModelCatalogEntry } from "../agents/model-catalog.js";
|
import type { ModelCatalogEntry } from "../agents/model-catalog.js";
|
||||||
import {
|
|
||||||
abortEmbeddedPiRun,
|
|
||||||
isEmbeddedPiRunActive,
|
|
||||||
resolveEmbeddedSessionLane,
|
|
||||||
waitForEmbeddedPiRunEnd,
|
|
||||||
} from "../agents/pi-embedded.js";
|
|
||||||
import {
|
import {
|
||||||
buildAllowedModelSet,
|
buildAllowedModelSet,
|
||||||
buildModelAliasIndex,
|
buildModelAliasIndex,
|
||||||
@@ -16,6 +10,12 @@ import {
|
|||||||
resolveModelRefFromString,
|
resolveModelRefFromString,
|
||||||
resolveThinkingDefault,
|
resolveThinkingDefault,
|
||||||
} from "../agents/model-selection.js";
|
} from "../agents/model-selection.js";
|
||||||
|
import {
|
||||||
|
abortEmbeddedPiRun,
|
||||||
|
isEmbeddedPiRunActive,
|
||||||
|
resolveEmbeddedSessionLane,
|
||||||
|
waitForEmbeddedPiRunEnd,
|
||||||
|
} from "../agents/pi-embedded.js";
|
||||||
import { normalizeGroupActivation } from "../auto-reply/group-activation.js";
|
import { normalizeGroupActivation } from "../auto-reply/group-activation.js";
|
||||||
import {
|
import {
|
||||||
normalizeThinkLevel,
|
normalizeThinkLevel,
|
||||||
@@ -44,8 +44,8 @@ import {
|
|||||||
loadVoiceWakeConfig,
|
loadVoiceWakeConfig,
|
||||||
setVoiceWakeTriggers,
|
setVoiceWakeTriggers,
|
||||||
} from "../infra/voicewake.js";
|
} from "../infra/voicewake.js";
|
||||||
import { defaultRuntime } from "../runtime.js";
|
|
||||||
import { clearCommandLane } from "../process/command-queue.js";
|
import { clearCommandLane } from "../process/command-queue.js";
|
||||||
|
import { defaultRuntime } from "../runtime.js";
|
||||||
import { normalizeSendPolicy } from "../sessions/send-policy.js";
|
import { normalizeSendPolicy } from "../sessions/send-policy.js";
|
||||||
import { buildMessageWithAttachments } from "./chat-attachments.js";
|
import { buildMessageWithAttachments } from "./chat-attachments.js";
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import path from "node:path";
|
|||||||
import { describe, expect, test } from "vitest";
|
import { describe, expect, test } from "vitest";
|
||||||
import {
|
import {
|
||||||
connectOk,
|
connectOk,
|
||||||
installGatewayTestHooks,
|
|
||||||
embeddedRunMock,
|
embeddedRunMock,
|
||||||
|
installGatewayTestHooks,
|
||||||
piSdkMock,
|
piSdkMock,
|
||||||
rpcReq,
|
rpcReq,
|
||||||
startServerWithClient,
|
startServerWithClient,
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export type BridgeStartOpts = {
|
|||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
const hoisted = vi.hoisted(() => ({
|
const hoisted = vi.hoisted(() => ({
|
||||||
bridgeStartCalls: [] as BridgeStartOpts[],
|
bridgeStartCalls: [] as BridgeStartOpts[],
|
||||||
bridgeInvoke: vi.fn(async () => ({
|
bridgeInvoke: vi.fn(async () => ({
|
||||||
type: "invoke-res",
|
type: "invoke-res",
|
||||||
@@ -292,9 +292,9 @@ vi.mock("../config/config.js", async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
vi.mock("../agents/pi-embedded.js", async () => {
|
vi.mock("../agents/pi-embedded.js", async () => {
|
||||||
const actual = await vi.importActual<typeof import("../agents/pi-embedded.js")>(
|
const actual = await vi.importActual<
|
||||||
"../agents/pi-embedded.js",
|
typeof import("../agents/pi-embedded.js")
|
||||||
);
|
>("../agents/pi-embedded.js");
|
||||||
return {
|
return {
|
||||||
...actual,
|
...actual,
|
||||||
isEmbeddedPiRunActive: (sessionId: string) =>
|
isEmbeddedPiRunActive: (sessionId: string) =>
|
||||||
|
|||||||
@@ -67,13 +67,7 @@ export async function sendMessageWhatsApp(
|
|||||||
? { gifPlayback: true }
|
? { gifPlayback: true }
|
||||||
: undefined;
|
: undefined;
|
||||||
const result = sendOptions
|
const result = sendOptions
|
||||||
? await active.sendMessage(
|
? await active.sendMessage(to, text, mediaBuffer, mediaType, sendOptions)
|
||||||
to,
|
|
||||||
text,
|
|
||||||
mediaBuffer,
|
|
||||||
mediaType,
|
|
||||||
sendOptions,
|
|
||||||
)
|
|
||||||
: await active.sendMessage(to, text, mediaBuffer, mediaType);
|
: await active.sendMessage(to, text, mediaBuffer, mediaType);
|
||||||
const messageId =
|
const messageId =
|
||||||
(result as { messageId?: string })?.messageId ?? "unknown";
|
(result as { messageId?: string })?.messageId ?? "unknown";
|
||||||
|
|||||||
Reference in New Issue
Block a user