mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-06 14:51:08 +00:00
fix(agents): align runtime with updated deps
This commit is contained in:
@@ -13,7 +13,8 @@ describe("createCachedLazyValueGetter", () => {
|
||||
|
||||
it("uses the fallback when the lazy value resolves nullish", () => {
|
||||
const fallback = { type: "object" as const, properties: {} };
|
||||
const getSchema = createCachedLazyValueGetter<typeof fallback>(() => undefined, fallback);
|
||||
const resolveSchema = (): typeof fallback | undefined => undefined;
|
||||
const getSchema = createCachedLazyValueGetter(resolveSchema, fallback);
|
||||
|
||||
expect(getSchema()).toBe(fallback);
|
||||
});
|
||||
|
||||
@@ -56,7 +56,7 @@ describe("composeProviderStreamWrappers", () => {
|
||||
});
|
||||
|
||||
describe("buildProviderStreamFamilyHooks", () => {
|
||||
it("covers the stream family matrix", () => {
|
||||
it("covers the stream family matrix", async () => {
|
||||
let capturedPayload: Record<string, unknown> | undefined;
|
||||
let capturedModelId: string | undefined;
|
||||
let capturedHeaders: Record<string, string> | undefined;
|
||||
@@ -74,12 +74,17 @@ describe("buildProviderStreamFamilyHooks", () => {
|
||||
};
|
||||
|
||||
const googleHooks = buildProviderStreamFamilyHooks("google-thinking");
|
||||
void requireStreamFn(
|
||||
const googleStream = requireStreamFn(
|
||||
requireWrapStreamFn(googleHooks.wrapStreamFn)({
|
||||
streamFn: baseStreamFn,
|
||||
thinkingLevel: "high",
|
||||
} as never),
|
||||
)({ api: "google-generative-ai", id: "gemini-3.1-pro-preview" } as never, {} as never, {});
|
||||
);
|
||||
await googleStream(
|
||||
{ api: "google-generative-ai", id: "gemini-3.1-pro-preview" } as never,
|
||||
{} as never,
|
||||
{},
|
||||
);
|
||||
expect(capturedPayload).toMatchObject({
|
||||
config: { thinkingConfig: { thinkingLevel: "HIGH" } },
|
||||
});
|
||||
@@ -89,12 +94,13 @@ describe("buildProviderStreamFamilyHooks", () => {
|
||||
expect(googleThinkingConfig).not.toHaveProperty("thinkingBudget");
|
||||
|
||||
const minimaxHooks = buildProviderStreamFamilyHooks("minimax-fast-mode");
|
||||
void requireStreamFn(
|
||||
const minimaxStream = requireStreamFn(
|
||||
requireWrapStreamFn(minimaxHooks.wrapStreamFn)({
|
||||
streamFn: baseStreamFn,
|
||||
extraParams: { fastMode: true },
|
||||
} as never),
|
||||
)(
|
||||
);
|
||||
await minimaxStream(
|
||||
{
|
||||
api: "anthropic-messages",
|
||||
provider: "minimax",
|
||||
@@ -131,12 +137,17 @@ describe("buildProviderStreamFamilyHooks", () => {
|
||||
expect(capturedPayload).not.toHaveProperty("reasoning");
|
||||
|
||||
const moonshotHooks = buildProviderStreamFamilyHooks("moonshot-thinking");
|
||||
void requireStreamFn(
|
||||
const moonshotStream = requireStreamFn(
|
||||
requireWrapStreamFn(moonshotHooks.wrapStreamFn)({
|
||||
streamFn: baseStreamFn,
|
||||
thinkingLevel: "off",
|
||||
} as never),
|
||||
)({ api: "openai-completions", id: "kimi-k2.5" } as never, {} as never, {});
|
||||
);
|
||||
await moonshotStream(
|
||||
{ api: "openai-completions", id: "kimi-k2.5" } as never,
|
||||
{} as never,
|
||||
{},
|
||||
);
|
||||
expect(capturedPayload).toMatchObject({
|
||||
config: { thinkingConfig: { thinkingBudget: -1 } },
|
||||
thinking: { type: "disabled" },
|
||||
@@ -192,23 +203,25 @@ describe("buildProviderStreamFamilyHooks", () => {
|
||||
expect(capturedPayload).not.toHaveProperty("reasoning");
|
||||
|
||||
const toolStreamHooks = buildProviderStreamFamilyHooks("tool-stream-default-on");
|
||||
void requireStreamFn(
|
||||
const toolStreamDefault = requireStreamFn(
|
||||
requireWrapStreamFn(toolStreamHooks.wrapStreamFn)({
|
||||
streamFn: baseStreamFn,
|
||||
extraParams: {},
|
||||
} as never),
|
||||
)({ id: "glm-4.7" } as never, {} as never, {});
|
||||
);
|
||||
await toolStreamDefault({ id: "glm-4.7" } as never, {} as never, {});
|
||||
expect(capturedPayload).toMatchObject({
|
||||
config: { thinkingConfig: { thinkingBudget: -1 } },
|
||||
tool_stream: true,
|
||||
});
|
||||
|
||||
void requireStreamFn(
|
||||
const toolStreamDisabled = requireStreamFn(
|
||||
requireWrapStreamFn(toolStreamHooks.wrapStreamFn)({
|
||||
streamFn: baseStreamFn,
|
||||
extraParams: { tool_stream: false },
|
||||
} as never),
|
||||
)({ id: "glm-4.7" } as never, {} as never, {});
|
||||
);
|
||||
await toolStreamDisabled({ id: "glm-4.7" } as never, {} as never, {});
|
||||
expect(capturedPayload).toMatchObject({
|
||||
config: { thinkingConfig: { thinkingBudget: -1 } },
|
||||
});
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import type { StreamFn } from "@mariozechner/pi-agent-core";
|
||||
import type { ProviderPlugin } from "../plugins/types.js";
|
||||
import type { ProviderWrapStreamFnContext } from "./plugin-entry.js";
|
||||
import {
|
||||
createGoogleThinkingPayloadWrapper,
|
||||
sanitizeGoogleThinkingPayload,
|
||||
@@ -28,7 +26,12 @@ import {
|
||||
resolveOpenAIServiceTier,
|
||||
resolveOpenAITextVerbosity,
|
||||
} from "../agents/pi-embedded-runner/openai-stream-wrappers.js";
|
||||
import { createToolStreamWrapper, createZaiToolStreamWrapper } from "../agents/pi-embedded-runner/zai-stream-wrappers.js";
|
||||
import {
|
||||
createToolStreamWrapper,
|
||||
createZaiToolStreamWrapper,
|
||||
} from "../agents/pi-embedded-runner/zai-stream-wrappers.js";
|
||||
import type { ProviderPlugin } from "../plugins/types.js";
|
||||
import type { ProviderWrapStreamFnContext } from "./plugin-entry.js";
|
||||
|
||||
export type ProviderStreamWrapperFactory =
|
||||
| ((streamFn: StreamFn | undefined) => StreamFn | undefined)
|
||||
@@ -40,7 +43,7 @@ export function composeProviderStreamWrappers(
|
||||
baseStreamFn: StreamFn | undefined,
|
||||
...wrappers: ProviderStreamWrapperFactory[]
|
||||
): StreamFn | undefined {
|
||||
return wrappers.reduce<StreamFn | undefined>(
|
||||
return wrappers.reduce(
|
||||
(streamFn, wrapper) => (wrapper ? wrapper(streamFn) : streamFn),
|
||||
baseStreamFn,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user