feat: add claw backend adapter
This commit is contained in:
@@ -59,6 +59,7 @@ export async function POST(
|
||||
modelOverride?: unknown;
|
||||
reasoningEffortOverride?: unknown;
|
||||
promptOverride?: unknown;
|
||||
backendOverride?: unknown;
|
||||
};
|
||||
const hasModelOverride = Object.prototype.hasOwnProperty.call(payload, "modelOverride");
|
||||
const hasReasoningEffortOverride = Object.prototype.hasOwnProperty.call(
|
||||
@@ -66,9 +67,10 @@ export async function POST(
|
||||
"reasoningEffortOverride",
|
||||
);
|
||||
const hasPromptOverride = Object.prototype.hasOwnProperty.call(payload, "promptOverride");
|
||||
const allowedKeys = new Set(["modelOverride", "reasoningEffortOverride", "promptOverride"]);
|
||||
const hasBackendOverride = Object.prototype.hasOwnProperty.call(payload, "backendOverride");
|
||||
const allowedKeys = new Set(["modelOverride", "reasoningEffortOverride", "promptOverride", "backendOverride"]);
|
||||
const hasUnsupportedKeys = Object.keys(payload).some((key) => !allowedKeys.has(key));
|
||||
if ((!hasModelOverride && !hasReasoningEffortOverride && !hasPromptOverride) || hasUnsupportedKeys) {
|
||||
if ((!hasModelOverride && !hasReasoningEffortOverride && !hasPromptOverride && !hasBackendOverride) || hasUnsupportedKeys) {
|
||||
return NextResponse.json({ ok: false, message: "INVALID_AGENT_CONTROLS_PAYLOAD" }, { status: 400 });
|
||||
}
|
||||
|
||||
@@ -90,6 +92,14 @@ export async function POST(
|
||||
if (hasPromptOverride && payload.promptOverride !== undefined && payload.promptOverride !== null && typeof payload.promptOverride !== "string") {
|
||||
return NextResponse.json({ ok: false, message: "INVALID_PROMPT_OVERRIDE" }, { status: 400 });
|
||||
}
|
||||
if (
|
||||
hasBackendOverride &&
|
||||
payload.backendOverride !== undefined &&
|
||||
payload.backendOverride !== null &&
|
||||
payload.backendOverride !== "claw-runtime"
|
||||
) {
|
||||
return NextResponse.json({ ok: false, message: "INVALID_BACKEND_OVERRIDE" }, { status: 400 });
|
||||
}
|
||||
|
||||
try {
|
||||
const controls = await updateProjectAgentControls(
|
||||
@@ -98,6 +108,7 @@ export async function POST(
|
||||
...(hasModelOverride ? { modelOverride: payload.modelOverride } : {}),
|
||||
...(hasReasoningEffortOverride ? { reasoningEffortOverride: payload.reasoningEffortOverride } : {}),
|
||||
...(hasPromptOverride ? { promptOverride: payload.promptOverride } : {}),
|
||||
...(hasBackendOverride ? { backendOverride: payload.backendOverride } : {}),
|
||||
},
|
||||
session.account,
|
||||
);
|
||||
|
||||
@@ -71,12 +71,14 @@ export async function POST(
|
||||
const payload = body as {
|
||||
userPromptContent?: unknown;
|
||||
promptOverride?: unknown;
|
||||
backendOverride?: unknown;
|
||||
};
|
||||
const hasUserPromptContent = Object.prototype.hasOwnProperty.call(payload, "userPromptContent");
|
||||
const hasPromptOverride = Object.prototype.hasOwnProperty.call(payload, "promptOverride");
|
||||
const allowedKeys = new Set(["userPromptContent", "promptOverride"]);
|
||||
const hasBackendOverride = Object.prototype.hasOwnProperty.call(payload, "backendOverride");
|
||||
const allowedKeys = new Set(["userPromptContent", "promptOverride", "backendOverride"]);
|
||||
const hasUnsupportedKeys = Object.keys(payload).some((key) => !allowedKeys.has(key));
|
||||
if ((!hasUserPromptContent && !hasPromptOverride) || hasUnsupportedKeys) {
|
||||
if ((!hasUserPromptContent && !hasPromptOverride && !hasBackendOverride) || hasUnsupportedKeys) {
|
||||
return NextResponse.json({ ok: false, message: "INVALID_PROMPT_PROFILE_PAYLOAD" }, { status: 400 });
|
||||
}
|
||||
if (hasUserPromptContent && payload.userPromptContent !== undefined && payload.userPromptContent !== null && typeof payload.userPromptContent !== "string") {
|
||||
@@ -85,6 +87,22 @@ export async function POST(
|
||||
if (hasPromptOverride && payload.promptOverride !== undefined && payload.promptOverride !== null && typeof payload.promptOverride !== "string") {
|
||||
return NextResponse.json({ ok: false, message: "INVALID_PROMPT_OVERRIDE" }, { status: 400 });
|
||||
}
|
||||
if (
|
||||
hasBackendOverride
|
||||
&& payload.backendOverride !== undefined
|
||||
&& payload.backendOverride !== null
|
||||
&& typeof payload.backendOverride !== "string"
|
||||
) {
|
||||
return NextResponse.json({ ok: false, message: "INVALID_BACKEND_OVERRIDE" }, { status: 400 });
|
||||
}
|
||||
if (
|
||||
hasBackendOverride
|
||||
&& typeof payload.backendOverride === "string"
|
||||
&& payload.backendOverride.trim() !== ""
|
||||
&& payload.backendOverride.trim() !== "claw-runtime"
|
||||
) {
|
||||
return NextResponse.json({ ok: false, message: "INVALID_BACKEND_OVERRIDE" }, { status: 400 });
|
||||
}
|
||||
|
||||
try {
|
||||
if (hasUserPromptContent) {
|
||||
@@ -96,9 +114,10 @@ export async function POST(
|
||||
}
|
||||
}
|
||||
|
||||
if (hasPromptOverride) {
|
||||
if (hasPromptOverride || hasBackendOverride) {
|
||||
await updateProjectAgentControls(projectId, {
|
||||
promptOverride: payload.promptOverride,
|
||||
...(hasPromptOverride ? { promptOverride: payload.promptOverride } : {}),
|
||||
...(hasBackendOverride ? { backendOverride: payload.backendOverride } : {}),
|
||||
}, session.account);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user