@nexus-cortex/core 4.114.0 → 4.114.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.defaults +3 -0
- package/dist/orchestrator/CortexOrchestrator.js +22 -11
- package/dist/orchestrator/CortexOrchestrator.js.map +1 -1
- package/dist/training/judgeEvidence.d.ts +8 -0
- package/dist/training/judgeEvidence.d.ts.map +1 -1
- package/dist/training/judgeEvidence.js +12 -1
- package/dist/training/judgeEvidence.js.map +1 -1
- package/package.json +3 -3
package/.env.defaults
CHANGED
|
@@ -979,6 +979,9 @@ CORTEX_ENDTURN_GATE=true
|
|
|
979
979
|
# adjudication). VETO=opinion restores the R165 policy; VETO=never records only. Events: endturn_resolver gains {vetoMode, evidenceCap,
|
|
980
980
|
# namedRanNow}.
|
|
981
981
|
# [LEDGER 2026-09-17 @4.114.0] BUILT + unit-tested (endTurnResolver.test.ts R166 policy table). Field: PENDING (next TB4.0 cell).
|
|
982
|
+
# R166b (4.114.1): a check is EVIDENCE only when it completed, exited non-zero AND printed output — a TIMED OUT check (45 s cap) or a
|
|
983
|
+
# silent non-zero exit (the A/B's broken judge-authored commands: exit 1, no output, on a passing solution) is inconclusive and cannot
|
|
984
|
+
# hold a finish. Event field namedInconclusive.
|
|
982
985
|
#CORTEX_JUDGE_VETO=
|
|
983
986
|
#CORTEX_JUDGE_EVIDENCE_MAX_VETOES=
|
|
984
987
|
# (no lever) 4.110.0 closes the 4.109.0 disclosures (2026-09-16): R154 image-rejection heal now also covers the STREAMING loop
|
|
@@ -41,7 +41,7 @@ import { TurnEvidence, evaluateEndTurnGates, buildMissingEndTurnReminder } from
|
|
|
41
41
|
import { resolveCompactionResume, pickDropped, buildCompactionResumeReminder, isCompactionResumeMessage, resolveTaskText, resumeMemoryTargetTokens, coversAll, buildRollingSeedMessage, memoryIndexLine, upsertMemoryIndex, scaleEstimateToRequestView, approxCharsOf, anchoredRequestEstimate, resolveCompactionHandoffQA, resolveHandoffQAMaxQuestions, runHandoffQA } from './compactionResume.js';
|
|
42
42
|
import { renderResumeMemoryPrompt, buildRebuildInstructions, resolveCheckpointBand, resolveRearmBand } from './compactionResumeTemplate.js';
|
|
43
43
|
import { resolveCortexStateDir, cortexStatePath } from '../utils/stateDir.js';
|
|
44
|
-
import { collectWorkspaceDelta, detectCheckCommand, runCheck, resolveJudgeGroundingConfig } from '../training/judgeEvidence.js';
|
|
44
|
+
import { collectWorkspaceDelta, detectCheckCommand, runCheck, resolveJudgeGroundingConfig, classifyCheckRun } from '../training/judgeEvidence.js';
|
|
45
45
|
import { resolveMentorRoleConfig, describeMentorWire, describeMentorDelivery, mentorSurfaceTimeoutMs } from '../training/mentorRole.js';
|
|
46
46
|
import { resolveOuterToolDeadlineMs, resolveOuterToolTimeoutFloorMs } from './outerToolTimeout.js';
|
|
47
47
|
import { resolveSubAgentTimeoutMs } from './subAgentTimeout.js';
|
|
@@ -641,15 +641,21 @@ export class CortexOrchestrator {
|
|
|
641
641
|
let namedRan = 0;
|
|
642
642
|
let namedPassed = 0;
|
|
643
643
|
let namedFailed = 0;
|
|
644
|
-
let
|
|
644
|
+
let namedInconclusive = 0;
|
|
645
|
+
let namedResults = ''; // R166b: timeouts / silent non-zero exits are not evidence
|
|
645
646
|
if (cfg.semantic && this.judgeNamedChecks.length > 0) {
|
|
646
647
|
for (const c of this.judgeNamedChecks.slice(0, 3)) {
|
|
647
648
|
const r = runCheck(judgeCwd, c, jcfg);
|
|
648
649
|
namedRan += 1;
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
650
|
+
{
|
|
651
|
+
const k = classifyCheckRun(r);
|
|
652
|
+
if (k === 'passed')
|
|
653
|
+
namedPassed += 1;
|
|
654
|
+
else if (k === 'failed')
|
|
655
|
+
namedFailed += 1;
|
|
656
|
+
else
|
|
657
|
+
namedInconclusive += 1;
|
|
658
|
+
} // R166b
|
|
653
659
|
namedResults += (namedResults ? '\n\n' : '') + r;
|
|
654
660
|
}
|
|
655
661
|
}
|
|
@@ -687,10 +693,15 @@ export class CortexOrchestrator {
|
|
|
687
693
|
const r = runCheck(judgeCwd, c, jcfg);
|
|
688
694
|
namedRanNow += 1;
|
|
689
695
|
namedRan += 1;
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
696
|
+
{
|
|
697
|
+
const k = classifyCheckRun(r);
|
|
698
|
+
if (k === 'passed')
|
|
699
|
+
namedPassed += 1;
|
|
700
|
+
else if (k === 'failed')
|
|
701
|
+
namedFailed += 1;
|
|
702
|
+
else
|
|
703
|
+
namedInconclusive += 1;
|
|
704
|
+
} // R166b
|
|
694
705
|
namedResultsNow += (namedResultsNow ? '\n\n' : '') + r;
|
|
695
706
|
}
|
|
696
707
|
}
|
|
@@ -730,7 +741,7 @@ export class CortexOrchestrator {
|
|
|
730
741
|
planChars: verdict.plan.length, rejects: this.endTurnResolverRejects, parsed: verdict.parsed,
|
|
731
742
|
cap: resolverCap, capLiveness: cfg.maxRejects, capBudgeted: cfg.maxRejectsBudgeted, remainingFrac: resolverRemainingFrac === null ? null : Number(resolverRemainingFrac.toFixed(3)), // R160
|
|
732
743
|
semantic: cfg.semantic, action, confidence: verdict.confidence, namedChecks: verdict.checks.length, namedRan, namedPassed, namedFailed, callsSince, progressed, escalated: this.judgeEscalated, // R165
|
|
733
|
-
vetoMode: cfg.vetoMode, evidenceCap: cfg.evidenceCap, namedRanNow, // R166
|
|
744
|
+
vetoMode: cfg.vetoMode, evidenceCap: cfg.evidenceCap, namedRanNow, namedInconclusive, // R166 / R166b
|
|
734
745
|
latencyMs, rawLen: (text ?? '').length,
|
|
735
746
|
deltaChars: workspaceDelta.length, checkRan: !!checkResult, checkPassed: checkResult ? /→ PASSED/.test(checkResult) : null,
|
|
736
747
|
liftPlanChars: this.liftPlanText.length,
|