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>
60 lines
1.3 KiB
JavaScript
60 lines
1.3 KiB
JavaScript
#!/usr/bin/env node
|
|
import { spawn, spawnSync } from "node:child_process";
|
|
import process from "node:process";
|
|
|
|
const args = process.argv.slice(2);
|
|
const env = { ...process.env };
|
|
const cwd = process.cwd();
|
|
const compiler = env.CLAWDBOT_TS_COMPILER === "tsc" ? "tsc" : "tsgo";
|
|
const projectArgs = ["--project", "tsconfig.json"];
|
|
|
|
const initialBuild = spawnSync("pnpm", ["exec", compiler, ...projectArgs], {
|
|
cwd,
|
|
env,
|
|
stdio: "inherit",
|
|
});
|
|
|
|
if (initialBuild.status !== 0) {
|
|
process.exit(initialBuild.status ?? 1);
|
|
}
|
|
|
|
const watchArgs =
|
|
compiler === "tsc"
|
|
? [...projectArgs, "--watch", "--preserveWatchOutput"]
|
|
: [...projectArgs, "--watch"];
|
|
|
|
const compilerProcess = spawn("pnpm", ["exec", compiler, ...watchArgs], {
|
|
cwd,
|
|
env,
|
|
stdio: "inherit",
|
|
});
|
|
|
|
const nodeProcess = spawn(process.execPath, ["--watch", "dist/entry.js", ...args], {
|
|
cwd,
|
|
env,
|
|
stdio: "inherit",
|
|
});
|
|
|
|
let exiting = false;
|
|
|
|
function cleanup(code = 0) {
|
|
if (exiting) return;
|
|
exiting = true;
|
|
nodeProcess.kill("SIGTERM");
|
|
compilerProcess.kill("SIGTERM");
|
|
process.exit(code);
|
|
}
|
|
|
|
process.on("SIGINT", () => cleanup(130));
|
|
process.on("SIGTERM", () => cleanup(143));
|
|
|
|
compilerProcess.on("exit", (code) => {
|
|
if (exiting) return;
|
|
cleanup(code ?? 1);
|
|
});
|
|
|
|
nodeProcess.on("exit", (code, signal) => {
|
|
if (signal || exiting) return;
|
|
cleanup(code ?? 1);
|
|
});
|