mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 16:20:43 +00:00
perf: avoid sort-for-single selection
This commit is contained in:
@@ -677,6 +677,22 @@ function isRoutingSummary(summary: SectionSummary): boolean {
|
||||
return summary.scores.routing > 0 || REM_ROUTING_SIGNAL_RE.test(summary.text);
|
||||
}
|
||||
|
||||
function findStrongestSummary(
|
||||
summaries: SectionSummary[],
|
||||
predicate: (summary: SectionSummary) => boolean,
|
||||
): SectionSummary | undefined {
|
||||
let strongest: SectionSummary | undefined;
|
||||
for (const summary of summaries) {
|
||||
if (!predicate(summary)) {
|
||||
continue;
|
||||
}
|
||||
if (!strongest || summary.scores.overall > strongest.scores.overall) {
|
||||
strongest = summary;
|
||||
}
|
||||
}
|
||||
return strongest;
|
||||
}
|
||||
|
||||
function previewGroundedRemForFile(params: {
|
||||
relPath: string;
|
||||
content: string;
|
||||
@@ -847,15 +863,15 @@ function previewGroundedRemForFile(params: {
|
||||
(sum, { section, snippets }) => sum + scoreSection(section, snippets).tasks,
|
||||
0,
|
||||
);
|
||||
const strongestRoutingSummary = summaries
|
||||
.filter((summary) => isRoutingSummary(summary))
|
||||
.toSorted((left, right) => right.scores.overall - left.scores.overall)[0];
|
||||
const strongestIncidentSummary = summaries
|
||||
.filter((summary) => summary.scores.incident > 0)
|
||||
.toSorted((left, right) => right.scores.overall - left.scores.overall)[0];
|
||||
const strongestExternalizationSummary = summaries
|
||||
.filter((summary) => summary.scores.externalization > 0)
|
||||
.toSorted((left, right) => right.scores.overall - left.scores.overall)[0];
|
||||
const strongestRoutingSummary = findStrongestSummary(summaries, isRoutingSummary);
|
||||
const strongestIncidentSummary = findStrongestSummary(
|
||||
summaries,
|
||||
(summary) => summary.scores.incident > 0,
|
||||
);
|
||||
const strongestExternalizationSummary = findStrongestSummary(
|
||||
summaries,
|
||||
(summary) => summary.scores.externalization > 0,
|
||||
);
|
||||
|
||||
if (facts.length === 0 && monitoringSignal >= 3) {
|
||||
addReflection(
|
||||
|
||||
Reference in New Issue
Block a user