Venice's API doesn't support certain OpenAI-compatible parameters that Clawdbot sends by default: - `store`: Venice returns HTTP 400 with no body when this is present - `developer` role: Not supported by Venice's API This adds VENICE_COMPAT settings (supportsStore: false, supportsDeveloperRole: false) to all Venice model definitions, both from the static catalog and dynamically discovered models. Fixes issues reported in PR #1666 where users experienced silent failures (HTTP 400, no body) when using Venice models. Co-authored-by: jonisjongithub <jonisjongithub@users.noreply.github.com> Co-authored-by: Clawdbot <bot@clawd.bot>
21 lines
813 B
TypeScript
21 lines
813 B
TypeScript
import { expect } from "vitest";
|
|
|
|
import { normalizeChatType } from "../../src/channels/chat-type.js";
|
|
import { resolveConversationLabel } from "../../src/channels/conversation-label.js";
|
|
import { validateSenderIdentity } from "../../src/channels/sender-identity.js";
|
|
import type { MsgContext } from "../../src/auto-reply/templating.js";
|
|
|
|
export function expectInboundContextContract(ctx: MsgContext) {
|
|
expect(validateSenderIdentity(ctx)).toEqual([]);
|
|
|
|
expect(ctx.Body).toBeTypeOf("string");
|
|
expect(ctx.BodyForAgent).toBeTypeOf("string");
|
|
expect(ctx.BodyForCommands).toBeTypeOf("string");
|
|
|
|
const chatType = normalizeChatType(ctx.ChatType);
|
|
if (chatType && chatType !== "direct") {
|
|
const label = ctx.ConversationLabel?.trim() || resolveConversationLabel(ctx);
|
|
expect(label).toBeTruthy();
|
|
}
|
|
}
|