mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-14 02:31:24 +00:00
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime";
|
|
|
|
export function hasModelSwitchContinuityEvidence(text: string) {
|
|
const lower = normalizeLowercaseStringOrEmpty(text);
|
|
const mentionsHandoff =
|
|
lower.includes("handoff") || lower.includes("model switch") || lower.includes("switched");
|
|
const mentionsKickoffTask =
|
|
lower.includes("qa_kickoff_task") ||
|
|
lower.includes("qa/scenarios/index.md") ||
|
|
lower.includes("scenario pack") ||
|
|
lower.includes("kickoff task") ||
|
|
lower.includes("kickoff note") ||
|
|
lower.includes("qa mission") ||
|
|
(lower.includes("source and docs") &&
|
|
lower.includes("qa-channel scenarios") &&
|
|
lower.includes("worked") &&
|
|
lower.includes("blocked") &&
|
|
lower.includes("follow-up"));
|
|
const hasScopeLeak =
|
|
lower.includes("subagent-handoff") ||
|
|
lower.includes("delegated task") ||
|
|
lower.includes("final qa tally") ||
|
|
lower.includes("qa run complete") ||
|
|
lower.includes("all mandatory scenarios");
|
|
const looksOverlong =
|
|
text.length > 280 || text.includes("\n\n") || text.includes("|---") || text.includes("### ");
|
|
return mentionsHandoff && mentionsKickoffTask && !hasScopeLeak && !looksOverlong;
|
|
}
|