diff --git a/package.json b/package.json index 0a345f172a0..f85bdb6e463 100644 --- a/package.json +++ b/package.json @@ -382,6 +382,7 @@ "dotenv": "^17.3.1", "express": "^5.2.1", "file-type": "^21.3.2", + "gaxios": "^7.1.3", "grammy": "^1.41.1", "hono": "4.12.7", "https-proxy-agent": "^8.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8168f1b74d..90ebda912b0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -125,6 +125,9 @@ importers: file-type: specifier: 21.3.2 version: 21.3.2 + gaxios: + specifier: ^7.1.3 + version: 7.1.3 grammy: specifier: ^1.41.1 version: 1.41.1 @@ -271,6 +274,8 @@ importers: specifier: 0.3.0 version: 0.3.0(zod@4.3.6) + extensions/amazon-bedrock: {} + extensions/anthropic: {} extensions/bluebubbles: diff --git a/src/auto-reply/thinking.ts b/src/auto-reply/thinking.ts index c83ce53b6f2..1f2f1738b1f 100644 --- a/src/auto-reply/thinking.ts +++ b/src/auto-reply/thinking.ts @@ -6,6 +6,7 @@ import { normalizeProviderId, resolveThinkingDefaultForModel as resolveThinkingDefaultForModelFallback, } from "./thinking.shared.js"; +import type { ThinkLevel, ThinkingCatalogEntry } from "./thinking.shared.js"; export { formatXHighModelHint, normalizeElevatedLevel, @@ -50,7 +51,7 @@ export function isBinaryThinkingProvider(provider?: string | null, model?: strin if (typeof pluginDecision === "boolean") { return pluginDecision; } - return isBinaryThinkingProviderFallback(provider, model); + return isBinaryThinkingProviderFallback(provider); } export function supportsXHighThinking(provider?: string | null, model?: string | null): boolean { diff --git a/src/infra/bonjour.ts b/src/infra/bonjour.ts index c99d45d85f4..457853a9b45 100644 --- a/src/infra/bonjour.ts +++ b/src/infra/bonjour.ts @@ -185,7 +185,7 @@ export async function startGatewayBonjourAdvertiser( if (!cycle) { return; } - const responder = cycle.responder as { + const responder = cycle.responder as unknown as { advertiseService?: (...args: unknown[]) => unknown; announce?: (...args: unknown[]) => unknown; probe?: (...args: unknown[]) => unknown; diff --git a/src/plugins/contracts/auth-choice.contract.test.ts b/src/plugins/contracts/auth-choice.contract.test.ts index 6ffa2a22055..fa4f4daa0ad 100644 --- a/src/plugins/contracts/auth-choice.contract.test.ts +++ b/src/plugins/contracts/auth-choice.contract.test.ts @@ -14,13 +14,20 @@ import { import { createCapturedPluginRegistration } from "../../test-utils/plugin-registration.js"; import type { OpenClawPluginApi, ProviderPlugin } from "../types.js"; +type ResolvePluginProviders = + typeof import("../../commands/auth-choice.apply.plugin-provider.runtime.js").resolvePluginProviders; +type ResolveProviderPluginChoice = + typeof import("../../commands/auth-choice.apply.plugin-provider.runtime.js").resolveProviderPluginChoice; +type RunProviderModelSelectedHook = + typeof import("../../commands/auth-choice.apply.plugin-provider.runtime.js").runProviderModelSelectedHook; + const loginQwenPortalOAuthMock = vi.hoisted(() => vi.fn()); const githubCopilotLoginCommandMock = vi.hoisted(() => vi.fn()); -const resolvePluginProvidersMock = vi.hoisted(() => vi.fn<() => ProviderPlugin[]>(() => [])); -const resolveProviderPluginChoiceMock = vi.hoisted(() => - vi.fn<() => { provider: ProviderPlugin; method: ProviderPlugin["auth"][number] } | null>(), +const resolvePluginProvidersMock = vi.hoisted(() => vi.fn(() => [])); +const resolveProviderPluginChoiceMock = vi.hoisted(() => vi.fn()); +const runProviderModelSelectedHookMock = vi.hoisted(() => + vi.fn(async () => {}), ); -const runProviderModelSelectedHookMock = vi.hoisted(() => vi.fn(async () => {})); vi.mock("../../../extensions/qwen-portal-auth/oauth.js", () => ({ loginQwenPortalOAuth: loginQwenPortalOAuthMock, @@ -31,9 +38,9 @@ vi.mock("../../providers/github-copilot-auth.js", () => ({ })); vi.mock("../../commands/auth-choice.apply.plugin-provider.runtime.js", () => ({ - resolvePluginProviders: (...args: unknown[]) => resolvePluginProvidersMock(...args), - resolveProviderPluginChoice: (...args: unknown[]) => resolveProviderPluginChoiceMock(...args), - runProviderModelSelectedHook: (...args: unknown[]) => runProviderModelSelectedHookMock(...args), + resolvePluginProviders: resolvePluginProvidersMock, + resolveProviderPluginChoice: resolveProviderPluginChoiceMock, + runProviderModelSelectedHook: runProviderModelSelectedHookMock, })); type StoredAuthProfile = {