diff --git a/src/agents/clawdbot-gateway-tool.test.ts b/src/agents/clawdbot-gateway-tool.test.ts index a3dfa830912..0a283198c92 100644 --- a/src/agents/clawdbot-gateway-tool.test.ts +++ b/src/agents/clawdbot-gateway-tool.test.ts @@ -3,6 +3,7 @@ import os from "node:os"; import path from "node:path"; import { describe, expect, it, vi } from "vitest"; +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; vi.mock("./tools/gateway.js", () => ({ diff --git a/src/agents/clawdbot-tools.agents.test.ts b/src/agents/clawdbot-tools.agents.test.ts index 5936c196c8c..0ae300bfb6e 100644 --- a/src/agents/clawdbot-tools.agents.test.ts +++ b/src/agents/clawdbot-tools.agents.test.ts @@ -16,6 +16,7 @@ vi.mock("../config/config.js", async (importOriginal) => { }; }); +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; describe("agents_list", () => { diff --git a/src/agents/clawdbot-tools.camera.test.ts b/src/agents/clawdbot-tools.camera.test.ts index 4347bacfa07..c652e60d328 100644 --- a/src/agents/clawdbot-tools.camera.test.ts +++ b/src/agents/clawdbot-tools.camera.test.ts @@ -10,6 +10,7 @@ vi.mock("../media/image-ops.js", () => ({ resizeToJpeg: vi.fn(async () => Buffer.from("jpeg")), })); +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; describe("nodes camera_snap", () => { diff --git a/src/agents/clawdbot-tools.session-status.test.ts b/src/agents/clawdbot-tools.session-status.test.ts index c361f59d6d2..94ee3e8b494 100644 --- a/src/agents/clawdbot-tools.session-status.test.ts +++ b/src/agents/clawdbot-tools.session-status.test.ts @@ -75,6 +75,7 @@ vi.mock("../infra/provider-usage.js", () => ({ formatUsageSummaryLine: () => null, })); +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; describe("session_status tool", () => { diff --git a/src/agents/clawdbot-tools.sessions.test.ts b/src/agents/clawdbot-tools.sessions.test.ts index bf57c73cfc0..c7964b75b2e 100644 --- a/src/agents/clawdbot-tools.sessions.test.ts +++ b/src/agents/clawdbot-tools.sessions.test.ts @@ -4,9 +4,6 @@ const callGatewayMock = vi.fn(); vi.mock("../gateway/call.js", () => ({ callGateway: (opts: unknown) => callGatewayMock(opts), })); -vi.mock("../plugins/tools.js", () => ({ - resolvePluginTools: () => [], -})); vi.mock("../config/config.js", async (importOriginal) => { const actual = await importOriginal(); @@ -23,6 +20,7 @@ vi.mock("../config/config.js", async (importOriginal) => { }; }); +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; const waitForCalls = async (getCount: () => number, count: number, timeoutMs = 2000) => { diff --git a/src/agents/clawdbot-tools.subagents.sessions-spawn-allows-cross-agent-spawning-configured.test.ts b/src/agents/clawdbot-tools.subagents.sessions-spawn-allows-cross-agent-spawning-configured.test.ts index 3733348d94f..740e987ea5d 100644 --- a/src/agents/clawdbot-tools.subagents.sessions-spawn-allows-cross-agent-spawning-configured.test.ts +++ b/src/agents/clawdbot-tools.subagents.sessions-spawn-allows-cross-agent-spawning-configured.test.ts @@ -21,6 +21,7 @@ vi.mock("../config/config.js", async (importOriginal) => { }; }); +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; import { resetSubagentRegistryForTests } from "./subagent-registry.js"; diff --git a/src/agents/clawdbot-tools.subagents.sessions-spawn-announces-agent-wait-lifecycle-events.test.ts b/src/agents/clawdbot-tools.subagents.sessions-spawn-announces-agent-wait-lifecycle-events.test.ts index 814e021d8f3..27aff8c4761 100644 --- a/src/agents/clawdbot-tools.subagents.sessions-spawn-announces-agent-wait-lifecycle-events.test.ts +++ b/src/agents/clawdbot-tools.subagents.sessions-spawn-announces-agent-wait-lifecycle-events.test.ts @@ -21,6 +21,7 @@ vi.mock("../config/config.js", async (importOriginal) => { }; }); +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; import { resetSubagentRegistryForTests } from "./subagent-registry.js"; diff --git a/src/agents/clawdbot-tools.subagents.sessions-spawn-applies-model-child-session.test.ts b/src/agents/clawdbot-tools.subagents.sessions-spawn-applies-model-child-session.test.ts index 2eea23bf05f..f9bd6a49980 100644 --- a/src/agents/clawdbot-tools.subagents.sessions-spawn-applies-model-child-session.test.ts +++ b/src/agents/clawdbot-tools.subagents.sessions-spawn-applies-model-child-session.test.ts @@ -21,6 +21,7 @@ vi.mock("../config/config.js", async (importOriginal) => { }; }); +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; import { resetSubagentRegistryForTests } from "./subagent-registry.js"; diff --git a/src/agents/clawdbot-tools.subagents.sessions-spawn-normalizes-allowlisted-agent-ids.test.ts b/src/agents/clawdbot-tools.subagents.sessions-spawn-normalizes-allowlisted-agent-ids.test.ts index b1b5b413b85..3dbfb02b46a 100644 --- a/src/agents/clawdbot-tools.subagents.sessions-spawn-normalizes-allowlisted-agent-ids.test.ts +++ b/src/agents/clawdbot-tools.subagents.sessions-spawn-normalizes-allowlisted-agent-ids.test.ts @@ -22,6 +22,7 @@ vi.mock("../config/config.js", async (importOriginal) => { }); import { emitAgentEvent } from "../infra/agent-events.js"; +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; import { resetSubagentRegistryForTests } from "./subagent-registry.js"; diff --git a/src/agents/clawdbot-tools.subagents.sessions-spawn-prefers-per-agent-subagent-model.test.ts b/src/agents/clawdbot-tools.subagents.sessions-spawn-prefers-per-agent-subagent-model.test.ts index c1afd211bd2..65338467583 100644 --- a/src/agents/clawdbot-tools.subagents.sessions-spawn-prefers-per-agent-subagent-model.test.ts +++ b/src/agents/clawdbot-tools.subagents.sessions-spawn-prefers-per-agent-subagent-model.test.ts @@ -21,6 +21,7 @@ vi.mock("../config/config.js", async (importOriginal) => { }; }); +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; import { resetSubagentRegistryForTests } from "./subagent-registry.js"; diff --git a/src/agents/clawdbot-tools.subagents.sessions-spawn-resolves-main-announce-target-from.test.ts b/src/agents/clawdbot-tools.subagents.sessions-spawn-resolves-main-announce-target-from.test.ts index 8a094fb6da3..18f5ab26bc5 100644 --- a/src/agents/clawdbot-tools.subagents.sessions-spawn-resolves-main-announce-target-from.test.ts +++ b/src/agents/clawdbot-tools.subagents.sessions-spawn-resolves-main-announce-target-from.test.ts @@ -22,6 +22,7 @@ vi.mock("../config/config.js", async (importOriginal) => { }); import { emitAgentEvent } from "../infra/agent-events.js"; +import "./test-helpers/fast-core-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; import { resetSubagentRegistryForTests } from "./subagent-registry.js"; diff --git a/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-b.test.ts b/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-b.test.ts index e440ecaeba1..e332c13eb39 100644 --- a/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-b.test.ts +++ b/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-b.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from "vitest"; import type { ClawdbotConfig } from "../config/config.js"; +import "./test-helpers/fast-coding-tools.js"; import { createClawdbotCodingTools } from "./pi-tools.js"; const defaultTools = createClawdbotCodingTools(); diff --git a/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-d.test.ts b/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-d.test.ts index f493164cd2d..bd13aa25c22 100644 --- a/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-d.test.ts +++ b/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-d.test.ts @@ -3,6 +3,7 @@ import os from "node:os"; import path from "node:path"; import sharp from "sharp"; import { describe, expect, it } from "vitest"; +import "./test-helpers/fast-coding-tools.js"; import { createClawdbotCodingTools } from "./pi-tools.js"; const defaultTools = createClawdbotCodingTools(); diff --git a/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-f.test.ts b/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-f.test.ts index 35549a4d3c4..ed557b92217 100644 --- a/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-f.test.ts +++ b/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping-f.test.ts @@ -2,6 +2,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; import { describe, expect, it } from "vitest"; +import "./test-helpers/fast-coding-tools.js"; import { createClawdbotCodingTools } from "./pi-tools.js"; describe("createClawdbotCodingTools", () => { diff --git a/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping.test.ts b/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping.test.ts index 8cb3a352216..221222338c2 100644 --- a/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping.test.ts +++ b/src/agents/pi-tools.create-clawdbot-coding-tools.adds-claude-style-aliases-schemas-without-dropping.test.ts @@ -3,6 +3,7 @@ import os from "node:os"; import path from "node:path"; import type { AgentTool } from "@mariozechner/pi-agent-core"; import { describe, expect, it, vi } from "vitest"; +import "./test-helpers/fast-coding-tools.js"; import { createClawdbotTools } from "./clawdbot-tools.js"; import { __testing, createClawdbotCodingTools } from "./pi-tools.js"; import { createSandboxedReadTool } from "./pi-tools.read.js"; diff --git a/src/agents/test-helpers/fast-coding-tools.ts b/src/agents/test-helpers/fast-coding-tools.ts new file mode 100644 index 00000000000..99b4ab351c8 --- /dev/null +++ b/src/agents/test-helpers/fast-coding-tools.ts @@ -0,0 +1,22 @@ +import { vi } from "vitest"; + +const stubTool = (name: string) => ({ + name, + description: `${name} stub`, + parameters: { type: "object", properties: {} }, + execute: vi.fn(), +}); + +vi.mock("../tools/image-tool.js", () => ({ + createImageTool: () => stubTool("image"), +})); + +vi.mock("../tools/web-tools.js", () => ({ + createWebSearchTool: () => null, + createWebFetchTool: () => null, +})); + +vi.mock("../../plugins/tools.js", () => ({ + resolvePluginTools: () => [], + getPluginToolMeta: () => undefined, +})); diff --git a/src/agents/test-helpers/fast-core-tools.ts b/src/agents/test-helpers/fast-core-tools.ts new file mode 100644 index 00000000000..d459c82765f --- /dev/null +++ b/src/agents/test-helpers/fast-core-tools.ts @@ -0,0 +1,30 @@ +import { vi } from "vitest"; + +const stubTool = (name: string) => ({ + name, + description: `${name} stub`, + parameters: { type: "object", properties: {} }, + execute: vi.fn(), +}); + +vi.mock("../tools/browser-tool.js", () => ({ + createBrowserTool: () => stubTool("browser"), +})); + +vi.mock("../tools/canvas-tool.js", () => ({ + createCanvasTool: () => stubTool("canvas"), +})); + +vi.mock("../tools/image-tool.js", () => ({ + createImageTool: () => stubTool("image"), +})); + +vi.mock("../tools/web-tools.js", () => ({ + createWebSearchTool: () => null, + createWebFetchTool: () => null, +})); + +vi.mock("../../plugins/tools.js", () => ({ + resolvePluginTools: () => [], + getPluginToolMeta: () => undefined, +}));